sunholo 0.119.12__tar.gz → 0.119.14__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. {sunholo-0.119.12/src/sunholo.egg-info → sunholo-0.119.14}/PKG-INFO +1 -1
  2. {sunholo-0.119.12 → sunholo-0.119.14}/pyproject.toml +1 -1
  3. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/discovery_engine/discovery_engine_client.py +92 -2
  4. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/discovery_engine/get_ai_search_chunks.py +1 -1
  5. {sunholo-0.119.12 → sunholo-0.119.14/src/sunholo.egg-info}/PKG-INFO +1 -1
  6. {sunholo-0.119.12 → sunholo-0.119.14}/LICENSE.txt +0 -0
  7. {sunholo-0.119.12 → sunholo-0.119.14}/MANIFEST.in +0 -0
  8. {sunholo-0.119.12 → sunholo-0.119.14}/README.md +0 -0
  9. {sunholo-0.119.12 → sunholo-0.119.14}/setup.cfg +0 -0
  10. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/__init__.py +0 -0
  11. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/agents/__init__.py +0 -0
  12. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/agents/chat_history.py +0 -0
  13. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/agents/dispatch_to_qa.py +0 -0
  14. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/agents/fastapi/__init__.py +0 -0
  15. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/agents/fastapi/base.py +0 -0
  16. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/agents/fastapi/qna_routes.py +0 -0
  17. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/agents/flask/__init__.py +0 -0
  18. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/agents/flask/base.py +0 -0
  19. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/agents/flask/qna_routes.py +0 -0
  20. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/agents/flask/vac_routes.py +0 -0
  21. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/agents/langserve.py +0 -0
  22. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/agents/pubsub.py +0 -0
  23. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/agents/route.py +0 -0
  24. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/agents/special_commands.py +0 -0
  25. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/agents/swagger.py +0 -0
  26. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/archive/__init__.py +0 -0
  27. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/archive/archive.py +0 -0
  28. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/auth/__init__.py +0 -0
  29. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/auth/gcloud.py +0 -0
  30. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/auth/refresh.py +0 -0
  31. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/auth/run.py +0 -0
  32. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/azure/__init__.py +0 -0
  33. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/azure/auth.py +0 -0
  34. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/azure/blobs.py +0 -0
  35. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/azure/event_grid.py +0 -0
  36. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/bots/__init__.py +0 -0
  37. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/bots/discord.py +0 -0
  38. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/bots/github_webhook.py +0 -0
  39. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/bots/webapp.py +0 -0
  40. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/chunker/__init__.py +0 -0
  41. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/chunker/azure.py +0 -0
  42. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/chunker/doc_handling.py +0 -0
  43. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/chunker/encode_metadata.py +0 -0
  44. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/chunker/images.py +0 -0
  45. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/chunker/loaders.py +0 -0
  46. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/chunker/message_data.py +0 -0
  47. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/chunker/pdfs.py +0 -0
  48. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/chunker/process_chunker_data.py +0 -0
  49. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/chunker/publish.py +0 -0
  50. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/chunker/pubsub.py +0 -0
  51. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/chunker/splitter.py +0 -0
  52. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/cli/__init__.py +0 -0
  53. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/cli/chat_vac.py +0 -0
  54. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/cli/cli.py +0 -0
  55. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/cli/cli_init.py +0 -0
  56. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/cli/configs.py +0 -0
  57. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/cli/deploy.py +0 -0
  58. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/cli/embedder.py +0 -0
  59. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/cli/merge_texts.py +0 -0
  60. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/cli/run_proxy.py +0 -0
  61. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/cli/sun_rich.py +0 -0
  62. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/cli/swagger.py +0 -0
  63. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/cli/vertex.py +0 -0
  64. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/components/__init__.py +0 -0
  65. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/components/llm.py +0 -0
  66. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/components/retriever.py +0 -0
  67. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/components/vectorstore.py +0 -0
  68. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/custom_logging.py +0 -0
  69. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/database/__init__.py +0 -0
  70. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/database/alloydb.py +0 -0
  71. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/database/alloydb_client.py +0 -0
  72. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/database/database.py +0 -0
  73. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/database/lancedb.py +0 -0
  74. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/database/sql/sb/create_function.sql +0 -0
  75. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/database/sql/sb/create_function_time.sql +0 -0
  76. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/database/sql/sb/create_table.sql +0 -0
  77. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  78. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/database/sql/sb/return_sources.sql +0 -0
  79. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/database/sql/sb/setup.sql +0 -0
  80. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/database/static_dbs.py +0 -0
  81. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/database/uuid.py +0 -0
  82. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/discovery_engine/__init__.py +0 -0
  83. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/discovery_engine/chunker_handler.py +0 -0
  84. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/discovery_engine/cli.py +0 -0
  85. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/discovery_engine/create_new.py +0 -0
  86. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/embedder/__init__.py +0 -0
  87. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/embedder/embed_chunk.py +0 -0
  88. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/embedder/embed_metadata.py +0 -0
  89. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/excel/__init__.py +0 -0
  90. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/excel/plugin.py +0 -0
  91. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/gcs/__init__.py +0 -0
  92. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/gcs/add_file.py +0 -0
  93. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/gcs/download_folder.py +0 -0
  94. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/gcs/download_url.py +0 -0
  95. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/gcs/extract_and_sign.py +0 -0
  96. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/gcs/metadata.py +0 -0
  97. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/genai/__init__.py +0 -0
  98. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/genai/file_handling.py +0 -0
  99. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/genai/genaiv2.py +0 -0
  100. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/genai/images.py +0 -0
  101. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/genai/init.py +0 -0
  102. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/genai/process_funcs_cls.py +0 -0
  103. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/genai/safety.py +0 -0
  104. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/invoke/__init__.py +0 -0
  105. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/invoke/async_class.py +0 -0
  106. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/invoke/direct_vac_func.py +0 -0
  107. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/invoke/invoke_vac_utils.py +0 -0
  108. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/langchain_types.py +0 -0
  109. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/langfuse/__init__.py +0 -0
  110. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/langfuse/callback.py +0 -0
  111. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/langfuse/evals.py +0 -0
  112. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/langfuse/prompts.py +0 -0
  113. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/llamaindex/__init__.py +0 -0
  114. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/llamaindex/get_files.py +0 -0
  115. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/llamaindex/import_files.py +0 -0
  116. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/llamaindex/llamaindex_class.py +0 -0
  117. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/llamaindex/user_history.py +0 -0
  118. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/lookup/__init__.py +0 -0
  119. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/lookup/model_lookup.yaml +0 -0
  120. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/mcp/__init__.py +0 -0
  121. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/mcp/cli.py +0 -0
  122. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/pubsub/__init__.py +0 -0
  123. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/pubsub/process_pubsub.py +0 -0
  124. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/pubsub/pubsub_manager.py +0 -0
  125. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/qna/__init__.py +0 -0
  126. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/qna/parsers.py +0 -0
  127. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/qna/retry.py +0 -0
  128. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/senses/__init__.py +0 -0
  129. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/senses/stream_voice.py +0 -0
  130. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/streaming/__init__.py +0 -0
  131. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/streaming/content_buffer.py +0 -0
  132. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/streaming/langserve.py +0 -0
  133. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/streaming/stream_lookup.py +0 -0
  134. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/streaming/streaming.py +0 -0
  135. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/summarise/__init__.py +0 -0
  136. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/summarise/summarise.py +0 -0
  137. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/templates/agent/__init__.py +0 -0
  138. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/templates/agent/agent_service.py +0 -0
  139. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/templates/agent/app.py +0 -0
  140. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/templates/agent/my_log.py +0 -0
  141. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/templates/agent/tools/__init__.py +0 -0
  142. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/templates/agent/tools/your_agent.py +0 -0
  143. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/templates/agent/vac_service.py +0 -0
  144. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/templates/project/__init__.py +0 -0
  145. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/templates/project/app.py +0 -0
  146. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/templates/project/my_log.py +0 -0
  147. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/templates/project/vac_service.py +0 -0
  148. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/templates/system_services/__init__.py +0 -0
  149. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/templates/system_services/app.py +0 -0
  150. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/templates/system_services/my_log.py +0 -0
  151. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/terraform/__init__.py +0 -0
  152. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/terraform/tfvars_editor.py +0 -0
  153. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/tools/__init__.py +0 -0
  154. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/tools/web_browser.py +0 -0
  155. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/utils/__init__.py +0 -0
  156. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/utils/api_key.py +0 -0
  157. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/utils/big_context.py +0 -0
  158. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/utils/config.py +0 -0
  159. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/utils/config_class.py +0 -0
  160. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/utils/config_schema.py +0 -0
  161. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/utils/gcp.py +0 -0
  162. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/utils/gcp_project.py +0 -0
  163. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/utils/mime.py +0 -0
  164. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/utils/parsers.py +0 -0
  165. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/utils/timedelta.py +0 -0
  166. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/utils/user_ids.py +0 -0
  167. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/utils/version.py +0 -0
  168. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/vertex/__init__.py +0 -0
  169. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/vertex/extensions_call.py +0 -0
  170. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/vertex/extensions_class.py +0 -0
  171. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/vertex/genai_functions.py +0 -0
  172. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/vertex/init.py +0 -0
  173. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/vertex/memory_tools.py +0 -0
  174. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/vertex/safety.py +0 -0
  175. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo/vertex/type_dict_to_json.py +0 -0
  176. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo.egg-info/SOURCES.txt +0 -0
  177. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo.egg-info/dependency_links.txt +0 -0
  178. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo.egg-info/entry_points.txt +0 -0
  179. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo.egg-info/requires.txt +0 -0
  180. {sunholo-0.119.12 → sunholo-0.119.14}/src/sunholo.egg-info/top_level.txt +0 -0
  181. {sunholo-0.119.12 → sunholo-0.119.14}/tests/test_async.py +0 -0
  182. {sunholo-0.119.12 → sunholo-0.119.14}/tests/test_async_genai2.py +0 -0
  183. {sunholo-0.119.12 → sunholo-0.119.14}/tests/test_chat_history.py +0 -0
  184. {sunholo-0.119.12 → sunholo-0.119.14}/tests/test_config.py +0 -0
  185. {sunholo-0.119.12 → sunholo-0.119.14}/tests/test_genai2.py +0 -0
  186. {sunholo-0.119.12 → sunholo-0.119.14}/tests/test_unstructured.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sunholo
3
- Version: 0.119.12
3
+ Version: 0.119.14
4
4
  Summary: Large Language Model DevOps - a package to help deploy LLMs to the Cloud.
5
5
  Author-email: Holosun ApS <multivac@sunholo.com>
6
6
  License: Apache License, Version 2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "sunholo"
7
- version = "0.119.12"
7
+ version = "0.119.14"
8
8
  description = "Large Language Model DevOps - a package to help deploy LLMs to the Cloud."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -350,6 +350,7 @@ class DiscoveryEngineClient:
350
350
  f"## metadata\n"
351
351
  f"Document URI: {chunk.document_metadata.uri}\n"
352
352
  f"Document Title: {chunk.document_metadata.title}\n"
353
+ f"Document ImportTime: {chunk.document_metadata.eventTime}\n"
353
354
  )
354
355
 
355
356
  def process_chunks(self, response):
@@ -357,7 +358,8 @@ class DiscoveryEngineClient:
357
358
 
358
359
  # Check if the response contains results
359
360
  if not hasattr(response, 'results') or not response.results:
360
- raise ValueError(f'No results found in response: {response=}')
361
+ log.info(f'No results found in response: {response=}')
362
+ return []
361
363
 
362
364
  # Iterate through each result in the response
363
365
  for result in response.results:
@@ -386,7 +388,8 @@ class DiscoveryEngineClient:
386
388
 
387
389
  # Check if the response contains results
388
390
  if not hasattr(response, 'results') or not response.results:
389
- raise ValueError(f'No results found in response: {response=}')
391
+ log.info(f'No results found in response: {response=}')
392
+ return []
390
393
 
391
394
  # Iterate through each result in the response
392
395
  for result in response.results:
@@ -726,6 +729,67 @@ class DiscoveryEngineClient:
726
729
  log.info("Discovery engine response object")
727
730
  return search_response
728
731
 
732
+ async def async_search_with_filters(self, query, filter_str=None,
733
+ num_previous_chunks=3, num_next_chunks=3,
734
+ page_size=10, parse_chunks_to_string=True,
735
+ serving_config="default_serving_config",
736
+ data_store_ids: Optional[List[str]] = None):
737
+ """
738
+ Searches with a generic filter string asynchronously.
739
+
740
+ Args:
741
+ query (str): The search query.
742
+ filter_str (str, optional): The filter string to apply (e.g., "source LIKE 'my_source' AND eventTime > TIMESTAMP('2024-01-01')").
743
+ #... other parameters from get_chunks
744
+
745
+ Returns:
746
+ discoveryengine.SearchResponse or str: The search response object or string of chunks.
747
+ """
748
+
749
+ serving_config_path = self.async_search_client.serving_config_path(
750
+ self.project_id,
751
+ self.location,
752
+ self.data_store_id,
753
+ serving_config
754
+ )
755
+
756
+ search_request = discoveryengine.SearchRequest(
757
+ serving_config=serving_config_path,
758
+ query=query,
759
+ page_size=page_size,
760
+ content_search_spec=discoveryengine.SearchRequest.ContentSearchSpec(
761
+ search_result_mode="CHUNKS",
762
+ chunk_spec=discoveryengine.SearchRequest.ContentSearchSpec.ChunkSpec(
763
+ num_previous_chunks=num_previous_chunks,
764
+ num_next_chunks=num_next_chunks,
765
+ ),
766
+ ),
767
+ filter=filter_str # name:'ANY("king kong")'
768
+ )
769
+
770
+ if data_store_ids:
771
+ search_request.data_store_specs = [
772
+ discoveryengine.SearchRequest.DataStoreSpec(
773
+ data_store=self._search_data_store_path(data_store_id, serving_config=serving_config)
774
+ )
775
+ for data_store_id in data_store_ids
776
+ ]
777
+
778
+ log.info(f"Discovery engine request with filter: {search_request=}")
779
+ try:
780
+ search_response = await self.async_search_client.search(search_request)
781
+ except Exception as e:
782
+ log.info(f"No results {search_request.data_store_specs=}: {str(e)}")
783
+ return None
784
+
785
+ if parse_chunks_to_string:
786
+ big_string = await self.async_process_chunks(search_response)
787
+ log.info(f"Discovery engine chunks string sample: {big_string[:100]}")
788
+ return big_string
789
+
790
+ log.info("Discovery engine response object")
791
+ return search_response
792
+
729
793
  def search_by_objectId_and_or_date(self, query, objectId=None, date=None, **kwargs):
730
794
  """
731
795
  Searches and filters by objectId (exact match) and/or date.
@@ -751,3 +815,29 @@ class DiscoveryEngineClient:
751
815
  else:
752
816
  # No filters, perform regular search
753
817
  return self.search_with_filters(query, **kwargs)
818
+
819
+ async def async_search_by_objectId_and_or_date(self, query, objectId=None, date=None, **kwargs):
820
+ """
821
+ Searches and filters by objectId (exact match) and/or date asynchronously.
822
+
823
+ Args:
824
+ query (str): The search query.
825
+ objectId (str, optional): The exact objectId to filter by.
826
+ date (str, optional): The literal_iso_8601_datetime_format date to filter by e.g. 2025-02-24T12:25:30.123Z
827
+ **kwargs: Additional keyword arguments to pass to `async_search_with_filters`.
828
+
829
+ Returns:
830
+ list: A list of search results.
831
+ """
832
+ filter_clauses = []
833
+ if objectId:
834
+ filter_clauses.append(f'objectId: ANY("{objectId}")')
835
+ if date:
836
+ filter_clauses.append(f'eventTime >= "{date}"')
837
+
838
+ if filter_clauses:
839
+ filter_str = " AND ".join(filter_clauses) # Combine with AND
840
+ return await self.async_search_with_filters(query, filter_str, **kwargs)
841
+ else:
842
+ # No filters, perform regular search
843
+ return await self.async_search_with_filters(query, **kwargs)
@@ -116,7 +116,7 @@ async def async_get_all_chunks(question:str, config:ConfigManager, filter_str=No
116
116
  async def async_get_chunks(question, vector_name, num_chunks, filter_str, project_id=None):
117
117
  de = DiscoveryEngineClient(vector_name, project_id=project_id)
118
118
  try:
119
- return await de.search_with_filters(query=question,
119
+ return await de.async_search_with_filters(query=question,
120
120
  filter_str=filter_str,
121
121
  num_previous_chunks=num_chunks,
122
122
  num_next_chunks=num_chunks)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sunholo
3
- Version: 0.119.12
3
+ Version: 0.119.14
4
4
  Summary: Large Language Model DevOps - a package to help deploy LLMs to the Cloud.
5
5
  Author-email: Holosun ApS <multivac@sunholo.com>
6
6
  License: Apache License, Version 2.0
File without changes
File without changes
File without changes
File without changes