cocoindex 0.2.9__tar.gz → 0.2.11__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.
Files changed (424) hide show
  1. {cocoindex-0.2.9 → cocoindex-0.2.11}/.github/workflows/_docs_release.yml +4 -0
  2. {cocoindex-0.2.9 → cocoindex-0.2.11}/.github/workflows/_test.yml +3 -0
  3. {cocoindex-0.2.9 → cocoindex-0.2.11}/.github/workflows/docs_release.yml +1 -0
  4. {cocoindex-0.2.9 → cocoindex-0.2.11}/.github/workflows/docs_test.yml +3 -0
  5. {cocoindex-0.2.9 → cocoindex-0.2.11}/.github/workflows/release.yml +1 -0
  6. {cocoindex-0.2.9 → cocoindex-0.2.11}/.pre-commit-config.yaml +1 -1
  7. {cocoindex-0.2.9 → cocoindex-0.2.11}/Cargo.lock +12 -1
  8. {cocoindex-0.2.9 → cocoindex-0.2.11}/Cargo.toml +2 -1
  9. {cocoindex-0.2.9 → cocoindex-0.2.11}/PKG-INFO +1 -1
  10. {cocoindex-0.2.9 → cocoindex-0.2.11}/THIRD_PARTY_NOTICES.html +16 -2
  11. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/core/settings.mdx +63 -30
  12. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/examples/examples/academic_papers_index.md +1 -0
  13. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/examples/examples/codebase_index.md +1 -0
  14. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/examples/examples/custom_targets.md +1 -0
  15. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/examples/examples/docs_to_knowledge_graph.md +1 -0
  16. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/examples/examples/document_ai.md +1 -0
  17. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/examples/examples/image_search.md +1 -0
  18. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/examples/examples/manual_extraction.md +1 -0
  19. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/examples/examples/multi_format_index.md +1 -0
  20. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/examples/examples/patient_form_extraction.md +1 -0
  21. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/examples/examples/photo_search.md +1 -0
  22. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/examples/examples/postgres_source.md +1 -0
  23. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/examples/examples/product_recommendation.md +1 -0
  24. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/examples/examples/simple_vector_index.md +1 -0
  25. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/ops/functions.md +1 -0
  26. cocoindex-0.2.11/docs/docs/query.mdx +213 -0
  27. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/yarn.lock +1808 -1766
  28. cocoindex-0.2.11/examples/image_search/frontend/package-lock.json +1731 -0
  29. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/image_search/frontend/package.json +2 -2
  30. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/__init__.py +13 -2
  31. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/auth_registry.py +2 -13
  32. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/cli.py +0 -2
  33. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/convert.py +2 -0
  34. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/flow.py +84 -27
  35. cocoindex-0.2.11/python/cocoindex/lib.py +75 -0
  36. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/op.py +5 -11
  37. cocoindex-0.2.11/python/cocoindex/query_handler.py +51 -0
  38. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/runtime.py +8 -1
  39. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/setting.py +5 -14
  40. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/builder/analyzer.rs +2 -2
  41. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/builder/flow_builder.rs +7 -3
  42. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/execution/db_tracking.rs +29 -1
  43. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/execution/db_tracking_setup.rs +1 -1
  44. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/execution/evaluator.rs +2 -1
  45. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/execution/row_indexer.rs +11 -4
  46. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/execution/source_indexer.rs +191 -86
  47. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/lib_context.rs +71 -27
  48. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/functions/split_recursively.rs +7 -0
  49. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/shared/postgres.rs +1 -1
  50. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/py/convert.rs +1 -1
  51. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/py/mod.rs +140 -20
  52. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/server.rs +4 -0
  53. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/service/error.rs +1 -1
  54. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/service/flows.rs +49 -10
  55. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/service/mod.rs +1 -0
  56. cocoindex-0.2.11/src/service/query_handler.rs +42 -0
  57. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/setup/auth_registry.rs +17 -0
  58. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/setup/db_metadata.rs +1 -1
  59. cocoindex-0.2.9/docs/docs/query.mdx +0 -101
  60. cocoindex-0.2.9/examples/image_search/frontend/package-lock.json +0 -1265
  61. cocoindex-0.2.9/python/cocoindex/lib.py +0 -32
  62. {cocoindex-0.2.9 → cocoindex-0.2.11}/.cargo/config.toml +0 -0
  63. {cocoindex-0.2.9 → cocoindex-0.2.11}/.env.lib_debug +0 -0
  64. {cocoindex-0.2.9 → cocoindex-0.2.11}/.github/ISSUE_TEMPLATE//360/237/220/233-bug-report.md" +0 -0
  65. {cocoindex-0.2.9 → cocoindex-0.2.11}/.github/ISSUE_TEMPLATE//360/237/222/241-feature-request.md" +0 -0
  66. {cocoindex-0.2.9 → cocoindex-0.2.11}/.github/scripts/update_version.sh +0 -0
  67. {cocoindex-0.2.9 → cocoindex-0.2.11}/.github/workflows/CI.yml +0 -0
  68. {cocoindex-0.2.9 → cocoindex-0.2.11}/.github/workflows/format.yml +0 -0
  69. {cocoindex-0.2.9 → cocoindex-0.2.11}/.gitignore +0 -0
  70. {cocoindex-0.2.9 → cocoindex-0.2.11}/CODE_OF_CONDUCT.md +0 -0
  71. {cocoindex-0.2.9 → cocoindex-0.2.11}/CONTRIBUTING.md +0 -0
  72. {cocoindex-0.2.9 → cocoindex-0.2.11}/LICENSE +0 -0
  73. {cocoindex-0.2.9 → cocoindex-0.2.11}/README.md +0 -0
  74. {cocoindex-0.2.9 → cocoindex-0.2.11}/about.hbs +0 -0
  75. {cocoindex-0.2.9 → cocoindex-0.2.11}/about.toml +0 -0
  76. {cocoindex-0.2.9 → cocoindex-0.2.11}/dev/neo4j.yaml +0 -0
  77. {cocoindex-0.2.9 → cocoindex-0.2.11}/dev/postgres.yaml +0 -0
  78. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/.gitignore +0 -0
  79. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/README.md +0 -0
  80. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/about/community.md +0 -0
  81. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/ai/llm.mdx +0 -0
  82. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/contributing/guide.md +0 -0
  83. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/contributing/new_built_in_target.mdx +0 -0
  84. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/contributing/setup_dev_environment.md +0 -0
  85. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/core/basics.md +0 -0
  86. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/core/cli.mdx +0 -0
  87. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/core/data_example.svg +0 -0
  88. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/core/data_types.mdx +0 -0
  89. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/core/flow_def.mdx +0 -0
  90. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/core/flow_example.svg +0 -0
  91. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/core/flow_methods.mdx +0 -0
  92. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/custom_ops/custom_functions.mdx +0 -0
  93. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/custom_ops/custom_targets.mdx +0 -0
  94. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/examples/index.md +0 -0
  95. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/getting_started/installation.md +0 -0
  96. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/getting_started/markdown_files.zip +0 -0
  97. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/getting_started/overview.md +0 -0
  98. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/getting_started/quickstart.md +0 -0
  99. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/ops/sources.md +0 -0
  100. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/ops/targets.md +0 -0
  101. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/tutorials/live_updates.md +0 -0
  102. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docs/tutorials/manage_flow_dynamically.mdx +0 -0
  103. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/docusaurus.config.ts +0 -0
  104. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/package.json +0 -0
  105. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/sidebars.ts +0 -0
  106. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/src/components/GitHubButton/index.tsx +0 -0
  107. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/src/css/custom.css +0 -0
  108. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/src/theme/DocCard/index.tsx +0 -0
  109. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/src/theme/DocCard/styles.module.css +0 -0
  110. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/src/theme/DocCardList/index.tsx +0 -0
  111. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/src/theme/DocCardList/styles.module.css +0 -0
  112. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/src/theme/Root.js +0 -0
  113. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/.nojekyll +0 -0
  114. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/docusaurus.png +0 -0
  115. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/academic_papers_index/abstract_chunks.png +0 -0
  116. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/academic_papers_index/basic_info.png +0 -0
  117. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/academic_papers_index/chunk_embedding.png +0 -0
  118. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/academic_papers_index/cover.png +0 -0
  119. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/academic_papers_index/first_page.png +0 -0
  120. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/academic_papers_index/flow.png +0 -0
  121. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/academic_papers_index/metadata.png +0 -0
  122. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/codebase_index/chunk.png +0 -0
  123. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/codebase_index/cover.png +0 -0
  124. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/codebase_index/flow.png +0 -0
  125. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/custom_targets/convert.png +0 -0
  126. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/custom_targets/cover.png +0 -0
  127. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/docs_to_knowledge_graph/cover.png +0 -0
  128. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/docs_to_knowledge_graph/dedupe.png +0 -0
  129. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/docs_to_knowledge_graph/export_document.png +0 -0
  130. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/docs_to_knowledge_graph/export_relationship.png +0 -0
  131. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/docs_to_knowledge_graph/extract_relationship.png +0 -0
  132. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/docs_to_knowledge_graph/flow.png +0 -0
  133. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/docs_to_knowledge_graph/relationship.png +0 -0
  134. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/docs_to_knowledge_graph/summary.png +0 -0
  135. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/document_ai/cover.png +0 -0
  136. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/document_ai/document_ai.png +0 -0
  137. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/document_ai/processor.png +0 -0
  138. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/image_search/cover.png +0 -0
  139. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/image_search/embedding.png +0 -0
  140. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/image_search/flow.png +0 -0
  141. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/image_search/multi_modal_architecture.png +0 -0
  142. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/image_search/result.png +0 -0
  143. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/manual_extraction/cover.png +0 -0
  144. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/manual_extraction/extraction.png +0 -0
  145. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/manual_extraction/flow.png +0 -0
  146. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/manual_extraction/summary.png +0 -0
  147. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/multi_format_index/colpali_architecture.png +0 -0
  148. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/multi_format_index/cover.png +0 -0
  149. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/multi_format_index/embed.png +0 -0
  150. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/multi_format_index/flow.png +0 -0
  151. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/multi_format_index/pages.png +0 -0
  152. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/patient_form_extraction/cover.png +0 -0
  153. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/patient_form_extraction/extraction.png +0 -0
  154. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/patient_form_extraction/fields.png +0 -0
  155. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/patient_form_extraction/flow.png +0 -0
  156. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/patient_form_extraction/tomarkdown.png +0 -0
  157. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/photo_search/cover.png +0 -0
  158. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/photo_search/extraction.png +0 -0
  159. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/photo_search/flow.png +0 -0
  160. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/postgres_source/collector.png +0 -0
  161. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/postgres_source/cover.png +0 -0
  162. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/postgres_source/description.png +0 -0
  163. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/postgres_source/embed.png +0 -0
  164. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/postgres_source/flow.png +0 -0
  165. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/postgres_source/lineage.png +0 -0
  166. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/postgres_source/price.png +0 -0
  167. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/postgres_source/source.png +0 -0
  168. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/product_recommendation/cover.png +0 -0
  169. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/product_recommendation/dedupe.png +0 -0
  170. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/product_recommendation/export_all.png +0 -0
  171. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/product_recommendation/export_product.png +0 -0
  172. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/product_recommendation/export_taxonomy.png +0 -0
  173. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/product_recommendation/extract_product.png +0 -0
  174. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/product_recommendation/extract_taxonomy.png +0 -0
  175. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/product_recommendation/neo4j.png +0 -0
  176. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/product_recommendation/parse_json.png +0 -0
  177. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/product_recommendation/taxonomy.png +0 -0
  178. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/simple_vector_index/chunk.png +0 -0
  179. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/simple_vector_index/cover.png +0 -0
  180. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/simple_vector_index/embed.png +0 -0
  181. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/examples/simple_vector_index/flow.png +0 -0
  182. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/favicon.ico +0 -0
  183. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/icon.svg +0 -0
  184. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/img/incremental-etl.gif +0 -0
  185. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/static/robots.txt +0 -0
  186. {cocoindex-0.2.9 → cocoindex-0.2.11}/docs/tsconfig.json +0 -0
  187. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/amazon_s3_embedding/.env.example +0 -0
  188. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/amazon_s3_embedding/.gitignore +0 -0
  189. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/amazon_s3_embedding/README.md +0 -0
  190. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/amazon_s3_embedding/main.py +0 -0
  191. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/amazon_s3_embedding/pyproject.toml +0 -0
  192. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/azure_blob_embedding/.env.example +0 -0
  193. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/azure_blob_embedding/.gitignore +0 -0
  194. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/azure_blob_embedding/README.md +0 -0
  195. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/azure_blob_embedding/main.py +0 -0
  196. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/azure_blob_embedding/pyproject.toml +0 -0
  197. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/code_embedding/.env +0 -0
  198. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/code_embedding/README.md +0 -0
  199. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/code_embedding/main.py +0 -0
  200. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/code_embedding/pyproject.toml +0 -0
  201. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/custom_output_files/.env +0 -0
  202. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/custom_output_files/.gitignore +0 -0
  203. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/custom_output_files/README.md +0 -0
  204. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/custom_output_files/data/bizarre_animals.md +0 -0
  205. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/custom_output_files/data/chunk_norris.md +0 -0
  206. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/custom_output_files/main.py +0 -0
  207. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/custom_output_files/pyproject.toml +0 -0
  208. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/docs_to_knowledge_graph/.env +0 -0
  209. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/docs_to_knowledge_graph/README.md +0 -0
  210. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/docs_to_knowledge_graph/main.py +0 -0
  211. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/docs_to_knowledge_graph/pyproject.toml +0 -0
  212. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/face_recognition/.env +0 -0
  213. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/face_recognition/README.md +0 -0
  214. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/face_recognition/images/Carter_welcomes_Reagan.jpg +0 -0
  215. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/face_recognition/images/Solvay_conference_1927.jpg +0 -0
  216. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/face_recognition/images/Steve_Jobs_and_Bill_Gates_(522695099).jpg +0 -0
  217. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/face_recognition/images/einplanck3.jpg +0 -0
  218. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/face_recognition/main.py +0 -0
  219. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/face_recognition/pyproject.toml +0 -0
  220. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/fastapi_server_docker/.dockerignore +0 -0
  221. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/fastapi_server_docker/.env +0 -0
  222. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/fastapi_server_docker/README.md +0 -0
  223. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/fastapi_server_docker/compose.yaml +0 -0
  224. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/fastapi_server_docker/dockerfile +0 -0
  225. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/fastapi_server_docker/files/1810.04805v2.md +0 -0
  226. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/fastapi_server_docker/main.py +0 -0
  227. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/fastapi_server_docker/requirements.txt +0 -0
  228. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/gdrive_text_embedding/.env.example +0 -0
  229. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/gdrive_text_embedding/.gitignore +0 -0
  230. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/gdrive_text_embedding/README.md +0 -0
  231. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/gdrive_text_embedding/main.py +0 -0
  232. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/gdrive_text_embedding/pyproject.toml +0 -0
  233. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/image_search/.env +0 -0
  234. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/image_search/README.md +0 -0
  235. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/image_search/colpali_main.py +0 -0
  236. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/image_search/frontend/.gitignore +0 -0
  237. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/image_search/frontend/index.html +0 -0
  238. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/image_search/frontend/src/App.jsx +0 -0
  239. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/image_search/frontend/src/main.jsx +0 -0
  240. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/image_search/frontend/src/style.css +0 -0
  241. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/image_search/frontend/vite.config.js +0 -0
  242. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/image_search/img/cat1.jpeg +0 -0
  243. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/image_search/img/dog1.jpeg +0 -0
  244. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/image_search/img/elephant1.jpg +0 -0
  245. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/image_search/img/giraffe.jpg +0 -0
  246. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/image_search/main.py +0 -0
  247. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/image_search/pyproject.toml +0 -0
  248. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/live_updates/.env +0 -0
  249. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/live_updates/README.md +0 -0
  250. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/live_updates/data/bizarre_animals.md +0 -0
  251. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/live_updates/data/chunk_norris.md +0 -0
  252. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/live_updates/main.py +0 -0
  253. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/live_updates/pyproject.toml +0 -0
  254. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/manuals_llm_extraction/.env +0 -0
  255. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/manuals_llm_extraction/README.md +0 -0
  256. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/manuals_llm_extraction/main.py +0 -0
  257. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/manuals_llm_extraction/manuals/array.pdf +0 -0
  258. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/manuals_llm_extraction/manuals/base64.pdf +0 -0
  259. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/manuals_llm_extraction/manuals/copy.pdf +0 -0
  260. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/manuals_llm_extraction/manuals/glob.pdf +0 -0
  261. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/manuals_llm_extraction/pyproject.toml +0 -0
  262. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/multi_format_indexing/.env +0 -0
  263. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/multi_format_indexing/README.md +0 -0
  264. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/multi_format_indexing/main.py +0 -0
  265. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/multi_format_indexing/pyproject.toml +0 -0
  266. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/multi_format_indexing/source_files/1706.03762v7.pdf +0 -0
  267. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/multi_format_indexing/source_files/1810.04805v2.pdf +0 -0
  268. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/multi_format_indexing/source_files/2502.06786v3.pdf +0 -0
  269. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/multi_format_indexing/source_files/healthcare_industry_test_p101.jpg +0 -0
  270. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/multi_format_indexing/source_files/healthcare_industry_test_p86.jpg +0 -0
  271. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/multi_format_indexing/source_files/healthcare_industry_test_p9.jpg +0 -0
  272. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/multi_format_indexing/source_files/restaurant_brands_international_2023.jpg +0 -0
  273. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/multi_format_indexing/source_files/sweetgreen_2023.jpg +0 -0
  274. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/paper_metadata/.env.example +0 -0
  275. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/paper_metadata/.gitignore +0 -0
  276. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/paper_metadata/README.md +0 -0
  277. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/paper_metadata/main.py +0 -0
  278. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/paper_metadata/papers/1706.03762v7.pdf +0 -0
  279. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/paper_metadata/papers/1810.04805v2.pdf +0 -0
  280. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/paper_metadata/papers/2502.06786v3.pdf +0 -0
  281. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/paper_metadata/papers/2502.20346v1.pdf +0 -0
  282. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/paper_metadata/pyproject.toml +0 -0
  283. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/patient_intake_extraction/.env.example +0 -0
  284. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/patient_intake_extraction/README.md +0 -0
  285. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/patient_intake_extraction/data/README.md +0 -0
  286. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_David_Artificial.docx +0 -0
  287. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_Emily_Artificial.pdf +0 -0
  288. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_Joe_Artificial.pdf +0 -0
  289. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_From_Jane_Artificial.docx +0 -0
  290. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/patient_intake_extraction/main.py +0 -0
  291. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/patient_intake_extraction/pyproject.toml +0 -0
  292. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/pdf_embedding/.env +0 -0
  293. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/pdf_embedding/README.md +0 -0
  294. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/pdf_embedding/main.py +0 -0
  295. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/pdf_embedding/pdf_files/1706.03762v7.pdf +0 -0
  296. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/pdf_embedding/pdf_files/1810.04805v2.pdf +0 -0
  297. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/pdf_embedding/pdf_files/rfc8259.pdf +0 -0
  298. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/pdf_embedding/pyproject.toml +0 -0
  299. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/postgres_source/.env +0 -0
  300. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/postgres_source/README.md +0 -0
  301. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/postgres_source/main.py +0 -0
  302. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/postgres_source/prepare_source_data.sql +0 -0
  303. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/postgres_source/pyproject.toml +0 -0
  304. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/product_recommendation/.env.example +0 -0
  305. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/product_recommendation/.gitignore +0 -0
  306. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/product_recommendation/README.md +0 -0
  307. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/product_recommendation/img/cocoinsight.png +0 -0
  308. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/product_recommendation/img/neo4j.png +0 -0
  309. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/product_recommendation/main.py +0 -0
  310. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/product_recommendation/products/p1.json +0 -0
  311. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/product_recommendation/products/p2.json +0 -0
  312. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/product_recommendation/products/p3.json +0 -0
  313. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/product_recommendation/products/p4.json +0 -0
  314. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/product_recommendation/products/p5.json +0 -0
  315. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/product_recommendation/products/p6.json +0 -0
  316. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/product_recommendation/products/p7.json +0 -0
  317. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/product_recommendation/products/p8.json +0 -0
  318. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/product_recommendation/products/p9.json +0 -0
  319. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/product_recommendation/pyproject.toml +0 -0
  320. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/text_embedding/.env +0 -0
  321. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/text_embedding/README.md +0 -0
  322. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/text_embedding/Text_Embedding.ipynb +0 -0
  323. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/text_embedding/main.py +0 -0
  324. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/text_embedding/markdown_files/1706.03762v7.md +0 -0
  325. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/text_embedding/markdown_files/1810.04805v2.md +0 -0
  326. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/text_embedding/markdown_files/rfc8259.md +0 -0
  327. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/text_embedding/pyproject.toml +0 -0
  328. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/text_embedding_qdrant/.env +0 -0
  329. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/text_embedding_qdrant/README.md +0 -0
  330. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/text_embedding_qdrant/main.py +0 -0
  331. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/text_embedding_qdrant/markdown_files/rfc8259.md +0 -0
  332. {cocoindex-0.2.9 → cocoindex-0.2.11}/examples/text_embedding_qdrant/pyproject.toml +0 -0
  333. {cocoindex-0.2.9 → cocoindex-0.2.11}/pyproject.toml +0 -0
  334. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/functions.py +0 -0
  335. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/index.py +0 -0
  336. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/llm.py +0 -0
  337. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/py.typed +0 -0
  338. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/setup.py +0 -0
  339. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/sources.py +0 -0
  340. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/subprocess_exec.py +0 -0
  341. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/targets.py +0 -0
  342. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/tests/__init__.py +0 -0
  343. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/tests/test_convert.py +0 -0
  344. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/tests/test_optional_database.py +0 -0
  345. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/tests/test_transform_flow.py +0 -0
  346. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/tests/test_typing.py +0 -0
  347. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/tests/test_validation.py +0 -0
  348. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/typing.py +0 -0
  349. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/user_app_loader.py +0 -0
  350. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/utils.py +0 -0
  351. {cocoindex-0.2.9 → cocoindex-0.2.11}/python/cocoindex/validation.py +0 -0
  352. {cocoindex-0.2.9 → cocoindex-0.2.11}/ruff.toml +0 -0
  353. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/base/duration.rs +0 -0
  354. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/base/field_attrs.rs +0 -0
  355. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/base/json_schema.rs +0 -0
  356. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/base/mod.rs +0 -0
  357. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/base/schema.rs +0 -0
  358. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/base/spec.rs +0 -0
  359. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/base/value.rs +0 -0
  360. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/builder/analyzed_flow.rs +0 -0
  361. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/builder/exec_ctx.rs +0 -0
  362. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/builder/mod.rs +0 -0
  363. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/builder/plan.rs +0 -0
  364. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/execution/dumper.rs +0 -0
  365. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/execution/indexing_status.rs +0 -0
  366. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/execution/live_updater.rs +0 -0
  367. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/execution/memoization.rs +0 -0
  368. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/execution/mod.rs +0 -0
  369. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/execution/stats.rs +0 -0
  370. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/lib.rs +0 -0
  371. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/llm/anthropic.rs +0 -0
  372. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/llm/gemini.rs +0 -0
  373. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/llm/litellm.rs +0 -0
  374. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/llm/mod.rs +0 -0
  375. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/llm/ollama.rs +0 -0
  376. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/llm/openai.rs +0 -0
  377. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/llm/openrouter.rs +0 -0
  378. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/llm/vllm.rs +0 -0
  379. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/llm/voyage.rs +0 -0
  380. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/factory_bases.rs +0 -0
  381. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/functions/embed_text.rs +0 -0
  382. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/functions/extract_by_llm.rs +0 -0
  383. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/functions/mod.rs +0 -0
  384. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/functions/parse_json.rs +0 -0
  385. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/functions/test_utils.rs +0 -0
  386. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/interface.rs +0 -0
  387. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/mod.rs +0 -0
  388. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/py_factory.rs +0 -0
  389. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/registration.rs +0 -0
  390. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/registry.rs +0 -0
  391. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/sdk.rs +0 -0
  392. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/shared/mod.rs +0 -0
  393. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/sources/amazon_s3.rs +0 -0
  394. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/sources/azure_blob.rs +0 -0
  395. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/sources/google_drive.rs +0 -0
  396. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/sources/local_file.rs +0 -0
  397. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/sources/mod.rs +0 -0
  398. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/sources/postgres.rs +0 -0
  399. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/sources/shared/mod.rs +0 -0
  400. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/sources/shared/pattern_matcher.rs +0 -0
  401. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/targets/kuzu.rs +0 -0
  402. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/targets/mod.rs +0 -0
  403. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/targets/neo4j.rs +0 -0
  404. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/targets/postgres.rs +0 -0
  405. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/targets/qdrant.rs +0 -0
  406. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/targets/shared/mod.rs +0 -0
  407. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/targets/shared/property_graph.rs +0 -0
  408. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/ops/targets/shared/table_columns.rs +0 -0
  409. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/prelude.rs +0 -0
  410. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/settings.rs +0 -0
  411. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/setup/components.rs +0 -0
  412. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/setup/driver.rs +0 -0
  413. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/setup/flow_features.rs +0 -0
  414. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/setup/mod.rs +0 -0
  415. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/setup/states.rs +0 -0
  416. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/utils/concur_control.rs +0 -0
  417. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/utils/db.rs +0 -0
  418. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/utils/deser.rs +0 -0
  419. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/utils/fingerprint.rs +0 -0
  420. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/utils/immutable.rs +0 -0
  421. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/utils/mod.rs +0 -0
  422. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/utils/retryable.rs +0 -0
  423. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/utils/str_sanitize.rs +0 -0
  424. {cocoindex-0.2.9 → cocoindex-0.2.11}/src/utils/yaml_ser.rs +0 -0
@@ -3,6 +3,10 @@ name: Release Docs (INTERNAL)
3
3
  on:
4
4
  workflow_call:
5
5
 
6
+ permissions:
7
+ contents: read
8
+ pages: write
9
+
6
10
  jobs:
7
11
  deploy:
8
12
  runs-on: ubuntu-latest
@@ -3,6 +3,9 @@ name: Run Tests (INTERNAL)
3
3
  on:
4
4
  workflow_call:
5
5
 
6
+ permissions:
7
+ contents: read
8
+
6
9
  env:
7
10
  CARGO_TERM_COLOR: always
8
11
 
@@ -5,6 +5,7 @@ on:
5
5
 
6
6
  permissions:
7
7
  contents: write
8
+ pages: write
8
9
 
9
10
  jobs:
10
11
  deploy:
@@ -7,6 +7,9 @@ on:
7
7
  - docs/**
8
8
  - ".github/workflows/docs_test.yml"
9
9
 
10
+ permissions:
11
+ contents: read
12
+
10
13
  jobs:
11
14
  test-deploy:
12
15
  runs-on: ubuntu-latest
@@ -12,6 +12,7 @@ on:
12
12
 
13
13
  permissions:
14
14
  contents: read
15
+ pages: write
15
16
 
16
17
  jobs:
17
18
  create-versioned-toml:
@@ -49,7 +49,7 @@ repos:
49
49
 
50
50
  - id: mypy-check
51
51
  name: mypy type check
52
- entry: mypy
52
+ entry: mypy --cache-fine-grain
53
53
  language: system
54
54
  types: [python]
55
55
  pass_filenames: false
@@ -1283,7 +1283,7 @@ dependencies = [
1283
1283
 
1284
1284
  [[package]]
1285
1285
  name = "cocoindex"
1286
- version = "0.2.9"
1286
+ version = "0.2.11"
1287
1287
  dependencies = [
1288
1288
  "anyhow",
1289
1289
  "async-openai",
@@ -1367,6 +1367,7 @@ dependencies = [
1367
1367
  "tree-sitter-rust",
1368
1368
  "tree-sitter-scala",
1369
1369
  "tree-sitter-sequel",
1370
+ "tree-sitter-solidity",
1370
1371
  "tree-sitter-swift",
1371
1372
  "tree-sitter-toml-ng",
1372
1373
  "tree-sitter-typescript",
@@ -5904,6 +5905,16 @@ dependencies = [
5904
5905
  "tree-sitter-language",
5905
5906
  ]
5906
5907
 
5908
+ [[package]]
5909
+ name = "tree-sitter-solidity"
5910
+ version = "1.2.13"
5911
+ source = "registry+https://github.com/rust-lang/crates.io-index"
5912
+ checksum = "4eacf8875b70879f0cb670c60b233ad0b68752d9e1474e6c3ef168eea8a90b25"
5913
+ dependencies = [
5914
+ "cc",
5915
+ "tree-sitter-language",
5916
+ ]
5917
+
5907
5918
  [[package]]
5908
5919
  name = "tree-sitter-swift"
5909
5920
  version = "0.7.1"
@@ -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.9"
5
+ version = "0.2.11"
6
6
  edition = "2024"
7
7
  rust-version = "1.88"
8
8
  license = "Apache-2.0"
@@ -101,6 +101,7 @@ tree-sitter-toml-ng = "0.7.0"
101
101
  tree-sitter-typescript = "0.23.2"
102
102
  tree-sitter-xml = "0.7.0"
103
103
  tree-sitter-yaml = "0.7.1"
104
+ tree-sitter-solidity = "1.2.13"
104
105
 
105
106
  globset = "0.4.16"
106
107
  unicase = "2.8.1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cocoindex
3
- Version: 0.2.9
3
+ Version: 0.2.11
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: License :: OSI Approved :: Apache Software License
6
6
  Classifier: Operating System :: OS Independent
@@ -45,7 +45,7 @@
45
45
  <h2>Overview of licenses:</h2>
46
46
  <ul class="licenses-overview">
47
47
  <li><a href="#Apache-2.0">Apache License 2.0</a> (412)</li>
48
- <li><a href="#MIT">MIT License</a> (124)</li>
48
+ <li><a href="#MIT">MIT License</a> (125)</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 &quot;New&quot; or &quot;Revised&quot; 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.9</a></li>
2431
+ <li><a href=" https://crates.io/crates/cocoindex ">cocoindex 0.2.11</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>
@@ -11376,6 +11376,20 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
11376
11376
  IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
11377
11377
  DEALINGS IN THE SOFTWARE.
11378
11378
  </pre>
11379
+ </li>
11380
+ <li class="license">
11381
+ <h3 id="MIT">MIT License</h3>
11382
+ <h4>Used by:</h4>
11383
+ <ul class="license-used-by">
11384
+ <li><a href=" https://github.com/JoranHonig/tree-sitter-solidity ">tree-sitter-solidity 1.2.13</a></li>
11385
+ </ul>
11386
+ <pre class="license-text">Copyright (c) 2020 Joran Honig
11387
+
11388
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the &quot;Software&quot;), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
11389
+
11390
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
11391
+
11392
+ THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</pre>
11379
11393
  </li>
11380
11394
  <li class="license">
11381
11395
  <h3 id="MIT">MIT License</h3>
@@ -10,49 +10,82 @@ import TabItem from '@theme/TabItem';
10
10
 
11
11
  Certain settings need to be provided for CocoIndex to work, e.g. database connections, app namespace, etc.
12
12
 
13
- ## Launch CocoIndex
13
+ ## Configure CocoIndex Settings
14
14
 
15
- You have two ways to launch CocoIndex:
15
+ Note that in general, you have two ways to launch CocoIndex:
16
16
 
17
+ * Call CocoIndex APIs from your own Python application or library.
17
18
  * Use [Cocoindex CLI](cli). It's handy for most routine indexing building and management tasks.
18
- It will load settings from environment variables, either already set in your environment, or specified in `.env` file.
19
- See [CLI](cli#environment-variables) for more details.
20
19
 
21
- * Call CocoIndex functionality from your own Python application or library.
22
- It's needed when you want to leverage CocoIndex support for query, or have your custom logic to trigger indexing, etc.
23
20
 
24
- <Tabs>
25
- <TabItem value="python" label="Python" default>
21
+ CocoIndex exposes process-level settings specified by `cocoindex.Settings` dataclass.
22
+ Settings can be configured in three different ways.
23
+ In the following sections, the later ones will override the earlier ones.
26
24
 
27
- You need to explicitly call `cocoindex.init()` before doing anything with CocoIndex, and settings will be loaded during the call.
25
+ ### Environment Variables
28
26
 
29
- * If it's called without any argument, it will load settings from environment variables.
30
- Only existing environment variables already set in your environment will be used.
31
- If you want to load environment variables from a specific `.env` file, consider call `load_dotenv()` provided by the [`python-dotenv`](https://github.com/theskumar/python-dotenv) package.
27
+ The simplest approach is to set corresponding environment variables.
28
+ See [List of Environment Variables](#list-of-environment-variables) for specific environment variables.
32
29
 
33
- ```py
34
- from dotenv import load_dotenv
35
- import cocoindex
30
+ :::tip
36
31
 
37
- load_dotenv()
38
- cocoindex.init()
39
- ```
32
+ You can consider place a `.env` file in your directory.
33
+ The [CLI](cli#environment-variables) will load environment variables from the `.env` file (see [CLI](cli#environment-variables) for more details).
34
+ From your own main module, you can also load environment variables with a package like [`python-dotenv`](https://github.com/theskumar/python-dotenv).
40
35
 
41
- * It takes an optional `cocoindex.Settings` dataclass object as argument, so you can also construct settings explicitly and pass to it:
36
+ :::
37
+
38
+ ### Setting Function
39
+
40
+ A more flexible approach is to provide a setting function that returns a `cocoindex.Settings` dataclass object.
41
+ The setting function can have any name, and needs to be decorated with the `@cocoindex.settings` decorator, for example:
42
+
43
+ ```py
44
+ @cocoindex.settings
45
+ def cocoindex_settings() -> cocoindex.Settings:
46
+ return cocoindex.Settings(
47
+ database=cocoindex.DatabaseConnectionSpec(
48
+ url="postgres://cocoindex:cocoindex@localhost/cocoindex"
49
+ )
50
+ )
51
+ ```
52
+
53
+ This setting function will be called once when CocoIndex is initialized.
54
+ Once the settings function is provided, environment variables will be ignored.
42
55
 
43
- ```py
44
- import cocoindex
56
+ ### `cocoindex.init()` function
45
57
 
46
- cocoindex.init(
47
- cocoindex.Settings(
48
- database=cocoindex.DatabaseConnectionSpec(
49
- url="postgres://cocoindex:cocoindex@localhost/cocoindex"
50
- )
51
- )
58
+ You can also call `cocoindex.init()` with a `cocoindex.Settings` dataclass object as argument, for example:
59
+
60
+ ```py
61
+ cocoindex.init(
62
+ cocoindex.Settings(
63
+ database=cocoindex.DatabaseConnectionSpec(
64
+ url="postgres://cocoindex:cocoindex@localhost/cocoindex"
52
65
  )
53
- ```
54
- </TabItem>
55
- </Tabs>
66
+ )
67
+ )
68
+ ```
69
+
70
+ For example, you can call it in the main function of your application.
71
+ Once the `cocoindex.init()` is called with a `cocoindex.Settings` dataclass object as argument, the `@cocoindex.settings` function and environment variables will be ignored.
72
+
73
+ This is more flexible, as you can more easily construct `cocoindex.Settings` based on other stuffs you loaded earlier.
74
+ But be careful that if you call `cocoindex.init()` only under the path of main (e.g. within `if __name__ == "__main__":` guard), it won't be executed when you're using CocoIndex CLI, as it won't execute your main logic.
75
+
76
+ :::info
77
+
78
+ `cocoindex.init()` is optional:
79
+
80
+ - You can call `cocoindex.init()` with a `cocoindex.Settings` dataclass object as argument, or without any argument.
81
+ When without argument, the settings will be loaded from the `@cocoindex.settings` function or environment variables.
82
+
83
+ - You don't have to explicitly call `cocoindex.init()`.
84
+ CocoIndex will be automatically initialized when needed, e.g. when any method of any flow is called the first time.
85
+ 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
+ If you need this clarity, you can call it explicitly even if you don't want to provide settings by the `cocoindex.init()` call.
87
+
88
+ :::
56
89
 
57
90
  ## List of Settings
58
91
 
@@ -7,6 +7,7 @@ canonicalUrl: '/examples/academic_papers_index'
7
7
  sidebar_custom_props:
8
8
  image: /img/examples/academic_papers_index/cover.png
9
9
  tags: [vector-index, metadata]
10
+ image: /img/examples/academic_papers_index/cover.png
10
11
  tags: [vector-index, metadata]
11
12
  ---
12
13
 
@@ -7,6 +7,7 @@ canonicalUrl: '/examples/code_index'
7
7
  sidebar_custom_props:
8
8
  image: /img/examples/codebase_index/cover.png
9
9
  tags: [vector-index, codebase]
10
+ image: /img/examples/codebase_index/cover.png
10
11
  tags: [vector-index, codebase]
11
12
  ---
12
13
 
@@ -7,6 +7,7 @@ canonicalUrl: '/examples/custom_targets'
7
7
  sidebar_custom_props:
8
8
  image: /img/examples/custom_targets/cover.png
9
9
  tags: [custom-building-blocks]
10
+ image: /img/examples/custom_targets/cover.png
10
11
  tags: [custom-building-blocks]
11
12
  ---
12
13
  import { GitHubButton, YouTubeButton, DocumentationButton } from '../../../src/components/GitHubButton';
@@ -7,6 +7,7 @@ canonicalUrl: '/examples/knowledge-graph-for-docs'
7
7
  sidebar_custom_props:
8
8
  image: /img/examples/docs_to_knowledge_graph/cover.png
9
9
  tags: [knowledge-graph, structured-data-extraction]
10
+ image: /img/examples/docs_to_knowledge_graph/cover.png
10
11
  tags: [knowledge-graph, structured-data-extraction]
11
12
  ---
12
13
 
@@ -7,6 +7,7 @@ canonicalUrl: '/examples/document_ai'
7
7
  sidebar_custom_props:
8
8
  image: /img/examples/document_ai/cover.png
9
9
  tags: [vector-index, custom-building-block]
10
+ image: /img/examples/document_ai/cover.png
10
11
  tags: [vector-index, custom-building-block]
11
12
  ---
12
13
  import { GitHubButton, DocumentationButton, ExampleButton } from '../../../src/components/GitHubButton';
@@ -7,6 +7,7 @@ canonicalUrl: '/examples/image_search'
7
7
  sidebar_custom_props:
8
8
  image: /img/examples/image_search/cover.png
9
9
  tags: [vector-index, multi-modal]
10
+ image: /img/examples/image_search/cover.png
10
11
  tags: [vector-index, multi-modal]
11
12
  ---
12
13
 
@@ -7,6 +7,7 @@ canonicalUrl: '/examples/manual_extraction'
7
7
  sidebar_custom_props:
8
8
  image: /img/examples/manual_extraction/cover.png
9
9
  tags: [structured-data-extraction, data-mapping]
10
+ image: /img/examples/manual_extraction/cover.png
10
11
  tags: [structured-data-extraction, data-mapping]
11
12
  ---
12
13
 
@@ -7,6 +7,7 @@ canonicalUrl: '/examples/multi_format_index'
7
7
  sidebar_custom_props:
8
8
  image: /img/examples/multi_format_index/cover.png
9
9
  tags: [vector-index, multi-modal]
10
+ image: /img/examples/multi_format_index/cover.png
10
11
  tags: [vector-index, multi-modal]
11
12
  ---
12
13
 
@@ -7,6 +7,7 @@ canonicalUrl: '/examples/patient_form_extraction'
7
7
  sidebar_custom_props:
8
8
  image: /img/examples/patient_form_extraction/cover.png
9
9
  tags: [structured-data-extraction, data-mapping ]
10
+ image: /img/examples/patient_form_extraction/cover.png
10
11
  tags: [structured-data-extraction, data-mapping]
11
12
  ---
12
13
 
@@ -7,6 +7,7 @@ canonicalUrl: '/examples/photo_search'
7
7
  sidebar_custom_props:
8
8
  image: /img/examples/photo_search/cover.png
9
9
  tags: [vector-index, multi-modal]
10
+ image: /img/examples/photo_search/cover.png
10
11
  tags: [vector-index, multi-modal]
11
12
  ---
12
13
 
@@ -7,6 +7,7 @@ canonicalUrl: '/examples/postgres_source'
7
7
  sidebar_custom_props:
8
8
  image: /img/examples/postgres_source/cover.png
9
9
  tags: [data-mapping, vector-index, postgres]
10
+ image: /img/examples/postgres_source/cover.png
10
11
  tags: [data-mapping, vector-index, postgres]
11
12
  ---
12
13
  import { GitHubButton, YouTubeButton, DocumentationButton } from '../../../src/components/GitHubButton';
@@ -7,6 +7,7 @@ canonicalUrl: '/examples/product_recommendation'
7
7
  sidebar_custom_props:
8
8
  image: /img/examples/product_recommendation/cover.png
9
9
  tags: [knowledge-graph ]
10
+ image: /img/examples/product_recommendation/cover.png
10
11
  tags: [knowledge-graph]
11
12
  ---
12
13
 
@@ -7,6 +7,7 @@ canonicalUrl: '/examples/simple_vector_index'
7
7
  sidebar_custom_props:
8
8
  image: /img/examples/simple_vector_index/cover.png
9
9
  tags: [vector-index]
10
+ image: /img/examples/simple_vector_index/cover.png
10
11
  tags: [vector-index]
11
12
  ---
12
13
 
@@ -102,6 +102,7 @@ Currently, `SplitRecursively` supports the following languages:
102
102
  | Ruby | | `.rb` |
103
103
  | Rust | RS | `.rs` |
104
104
  | Scala | | `.scala` |
105
+ | Solidity | | `.sol` |
105
106
  | SQL | | `.sql` |
106
107
  | Swift | | `.swift` |
107
108
  | TOML | | `.toml` |
@@ -0,0 +1,213 @@
1
+ ---
2
+ title: Query Support
3
+ description: CocoIndex supports vector search and text search.
4
+ ---
5
+
6
+ import Tabs from '@theme/Tabs';
7
+ import TabItem from '@theme/TabItem';
8
+
9
+ # CocoIndex Query Support
10
+
11
+ The main functionality of CocoIndex is indexing.
12
+ The goal of indexing is to enable efficient querying against your data.
13
+ You can use any libraries or frameworks of your choice to perform queries.
14
+ At the same time, CocoIndex provides seamless integration between indexing and querying workflows.
15
+
16
+ * You can share transformations between indexing and querying.
17
+ * You can define query handlers, so that you can easily run queries in tools like CocoInsight.
18
+ * You can easily retrieve table names when using CocoIndex's default naming conventions.
19
+
20
+ ## Transform Flow
21
+
22
+ Sometimes a part of the transformation logic needs to be shared between indexing and querying,
23
+ e.g. when we build a vector index and query against it, the embedding computation needs to be consistent between indexing and querying.
24
+
25
+ In this case, you can:
26
+
27
+ 1. Extract a sub-flow with the shared transformation logic into a standalone function.
28
+ * It takes one or more data slices as input.
29
+ * It returns one data slice as output.
30
+ * You need to annotate data types for both inputs and outputs as type parameter for `cocoindex.DataSlice[T]`. See [data types](./core/data_types.mdx) for more details about supported data types.
31
+
32
+ 2. When you're defining your indexing flow, you can directly call the function.
33
+ The body will be executed, so that the transformation logic will be added as part of the indexing flow.
34
+
35
+ 3. At query time, you usually want to directly run the function with specific input data, instead of letting it called as part of a long-lived indexing flow.
36
+ To do this, declare the function as a *transform flow*, by decorating it with `@cocoindex.transform_flow()`.
37
+ This will add `eval()` and `eval_async()` methods to the function, so that you can directly call with specific input data.
38
+
39
+
40
+ <Tabs>
41
+ <TabItem value="python" label="Python">
42
+
43
+ For example, based on the flow in [quickstart](getting_started/quickstart), you can extract the invocation of `SentenceTransformerEmbed` into a standalone function:
44
+
45
+ ```python
46
+ @cocoindex.transform_flow()
47
+ def text_to_embedding(text: cocoindex.DataSlice[str]) -> cocoindex.DataSlice[NDArray[np.float32]]:
48
+ return text.transform(
49
+ cocoindex.functions.SentenceTransformerEmbed(
50
+ model="sentence-transformers/all-MiniLM-L6-v2"))
51
+ ```
52
+
53
+ When you're defining your indexing flow, you can directly call the function:
54
+
55
+ ```python
56
+ with doc["chunks"].row() as chunk:
57
+ chunk["embedding"] = text_to_embedding(chunk["text"])
58
+ ```
59
+
60
+ or, using the `call()` method of the transform flow on the first argument, to make operations chainable:
61
+
62
+ ```python
63
+ with doc["chunks"].row() as chunk:
64
+ chunk["embedding"] = chunk["text"].call(text_to_embedding)
65
+ ```
66
+
67
+ Any time, you can call the `eval()` method with specific string, which will return a `NDArray[np.float32]`:
68
+
69
+ ```python
70
+ print(text_to_embedding.eval("Hello, world!"))
71
+ ```
72
+
73
+ If you're in an async context, please call the `eval_async()` method instead:
74
+
75
+ ```python
76
+ print(await text_to_embedding.eval_async("Hello, world!"))
77
+ ```
78
+
79
+ </TabItem>
80
+ </Tabs>
81
+
82
+ ## Query Handler
83
+
84
+ Query handlers let you expose a simple function that takes a query string and returns structured results. They are discoverable by tools like CocoInsight so you can query your indexes without writing extra glue code.
85
+
86
+ - **What you write**: a plain Python function `def search(query: str) -> cocoindex.QueryOutput`.
87
+ - **How you register**: decorate it with `@<your_flow>.query_handler(...)` or call `flow.add_query_handler(...)` directly.
88
+ - **What you return**: a `cocoindex.QueryOutput(results=[...], query_info=...)`.
89
+ - **Optional metadata**: `QueryHandlerResultFields` tells tools which fields contain the embedding vector and score.
90
+
91
+ ### Minimum Query Handler
92
+
93
+ A minimum query handler looks like this:
94
+
95
+ <Tabs>
96
+ <TabItem value="python" label="Python">
97
+
98
+ ```python
99
+ @my_flow.query_handler(name="run_query") # Name is optional, use the function name by default
100
+ def run_query(query: str) -> cocoindex.QueryOutput:
101
+ # 1) Perform your query against the input `query`
102
+ ...
103
+
104
+ # 2) Return structured results
105
+ return cocoindex.QueryOutput(results=[{"filename": "...", "text": "..."}])
106
+ ```
107
+
108
+ </TabItem>
109
+ </Tabs>
110
+
111
+ Notes about the decorator:
112
+
113
+ - The handler can be sync or async.
114
+ - The decorator registers the handler as a query handler for the flow. It doesn't change the function signature: you can still call the function directly.
115
+
116
+ Your function returns a `cocoindex.QueryOutput`, with a `results` field, which is a list of dicts (or dataclass instances) representing query results.
117
+ Each element is a query result. All data types convertible to JSON are supported. Embeddings can be `list[float]` or numpy array.
118
+
119
+ A simple query handler like this will enable CocoInsight to display the query results for you to view easily.
120
+
121
+ ### Query Handler with Additional Information
122
+
123
+ You can provide additional information by extra fields like this:
124
+
125
+ <Tabs>
126
+ <TabItem value="python" label="Python">
127
+
128
+ ```python
129
+ @my_flow.query_handler(
130
+ name="run_query", # Name is optional, use the function name by default
131
+ result_fields=cocoindex.QueryHandlerResultFields(
132
+ embedding=["embedding"], # path to the vector field in each result
133
+ score="score", # numeric similarity score (higher is better)
134
+ )
135
+ )
136
+ def run_query(query: str) -> cocoindex.QueryOutput:
137
+ # 1) Compute embedding for the input query (often via a transform flow)
138
+ query_vector = text_to_embedding.eval(query)
139
+
140
+ # 2) Run your database/vector store query
141
+ ...
142
+
143
+ # 3) Return structured results plus optional query_info
144
+ return cocoindex.QueryOutput(
145
+ results=[{"text": "...", "embedding": some_vec, "score": 0.92}],
146
+ query_info=cocoindex.QueryInfo(
147
+ embedding=query_vector,
148
+ similarity_metric=cocoindex.VectorSimilarityMetric.COSINE_SIMILARITY,
149
+ ),
150
+ )
151
+ ```
152
+
153
+ </TabItem>
154
+ </Tabs>
155
+
156
+ - `result_fields` within `query_handler` specifies field names in the query results returned by the query handler. This provides metadata for tools like CocoInsight to recognize structure of the query results, as specified by the following fields (all optional):
157
+ - `embedding` is a list of keys that navigates to the embedding in each result (use multiple in case of multiple embeddings, e.g. using different models).
158
+ - `score` should point to a numeric field where larger means more relevant.
159
+
160
+ - `QueryOutput.query_info` specifies information for the query itself, with the following fields (all optional):
161
+ - `embedding` is the embedding of the query.
162
+ - `similarity_metric` is the similarity metric used to query the index.
163
+
164
+
165
+ ### Directly Register without Decorator
166
+
167
+ The above example can be written without decorator like this:
168
+
169
+ ```python
170
+ def my_search(query: str) -> cocoindex.QueryOutput:
171
+ ...
172
+
173
+ my_flow.add_query_handler(
174
+ name="run_query",
175
+ handler=my_search,
176
+ result_fields=cocoindex.QueryHandlerResultFields(embedding=["embedding"], score="score"),
177
+ )
178
+ ```
179
+
180
+ Sometimes this provides more flexibility.
181
+
182
+ ### Examples
183
+
184
+ You can see our following examples:
185
+
186
+ - [Text Embedding (PostgreSQL)](https://github.com/cocoindex-io/cocoindex/blob/main/examples/text_embedding/main.py)
187
+ - [Text Embedding (Qdrant)](https://github.com/cocoindex-io/cocoindex/blob/main/examples/text_embedding_qdrant/main.py)
188
+ - [Code Embedding](https://github.com/cocoindex-io/cocoindex/blob/main/examples/code_embedding/main.py)
189
+
190
+
191
+ ## Get Target Native Names
192
+
193
+ In your indexing flow, when you export data to a target, you can specify the target name (e.g. a database table name, a collection name, the node label in property graph databases, etc.) explicitly,
194
+ or for some backends you can also omit it and let CocoIndex generate a default name for you.
195
+ For the latter case, CocoIndex provides a utility function `cocoindex.utils.get_target_default_name()` to get the default name.
196
+ It takes the following arguments:
197
+
198
+ * `flow` (type: `cocoindex.Flow`): The flow to get the default name for.
199
+ * `target_name` (type: `str`): The export target name, appeared in the `export()` call.
200
+
201
+ For example:
202
+
203
+ <Tabs>
204
+ <TabItem value="python" label="Python">
205
+
206
+ ```python
207
+ table_name = cocoindex.utils.get_target_default_name(text_embedding_flow, "doc_embeddings")
208
+ query = f"SELECT filename, text FROM {table_name} ORDER BY embedding <=> %s DESC LIMIT 5"
209
+ ...
210
+ ```
211
+
212
+ </TabItem>
213
+ </Tabs>