sunholo 0.118.1__tar.gz → 0.118.4__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 (184) hide show
  1. {sunholo-0.118.1/src/sunholo.egg-info → sunholo-0.118.4}/PKG-INFO +5 -5
  2. {sunholo-0.118.1 → sunholo-0.118.4}/pyproject.toml +5 -5
  3. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/genai/file_handling.py +30 -12
  4. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/utils/big_context.py +4 -1
  5. {sunholo-0.118.1 → sunholo-0.118.4/src/sunholo.egg-info}/PKG-INFO +5 -5
  6. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo.egg-info/requires.txt +4 -4
  7. {sunholo-0.118.1 → sunholo-0.118.4}/LICENSE.txt +0 -0
  8. {sunholo-0.118.1 → sunholo-0.118.4}/MANIFEST.in +0 -0
  9. {sunholo-0.118.1 → sunholo-0.118.4}/README.md +0 -0
  10. {sunholo-0.118.1 → sunholo-0.118.4}/setup.cfg +0 -0
  11. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/__init__.py +0 -0
  12. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/agents/__init__.py +0 -0
  13. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/agents/chat_history.py +0 -0
  14. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/agents/dispatch_to_qa.py +0 -0
  15. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/agents/fastapi/__init__.py +0 -0
  16. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/agents/fastapi/base.py +0 -0
  17. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/agents/fastapi/qna_routes.py +0 -0
  18. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/agents/flask/__init__.py +0 -0
  19. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/agents/flask/base.py +0 -0
  20. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/agents/flask/qna_routes.py +0 -0
  21. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/agents/flask/vac_routes.py +0 -0
  22. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/agents/langserve.py +0 -0
  23. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/agents/pubsub.py +0 -0
  24. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/agents/route.py +0 -0
  25. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/agents/special_commands.py +0 -0
  26. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/agents/swagger.py +0 -0
  27. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/archive/__init__.py +0 -0
  28. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/archive/archive.py +0 -0
  29. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/auth/__init__.py +0 -0
  30. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/auth/gcloud.py +0 -0
  31. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/auth/refresh.py +0 -0
  32. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/auth/run.py +0 -0
  33. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/azure/__init__.py +0 -0
  34. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/azure/auth.py +0 -0
  35. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/azure/blobs.py +0 -0
  36. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/azure/event_grid.py +0 -0
  37. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/bots/__init__.py +0 -0
  38. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/bots/discord.py +0 -0
  39. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/bots/github_webhook.py +0 -0
  40. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/bots/webapp.py +0 -0
  41. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/chunker/__init__.py +0 -0
  42. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/chunker/azure.py +0 -0
  43. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/chunker/doc_handling.py +0 -0
  44. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/chunker/encode_metadata.py +0 -0
  45. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/chunker/images.py +0 -0
  46. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/chunker/loaders.py +0 -0
  47. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/chunker/message_data.py +0 -0
  48. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/chunker/pdfs.py +0 -0
  49. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/chunker/process_chunker_data.py +0 -0
  50. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/chunker/publish.py +0 -0
  51. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/chunker/pubsub.py +0 -0
  52. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/chunker/splitter.py +0 -0
  53. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/cli/__init__.py +0 -0
  54. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/cli/chat_vac.py +0 -0
  55. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/cli/cli.py +0 -0
  56. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/cli/cli_init.py +0 -0
  57. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/cli/configs.py +0 -0
  58. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/cli/deploy.py +0 -0
  59. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/cli/embedder.py +0 -0
  60. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/cli/merge_texts.py +0 -0
  61. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/cli/run_proxy.py +0 -0
  62. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/cli/sun_rich.py +0 -0
  63. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/cli/swagger.py +0 -0
  64. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/cli/vertex.py +0 -0
  65. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/components/__init__.py +0 -0
  66. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/components/llm.py +0 -0
  67. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/components/retriever.py +0 -0
  68. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/components/vectorstore.py +0 -0
  69. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/custom_logging.py +0 -0
  70. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/database/__init__.py +0 -0
  71. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/database/alloydb.py +0 -0
  72. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/database/alloydb_client.py +0 -0
  73. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/database/database.py +0 -0
  74. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/database/lancedb.py +0 -0
  75. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/database/sql/sb/create_function.sql +0 -0
  76. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/database/sql/sb/create_function_time.sql +0 -0
  77. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/database/sql/sb/create_table.sql +0 -0
  78. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  79. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/database/sql/sb/return_sources.sql +0 -0
  80. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/database/sql/sb/setup.sql +0 -0
  81. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/database/static_dbs.py +0 -0
  82. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/database/uuid.py +0 -0
  83. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/discovery_engine/__init__.py +0 -0
  84. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/discovery_engine/chunker_handler.py +0 -0
  85. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/discovery_engine/create_new.py +0 -0
  86. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/discovery_engine/discovery_engine_client.py +0 -0
  87. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/discovery_engine/get_ai_search_chunks.py +0 -0
  88. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/embedder/__init__.py +0 -0
  89. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/embedder/embed_chunk.py +0 -0
  90. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/excel/__init__.py +0 -0
  91. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/excel/plugin.py +0 -0
  92. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/gcs/__init__.py +0 -0
  93. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/gcs/add_file.py +0 -0
  94. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/gcs/download_folder.py +0 -0
  95. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/gcs/download_url.py +0 -0
  96. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/gcs/extract_and_sign.py +0 -0
  97. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/gcs/metadata.py +0 -0
  98. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/genai/__init__.py +0 -0
  99. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/genai/genaiv2.py +0 -0
  100. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/genai/images.py +0 -0
  101. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/genai/init.py +0 -0
  102. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/genai/process_funcs_cls.py +0 -0
  103. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/genai/safety.py +0 -0
  104. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/invoke/__init__.py +0 -0
  105. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/invoke/async_class.py +0 -0
  106. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/invoke/direct_vac_func.py +0 -0
  107. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/invoke/invoke_vac_utils.py +0 -0
  108. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/langchain_types.py +0 -0
  109. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/langfuse/__init__.py +0 -0
  110. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/langfuse/callback.py +0 -0
  111. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/langfuse/evals.py +0 -0
  112. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/langfuse/prompts.py +0 -0
  113. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/llamaindex/__init__.py +0 -0
  114. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/llamaindex/get_files.py +0 -0
  115. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/llamaindex/import_files.py +0 -0
  116. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/llamaindex/llamaindex_class.py +0 -0
  117. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/llamaindex/user_history.py +0 -0
  118. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/lookup/__init__.py +0 -0
  119. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/lookup/model_lookup.yaml +0 -0
  120. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/mcp/__init__.py +0 -0
  121. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/mcp/cli.py +0 -0
  122. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/pubsub/__init__.py +0 -0
  123. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/pubsub/process_pubsub.py +0 -0
  124. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/pubsub/pubsub_manager.py +0 -0
  125. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/qna/__init__.py +0 -0
  126. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/qna/parsers.py +0 -0
  127. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/qna/retry.py +0 -0
  128. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/senses/__init__.py +0 -0
  129. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/senses/stream_voice.py +0 -0
  130. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/streaming/__init__.py +0 -0
  131. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/streaming/content_buffer.py +0 -0
  132. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/streaming/langserve.py +0 -0
  133. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/streaming/stream_lookup.py +0 -0
  134. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/streaming/streaming.py +0 -0
  135. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/summarise/__init__.py +0 -0
  136. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/summarise/summarise.py +0 -0
  137. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/templates/agent/__init__.py +0 -0
  138. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/templates/agent/agent_service.py +0 -0
  139. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/templates/agent/app.py +0 -0
  140. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/templates/agent/my_log.py +0 -0
  141. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/templates/agent/tools/__init__.py +0 -0
  142. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/templates/agent/tools/your_agent.py +0 -0
  143. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/templates/agent/vac_service.py +0 -0
  144. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/templates/project/__init__.py +0 -0
  145. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/templates/project/app.py +0 -0
  146. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/templates/project/my_log.py +0 -0
  147. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/templates/project/vac_service.py +0 -0
  148. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/templates/system_services/__init__.py +0 -0
  149. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/templates/system_services/app.py +0 -0
  150. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/templates/system_services/my_log.py +0 -0
  151. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/terraform/__init__.py +0 -0
  152. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/terraform/tfvars_editor.py +0 -0
  153. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/tools/__init__.py +0 -0
  154. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/tools/web_browser.py +0 -0
  155. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/utils/__init__.py +0 -0
  156. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/utils/api_key.py +0 -0
  157. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/utils/config.py +0 -0
  158. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/utils/config_class.py +0 -0
  159. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/utils/config_schema.py +0 -0
  160. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/utils/gcp.py +0 -0
  161. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/utils/gcp_project.py +0 -0
  162. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/utils/mime.py +0 -0
  163. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/utils/parsers.py +0 -0
  164. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/utils/timedelta.py +0 -0
  165. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/utils/user_ids.py +0 -0
  166. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/utils/version.py +0 -0
  167. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/vertex/__init__.py +0 -0
  168. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/vertex/extensions_call.py +0 -0
  169. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/vertex/extensions_class.py +0 -0
  170. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/vertex/genai_functions.py +0 -0
  171. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/vertex/init.py +0 -0
  172. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/vertex/memory_tools.py +0 -0
  173. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/vertex/safety.py +0 -0
  174. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo/vertex/type_dict_to_json.py +0 -0
  175. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo.egg-info/SOURCES.txt +0 -0
  176. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo.egg-info/dependency_links.txt +0 -0
  177. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo.egg-info/entry_points.txt +0 -0
  178. {sunholo-0.118.1 → sunholo-0.118.4}/src/sunholo.egg-info/top_level.txt +0 -0
  179. {sunholo-0.118.1 → sunholo-0.118.4}/tests/test_async.py +0 -0
  180. {sunholo-0.118.1 → sunholo-0.118.4}/tests/test_async_genai2.py +0 -0
  181. {sunholo-0.118.1 → sunholo-0.118.4}/tests/test_chat_history.py +0 -0
  182. {sunholo-0.118.1 → sunholo-0.118.4}/tests/test_config.py +0 -0
  183. {sunholo-0.118.1 → sunholo-0.118.4}/tests/test_genai2.py +0 -0
  184. {sunholo-0.118.1 → sunholo-0.118.4}/tests/test_unstructured.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sunholo
3
- Version: 0.118.1
3
+ Version: 0.118.4
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
@@ -59,10 +59,10 @@ Requires-Dist: lancedb; extra == "all"
59
59
  Requires-Dist: langchain>=0.2.16; extra == "all"
60
60
  Requires-Dist: langchain-experimental>=0.0.61; extra == "all"
61
61
  Requires-Dist: langchain-community>=0.2.11; extra == "all"
62
- Requires-Dist: langchain-openai==0.1.25; extra == "all"
63
- Requires-Dist: langchain-google-genai==1.0.10; extra == "all"
62
+ Requires-Dist: langchain-openai>=0.3.2; extra == "all"
63
+ Requires-Dist: langchain-google-genai>=2.0.9; extra == "all"
64
64
  Requires-Dist: langchain_google_alloydb_pg; extra == "all"
65
- Requires-Dist: langchain-anthropic==0.1.23; extra == "all"
65
+ Requires-Dist: langchain-anthropic>=0.1.23; extra == "all"
66
66
  Requires-Dist: langchain-google-vertexai; extra == "all"
67
67
  Requires-Dist: langchain-unstructured; extra == "all"
68
68
  Requires-Dist: langfuse; extra == "all"
@@ -142,7 +142,7 @@ Requires-Dist: langchain_google_alloydb_pg>=0.2.2; extra == "gcp"
142
142
  Requires-Dist: langchain-google-vertexai; extra == "gcp"
143
143
  Requires-Dist: pillow; extra == "gcp"
144
144
  Provides-Extra: openai
145
- Requires-Dist: langchain-openai==0.1.25; extra == "openai"
145
+ Requires-Dist: langchain-openai>=0.3.2; extra == "openai"
146
146
  Requires-Dist: tiktoken; extra == "openai"
147
147
  Provides-Extra: anthropic
148
148
  Requires-Dist: langchain-anthropic>=0.1.23; extra == "anthropic"
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "sunholo"
7
- version = "0.118.1"
7
+ version = "0.118.4"
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"
@@ -90,10 +90,10 @@ all = [
90
90
  "langchain>=0.2.16",
91
91
  "langchain-experimental>=0.0.61",
92
92
  "langchain-community>=0.2.11",
93
- "langchain-openai==0.1.25",
94
- "langchain-google-genai==1.0.10",
93
+ "langchain-openai>=0.3.2",
94
+ "langchain-google-genai>=2.0.9",
95
95
  "langchain_google_alloydb_pg",
96
- "langchain-anthropic==0.1.23",
96
+ "langchain-anthropic>=0.1.23",
97
97
  "langchain-google-vertexai",
98
98
  "langchain-unstructured",
99
99
  "langfuse",
@@ -180,7 +180,7 @@ gcp = [
180
180
  "pillow"
181
181
  ]
182
182
  openai = [
183
- "langchain-openai==0.1.25",
183
+ "langchain-openai>=0.3.2",
184
184
  "tiktoken"
185
185
  ]
186
186
  anthropic = [
@@ -10,8 +10,10 @@ import os
10
10
  import traceback
11
11
  try:
12
12
  import google.generativeai as genai
13
+ from google import genai as genaiv2
13
14
  except ImportError:
14
15
  genai = None
16
+ genaiv2 = None
15
17
 
16
18
  DOCUMENT_MIMES = [
17
19
  'application/pdf',
@@ -85,7 +87,7 @@ def sanitize_file(filename):
85
87
  # Reattach the original extension
86
88
  return sanitized_name[:40]
87
89
 
88
- async def construct_file_content(gs_list, bucket:str):
90
+ async def construct_file_content(gs_list, bucket:str, genai_lib=False):
89
91
  """
90
92
  Args:
91
93
  - gs_list: a list of dicts representing files in a bucket
@@ -93,6 +95,7 @@ async def construct_file_content(gs_list, bucket:str):
93
95
  - storagePath: The path in the bucket
94
96
  - name: The name of the file
95
97
  - bucket: The bucket the files are in
98
+ - genai: whether its using the genai SDK
96
99
 
97
100
  """
98
101
 
@@ -124,7 +127,12 @@ async def construct_file_content(gs_list, bucket:str):
124
127
  display_name = file_info['name']
125
128
  log.info(f"Processing {name=} {display_name=}")
126
129
  try:
127
- myfile = genai.get_file(name)
130
+ if not genai_lib:
131
+ myfile = genai.get_file(name)
132
+ else:
133
+ client = genaiv2.Client()
134
+ myfile = client.files.get(name)
135
+
128
136
  content.append(
129
137
  {"role": "user", "parts": [
130
138
  {"file_data": myfile},
@@ -132,7 +140,6 @@ async def construct_file_content(gs_list, bucket:str):
132
140
  ]
133
141
  })
134
142
  log.info(f"Found existing genai.get_file {name=}")
135
-
136
143
  except Exception as e:
137
144
  log.info(f"Not found checking genai.get_file: '{name}' {str(e)}")
138
145
  tasks.append(
@@ -140,7 +147,8 @@ async def construct_file_content(gs_list, bucket:str):
140
147
  mime_type=mime_type,
141
148
  name=name,
142
149
  display_url=display_url,
143
- display_name=display_name)
150
+ display_name=display_name,
151
+ genai_lib=genai_lib)
144
152
  )
145
153
 
146
154
  # Run all tasks in parallel
@@ -164,7 +172,7 @@ async def download_gcs_upload_genai(img_url,
164
172
  name=None,
165
173
  display_url=None,
166
174
  display_name=None,
167
- retries=3, delay=2):
175
+ retries=3, delay=2, genai_lib=False):
168
176
  import aiofiles
169
177
  from google.generativeai.types import file_types
170
178
  """
@@ -213,13 +221,23 @@ async def download_gcs_upload_genai(img_url,
213
221
 
214
222
  # Upload the file and get its content reference
215
223
  try:
216
- downloaded_content: file_types.File = await asyncio.to_thread(
217
- partial(genai.upload_file, name=name, mime_type=mime_type, display_name=display_name),
218
- sanitized_file
219
- )
220
- return {"role": "user", "parts": [{"file_data": downloaded_content},
221
- {"text": f"You have been given the ability to read and work with filename '{display_name=}' with {mime_type=} {display_url=}"}
222
- ]}
224
+ if not genai_lib:
225
+ downloaded_content: file_types.File = await asyncio.to_thread(
226
+ partial(genai.upload_file, name=name, mime_type=mime_type, display_name=display_name),
227
+ sanitized_file
228
+ )
229
+ return {"role": "user", "parts": [{"file_data": downloaded_content},
230
+ {"text": f"You have been given the ability to read and work with filename '{display_name=}' with {mime_type=} {display_url=}"}
231
+ ]}
232
+ else:
233
+ client = genaiv2.Client()
234
+ downloaded_content = await asyncio.to_thread(
235
+ partial(client.files.upload, name=name, config=dict(mime_type=mime_type, display_name=display_name)),
236
+ sanitized_file
237
+ )
238
+ return {"role": "user", "parts": [{"file_data": downloaded_content},
239
+ {"text": f"You have been given the ability to read and work with filename '{display_name=}' with {mime_type=} {display_url=}"}
240
+ ]}
223
241
  except Exception as err:
224
242
  msg = f"Could not upload {sanitized_file} to genai.upload_file: {str(err)} {traceback.format_exc()} {display_url=}"
225
243
  log.error(msg)
@@ -22,7 +22,8 @@ def has_text_extension(file_path):
22
22
  '.txt', '.md', '.py', '.json', '.xml', '.csv', '.html', '.htm',
23
23
  '.css', '.js', '.java', '.c', '.cpp', '.h', '.hpp', '.r', '.sh',
24
24
  '.bat', '.ini', '.yaml', '.yml', '.toml', '.pl', '.rb', '.go',
25
- '.ts', '.tsx', '.rs', '.swift', '.kt', '.kts', '.scala', '.sql'
25
+ '.ts', '.tsx', '.rs', '.swift', '.kt', '.kts', '.scala', '.sql',
26
+ '.tf', '.tfvars',
26
27
  }
27
28
  # Get the file extension and check if it's in the set
28
29
  _, ext = os.path.splitext(file_path)
@@ -141,6 +142,8 @@ def merge_text_files(source_folder, output_file, patterns):
141
142
  outfile.write(f"\n--- End of {file_path} ---\n\n")
142
143
  except (IOError, UnicodeDecodeError):
143
144
  print(f"Skipping file (cannot read as text): {file_path}")
145
+ else:
146
+ print(f"Skipping file (not a recognised text file extension): {file_path}")
144
147
  outfile.write("\n--- File Tree ---\n")
145
148
  outfile.write("\n".join(file_tree))
146
149
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sunholo
3
- Version: 0.118.1
3
+ Version: 0.118.4
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
@@ -59,10 +59,10 @@ Requires-Dist: lancedb; extra == "all"
59
59
  Requires-Dist: langchain>=0.2.16; extra == "all"
60
60
  Requires-Dist: langchain-experimental>=0.0.61; extra == "all"
61
61
  Requires-Dist: langchain-community>=0.2.11; extra == "all"
62
- Requires-Dist: langchain-openai==0.1.25; extra == "all"
63
- Requires-Dist: langchain-google-genai==1.0.10; extra == "all"
62
+ Requires-Dist: langchain-openai>=0.3.2; extra == "all"
63
+ Requires-Dist: langchain-google-genai>=2.0.9; extra == "all"
64
64
  Requires-Dist: langchain_google_alloydb_pg; extra == "all"
65
- Requires-Dist: langchain-anthropic==0.1.23; extra == "all"
65
+ Requires-Dist: langchain-anthropic>=0.1.23; extra == "all"
66
66
  Requires-Dist: langchain-google-vertexai; extra == "all"
67
67
  Requires-Dist: langchain-unstructured; extra == "all"
68
68
  Requires-Dist: langfuse; extra == "all"
@@ -142,7 +142,7 @@ Requires-Dist: langchain_google_alloydb_pg>=0.2.2; extra == "gcp"
142
142
  Requires-Dist: langchain-google-vertexai; extra == "gcp"
143
143
  Requires-Dist: pillow; extra == "gcp"
144
144
  Provides-Extra: openai
145
- Requires-Dist: langchain-openai==0.1.25; extra == "openai"
145
+ Requires-Dist: langchain-openai>=0.3.2; extra == "openai"
146
146
  Requires-Dist: tiktoken; extra == "openai"
147
147
  Provides-Extra: anthropic
148
148
  Requires-Dist: langchain-anthropic>=0.1.23; extra == "anthropic"
@@ -37,10 +37,10 @@ lancedb
37
37
  langchain>=0.2.16
38
38
  langchain-experimental>=0.0.61
39
39
  langchain-community>=0.2.11
40
- langchain-openai==0.1.25
41
- langchain-google-genai==1.0.10
40
+ langchain-openai>=0.3.2
41
+ langchain-google-genai>=2.0.9
42
42
  langchain_google_alloydb_pg
43
- langchain-anthropic==0.1.23
43
+ langchain-anthropic>=0.1.23
44
44
  langchain-google-vertexai
45
45
  langchain-unstructured
46
46
  langfuse
@@ -139,7 +139,7 @@ langchain-community
139
139
  langsmith
140
140
 
141
141
  [openai]
142
- langchain-openai==0.1.25
142
+ langchain-openai>=0.3.2
143
143
  tiktoken
144
144
 
145
145
  [pipeline]
File without changes
File without changes
File without changes
File without changes
File without changes