cocoindex 0.2.17__tar.gz → 0.2.19__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.17 → cocoindex-0.2.19}/Cargo.lock +14 -3
- {cocoindex-0.2.17 → cocoindex-0.2.19}/Cargo.toml +3 -3
- {cocoindex-0.2.17 → cocoindex-0.2.19}/PKG-INFO +1 -1
- {cocoindex-0.2.17 → cocoindex-0.2.19}/THIRD_PARTY_NOTICES.html +34 -4
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/core/flow_def.mdx +3 -3
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/core/flow_methods.mdx +1 -1
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/core/settings.mdx +20 -18
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/examples/examples/image_search.md +1 -1
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/examples/examples/multi_format_index.md +1 -1
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/examples/examples/photo_search.md +2 -2
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/examples/examples/postgres_source.md +1 -1
- cocoindex-0.2.19/docs/docs/ops/functions.md +252 -0
- cocoindex-0.2.19/docs/docs/sources/amazons3.md +121 -0
- cocoindex-0.2.19/docs/docs/sources/azureblob.md +80 -0
- cocoindex-0.2.19/docs/docs/sources/googledrive.md +56 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/sources/index.md +5 -5
- cocoindex-0.2.19/docs/docs/sources/localfile.md +30 -0
- cocoindex-0.2.19/docs/docs/sources/postgres.md +104 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/targets/postgres.md +5 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/sidebars.ts +15 -14
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/amazon_s3_embedding/README.md +1 -1
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/azure_blob_embedding/README.md +1 -1
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/code_embedding/main.py +4 -9
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/docs_to_knowledge_graph/README.md +1 -1
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/docs_to_knowledge_graph/main.py +14 -4
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/gdrive_text_embedding/README.md +1 -1
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding/main.py +0 -12
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/functions/__init__.py +5 -10
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/functions/_engine_builtin_specs.py +4 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/sources/_engine_builtin_specs.py +3 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/targets/_engine_builtin_specs.py +10 -1
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/base/spec.rs +1 -1
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/execution/evaluator.rs +44 -32
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/execution/live_updater.rs +209 -156
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/llm/openai.rs +102 -76
- cocoindex-0.2.19/src/ops/functions/detect_program_lang.rs +125 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/functions/mod.rs +1 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/functions/split_recursively.rs +50 -218
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/registration.rs +4 -3
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/shared/mod.rs +1 -0
- cocoindex-0.2.19/src/ops/shared/program_langs.rs +495 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/sources/postgres.rs +34 -18
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/targets/neo4j.rs +30 -8
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/targets/postgres.rs +212 -51
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/utils/retryable.rs +30 -15
- cocoindex-0.2.17/docs/docs/ops/functions.md +0 -241
- {cocoindex-0.2.17 → cocoindex-0.2.19}/.cargo/config.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/.env.lib_debug +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/.github/ISSUE_TEMPLATE//360/237/220/233-bug-report.md" +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/.github/ISSUE_TEMPLATE//360/237/222/241-feature-request.md" +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/.github/SECURITY.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/.github/scripts/update_version.sh +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/.github/workflows/CI.yml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/.github/workflows/_docs_release.yml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/.github/workflows/_test.yml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/.github/workflows/docs_release.yml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/.github/workflows/docs_test.yml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/.github/workflows/format.yml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/.github/workflows/release.yml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/.gitignore +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/.pre-commit-config.yaml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/CODE_OF_CONDUCT.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/CONTRIBUTING.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/LICENSE +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/about.hbs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/about.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/dev/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/dev/generate_cli_docs.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/dev/neo4j.yaml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/dev/postgres.yaml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/.gitignore +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/about/community.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/ai/llm.mdx +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/contributing/guide.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/contributing/new_built_in_target.mdx +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/contributing/setup_dev_environment.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/core/basics.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/core/cli-commands.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/core/cli.mdx +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/core/data_example.svg +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/core/data_types.mdx +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/core/flow_example.svg +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/custom_ops/custom_functions.mdx +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/custom_ops/custom_targets.mdx +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/examples/examples/academic_papers_index.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/examples/examples/codebase_index.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/examples/examples/custom_targets.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/examples/examples/docs_to_knowledge_graph.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/examples/examples/document_ai.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/examples/examples/manual_extraction.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/examples/examples/patient_form_extraction.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/examples/examples/product_recommendation.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/examples/examples/simple_vector_index.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/examples/index.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/getting_started/installation.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/getting_started/markdown_files.zip +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/getting_started/overview.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/getting_started/quickstart.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/query.mdx +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/targets/index.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/targets/kuzu.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/targets/lancedb.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/targets/neo4j.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/targets/qdrant.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/tutorials/live_updates.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docs/tutorials/manage_flow_dynamically.mdx +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/docusaurus.config.ts +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/package.json +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/src/components/GitHubButton/index.tsx +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/src/css/custom.css +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/src/theme/DocCard/index.tsx +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/src/theme/DocCard/styles.module.css +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/src/theme/DocCardList/index.tsx +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/src/theme/DocCardList/styles.module.css +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/src/theme/Root.js +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/.nojekyll +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/docusaurus.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/academic_papers_index/abstract_chunks.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/academic_papers_index/basic_info.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/academic_papers_index/chunk_embedding.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/academic_papers_index/cover.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/academic_papers_index/first_page.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/academic_papers_index/flow.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/academic_papers_index/metadata.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/codebase_index/chunk.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/codebase_index/cover.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/codebase_index/flow.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/custom_targets/convert.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/custom_targets/cover.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/docs_to_knowledge_graph/cover.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/docs_to_knowledge_graph/dedupe.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/docs_to_knowledge_graph/export_document.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/docs_to_knowledge_graph/export_relationship.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/docs_to_knowledge_graph/extract_relationship.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/docs_to_knowledge_graph/flow.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/docs_to_knowledge_graph/relationship.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/docs_to_knowledge_graph/summary.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/document_ai/cover.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/document_ai/document_ai.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/document_ai/processor.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/image_search/cover.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/image_search/embedding.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/image_search/flow.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/image_search/multi_modal_architecture.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/image_search/result.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/manual_extraction/cover.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/manual_extraction/extraction.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/manual_extraction/flow.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/manual_extraction/summary.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/multi_format_index/colpali_architecture.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/multi_format_index/cover.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/multi_format_index/embed.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/multi_format_index/flow.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/multi_format_index/pages.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/patient_form_extraction/cover.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/patient_form_extraction/extraction.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/patient_form_extraction/fields.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/patient_form_extraction/flow.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/patient_form_extraction/tomarkdown.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/photo_search/cover.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/photo_search/extraction.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/photo_search/flow.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/postgres_source/collector.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/postgres_source/cover.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/postgres_source/description.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/postgres_source/embed.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/postgres_source/flow.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/postgres_source/lineage.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/postgres_source/price.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/postgres_source/source.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/product_recommendation/cover.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/product_recommendation/dedupe.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/product_recommendation/export_all.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/product_recommendation/export_product.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/product_recommendation/export_taxonomy.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/product_recommendation/extract_product.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/product_recommendation/extract_taxonomy.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/product_recommendation/neo4j.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/product_recommendation/parse_json.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/product_recommendation/taxonomy.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/simple_vector_index/chunk.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/simple_vector_index/cover.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/simple_vector_index/embed.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/examples/simple_vector_index/flow.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/favicon.ico +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/icon.svg +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/img/incremental-etl.gif +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/static/robots.txt +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/tsconfig.json +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/docs/yarn.lock +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/amazon_s3_embedding/.env.example +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/amazon_s3_embedding/.gitignore +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/amazon_s3_embedding/main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/amazon_s3_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/azure_blob_embedding/.env.example +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/azure_blob_embedding/.gitignore +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/azure_blob_embedding/main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/azure_blob_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/code_embedding/.env +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/code_embedding/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/code_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/custom_output_files/.env +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/custom_output_files/.gitignore +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/custom_output_files/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/custom_output_files/data/bizarre_animals.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/custom_output_files/data/chunk_norris.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/custom_output_files/main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/custom_output_files/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/docs_to_knowledge_graph/.env +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/docs_to_knowledge_graph/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/face_recognition/.env +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/face_recognition/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/face_recognition/images/Carter_welcomes_Reagan.jpg +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/face_recognition/images/Solvay_conference_1927.jpg +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/face_recognition/images/Steve_Jobs_and_Bill_Gates_(522695099).jpg +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/face_recognition/images/einplanck3.jpg +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/face_recognition/main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/face_recognition/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/fastapi_server_docker/.dockerignore +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/fastapi_server_docker/.env +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/fastapi_server_docker/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/fastapi_server_docker/compose.yaml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/fastapi_server_docker/dockerfile +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/fastapi_server_docker/files/1810.04805v2.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/fastapi_server_docker/main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/fastapi_server_docker/requirements.txt +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/gdrive_text_embedding/.env.example +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/gdrive_text_embedding/.gitignore +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/gdrive_text_embedding/main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/gdrive_text_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/image_search/.env +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/image_search/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/image_search/colpali_main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/image_search/frontend/.gitignore +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/image_search/frontend/index.html +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/image_search/frontend/package-lock.json +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/image_search/frontend/package.json +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/image_search/frontend/src/App.jsx +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/image_search/frontend/src/main.jsx +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/image_search/frontend/src/style.css +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/image_search/frontend/vite.config.js +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/image_search/img/cat1.jpeg +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/image_search/img/dog1.jpeg +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/image_search/img/elephant1.jpg +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/image_search/img/giraffe.jpg +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/image_search/main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/image_search/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/live_updates/.env +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/live_updates/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/live_updates/data/bizarre_animals.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/live_updates/data/chunk_norris.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/live_updates/main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/live_updates/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/manuals_llm_extraction/.env +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/manuals_llm_extraction/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/manuals_llm_extraction/main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/manuals_llm_extraction/manuals/array.pdf +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/manuals_llm_extraction/manuals/base64.pdf +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/manuals_llm_extraction/manuals/copy.pdf +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/manuals_llm_extraction/manuals/glob.pdf +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/manuals_llm_extraction/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/multi_format_indexing/.env +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/multi_format_indexing/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/multi_format_indexing/main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/multi_format_indexing/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/multi_format_indexing/source_files/1706.03762v7.pdf +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/multi_format_indexing/source_files/1810.04805v2.pdf +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/multi_format_indexing/source_files/2502.06786v3.pdf +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/multi_format_indexing/source_files/healthcare_industry_test_p101.jpg +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/multi_format_indexing/source_files/healthcare_industry_test_p86.jpg +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/multi_format_indexing/source_files/healthcare_industry_test_p9.jpg +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/multi_format_indexing/source_files/restaurant_brands_international_2023.jpg +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/multi_format_indexing/source_files/sweetgreen_2023.jpg +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/paper_metadata/.env.example +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/paper_metadata/.gitignore +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/paper_metadata/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/paper_metadata/main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/paper_metadata/papers/1706.03762v7.pdf +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/paper_metadata/papers/1810.04805v2.pdf +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/paper_metadata/papers/2502.06786v3.pdf +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/paper_metadata/papers/2502.20346v1.pdf +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/paper_metadata/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/patient_intake_extraction/.env.example +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/patient_intake_extraction/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/patient_intake_extraction/data/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_David_Artificial.docx +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_Emily_Artificial.pdf +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_Joe_Artificial.pdf +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_From_Jane_Artificial.docx +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/patient_intake_extraction/main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/patient_intake_extraction/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/pdf_embedding/.env +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/pdf_embedding/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/pdf_embedding/main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/pdf_embedding/pdf_files/1706.03762v7.pdf +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/pdf_embedding/pdf_files/1810.04805v2.pdf +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/pdf_embedding/pdf_files/rfc8259.pdf +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/pdf_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/postgres_source/.env +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/postgres_source/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/postgres_source/main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/postgres_source/prepare_source_data.sql +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/postgres_source/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/product_recommendation/.env.example +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/product_recommendation/.gitignore +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/product_recommendation/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/product_recommendation/img/cocoinsight.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/product_recommendation/img/neo4j.png +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/product_recommendation/main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/product_recommendation/products/p1.json +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/product_recommendation/products/p2.json +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/product_recommendation/products/p3.json +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/product_recommendation/products/p4.json +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/product_recommendation/products/p5.json +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/product_recommendation/products/p6.json +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/product_recommendation/products/p7.json +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/product_recommendation/products/p8.json +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/product_recommendation/products/p9.json +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/product_recommendation/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding/.env +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding/Text_Embedding.ipynb +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding/markdown_files/1706.03762v7.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding/markdown_files/1810.04805v2.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding/markdown_files/rfc8259.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding_lancedb/.env +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding_lancedb/.gitignore +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding_lancedb/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding_lancedb/main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding_lancedb/markdown_files/rfc8259.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding_lancedb/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding_qdrant/.env +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding_qdrant/README.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding_qdrant/main.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding_qdrant/markdown_files/rfc8259.md +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/examples/text_embedding_qdrant/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/pyproject.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/__init__.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/auth_registry.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/cli.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/engine_object.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/engine_value.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/flow.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/functions/colpali.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/functions/sbert.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/functions.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/index.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/lib.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/llm.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/op.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/py.typed +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/query_handler.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/runtime.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/setting.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/setup.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/sources/__init__.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/subprocess_exec.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/targets/__init__.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/targets/lancedb.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/tests/__init__.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/tests/test_engine_object.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/tests/test_engine_value.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/tests/test_optional_database.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/tests/test_transform_flow.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/tests/test_typing.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/tests/test_validation.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/typing.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/user_app_loader.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/utils.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/python/cocoindex/validation.py +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/ruff.toml +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/base/duration.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/base/field_attrs.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/base/json_schema.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/base/mod.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/base/schema.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/base/value.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/builder/analyzed_flow.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/builder/analyzer.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/builder/exec_ctx.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/builder/flow_builder.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/builder/mod.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/builder/plan.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/execution/db_tracking.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/execution/db_tracking_setup.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/execution/dumper.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/execution/indexing_status.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/execution/memoization.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/execution/mod.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/execution/row_indexer.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/execution/source_indexer.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/execution/stats.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/lib.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/lib_context.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/llm/anthropic.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/llm/gemini.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/llm/litellm.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/llm/mod.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/llm/ollama.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/llm/openrouter.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/llm/vllm.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/llm/voyage.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/factory_bases.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/functions/embed_text.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/functions/extract_by_llm.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/functions/parse_json.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/functions/split_by_separators.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/functions/test_utils.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/interface.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/mod.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/py_factory.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/registry.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/sdk.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/shared/postgres.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/shared/split.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/sources/amazon_s3.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/sources/azure_blob.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/sources/google_drive.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/sources/local_file.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/sources/mod.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/sources/shared/mod.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/sources/shared/pattern_matcher.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/targets/kuzu.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/targets/mod.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/targets/qdrant.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/targets/shared/mod.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/targets/shared/property_graph.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/ops/targets/shared/table_columns.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/prelude.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/py/convert.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/py/mod.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/server.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/service/error.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/service/flows.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/service/mod.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/service/query_handler.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/settings.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/setup/auth_registry.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/setup/components.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/setup/db_metadata.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/setup/driver.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/setup/flow_features.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/setup/mod.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/setup/states.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/utils/concur_control.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/utils/db.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/utils/deser.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/utils/fingerprint.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/utils/immutable.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/utils/mod.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/utils/str_sanitize.rs +0 -0
- {cocoindex-0.2.17 → cocoindex-0.2.19}/src/utils/yaml_ser.rs +0 -0
@@ -1283,7 +1283,7 @@ dependencies = [
|
|
1283
1283
|
|
1284
1284
|
[[package]]
|
1285
1285
|
name = "cocoindex"
|
1286
|
-
version = "0.2.
|
1286
|
+
version = "0.2.19"
|
1287
1287
|
dependencies = [
|
1288
1288
|
"anyhow",
|
1289
1289
|
"async-openai",
|
@@ -2573,6 +2573,16 @@ dependencies = [
|
|
2573
2573
|
"tracing",
|
2574
2574
|
]
|
2575
2575
|
|
2576
|
+
[[package]]
|
2577
|
+
name = "half"
|
2578
|
+
version = "2.6.0"
|
2579
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2580
|
+
checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9"
|
2581
|
+
dependencies = [
|
2582
|
+
"cfg-if",
|
2583
|
+
"crunchy",
|
2584
|
+
]
|
2585
|
+
|
2576
2586
|
[[package]]
|
2577
2587
|
name = "hashbrown"
|
2578
2588
|
version = "0.12.3"
|
@@ -3721,6 +3731,7 @@ version = "0.4.1"
|
|
3721
3731
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3722
3732
|
checksum = "fc58e2d255979a31caa7cabfa7aac654af0354220719ab7a68520ae7a91e8c0b"
|
3723
3733
|
dependencies = [
|
3734
|
+
"half",
|
3724
3735
|
"sqlx",
|
3725
3736
|
]
|
3726
3737
|
|
@@ -5845,9 +5856,9 @@ checksum = "c4013970217383f67b18aef68f6fb2e8d409bc5755227092d32efb0422ba24b8"
|
|
5845
5856
|
|
5846
5857
|
[[package]]
|
5847
5858
|
name = "tree-sitter-md"
|
5848
|
-
version = "0.
|
5859
|
+
version = "0.5.1"
|
5849
5860
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
5850
|
-
checksum = "
|
5861
|
+
checksum = "2b55ea8733e098490746a07d6f629d1f7820e8953a4aab1341ae39123bcdf93d"
|
5851
5862
|
dependencies = [
|
5852
5863
|
"cc",
|
5853
5864
|
"tree-sitter-language",
|
@@ -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.19"
|
6
6
|
edition = "2024"
|
7
7
|
rust-version = "1.89"
|
8
8
|
license = "Apache-2.0"
|
@@ -62,7 +62,7 @@ tower = "0.5.2"
|
|
62
62
|
tower-http = { version = "0.6.6", features = ["cors", "trace"] }
|
63
63
|
indexmap = { version = "2.10.0", features = ["serde"] }
|
64
64
|
blake2 = "0.10.6"
|
65
|
-
pgvector = { version = "0.4.1", features = ["sqlx"] }
|
65
|
+
pgvector = { version = "0.4.1", features = ["sqlx", "halfvec"] }
|
66
66
|
phf = { version = "0.12.1", features = ["macros"] }
|
67
67
|
indenter = "0.3.4"
|
68
68
|
itertools = "0.14.0"
|
@@ -91,7 +91,7 @@ tree-sitter-javascript = "0.23.1"
|
|
91
91
|
tree-sitter-json = "0.24.8"
|
92
92
|
# The other more popular crate tree-sitter-kotlin requires tree-sitter < 0.23 for now
|
93
93
|
tree-sitter-kotlin-ng = "1.1.0"
|
94
|
-
tree-sitter-md = "0.
|
94
|
+
tree-sitter-md = "0.5.1"
|
95
95
|
tree-sitter-pascal = "0.10.0"
|
96
96
|
tree-sitter-php = "0.23.11"
|
97
97
|
tree-sitter-python = "0.23.6"
|
@@ -44,8 +44,8 @@
|
|
44
44
|
|
45
45
|
<h2>Overview of licenses:</h2>
|
46
46
|
<ul class="licenses-overview">
|
47
|
-
<li><a href="#Apache-2.0">Apache License 2.0</a> (
|
48
|
-
<li><a href="#MIT">MIT License</a> (
|
47
|
+
<li><a href="#Apache-2.0">Apache License 2.0</a> (416)</li>
|
48
|
+
<li><a href="#MIT">MIT License</a> (126)</li>
|
49
49
|
<li><a href="#Unicode-3.0">Unicode License v3</a> (19)</li>
|
50
50
|
<li><a href="#ISC">ISC License</a> (8)</li>
|
51
51
|
<li><a href="#BSD-3-Clause">BSD 3-Clause "New" or "Revised" License</a> (6)</li>
|
@@ -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.19</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>
|
@@ -9559,6 +9559,7 @@ limitations under the License.
|
|
9559
9559
|
<li><a href=" https://github.com/googleapis/google-cloud-rust/tree/main ">google-cloud-rpc 0.4.5</a></li>
|
9560
9560
|
<li><a href=" https://github.com/googleapis/google-cloud-rust/tree/main ">google-cloud-type 0.4.5</a></li>
|
9561
9561
|
<li><a href=" https://github.com/googleapis/google-cloud-rust/tree/main ">google-cloud-wkt 0.5.4</a></li>
|
9562
|
+
<li><a href=" https://github.com/VoidStarKat/half-rs ">half 2.6.0</a></li>
|
9562
9563
|
<li><a href=" https://github.com/TedDriggs/ident_case ">ident_case 1.0.1</a></li>
|
9563
9564
|
<li><a href=" https://github.com/yaahc/indenter ">indenter 0.3.4</a></li>
|
9564
9565
|
<li><a href=" https://github.com/dtolnay/indoc ">indoc 2.0.6</a></li>
|
@@ -11931,7 +11932,7 @@ SOFTWARE.
|
|
11931
11932
|
<li><a href=" https://github.com/tree-sitter/tree-sitter-json ">tree-sitter-json 0.24.8</a></li>
|
11932
11933
|
<li><a href=" https://github.com/tree-sitter-grammars/tree-sitter-kotlin ">tree-sitter-kotlin-ng 1.1.0</a></li>
|
11933
11934
|
<li><a href=" https://github.com/tree-sitter/tree-sitter ">tree-sitter-language 0.1.5</a></li>
|
11934
|
-
<li><a href=" https://github.com/tree-sitter-grammars/tree-sitter-markdown ">tree-sitter-md 0.
|
11935
|
+
<li><a href=" https://github.com/tree-sitter-grammars/tree-sitter-markdown ">tree-sitter-md 0.5.1</a></li>
|
11935
11936
|
<li><a href=" https://github.com/Isopod/tree-sitter-pascal ">tree-sitter-pascal 0.10.0</a></li>
|
11936
11937
|
<li><a href=" https://github.com/tree-sitter/tree-sitter-php ">tree-sitter-php 0.23.11</a></li>
|
11937
11938
|
<li><a href=" https://github.com/tree-sitter/tree-sitter-python ">tree-sitter-python 0.23.6</a></li>
|
@@ -12174,6 +12175,35 @@ furnished to do so, subject to the following conditions:
|
|
12174
12175
|
The above copyright notice and this permission notice shall be included in all
|
12175
12176
|
copies or substantial portions of the Software.
|
12176
12177
|
|
12178
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
12179
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
12180
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
12181
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
12182
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
12183
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
12184
|
+
SOFTWARE.
|
12185
|
+
</pre>
|
12186
|
+
</li>
|
12187
|
+
<li class="license">
|
12188
|
+
<h3 id="MIT">MIT License</h3>
|
12189
|
+
<h4>Used by:</h4>
|
12190
|
+
<ul class="license-used-by">
|
12191
|
+
<li><a href=" https://github.com/eira-fransham/crunchy ">crunchy 0.2.4</a></li>
|
12192
|
+
</ul>
|
12193
|
+
<pre class="license-text">The MIT License (MIT)
|
12194
|
+
|
12195
|
+
Copyright 2017-2023 Eira Fransham.
|
12196
|
+
|
12197
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
12198
|
+
of this software and associated documentation files (the "Software"), to deal
|
12199
|
+
in the Software without restriction, including without limitation the rights
|
12200
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
12201
|
+
copies of the Software, and to permit persons to whom the Software is
|
12202
|
+
furnished to do so, subject to the following conditions:
|
12203
|
+
|
12204
|
+
The above copyright notice and this permission notice shall be included in all
|
12205
|
+
copies or substantial portions of the Software.
|
12206
|
+
|
12177
12207
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
12178
12208
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
12179
12209
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
@@ -313,9 +313,9 @@ Types of the fields must be key types. See [Key Types](data_types#key-types) for
|
|
313
313
|
|
314
314
|
*Vector index* is specified by `vector_indexes` (`Sequence[VectorIndexDef]`). `VectorIndexDef` has the following fields:
|
315
315
|
|
316
|
-
|
317
|
-
|
318
|
-
|
316
|
+
* `field_name`: the field to create vector index.
|
317
|
+
* `metric`: the similarity metric to use.
|
318
|
+
* `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.
|
319
319
|
|
320
320
|
#### Similarity Metrics
|
321
321
|
|
@@ -210,7 +210,7 @@ A data source may enable one or multiple *change capture mechanisms*:
|
|
210
210
|
* Configured with a [refresh interval](flow_def#refresh-interval), which is generally applicable to all data sources.
|
211
211
|
|
212
212
|
* Specific data sources also provide their specific change capture mechanisms.
|
213
|
-
For example, [`Postgres` source](../sources
|
213
|
+
For example, [`Postgres` source](../sources/postgres) listens to PostgreSQL's change notifications, [`AmazonS3` source](../sources/amazons3) watches S3 bucket's change events, and [`GoogleDrive` source](../sources/googledrive) allows polling recent modified files.
|
214
214
|
See documentations for specific data sources.
|
215
215
|
|
216
216
|
Change capture mechanisms enable CocoIndex to continuously capture changes from the source data and update the target data accordingly, under live update mode.
|
@@ -14,9 +14,8 @@ Certain settings need to be provided for CocoIndex to work, e.g. database connec
|
|
14
14
|
|
15
15
|
Note that in general, you have two ways to launch CocoIndex:
|
16
16
|
|
17
|
-
*
|
18
|
-
*
|
19
|
-
|
17
|
+
* Call CocoIndex APIs from your own Python application or library.
|
18
|
+
* Use [Cocoindex CLI](cli). It's handy for most routine indexing building and management tasks.
|
20
19
|
|
21
20
|
CocoIndex exposes process-level settings specified by `cocoindex.Settings` dataclass.
|
22
21
|
Settings can be configured in three different ways.
|
@@ -77,10 +76,10 @@ But be careful that if you call `cocoindex.init()` only under the path of main (
|
|
77
76
|
|
78
77
|
`cocoindex.init()` is optional:
|
79
78
|
|
80
|
-
|
79
|
+
* You can call `cocoindex.init()` with a `cocoindex.Settings` dataclass object as argument, or without any argument.
|
81
80
|
When without argument, the settings will be loaded from the `@cocoindex.settings` function or environment variables.
|
82
81
|
|
83
|
-
|
82
|
+
* You don't have to explicitly call `cocoindex.init()`.
|
84
83
|
CocoIndex will be automatically initialized when needed, e.g. when any method of any flow is called the first time.
|
85
84
|
But calling `cocoindex.init()` explicitly (usually at startup time, e.g. in the main function of your application) has the benefit of making sure CocoIndex library is initialized and any potential exceptions are raised earlier before proceeding with the application.
|
86
85
|
If you need this clarity, you can call it explicitly even if you don't want to provide settings by the `cocoindex.init()` call.
|
@@ -91,9 +90,9 @@ But be careful that if you call `cocoindex.init()` only under the path of main (
|
|
91
90
|
|
92
91
|
`cocoindex.Settings` is a dataclass that contains the following fields:
|
93
92
|
|
94
|
-
*
|
95
|
-
*
|
96
|
-
*
|
93
|
+
* `app_namespace` (type: `str`, required): The namespace of the application.
|
94
|
+
* `database` (type: `DatabaseConnectionSpec`, required): The connection to the Postgres database.
|
95
|
+
* `global_execution_options` (type: `GlobalExecutionOptions`, optional): The global execution options shared by all flows.
|
97
96
|
|
98
97
|
### App Namespace
|
99
98
|
|
@@ -110,15 +109,15 @@ If not set, all flows are in a default unnamed namespace.
|
|
110
109
|
|
111
110
|
`DatabaseConnectionSpec` configures the connection to a database. Only Postgres is supported for now. It has the following fields:
|
112
111
|
|
113
|
-
*
|
112
|
+
* `url` (type: `str`): The URL of the Postgres database to use as the internal storage, e.g. `postgres://cocoindex:cocoindex@localhost/cocoindex`.
|
114
113
|
|
115
114
|
*Environment variable* for `Settings.database.url`: `COCOINDEX_DATABASE_URL`
|
116
115
|
|
117
|
-
*
|
116
|
+
* `user` (type: `Optional[str]`, default: `None`): The username for the Postgres database. If not provided, username will come from `url`.
|
118
117
|
|
119
118
|
*Environment variable* for `Settings.database.user`: `COCOINDEX_DATABASE_USER`
|
120
119
|
|
121
|
-
*
|
120
|
+
* `password` (type: `Optional[str]`, default: `None`): The password for the Postgres database. If not provided, password will come from `url`.
|
122
121
|
|
123
122
|
*Environment variable* for `Settings.database.password`: `COCOINDEX_DATABASE_PASSWORD`
|
124
123
|
|
@@ -129,21 +128,24 @@ If not set, all flows are in a default unnamed namespace.
|
|
129
128
|
|
130
129
|
:::
|
131
130
|
|
132
|
-
*
|
131
|
+
* `max_connections` (type: `int`, default: `25`): The maximum number of connections to keep in the pool.
|
133
132
|
|
134
133
|
*Environment variable* for `Settings.database.max_connections`: `COCOINDEX_DATABASE_MAX_CONNECTIONS`
|
135
134
|
|
136
|
-
*
|
135
|
+
* `min_connections` (type: `int`, default: `5`): The minimum number of connections to keep in the pool.
|
137
136
|
|
138
137
|
*Environment variable* for `Settings.database.min_connections`: `COCOINDEX_DATABASE_MIN_CONNECTIONS`
|
139
138
|
|
140
|
-
|
141
139
|
:::info
|
142
140
|
|
143
141
|
If you use the Postgres database hosted by [Supabase](https://supabase.com/), please click **Connect** on your project dashboard and find the following URL:
|
144
142
|
|
145
|
-
*
|
146
|
-
*
|
143
|
+
* If you're on a IPv6 network, use the URL under **Direct connection**. You can visit [IPv6 test](https://test-ipv6.com/) to see if you have IPv6 Internet connection.
|
144
|
+
* Otherwise, use the URL under **Session pooler**.
|
145
|
+
Note that Supabase has a pool size limit of 15 by default, while CocoIndex's default `max_connections` value is 25.
|
146
|
+
You can adjust either value to make sure Supabase's pool size limit is greater than CocoIndex's `max_connections` value.
|
147
|
+
Supabase's pool size limit can be adjusted under "Database" -> "Settings".
|
148
|
+
* CocoIndex doesn't support *Transaction pooler* now.
|
147
149
|
|
148
150
|
:::
|
149
151
|
|
@@ -151,8 +153,8 @@ If you use the Postgres database hosted by [Supabase](https://supabase.com/), pl
|
|
151
153
|
|
152
154
|
`GlobalExecutionOptions` is used to configure the global execution options shared by all flows. It has the following fields:
|
153
155
|
|
154
|
-
*
|
155
|
-
*
|
156
|
+
* `source_max_inflight_rows` (type: `int | None`, default: `1024`): The maximum number of concurrent inflight rows for all source operations.
|
157
|
+
* `source_max_inflight_bytes` (type: `int | None`, default: `None`): The maximum number of concurrent inflight bytes for all source operations.
|
156
158
|
|
157
159
|
See also [flow definition docs](/docs/core/flow_def#control-processing-concurrency) about why it's necessary to control processing concurrency, and how to configure it on per-source basis.
|
158
160
|
If both global and per-source limits are specified, both need to be satisfied to admit additional source rows.
|
@@ -66,7 +66,7 @@ def image_object_embedding_flow(flow_builder, data_scope):
|
|
66
66
|
|
67
67
|
The `add_source` function sets up a table with fields like `filename` and `content`. Images are automatically re-scanned every minute.
|
68
68
|
|
69
|
-
<DocumentationButton url="https://cocoindex.io/docs/ops/sources
|
69
|
+
<DocumentationButton url="https://cocoindex.io/docs/ops/sources/localfile" text="LocalFile" />
|
70
70
|
|
71
71
|
|
72
72
|
## Process Each Image and Collect the Embedding
|
@@ -52,7 +52,7 @@ data_scope["documents"] = flow_builder.add_source(
|
|
52
52
|
cocoindex.sources.LocalFile(path="source_files", binary=True)
|
53
53
|
)
|
54
54
|
```
|
55
|
-
<DocumentationButton url="https://cocoindex.io/docs/ops/sources
|
55
|
+
<DocumentationButton url="https://cocoindex.io/docs/ops/sources/localfile" text="LocalFile" margin="0 0 16px 0" />
|
56
56
|
|
57
57
|
|
58
58
|
## Convert Files to Pages
|
@@ -65,8 +65,8 @@ def face_recognition_flow(flow_builder, data_scope):
|
|
65
65
|
This creates a table with `filename` and `content` fields. 📂
|
66
66
|
|
67
67
|
|
68
|
-
You can connect it to your [S3 Buckets](https://cocoindex.io/docs/ops/sources
|
69
|
-
or [Azure Blob store](https://cocoindex.io/docs/ops/sources
|
68
|
+
You can connect it to your [S3 Buckets](https://cocoindex.io/docs/ops/sources/amazons3) (with SQS integration, [example](https://cocoindex.io/blogs/s3-incremental-etl))
|
69
|
+
or [Azure Blob store](https://cocoindex.io/docs/ops/sources/azureblob).
|
70
70
|
|
71
71
|
## Detect and Extract Faces
|
72
72
|
|
@@ -59,7 +59,7 @@ CocoIndex incrementally sync data from Postgres. When new or updated rows are fo
|
|
59
59
|
- `notification` enables change capture based on Postgres LISTEN/NOTIFY. Each change triggers an incremental processing on the specific row immediately.
|
60
60
|
- Regardless if `notification` is provided or not, CocoIndex still needs to scan the full table to detect changes in some scenarios (e.g. between two `update` invocation), and the `ordinal_column` provides a field that CocoIndex can use to quickly detect which row has changed without reading value columns.
|
61
61
|
|
62
|
-
Check [Postgres source](https://cocoindex.io/docs/ops/sources
|
62
|
+
Check [Postgres source](https://cocoindex.io/docs/ops/sources/postgres) for more details.
|
63
63
|
|
64
64
|
If you use the Postgres database hosted by Supabase, please click Connect on your project dashboard and find the URL there. Check [DatabaseConnectionSpec](https://cocoindex.io/docs/core/settings#databaseconnectionspec)
|
65
65
|
for more details.
|
@@ -0,0 +1,252 @@
|
|
1
|
+
---
|
2
|
+
title: Functions
|
3
|
+
description: CocoIndex Built-in Functions
|
4
|
+
---
|
5
|
+
|
6
|
+
# CocoIndex Built-in Functions
|
7
|
+
|
8
|
+
## ParseJson
|
9
|
+
|
10
|
+
`ParseJson` parses a given text to JSON.
|
11
|
+
|
12
|
+
Input data:
|
13
|
+
|
14
|
+
* `text` (*Str*): The source text to parse.
|
15
|
+
* `language` (*Optional[Str]*, default: `"json"`): The language of the source text. Only `json` is supported now.
|
16
|
+
|
17
|
+
Return: *Json*, the parsed JSON object.
|
18
|
+
|
19
|
+
## DetectProgrammingLanguage
|
20
|
+
|
21
|
+
`DetectProgrammingLanguage` detects the programming language of a file based on its filename extension.
|
22
|
+
|
23
|
+
Input data:
|
24
|
+
|
25
|
+
* `filename` (*Str*): The filename (with extension) to detect the language for.
|
26
|
+
|
27
|
+
Return: *Str* or *Null*. Returns the programming language name if the file extension is recognized, or *Null* if the extension is not supported.
|
28
|
+
|
29
|
+
The returned string values match the language name listed in [`tree-sitter-language-pack`](https://github.com/Goldziher/tree-sitter-language-pack?tab=readme-ov-file#available-languages).
|
30
|
+
|
31
|
+
## SplitRecursively
|
32
|
+
|
33
|
+
`SplitRecursively` splits a document into chunks of a given size.
|
34
|
+
It tries to split at higher-level boundaries. If each chunk is still too large, it tries at the next level of boundaries.
|
35
|
+
For example, for a Markdown file, it identifies boundaries in this order: level-1 sections, level-2 sections, level-3 sections, paragraphs, sentences, etc.
|
36
|
+
|
37
|
+
The spec takes the following fields:
|
38
|
+
|
39
|
+
* `custom_languages` (`list[CustomLanguageSpec]`, optional): This allows you to customize the way to chunking specific languages using regular expressions. Each `CustomLanguageSpec` is a dict with the following fields:
|
40
|
+
* `language_name` (`str`): Name of the language.
|
41
|
+
* `aliases` (`list[str]`, optional): A list of aliases for the language.
|
42
|
+
It's an error if any language name or alias is duplicated.
|
43
|
+
|
44
|
+
* `separators_regex` (`list[str]`): A list of regex patterns to split the text.
|
45
|
+
Higher-level boundaries should come first, and lower-level should be listed later. e.g. `[r"\n# ", r"\n## ", r"\n\n", r"\. "]`.
|
46
|
+
See [regex syntax](https://docs.rs/regex/latest/regex/#syntax) for supported regular expression syntax.
|
47
|
+
|
48
|
+
Input data:
|
49
|
+
|
50
|
+
* `text` (*Str*): The text to split.
|
51
|
+
* `chunk_size` (*Int64*): The maximum size of each chunk, in bytes.
|
52
|
+
* `min_chunk_size` (*Int64*, default: `chunk_size / 2`): The minimum size of each chunk, in bytes.
|
53
|
+
|
54
|
+
:::note
|
55
|
+
|
56
|
+
`SplitRecursively` will do its best to make the output chunks sized between `min_chunk_size` and `chunk_size`.
|
57
|
+
However, it's possible that some chunks are smaller than `min_chunk_size` or larger than `chunk_size` in rare cases, e.g. too short input text, or non-splittable large text.
|
58
|
+
|
59
|
+
Please avoid setting `min_chunk_size` to a value too close to `chunk_size`, to leave more rooms for the function to plan the optimal chunking.
|
60
|
+
|
61
|
+
:::
|
62
|
+
|
63
|
+
* `chunk_overlap` (*Optional[Int64]*, default: *None*): The maximum overlap size between adjacent chunks, in bytes.
|
64
|
+
* `language` (*Str*, default: `""`): The language of the document.
|
65
|
+
Can be a language name (e.g. `python`, `javascript`, `markdown`) or a file extension (e.g. `.py`, `.js`, `.md`).
|
66
|
+
|
67
|
+
:::note
|
68
|
+
|
69
|
+
We use the `language` field to determine how to split the input text, following these rules:
|
70
|
+
|
71
|
+
* We match the input `language` field against the following registries in the following order:
|
72
|
+
* `custom_languages` in the spec, against the `language_name` or `aliases` field of each entry.
|
73
|
+
* Builtin languages (see [Supported Languages](#supported-languages) section below), against the language, aliases or file extensions of each entry.
|
74
|
+
|
75
|
+
All matches are in a case-insensitive manner.
|
76
|
+
|
77
|
+
* If no match is found, the input will be treated as plain text.
|
78
|
+
|
79
|
+
:::
|
80
|
+
|
81
|
+
Return: [*KTable*](/docs/core/data_types#ktable), each row represents a chunk, with the following sub fields:
|
82
|
+
|
83
|
+
* `location` (*Range*): The location of the chunk.
|
84
|
+
* `text` (*Str*): The text of the chunk.
|
85
|
+
* `start` / `end` (*Struct*): Details about the start position (inclusive) and end position (exclusive) of the chunk. They have the following sub fields:
|
86
|
+
* `offset` (*Int64*): The byte offset of the position.
|
87
|
+
* `line` (*Int64*): The line number of the position. Starting from 1.
|
88
|
+
* `column` (*Int64*): The column number of the position. Starting from 1.
|
89
|
+
|
90
|
+
### Supported Languages
|
91
|
+
|
92
|
+
Currently, `SplitRecursively` supports the following languages:
|
93
|
+
|
94
|
+
| Language | Aliases | File Extensions |
|
95
|
+
|----------|---------|-----------------|
|
96
|
+
| c | | `.c` |
|
97
|
+
| cpp | c++ | `.cpp`, `.cc`, `.cxx`, `.h`, `.hpp` |
|
98
|
+
| csharp | csharp, cs | `.cs` |
|
99
|
+
| css | | `.css`, `.scss` |
|
100
|
+
| dtd | | `.dtd` |
|
101
|
+
| fortran | f, f90, f95, f03 | `.f`, `.f90`, `.f95`, `.f03` |
|
102
|
+
| go | golang | `.go` |
|
103
|
+
| html | | `.html`, `.htm` |
|
104
|
+
| java | | `.java` |
|
105
|
+
| javascript | js | `.js` |
|
106
|
+
| json | | `.json` |
|
107
|
+
| kotlin | | `.kt`, `.kts` |
|
108
|
+
| markdown | md | `.md`, `.mdx` |
|
109
|
+
| pascal | pas, dpr, delphi | `.pas`, `.dpr` |
|
110
|
+
| php | | `.php` |
|
111
|
+
| python | | `.py` |
|
112
|
+
| r | | `.r` |
|
113
|
+
| ruby | | `.rb` |
|
114
|
+
| rust | rs | `.rs` |
|
115
|
+
| scala | | `.scala` |
|
116
|
+
| solidity | | `.sol` |
|
117
|
+
| sql | | `.sql` |
|
118
|
+
| swift | | `.swift` |
|
119
|
+
| toml | | `.toml` |
|
120
|
+
| tsx | | `.tsx` |
|
121
|
+
| typescript | ts | `.ts` |
|
122
|
+
| xml | | `.xml` |
|
123
|
+
| yaml | | `.yaml`, `.yml` |
|
124
|
+
|
125
|
+
## SentenceTransformerEmbed
|
126
|
+
|
127
|
+
`SentenceTransformerEmbed` embeds a text into a vector space using the [SentenceTransformer](https://huggingface.co/sentence-transformers) library.
|
128
|
+
|
129
|
+
:::note Optional Dependency Required
|
130
|
+
|
131
|
+
This function requires the 'sentence-transformers' library, which is an optional dependency. Install CocoIndex with:
|
132
|
+
|
133
|
+
```bash
|
134
|
+
pip install 'cocoindex[embeddings]'
|
135
|
+
```
|
136
|
+
|
137
|
+
:::
|
138
|
+
|
139
|
+
The spec takes the following fields:
|
140
|
+
|
141
|
+
* `model` (`str`): The name of the SentenceTransformer model to use.
|
142
|
+
* `args` (`dict[str, Any]`, optional): Additional arguments to pass to the SentenceTransformer constructor. e.g. `{"trust_remote_code": True}`
|
143
|
+
|
144
|
+
Input data:
|
145
|
+
|
146
|
+
* `text` (*Str*): The text to embed.
|
147
|
+
|
148
|
+
Return: *Vector[Float32, N]*, where *N* is determined by the model
|
149
|
+
|
150
|
+
## ExtractByLlm
|
151
|
+
|
152
|
+
`ExtractByLlm` extracts structured information from a text using specified LLM. The spec takes the following fields:
|
153
|
+
|
154
|
+
* `llm_spec` (`cocoindex.LlmSpec`): The specification of the LLM to use. See [LLM Spec](/docs/ai/llm#llm-spec) for more details.
|
155
|
+
* `output_type` (`type`): The type of the output. e.g. a dataclass type name. See [Data Types](/docs/core/data_types) for all supported data types. The LLM will output values that match the schema of the type.
|
156
|
+
* `instruction` (`str`, optional): Additional instruction for the LLM.
|
157
|
+
|
158
|
+
:::tip Clear type definitions
|
159
|
+
|
160
|
+
Definitions of the `output_type` is fed into LLM as guidance to generate the output.
|
161
|
+
To improve the quality of the extracted information, giving clear definitions for your dataclasses is especially important, e.g.
|
162
|
+
|
163
|
+
* Provide readable field names for your dataclasses.
|
164
|
+
* Provide reasonable docstrings for your dataclasses.
|
165
|
+
* For any optional fields, clearly annotate that they are optional, by `SomeType | None` or `typing.Optional[SomeType]`.
|
166
|
+
|
167
|
+
:::
|
168
|
+
|
169
|
+
Input data:
|
170
|
+
|
171
|
+
* `text` (*Str*): The text to extract information from.
|
172
|
+
|
173
|
+
Return: As specified by the `output_type` field in the spec. The extracted information from the input text.
|
174
|
+
|
175
|
+
## EmbedText
|
176
|
+
|
177
|
+
`EmbedText` embeds a text into a vector space using various LLM APIs that support text embedding.
|
178
|
+
|
179
|
+
The spec takes the following fields:
|
180
|
+
|
181
|
+
* `api_type` ([`cocoindex.LlmApiType`](/docs/ai/llm#llm-api-types)): The type of LLM API to use for embedding.
|
182
|
+
* `model` (`str`): The name of the embedding model to use.
|
183
|
+
* `address` (`str`, optional): The address of the LLM API. If not specified, uses the default address for the API type.
|
184
|
+
* `output_dimension` (`int`, optional): The expected dimension of the output embedding vector. If not specified, use the default dimension of the model.
|
185
|
+
|
186
|
+
For most API types, the function internally keeps a registry for the default output dimension of known model.
|
187
|
+
You need to explicitly specify the `output_dimension` if you want to use a new model that is not in the registry yet.
|
188
|
+
|
189
|
+
* `task_type` (`str`, optional): The task type for embedding, used by some embedding models to optimize the embedding for specific use cases.
|
190
|
+
|
191
|
+
:::note Supported APIs for Text Embedding
|
192
|
+
|
193
|
+
Not all LLM APIs support text embedding. See the [LLM API Types table](/docs/ai/llm#llm-api-types) for which APIs support text embedding functionality.
|
194
|
+
|
195
|
+
:::
|
196
|
+
|
197
|
+
Input data:
|
198
|
+
|
199
|
+
* `text` (*Str*): The text to embed.
|
200
|
+
|
201
|
+
Return: *Vector[Float32, N]*, where *N* is the dimension of the embedding vector determined by the model.
|
202
|
+
|
203
|
+
## ColPali Functions
|
204
|
+
|
205
|
+
ColPali functions enable multimodal document retrieval using ColVision models. These functions support ALL models available in the [colpali-engine library](https://github.com/illuin-tech/colpali), including:
|
206
|
+
|
207
|
+
* **ColPali models** (colpali-*): PaliGemma-based, best for general document retrieval
|
208
|
+
* **ColQwen2 models** (colqwen-*): Qwen2-VL-based, excellent for multilingual text (29+ languages) and general vision
|
209
|
+
* **ColSmol models** (colsmol-*): Lightweight, good for resource-constrained environments
|
210
|
+
* Any future ColVision models supported by colpali-engine
|
211
|
+
|
212
|
+
These models use late interaction between image patch embeddings and text token embeddings for retrieval.
|
213
|
+
|
214
|
+
:::note Optional Dependency Required
|
215
|
+
|
216
|
+
These functions require the `colpali-engine` library, which is an optional dependency. Install CocoIndex with:
|
217
|
+
|
218
|
+
```bash
|
219
|
+
pip install 'cocoindex[colpali]'
|
220
|
+
```
|
221
|
+
|
222
|
+
:::
|
223
|
+
|
224
|
+
### ColPaliEmbedImage
|
225
|
+
|
226
|
+
`ColPaliEmbedImage` embeds images using ColVision multimodal models.
|
227
|
+
|
228
|
+
The spec takes the following fields:
|
229
|
+
|
230
|
+
* `model` (`str`): Any ColVision model name supported by colpali-engine (e.g., "vidore/colpali-v1.2", "vidore/colqwen2.5-v0.2", "vidore/colsmol-v1.0"). See the [complete list of supported models](https://github.com/illuin-tech/colpali#list-of-colvision-models).
|
231
|
+
|
232
|
+
Input data:
|
233
|
+
|
234
|
+
* `img_bytes` (*Bytes*): The image data in bytes format.
|
235
|
+
|
236
|
+
Return: *Vector[Vector[Float32, N]]*, where *N* is the hidden dimension determined by the model. This returns a multi-vector format with variable patches and fixed hidden dimension.
|
237
|
+
|
238
|
+
### ColPaliEmbedQuery
|
239
|
+
|
240
|
+
`ColPaliEmbedQuery` embeds text queries using ColVision multimodal models.
|
241
|
+
|
242
|
+
This produces query embeddings compatible with ColVision image embeddings for late interaction scoring (MaxSim).
|
243
|
+
|
244
|
+
The spec takes the following fields:
|
245
|
+
|
246
|
+
* `model` (`str`): Any ColVision model name supported by colpali-engine (e.g., "vidore/colpali-v1.2", "vidore/colqwen2.5-v0.2", "vidore/colsmol-v1.0"). See the [complete list of supported models](https://github.com/illuin-tech/colpali#list-of-colvision-models).
|
247
|
+
|
248
|
+
Input data:
|
249
|
+
|
250
|
+
* `query` (*Str*): The text query to embed.
|
251
|
+
|
252
|
+
Return: *Vector[Vector[Float32, N]]*, where *N* is the hidden dimension determined by the model. This returns a multi-vector format with variable tokens and fixed hidden dimension.
|