- Added a health check to the Jina client to verify server availability.
- Improved error handling and messaging for failed health checks.
- Enhanced client robustness by providing feedback on server status.
- Added a new `create_multi_vector` function to the Jina client
to support creating multi-vector embeddings.
- Added a new `multi_vector_api.v` file containing the
implementation for the multi-vector API.
- Updated the `jina.vsh` example to demonstrate the usage of the
new multi-vector API.
- Added `delete_classifier` function to delete a classifier by ID.
- Added corresponding unit tests for the new function.
- Updated the client example to demonstrate classifier deletion.
- Renamed `jina_client_test.v` to `api_test.v` for better organization.
- Renamed `model_embed.v` to `embeddings_api.v` for better organization.
- Refactored the embedding API to use enums for task and truncate types,
and added error handling for invalid inputs.
- Added a new function to list available classifiers.
- Extended the Jina client with `list_classifiers()` method.
- Added unit tests to verify the new functionality.
- Update `jina.vsh` example to showcase the new classification API
with support for both text and image inputs. This improves
the flexibility and usability of the client.
- Introduce new structs `TextDoc`, `ImageDoc`, `ClassificationInput`,
`ClassificationOutput`, `ClassificationResult`, and `LabelScore`
to represent data structures for classification requests and
responses. This enhances code clarity and maintainability.
- Implement the `classify` function in `jina_client.v` to handle
classification requests with support for text and image inputs,
model selection, and label specification. This adds a crucial
feature to the Jina client.
- Add comprehensive unit tests in `jina_client_test.v` to cover
the new `classify` function's functionality. This ensures the
correctness and robustness of the implemented feature.
- Remove redundant code related to old classification API and data
structures from `model_embed.v`, `model_rank.v`, and
`jina_client.v`. This streamlines the codebase and removes
obsolete elements.
- Added `train` function to the Jina client for training
classifiers.
- Added `ClassificationTrain` struct to define training
parameters.
- Added `TrainingExample` struct to represent training data.
- Added `ClassificationTrainOutput` struct for the training
response.
- Added a new `classification_api.v` module for classifier
training functionalities.
- Added a new `classify` function to the Jina client for
classification tasks (currently commented out).
- Added a new `rerank` function to the Jina client for reranking documents.
- Added a new `RerankParams` struct to define parameters for reranking.
- Added unit tests for the new `rerank` function.
- Updated the example script to demonstrate reranking.
- Improved error handling and added more comprehensive logging.
- Add `type_`, `truncate`, and `late_chunking` parameters to the
`create_embeddings` function for finer control over embedding
generation. This allows users to specify embedding type,
truncation method, and whether to apply late chunking.
- Rename model parameter to `model` for clarity and consistency.
- Improve model enum naming for better readability and API consistency.
- Add unit tests for the `create_embeddings` function to ensure
correct functionality and handle potential errors.
- Added a `create_embeddings` function to the Jina client to
generate embeddings for given input texts.
- Improved the `create_embeddings` function input parameters
for better flexibility and error handling.
- Updated `TextEmbeddingInput` struct to handle optional
parameters for embedding type, truncation type, and late
chunking. This improves the flexibility of the embedding
generation process.
- Fixed compilation issues and ensured the code builds successfully
- Created an example to test the client functionality
- Started implementing additional endpoints
- Added a client and server for a simple key-value store.
- Improved documentation with client and server usage examples.
- Created client and server implementations using the V language.
- Adds a new lightweight key-value store server implemented in V.
- Includes basic CRUD operations (`set`, `get`, `delete`).
- Provides configurable host and operation restrictions for security.
- Offers middleware for logging and request validation.
- Supports incremental mode for automatic ID generation.
- Includes comprehensive documentation and example usage.
- Adds unit tests to ensure functionality and stability.
- Add worker registration to MyceliumStreamer: Allows for explicit
addition of workers, improving management and control.
- Simplify worker message handling: Streamlines message processing
for increased efficiency and readability. Removes unnecessary
logging and simplifies message routing.
- Remove redundant message handling: Eliminates duplicate code
paths for cleaner and more maintainable code.
- Improve worker data retrieval: Facilitates direct data retrieval
from workers, enhancing efficiency and reliability.
- Allow reading data directly from specific workers by specifying
their public key in `MyceliumStreamer.read()`. This improves
data retrieval flexibility and allows for distributed data access.
- Add master data reading to ensure data consistency and allow
comparison between master and worker data. This helps debug and
verify data replication.
- Implement JSON encoding/decoding for database transfer between
master and worker nodes. This enables efficient and structured
data exchange.
- Updated the master node to support multiple workers, allowing for
increased scalability and redundancy.
- Modified the worker node to simplify initialization and connection
to the master.
- Added logging statements for better monitoring and debugging.
- Removed unnecessary test data from `deduped_mycelium_master.vsh`.
- Simplified `MyceliumStreamer.listen()` to efficiently handle
incoming messages, removing redundant code and improving readability.
- Enhanced error handling in `MyceliumStreamer.listen()` for more robust
operation.
- Added worker ID to master and worker configurations for improved
identification and management.
- Implemented worker registration and data synchronization mechanisms
to enable distributed data access.
- Added a read function to retrieve data from specific workers,
enhancing data access flexibility.
- Improved logging for better monitoring and debugging of the system.
- Added continuous data writing and verification to the master node
to ensure data persistence and integrity.
- Simplified worker update handling in the `listen` function for
better efficiency and error handling. The previous implementation
had unnecessary complexity and potential for hangs.
- Changed Mycelium worker port to avoid conflict with master.
- Added debug print statements to Mycelium client for better troubleshooting.
- Removed unnecessary `SyncData` struct, simplifying data handling.
- Updated data encoding/decoding to directly use base64 for efficiency.
- Clarified message topic names for better understanding.
- Refactor database streamer to support multiple workers.
- Add master node to manage and distribute data updates.
- Implement worker nodes to receive and apply updates.
- Remove unnecessary slave node.
- Improve error handling and logging.
- Use base64 encoding for JSON compatibility in data transfer.
- Renamed the topic for database synchronization messages from
'db_sync' to 'sync_db' for clarity.
- Updated the Mycelium slave to decode base64 payload before
processing and to log received messages and their source.
- Added logging to the Mycelium streamer to track sent messages.
- Added a new feature to retrieve and log the last index from the
worker after syncing updates. This improves monitoring and
debugging capabilities.
- Refactor data synchronization logic to use Mycelium messages for
efficient updates between master and worker nodes. This removes
the previous inefficient polling method and simplifies the code.
- Update the slave node to receive and apply updates from the
master, improving synchronization efficiency and robustness.
- Change the default slave port to 9000.
- Rename `db` variable to `worker` for clarity.