cocoindex 0.1.55__tar.gz → 0.1.57__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.1.55 → cocoindex-0.1.57}/Cargo.lock +1 -1
- {cocoindex-0.1.55 → cocoindex-0.1.57}/Cargo.toml +1 -1
- {cocoindex-0.1.55 → cocoindex-0.1.57}/PKG-INFO +4 -2
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/core/basics.md +1 -1
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/core/flow_def.mdx +6 -6
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/core/flow_methods.mdx +85 -1
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/getting_started/quickstart.md +6 -17
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/ops/functions.md +9 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/amazon_s3_embedding/pyproject.toml +1 -1
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/code_embedding/main.py +13 -3
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/code_embedding/pyproject.toml +1 -1
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/fastapi_server_docker/requirements.txt +1 -1
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/gdrive_text_embedding/pyproject.toml +1 -1
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/pdf_embedding/pyproject.toml +1 -1
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/text_embedding/pyproject.toml +1 -1
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/text_embedding_qdrant/README.md +1 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/text_embedding_qdrant/pyproject.toml +1 -1
- {cocoindex-0.1.55 → cocoindex-0.1.57}/pyproject.toml +3 -1
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/__init__.py +5 -2
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/cli.py +126 -72
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/flow.py +72 -3
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/functions.py +24 -7
- cocoindex-0.1.57/python/cocoindex/setup.py +92 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/builder/flow_builder.rs +12 -14
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/execution/live_updater.rs +8 -12
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/lib_context.rs +95 -31
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/targets/postgres.rs +12 -8
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/py/mod.rs +75 -73
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/service/flows.rs +2 -2
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/setup/db_metadata.rs +7 -7
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/setup/driver.rs +327 -172
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/setup/states.rs +57 -24
- cocoindex-0.1.55/python/cocoindex/setup.py +0 -26
- {cocoindex-0.1.55 → cocoindex-0.1.57}/.cargo/config.toml +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/.env.lib_debug +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/.github/ISSUE_TEMPLATE//360/237/220/233-bug-report.md" +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/.github/ISSUE_TEMPLATE//360/237/222/241-feature-request.md" +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/.github/scripts/update_version.sh +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/.github/workflows/CI.yml +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/.github/workflows/_doc_release.yml +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/.github/workflows/_test.yml +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/.github/workflows/docs.yml +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/.github/workflows/release.yml +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/.gitignore +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/.pre-commit-config.yaml +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/.vscode/settings.json +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/CODE_OF_CONDUCT.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/CONTRIBUTING.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/LICENSE +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/README.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/dev/neo4j.yaml +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/dev/postgres.yaml +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/.gitignore +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/README.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/about/community.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/about/contributing.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/ai/llm.mdx +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/core/cli.mdx +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/core/custom_function.mdx +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/core/data_example.svg +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/core/data_types.mdx +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/core/flow_example.svg +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/core/settings.mdx +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/getting_started/installation.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/getting_started/markdown_files.zip +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/getting_started/overview.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/ops/sources.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/ops/targets.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docs/query.mdx +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/docusaurus.config.ts +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/package.json +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/sidebars.ts +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/src/components/HomepageFeatures/index.tsx +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/src/components/HomepageFeatures/styles.module.css +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/src/css/custom.css +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/src/theme/Root.js +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/static/.nojekyll +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/static/img/docusaurus.png +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/static/img/favicon.ico +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/static/img/icon.svg +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/static/img/incremental-etl.gif +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/static/robots.txt +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/tsconfig.json +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/docs/yarn.lock +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/amazon_s3_embedding/.env.example +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/amazon_s3_embedding/.gitignore +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/amazon_s3_embedding/README.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/amazon_s3_embedding/main.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/code_embedding/.env +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/code_embedding/README.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/docs_to_knowledge_graph/.env +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/docs_to_knowledge_graph/README.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/docs_to_knowledge_graph/main.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/docs_to_knowledge_graph/pyproject.toml +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/fastapi_server_docker/.dockerignore +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/fastapi_server_docker/.env +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/fastapi_server_docker/README.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/fastapi_server_docker/compose.yaml +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/fastapi_server_docker/dockerfile +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/fastapi_server_docker/files/1810.04805v2.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/fastapi_server_docker/main.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/gdrive_text_embedding/.env.example +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/gdrive_text_embedding/.gitignore +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/gdrive_text_embedding/README.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/gdrive_text_embedding/main.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/image_search/.env +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/image_search/README.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/image_search/frontend/.gitignore +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/image_search/frontend/index.html +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/image_search/frontend/package-lock.json +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/image_search/frontend/package.json +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/image_search/frontend/src/App.jsx +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/image_search/frontend/src/main.jsx +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/image_search/frontend/src/style.css +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/image_search/frontend/vite.config.js +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/image_search/img/cat1.jpeg +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/image_search/img/dog1.jpeg +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/image_search/img/elephant1.jpg +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/image_search/img/giraffe.jpg +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/image_search/main.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/image_search/pyproject.toml +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/image_search/requirements.txt +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/manuals_llm_extraction/.env +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/manuals_llm_extraction/README.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/manuals_llm_extraction/main.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/manuals_llm_extraction/manuals/array.pdf +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/manuals_llm_extraction/manuals/base64.pdf +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/manuals_llm_extraction/manuals/copy.pdf +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/manuals_llm_extraction/manuals/glob.pdf +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/manuals_llm_extraction/pyproject.toml +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/pdf_embedding/.env +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/pdf_embedding/README.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/pdf_embedding/main.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/pdf_embedding/pdf_files/1706.03762v7.pdf +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/pdf_embedding/pdf_files/1810.04805v2.pdf +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/pdf_embedding/pdf_files/rfc8259.pdf +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/product_recommendation/.env +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/product_recommendation/README.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/product_recommendation/img/cocoinsight.png +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/product_recommendation/img/neo4j.png +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/product_recommendation/main.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/product_recommendation/products/p1.json +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/product_recommendation/products/p2.json +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/product_recommendation/products/p3.json +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/product_recommendation/products/p4.json +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/product_recommendation/products/p5.json +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/product_recommendation/products/p6.json +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/product_recommendation/products/p7.json +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/product_recommendation/products/p8.json +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/product_recommendation/products/p9.json +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/product_recommendation/pyproject.toml +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/text_embedding/.env +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/text_embedding/README.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/text_embedding/Text_Embedding.ipynb +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/text_embedding/main.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/text_embedding/markdown_files/1706.03762v7.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/text_embedding/markdown_files/1810.04805v2.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/text_embedding/markdown_files/rfc8259.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/text_embedding_qdrant/.env +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/text_embedding_qdrant/main.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/examples/text_embedding_qdrant/markdown_files/rfc8259.md +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/auth_registry.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/convert.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/index.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/lib.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/llm.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/op.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/py.typed +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/runtime.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/setting.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/sources.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/targets.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/tests/__init__.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/tests/test_convert.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/tests/test_optional_database.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/tests/test_typing.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/typing.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/python/cocoindex/utils.py +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/ruff.toml +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/base/duration.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/base/field_attrs.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/base/json_schema.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/base/mod.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/base/schema.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/base/spec.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/base/value.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/builder/analyzed_flow.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/builder/analyzer.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/builder/exec_ctx.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/builder/mod.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/builder/plan.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/execution/db_tracking.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/execution/db_tracking_setup.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/execution/dumper.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/execution/evaluator.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/execution/indexing_status.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/execution/memoization.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/execution/mod.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/execution/row_indexer.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/execution/source_indexer.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/execution/stats.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/lib.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/llm/anthropic.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/llm/gemini.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/llm/litellm.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/llm/mod.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/llm/ollama.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/llm/openai.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/llm/openrouter.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/llm/voyage.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/factory_bases.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/functions/embed_text.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/functions/extract_by_llm.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/functions/mod.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/functions/parse_json.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/functions/split_recursively.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/interface.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/mod.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/py_factory.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/registration.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/registry.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/sdk.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/sources/amazon_s3.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/sources/google_drive.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/sources/local_file.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/sources/mod.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/targets/kuzu.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/targets/mod.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/targets/neo4j.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/targets/qdrant.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/targets/shared/mod.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/targets/shared/property_graph.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/ops/targets/shared/table_columns.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/prelude.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/py/convert.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/server.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/service/error.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/service/mod.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/settings.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/setup/auth_registry.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/setup/components.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/setup/mod.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/utils/db.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/utils/fingerprint.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/utils/immutable.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/utils/mod.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/utils/retryable.rs +0 -0
- {cocoindex-0.1.55 → cocoindex-0.1.57}/src/utils/yaml_ser.rs +0 -0
@@ -1,16 +1,18 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: cocoindex
|
3
|
-
Version: 0.1.
|
4
|
-
Requires-Dist: sentence-transformers>=3.3.1
|
3
|
+
Version: 0.1.57
|
5
4
|
Requires-Dist: click>=8.1.8
|
6
5
|
Requires-Dist: rich>=14.0.0
|
7
6
|
Requires-Dist: python-dotenv>=1.1.0
|
8
7
|
Requires-Dist: watchfiles>=1.1.0
|
8
|
+
Requires-Dist: numpy>=1.23.2
|
9
9
|
Requires-Dist: pytest ; extra == 'test'
|
10
10
|
Requires-Dist: ruff ; extra == 'dev'
|
11
11
|
Requires-Dist: pre-commit ; extra == 'dev'
|
12
|
+
Requires-Dist: sentence-transformers>=3.3.1 ; extra == 'embeddings'
|
12
13
|
Provides-Extra: test
|
13
14
|
Provides-Extra: dev
|
15
|
+
Provides-Extra: embeddings
|
14
16
|
License-File: LICENSE
|
15
17
|
Summary: With CocoIndex, users declare the transformation, CocoIndex creates & maintains an index, and keeps the derived index up to date based on source update, with minimal computation and changes.
|
16
18
|
Author-email: CocoIndex <cocoindex.io@gmail.com>
|
@@ -101,4 +101,4 @@ As an indexing flow is long-lived, it needs to store intermediate data to keep t
|
|
101
101
|
CocoIndex uses internal storage for this purpose.
|
102
102
|
|
103
103
|
Currently, CocoIndex uses Postgres database as the internal storage.
|
104
|
-
See [Settings](settings#databaseconnectionspec) for configuring its location
|
104
|
+
See [Settings](settings#databaseconnectionspec) for configuring its location. The internal storage is managed by CocoIndex, see [Setup / drop flow](/docs/core/flow_methods#setup--drop-flow) for more details.
|
@@ -256,7 +256,7 @@ Export must happen at the top level of a flow, i.e. not within any child scopes
|
|
256
256
|
* `target_spec`: the target spec as the export target.
|
257
257
|
* `setup_by_user` (optional):
|
258
258
|
whether the export target is setup by user.
|
259
|
-
By default, CocoIndex is managing the target setup (
|
259
|
+
By default, CocoIndex is managing the target setup (see [Setup / drop flow](/docs/core/flow_methods#setup--drop-flow)), e.g. create related tables/collections/etc. with compatible schema, and update them upon change.
|
260
260
|
If `True`, the export target will be managed by users, and users are responsible for creating the target and updating it upon change.
|
261
261
|
* Fields to configure [storage indexes](#storage-indexes). `primary_key_fields` is required, and all others are optional.
|
262
262
|
|
@@ -278,7 +278,7 @@ def demo_flow(flow_builder: cocoindex.FlowBuilder, data_scope: cocoindex.DataSco
|
|
278
278
|
</TabItem>
|
279
279
|
</Tabs>
|
280
280
|
|
281
|
-
The target is managed by CocoIndex, i.e. it'll be created
|
281
|
+
The target is managed by CocoIndex, i.e. it'll be created or dropped when [setup / drop flow](/docs/core/flow_methods#setup--drop-flow), and the data will be automatically updated (including stale data removal) when updating the index.
|
282
282
|
The `name` for the same target should remain stable across different runs.
|
283
283
|
If it changes, CocoIndex will treat it as an old target removed and a new one created, and perform setup changes and reindexing accordingly.
|
284
284
|
|
@@ -370,11 +370,11 @@ flow_builder.declare(
|
|
370
370
|
|
371
371
|
CocoIndex manages an auth registry. It's an in-memory key-value store, mainly to store authentication information for a backend.
|
372
372
|
|
373
|
-
Operation spec is the default way to configure a backend. But it has the following limitations:
|
373
|
+
Operation spec is the default way to configure a persistent backend. But it has the following limitations:
|
374
374
|
|
375
375
|
* The spec isn't supposed to contain secret information, and it's frequently shown in various places, e.g. `cocoindex show`.
|
376
376
|
* Once an operation is removed after flow definition code change, the spec is also gone.
|
377
|
-
But we still need to be able to drop the backend (e.g. a table)
|
377
|
+
But we still need to be able to drop the backend (e.g. a table) when [setup / drop flow](/docs/core/flow_methods#setup--drop-flow).
|
378
378
|
|
379
379
|
Auth registry is introduced to solve the problems above. It works as follows:
|
380
380
|
|
@@ -423,5 +423,5 @@ Note that CocoIndex backends use the key of an auth entry to identify the backen
|
|
423
423
|
* Keep the key stable.
|
424
424
|
If the key doesn't change, it's considered to be the same backend (even if the underlying way to connect/authenticate change).
|
425
425
|
|
426
|
-
* If a key is no longer referenced in any operation spec, keep it until the next
|
427
|
-
so that
|
426
|
+
* If a key is no longer referenced in any operation spec, keep it until the next flow setup / drop action,
|
427
|
+
so that cocoindex will be able to clean up the backends.
|
@@ -34,6 +34,71 @@ It creates a `demo_flow` object in `cocoindex.Flow` type.
|
|
34
34
|
</TabItem>
|
35
35
|
</Tabs>
|
36
36
|
|
37
|
+
## Setup / drop flow
|
38
|
+
|
39
|
+
For a flow, its persistent backends need to be ready before it can run, including:
|
40
|
+
|
41
|
+
* [Internal storage](/docs/core/basics#internal-storage) for CocoIndex.
|
42
|
+
* Backend entities for targets exported by the flow, e.g. a table (in relational databases), a collection (in some vector databases), etc.
|
43
|
+
|
44
|
+
The desired state of the backends for a flow is derived based on the flow definition itself.
|
45
|
+
CocoIndex supports two types of actions to manage the persistent backends automatically:
|
46
|
+
|
47
|
+
* *Setup* a flow, which will change the backends owned by the flow to a state to the desired state, e.g. create new tables for new flow, drop an existing table if the corresponding target is gone, add new column to a target table if a new field is collected, etc. It's no-op if the backend states are already in the desired state.
|
48
|
+
|
49
|
+
* *Drop* a flow, which will drop all backends owned by the flow. It's no-op if there's no existing backends owned by the flow (e.g. never setup or already dropped).
|
50
|
+
|
51
|
+
### CLI
|
52
|
+
|
53
|
+
`cocoindex setup` subcommand will setup all flows.
|
54
|
+
`cocoindex update` and `cocoindex server` also provide a `--setup` option to setup the flow if needed before performing the main action of updating or starting the server.
|
55
|
+
|
56
|
+
`cocoindex drop` subcommand will drop all flows.
|
57
|
+
|
58
|
+
### Library API
|
59
|
+
|
60
|
+
<Tabs>
|
61
|
+
<TabItem value="python" label="Python">
|
62
|
+
|
63
|
+
`Flow` provides the following APIs to setup / drop individual flows:
|
64
|
+
|
65
|
+
* `setup(report_to_stdout: bool = False)`: Setup the flow.
|
66
|
+
* `drop(report_to_stdout: bool = False)`: Drop the flow.
|
67
|
+
|
68
|
+
For example:
|
69
|
+
|
70
|
+
```python
|
71
|
+
demo_flow.setup(report_to_stdout=True)
|
72
|
+
demo_flow.drop(report_to_stdout=True)
|
73
|
+
```
|
74
|
+
|
75
|
+
We also provide the following asynchronous versions of the APIs:
|
76
|
+
|
77
|
+
* `setup_async(report_to_stdout: bool = False)`: Setup the flow asynchronously.
|
78
|
+
* `drop_async(report_to_stdout: bool = False)`: Drop the flow asynchronously.
|
79
|
+
|
80
|
+
For example:
|
81
|
+
|
82
|
+
```python
|
83
|
+
await demo_flow.setup_async(report_to_stdout=True)
|
84
|
+
await demo_flow.drop_async(report_to_stdout=True)
|
85
|
+
```
|
86
|
+
|
87
|
+
|
88
|
+
Besides, CocoIndex also provides APIs to setup / drop all flows at once:
|
89
|
+
|
90
|
+
* `setup_all_flows(report_to_stdout: bool = False)`: Setup all flows.
|
91
|
+
* `drop_all_flows(report_to_stdout: bool = False)`: Drop all flows.
|
92
|
+
|
93
|
+
For example:
|
94
|
+
|
95
|
+
```python
|
96
|
+
cocoindex.setup_all_flows(report_to_stdout=True)
|
97
|
+
cocoindex.drop_all_flows(report_to_stdout=True)
|
98
|
+
```
|
99
|
+
|
100
|
+
</TabItem>
|
101
|
+
</Tabs>
|
37
102
|
|
38
103
|
## Build / update target data
|
39
104
|
|
@@ -71,12 +136,18 @@ Once it's done, the target data is fresh up to the moment when the function is c
|
|
71
136
|
cocoindex update main.py
|
72
137
|
```
|
73
138
|
|
139
|
+
With a `--setup` option, it will also setup the flow first if needed.
|
140
|
+
|
141
|
+
```sh
|
142
|
+
cocoindex update --setup main.py
|
143
|
+
```
|
144
|
+
|
74
145
|
#### Library API
|
75
146
|
|
76
147
|
<Tabs>
|
77
148
|
<TabItem value="python" label="Python">
|
78
149
|
|
79
|
-
The `update()`
|
150
|
+
The `Flow.update()` method creates/updates data in the target.
|
80
151
|
|
81
152
|
Once the function returns, the target data is fresh up to the moment when the function is called.
|
82
153
|
|
@@ -85,6 +156,13 @@ stats = demo_flow.update()
|
|
85
156
|
print(stats)
|
86
157
|
```
|
87
158
|
|
159
|
+
`update_async()` is the asynchronous version of `update()`.
|
160
|
+
|
161
|
+
```python
|
162
|
+
stats = await demo_flow.update_async()
|
163
|
+
print(stats)
|
164
|
+
```
|
165
|
+
|
88
166
|
</TabItem>
|
89
167
|
</Tabs>
|
90
168
|
|
@@ -111,6 +189,12 @@ cocoindex update main.py -L
|
|
111
189
|
If there's at least one data source with change capture mechanism enabled, it will keep running until the aborted (e.g. by `Ctrl-C`).
|
112
190
|
Otherwise, it falls back to the same behavior as one time update, and will finish after a one-time update is done.
|
113
191
|
|
192
|
+
With a `--setup` option, it will also setup the flow first if needed.
|
193
|
+
|
194
|
+
```sh
|
195
|
+
cocoindex update main.py -L --setup
|
196
|
+
```
|
197
|
+
|
114
198
|
#### Library API
|
115
199
|
|
116
200
|
<Tabs>
|
@@ -21,7 +21,7 @@ We'll need to install a bunch of dependencies for this project.
|
|
21
21
|
1. Install CocoIndex:
|
22
22
|
|
23
23
|
```bash
|
24
|
-
pip install -U cocoindex
|
24
|
+
pip install -U 'cocoindex[embeddings]'
|
25
25
|
```
|
26
26
|
|
27
27
|
2. You can skip this step if you already have a Postgres database with pgvector extension installed.
|
@@ -121,27 +121,16 @@ Specify the database URL by environment variable:
|
|
121
121
|
export COCOINDEX_DATABASE_URL="postgresql://cocoindex:cocoindex@localhost:5432/cocoindex"
|
122
122
|
```
|
123
123
|
|
124
|
-
### Step 3.1: Setup the index pipeline
|
125
|
-
|
126
|
-
We need to setup the index:
|
127
|
-
|
128
|
-
```bash
|
129
|
-
cocoindex setup quickstart.py
|
130
|
-
```
|
131
|
-
|
132
|
-
Enter `yes` and it will automatically create a few tables in the database.
|
133
|
-
|
134
|
-
Now we have tables needed by this CocoIndex flow.
|
135
|
-
|
136
|
-
### Step 3.2: Build the index
|
137
|
-
|
138
124
|
Now we're ready to build the index:
|
139
125
|
|
140
126
|
```bash
|
141
|
-
cocoindex update quickstart.py
|
127
|
+
cocoindex update --setup quickstart.py
|
142
128
|
```
|
143
129
|
|
144
|
-
|
130
|
+
If you run it the first time for this flow, CocoIndex will automatically create its persistent backends (tables in the database).
|
131
|
+
CocoIndex will ask you to confirm the action, enter `yes` to proceed.
|
132
|
+
|
133
|
+
CocoIndex will run for a few seconds and populate the target table with data as declared by the flow. It will output the following statistics:
|
145
134
|
|
146
135
|
```
|
147
136
|
documents: 3 added, 0 removed, 0 updated
|
@@ -77,6 +77,15 @@ Return: [*KTable*](/docs/core/data_types#ktable), each row represents a chunk, w
|
|
77
77
|
|
78
78
|
`SentenceTransformerEmbed` embeds a text into a vector space using the [SentenceTransformer](https://huggingface.co/sentence-transformers) library.
|
79
79
|
|
80
|
+
:::note Optional Dependency Required
|
81
|
+
|
82
|
+
This function requires the 'sentence-transformers' library, which is an optional dependency. Install CocoIndex with:
|
83
|
+
|
84
|
+
```bash
|
85
|
+
pip install 'cocoindex[embeddings]'
|
86
|
+
```
|
87
|
+
:::
|
88
|
+
|
80
89
|
The spec takes the following fields:
|
81
90
|
|
82
91
|
* `model` (`str`): The name of the SentenceTransformer model to use.
|
@@ -3,7 +3,7 @@ name = "amazon-s3-text-embedding"
|
|
3
3
|
version = "0.1.0"
|
4
4
|
description = "Simple example for cocoindex: build embedding index based on Amazon S3 files."
|
5
5
|
requires-python = ">=3.11"
|
6
|
-
dependencies = ["cocoindex>=0.1.52", "python-dotenv>=1.0.1"]
|
6
|
+
dependencies = ["cocoindex[embeddings]>=0.1.52", "python-dotenv>=1.0.1"]
|
7
7
|
|
8
8
|
[tool.setuptools]
|
9
9
|
packages = []
|
@@ -67,6 +67,8 @@ def code_embedding_flow(
|
|
67
67
|
location=chunk["location"],
|
68
68
|
code=chunk["text"],
|
69
69
|
embedding=chunk["embedding"],
|
70
|
+
start=chunk["start"],
|
71
|
+
end=chunk["end"],
|
70
72
|
)
|
71
73
|
|
72
74
|
code_embeddings.export(
|
@@ -95,13 +97,19 @@ def search(pool: ConnectionPool, query: str, top_k: int = 5) -> list[dict[str, A
|
|
95
97
|
with conn.cursor() as cur:
|
96
98
|
cur.execute(
|
97
99
|
f"""
|
98
|
-
SELECT filename, code, embedding <=> %s AS distance
|
100
|
+
SELECT filename, code, embedding <=> %s AS distance, start, "end"
|
99
101
|
FROM {table_name} ORDER BY distance LIMIT %s
|
100
102
|
""",
|
101
103
|
(query_vector, top_k),
|
102
104
|
)
|
103
105
|
return [
|
104
|
-
{
|
106
|
+
{
|
107
|
+
"filename": row[0],
|
108
|
+
"code": row[1],
|
109
|
+
"score": 1.0 - row[2],
|
110
|
+
"start": row[3],
|
111
|
+
"end": row[4],
|
112
|
+
}
|
105
113
|
for row in cur.fetchall()
|
106
114
|
]
|
107
115
|
|
@@ -122,7 +130,9 @@ def _main() -> None:
|
|
122
130
|
results = search(pool, query)
|
123
131
|
print("\nSearch results:")
|
124
132
|
for result in results:
|
125
|
-
print(
|
133
|
+
print(
|
134
|
+
f"[{result['score']:.3f}] {result['filename']} (L{result['start']['line']}-L{result['end']['line']})"
|
135
|
+
)
|
126
136
|
print(f" {result['code']}")
|
127
137
|
print("---")
|
128
138
|
print()
|
@@ -3,7 +3,7 @@ name = "code-embedding"
|
|
3
3
|
version = "0.1.0"
|
4
4
|
description = "Simple example for cocoindex: build embedding index based on source code."
|
5
5
|
requires-python = ">=3.11"
|
6
|
-
dependencies = ["cocoindex>=0.1.
|
6
|
+
dependencies = ["cocoindex[embeddings]>=0.1.56", "python-dotenv>=1.0.1"]
|
7
7
|
|
8
8
|
[tool.setuptools]
|
9
9
|
packages = []
|
@@ -3,7 +3,7 @@ name = "gdrive-text-embedding"
|
|
3
3
|
version = "0.1.0"
|
4
4
|
description = "Simple example for cocoindex: build embedding index based on Google Drive files."
|
5
5
|
requires-python = ">=3.11"
|
6
|
-
dependencies = ["cocoindex>=0.1.52", "python-dotenv>=1.0.1"]
|
6
|
+
dependencies = ["cocoindex[embeddings]>=0.1.52", "python-dotenv>=1.0.1"]
|
7
7
|
|
8
8
|
[tool.setuptools]
|
9
9
|
packages = []
|
@@ -4,7 +4,7 @@ version = "0.1.0"
|
|
4
4
|
description = "Simple example for cocoindex: build embedding index based on local PDF files."
|
5
5
|
requires-python = ">=3.11"
|
6
6
|
dependencies = [
|
7
|
-
"cocoindex>=0.1.52",
|
7
|
+
"cocoindex[embeddings]>=0.1.52",
|
8
8
|
"python-dotenv>=1.0.1",
|
9
9
|
"marker-pdf>=1.5.2",
|
10
10
|
]
|
@@ -4,7 +4,7 @@ version = "0.1.0"
|
|
4
4
|
description = "Simple example for cocoindex: build embedding index based on local text files."
|
5
5
|
requires-python = ">=3.11"
|
6
6
|
dependencies = [
|
7
|
-
"cocoindex>=0.1.52",
|
7
|
+
"cocoindex[embeddings]>=0.1.52",
|
8
8
|
"python-dotenv>=1.0.1",
|
9
9
|
"pgvector>=0.4.1",
|
10
10
|
"psycopg[binary,pool]",
|
@@ -4,7 +4,7 @@ version = "0.1.0"
|
|
4
4
|
description = "Simple example for cocoindex: build embedding index based on local text files."
|
5
5
|
requires-python = ">=3.11"
|
6
6
|
dependencies = [
|
7
|
-
"cocoindex>=0.1.52",
|
7
|
+
"cocoindex[embeddings]>=0.1.52",
|
8
8
|
"python-dotenv>=1.0.1",
|
9
9
|
"qdrant-client>=1.6.0",
|
10
10
|
]
|
@@ -10,11 +10,11 @@ authors = [{ name = "CocoIndex", email = "cocoindex.io@gmail.com" }]
|
|
10
10
|
readme = "README.md"
|
11
11
|
requires-python = ">=3.11"
|
12
12
|
dependencies = [
|
13
|
-
"sentence-transformers>=3.3.1",
|
14
13
|
"click>=8.1.8",
|
15
14
|
"rich>=14.0.0",
|
16
15
|
"python-dotenv>=1.1.0",
|
17
16
|
"watchfiles>=1.1.0",
|
17
|
+
"numpy>=1.23.2",
|
18
18
|
]
|
19
19
|
license = "Apache-2.0"
|
20
20
|
urls = { Homepage = "https://cocoindex.io/" }
|
@@ -31,9 +31,11 @@ features = ["pyo3/extension-module"]
|
|
31
31
|
[project.optional-dependencies]
|
32
32
|
test = ["pytest"]
|
33
33
|
dev = ["ruff", "pre-commit"]
|
34
|
+
embeddings = ["sentence-transformers>=3.3.1"]
|
34
35
|
|
35
36
|
[tool.mypy]
|
36
37
|
python_version = "3.11"
|
37
38
|
strict = true
|
38
39
|
files = "python/cocoindex"
|
39
40
|
exclude = "(\\.venv|site-packages)"
|
41
|
+
disable_error_code = ["unused-ignore"]
|
@@ -10,7 +10,8 @@ from .auth_registry import AuthEntryReference, add_auth_entry, ref_auth_entry
|
|
10
10
|
from .flow import FlowBuilder, DataScope, DataSlice, Flow, transform_flow
|
11
11
|
from .flow import flow_def
|
12
12
|
from .flow import EvaluateAndDumpOptions, GeneratedField
|
13
|
-
from .flow import
|
13
|
+
from .flow import FlowLiveUpdater, FlowLiveUpdaterOptions
|
14
|
+
from .flow import update_all_flows_async, setup_all_flows, drop_all_flows
|
14
15
|
from .lib import init, start_server, stop, main_fn
|
15
16
|
from .llm import LlmSpec, LlmApiType
|
16
17
|
from .index import VectorSimilarityMetric, VectorIndexDef, IndexOptions
|
@@ -40,9 +41,11 @@ __all__ = [
|
|
40
41
|
"flow_def",
|
41
42
|
"EvaluateAndDumpOptions",
|
42
43
|
"GeneratedField",
|
43
|
-
"update_all_flows_async",
|
44
44
|
"FlowLiveUpdater",
|
45
45
|
"FlowLiveUpdaterOptions",
|
46
|
+
"update_all_flows_async",
|
47
|
+
"setup_all_flows",
|
48
|
+
"drop_all_flows",
|
46
49
|
# Lib
|
47
50
|
"init",
|
48
51
|
"start_server",
|