sunholo 0.66.18__tar.gz → 0.66.21__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.
- {sunholo-0.66.18 → sunholo-0.66.21}/PKG-INFO +2 -2
- {sunholo-0.66.18 → sunholo-0.66.21}/setup.py +1 -1
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/agents/flask/qna_routes.py +5 -3
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/agents/swagger.py +4 -5
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/cli/chat_vac.py +21 -5
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo.egg-info/PKG-INFO +2 -2
- {sunholo-0.66.18 → sunholo-0.66.21}/LICENSE.txt +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/MANIFEST.in +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/README.md +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/setup.cfg +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/agents/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/agents/chat_history.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/agents/dispatch_to_qa.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/agents/fastapi/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/agents/fastapi/base.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/agents/fastapi/qna_routes.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/agents/flask/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/agents/flask/base.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/agents/langserve.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/agents/pubsub.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/agents/route.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/agents/special_commands.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/archive/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/archive/archive.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/auth/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/auth/run.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/bots/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/bots/discord.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/bots/github_webhook.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/bots/webapp.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/chunker/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/chunker/data_to_embed_pubsub.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/chunker/doc_handling.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/chunker/images.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/chunker/loaders.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/chunker/message_data.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/chunker/pdfs.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/chunker/publish.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/chunker/splitter.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/cli/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/cli/cli.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/cli/cli_init.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/cli/configs.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/cli/deploy.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/cli/embedder.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/cli/merge_texts.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/cli/run_proxy.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/cli/sun_rich.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/cli/swagger.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/components/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/components/llm.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/components/retriever.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/components/vectorstore.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/database/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/database/alloydb.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/database/database.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/database/lancedb.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/database/sql/sb/create_function.sql +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/database/sql/sb/create_function_time.sql +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/database/sql/sb/create_table.sql +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/database/sql/sb/return_sources.sql +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/database/sql/sb/setup.sql +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/database/static_dbs.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/database/uuid.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/embedder/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/embedder/embed_chunk.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/gcs/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/gcs/add_file.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/gcs/download_url.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/gcs/metadata.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/langfuse/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/langfuse/callback.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/langfuse/prompts.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/llamaindex/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/llamaindex/generate.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/llamaindex/get_files.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/llamaindex/import_files.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/logging.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/lookup/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/lookup/model_lookup.yaml +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/patches/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/patches/langchain/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/patches/langchain/lancedb.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/patches/langchain/vertexai.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/pubsub/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/pubsub/process_pubsub.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/pubsub/pubsub_manager.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/qna/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/qna/parsers.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/qna/retry.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/streaming/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/streaming/content_buffer.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/streaming/langserve.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/streaming/stream_lookup.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/streaming/streaming.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/summarise/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/summarise/summarise.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/utils/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/utils/big_context.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/utils/config.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/utils/config_schema.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/utils/gcp.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/utils/gcp_project.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/utils/parsers.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/utils/timedelta.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/utils/user_ids.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/utils/version.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/vertex/__init__.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/vertex/init.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/vertex/memory_tools.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo/vertex/safety.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo.egg-info/SOURCES.txt +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo.egg-info/dependency_links.txt +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo.egg-info/entry_points.txt +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo.egg-info/requires.txt +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/sunholo.egg-info/top_level.txt +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/tests/test_chat_history.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/tests/test_chunker.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/tests/test_config.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/tests/test_dispatch_to_qa.py +0 -0
- {sunholo-0.66.18 → sunholo-0.66.21}/tests/test_swagger.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sunholo
|
|
3
|
-
Version: 0.66.
|
|
3
|
+
Version: 0.66.21
|
|
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.66.
|
|
6
|
+
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.66.21.tar.gz
|
|
7
7
|
Author: Holosun ApS
|
|
8
8
|
Author-email: multivac@sunholo.com
|
|
9
9
|
License: Apache License, Version 2.0
|
|
@@ -46,6 +46,7 @@ cache_duration = timedelta(minutes=5) # Cache duration
|
|
|
46
46
|
|
|
47
47
|
def make_openai_response(user_message, vector_name, answer):
|
|
48
48
|
response_id = str(uuid.uuid4())
|
|
49
|
+
log.info("openai response: Q: {user_message} to VECTOR_NAME: {vector_name} - A: {answer}")
|
|
49
50
|
openai_response = {
|
|
50
51
|
"id": response_id,
|
|
51
52
|
"object": "chat.completion",
|
|
@@ -418,9 +419,10 @@ def register_qna_routes(app, stream_interpreter, vac_interpreter):
|
|
|
418
419
|
bot_output = parse_output(bot_output)
|
|
419
420
|
|
|
420
421
|
log.info(f"Bot output: {bot_output}")
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
422
|
+
if bot_output:
|
|
423
|
+
return make_openai_response(user_message, vector_name, bot_output.get('answer', ''))
|
|
424
|
+
else:
|
|
425
|
+
return make_openai_response(user_message, vector_name, 'ERROR: could not find an answer')
|
|
424
426
|
|
|
425
427
|
except Exception as err:
|
|
426
428
|
log.error(f"OpenAI response error: {err}")
|
|
@@ -208,8 +208,8 @@ See more at https://dev.sunholo.com/
|
|
|
208
208
|
try:
|
|
209
209
|
stem = route_vac(vector_name).strip()
|
|
210
210
|
except ValueError:
|
|
211
|
-
stem
|
|
212
|
-
|
|
211
|
+
log.warning(f"Failed to find URL stem for {vector_name}/{agent_type} - skipping")
|
|
212
|
+
continue
|
|
213
213
|
|
|
214
214
|
for method, endpoints in agent_config_paths.items():
|
|
215
215
|
# controls if get requests are protected or not
|
|
@@ -273,9 +273,8 @@ See more at https://dev.sunholo.com/
|
|
|
273
273
|
try:
|
|
274
274
|
stem = route_vac(vector_name).strip()
|
|
275
275
|
except ValueError:
|
|
276
|
-
stem
|
|
277
|
-
|
|
278
|
-
|
|
276
|
+
log.warning(f"Failed to find URL stem for {vector_name}/{agent_type} - skipping")
|
|
277
|
+
continue
|
|
279
278
|
|
|
280
279
|
for method, endpoints in default_agent_config.items():
|
|
281
280
|
# controls if get requests are protected or not
|
|
@@ -11,6 +11,7 @@ import sys
|
|
|
11
11
|
import subprocess
|
|
12
12
|
import json
|
|
13
13
|
import requests
|
|
14
|
+
import os
|
|
14
15
|
from pathlib import Path
|
|
15
16
|
|
|
16
17
|
from rich import print
|
|
@@ -226,15 +227,30 @@ def resolve_service_url(args, no_config=False):
|
|
|
226
227
|
if args.url_override:
|
|
227
228
|
|
|
228
229
|
return args.url_override
|
|
230
|
+
|
|
231
|
+
agent_name = load_config_key("agent", args.vac_name, kind="vacConfig")
|
|
232
|
+
agent_url = load_config_key("agent_url", args.vac_name, "vacConfig")
|
|
233
|
+
if agent_url:
|
|
234
|
+
console.print("Found agent_url within vacConfig: {agent_url}")
|
|
235
|
+
|
|
236
|
+
# via public cloud endpoints - assumes no gcloud auth
|
|
237
|
+
if os.getenv("MULTIVAC_API_KEY"):
|
|
238
|
+
console.rule("Found MULTIVAC_API_KEY")
|
|
239
|
+
gcp_config = load_config_key("gcp_config", "global", "vacConfig")
|
|
240
|
+
endpoints_base_url = gcp_config.get("endpoints_base_url")
|
|
241
|
+
if not endpoints_base_url:
|
|
242
|
+
console.print("[bold red]MULTIVAC_API_KEY env var is set but no config.gcp_config.endpoints_base_url can be found[/bold red]")
|
|
243
|
+
sys.exit(1)
|
|
244
|
+
|
|
245
|
+
service_url = f"{endpoints_base_url}/v1/{agent_name}"
|
|
229
246
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
if agent_url:
|
|
233
|
-
console.print("Found agent_url within vacConfig: {agent_url}")
|
|
247
|
+
# via direct access to agent url - requires gcloud auth access
|
|
248
|
+
elif args.no_proxy:
|
|
234
249
|
|
|
235
|
-
service_url = agent_url or get_cloud_run_service_url(args.project, args.region,
|
|
250
|
+
service_url = agent_url or get_cloud_run_service_url(args.project, args.region, agent_name)
|
|
236
251
|
console.print(f"No proxy, connecting directly to {service_url}")
|
|
237
252
|
else:
|
|
253
|
+
# via gcloud proxy - requires gcloud auth access
|
|
238
254
|
try:
|
|
239
255
|
service_url = get_service_url(args.vac_name, args.project, args.region, no_config=no_config)
|
|
240
256
|
except ValueError as e:
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sunholo
|
|
3
|
-
Version: 0.66.
|
|
3
|
+
Version: 0.66.21
|
|
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.66.
|
|
6
|
+
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.66.21.tar.gz
|
|
7
7
|
Author: Holosun ApS
|
|
8
8
|
Author-email: multivac@sunholo.com
|
|
9
9
|
License: Apache License, Version 2.0
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|