sunholo 0.69.9__tar.gz → 0.69.12__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 (130) hide show
  1. {sunholo-0.69.9 → sunholo-0.69.12}/PKG-INFO +4 -2
  2. {sunholo-0.69.9 → sunholo-0.69.12}/setup.py +3 -1
  3. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/discovery_engine/chunker_handler.py +2 -0
  4. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/discovery_engine/discovery_engine_client.py +63 -2
  5. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/llamaindex/import_files.py +0 -1
  6. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/logging.py +7 -1
  7. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo.egg-info/PKG-INFO +4 -2
  8. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo.egg-info/requires.txt +2 -0
  9. {sunholo-0.69.9 → sunholo-0.69.12}/LICENSE.txt +0 -0
  10. {sunholo-0.69.9 → sunholo-0.69.12}/MANIFEST.in +0 -0
  11. {sunholo-0.69.9 → sunholo-0.69.12}/README.md +0 -0
  12. {sunholo-0.69.9 → sunholo-0.69.12}/setup.cfg +0 -0
  13. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/__init__.py +0 -0
  14. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/agents/__init__.py +0 -0
  15. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/agents/chat_history.py +0 -0
  16. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/agents/dispatch_to_qa.py +0 -0
  17. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/agents/fastapi/__init__.py +0 -0
  18. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/agents/fastapi/base.py +0 -0
  19. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/agents/fastapi/qna_routes.py +0 -0
  20. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/agents/flask/__init__.py +0 -0
  21. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/agents/flask/base.py +0 -0
  22. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/agents/flask/qna_routes.py +0 -0
  23. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/agents/flask/vac_routes.py +0 -0
  24. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/agents/langserve.py +0 -0
  25. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/agents/pubsub.py +0 -0
  26. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/agents/route.py +0 -0
  27. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/agents/special_commands.py +0 -0
  28. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/agents/swagger.py +0 -0
  29. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/archive/__init__.py +0 -0
  30. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/archive/archive.py +0 -0
  31. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/auth/__init__.py +0 -0
  32. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/auth/run.py +0 -0
  33. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/bots/__init__.py +0 -0
  34. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/bots/discord.py +0 -0
  35. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/bots/github_webhook.py +0 -0
  36. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/bots/webapp.py +0 -0
  37. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/chunker/__init__.py +0 -0
  38. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/chunker/data_to_embed_pubsub.py +0 -0
  39. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/chunker/doc_handling.py +0 -0
  40. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/chunker/images.py +0 -0
  41. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/chunker/loaders.py +0 -0
  42. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/chunker/message_data.py +0 -0
  43. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/chunker/pdfs.py +0 -0
  44. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/chunker/publish.py +0 -0
  45. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/chunker/splitter.py +0 -0
  46. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/cli/__init__.py +0 -0
  47. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/cli/chat_vac.py +0 -0
  48. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/cli/cli.py +0 -0
  49. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/cli/cli_init.py +0 -0
  50. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/cli/configs.py +0 -0
  51. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/cli/deploy.py +0 -0
  52. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/cli/embedder.py +0 -0
  53. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/cli/merge_texts.py +0 -0
  54. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/cli/run_proxy.py +0 -0
  55. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/cli/sun_rich.py +0 -0
  56. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/cli/swagger.py +0 -0
  57. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/components/__init__.py +0 -0
  58. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/components/llm.py +0 -0
  59. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/components/retriever.py +0 -0
  60. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/components/vectorstore.py +0 -0
  61. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/database/__init__.py +0 -0
  62. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/database/alloydb.py +0 -0
  63. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/database/alloydb_client.py +0 -0
  64. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/database/database.py +0 -0
  65. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/database/lancedb.py +0 -0
  66. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/database/sql/sb/create_function.sql +0 -0
  67. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/database/sql/sb/create_function_time.sql +0 -0
  68. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/database/sql/sb/create_table.sql +0 -0
  69. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  70. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/database/sql/sb/return_sources.sql +0 -0
  71. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/database/sql/sb/setup.sql +0 -0
  72. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/database/static_dbs.py +0 -0
  73. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/database/uuid.py +0 -0
  74. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/discovery_engine/__init__.py +0 -0
  75. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/discovery_engine/create_new.py +0 -0
  76. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/embedder/__init__.py +0 -0
  77. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/embedder/embed_chunk.py +0 -0
  78. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/gcs/__init__.py +0 -0
  79. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/gcs/add_file.py +0 -0
  80. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/gcs/download_url.py +0 -0
  81. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/gcs/metadata.py +0 -0
  82. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/langfuse/__init__.py +0 -0
  83. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/langfuse/callback.py +0 -0
  84. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/langfuse/prompts.py +0 -0
  85. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/llamaindex/__init__.py +0 -0
  86. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/llamaindex/generate.py +0 -0
  87. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/llamaindex/get_files.py +0 -0
  88. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/lookup/__init__.py +0 -0
  89. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/lookup/model_lookup.yaml +0 -0
  90. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/patches/__init__.py +0 -0
  91. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/patches/langchain/__init__.py +0 -0
  92. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/patches/langchain/lancedb.py +0 -0
  93. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/patches/langchain/vertexai.py +0 -0
  94. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/pubsub/__init__.py +0 -0
  95. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/pubsub/process_pubsub.py +0 -0
  96. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/pubsub/pubsub_manager.py +0 -0
  97. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/qna/__init__.py +0 -0
  98. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/qna/parsers.py +0 -0
  99. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/qna/retry.py +0 -0
  100. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/streaming/__init__.py +0 -0
  101. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/streaming/content_buffer.py +0 -0
  102. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/streaming/langserve.py +0 -0
  103. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/streaming/stream_lookup.py +0 -0
  104. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/streaming/streaming.py +0 -0
  105. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/summarise/__init__.py +0 -0
  106. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/summarise/summarise.py +0 -0
  107. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/utils/__init__.py +0 -0
  108. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/utils/api_key.py +0 -0
  109. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/utils/big_context.py +0 -0
  110. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/utils/config.py +0 -0
  111. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/utils/config_schema.py +0 -0
  112. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/utils/gcp.py +0 -0
  113. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/utils/gcp_project.py +0 -0
  114. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/utils/parsers.py +0 -0
  115. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/utils/timedelta.py +0 -0
  116. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/utils/user_ids.py +0 -0
  117. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/utils/version.py +0 -0
  118. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/vertex/__init__.py +0 -0
  119. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/vertex/init.py +0 -0
  120. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/vertex/memory_tools.py +0 -0
  121. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo/vertex/safety.py +0 -0
  122. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo.egg-info/SOURCES.txt +0 -0
  123. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo.egg-info/dependency_links.txt +0 -0
  124. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo.egg-info/entry_points.txt +0 -0
  125. {sunholo-0.69.9 → sunholo-0.69.12}/sunholo.egg-info/top_level.txt +0 -0
  126. {sunholo-0.69.9 → sunholo-0.69.12}/tests/test_chat_history.py +0 -0
  127. {sunholo-0.69.9 → sunholo-0.69.12}/tests/test_chunker.py +0 -0
  128. {sunholo-0.69.9 → sunholo-0.69.12}/tests/test_config.py +0 -0
  129. {sunholo-0.69.9 → sunholo-0.69.12}/tests/test_dispatch_to_qa.py +0 -0
  130. {sunholo-0.69.9 → sunholo-0.69.12}/tests/test_swagger.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.69.9
3
+ Version: 0.69.12
4
4
  Summary: Large Language Model DevOps - a package to help deploy LLMs to the Cloud.
5
5
  Home-page: https://github.com/sunholo-data/sunholo-py
6
- Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.69.9.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.69.12.tar.gz
7
7
  Author: Holosun ApS
8
8
  Author-email: multivac@sunholo.com
9
9
  License: Apache License, Version 2.0
@@ -61,6 +61,7 @@ Requires-Dist: pypdf; extra == "all"
61
61
  Requires-Dist: python-socketio; extra == "all"
62
62
  Requires-Dist: rich; extra == "all"
63
63
  Requires-Dist: supabase; extra == "all"
64
+ Requires-Dist: tantivy; extra == "all"
64
65
  Requires-Dist: tiktoken; extra == "all"
65
66
  Provides-Extra: cli
66
67
  Requires-Dist: jsonschema>=4.21.1; extra == "cli"
@@ -73,6 +74,7 @@ Requires-Dist: pg8000; extra == "database"
73
74
  Requires-Dist: pgvector; extra == "database"
74
75
  Requires-Dist: psycopg2-binary; extra == "database"
75
76
  Requires-Dist: lancedb; extra == "database"
77
+ Requires-Dist: tantivy; extra == "database"
76
78
  Provides-Extra: pipeline
77
79
  Requires-Dist: GitPython; extra == "pipeline"
78
80
  Requires-Dist: lark; extra == "pipeline"
@@ -1,7 +1,7 @@
1
1
  from setuptools import setup, find_packages
2
2
 
3
3
  # Define your base version
4
- version = '0.69.9'
4
+ version = '0.69.12'
5
5
 
6
6
  setup(
7
7
  name='sunholo',
@@ -76,6 +76,7 @@ setup(
76
76
  "python-socketio",
77
77
  "rich",
78
78
  "supabase",
79
+ "tantivy",
79
80
  "tiktoken",
80
81
 
81
82
  ],
@@ -91,6 +92,7 @@ setup(
91
92
  "pgvector",
92
93
  "psycopg2-binary",
93
94
  "lancedb",
95
+ "tantivy"
94
96
  ],
95
97
  'pipeline': [
96
98
  "GitPython",
@@ -51,6 +51,8 @@ def do_discovery_engine(message_data, metadata, vector_name):
51
51
 
52
52
  if message_data.startswith("gs://"):
53
53
  log.info(f"DiscoveryEngineClient.import_files for {message_data}")
54
+ if "/pdf_parts/" in message_data:
55
+ return None
54
56
  for corp in corpuses:
55
57
  try:
56
58
  response = corp.import_documents(
@@ -155,6 +155,7 @@ class DiscoveryEngineClient:
155
155
  num_previous_chunks: int = 3,
156
156
  num_next_chunks: int = 3,
157
157
  page_size: int = 10,
158
+ parse_chunks_to_string: bool = True,
158
159
  doc_or_chunks: str = "CHUNKS", # or DOCUMENTS
159
160
  serving_config: str = "default_serving_config",
160
161
  ):
@@ -166,6 +167,7 @@ class DiscoveryEngineClient:
166
167
  num_previous_chunks (int, optional): Number of previous chunks to return for context (default is 3).
167
168
  num_next_chunks (int, optional): Number of next chunks to return for context (default is 3).
168
169
  page_size (int, optional): The maximum number of results to return per page (default is 10).
170
+ parse_chunks_to_string: If True will put chunks in one big string, False will return object
169
171
 
170
172
  Returns:
171
173
  discoveryengine.SearchResponse: The search response object containing the search results.
@@ -199,10 +201,69 @@ class DiscoveryEngineClient:
199
201
  ),
200
202
  )
201
203
 
204
+ log.info(f"Discovery engine request: {search_request=}")
202
205
  search_response = self.search_client.search(search_request)
206
+
207
+
208
+ if parse_chunks_to_string:
209
+
210
+ big_string = self.process_chunks(search_response)
211
+ log.info(f"Discovery engine chunks string sample: {big_string[:100]}")
203
212
 
213
+ return big_string
214
+
215
+ log.info("Discovery engine response object")
204
216
  return search_response
205
217
 
218
+ def process_chunks(self, response):
219
+ all_chunks = []
220
+
221
+ if 'results' not in response:
222
+ raise ValueError(f'No results found in response: {response=}')
223
+
224
+ for result in response['results']:
225
+ chunk = result['chunk']
226
+ chunk_metadata = chunk['chunkMetadata']
227
+
228
+ if 'previousChunks' in chunk_metadata:
229
+ # Process previous chunks
230
+ for prev_chunk in chunk['chunkMetadata']['previousChunks']:
231
+ prev_chunk_string = (
232
+ f"# {prev_chunk['id']}\n"
233
+ f"{prev_chunk['content']}\n"
234
+ f"## metadata\n"
235
+ f"Document URI: {prev_chunk['documentMetadata']['uri']}\n"
236
+ f"Document Title: {prev_chunk['documentMetadata']['title']}\n"
237
+ )
238
+ all_chunks.append(prev_chunk_string)
239
+
240
+ # Process fetched chunk
241
+ fetched_chunk_string = (
242
+ f"# {chunk['id']}\n"
243
+ f"{chunk['content']}\n"
244
+ f"## metadata\n"
245
+ f"Document URI: {chunk['documentMetadata']['uri']}\n"
246
+ f"Document Title: {chunk['documentMetadata']['title']}\n"
247
+ )
248
+ all_chunks.append(fetched_chunk_string)
249
+
250
+ # Process next chunks
251
+ if 'nextChunks' in chunk_metadata:
252
+ for next_chunk in chunk_metadata['nextChunks']:
253
+ next_chunk_string = (
254
+ f"# {next_chunk['id']}\n"
255
+ f"{next_chunk['content']}\n"
256
+ f"## metadata\n"
257
+ f"Document URI: {next_chunk['documentMetadata']['uri']}\n"
258
+ f"Document Title: {next_chunk['documentMetadata']['title']}\n"
259
+ )
260
+ all_chunks.append(next_chunk_string)
261
+
262
+ # Combine all chunks into one long string
263
+ result_string = "\n".join(all_chunks)
264
+
265
+ return result_string
266
+
206
267
  def import_documents(self,
207
268
  gcs_uri: Optional[str] = None,
208
269
  data_schema="content",
@@ -256,9 +317,9 @@ class DiscoveryEngineClient:
256
317
  try:
257
318
  operation = import_documents_with_retry(self.doc_client, request)
258
319
  except ResourceExhausted as e:
259
- print(f"Operation failed after retries due to quota exceeded: {e}")
320
+ log.error(f"Operation failed after retries due to quota exceeded: {e}")
260
321
  except Exception as e:
261
- print(f"An unexpected error occurred: {e}")
322
+ log.error(f"An unexpected error occurred: {e}")
262
323
 
263
324
  return operation.operation.name
264
325
 
@@ -61,7 +61,6 @@ def do_llamaindex(message_data, metadata, vector_name):
61
61
  corpuses = []
62
62
  for memory in memories:
63
63
  for key, value in memory.items(): # Now iterate over the dictionary
64
- log.info(f"Found memory {key}")
65
64
  vectorstore = value.get('vectorstore')
66
65
  if vectorstore == "llamaindex":
67
66
  log.info(f"Found vectorstore {vectorstore}")
@@ -119,8 +119,14 @@ class GoogleCloudLogging:
119
119
  if log_text:
120
120
  if isinstance(log_struct, dict):
121
121
  logger.log_struct(log_struct, severity=severity, source_location=caller_info)
122
- else:
122
+ elif isinstance(log_struct, str):
123
123
  logger.log_text(log_text, severity=severity, source_location=caller_info)
124
+ else:
125
+ try:
126
+ turn_to_text = str(log_text)
127
+ logger.log_text(turn_to_text, severity=severity, source_location=caller_info)
128
+ except Exception as err:
129
+ print(f"Could not log this: {log_text=} - {str(err)}")
124
130
 
125
131
  elif log_struct:
126
132
  if not isinstance(log_struct, dict):
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sunholo
3
- Version: 0.69.9
3
+ Version: 0.69.12
4
4
  Summary: Large Language Model DevOps - a package to help deploy LLMs to the Cloud.
5
5
  Home-page: https://github.com/sunholo-data/sunholo-py
6
- Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.69.9.tar.gz
6
+ Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.69.12.tar.gz
7
7
  Author: Holosun ApS
8
8
  Author-email: multivac@sunholo.com
9
9
  License: Apache License, Version 2.0
@@ -61,6 +61,7 @@ Requires-Dist: pypdf; extra == "all"
61
61
  Requires-Dist: python-socketio; extra == "all"
62
62
  Requires-Dist: rich; extra == "all"
63
63
  Requires-Dist: supabase; extra == "all"
64
+ Requires-Dist: tantivy; extra == "all"
64
65
  Requires-Dist: tiktoken; extra == "all"
65
66
  Provides-Extra: cli
66
67
  Requires-Dist: jsonschema>=4.21.1; extra == "cli"
@@ -73,6 +74,7 @@ Requires-Dist: pg8000; extra == "database"
73
74
  Requires-Dist: pgvector; extra == "database"
74
75
  Requires-Dist: psycopg2-binary; extra == "database"
75
76
  Requires-Dist: lancedb; extra == "database"
77
+ Requires-Dist: tantivy; extra == "database"
76
78
  Provides-Extra: pipeline
77
79
  Requires-Dist: GitPython; extra == "pipeline"
78
80
  Requires-Dist: lark; extra == "pipeline"
@@ -42,6 +42,7 @@ pypdf
42
42
  python-socketio
43
43
  rich
44
44
  supabase
45
+ tantivy
45
46
  tiktoken
46
47
 
47
48
  [anthropic]
@@ -59,6 +60,7 @@ pg8000
59
60
  pgvector
60
61
  psycopg2-binary
61
62
  lancedb
63
+ tantivy
62
64
 
63
65
  [gcp]
64
66
  google-auth-httplib2
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes