cocoindex 0.1.25__tar.gz → 0.1.26__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 (188) hide show
  1. {cocoindex-0.1.25 → cocoindex-0.1.26}/.github/ISSUE_TEMPLATE//360/237/222/241-feature-request.md +4 -0
  2. {cocoindex-0.1.25 → cocoindex-0.1.26}/Cargo.lock +33 -33
  3. {cocoindex-0.1.25 → cocoindex-0.1.26}/Cargo.toml +1 -1
  4. {cocoindex-0.1.25 → cocoindex-0.1.26}/PKG-INFO +2 -2
  5. {cocoindex-0.1.25 → cocoindex-0.1.26}/README.md +1 -1
  6. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/about/community.md +2 -2
  7. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/about/contributing.md +16 -3
  8. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/ai/llm.mdx +22 -1
  9. {cocoindex-0.1.25/examples/docs_to_kg → cocoindex-0.1.26/examples/docs_to_knowledge_graph}/main.py +18 -11
  10. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/gdrive_text_embedding/main.py +1 -1
  11. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/manuals_llm_extraction/main.py +5 -0
  12. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/text_embedding/README.md +7 -2
  13. cocoindex-0.1.26/examples/text_embedding/Text_Embedding.ipynb +392 -0
  14. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/cli.py +9 -6
  15. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/flow.py +44 -13
  16. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/lib.py +2 -1
  17. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/llm.py +1 -0
  18. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/op.py +3 -2
  19. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/runtime.py +12 -4
  20. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/storages.py +9 -2
  21. cocoindex-0.1.26/python/cocoindex/tests/test_convert.py +234 -0
  22. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/base/spec.rs +3 -0
  23. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/builder/analyzer.rs +256 -202
  24. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/builder/flow_builder.rs +10 -0
  25. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/lib_context.rs +2 -1
  26. cocoindex-0.1.26/src/llm/gemini.rs +110 -0
  27. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/llm/mod.rs +5 -0
  28. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/factory_bases.rs +60 -31
  29. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/interface.rs +15 -7
  30. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/py_factory.rs +29 -18
  31. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/sdk.rs +1 -1
  32. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/storages/neo4j.rs +230 -192
  33. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/storages/postgres.rs +50 -42
  34. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/storages/qdrant.rs +39 -33
  35. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/storages/spec.rs +13 -7
  36. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/prelude.rs +1 -1
  37. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/py/convert.rs +2 -2
  38. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/py/mod.rs +32 -16
  39. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/setup/states.rs +2 -2
  40. cocoindex-0.1.25/python/cocoindex/tests/test_convert.py +0 -69
  41. {cocoindex-0.1.25 → cocoindex-0.1.26}/.cargo/config.toml +0 -0
  42. {cocoindex-0.1.25 → cocoindex-0.1.26}/.env.lib_debug +0 -0
  43. {cocoindex-0.1.25 → cocoindex-0.1.26}/.github/ISSUE_TEMPLATE//360/237/220/233-bug-report.md" +0 -0
  44. {cocoindex-0.1.25 → cocoindex-0.1.26}/.github/scripts/update_version.sh +0 -0
  45. {cocoindex-0.1.25 → cocoindex-0.1.26}/.github/workflows/CI.yml +0 -0
  46. {cocoindex-0.1.25 → cocoindex-0.1.26}/.github/workflows/docs.yml +0 -0
  47. {cocoindex-0.1.25 → cocoindex-0.1.26}/.github/workflows/release.yml +0 -0
  48. {cocoindex-0.1.25 → cocoindex-0.1.26}/.gitignore +0 -0
  49. {cocoindex-0.1.25 → cocoindex-0.1.26}/CODE_OF_CONDUCT.md +0 -0
  50. {cocoindex-0.1.25 → cocoindex-0.1.26}/CONTRIBUTING.md +0 -0
  51. {cocoindex-0.1.25 → cocoindex-0.1.26}/LICENSE +0 -0
  52. {cocoindex-0.1.25 → cocoindex-0.1.26}/dev/neo4j.yaml +0 -0
  53. {cocoindex-0.1.25 → cocoindex-0.1.26}/dev/postgres.yaml +0 -0
  54. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/.gitignore +0 -0
  55. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/README.md +0 -0
  56. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/core/basics.md +0 -0
  57. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/core/cli.mdx +0 -0
  58. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/core/custom_function.mdx +0 -0
  59. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/core/data_example.svg +0 -0
  60. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/core/data_types.mdx +0 -0
  61. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/core/flow_def.mdx +0 -0
  62. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/core/flow_example.svg +0 -0
  63. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/core/flow_methods.mdx +0 -0
  64. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/core/initialization.mdx +0 -0
  65. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/getting_started/installation.md +0 -0
  66. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/getting_started/markdown_files.zip +0 -0
  67. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/getting_started/overview.md +0 -0
  68. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/getting_started/quickstart.md +0 -0
  69. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/ops/functions.md +0 -0
  70. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/ops/sources.md +0 -0
  71. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docs/ops/storages.md +0 -0
  72. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/docusaurus.config.ts +0 -0
  73. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/package.json +0 -0
  74. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/sidebars.ts +0 -0
  75. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/src/components/HomepageFeatures/index.tsx +0 -0
  76. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/src/components/HomepageFeatures/styles.module.css +0 -0
  77. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/src/css/custom.css +0 -0
  78. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/src/theme/Root.js +0 -0
  79. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/static/.nojekyll +0 -0
  80. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/static/img/docusaurus.png +0 -0
  81. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/static/img/favicon.ico +0 -0
  82. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/static/img/icon.svg +0 -0
  83. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/static/robots.txt +0 -0
  84. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/tsconfig.json +0 -0
  85. {cocoindex-0.1.25 → cocoindex-0.1.26}/docs/yarn.lock +0 -0
  86. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/code_embedding/.env +0 -0
  87. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/code_embedding/README.md +0 -0
  88. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/code_embedding/main.py +0 -0
  89. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/code_embedding/pyproject.toml +0 -0
  90. {cocoindex-0.1.25/examples/docs_to_kg → cocoindex-0.1.26/examples/docs_to_knowledge_graph}/.env +0 -0
  91. {cocoindex-0.1.25/examples/docs_to_kg → cocoindex-0.1.26/examples/docs_to_knowledge_graph}/README.md +0 -0
  92. {cocoindex-0.1.25/examples/docs_to_kg → cocoindex-0.1.26/examples/docs_to_knowledge_graph}/markdown_files/1706.03762v7.md +0 -0
  93. {cocoindex-0.1.25/examples/docs_to_kg → cocoindex-0.1.26/examples/docs_to_knowledge_graph}/markdown_files/1810.04805v2.md +0 -0
  94. {cocoindex-0.1.25/examples/docs_to_kg → cocoindex-0.1.26/examples/docs_to_knowledge_graph}/markdown_files/rfc8259.md +0 -0
  95. {cocoindex-0.1.25/examples/docs_to_kg → cocoindex-0.1.26/examples/docs_to_knowledge_graph}/pyproject.toml +0 -0
  96. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/gdrive_text_embedding/.env.example +0 -0
  97. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/gdrive_text_embedding/.gitignore +0 -0
  98. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/gdrive_text_embedding/README.md +0 -0
  99. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/gdrive_text_embedding/data/1706.03762v7.docx +0 -0
  100. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/gdrive_text_embedding/data/1810.04805v2.docx +0 -0
  101. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/gdrive_text_embedding/pyproject.toml +0 -0
  102. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/manuals_llm_extraction/.env +0 -0
  103. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/manuals_llm_extraction/README.md +0 -0
  104. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/manuals_llm_extraction/manuals/array.pdf +0 -0
  105. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/manuals_llm_extraction/manuals/base64.pdf +0 -0
  106. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/manuals_llm_extraction/manuals/copy.pdf +0 -0
  107. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/manuals_llm_extraction/manuals/glob.pdf +0 -0
  108. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/manuals_llm_extraction/pyproject.toml +0 -0
  109. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/pdf_embedding/.env +0 -0
  110. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/pdf_embedding/README.md +0 -0
  111. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/pdf_embedding/main.py +0 -0
  112. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/pdf_embedding/pdf_files/1706.03762v7.pdf +0 -0
  113. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/pdf_embedding/pdf_files/1810.04805v2.pdf +0 -0
  114. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/pdf_embedding/pdf_files/rfc8259.pdf +0 -0
  115. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/pdf_embedding/pyproject.toml +0 -0
  116. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/text_embedding/.env +0 -0
  117. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/text_embedding/main.py +0 -0
  118. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/text_embedding/markdown_files/1706.03762v7.md +0 -0
  119. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/text_embedding/markdown_files/1810.04805v2.md +0 -0
  120. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/text_embedding/markdown_files/rfc8259.md +0 -0
  121. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/text_embedding/pyproject.toml +0 -0
  122. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/text_embedding_qdrant/.env +0 -0
  123. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/text_embedding_qdrant/README.md +0 -0
  124. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/text_embedding_qdrant/main.py +0 -0
  125. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/text_embedding_qdrant/markdown_files/rfc8259.md +0 -0
  126. {cocoindex-0.1.25 → cocoindex-0.1.26}/examples/text_embedding_qdrant/pyproject.toml +0 -0
  127. {cocoindex-0.1.25 → cocoindex-0.1.26}/pyproject.toml +0 -0
  128. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/__init__.py +0 -0
  129. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/auth_registry.py +0 -0
  130. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/convert.py +0 -0
  131. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/functions.py +0 -0
  132. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/index.py +0 -0
  133. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/py.typed +0 -0
  134. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/query.py +0 -0
  135. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/setup.py +0 -0
  136. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/sources.py +0 -0
  137. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/tests/__init__.py +0 -0
  138. {cocoindex-0.1.25 → cocoindex-0.1.26}/python/cocoindex/typing.py +0 -0
  139. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/base/field_attrs.rs +0 -0
  140. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/base/json_schema.rs +0 -0
  141. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/base/mod.rs +0 -0
  142. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/base/schema.rs +0 -0
  143. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/base/value.rs +0 -0
  144. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/builder/analyzed_flow.rs +0 -0
  145. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/builder/mod.rs +0 -0
  146. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/builder/plan.rs +0 -0
  147. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/execution/db_tracking.rs +0 -0
  148. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/execution/db_tracking_setup.rs +0 -0
  149. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/execution/dumper.rs +0 -0
  150. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/execution/evaluator.rs +0 -0
  151. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/execution/live_updater.rs +0 -0
  152. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/execution/memoization.rs +0 -0
  153. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/execution/mod.rs +0 -0
  154. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/execution/query.rs +0 -0
  155. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/execution/row_indexer.rs +0 -0
  156. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/execution/source_indexer.rs +0 -0
  157. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/execution/stats.rs +0 -0
  158. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/lib.rs +0 -0
  159. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/llm/ollama.rs +0 -0
  160. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/llm/openai.rs +0 -0
  161. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/functions/extract_by_llm.rs +0 -0
  162. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/functions/mod.rs +0 -0
  163. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/functions/parse_json.rs +0 -0
  164. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/functions/split_recursively.rs +0 -0
  165. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/mod.rs +0 -0
  166. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/registration.rs +0 -0
  167. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/registry.rs +0 -0
  168. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/sources/google_drive.rs +0 -0
  169. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/sources/local_file.rs +0 -0
  170. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/sources/mod.rs +0 -0
  171. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/ops/storages/mod.rs +0 -0
  172. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/server.rs +0 -0
  173. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/service/error.rs +0 -0
  174. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/service/flows.rs +0 -0
  175. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/service/mod.rs +0 -0
  176. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/service/search.rs +0 -0
  177. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/settings.rs +0 -0
  178. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/setup/auth_registry.rs +0 -0
  179. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/setup/components.rs +0 -0
  180. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/setup/db_metadata.rs +0 -0
  181. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/setup/driver.rs +0 -0
  182. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/setup/mod.rs +0 -0
  183. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/utils/db.rs +0 -0
  184. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/utils/fingerprint.rs +0 -0
  185. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/utils/immutable.rs +0 -0
  186. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/utils/mod.rs +0 -0
  187. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/utils/retriable.rs +0 -0
  188. {cocoindex-0.1.25 → cocoindex-0.1.26}/src/utils/yaml_ser.rs +0 -0
@@ -18,3 +18,7 @@ A clear and concise description of any alternative solutions or features you've
18
18
 
19
19
  **Additional context**
20
20
  Add any other context or screenshots about the feature request here.
21
+
22
+ ---
23
+ [Contributing Guide](https://cocoindex.io/docs/about/contributing)
24
+ For changes that takes more than a day, we recommend you to leave a comment on the issue like **`I'm working on it`** or **`Can I work on this issue?`** to avoid duplicating work.
@@ -224,9 +224,9 @@ dependencies = [
224
224
 
225
225
  [[package]]
226
226
  name = "aws-lc-sys"
227
- version = "0.28.1"
227
+ version = "0.28.2"
228
228
  source = "registry+https://github.com/rust-lang/crates.io-index"
229
- checksum = "0ddeb19ee86cb16ecfc871e5b0660aff6285760957aaedda6284cf0e790d3769"
229
+ checksum = "bfa9b6986f250236c27e5a204062434a773a13243d2ffc2955f37bdba4c5c6a1"
230
230
  dependencies = [
231
231
  "bindgen",
232
232
  "cc",
@@ -321,7 +321,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
321
321
  checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"
322
322
  dependencies = [
323
323
  "futures-core",
324
- "getrandom 0.2.15",
324
+ "getrandom 0.2.16",
325
325
  "instant",
326
326
  "pin-project-lite",
327
327
  "rand 0.8.5",
@@ -533,7 +533,7 @@ dependencies = [
533
533
 
534
534
  [[package]]
535
535
  name = "cocoindex"
536
- version = "0.1.25"
536
+ version = "0.1.26"
537
537
  dependencies = [
538
538
  "anyhow",
539
539
  "async-openai",
@@ -708,7 +708,7 @@ version = "0.1.16"
708
708
  source = "registry+https://github.com/rust-lang/crates.io-index"
709
709
  checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
710
710
  dependencies = [
711
- "getrandom 0.2.15",
711
+ "getrandom 0.2.16",
712
712
  "once_cell",
713
713
  "tiny-keccak",
714
714
  ]
@@ -1281,9 +1281,9 @@ dependencies = [
1281
1281
 
1282
1282
  [[package]]
1283
1283
  name = "getrandom"
1284
- version = "0.2.15"
1284
+ version = "0.2.16"
1285
1285
  source = "registry+https://github.com/rust-lang/crates.io-index"
1286
- checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
1286
+ checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
1287
1287
  dependencies = [
1288
1288
  "cfg-if",
1289
1289
  "js-sys",
@@ -1881,9 +1881,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
1881
1881
 
1882
1882
  [[package]]
1883
1883
  name = "jiff"
1884
- version = "0.2.9"
1884
+ version = "0.2.10"
1885
1885
  source = "registry+https://github.com/rust-lang/crates.io-index"
1886
- checksum = "59ec30f7142be6fe14e1b021f50b85db8df2d4324ea6e91ec3e5dcde092021d0"
1886
+ checksum = "5a064218214dc6a10fbae5ec5fa888d80c45d611aba169222fc272072bf7aef6"
1887
1887
  dependencies = [
1888
1888
  "jiff-static",
1889
1889
  "log",
@@ -1894,9 +1894,9 @@ dependencies = [
1894
1894
 
1895
1895
  [[package]]
1896
1896
  name = "jiff-static"
1897
- version = "0.2.9"
1897
+ version = "0.2.10"
1898
1898
  source = "registry+https://github.com/rust-lang/crates.io-index"
1899
- checksum = "526b834d727fd59d37b076b0c3236d9adde1b1729a4361e20b2026f738cc1dbe"
1899
+ checksum = "199b7932d97e325aff3a7030e141eafe7f2c6268e1d1b24859b753a627f45254"
1900
1900
  dependencies = [
1901
1901
  "proc-macro2",
1902
1902
  "quote",
@@ -1967,9 +1967,9 @@ dependencies = [
1967
1967
 
1968
1968
  [[package]]
1969
1969
  name = "libm"
1970
- version = "0.2.11"
1970
+ version = "0.2.13"
1971
1971
  source = "registry+https://github.com/rust-lang/crates.io-index"
1972
- checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa"
1972
+ checksum = "c9627da5196e5d8ed0b0495e61e518847578da83483c37288316d9b2e03a7f72"
1973
1973
 
1974
1974
  [[package]]
1975
1975
  name = "libsqlite3-sys"
@@ -2570,9 +2570,9 @@ dependencies = [
2570
2570
 
2571
2571
  [[package]]
2572
2572
  name = "pyo3"
2573
- version = "0.24.1"
2573
+ version = "0.24.2"
2574
2574
  source = "registry+https://github.com/rust-lang/crates.io-index"
2575
- checksum = "17da310086b068fbdcefbba30aeb3721d5bb9af8db4987d6735b2183ca567229"
2575
+ checksum = "e5203598f366b11a02b13aa20cab591229ff0a89fd121a308a5df751d5fc9219"
2576
2576
  dependencies = [
2577
2577
  "cfg-if",
2578
2578
  "chrono",
@@ -2602,9 +2602,9 @@ dependencies = [
2602
2602
 
2603
2603
  [[package]]
2604
2604
  name = "pyo3-build-config"
2605
- version = "0.24.1"
2605
+ version = "0.24.2"
2606
2606
  source = "registry+https://github.com/rust-lang/crates.io-index"
2607
- checksum = "e27165889bd793000a098bb966adc4300c312497ea25cf7a690a9f0ac5aa5fc1"
2607
+ checksum = "99636d423fa2ca130fa5acde3059308006d46f98caac629418e53f7ebb1e9999"
2608
2608
  dependencies = [
2609
2609
  "once_cell",
2610
2610
  "target-lexicon",
@@ -2612,9 +2612,9 @@ dependencies = [
2612
2612
 
2613
2613
  [[package]]
2614
2614
  name = "pyo3-ffi"
2615
- version = "0.24.1"
2615
+ version = "0.24.2"
2616
2616
  source = "registry+https://github.com/rust-lang/crates.io-index"
2617
- checksum = "05280526e1dbf6b420062f3ef228b78c0c54ba94e157f5cb724a609d0f2faabc"
2617
+ checksum = "78f9cf92ba9c409279bc3305b5409d90db2d2c22392d443a87df3a1adad59e33"
2618
2618
  dependencies = [
2619
2619
  "libc",
2620
2620
  "pyo3-build-config",
@@ -2622,9 +2622,9 @@ dependencies = [
2622
2622
 
2623
2623
  [[package]]
2624
2624
  name = "pyo3-macros"
2625
- version = "0.24.1"
2625
+ version = "0.24.2"
2626
2626
  source = "registry+https://github.com/rust-lang/crates.io-index"
2627
- checksum = "5c3ce5686aa4d3f63359a5100c62a127c9f15e8398e5fdeb5deef1fed5cd5f44"
2627
+ checksum = "0b999cb1a6ce21f9a6b147dcf1be9ffedf02e0043aec74dc390f3007047cecd9"
2628
2628
  dependencies = [
2629
2629
  "proc-macro2",
2630
2630
  "pyo3-macros-backend",
@@ -2634,9 +2634,9 @@ dependencies = [
2634
2634
 
2635
2635
  [[package]]
2636
2636
  name = "pyo3-macros-backend"
2637
- version = "0.24.1"
2637
+ version = "0.24.2"
2638
2638
  source = "registry+https://github.com/rust-lang/crates.io-index"
2639
- checksum = "f4cf6faa0cbfb0ed08e89beb8103ae9724eb4750e3a78084ba4017cbe94f3855"
2639
+ checksum = "822ece1c7e1012745607d5cf0bcb2874769f0f7cb34c4cde03b9358eb9ef911a"
2640
2640
  dependencies = [
2641
2641
  "heck",
2642
2642
  "proc-macro2",
@@ -2657,9 +2657,9 @@ dependencies = [
2657
2657
 
2658
2658
  [[package]]
2659
2659
  name = "qdrant-client"
2660
- version = "1.13.0"
2660
+ version = "1.14.0"
2661
2661
  source = "registry+https://github.com/rust-lang/crates.io-index"
2662
- checksum = "9b585625d1ef06478e97fe8d7170a3f32a1cba5dbf986ff136095a85a0ec3d91"
2662
+ checksum = "f7b17bc17a707188d378d8643af36c499b7a3c8ece72c9341d7eff4c1eb49a33"
2663
2663
  dependencies = [
2664
2664
  "anyhow",
2665
2665
  "derive_builder",
@@ -2698,9 +2698,9 @@ dependencies = [
2698
2698
 
2699
2699
  [[package]]
2700
2700
  name = "quinn-proto"
2701
- version = "0.11.10"
2701
+ version = "0.11.11"
2702
2702
  source = "registry+https://github.com/rust-lang/crates.io-index"
2703
- checksum = "b820744eb4dc9b57a3398183639c511b5a26d2ed702cedd3febaa1393caa22cc"
2703
+ checksum = "bcbafbbdbb0f638fe3f35f3c56739f77a8a1d070cb25603226c83339b391472b"
2704
2704
  dependencies = [
2705
2705
  "bytes",
2706
2706
  "getrandom 0.3.2",
@@ -2792,7 +2792,7 @@ version = "0.6.4"
2792
2792
  source = "registry+https://github.com/rust-lang/crates.io-index"
2793
2793
  checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
2794
2794
  dependencies = [
2795
- "getrandom 0.2.15",
2795
+ "getrandom 0.2.16",
2796
2796
  ]
2797
2797
 
2798
2798
  [[package]]
@@ -2935,7 +2935,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
2935
2935
  dependencies = [
2936
2936
  "cc",
2937
2937
  "cfg-if",
2938
- "getrandom 0.2.15",
2938
+ "getrandom 0.2.16",
2939
2939
  "libc",
2940
2940
  "untrusted",
2941
2941
  "windows-sys 0.52.0",
@@ -3364,9 +3364,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
3364
3364
 
3365
3365
  [[package]]
3366
3366
  name = "signal-hook-registry"
3367
- version = "1.4.4"
3367
+ version = "1.4.5"
3368
3368
  source = "registry+https://github.com/rust-lang/crates.io-index"
3369
- checksum = "a1ee1aca2bc74ef9589efa7ccaa0f3752751399940356209b3fd80c078149b5e"
3369
+ checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410"
3370
3370
  dependencies = [
3371
3371
  "libc",
3372
3372
  ]
@@ -3897,9 +3897,9 @@ dependencies = [
3897
3897
 
3898
3898
  [[package]]
3899
3899
  name = "tokio-util"
3900
- version = "0.7.14"
3900
+ version = "0.7.15"
3901
3901
  source = "registry+https://github.com/rust-lang/crates.io-index"
3902
- checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034"
3902
+ checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df"
3903
3903
  dependencies = [
3904
3904
  "bytes",
3905
3905
  "futures-core",
@@ -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.1.25"
5
+ version = "0.1.26"
6
6
  edition = "2021"
7
7
 
8
8
  # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cocoindex
3
- Version: 0.1.25
3
+ Version: 0.1.26
4
4
  Requires-Dist: sentence-transformers>=3.3.1
5
5
  Requires-Dist: click>=8.1.8
6
6
  Requires-Dist: pytest ; extra == 'test'
@@ -117,7 +117,7 @@ Go to the [examples directory](examples) to try out with any of the examples, fo
117
117
  | [PDF Embedding](examples/pdf_embedding) | Parse PDF and index text embeddings for semantic search |
118
118
  | [Manuals LLM Extraction](examples/manuals_llm_extraction) | Extract structured information from a manual using LLM |
119
119
  | [Google Drive Text Embedding](examples/gdrive_text_embedding) | Index text documents from Google Drive |
120
- | [Docs to Knowledge Graph](examples/docs_to_kg) | Extract relationships from Markdown documents and build a knowledge graph |
120
+ | [Docs to Knowledge Graph](examples/docs_to_knowledge_graph) | Extract relationships from Markdown documents and build a knowledge graph |
121
121
  | [Embeddings to Qdrant](examples/text_embedding_qdrant) | Index documents in a Qdrant collection for semantic search |
122
122
 
123
123
  More coming and stay tuned! If there's any specific examples you would like to see, please let us know in our [Discord community](https://discord.com/invite/zpA9S2DR7s) 🌱.
@@ -102,7 +102,7 @@ Go to the [examples directory](examples) to try out with any of the examples, fo
102
102
  | [PDF Embedding](examples/pdf_embedding) | Parse PDF and index text embeddings for semantic search |
103
103
  | [Manuals LLM Extraction](examples/manuals_llm_extraction) | Extract structured information from a manual using LLM |
104
104
  | [Google Drive Text Embedding](examples/gdrive_text_embedding) | Index text documents from Google Drive |
105
- | [Docs to Knowledge Graph](examples/docs_to_kg) | Extract relationships from Markdown documents and build a knowledge graph |
105
+ | [Docs to Knowledge Graph](examples/docs_to_knowledge_graph) | Extract relationships from Markdown documents and build a knowledge graph |
106
106
  | [Embeddings to Qdrant](examples/text_embedding_qdrant) | Index documents in a Qdrant collection for semantic search |
107
107
 
108
108
  More coming and stay tuned! If there's any specific examples you would like to see, please let us know in our [Discord community](https://discord.com/invite/zpA9S2DR7s) 🌱.
@@ -29,7 +29,7 @@ Join our community channels to get help, share ideas, and connect with other dev
29
29
 
30
30
  Need help? Here are the best ways to get support:
31
31
 
32
- - Email us at [support@cocoindex.io](mailto:support@cocoindex.io)
32
+ - Email us at [hi@cocoindex.io](mailto:hi@cocoindex.io)
33
33
  - Check our [documentation](https://cocoindex.io/docs)
34
34
  - Read our [blog posts](https://cocoindex.io/blogs)
35
- - Ask questions in our Discord community
35
+ - Ask questions in our [Discord Server](https://discord.com/invite/zpA9S2DR7s)
@@ -5,9 +5,23 @@ description: Learn how to contribute to CocoIndex
5
5
 
6
6
  # Contributing
7
7
 
8
- We love contributions from our community! This guide explains how to get involved and contribute to CocoIndex.
8
+ [CocoIndex](https://github.com/cocoindex-io/cocoindex) is an open source project. We are respectful, open and friendly. This guide explains how to get involved and contribute to [CocoIndex](https://github.com/cocoindex-io/cocoindex).
9
9
 
10
- ## Setting Up Development Environment
10
+ ## Issues:
11
+
12
+ We use [GitHub Issues](https://github.com/cocoindex-io/cocoindex/issues) to track bugs and feature requests.
13
+
14
+ ## Good First Issues
15
+
16
+ We tag issues with the ["good first issue"](https://github.com/cocoindex-io/cocoindex/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) label for beginner contributors.
17
+
18
+ ## How to Contribute
19
+ - If you decide to work on an issue, unless the PR can be sent immediately (e.g. just a few lines of code), we recommend you to leave a comment on the issue like **`I'm working on it`** or **`Can I work on this issue?`** to avoid duplicating work.
20
+ - For larger features, we recommend you to discuss with us first in our [Discord server](https://discord.com/invite/zpA9S2DR7s) to coordinate the design and work.
21
+ - Our [Discord server](https://discord.com/invite/zpA9S2DR7s) are constantly open. If you are unsure about anything, it is a good place to discuss! We'd love to collaborate and will always be friendly.
22
+
23
+ ## Start hacking! Setting Up Development Environment
24
+ Following the steps below to get cocoindex build on latest codebase locally - if you are making changes to cocoindex funcionality and want to test it out.
11
25
 
12
26
  - Install Rust toolchain: [docs](https://rust-lang.org/tools/install)
13
27
 
@@ -48,7 +62,6 @@ To submit your code:
48
62
  In your PR description, please include:
49
63
  - Description of the changes
50
64
  - Motivation and context
51
- - Test coverage details
52
65
  - Note if it's a breaking change
53
66
  - Reference any related GitHub issues
54
67
 
@@ -21,7 +21,7 @@ It has the following fields:
21
21
  * `address` (optional): The address of the LLM API.
22
22
 
23
23
 
24
- ## LLM API integrations
24
+ ## LLM API Integrations
25
25
 
26
26
  CocoIndex integrates with various LLM APIs for these functions.
27
27
 
@@ -77,3 +77,24 @@ cocoindex.LlmSpec(
77
77
  </TabItem>
78
78
  </Tabs>
79
79
 
80
+ ### Google Gemini
81
+
82
+ To use the Gemini LLM API, you need to set the environment variable `GEMINI_API_KEY`.
83
+ You can generate the API key from [Google AI Studio](https://aistudio.google.com/apikey).
84
+
85
+ A spec for Gemini looks like this:
86
+
87
+ <Tabs>
88
+ <TabItem value="python" label="Python" default>
89
+
90
+ ```python
91
+ cocoindex.LlmSpec(
92
+ api_type=cocoindex.LlmApiType.GEMINI,
93
+ model="gemini-2.0-flash",
94
+ )
95
+ ```
96
+
97
+ </TabItem>
98
+ </Tabs>
99
+
100
+ You can find the full list of models supported by Gemini [here](https://ai.google.dev/gemini-api/docs/models).
@@ -92,6 +92,7 @@ def docs_to_kg_flow(flow_builder: cocoindex.FlowBuilder, data_scope: cocoindex.D
92
92
  id=cocoindex.GeneratedField.UUID, entity=relationship["object"],
93
93
  filename=doc["filename"], location=chunk["location"],
94
94
  )
95
+
95
96
  document_node.export(
96
97
  "document_node",
97
98
  cocoindex.storages.Neo4j(
@@ -99,6 +100,23 @@ def docs_to_kg_flow(flow_builder: cocoindex.FlowBuilder, data_scope: cocoindex.D
99
100
  mapping=cocoindex.storages.NodeMapping(label="Document")),
100
101
  primary_key_fields=["filename"],
101
102
  )
103
+ flow_builder.declare(
104
+ cocoindex.storages.Neo4jDeclarations(
105
+ connection=conn_spec,
106
+ referenced_nodes=[
107
+ cocoindex.storages.ReferencedNode(
108
+ label="Entity",
109
+ primary_key_fields=["value"],
110
+ vector_indexes=[
111
+ cocoindex.VectorIndexDef(
112
+ field_name="embedding",
113
+ metric=cocoindex.VectorSimilarityMetric.COSINE_SIMILARITY,
114
+ ),
115
+ ],
116
+ )
117
+ ]
118
+ )
119
+ )
102
120
  entity_relationship.export(
103
121
  "entity_relationship",
104
122
  cocoindex.storages.Neo4j(
@@ -123,17 +141,6 @@ def docs_to_kg_flow(flow_builder: cocoindex.FlowBuilder, data_scope: cocoindex.D
123
141
  source="object_embedding", target="embedding"),
124
142
  ]
125
143
  ),
126
- nodes_storage_spec={
127
- "Entity": cocoindex.storages.NodeStorageSpec(
128
- primary_key_fields=["value"],
129
- vector_indexes=[
130
- cocoindex.VectorIndexDef(
131
- field_name="embedding",
132
- metric=cocoindex.VectorSimilarityMetric.COSINE_SIMILARITY,
133
- ),
134
- ],
135
- ),
136
- },
137
144
  ),
138
145
  ),
139
146
  primary_key_fields=["id"],
@@ -1,5 +1,6 @@
1
1
  from dotenv import load_dotenv
2
2
 
3
+ import asyncio
3
4
  import cocoindex
4
5
  import datetime
5
6
  import os
@@ -73,5 +74,4 @@ async def _run():
73
74
 
74
75
  if __name__ == "__main__":
75
76
  load_dotenv(override=True)
76
- import asyncio
77
77
  asyncio.run(_run())
@@ -90,9 +90,14 @@ def manual_extraction_flow(flow_builder: cocoindex.FlowBuilder, data_scope: coco
90
90
  # See the full list of models: https://ollama.com/library
91
91
  model="llama3.2"
92
92
  ),
93
+
93
94
  # Replace by this spec below, to use OpenAI API model instead of ollama
94
95
  # llm_spec=cocoindex.LlmSpec(
95
96
  # api_type=cocoindex.LlmApiType.OPENAI, model="gpt-4o"),
97
+
98
+ # Replace by this spec below, to use Gemini API model
99
+ # llm_spec=cocoindex.LlmSpec(
100
+ # api_type=cocoindex.LlmApiType.GEMINI, model="gemini-2.0-flash"),
96
101
  output_type=ModuleInfo,
97
102
  instruction="Please extract Python module information from the manual."))
98
103
  doc["module_summary"] = doc["module_info"].transform(summarize_module)
@@ -1,6 +1,9 @@
1
1
  Simple example for cocoindex: build embedding index based on local files.
2
2
 
3
+ [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/cocoindex-io/cocoindex/blob/main/examples/text_embedding/Text_Embedding.ipynb)
4
+
3
5
  ## Prerequisite
6
+
4
7
  [Install Postgres](https://cocoindex.io/docs/getting_started/installation#-install-postgres) if you don't have one.
5
8
 
6
9
  ## Run
@@ -29,7 +32,8 @@ Run:
29
32
  python main.py
30
33
  ```
31
34
 
32
- ## CocoInsight
35
+ ## CocoInsight
36
+
33
37
  CocoInsight is in Early Access now (Free) 😊 You found us! A quick 3 minute video tutorial about CocoInsight: [Watch on YouTube](https://youtu.be/ZnmyoHslBSc?si=pPLXWALztkA710r9).
34
38
 
35
39
  Run CocoInsight to understand your RAG data pipeline:
@@ -38,4 +42,5 @@ Run CocoInsight to understand your RAG data pipeline:
38
42
  python main.py cocoindex server -c https://cocoindex.io
39
43
  ```
40
44
 
41
- Then open the CocoInsight UI at [https://cocoindex.io/cocoinsight](https://cocoindex.io/cocoinsight).
45
+ Then open the CocoInsight UI at [https://cocoindex.io/cocoinsight](https://cocoindex.io/cocoinsight).
46
+