Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEA]: Add a .vdb_bulk_upload method to the Ingestor class. #329

Open
2 tasks
drobison00 opened this issue Jan 14, 2025 · 0 comments
Open
2 tasks

[FEA]: Add a .vdb_bulk_upload method to the Ingestor class. #329

drobison00 opened this issue Jan 14, 2025 · 0 comments
Assignees
Labels
feature request New feature or request

Comments

@drobison00
Copy link
Collaborator

drobison00 commented Jan 14, 2025

Is this a new feature, an improvement, or a change to existing functionality?

Improvement

How would you describe the priority of this feature request

Significant improvement

Please provide a clear description of problem this feature solves

Requirements

  • Add a .vdb_bulk_upload method to the Ingestor class. This method will eliminate the need for using utility functions to create and bulk-upload to milvus.
  • Remove existing usage of 'vdb_upload' from the Ingestor class, Ingest pipeline, and example docs

This would be a multi-phase method, responsible for first ingesting and propagating embeddings to minio, verifying all tasks completed successfully, and then performing the bulk upload tasks for the embedding data.

Describe the feature, and optionally a solution or implementation and any alternatives

Method API

class Ingestor():
....

    def vdb_bulk_upload(collection_ids: str | Dict[str, str], milvus_uri: str, sparse: bool, dense_dim: bool):
       ....

Usage:

collection_ids = {
 "text": ....,
 "image": ....,
 "table": ....,
 "chart": ....,
}

# Single vdb collection:
ingestor_single_collection = ( Ingestor(client=client)
 .files(....)
 .extract(...)
 .embed(...)
 .store_embedding(...)
 .vdb_bulk_upload("my_collection_name", localhost:123, True, False)
)

results_single = ingestor_single_collection.ingest()

# Multiple vdb collections:
ingestor_multi_collection = (Ingestor(client=client)
 .files(....)
 .extract(...)
 .embed(...)
 .store_embedding(...)
 .vdb_bulk_upload(collection_ids, localhost:123, True, False)
)

results_multi = ingestor_multi_collection.ingest()

Additional context

Implementation notes:

  • Collection ID's may need to support simple regex, for example '(table|chart)' : 123981273129'
  • Ingestor.ingest() should probably still return the first round results after finishing the bulk upload, so that someone could enable bulk uploading, but still get usable data back. If its not desirable by default, then it should be a flag.
@drobison00 drobison00 added the feature request New feature or request label Jan 14, 2025
@drobison00 drobison00 changed the title [FEA]: [FEA]: Add a .vdb_bulk_upload method to the Ingestor class. Jan 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants