sunholo 0.55.13__tar.gz → 0.55.15__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.55.13/sunholo.egg-info → sunholo-0.55.15}/PKG-INFO +2 -2
- {sunholo-0.55.13 → sunholo-0.55.15}/setup.py +1 -1
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/agents/chat_history.py +1 -1
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/agents/flask/qna_routes.py +25 -22
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/streaming/content_buffer.py +1 -0
- {sunholo-0.55.13 → sunholo-0.55.15/sunholo.egg-info}/PKG-INFO +2 -2
- {sunholo-0.55.13 → sunholo-0.55.15}/LICENSE.txt +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/MANIFEST.in +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/README.md +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/setup.cfg +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/agents/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/agents/dispatch_to_qa.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/agents/fastapi/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/agents/fastapi/base.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/agents/fastapi/qna_routes.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/agents/flask/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/agents/flask/base.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/agents/langserve.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/agents/pubsub.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/agents/route.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/agents/special_commands.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/agents/test_chat_history.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/archive/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/archive/archive.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/auth/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/auth/run.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/bots/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/bots/discord.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/bots/webapp.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/chunker/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/chunker/data_to_embed_pubsub.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/chunker/doc_handling.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/chunker/images.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/chunker/loaders.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/chunker/message_data.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/chunker/pdfs.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/chunker/publish.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/chunker/splitter.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/components/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/components/llm.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/components/prompt.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/components/retriever.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/components/vectorstore.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/database/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/database/alloydb.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/database/database.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/database/lancedb.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/database/sql/sb/create_function.sql +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/database/sql/sb/create_function_time.sql +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/database/sql/sb/create_table.sql +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/database/sql/sb/return_sources.sql +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/database/sql/sb/setup.sql +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/database/static_dbs.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/database/uuid.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/embedder/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/embedder/embed_chunk.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/gcs/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/gcs/add_file.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/gcs/download_url.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/gcs/metadata.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/langfuse/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/langfuse/callback.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/langfuse/prompts.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/llamaindex/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/llamaindex/generate.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/llamaindex/import_files.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/logging.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/lookup/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/lookup/model_lookup.yaml +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/patches/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/patches/langchain/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/patches/langchain/lancedb.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/patches/langchain/vertexai.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/pubsub/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/pubsub/process_pubsub.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/pubsub/pubsub_manager.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/qna/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/qna/parsers.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/qna/retry.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/streaming/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/streaming/langserve.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/streaming/streaming.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/summarise/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/summarise/summarise.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/utils/__init__.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/utils/config.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/utils/gcp.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo/utils/parsers.py +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo.egg-info/SOURCES.txt +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo.egg-info/dependency_links.txt +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo.egg-info/requires.txt +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/sunholo.egg-info/top_level.txt +0 -0
- {sunholo-0.55.13 → sunholo-0.55.15}/test/test_dispatch_to_qa.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sunholo
|
|
3
|
-
Version: 0.55.
|
|
3
|
+
Version: 0.55.15
|
|
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.55.
|
|
6
|
+
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.55.15.tar.gz
|
|
7
7
|
Author: Holosun ApS
|
|
8
8
|
Author-email: multivac@sunholo.com
|
|
9
9
|
License: Apache License, Version 2.0
|
|
@@ -52,15 +52,17 @@ def register_qna_routes(app, stream_interpreter, vac_interpreter):
|
|
|
52
52
|
return jsonify(command_response)
|
|
53
53
|
|
|
54
54
|
log.info(f'Streaming data with: {all_input}')
|
|
55
|
+
if span:
|
|
56
|
+
generation = span.generation(
|
|
57
|
+
name="start_streaming_chat",
|
|
58
|
+
metadata=vac_config,
|
|
59
|
+
input = all_input,
|
|
60
|
+
completion_start_time=datetime.datetime.now(),
|
|
61
|
+
model=vac_config.get("model") or vac_config.get("llm")
|
|
62
|
+
)
|
|
63
|
+
|
|
55
64
|
def generate_response_content():
|
|
56
|
-
|
|
57
|
-
generation = span.generation(
|
|
58
|
-
name="start_streaming_chat",
|
|
59
|
-
metadata=vac_config,
|
|
60
|
-
input = all_input,
|
|
61
|
-
completion_start_time=datetime.datetime.now(),
|
|
62
|
-
model=vac_config.get("model") or vac_config.get("llm")
|
|
63
|
-
)
|
|
65
|
+
|
|
64
66
|
chunks = ""
|
|
65
67
|
for chunk in start_streaming_chat(question=all_input["user_input"],
|
|
66
68
|
vector_name=vector_name,
|
|
@@ -69,7 +71,7 @@ def register_qna_routes(app, stream_interpreter, vac_interpreter):
|
|
|
69
71
|
wait_time=all_input["stream_wait_time"],
|
|
70
72
|
timeout=all_input["stream_timeout"],
|
|
71
73
|
#kwargs
|
|
72
|
-
|
|
74
|
+
**all_input["kwargs"]
|
|
73
75
|
):
|
|
74
76
|
if isinstance(chunk, dict) and 'answer' in chunk:
|
|
75
77
|
# When we encounter the dictionary, we yield it as a JSON string
|
|
@@ -92,14 +94,15 @@ def register_qna_routes(app, stream_interpreter, vac_interpreter):
|
|
|
92
94
|
|
|
93
95
|
yield chunk
|
|
94
96
|
|
|
95
|
-
if trace:
|
|
96
|
-
generation.end(output=chunks)
|
|
97
|
-
span.end(output=chunks)
|
|
98
|
-
trace.update(output=chunks)
|
|
99
|
-
|
|
100
97
|
# Here, the generator function will handle streaming the content to the client.
|
|
101
98
|
response = Response(generate_response_content(), content_type='text/plain; charset=utf-8')
|
|
102
99
|
response.headers['Transfer-Encoding'] = 'chunked'
|
|
100
|
+
|
|
101
|
+
log.debug(f"streaming response: {response}")
|
|
102
|
+
if trace:
|
|
103
|
+
generation.end(output=response)
|
|
104
|
+
span.end(output=response)
|
|
105
|
+
trace.update(output=response)
|
|
103
106
|
|
|
104
107
|
if langfuse:
|
|
105
108
|
langfuse.flush()
|
|
@@ -131,7 +134,7 @@ def register_qna_routes(app, stream_interpreter, vac_interpreter):
|
|
|
131
134
|
question=all_input["user_input"],
|
|
132
135
|
vector_name=vector_name,
|
|
133
136
|
chat_history=all_input["chat_history"],
|
|
134
|
-
|
|
137
|
+
**all_input["kwargs"]
|
|
135
138
|
)
|
|
136
139
|
if generation:
|
|
137
140
|
generation.end(output=bot_output)
|
|
@@ -198,18 +201,18 @@ def prep_vac(request, vector_name):
|
|
|
198
201
|
if trace:
|
|
199
202
|
trace.update(input=data, metadata=vac_config)
|
|
200
203
|
|
|
201
|
-
user_input = data
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
204
|
+
user_input = data.pop('user_input').strip()
|
|
205
|
+
stream_wait_time = data.pop('stream_wait_time', 7)
|
|
206
|
+
stream_timeout = data.pop('stream_timeout', 120)
|
|
207
|
+
chat_history = data.pop('chat_history', None)
|
|
208
|
+
paired_messages = extract_chat_history(chat_history)
|
|
205
209
|
|
|
206
|
-
paired_messages = extract_chat_history(data.get('chat_history', None))
|
|
207
210
|
all_input = {'user_input': user_input,
|
|
208
211
|
'vector_name': vector_name,
|
|
209
212
|
'chat_history': paired_messages,
|
|
210
|
-
'message_author': message_author,
|
|
211
213
|
'stream_wait_time': stream_wait_time,
|
|
212
|
-
'stream_timeout':stream_timeout
|
|
214
|
+
'stream_timeout':stream_timeout,
|
|
215
|
+
'kwargs': data}
|
|
213
216
|
|
|
214
217
|
if trace:
|
|
215
218
|
span = trace.span(
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sunholo
|
|
3
|
-
Version: 0.55.
|
|
3
|
+
Version: 0.55.15
|
|
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.55.
|
|
6
|
+
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.55.15.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
|