cocoindex 0.2.4__tar.gz → 0.2.5__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 (416) hide show
  1. {cocoindex-0.2.4 → cocoindex-0.2.5}/.github/workflows/_test.yml +22 -1
  2. {cocoindex-0.2.4 → cocoindex-0.2.5}/.github/workflows/release.yml +26 -1
  3. {cocoindex-0.2.4 → cocoindex-0.2.5}/Cargo.lock +3 -1
  4. {cocoindex-0.2.4 → cocoindex-0.2.5}/Cargo.toml +3 -1
  5. {cocoindex-0.2.4 → cocoindex-0.2.5}/PKG-INFO +1 -2
  6. cocoindex-0.2.5/about.hbs +70 -0
  7. cocoindex-0.2.5/about.toml +12 -0
  8. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/core/cli.mdx +2 -2
  9. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/core/flow_methods.mdx +1 -1
  10. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/examples/examples/academic_papers_index.md +1 -1
  11. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/examples/examples/docs_to_knowledge_graph.md +1 -1
  12. cocoindex-0.2.5/docs/docs/examples/examples/document_ai.md +156 -0
  13. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/examples/examples/manual_extraction.md +1 -1
  14. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/examples/examples/multi_format_index.md +1 -1
  15. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/examples/examples/patient_form_extraction.md +1 -1
  16. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/examples/examples/photo_search.md +1 -1
  17. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/examples/examples/postgres_source.md +8 -6
  18. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/examples/examples/product_recommendation.md +1 -1
  19. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/examples/examples/simple_vector_index.md +1 -1
  20. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/query.mdx +1 -1
  21. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/src/components/GitHubButton/index.tsx +18 -2
  22. cocoindex-0.2.5/docs/static/img/examples/document_ai/cover.png +0 -0
  23. cocoindex-0.2.5/docs/static/img/examples/document_ai/document_ai.png +0 -0
  24. cocoindex-0.2.5/docs/static/img/examples/document_ai/processor.png +0 -0
  25. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/amazon_s3_embedding/README.md +2 -2
  26. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/amazon_s3_embedding/pyproject.toml +1 -1
  27. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/azure_blob_embedding/README.md +2 -2
  28. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/azure_blob_embedding/pyproject.toml +1 -1
  29. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/code_embedding/README.md +1 -1
  30. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/code_embedding/pyproject.toml +1 -1
  31. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/custom_output_files/README.md +1 -1
  32. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/custom_output_files/pyproject.toml +1 -1
  33. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/docs_to_knowledge_graph/README.md +1 -1
  34. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/docs_to_knowledge_graph/pyproject.toml +1 -1
  35. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/face_recognition/README.md +1 -1
  36. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/face_recognition/pyproject.toml +1 -1
  37. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/fastapi_server_docker/requirements.txt +1 -1
  38. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/gdrive_text_embedding/README.md +2 -2
  39. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/gdrive_text_embedding/pyproject.toml +1 -1
  40. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/image_search/pyproject.toml +1 -1
  41. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/live_updates/pyproject.toml +1 -1
  42. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/manuals_llm_extraction/README.md +1 -1
  43. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/manuals_llm_extraction/pyproject.toml +1 -1
  44. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/multi_format_indexing/README.md +1 -1
  45. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/multi_format_indexing/pyproject.toml +1 -1
  46. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/paper_metadata/README.md +1 -1
  47. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/paper_metadata/pyproject.toml +1 -1
  48. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/patient_intake_extraction/README.md +1 -1
  49. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/patient_intake_extraction/pyproject.toml +1 -1
  50. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/pdf_embedding/README.md +1 -1
  51. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/pdf_embedding/pyproject.toml +1 -1
  52. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/postgres_source/README.md +2 -2
  53. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/postgres_source/pyproject.toml +1 -1
  54. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/product_recommendation/README.md +1 -1
  55. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/product_recommendation/pyproject.toml +1 -1
  56. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/text_embedding/README.md +1 -1
  57. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/text_embedding/pyproject.toml +1 -1
  58. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/text_embedding_qdrant/README.md +1 -1
  59. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/text_embedding_qdrant/pyproject.toml +1 -1
  60. {cocoindex-0.2.4 → cocoindex-0.2.5}/pyproject.toml +1 -0
  61. {cocoindex-0.2.4 → cocoindex-0.2.5}/.cargo/config.toml +0 -0
  62. {cocoindex-0.2.4 → cocoindex-0.2.5}/.env.lib_debug +0 -0
  63. {cocoindex-0.2.4 → cocoindex-0.2.5}/.github/ISSUE_TEMPLATE//360/237/220/233-bug-report.md" +0 -0
  64. {cocoindex-0.2.4 → cocoindex-0.2.5}/.github/ISSUE_TEMPLATE//360/237/222/241-feature-request.md" +0 -0
  65. {cocoindex-0.2.4 → cocoindex-0.2.5}/.github/scripts/update_version.sh +0 -0
  66. {cocoindex-0.2.4 → cocoindex-0.2.5}/.github/workflows/CI.yml +0 -0
  67. {cocoindex-0.2.4 → cocoindex-0.2.5}/.github/workflows/_doc_release.yml +0 -0
  68. {cocoindex-0.2.4 → cocoindex-0.2.5}/.github/workflows/docs.yml +0 -0
  69. {cocoindex-0.2.4 → cocoindex-0.2.5}/.github/workflows/format.yml +0 -0
  70. {cocoindex-0.2.4 → cocoindex-0.2.5}/.gitignore +0 -0
  71. {cocoindex-0.2.4 → cocoindex-0.2.5}/.pre-commit-config.yaml +0 -0
  72. {cocoindex-0.2.4 → cocoindex-0.2.5}/CODE_OF_CONDUCT.md +0 -0
  73. {cocoindex-0.2.4 → cocoindex-0.2.5}/CONTRIBUTING.md +0 -0
  74. {cocoindex-0.2.4 → cocoindex-0.2.5}/LICENSE +0 -0
  75. {cocoindex-0.2.4 → cocoindex-0.2.5}/README.md +0 -0
  76. {cocoindex-0.2.4 → cocoindex-0.2.5}/dev/neo4j.yaml +0 -0
  77. {cocoindex-0.2.4 → cocoindex-0.2.5}/dev/postgres.yaml +0 -0
  78. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/.gitignore +0 -0
  79. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/README.md +0 -0
  80. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/about/community.md +0 -0
  81. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/ai/llm.mdx +0 -0
  82. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/contributing/guide.md +0 -0
  83. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/contributing/new_built_in_target.mdx +0 -0
  84. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/contributing/setup_dev_environment.md +0 -0
  85. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/core/basics.md +0 -0
  86. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/core/data_example.svg +0 -0
  87. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/core/data_types.mdx +0 -0
  88. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/core/flow_def.mdx +0 -0
  89. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/core/flow_example.svg +0 -0
  90. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/core/settings.mdx +0 -0
  91. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/custom_ops/custom_functions.mdx +0 -0
  92. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/custom_ops/custom_targets.mdx +0 -0
  93. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/examples/examples/codebase_index.md +0 -0
  94. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/examples/examples/custom_targets.md +0 -0
  95. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/examples/examples/image_search.md +0 -0
  96. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/examples/index.md +0 -0
  97. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/getting_started/installation.md +0 -0
  98. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/getting_started/markdown_files.zip +0 -0
  99. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/getting_started/overview.md +0 -0
  100. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/getting_started/quickstart.md +0 -0
  101. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/ops/functions.md +0 -0
  102. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/ops/sources.md +0 -0
  103. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/ops/targets.md +0 -0
  104. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/tutorials/live_updates.md +0 -0
  105. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docs/tutorials/manage_flow_dynamically.mdx +0 -0
  106. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/docusaurus.config.ts +0 -0
  107. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/package.json +0 -0
  108. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/sidebars.ts +0 -0
  109. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/src/css/custom.css +0 -0
  110. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/src/theme/DocCard/index.tsx +0 -0
  111. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/src/theme/DocCard/styles.module.css +0 -0
  112. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/src/theme/DocCardList/index.tsx +0 -0
  113. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/src/theme/DocCardList/styles.module.css +0 -0
  114. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/src/theme/Root.js +0 -0
  115. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/.nojekyll +0 -0
  116. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/docusaurus.png +0 -0
  117. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/academic_papers_index/abstract_chunks.png +0 -0
  118. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/academic_papers_index/basic_info.png +0 -0
  119. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/academic_papers_index/chunk_embedding.png +0 -0
  120. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/academic_papers_index/cover.png +0 -0
  121. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/academic_papers_index/first_page.png +0 -0
  122. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/academic_papers_index/flow.png +0 -0
  123. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/academic_papers_index/metadata.png +0 -0
  124. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/codebase_index/chunk.png +0 -0
  125. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/codebase_index/cover.png +0 -0
  126. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/codebase_index/flow.png +0 -0
  127. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/custom_targets/convert.png +0 -0
  128. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/custom_targets/cover.png +0 -0
  129. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/docs_to_knowledge_graph/cover.png +0 -0
  130. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/docs_to_knowledge_graph/dedupe.png +0 -0
  131. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/docs_to_knowledge_graph/export_document.png +0 -0
  132. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/docs_to_knowledge_graph/export_relationship.png +0 -0
  133. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/docs_to_knowledge_graph/extract_relationship.png +0 -0
  134. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/docs_to_knowledge_graph/flow.png +0 -0
  135. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/docs_to_knowledge_graph/relationship.png +0 -0
  136. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/docs_to_knowledge_graph/summary.png +0 -0
  137. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/image_search/cover.png +0 -0
  138. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/image_search/embedding.png +0 -0
  139. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/image_search/flow.png +0 -0
  140. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/image_search/multi_modal_architecture.png +0 -0
  141. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/image_search/result.png +0 -0
  142. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/manual_extraction/cover.png +0 -0
  143. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/manual_extraction/extraction.png +0 -0
  144. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/manual_extraction/flow.png +0 -0
  145. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/manual_extraction/summary.png +0 -0
  146. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/multi_format_index/colpali_architecture.png +0 -0
  147. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/multi_format_index/cover.png +0 -0
  148. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/multi_format_index/embed.png +0 -0
  149. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/multi_format_index/flow.png +0 -0
  150. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/multi_format_index/pages.png +0 -0
  151. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/patient_form_extraction/cover.png +0 -0
  152. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/patient_form_extraction/extraction.png +0 -0
  153. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/patient_form_extraction/fields.png +0 -0
  154. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/patient_form_extraction/flow.png +0 -0
  155. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/patient_form_extraction/tomarkdown.png +0 -0
  156. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/photo_search/cover.png +0 -0
  157. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/photo_search/extraction.png +0 -0
  158. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/photo_search/flow.png +0 -0
  159. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/postgres_source/collector.png +0 -0
  160. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/postgres_source/cover.png +0 -0
  161. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/postgres_source/description.png +0 -0
  162. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/postgres_source/embed.png +0 -0
  163. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/postgres_source/flow.png +0 -0
  164. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/postgres_source/lineage.png +0 -0
  165. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/postgres_source/price.png +0 -0
  166. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/postgres_source/source.png +0 -0
  167. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/product_recommendation/cover.png +0 -0
  168. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/product_recommendation/dedupe.png +0 -0
  169. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/product_recommendation/export_all.png +0 -0
  170. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/product_recommendation/export_product.png +0 -0
  171. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/product_recommendation/export_taxonomy.png +0 -0
  172. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/product_recommendation/extract_product.png +0 -0
  173. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/product_recommendation/extract_taxonomy.png +0 -0
  174. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/product_recommendation/neo4j.png +0 -0
  175. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/product_recommendation/parse_json.png +0 -0
  176. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/product_recommendation/taxonomy.png +0 -0
  177. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/simple_vector_index/chunk.png +0 -0
  178. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/simple_vector_index/cover.png +0 -0
  179. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/simple_vector_index/embed.png +0 -0
  180. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/examples/simple_vector_index/flow.png +0 -0
  181. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/favicon.ico +0 -0
  182. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/icon.svg +0 -0
  183. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/img/incremental-etl.gif +0 -0
  184. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/static/robots.txt +0 -0
  185. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/tsconfig.json +0 -0
  186. {cocoindex-0.2.4 → cocoindex-0.2.5}/docs/yarn.lock +0 -0
  187. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/amazon_s3_embedding/.env.example +0 -0
  188. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/amazon_s3_embedding/.gitignore +0 -0
  189. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/amazon_s3_embedding/main.py +0 -0
  190. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/azure_blob_embedding/.env.example +0 -0
  191. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/azure_blob_embedding/.gitignore +0 -0
  192. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/azure_blob_embedding/main.py +0 -0
  193. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/code_embedding/.env +0 -0
  194. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/code_embedding/main.py +0 -0
  195. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/custom_output_files/.env +0 -0
  196. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/custom_output_files/.gitignore +0 -0
  197. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/custom_output_files/data/bizarre_animals.md +0 -0
  198. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/custom_output_files/data/chunk_norris.md +0 -0
  199. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/custom_output_files/main.py +0 -0
  200. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/docs_to_knowledge_graph/.env +0 -0
  201. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/docs_to_knowledge_graph/main.py +0 -0
  202. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/face_recognition/.env +0 -0
  203. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/face_recognition/images/Carter_welcomes_Reagan.jpg +0 -0
  204. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/face_recognition/images/Solvay_conference_1927.jpg +0 -0
  205. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/face_recognition/images/Steve_Jobs_and_Bill_Gates_(522695099).jpg +0 -0
  206. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/face_recognition/images/einplanck3.jpg +0 -0
  207. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/face_recognition/main.py +0 -0
  208. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/fastapi_server_docker/.dockerignore +0 -0
  209. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/fastapi_server_docker/.env +0 -0
  210. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/fastapi_server_docker/README.md +0 -0
  211. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/fastapi_server_docker/compose.yaml +0 -0
  212. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/fastapi_server_docker/dockerfile +0 -0
  213. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/fastapi_server_docker/files/1810.04805v2.md +0 -0
  214. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/fastapi_server_docker/main.py +0 -0
  215. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/gdrive_text_embedding/.env.example +0 -0
  216. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/gdrive_text_embedding/.gitignore +0 -0
  217. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/gdrive_text_embedding/main.py +0 -0
  218. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/image_search/.env +0 -0
  219. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/image_search/README.md +0 -0
  220. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/image_search/colpali_main.py +0 -0
  221. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/image_search/frontend/.gitignore +0 -0
  222. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/image_search/frontend/index.html +0 -0
  223. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/image_search/frontend/package-lock.json +0 -0
  224. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/image_search/frontend/package.json +0 -0
  225. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/image_search/frontend/src/App.jsx +0 -0
  226. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/image_search/frontend/src/main.jsx +0 -0
  227. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/image_search/frontend/src/style.css +0 -0
  228. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/image_search/frontend/vite.config.js +0 -0
  229. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/image_search/img/cat1.jpeg +0 -0
  230. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/image_search/img/dog1.jpeg +0 -0
  231. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/image_search/img/elephant1.jpg +0 -0
  232. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/image_search/img/giraffe.jpg +0 -0
  233. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/image_search/main.py +0 -0
  234. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/live_updates/.env +0 -0
  235. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/live_updates/README.md +0 -0
  236. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/live_updates/data/bizarre_animals.md +0 -0
  237. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/live_updates/data/chunk_norris.md +0 -0
  238. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/live_updates/main.py +0 -0
  239. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/manuals_llm_extraction/.env +0 -0
  240. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/manuals_llm_extraction/main.py +0 -0
  241. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/manuals_llm_extraction/manuals/array.pdf +0 -0
  242. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/manuals_llm_extraction/manuals/base64.pdf +0 -0
  243. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/manuals_llm_extraction/manuals/copy.pdf +0 -0
  244. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/manuals_llm_extraction/manuals/glob.pdf +0 -0
  245. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/multi_format_indexing/.env +0 -0
  246. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/multi_format_indexing/main.py +0 -0
  247. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/multi_format_indexing/source_files/1706.03762v7.pdf +0 -0
  248. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/multi_format_indexing/source_files/1810.04805v2.pdf +0 -0
  249. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/multi_format_indexing/source_files/2502.06786v3.pdf +0 -0
  250. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/multi_format_indexing/source_files/healthcare_industry_test_p101.jpg +0 -0
  251. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/multi_format_indexing/source_files/healthcare_industry_test_p86.jpg +0 -0
  252. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/multi_format_indexing/source_files/healthcare_industry_test_p9.jpg +0 -0
  253. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/multi_format_indexing/source_files/restaurant_brands_international_2023.jpg +0 -0
  254. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/multi_format_indexing/source_files/sweetgreen_2023.jpg +0 -0
  255. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/paper_metadata/.env.example +0 -0
  256. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/paper_metadata/.gitignore +0 -0
  257. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/paper_metadata/main.py +0 -0
  258. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/paper_metadata/papers/1706.03762v7.pdf +0 -0
  259. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/paper_metadata/papers/1810.04805v2.pdf +0 -0
  260. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/paper_metadata/papers/2502.06786v3.pdf +0 -0
  261. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/paper_metadata/papers/2502.20346v1.pdf +0 -0
  262. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/patient_intake_extraction/.env.example +0 -0
  263. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/patient_intake_extraction/data/README.md +0 -0
  264. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_David_Artificial.docx +0 -0
  265. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_Emily_Artificial.pdf +0 -0
  266. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_Form_Joe_Artificial.pdf +0 -0
  267. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/patient_intake_extraction/data/patient_forms/Patient_Intake_From_Jane_Artificial.docx +0 -0
  268. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/patient_intake_extraction/main.py +0 -0
  269. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/pdf_embedding/.env +0 -0
  270. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/pdf_embedding/main.py +0 -0
  271. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/pdf_embedding/pdf_files/1706.03762v7.pdf +0 -0
  272. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/pdf_embedding/pdf_files/1810.04805v2.pdf +0 -0
  273. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/pdf_embedding/pdf_files/rfc8259.pdf +0 -0
  274. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/postgres_source/.env +0 -0
  275. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/postgres_source/main.py +0 -0
  276. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/postgres_source/prepare_source_data.sql +0 -0
  277. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/product_recommendation/.env.example +0 -0
  278. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/product_recommendation/img/cocoinsight.png +0 -0
  279. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/product_recommendation/img/neo4j.png +0 -0
  280. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/product_recommendation/main.py +0 -0
  281. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/product_recommendation/products/p1.json +0 -0
  282. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/product_recommendation/products/p2.json +0 -0
  283. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/product_recommendation/products/p3.json +0 -0
  284. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/product_recommendation/products/p4.json +0 -0
  285. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/product_recommendation/products/p5.json +0 -0
  286. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/product_recommendation/products/p6.json +0 -0
  287. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/product_recommendation/products/p7.json +0 -0
  288. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/product_recommendation/products/p8.json +0 -0
  289. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/product_recommendation/products/p9.json +0 -0
  290. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/text_embedding/.env +0 -0
  291. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/text_embedding/Text_Embedding.ipynb +0 -0
  292. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/text_embedding/main.py +0 -0
  293. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/text_embedding/markdown_files/1706.03762v7.md +0 -0
  294. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/text_embedding/markdown_files/1810.04805v2.md +0 -0
  295. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/text_embedding/markdown_files/rfc8259.md +0 -0
  296. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/text_embedding_qdrant/.env +0 -0
  297. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/text_embedding_qdrant/main.py +0 -0
  298. {cocoindex-0.2.4 → cocoindex-0.2.5}/examples/text_embedding_qdrant/markdown_files/rfc8259.md +0 -0
  299. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/__init__.py +0 -0
  300. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/auth_registry.py +0 -0
  301. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/cli.py +0 -0
  302. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/convert.py +0 -0
  303. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/flow.py +0 -0
  304. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/functions.py +0 -0
  305. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/index.py +0 -0
  306. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/lib.py +0 -0
  307. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/llm.py +0 -0
  308. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/op.py +0 -0
  309. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/py.typed +0 -0
  310. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/runtime.py +0 -0
  311. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/setting.py +0 -0
  312. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/setup.py +0 -0
  313. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/sources.py +0 -0
  314. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/subprocess_exec.py +0 -0
  315. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/targets.py +0 -0
  316. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/tests/__init__.py +0 -0
  317. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/tests/conftest.py +0 -0
  318. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/tests/test_convert.py +0 -0
  319. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/tests/test_optional_database.py +0 -0
  320. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/tests/test_transform_flow.py +0 -0
  321. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/tests/test_typing.py +0 -0
  322. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/tests/test_validation.py +0 -0
  323. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/typing.py +0 -0
  324. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/user_app_loader.py +0 -0
  325. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/utils.py +0 -0
  326. {cocoindex-0.2.4 → cocoindex-0.2.5}/python/cocoindex/validation.py +0 -0
  327. {cocoindex-0.2.4 → cocoindex-0.2.5}/ruff.toml +0 -0
  328. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/base/duration.rs +0 -0
  329. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/base/field_attrs.rs +0 -0
  330. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/base/json_schema.rs +0 -0
  331. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/base/mod.rs +0 -0
  332. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/base/schema.rs +0 -0
  333. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/base/spec.rs +0 -0
  334. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/base/value.rs +0 -0
  335. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/builder/analyzed_flow.rs +0 -0
  336. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/builder/analyzer.rs +0 -0
  337. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/builder/exec_ctx.rs +0 -0
  338. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/builder/flow_builder.rs +0 -0
  339. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/builder/mod.rs +0 -0
  340. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/builder/plan.rs +0 -0
  341. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/execution/db_tracking.rs +0 -0
  342. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/execution/db_tracking_setup.rs +0 -0
  343. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/execution/dumper.rs +0 -0
  344. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/execution/evaluator.rs +0 -0
  345. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/execution/indexing_status.rs +0 -0
  346. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/execution/live_updater.rs +0 -0
  347. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/execution/memoization.rs +0 -0
  348. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/execution/mod.rs +0 -0
  349. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/execution/row_indexer.rs +0 -0
  350. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/execution/source_indexer.rs +0 -0
  351. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/execution/stats.rs +0 -0
  352. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/lib.rs +0 -0
  353. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/lib_context.rs +0 -0
  354. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/llm/anthropic.rs +0 -0
  355. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/llm/gemini.rs +0 -0
  356. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/llm/litellm.rs +0 -0
  357. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/llm/mod.rs +0 -0
  358. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/llm/ollama.rs +0 -0
  359. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/llm/openai.rs +0 -0
  360. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/llm/openrouter.rs +0 -0
  361. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/llm/vllm.rs +0 -0
  362. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/llm/voyage.rs +0 -0
  363. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/factory_bases.rs +0 -0
  364. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/functions/embed_text.rs +0 -0
  365. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/functions/extract_by_llm.rs +0 -0
  366. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/functions/mod.rs +0 -0
  367. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/functions/parse_json.rs +0 -0
  368. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/functions/split_recursively.rs +0 -0
  369. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/functions/test_utils.rs +0 -0
  370. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/interface.rs +0 -0
  371. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/mod.rs +0 -0
  372. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/py_factory.rs +0 -0
  373. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/registration.rs +0 -0
  374. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/registry.rs +0 -0
  375. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/sdk.rs +0 -0
  376. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/shared/mod.rs +0 -0
  377. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/shared/postgres.rs +0 -0
  378. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/sources/amazon_s3.rs +0 -0
  379. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/sources/azure_blob.rs +0 -0
  380. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/sources/google_drive.rs +0 -0
  381. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/sources/local_file.rs +0 -0
  382. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/sources/mod.rs +0 -0
  383. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/sources/postgres.rs +0 -0
  384. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/sources/shared/mod.rs +0 -0
  385. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/sources/shared/pattern_matcher.rs +0 -0
  386. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/targets/kuzu.rs +0 -0
  387. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/targets/mod.rs +0 -0
  388. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/targets/neo4j.rs +0 -0
  389. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/targets/postgres.rs +0 -0
  390. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/targets/qdrant.rs +0 -0
  391. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/targets/shared/mod.rs +0 -0
  392. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/targets/shared/property_graph.rs +0 -0
  393. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/ops/targets/shared/table_columns.rs +0 -0
  394. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/prelude.rs +0 -0
  395. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/py/convert.rs +0 -0
  396. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/py/mod.rs +0 -0
  397. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/server.rs +0 -0
  398. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/service/error.rs +0 -0
  399. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/service/flows.rs +0 -0
  400. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/service/mod.rs +0 -0
  401. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/settings.rs +0 -0
  402. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/setup/auth_registry.rs +0 -0
  403. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/setup/components.rs +0 -0
  404. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/setup/db_metadata.rs +0 -0
  405. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/setup/driver.rs +0 -0
  406. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/setup/flow_features.rs +0 -0
  407. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/setup/mod.rs +0 -0
  408. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/setup/states.rs +0 -0
  409. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/utils/concur_control.rs +0 -0
  410. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/utils/db.rs +0 -0
  411. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/utils/fingerprint.rs +0 -0
  412. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/utils/immutable.rs +0 -0
  413. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/utils/mod.rs +0 -0
  414. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/utils/retryable.rs +0 -0
  415. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/utils/str_sanitize.rs +0 -0
  416. {cocoindex-0.2.4 → cocoindex-0.2.5}/src/utils/yaml_ser.rs +0 -0
@@ -62,4 +62,25 @@ jobs:
62
62
  if: ${{ startsWith(matrix.platform.runner, 'windows') }}
63
63
  shell: cmd # Use `cmd` to run test for Windows, as PowerShell doesn't detect exit code by `os._exit(0)` correctly.
64
64
  run: |
65
- ${{ matrix.platform.python_exec }} -m pytest --capture=no python/cocoindex/tests
65
+ ${{ matrix.platform.python_exec }} -m pytest --capture=no python/cocoindex/tests
66
+
67
+ validate-3p-notices:
68
+ runs-on: ubuntu-latest
69
+ steps:
70
+ - uses: actions/checkout@v4
71
+ - name: Rust Cache
72
+ uses: Swatinem/rust-cache@v2
73
+ - name: Install Rust toolchain
74
+ uses: dtolnay/rust-toolchain@stable
75
+ - name: Install cargo-about
76
+ run: cargo install --locked cargo-about
77
+ - name: Validate third-party notices (dry-run)
78
+ shell: bash
79
+ run: |
80
+ set +e
81
+ cargo about generate about.hbs > /dev/null
82
+ status=$?
83
+ if [ $status -ne 0 ]; then
84
+ echo "::error::Third-party notices validation failed. Please update /about.toml and rerun."
85
+ exit $status
86
+ fi
@@ -94,10 +94,32 @@ jobs:
94
94
  name: wheels-sdist
95
95
  path: dist
96
96
 
97
+ generate-3p-notices:
98
+ runs-on: ubuntu-latest
99
+ needs: [create-versioned-toml]
100
+ steps:
101
+ - uses: actions/checkout@v4
102
+ - uses: actions/download-artifact@v4
103
+ with:
104
+ name: Cargo.toml
105
+ - name: Rust Cache
106
+ uses: Swatinem/rust-cache@v2
107
+ - name: Install Rust toolchain
108
+ uses: dtolnay/rust-toolchain@stable
109
+ - name: Install cargo-about
110
+ run: cargo install --locked cargo-about
111
+ - name: Generate THIRD_PARTY_NOTICES.html
112
+ run: cargo about generate -o THIRD_PARTY_NOTICES.html about.hbs
113
+ - name: Upload THIRD_PARTY_NOTICES.html artifact
114
+ uses: actions/upload-artifact@v4
115
+ with:
116
+ name: THIRD_PARTY_NOTICES.html
117
+ path: THIRD_PARTY_NOTICES.html
118
+
97
119
  release:
98
120
  name: Release
99
121
  runs-on: ubuntu-latest
100
- needs: [create-versioned-toml, build, test-abi3, sdist]
122
+ needs: [create-versioned-toml, build, test-abi3, sdist, generate-3p-notices]
101
123
  permissions:
102
124
  # Use to sign the release artifacts
103
125
  id-token: write
@@ -111,6 +133,9 @@ jobs:
111
133
  - uses: actions/download-artifact@v4
112
134
  with:
113
135
  name: Cargo.toml
136
+ - uses: actions/download-artifact@v4
137
+ with:
138
+ name: THIRD_PARTY_NOTICES.html
114
139
  - uses: actions/download-artifact@v4
115
140
  with:
116
141
  pattern: wheels-*
@@ -1283,7 +1283,7 @@ dependencies = [
1283
1283
 
1284
1284
  [[package]]
1285
1285
  name = "cocoindex"
1286
- version = "0.2.4"
1286
+ version = "0.2.5"
1287
1287
  dependencies = [
1288
1288
  "anyhow",
1289
1289
  "async-openai",
@@ -5091,6 +5091,7 @@ dependencies = [
5091
5091
  "memchr",
5092
5092
  "once_cell",
5093
5093
  "percent-encoding",
5094
+ "rustls 0.23.31",
5094
5095
  "serde",
5095
5096
  "serde_json",
5096
5097
  "sha2",
@@ -5101,6 +5102,7 @@ dependencies = [
5101
5102
  "tracing",
5102
5103
  "url",
5103
5104
  "uuid",
5105
+ "webpki-roots 0.26.11",
5104
5106
  ]
5105
5107
 
5106
5108
  [[package]]
@@ -2,9 +2,10 @@
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.4"
5
+ version = "0.2.5"
6
6
  edition = "2024"
7
7
  rust-version = "1.88"
8
+ license = "Apache-2.0"
8
9
  readme = "README.md"
9
10
 
10
11
  [profile.release]
@@ -43,6 +44,7 @@ sqlx = { version = "0.8.6", features = [
43
44
  "postgres",
44
45
  "runtime-tokio",
45
46
  "uuid",
47
+ "tls-rustls-aws-lc-rs",
46
48
  ] }
47
49
  tokio = { version = "1.47.1", features = [
48
50
  "macros",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cocoindex
3
- Version: 0.2.4
3
+ Version: 0.2.5
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: License :: OSI Approved :: Apache Software License
6
6
  Classifier: Operating System :: OS Independent
@@ -34,7 +34,6 @@ Provides-Extra: dev
34
34
  Provides-Extra: embeddings
35
35
  Provides-Extra: colpali
36
36
  Provides-Extra: all
37
- License-File: LICENSE
38
37
  Summary: With CocoIndex, users declare the transformation, CocoIndex creates & maintains an index, and keeps the derived index up to date based on source update, with minimal computation and changes.
39
38
  Keywords: indexing,real-time,incremental,pipeline,search,ai,etl,rag,dataflow,context-engineering
40
39
  Author-email: CocoIndex <cocoindex.io@gmail.com>
@@ -0,0 +1,70 @@
1
+ <html>
2
+
3
+ <head>
4
+ <style>
5
+ @media (prefers-color-scheme: dark) {
6
+ body {
7
+ background: #333;
8
+ color: white;
9
+ }
10
+ a {
11
+ color: skyblue;
12
+ }
13
+ }
14
+ .container {
15
+ font-family: sans-serif;
16
+ max-width: 800px;
17
+ margin: 0 auto;
18
+ }
19
+ .intro {
20
+ text-align: center;
21
+ }
22
+ .licenses-list {
23
+ list-style-type: none;
24
+ margin: 0;
25
+ padding: 0;
26
+ }
27
+ .license-used-by {
28
+ margin-top: -10px;
29
+ }
30
+ .license-text {
31
+ max-height: 200px;
32
+ overflow-y: scroll;
33
+ white-space: pre-wrap;
34
+ }
35
+ </style>
36
+ </head>
37
+
38
+ <body>
39
+ <main class="container">
40
+ <div class="intro">
41
+ <h1>Third Party Licenses</h1>
42
+ <p>This page lists the licenses of the projects used in cargo-about.</p>
43
+ </div>
44
+
45
+ <h2>Overview of licenses:</h2>
46
+ <ul class="licenses-overview">
47
+ {{#each overview}}
48
+ <li><a href="#{{id}}">{{name}}</a> ({{count}})</li>
49
+ {{/each}}
50
+ </ul>
51
+
52
+ <h2>All license text:</h2>
53
+ <ul class="licenses-list">
54
+ {{#each licenses}}
55
+ <li class="license">
56
+ <h3 id="{{id}}">{{name}}</h3>
57
+ <h4>Used by:</h4>
58
+ <ul class="license-used-by">
59
+ {{#each used_by}}
60
+ <li><a href="{{#if crate.repository}} {{crate.repository}} {{else}} https://crates.io/crates/{{crate.name}} {{/if}}">{{crate.name}} {{crate.version}}</a></li>
61
+ {{/each}}
62
+ </ul>
63
+ <pre class="license-text">{{text}}</pre>
64
+ </li>
65
+ {{/each}}
66
+ </ul>
67
+ </main>
68
+ </body>
69
+
70
+ </html>
@@ -0,0 +1,12 @@
1
+ accepted = [
2
+ "Apache-2.0",
3
+ "Apache-2.0 WITH LLVM-exception",
4
+ "BSD-2-Clause",
5
+ "BSD-3-Clause",
6
+ "CDLA-Permissive-2.0",
7
+ "ISC",
8
+ "MIT",
9
+ "OpenSSL",
10
+ "Unicode-3.0",
11
+ "Zlib",
12
+ ]
@@ -22,11 +22,11 @@ The `APP_TARGET` can be:
22
22
 
23
23
  2. A **path to a Python file** defining your flows (e.g., `main.py`, `path/to/my_flows.py`).
24
24
 
25
- The file will be loaded as a top-level Python module, e.g. relative imports will not work as its parent package is not defined (similar to how `python main.py` works).
25
+ The file will be loaded as a top-level Python module, e.g. relative imports will not work as its parent package is not defined (similar to how `python main.py` resolves imports).
26
26
 
27
27
  3. For commands that operate on a *specific flow* (like `show`, `update`, `evaluate`), you can combine the application reference with a flow name:
28
- * `path/to/my_flows.py:MyFlow`
29
28
  * `my_package.flows:MyFlow`
29
+ * `path/to/my_flows.py:MyFlow`
30
30
 
31
31
  ### Environment Variables
32
32
 
@@ -190,7 +190,7 @@ A data source may enable one or multiple *change capture mechanisms*:
190
190
  * Configured with a [refresh interval](flow_def#refresh-interval), which is generally applicable to all data sources.
191
191
 
192
192
  * Specific data sources also provide their specific change capture mechanisms.
193
- For example, [`AmazonS3` source](../ops/sources/#amazons3) watches S3 bucket's change events, and [`GoogleDrive` source](../ops/sources#googledrive) allows polling recent modified files.
193
+ For example, [`Postgres` source](../ops/sources/#postgres) listens to PostgreSQL's change notifications, [`AmazonS3` source](../ops/sources/#amazons3) watches S3 bucket's change events, and [`GoogleDrive` source](../ops/sources#googledrive) allows polling recent modified files.
194
194
  See documentations for specific data sources.
195
195
 
196
196
  Change capture mechanisms enable CocoIndex to continuously capture changes from the source data and update the target data accordingly, under live update mode.
@@ -342,7 +342,7 @@ You can walk through the project step by step in [CocoInsight](https://www.youtu
342
342
 
343
343
 
344
344
  ```sh
345
- cocoindex server -ci main.py
345
+ cocoindex server -ci main
346
346
  ```
347
347
 
348
348
  Follow the url `https://cocoindex.io/cocoinsight`. It connects to your local CocoIndex server, with zero pipeline data retention.
@@ -345,7 +345,7 @@ It creates relationships by:
345
345
  I used CocoInsight to troubleshoot the index generation and understand the data lineage of the pipeline. It is in free beta now, you can give it a try.
346
346
 
347
347
  ```sh
348
- cocoindex server -ci main.py
348
+ cocoindex server -ci main
349
349
  ```
350
350
 
351
351
  And then open the url `https://cocoindex.io/cocoinsight`. It just connects to your local CocoIndex server, with zero pipeline data retention.
@@ -0,0 +1,156 @@
1
+ ---
2
+ title: Bring your own parser as building block with Google Document AI
3
+ description: Use Google Document AI to parse document, embed the resulting text, and store it in a vectorized database for semantic search.
4
+ sidebar_class_name: hidden
5
+ slug: /examples/document_ai
6
+ canonicalUrl: '/examples/document_ai'
7
+ sidebar_custom_props:
8
+ image: /img/examples/document_ai/cover.png
9
+ tags: [vector-index, custom-building-block]
10
+ tags: [vector-index, custom-building-block]
11
+ ---
12
+ import { GitHubButton, DocumentationButton, ExampleButton } from '../../../src/components/GitHubButton';
13
+
14
+
15
+ <GitHubButton url="https://github.com/cocoindex-io/cocoindex/tree/main/examples/document_ai" margin="0 0 24px 0" />
16
+
17
+ ![Document AI](/img/examples/document_ai/cover.png)
18
+
19
+ CocoIndex is a flexible ETL framework with incremental processing. We don’t build parser ourselves, and users can bring in any open source or commercial parser that works best for their scenarios. In this example, we show how to use **Google Document AI to parse document**, embed the resulting text, and store it in a vectorized database for semantic search.
20
+
21
+ ## Set up
22
+ - [Install Postgres](https://cocoindex.io/docs/getting_started/installation#-install-postgres) if you don't have one.
23
+ - Configure Project and Processor ID for Document AI API
24
+ - [Official Google document AI API](https://cloud.google.com/document-ai/docs/try-docai) with free live demo.
25
+ - Sign in to [Google Cloud Console](https://console.cloud.google.com/), create or open a project, and enable Document AI API.
26
+ - ![image.png](/img/examples/document_ai/document_ai.png)
27
+ - ![image.png](/img/examples/document_ai/processor.png)
28
+ - update `.env` with `GOOGLE_CLOUD_PROJECT_ID` and `GOOGLE_CLOUD_PROCESSOR_ID`.
29
+
30
+
31
+ ## Create Your building block to convert PDFs to Markdown
32
+
33
+ We define a `ToMarkdown` custom function spec, which leverages Google Document AI to parse PDF content:
34
+
35
+ ```python
36
+ class ToMarkdown(cocoindex.op.FunctionSpec):
37
+ """Convert a PDF to markdown using Google Document AI."""
38
+ ```
39
+
40
+ The corresponding executor class handles API initialization and parsing logic:
41
+
42
+ ```python
43
+ @cocoindex.op.executor_class(cache=True, behavior_version=1)
44
+ class DocumentAIExecutor:
45
+ """Executor for Google Document AI to parse PDF files."""
46
+
47
+ spec: ToMarkdown
48
+ _client: documentai.DocumentProcessorServiceClient
49
+ _processor_name: str
50
+
51
+ def prepare(self):
52
+ # Initialize the Document AI client
53
+ project_id = os.environ.get("GOOGLE_CLOUD_PROJECT_ID")
54
+ location = os.environ.get("GOOGLE_CLOUD_LOCATION", "us")
55
+ processor_id = os.environ.get("GOOGLE_CLOUD_PROCESSOR_ID")
56
+
57
+ opts = ClientOptions(api_endpoint=f"{location}-documentai.googleapis.com")
58
+ self._client = documentai.DocumentProcessorServiceClient(client_options=opts)
59
+ self._processor_name = self._client.processor_path(project_id, location, processor_id)
60
+
61
+ async def __call__(self, content: bytes) -> str:
62
+ """Parse PDF content and convert to markdown text."""
63
+ request = documentai.ProcessRequest(
64
+ name=self._processor_name,
65
+ raw_document=documentai.RawDocument(content=content, mime_type="application/pdf")
66
+ )
67
+ response = self._client.process_document(request=request)
68
+ return response.document.text
69
+ ```
70
+
71
+ Make sure you configure the `cache` and `behavior_version` parameters for heavy operations like this.
72
+
73
+ - `cache`: Whether the executor will enable cache for this function. When True, the executor will cache the result of the function for reuse during reprocessing. We recommend to set this to True for any function that is computationally intensive.
74
+
75
+ - `behavior_version`: The version of the behavior of the function. When the version is changed, the function will be re-executed even if cache is enabled. It's required to be set if cache is True.
76
+
77
+
78
+ <DocumentationButton url="https://cocoindex.io/docs/custom_ops/custom_functions#option-2-by-a-function-spec-and-an-executor" text="Custom Functions" margin="0 0 16px 0" />
79
+
80
+ <DocumentationButton url="https://cocoindex.io/docs/custom_ops/custom_functions#parameters-for-custom-functions" text="Parameters for Custom Functions" margin="0 0 16px 0" />
81
+
82
+ ## Define the flow
83
+
84
+ ```python
85
+ @cocoindex.flow_def(name="DocumentAiPdfEmbedding")
86
+ def pdf_embedding_flow(flow_builder: cocoindex.FlowBuilder, data_scope: cocoindex.DataScope):
87
+ # flow definition
88
+ ```
89
+
90
+ ### Add source & collector
91
+
92
+ ```python
93
+ data_scope["documents"] = flow_builder.add_source(
94
+ cocoindex.sources.LocalFile(path="pdf_files", binary=True)
95
+ )
96
+
97
+ doc_embeddings = data_scope.add_collector()
98
+ ```
99
+
100
+ <DocumentationButton url="https://cocoindex.io/docs/ops/sources" text="Source" margin="0 0 16px 0" />
101
+
102
+ <DocumentationButton url="https://cocoindex.io/docs/ops/collectors" text="Collector" margin="0 0 16px 0" />
103
+
104
+ ### Process each document
105
+
106
+ ```python
107
+ with data_scope["documents"].row() as doc:
108
+ doc["markdown"] = doc["content"].transform(ToMarkdown())
109
+ doc["chunks"] = doc["markdown"].transform(
110
+ cocoindex.functions.SplitRecursively(),
111
+ language="markdown",
112
+ chunk_size=2000,
113
+ chunk_overlap=500
114
+ )
115
+ with doc["chunks"].row() as chunk:
116
+ chunk["embedding"] = chunk["text"].call(text_to_embedding)
117
+ doc_embeddings.collect(
118
+ id=cocoindex.GeneratedField.UUID,
119
+ filename=doc["filename"],
120
+ location=chunk["location"],
121
+ text=chunk["text"],
122
+ embedding=chunk["embedding"]
123
+ )
124
+ ```
125
+
126
+ 1. Convert them to Markdown using Document AI.
127
+ 2. Split the Markdown into chunks.
128
+ 3. Embed each chunk.
129
+
130
+ ## Export to Postgres
131
+
132
+ ```python
133
+ doc_embeddings.export(
134
+ "doc_embeddings",
135
+ cocoindex.storages.Postgres(),
136
+ primary_key_fields=["id"],
137
+ vector_indexes=[
138
+ cocoindex.VectorIndexDef(
139
+ field_name="embedding",
140
+ metric=cocoindex.VectorSimilarityMetric.COSINE_SIMILARITY
141
+ )
142
+ ]
143
+ )
144
+ ```
145
+
146
+ ## End to End Example
147
+
148
+ For a step-by-step walkthrough of each indexing stage and the query path, check out this example:
149
+
150
+ <ExampleButton href="https://cocoindex.io/docs/examples/simple_vector_index" text="Simple Vector Index" margin="0 0 16px 0" />
151
+
152
+ ## Other sources
153
+
154
+ CocoIndex natively supports Google Drive, Amazon S3, Azure Blob Storage, and more with native incremental processing out of box - when new or updated files are detected, the pipeline will capture the changes and only process what's changed.
155
+
156
+ <DocumentationButton url="https://cocoindex.io/docs/ops/sources" text="Sources" margin="0 0 16px 0" />
@@ -245,7 +245,7 @@ SELECT filename, module_info->'title' AS title, module_summary FROM modules_info
245
245
  [CocoInsight](https://www.youtube.com/watch?v=ZnmyoHslBSc) is a really cool tool to help you understand your data pipeline and data index. It is in Early Access now (Free).
246
246
 
247
247
  ```sh
248
- cocoindex server -ci main.py
248
+ cocoindex server -ci main
249
249
  ```
250
250
  CocoInsight dashboard is here `https://cocoindex.io/cocoinsight`. It connects to your local CocoIndex server with zero data retention.
251
251
 
@@ -193,7 +193,7 @@ You can walk through the project step by step in [CocoInsight](https://www.youtu
193
193
 
194
194
 
195
195
  ```sh
196
- cocoindex server -ci main.py
196
+ cocoindex server -ci main
197
197
  ```
198
198
 
199
199
  Follow the url `https://cocoindex.io/cocoinsight`. It connects to your local CocoIndex server, with zero pipeline data retention. You can use it to view extracted pages, see embedding vectors and metadata.
@@ -283,7 +283,7 @@ We could troubleshoot in two steps:
283
283
  I also use CocoInsight to help me troubleshoot.
284
284
 
285
285
  ```bash
286
- cocoindex server -ci main.py
286
+ cocoindex server -ci main
287
287
  ```
288
288
 
289
289
  Go to `https://cocoindex.io/cocoinsight`. You could see an interactive UI to explore the data.
@@ -206,7 +206,7 @@ CocoInsight is a tool to help you understand your data pipeline and data index.
206
206
  You can walk through the project step by step in [CocoInsight](https://www.youtube.com/watch?v=MMrpUfUcZPk) to see exactly how each field is constructed and what happens behind the scenes.
207
207
 
208
208
  ```sh
209
- cocoindex server -ci main.py
209
+ cocoindex server -ci main
210
210
  ```
211
211
 
212
212
  Follow the url `https://cocoindex.io/cocoinsight`. It connects to your local CocoIndex server, with zero pipeline data retention.
@@ -201,7 +201,7 @@ For example, the following image shows the lineage of the `embedding` field, you
201
201
  4. Run CocoInsight:
202
202
 
203
203
  ```bash
204
- cocoindex server -ci main.py
204
+ cocoindex server -ci main
205
205
  ```
206
206
  You can walk through the project step by step in CocoInsight to see exactly how each field is constructed and what happens behind the scenes. It connects to your local CocoIndex server, with zero pipeline data retention.
207
207
 
@@ -211,7 +211,7 @@ For example, the following image shows the lineage of the `embedding` field, you
211
211
  For continuous updating when the source changes, add `-L`:
212
212
 
213
213
  ```bash
214
- cocoindex server -ci -L main.py
214
+ cocoindex server -ci -L main
215
215
  ```
216
216
  Check [live updates](https://cocoindex.io/docs/tutorials/live_updates) for more details.
217
217
 
@@ -292,8 +292,10 @@ This [example](https://cocoindex.io/docs/examples/image_search#fast-api-applicat
292
292
 
293
293
  ## Why One Framework for Structured + Unstructured?
294
294
 
295
- - One mental model: Treat files, APIs, and databases uniformly; AI steps are ordinary ops.
296
- - Incremental by default: Use an ordinal column to sync only changes; no fragile glue jobs.
297
- - Consistency: Embeddings are always derived from the exact transformed row state.
298
- - Operational simplicity: One deployment, one lineage view, fewer moving parts.
295
+ - Unified workflow: All data— files, APIs, or databases—is processed through a single, consistent system, and AI operations are handled alongside standard data transformations.
299
296
 
297
+ - True incremental processing with live updates: Out-of-box incremental support from the framework, process only what’s changed, avoiding redundant computation and ensuring faster updates to downstream indexes.
298
+
299
+ - Reliable consistency: Embeddings and derived data always reflect the accurate, transformed state of each row, ensuring results are dependable and current in a single flow.
300
+
301
+ - Streamlined operations: A single deployment manages everything, providing clear data lineage and reducing the complexity of the data stack.
@@ -393,7 +393,7 @@ MATCH p=()-->() RETURN p
393
393
  I used CocoInsight to troubleshoot the index generation and understand the data lineage of the pipeline. It is in free beta now, you can give it a try. Run following command to start CocoInsight:
394
394
 
395
395
  ```
396
- cocoindex server -ci main.py
396
+ cocoindex server -ci main
397
397
  ```
398
398
 
399
399
  And then open the url `https://cocoindex.io/cocoinsight`. It just connects to your local CocoIndex server, with Zero pipeline data retention.
@@ -208,7 +208,7 @@ You can walk through the project step by step in [CocoInsight](https://www.youtu
208
208
 
209
209
 
210
210
  ```sh
211
- cocoindex server -ci main.py
211
+ cocoindex server -ci main
212
212
  ```
213
213
 
214
214
  Follow the url `https://cocoindex.io/cocoinsight`. It connects to your local CocoIndex server, with zero pipeline data retention.
@@ -37,7 +37,7 @@ In this case, you can:
37
37
  <Tabs>
38
38
  <TabItem value="python" label="Python">
39
39
 
40
- The [quickstart](getting_started/quickstart#step-41-extract-common-transformations) shows an example:
40
+ For example, based on the flow in [quickstart](getting_started/quickstart), you can extract the invocation of `SentenceTransformerEmbed` into a standalone function:
41
41
 
42
42
  ```python
43
43
  @cocoindex.transform_flow()
@@ -1,6 +1,6 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import { FaGithub, FaYoutube } from 'react-icons/fa';
3
- import { MdMenuBook } from 'react-icons/md';
3
+ import { MdMenuBook, MdDriveEta } from 'react-icons/md';
4
4
 
5
5
  type ButtonProps = {
6
6
  href: string;
@@ -73,4 +73,20 @@ function DocumentationButton({ url, text, margin }: DocumentationButtonProps): R
73
73
  );
74
74
  }
75
75
 
76
- export { GitHubButton, YouTubeButton, DocumentationButton };
76
+ // ExampleButton as requested
77
+ type ExampleButtonProps = {
78
+ href: string;
79
+ text: string;
80
+ margin?: string;
81
+ };
82
+
83
+ function ExampleButton({ href, text, margin }: ExampleButtonProps): ReactNode {
84
+ return (
85
+ <Button href={href} margin={margin}>
86
+ <MdDriveEta style={{ marginRight: '8px', verticalAlign: 'middle', fontSize: '1rem' }} />
87
+ {text}
88
+ </Button>
89
+ );
90
+ }
91
+
92
+ export { GitHubButton, YouTubeButton, DocumentationButton, ExampleButton };
@@ -53,13 +53,13 @@ CocoInsight is in Early Access now (Free) 😊 You found us! A quick 3 minute vi
53
53
  Run CocoInsight to understand your RAG data pipeline:
54
54
 
55
55
  ```sh
56
- cocoindex server -ci main.py
56
+ cocoindex server -ci main
57
57
  ```
58
58
 
59
59
  You can also add a `-L` flag to make the server keep updating the index to reflect source changes at the same time:
60
60
 
61
61
  ```sh
62
- cocoindex server -ci -L main.py
62
+ cocoindex server -ci -L main
63
63
  ```
64
64
 
65
65
  Then open the CocoInsight UI at [https://cocoindex.io/cocoinsight](https://cocoindex.io/cocoinsight).
@@ -4,7 +4,7 @@ version = "0.1.0"
4
4
  description = "Simple example for cocoindex: build embedding index based on Amazon S3 files."
5
5
  requires-python = ">=3.11"
6
6
  dependencies = [
7
- "cocoindex[embeddings]>=0.2.3",
7
+ "cocoindex[embeddings]>=0.2.4",
8
8
  "python-dotenv>=1.0.1",
9
9
  "psycopg[binary,pool]",
10
10
  ]
@@ -53,13 +53,13 @@ CocoInsight is in Early Access now (Free) 😊 You found us! A quick 3 minute vi
53
53
  Run CocoInsight to understand your RAG data pipeline:
54
54
 
55
55
  ```sh
56
- cocoindex server -ci main.py
56
+ cocoindex server -ci main
57
57
  ```
58
58
 
59
59
  You can also add a `-L` flag to make the server keep updating the index to reflect source changes at the same time:
60
60
 
61
61
  ```sh
62
- cocoindex server -ci -L main.py
62
+ cocoindex server -ci -L main
63
63
  ```
64
64
 
65
65
  Then open the CocoInsight UI at [https://cocoindex.io/cocoinsight](https://cocoindex.io/cocoinsight).
@@ -4,7 +4,7 @@ version = "0.1.0"
4
4
  description = "Simple example for cocoindex: build embedding index based on Azure Blob Storage files."
5
5
  requires-python = ">=3.11"
6
6
  dependencies = [
7
- "cocoindex[embeddings]>=0.2.3",
7
+ "cocoindex[embeddings]>=0.2.4",
8
8
  "python-dotenv>=1.0.1",
9
9
  "psycopg[binary,pool]",
10
10
  ]
@@ -62,7 +62,7 @@ I used CocoInsight (Free beta now) to troubleshoot the index generation and unde
62
62
  It just connects to your local CocoIndex server, with Zero pipeline data retention. Run the following command to start CocoInsight:
63
63
 
64
64
  ```
65
- cocoindex server -ci main.py
65
+ cocoindex server -ci main
66
66
  ```
67
67
 
68
68
  Then open the CocoInsight UI at [https://cocoindex.io/cocoinsight](https://cocoindex.io/cocoinsight).
@@ -4,7 +4,7 @@ version = "0.1.0"
4
4
  description = "Simple example for cocoindex: build embedding index based on source code."
5
5
  requires-python = ">=3.11"
6
6
  dependencies = [
7
- "cocoindex[embeddings]>=0.2.3",
7
+ "cocoindex[embeddings]>=0.2.4",
8
8
  "python-dotenv>=1.0.1",
9
9
  "pgvector>=0.4.1",
10
10
  "psycopg[binary,pool]",
@@ -46,7 +46,7 @@ I used CocoInsight (Free beta now) to troubleshoot the index generation and unde
46
46
  It just connects to your local CocoIndex server, with Zero pipeline data retention. Run following command to start CocoInsight:
47
47
 
48
48
  ```
49
- cocoindex server -ci main.py
49
+ cocoindex server -ci main
50
50
  ```
51
51
 
52
52
  Then open the CocoInsight UI at [https://cocoindex.io/cocoinsight](https://cocoindex.io/cocoinsight).