cocoindex 0.2.12__tar.gz → 0.2.14__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cocoindex-0.2.14/.github/SECURITY.md +26 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/Cargo.lock +1 -1
- {cocoindex-0.2.12 → cocoindex-0.2.14}/Cargo.toml +1 -1
- {cocoindex-0.2.12 → cocoindex-0.2.14}/PKG-INFO +3 -1
- {cocoindex-0.2.12 → cocoindex-0.2.14}/README.md +1 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/THIRD_PARTY_NOTICES.html +27 -33
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/ai/llm.mdx +8 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/core/flow_def.mdx +1 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/examples/examples/simple_vector_index.md +10 -0
- cocoindex-0.2.14/examples/text_embedding_lancedb/.gitignore +1 -0
- cocoindex-0.2.14/examples/text_embedding_lancedb/README.md +58 -0
- cocoindex-0.2.14/examples/text_embedding_lancedb/main.py +109 -0
- cocoindex-0.2.14/examples/text_embedding_lancedb/markdown_files/rfc8259.md +362 -0
- cocoindex-0.2.14/examples/text_embedding_lancedb/pyproject.toml +13 -0
- cocoindex-0.2.14/examples/text_embedding_qdrant/.env +6 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/pyproject.toml +1 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/__init__.py +9 -1
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/index.py +22 -1
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/query_handler.py +8 -2
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/targets/lancedb.py +6 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/base/spec.rs +58 -1
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/builder/analyzed_flow.rs +1 -1
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/execution/memoization.rs +1 -1
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/execution/source_indexer.rs +1 -1
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/llm/anthropic.rs +6 -9
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/llm/gemini.rs +44 -16
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/llm/mod.rs +4 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/llm/ollama.rs +10 -18
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/llm/voyage.rs +5 -10
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/functions/embed_text.rs +27 -2
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/targets/kuzu.rs +6 -9
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/targets/neo4j.rs +3 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/targets/postgres.rs +34 -4
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/targets/qdrant.rs +3 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/service/error.rs +72 -46
- {cocoindex-0.2.12 → cocoindex-0.2.14}/.cargo/config.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/.env.lib_debug +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/.github/ISSUE_TEMPLATE//360/237/220/233-bug-report.md" +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/.github/ISSUE_TEMPLATE//360/237/222/241-feature-request.md" +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/.github/scripts/update_version.sh +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/.github/workflows/CI.yml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/.github/workflows/_docs_release.yml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/.github/workflows/_test.yml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/.github/workflows/docs_release.yml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/.github/workflows/docs_test.yml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/.github/workflows/format.yml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/.github/workflows/release.yml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/.gitignore +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/.pre-commit-config.yaml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/CODE_OF_CONDUCT.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/CONTRIBUTING.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/LICENSE +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/about.hbs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/about.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/dev/neo4j.yaml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/dev/postgres.yaml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/.gitignore +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/about/community.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/contributing/guide.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/contributing/new_built_in_target.mdx +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/contributing/setup_dev_environment.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/core/basics.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/core/cli.mdx +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/core/data_example.svg +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/core/data_types.mdx +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/core/flow_example.svg +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/core/flow_methods.mdx +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/core/settings.mdx +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/custom_ops/custom_functions.mdx +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/custom_ops/custom_targets.mdx +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/examples/examples/academic_papers_index.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/examples/examples/codebase_index.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/examples/examples/custom_targets.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/examples/examples/docs_to_knowledge_graph.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/examples/examples/document_ai.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/examples/examples/image_search.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/examples/examples/manual_extraction.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/examples/examples/multi_format_index.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/examples/examples/patient_form_extraction.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/examples/examples/photo_search.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/examples/examples/postgres_source.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/examples/examples/product_recommendation.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/examples/index.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/getting_started/installation.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/getting_started/markdown_files.zip +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/getting_started/overview.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/getting_started/quickstart.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/ops/functions.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/ops/sources.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/ops/targets.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/query.mdx +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/tutorials/live_updates.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docs/tutorials/manage_flow_dynamically.mdx +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/docusaurus.config.ts +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/package.json +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/sidebars.ts +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/src/components/GitHubButton/index.tsx +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/src/css/custom.css +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/src/theme/DocCard/index.tsx +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/src/theme/DocCard/styles.module.css +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/src/theme/DocCardList/index.tsx +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/src/theme/DocCardList/styles.module.css +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/src/theme/Root.js +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/.nojekyll +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/docusaurus.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/academic_papers_index/abstract_chunks.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/academic_papers_index/basic_info.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/academic_papers_index/chunk_embedding.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/academic_papers_index/cover.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/academic_papers_index/first_page.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/academic_papers_index/flow.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/academic_papers_index/metadata.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/codebase_index/chunk.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/codebase_index/cover.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/codebase_index/flow.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/custom_targets/convert.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/custom_targets/cover.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/docs_to_knowledge_graph/cover.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/docs_to_knowledge_graph/dedupe.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/docs_to_knowledge_graph/export_document.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/docs_to_knowledge_graph/export_relationship.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/docs_to_knowledge_graph/extract_relationship.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/docs_to_knowledge_graph/flow.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/docs_to_knowledge_graph/relationship.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/docs_to_knowledge_graph/summary.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/document_ai/cover.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/document_ai/document_ai.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/document_ai/processor.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/image_search/cover.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/image_search/embedding.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/image_search/flow.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/image_search/multi_modal_architecture.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/image_search/result.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/manual_extraction/cover.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/manual_extraction/extraction.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/manual_extraction/flow.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/manual_extraction/summary.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/multi_format_index/colpali_architecture.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/multi_format_index/cover.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/multi_format_index/embed.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/multi_format_index/flow.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/multi_format_index/pages.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/patient_form_extraction/cover.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/patient_form_extraction/extraction.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/patient_form_extraction/fields.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/patient_form_extraction/flow.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/patient_form_extraction/tomarkdown.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/photo_search/cover.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/photo_search/extraction.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/photo_search/flow.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/postgres_source/collector.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/postgres_source/cover.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/postgres_source/description.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/postgres_source/embed.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/postgres_source/flow.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/postgres_source/lineage.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/postgres_source/price.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/postgres_source/source.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/product_recommendation/cover.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/product_recommendation/dedupe.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/product_recommendation/export_all.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/product_recommendation/export_product.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/product_recommendation/export_taxonomy.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/product_recommendation/extract_product.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/product_recommendation/extract_taxonomy.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/product_recommendation/neo4j.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/product_recommendation/parse_json.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/product_recommendation/taxonomy.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/simple_vector_index/chunk.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/simple_vector_index/cover.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/simple_vector_index/embed.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/examples/simple_vector_index/flow.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/favicon.ico +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/icon.svg +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/img/incremental-etl.gif +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/static/robots.txt +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/tsconfig.json +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/docs/yarn.lock +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/amazon_s3_embedding/.env.example +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/amazon_s3_embedding/.gitignore +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/amazon_s3_embedding/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/amazon_s3_embedding/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/amazon_s3_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/azure_blob_embedding/.env.example +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/azure_blob_embedding/.gitignore +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/azure_blob_embedding/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/azure_blob_embedding/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/azure_blob_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/code_embedding/.env +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/code_embedding/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/code_embedding/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/code_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/custom_output_files/.env +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/custom_output_files/.gitignore +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/custom_output_files/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/custom_output_files/data/bizarre_animals.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/custom_output_files/data/chunk_norris.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/custom_output_files/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/custom_output_files/pyproject.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/docs_to_knowledge_graph/.env +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/docs_to_knowledge_graph/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/docs_to_knowledge_graph/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/docs_to_knowledge_graph/pyproject.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/face_recognition/.env +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/face_recognition/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/face_recognition/images/Carter_welcomes_Reagan.jpg +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/face_recognition/images/Solvay_conference_1927.jpg +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/face_recognition/images/Steve_Jobs_and_Bill_Gates_(522695099).jpg +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/face_recognition/images/einplanck3.jpg +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/face_recognition/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/face_recognition/pyproject.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/fastapi_server_docker/.dockerignore +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/fastapi_server_docker/.env +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/fastapi_server_docker/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/fastapi_server_docker/compose.yaml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/fastapi_server_docker/dockerfile +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/fastapi_server_docker/files/1810.04805v2.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/fastapi_server_docker/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/fastapi_server_docker/requirements.txt +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/gdrive_text_embedding/.env.example +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/gdrive_text_embedding/.gitignore +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/gdrive_text_embedding/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/gdrive_text_embedding/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/gdrive_text_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/image_search/.env +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/image_search/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/image_search/colpali_main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/image_search/frontend/.gitignore +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/image_search/frontend/index.html +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/image_search/frontend/package-lock.json +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/image_search/frontend/package.json +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/image_search/frontend/src/App.jsx +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/image_search/frontend/src/main.jsx +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/image_search/frontend/src/style.css +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/image_search/frontend/vite.config.js +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/image_search/img/cat1.jpeg +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/image_search/img/dog1.jpeg +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/image_search/img/elephant1.jpg +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/image_search/img/giraffe.jpg +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/image_search/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/image_search/pyproject.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/live_updates/.env +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/live_updates/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/live_updates/data/bizarre_animals.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/live_updates/data/chunk_norris.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/live_updates/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/live_updates/pyproject.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/manuals_llm_extraction/.env +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/manuals_llm_extraction/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/manuals_llm_extraction/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/manuals_llm_extraction/manuals/array.pdf +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/manuals_llm_extraction/manuals/base64.pdf +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/manuals_llm_extraction/manuals/copy.pdf +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/manuals_llm_extraction/manuals/glob.pdf +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/manuals_llm_extraction/pyproject.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/multi_format_indexing/.env +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/multi_format_indexing/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/multi_format_indexing/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/multi_format_indexing/pyproject.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/multi_format_indexing/source_files/1706.03762v7.pdf +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/multi_format_indexing/source_files/1810.04805v2.pdf +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/multi_format_indexing/source_files/2502.06786v3.pdf +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/multi_format_indexing/source_files/healthcare_industry_test_p101.jpg +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/multi_format_indexing/source_files/healthcare_industry_test_p86.jpg +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/multi_format_indexing/source_files/healthcare_industry_test_p9.jpg +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/multi_format_indexing/source_files/restaurant_brands_international_2023.jpg +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/multi_format_indexing/source_files/sweetgreen_2023.jpg +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/paper_metadata/.env.example +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/paper_metadata/.gitignore +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/paper_metadata/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/paper_metadata/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/paper_metadata/papers/1706.03762v7.pdf +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/paper_metadata/papers/1810.04805v2.pdf +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/paper_metadata/papers/2502.06786v3.pdf +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/paper_metadata/papers/2502.20346v1.pdf +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/paper_metadata/pyproject.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/patient_intake_extraction/.env.example +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/patient_intake_extraction/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/patient_intake_extraction/data/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_David_Artificial.docx +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_Emily_Artificial.pdf +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_Joe_Artificial.pdf +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_From_Jane_Artificial.docx +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/patient_intake_extraction/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/patient_intake_extraction/pyproject.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/pdf_embedding/.env +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/pdf_embedding/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/pdf_embedding/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/pdf_embedding/pdf_files/1706.03762v7.pdf +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/pdf_embedding/pdf_files/1810.04805v2.pdf +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/pdf_embedding/pdf_files/rfc8259.pdf +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/pdf_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/postgres_source/.env +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/postgres_source/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/postgres_source/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/postgres_source/prepare_source_data.sql +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/postgres_source/pyproject.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/product_recommendation/.env.example +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/product_recommendation/.gitignore +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/product_recommendation/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/product_recommendation/img/cocoinsight.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/product_recommendation/img/neo4j.png +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/product_recommendation/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/product_recommendation/products/p1.json +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/product_recommendation/products/p2.json +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/product_recommendation/products/p3.json +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/product_recommendation/products/p4.json +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/product_recommendation/products/p5.json +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/product_recommendation/products/p6.json +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/product_recommendation/products/p7.json +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/product_recommendation/products/p8.json +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/product_recommendation/products/p9.json +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/product_recommendation/pyproject.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/text_embedding/.env +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/text_embedding/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/text_embedding/Text_Embedding.ipynb +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/text_embedding/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/text_embedding/markdown_files/1706.03762v7.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/text_embedding/markdown_files/1810.04805v2.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/text_embedding/markdown_files/rfc8259.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/text_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.12/examples/text_embedding_qdrant → cocoindex-0.2.14/examples/text_embedding_lancedb}/.env +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/text_embedding_qdrant/README.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/text_embedding_qdrant/main.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/text_embedding_qdrant/markdown_files/rfc8259.md +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/examples/text_embedding_qdrant/pyproject.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/auth_registry.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/cli.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/convert.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/flow.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/functions.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/lib.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/llm.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/op.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/py.typed +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/runtime.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/setting.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/setup.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/sources.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/subprocess_exec.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/targets/__init__.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/targets/_engine_builtin_specs.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/tests/__init__.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/tests/test_convert.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/tests/test_load_convert.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/tests/test_optional_database.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/tests/test_transform_flow.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/tests/test_typing.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/tests/test_validation.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/typing.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/user_app_loader.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/utils.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/python/cocoindex/validation.py +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/ruff.toml +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/base/duration.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/base/field_attrs.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/base/json_schema.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/base/mod.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/base/schema.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/base/value.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/builder/analyzer.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/builder/exec_ctx.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/builder/flow_builder.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/builder/mod.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/builder/plan.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/execution/db_tracking.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/execution/db_tracking_setup.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/execution/dumper.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/execution/evaluator.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/execution/indexing_status.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/execution/live_updater.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/execution/mod.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/execution/row_indexer.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/execution/stats.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/lib.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/lib_context.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/llm/litellm.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/llm/openai.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/llm/openrouter.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/llm/vllm.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/factory_bases.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/functions/extract_by_llm.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/functions/mod.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/functions/parse_json.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/functions/split_recursively.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/functions/test_utils.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/interface.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/mod.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/py_factory.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/registration.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/registry.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/sdk.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/shared/mod.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/shared/postgres.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/sources/amazon_s3.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/sources/azure_blob.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/sources/google_drive.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/sources/local_file.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/sources/mod.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/sources/postgres.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/sources/shared/mod.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/sources/shared/pattern_matcher.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/targets/mod.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/targets/shared/mod.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/targets/shared/property_graph.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/ops/targets/shared/table_columns.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/prelude.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/py/convert.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/py/mod.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/server.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/service/flows.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/service/mod.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/service/query_handler.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/settings.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/setup/auth_registry.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/setup/components.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/setup/db_metadata.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/setup/driver.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/setup/flow_features.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/setup/mod.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/setup/states.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/utils/concur_control.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/utils/db.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/utils/deser.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/utils/fingerprint.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/utils/immutable.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/utils/mod.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/utils/retryable.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/utils/str_sanitize.rs +0 -0
- {cocoindex-0.2.12 → cocoindex-0.2.14}/src/utils/yaml_ser.rs +0 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
# Security Policy for CocoIndex
|
2
|
+
|
3
|
+
## Reporting a Vulnerability
|
4
|
+
If you discover a security vulnerability in CocoIndex, please report it responsibly to our security team:
|
5
|
+
|
6
|
+
**Email:** [support@cocoindex.io](mailto:support@cocoindex.io)
|
7
|
+
|
8
|
+
⚠️ Please do not file GitHub issues for security vulnerabilities as they are public! ⚠️
|
9
|
+
|
10
|
+
Please provide:
|
11
|
+
- A detailed description of the vulnerability
|
12
|
+
- Steps to reproduce the issue
|
13
|
+
- Any relevant logs, screenshots, or proof-of-concept code
|
14
|
+
|
15
|
+
We will acknowledge your report promptly and work with you to resolve the issue.
|
16
|
+
|
17
|
+
## Scope
|
18
|
+
This policy covers security issues related to CocoIndex open-source software.
|
19
|
+
|
20
|
+
## Response & Disclosure
|
21
|
+
- We aim to respond as soon as we can.
|
22
|
+
- Security fixes will be released as soon as practical after verification.
|
23
|
+
|
24
|
+
---
|
25
|
+
|
26
|
+
Thank you for helping us keep CocoIndex secure!
|
@@ -2,7 +2,7 @@
|
|
2
2
|
name = "cocoindex"
|
3
3
|
# Version used for local development is always higher than others to take precedence.
|
4
4
|
# Will be overridden for specific release versions.
|
5
|
-
version = "0.2.
|
5
|
+
version = "0.2.14"
|
6
6
|
edition = "2024"
|
7
7
|
rust-version = "1.89"
|
8
8
|
license = "Apache-2.0"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: cocoindex
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.14
|
4
4
|
Classifier: Development Status :: 3 - Alpha
|
5
5
|
Classifier: License :: OSI Approved :: Apache Software License
|
6
6
|
Classifier: Operating System :: OS Independent
|
@@ -16,6 +16,7 @@ Classifier: Topic :: Text Processing :: Indexing
|
|
16
16
|
Classifier: Intended Audience :: Developers
|
17
17
|
Classifier: Natural Language :: English
|
18
18
|
Classifier: Typing :: Typed
|
19
|
+
Requires-Dist: typing-extensions>=4.12 ; python_full_version < '3.13'
|
19
20
|
Requires-Dist: click>=8.1.8
|
20
21
|
Requires-Dist: rich>=14.0.0
|
21
22
|
Requires-Dist: python-dotenv>=1.1.0
|
@@ -230,6 +231,7 @@ It defines an index flow like this:
|
|
230
231
|
| [Google Drive Text Embedding](examples/gdrive_text_embedding) | Index text documents from Google Drive |
|
231
232
|
| [Docs to Knowledge Graph](examples/docs_to_knowledge_graph) | Extract relationships from Markdown documents and build a knowledge graph |
|
232
233
|
| [Embeddings to Qdrant](examples/text_embedding_qdrant) | Index documents in a Qdrant collection for semantic search |
|
234
|
+
| [Embeddings to LanceDB](examples/text_embedding_lancedb) | Index documents in a LanceDB collection for semantic search |
|
233
235
|
| [FastAPI Server with Docker](examples/fastapi_server_docker) | Run the semantic search server in a Dockerized FastAPI setup |
|
234
236
|
| [Product Recommendation](examples/product_recommendation) | Build real-time product recommendations with LLM and graph database|
|
235
237
|
| [Image Search with Vision API](examples/image_search) | Generates detailed captions for images using a vision model, embeds them, enables live-updating semantic search via FastAPI and served on a React frontend|
|
@@ -181,6 +181,7 @@ It defines an index flow like this:
|
|
181
181
|
| [Google Drive Text Embedding](examples/gdrive_text_embedding) | Index text documents from Google Drive |
|
182
182
|
| [Docs to Knowledge Graph](examples/docs_to_knowledge_graph) | Extract relationships from Markdown documents and build a knowledge graph |
|
183
183
|
| [Embeddings to Qdrant](examples/text_embedding_qdrant) | Index documents in a Qdrant collection for semantic search |
|
184
|
+
| [Embeddings to LanceDB](examples/text_embedding_lancedb) | Index documents in a LanceDB collection for semantic search |
|
184
185
|
| [FastAPI Server with Docker](examples/fastapi_server_docker) | Run the semantic search server in a Dockerized FastAPI setup |
|
185
186
|
| [Product Recommendation](examples/product_recommendation) | Build real-time product recommendations with LLM and graph database|
|
186
187
|
| [Image Search with Vision API](examples/image_search) | Generates detailed captions for images using a vision model, embeds them, enables live-updating semantic search via FastAPI and served on a React frontend|
|
@@ -2428,7 +2428,7 @@ Software.
|
|
2428
2428
|
<h3 id="Apache-2.0">Apache License 2.0</h3>
|
2429
2429
|
<h4>Used by:</h4>
|
2430
2430
|
<ul class="license-used-by">
|
2431
|
-
<li><a href=" https://crates.io/crates/cocoindex ">cocoindex 0.2.
|
2431
|
+
<li><a href=" https://crates.io/crates/cocoindex ">cocoindex 0.2.14</a></li>
|
2432
2432
|
<li><a href=" https://github.com/awesomized/crc-fast-rust ">crc-fast 1.3.0</a></li>
|
2433
2433
|
<li><a href=" https://github.com/qdrant/rust-client ">qdrant-client 1.15.0</a></li>
|
2434
2434
|
</ul>
|
@@ -10673,38 +10673,6 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
10673
10673
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
10674
10674
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
10675
10675
|
THE SOFTWARE.</pre>
|
10676
|
-
</li>
|
10677
|
-
<li class="license">
|
10678
|
-
<h3 id="MIT">MIT License</h3>
|
10679
|
-
<h4>Used by:</h4>
|
10680
|
-
<ul class="license-used-by">
|
10681
|
-
<li><a href=" https://github.com/tree-sitter/tree-sitter-scala ">tree-sitter-scala 0.24.0</a></li>
|
10682
|
-
</ul>
|
10683
|
-
<pre class="license-text">(The MIT License)
|
10684
|
-
|
10685
|
-
Copyright (c) 2014 Nathan Rajlich <nathan@tootallnate.net>
|
10686
|
-
|
10687
|
-
Permission is hereby granted, free of charge, to any person
|
10688
|
-
obtaining a copy of this software and associated documentation
|
10689
|
-
files (the "Software"), to deal in the Software without
|
10690
|
-
restriction, including without limitation the rights to use,
|
10691
|
-
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10692
|
-
copies of the Software, and to permit persons to whom the
|
10693
|
-
Software is furnished to do so, subject to the following
|
10694
|
-
conditions:
|
10695
|
-
|
10696
|
-
The above copyright notice and this permission notice shall be
|
10697
|
-
included in all copies or substantial portions of the Software.
|
10698
|
-
|
10699
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
10700
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
10701
|
-
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
10702
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
10703
|
-
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
10704
|
-
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
10705
|
-
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
10706
|
-
OTHER DEALINGS IN THE SOFTWARE.
|
10707
|
-
</pre>
|
10708
10676
|
</li>
|
10709
10677
|
<li class="license">
|
10710
10678
|
<h3 id="MIT">MIT License</h3>
|
@@ -12299,6 +12267,32 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
12299
12267
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
12300
12268
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
12301
12269
|
THE SOFTWARE.
|
12270
|
+
</pre>
|
12271
|
+
</li>
|
12272
|
+
<li class="license">
|
12273
|
+
<h3 id="MIT">MIT License</h3>
|
12274
|
+
<h4>Used by:</h4>
|
12275
|
+
<ul class="license-used-by">
|
12276
|
+
<li><a href=" https://github.com/tree-sitter/tree-sitter-scala ">tree-sitter-scala 0.24.0</a></li>
|
12277
|
+
</ul>
|
12278
|
+
<pre class="license-text">This software is released under the MIT license:
|
12279
|
+
|
12280
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
12281
|
+
this software and associated documentation files (the "Software"), to deal in
|
12282
|
+
the Software without restriction, including without limitation the rights to
|
12283
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
12284
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
12285
|
+
subject to the following conditions:
|
12286
|
+
|
12287
|
+
The above copyright notice and this permission notice shall be included in all
|
12288
|
+
copies or substantial portions of the Software.
|
12289
|
+
|
12290
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
12291
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
12292
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
12293
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
12294
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
12295
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
12302
12296
|
</pre>
|
12303
12297
|
</li>
|
12304
12298
|
<li class="license">
|
@@ -107,6 +107,8 @@ For text embedding, a spec for OpenAI looks like this:
|
|
107
107
|
cocoindex.functions.EmbedText(
|
108
108
|
api_type=cocoindex.LlmApiType.OPENAI,
|
109
109
|
model="text-embedding-3-small",
|
110
|
+
# Optional, use the default output dimension if not specified
|
111
|
+
output_dimension=1536,
|
110
112
|
)
|
111
113
|
```
|
112
114
|
|
@@ -199,7 +201,10 @@ For text embedding, a spec looks like this:
|
|
199
201
|
cocoindex.functions.EmbedText(
|
200
202
|
api_type=cocoindex.LlmApiType.GEMINI,
|
201
203
|
model="text-embedding-004",
|
204
|
+
# Optional, use the default task type if not specified
|
202
205
|
task_type="SEMANTICS_SIMILARITY",
|
206
|
+
# Optional, use the default output dimension if not specified
|
207
|
+
output_dimension=1536,
|
203
208
|
)
|
204
209
|
```
|
205
210
|
|
@@ -260,7 +265,10 @@ For text embedding, a spec for Vertex AI looks like this:
|
|
260
265
|
cocoindex.functions.EmbedText(
|
261
266
|
api_type=cocoindex.LlmApiType.VERTEX_AI,
|
262
267
|
model="text-embedding-005",
|
268
|
+
# Optional, use the default task type if not specified
|
263
269
|
task_type="SEMANTICS_SIMILARITY",
|
270
|
+
# Optional, use the default output dimension if not specified
|
271
|
+
output_dimension=1536,
|
264
272
|
api_config=cocoindex.llm.VertexAiConfig(project="your-project-id"),
|
265
273
|
)
|
266
274
|
```
|
@@ -313,6 +313,7 @@ Types of the fields must be key types. See [Key Types](data_types#key-types) for
|
|
313
313
|
|
314
314
|
* `field_name`: the field to create vector index.
|
315
315
|
* `metric`: the similarity metric to use.
|
316
|
+
* `method` (optional): the index algorithm and optional tuning parameters. Leave unset to use the target default (HNSW for Postgres). Use `cocoindex.HnswVectorIndexMethod()` or `cocoindex.IvfFlatVectorIndexMethod()` to customize the method and its parameters.
|
316
317
|
|
317
318
|
#### Similarity Metrics
|
318
319
|
|
@@ -105,6 +105,16 @@ doc_embeddings.export(
|
|
105
105
|
CocoIndex supports other vector databases as well, with 1-line switch.
|
106
106
|
<DocumentationButton url="https://cocoindex.io/docs/ops/targets" text="Targets" />
|
107
107
|
|
108
|
+
Need IVFFlat or custom HNSW parameters? Pass a method, for example:
|
109
|
+
|
110
|
+
```python
|
111
|
+
cocoindex.VectorIndexDef(
|
112
|
+
field_name="embedding",
|
113
|
+
metric=cocoindex.VectorSimilarityMetric.COSINE_SIMILARITY,
|
114
|
+
method=cocoindex.IvfFlatVectorIndexMethod(lists=200),
|
115
|
+
)
|
116
|
+
```
|
117
|
+
|
108
118
|
## Query the index
|
109
119
|
|
110
120
|
### Define a shared flow for both indexing and querying
|
@@ -0,0 +1 @@
|
|
1
|
+
/lancedb_data
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# Build text embedding and semantic search 🔍 with LanceDB
|
2
|
+
|
3
|
+
[](https://github.com/cocoindex-io/cocoindex)
|
4
|
+
|
5
|
+
CocoIndex supports LanceDB natively. In this example, we will build index flow from text embedding from local markdown files, and query the index. We will use **LanceDB** as the vector database.
|
6
|
+
|
7
|
+
We appreciate a star ⭐ at [CocoIndex Github](https://github.com/cocoindex-io/cocoindex) if this is helpful.
|
8
|
+
|
9
|
+
|
10
|
+
## Steps
|
11
|
+
### Indexing Flow
|
12
|
+
|
13
|
+
1. We will ingest a list of local files.
|
14
|
+
2. For each file, perform chunking (recursively split) and then embedding.
|
15
|
+
3. We will save the embeddings and the metadata in LanceDB.
|
16
|
+
|
17
|
+
### Query
|
18
|
+
|
19
|
+
1. We have `search()` as a [query handler](https://cocoindex.io/docs/query#query-handler), to query the LanceDB table with LanceDB client.
|
20
|
+
2. We share the embedding operation `text_to_embedding()` between indexing and querying,
|
21
|
+
by wrapping it as a [transform flow](https://cocoindex.io/docs/query#transform-flow).
|
22
|
+
|
23
|
+
## Pre-requisites
|
24
|
+
|
25
|
+
1. [Install Postgres](https://cocoindex.io/docs/getting_started/installation#-install-postgres) if you don't have one. Although the target store is LanceDB, CocoIndex uses Postgres to track the data lineage for incremental processing.
|
26
|
+
|
27
|
+
2. Install dependencies:
|
28
|
+
|
29
|
+
```sh
|
30
|
+
pip install -e .
|
31
|
+
```
|
32
|
+
|
33
|
+
LanceDB will automatically create a local database directory when you run the example (no additional setup required).
|
34
|
+
|
35
|
+
## Run
|
36
|
+
|
37
|
+
Update index, which will also setup LanceDB tables at the first time:
|
38
|
+
|
39
|
+
```bash
|
40
|
+
cocoindex update --setup main
|
41
|
+
```
|
42
|
+
|
43
|
+
You can also run the command with `-L`, which will watch for file changes and update the index automatically.
|
44
|
+
|
45
|
+
```bash
|
46
|
+
cocoindex update --setup -L main
|
47
|
+
```
|
48
|
+
|
49
|
+
## CocoInsight
|
50
|
+
I used CocoInsight (Free beta now) to troubleshoot the index generation and understand the data lineage of the pipeline.
|
51
|
+
It just connects to your local CocoIndex server, with Zero pipeline data retention. Run following command to start CocoInsight:
|
52
|
+
|
53
|
+
```bash
|
54
|
+
cocoindex server -ci -L main
|
55
|
+
```
|
56
|
+
|
57
|
+
Open the CocoInsight UI at [https://cocoindex.io/cocoinsight](https://cocoindex.io/cocoinsight).
|
58
|
+
You can run queries in the CocoInsight UI.
|
@@ -0,0 +1,109 @@
|
|
1
|
+
from dotenv import load_dotenv
|
2
|
+
import datetime
|
3
|
+
import cocoindex
|
4
|
+
import math
|
5
|
+
import cocoindex.targets.lancedb as coco_lancedb
|
6
|
+
|
7
|
+
# Define LanceDB connection constants
|
8
|
+
LANCEDB_URI = "./lancedb_data" # Local directory for LanceDB
|
9
|
+
LANCEDB_TABLE = "TextEmbedding"
|
10
|
+
|
11
|
+
|
12
|
+
@cocoindex.transform_flow()
|
13
|
+
def text_to_embedding(
|
14
|
+
text: cocoindex.DataSlice[str],
|
15
|
+
) -> cocoindex.DataSlice[list[float]]:
|
16
|
+
"""
|
17
|
+
Embed the text using a SentenceTransformer model.
|
18
|
+
This is a shared logic between indexing and querying, so extract it as a function.
|
19
|
+
"""
|
20
|
+
return text.transform(
|
21
|
+
cocoindex.functions.SentenceTransformerEmbed(
|
22
|
+
model="sentence-transformers/all-MiniLM-L6-v2"
|
23
|
+
)
|
24
|
+
)
|
25
|
+
|
26
|
+
|
27
|
+
@cocoindex.flow_def(name="TextEmbeddingWithLanceDB")
|
28
|
+
def text_embedding_flow(
|
29
|
+
flow_builder: cocoindex.FlowBuilder, data_scope: cocoindex.DataScope
|
30
|
+
) -> None:
|
31
|
+
"""
|
32
|
+
Define an example flow that embeds text into a vector database.
|
33
|
+
"""
|
34
|
+
data_scope["documents"] = flow_builder.add_source(
|
35
|
+
cocoindex.sources.LocalFile(path="markdown_files"),
|
36
|
+
refresh_interval=datetime.timedelta(seconds=5),
|
37
|
+
)
|
38
|
+
|
39
|
+
doc_embeddings = data_scope.add_collector()
|
40
|
+
|
41
|
+
with data_scope["documents"].row() as doc:
|
42
|
+
doc["chunks"] = doc["content"].transform(
|
43
|
+
cocoindex.functions.SplitRecursively(),
|
44
|
+
language="markdown",
|
45
|
+
chunk_size=500,
|
46
|
+
chunk_overlap=100,
|
47
|
+
)
|
48
|
+
|
49
|
+
with doc["chunks"].row() as chunk:
|
50
|
+
chunk["embedding"] = text_to_embedding(chunk["text"])
|
51
|
+
doc_embeddings.collect(
|
52
|
+
id=cocoindex.GeneratedField.UUID,
|
53
|
+
filename=doc["filename"],
|
54
|
+
location=chunk["location"],
|
55
|
+
text=chunk["text"],
|
56
|
+
# 'text_embedding' is the name of the vector we've created the LanceDB table with.
|
57
|
+
text_embedding=chunk["embedding"],
|
58
|
+
)
|
59
|
+
|
60
|
+
doc_embeddings.export(
|
61
|
+
"doc_embeddings",
|
62
|
+
coco_lancedb.LanceDB(db_uri=LANCEDB_URI, table_name=LANCEDB_TABLE),
|
63
|
+
primary_key_fields=["id"],
|
64
|
+
# We cannot enable it when the table has no data yet, as LanceDB requires data to train the index.
|
65
|
+
# See: https://github.com/lancedb/lance/issues/4034
|
66
|
+
#
|
67
|
+
# vector_indexes=[
|
68
|
+
# cocoindex.VectorIndexDef(
|
69
|
+
# "text_embedding", cocoindex.VectorSimilarityMetric.L2_DISTANCE
|
70
|
+
# ),
|
71
|
+
# ],
|
72
|
+
)
|
73
|
+
|
74
|
+
|
75
|
+
@text_embedding_flow.query_handler(
|
76
|
+
result_fields=cocoindex.QueryHandlerResultFields(
|
77
|
+
embedding=["embedding"],
|
78
|
+
score="score",
|
79
|
+
),
|
80
|
+
)
|
81
|
+
async def search(query: str) -> cocoindex.QueryOutput:
|
82
|
+
print("Searching...", query)
|
83
|
+
db = await coco_lancedb.connect_async(LANCEDB_URI)
|
84
|
+
table = await db.open_table(LANCEDB_TABLE)
|
85
|
+
|
86
|
+
# Get the embedding for the query
|
87
|
+
query_embedding = await text_to_embedding.eval_async(query)
|
88
|
+
|
89
|
+
search = await table.search(query_embedding, vector_column_name="text_embedding")
|
90
|
+
search_results = await search.limit(5).to_list()
|
91
|
+
|
92
|
+
print(search_results)
|
93
|
+
|
94
|
+
return cocoindex.QueryOutput(
|
95
|
+
results=[
|
96
|
+
{
|
97
|
+
"filename": result["filename"],
|
98
|
+
"text": result["text"],
|
99
|
+
"embedding": result["text_embedding"],
|
100
|
+
# Qdrant's L2 "distance" is squared, so we take the square root to align with normal L2 distance
|
101
|
+
"score": math.sqrt(result["_distance"]),
|
102
|
+
}
|
103
|
+
for result in search_results
|
104
|
+
],
|
105
|
+
query_info=cocoindex.QueryInfo(
|
106
|
+
embedding=query_embedding,
|
107
|
+
similarity_metric=cocoindex.VectorSimilarityMetric.L2_DISTANCE,
|
108
|
+
),
|
109
|
+
)
|