cocoindex 0.2.12__tar.gz → 0.2.14__tar.gz

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