sunholo 0.66.18__py3-none-any.whl → 0.66.21__py3-none-any.whl

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.
@@ -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
- return make_openai_response(user_message, vector_name, bot_output.get('answer', ''))
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}")
sunholo/agents/swagger.py CHANGED
@@ -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 = f"${{{agent_type.upper()}_BACKEND_URL}}"
212
- log.warning(f"Failed to find URL stem for {vector_name}/{agent_type} - using {stem} instead")
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 = f"${{{agent_type.upper()}_BACKEND_URL}}"
277
- log.warning(f"Failed to find URL stem for {vector_name}/{agent_type} - using {stem} instead")
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
sunholo/cli/chat_vac.py CHANGED
@@ -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
- if args.no_proxy:
231
- agent_url = load_config_key("agent_url", args.vac_name, "vacConfig")
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, args.vac_name)
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.18
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.18.tar.gz
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
@@ -7,13 +7,13 @@ sunholo/agents/langserve.py,sha256=FdhQjorAY2bMn2rpuabNT6bU3uqSKWrl8DjpH3L_V7k,4
7
7
  sunholo/agents/pubsub.py,sha256=5hbbhbBGyVWRpt2sAGC5FEheYH1mCCwVUhZEB1S7vGg,1337
8
8
  sunholo/agents/route.py,sha256=V1HKXTvaNuYgjmT5_QgIQum4O7O0Mw497m6YiMpEzX0,2383
9
9
  sunholo/agents/special_commands.py,sha256=ecD5jrBVXo170sdgPILi0m_m_4nRFEv6qKn5zYEvEK8,6494
10
- sunholo/agents/swagger.py,sha256=93owb98_P2IDH9eEssxpz0Cr6rgMxSZ1p6jRfm56tXU,13683
10
+ sunholo/agents/swagger.py,sha256=npZT7jRJA65xMXNjTcYsC3-RMd8qYP71vy_fSCCcKGg,13572
11
11
  sunholo/agents/fastapi/__init__.py,sha256=S_pj4_bTUmDGoq_exaREHlOKThi0zTuGT0VZY0YfODQ,88
12
12
  sunholo/agents/fastapi/base.py,sha256=clk76cHbUAvU0OYJrRfCWX_5f0ACbhDsIzYBhI3wyoE,2514
13
13
  sunholo/agents/fastapi/qna_routes.py,sha256=DgK4Btu5XriOC1JaRQ4G_nWEjJfnQ0J5pyLanF6eF1g,3857
14
14
  sunholo/agents/flask/__init__.py,sha256=uqfHNw2Ru3EJ4dJEcbp86h_lkquBQPMxZbjhV_xe3rs,72
15
15
  sunholo/agents/flask/base.py,sha256=FgSaCODyoTtlstJtsqlLPScdgRUtv9_plxftdzHdVFo,809
16
- sunholo/agents/flask/qna_routes.py,sha256=jBcfD1n-aXJhEBkLUKFuKqWx3-s56hodbB-wahqeusw,21411
16
+ sunholo/agents/flask/qna_routes.py,sha256=tEsJRnnGoz_cOEaPtPpCCD920jZpLypLK58UzIxe1Ac,21659
17
17
  sunholo/archive/__init__.py,sha256=qNHWm5rGPVOlxZBZCpA1wTYPbalizRT7f8X4rs2t290,31
18
18
  sunholo/archive/archive.py,sha256=C-UhG5x-XtZ8VheQp92IYJqgD0V3NFQjniqlit94t18,1197
19
19
  sunholo/auth/__init__.py,sha256=4owDjSaWYkbTlPK47UHTOC0gCWbZsqn4ZIEw5NWZTlg,28
@@ -32,7 +32,7 @@ sunholo/chunker/pdfs.py,sha256=daCZ1xjn1YvxlifIyxskWNpLJLe-Q9D_Jq12MWx3tZo,2473
32
32
  sunholo/chunker/publish.py,sha256=GNXV6IPdKM2GZUcjGXIERu49D0ITYtizsLIktKVtMjM,2768
33
33
  sunholo/chunker/splitter.py,sha256=FLkDhkePkg_zGQpFBK13Cznw575D-Rf9pcaCpc1HUxY,6726
34
34
  sunholo/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
- sunholo/cli/chat_vac.py,sha256=uksCsOrkEvGXIpG_TTy8rUE3qLdxfUQaxR9MpyZQWFs,17872
35
+ sunholo/cli/chat_vac.py,sha256=AK1lytiXctNIYOw2L_OmxUKG9q2wg5eddZ9Ei-TKbF4,18622
36
36
  sunholo/cli/cli.py,sha256=8e00HBN6eYIUJ8cnvKteBJNn7aZPRMk4b82jwcGg9D4,3741
37
37
  sunholo/cli/cli_init.py,sha256=JMZ9AX2cPDZ-_mv3adiv2ToFVNyRPtjk9Biszl1kiR0,2358
38
38
  sunholo/cli/configs.py,sha256=QUM9DvKOdZmEQRM5uI3Nh887T0YDiSMr7O240zTLqws,4546
@@ -104,9 +104,9 @@ sunholo/vertex/__init__.py,sha256=JvHcGFuv6R_nAhY2AdoqqhMpJ5ugeWPZ_svGhWrObBk,13
104
104
  sunholo/vertex/init.py,sha256=JDMUaBRdednzbKF-5p33qqLit2LMsvgvWW-NRz0AqO0,1801
105
105
  sunholo/vertex/memory_tools.py,sha256=8F1iTWnqEK9mX4W5RzCVKIjydIcNp6OFxjn_dtQ3GXo,5379
106
106
  sunholo/vertex/safety.py,sha256=3meAX0HyGZYrH7rXPUAHxtI_3w_zoy_RX7Shtkoa660,1275
107
- sunholo-0.66.18.dist-info/LICENSE.txt,sha256=SdE3QjnD3GEmqqg9EX3TM9f7WmtOzqS1KJve8rhbYmU,11345
108
- sunholo-0.66.18.dist-info/METADATA,sha256=gBAjMviSvrGT2nk1kCGL86_otPXj8SbSAoFS0_pSJjY,6098
109
- sunholo-0.66.18.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
110
- sunholo-0.66.18.dist-info/entry_points.txt,sha256=bZuN5AIHingMPt4Ro1b_T-FnQvZ3teBes-3OyO0asl4,49
111
- sunholo-0.66.18.dist-info/top_level.txt,sha256=wt5tadn5--5JrZsjJz2LceoUvcrIvxjHJe-RxuudxAk,8
112
- sunholo-0.66.18.dist-info/RECORD,,
107
+ sunholo-0.66.21.dist-info/LICENSE.txt,sha256=SdE3QjnD3GEmqqg9EX3TM9f7WmtOzqS1KJve8rhbYmU,11345
108
+ sunholo-0.66.21.dist-info/METADATA,sha256=g0fzhIzo4-Re8S14chGFaANtaOSJK-X4-NRr2F7acQQ,6098
109
+ sunholo-0.66.21.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
110
+ sunholo-0.66.21.dist-info/entry_points.txt,sha256=bZuN5AIHingMPt4Ro1b_T-FnQvZ3teBes-3OyO0asl4,49
111
+ sunholo-0.66.21.dist-info/top_level.txt,sha256=wt5tadn5--5JrZsjJz2LceoUvcrIvxjHJe-RxuudxAk,8
112
+ sunholo-0.66.21.dist-info/RECORD,,