sunholo 0.89.9__tar.gz → 0.90.1__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.89.9 → sunholo-0.90.1}/PKG-INFO +2 -2
- {sunholo-0.89.9 → sunholo-0.90.1}/setup.py +1 -1
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/flask/vac_routes.py +16 -11
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/langfuse/evals.py +6 -2
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/streaming/streaming.py +1 -1
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/parsers.py +2 -2
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo.egg-info/PKG-INFO +2 -2
- {sunholo-0.89.9 → sunholo-0.90.1}/LICENSE.txt +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/MANIFEST.in +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/README.md +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/setup.cfg +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/chat_history.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/dispatch_to_qa.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/fastapi/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/fastapi/base.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/fastapi/qna_routes.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/flask/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/flask/base.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/flask/qna_routes.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/langserve.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/pubsub.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/route.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/special_commands.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/agents/swagger.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/archive/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/archive/archive.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/auth/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/auth/gcloud.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/auth/refresh.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/auth/run.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/azure/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/azure/auth.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/azure/blobs.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/azure/event_grid.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/bots/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/bots/discord.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/bots/github_webhook.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/bots/webapp.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/azure.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/doc_handling.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/encode_metadata.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/images.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/loaders.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/message_data.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/pdfs.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/process_chunker_data.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/publish.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/pubsub.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/chunker/splitter.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/chat_vac.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/cli.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/cli_init.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/configs.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/deploy.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/embedder.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/merge_texts.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/run_proxy.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/sun_rich.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/swagger.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/cli/vertex.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/components/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/components/llm.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/components/retriever.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/components/vectorstore.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/custom_logging.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/alloydb.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/alloydb_client.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/database.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/lancedb.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/sql/sb/create_function.sql +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/sql/sb/create_function_time.sql +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/sql/sb/create_table.sql +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/sql/sb/return_sources.sql +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/sql/sb/setup.sql +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/static_dbs.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/database/uuid.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/discovery_engine/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/discovery_engine/chunker_handler.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/discovery_engine/create_new.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/discovery_engine/discovery_engine_client.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/discovery_engine/get_ai_search_chunks.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/embedder/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/embedder/embed_chunk.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/excel/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/excel/plugin.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/gcs/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/gcs/add_file.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/gcs/download_folder.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/gcs/download_url.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/gcs/metadata.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/genai/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/genai/init.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/genai/process_funcs_cls.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/genai/safety.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/invoke/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/invoke/async_class.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/invoke/direct_vac_func.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/invoke/invoke_vac_utils.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/langfuse/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/langfuse/callback.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/langfuse/prompts.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/llamaindex/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/llamaindex/get_files.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/llamaindex/import_files.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/llamaindex/llamaindex_class.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/llamaindex/user_history.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/lookup/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/lookup/model_lookup.yaml +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/patches/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/patches/langchain/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/patches/langchain/lancedb.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/patches/langchain/vertexai.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/pubsub/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/pubsub/process_pubsub.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/pubsub/pubsub_manager.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/qna/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/qna/parsers.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/qna/retry.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/streaming/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/streaming/content_buffer.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/streaming/langserve.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/streaming/stream_lookup.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/summarise/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/summarise/summarise.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/terraform/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/terraform/tfvars_editor.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/tools/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/tools/web_browser.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/api_key.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/big_context.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/config.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/config_class.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/config_schema.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/gcp.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/gcp_project.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/timedelta.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/user_ids.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/utils/version.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/vertex/__init__.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/vertex/extensions_call.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/vertex/extensions_class.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/vertex/genai_functions.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/vertex/init.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/vertex/memory_tools.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/vertex/safety.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo/vertex/type_dict_to_json.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo.egg-info/SOURCES.txt +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo.egg-info/dependency_links.txt +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo.egg-info/entry_points.txt +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo.egg-info/requires.txt +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/sunholo.egg-info/top_level.txt +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/tests/test_chat_history.py +0 -0
- {sunholo-0.89.9 → sunholo-0.90.1}/tests/test_config.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sunholo
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.90.1
|
|
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.
|
|
6
|
+
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.90.1.tar.gz
|
|
7
7
|
Author: Holosun ApS
|
|
8
8
|
Author-email: multivac@sunholo.com
|
|
9
9
|
License: Apache License, Version 2.0
|
|
@@ -187,19 +187,20 @@ if __name__ == "__main__":
|
|
|
187
187
|
def generate_response_content():
|
|
188
188
|
|
|
189
189
|
for chunk in start_streaming_chat(question=all_input["user_input"],
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
190
|
+
vector_name=vector_name,
|
|
191
|
+
qna_func=observed_stream_interpreter,
|
|
192
|
+
chat_history=all_input["chat_history"],
|
|
193
|
+
wait_time=all_input["stream_wait_time"],
|
|
194
|
+
timeout=all_input["stream_timeout"],
|
|
195
|
+
trace_id=trace.id,
|
|
196
|
+
#kwargs
|
|
197
|
+
**all_input["kwargs"]
|
|
198
|
+
):
|
|
198
199
|
if isinstance(chunk, dict) and 'answer' in chunk:
|
|
199
200
|
# When we encounter the dictionary, we yield it as a JSON string
|
|
200
201
|
# and stop the generator.
|
|
201
202
|
if trace:
|
|
202
|
-
chunk["
|
|
203
|
+
chunk["trace_id"] = trace.id
|
|
203
204
|
chunk["trace_url"] = trace.get_trace_url()
|
|
204
205
|
archive_qa(chunk, vector_name)
|
|
205
206
|
if trace:
|
|
@@ -281,6 +282,7 @@ if __name__ == "__main__":
|
|
|
281
282
|
question=all_input["user_input"],
|
|
282
283
|
vector_name=vector_name,
|
|
283
284
|
chat_history=all_input["chat_history"],
|
|
285
|
+
trace_id=trace.id,
|
|
284
286
|
**all_input["kwargs"]
|
|
285
287
|
)
|
|
286
288
|
if span:
|
|
@@ -288,7 +290,7 @@ if __name__ == "__main__":
|
|
|
288
290
|
# {"answer": "The answer", "source_documents": [{"page_content": "The page content", "metadata": "The metadata"}]}
|
|
289
291
|
bot_output = parse_output(bot_output)
|
|
290
292
|
if trace:
|
|
291
|
-
bot_output["
|
|
293
|
+
bot_output["trace_id"] = trace.id
|
|
292
294
|
bot_output["trace_url"] = trace.get_trace_url()
|
|
293
295
|
archive_qa(bot_output, vector_name)
|
|
294
296
|
log.info(f'==LLM Q:{all_input["user_input"]} - A:{bot_output}')
|
|
@@ -363,6 +365,8 @@ if __name__ == "__main__":
|
|
|
363
365
|
image_uri = None
|
|
364
366
|
mime_type = None
|
|
365
367
|
|
|
368
|
+
|
|
369
|
+
|
|
366
370
|
for msg in reversed(messages):
|
|
367
371
|
if msg['role'] == 'user':
|
|
368
372
|
if isinstance(msg['content'], list):
|
|
@@ -409,6 +413,7 @@ if __name__ == "__main__":
|
|
|
409
413
|
chat_history=all_input["chat_history"],
|
|
410
414
|
wait_time=all_input.get("stream_wait_time", 1),
|
|
411
415
|
timeout=all_input.get("stream_timeout", 60),
|
|
416
|
+
trace_id=all_input.get("trace_id"),
|
|
412
417
|
**all_input["kwargs"]
|
|
413
418
|
):
|
|
414
419
|
if isinstance(chunk, dict) and 'answer' in chunk:
|
|
@@ -522,7 +527,7 @@ if __name__ == "__main__":
|
|
|
522
527
|
|
|
523
528
|
log.info(f"vac/{vector_name} got data: {data}")
|
|
524
529
|
|
|
525
|
-
trace_id = data.
|
|
530
|
+
trace_id = data.pop('trace_id')
|
|
526
531
|
trace = self.create_langfuse_trace(request, vector_name, trace_id)
|
|
527
532
|
span = None
|
|
528
533
|
|
|
@@ -68,13 +68,17 @@ def do_evals(trace_id, eval_funcs: list=[eval_length], **kwargs) -> dict:
|
|
|
68
68
|
# Run the evaluation functions
|
|
69
69
|
eval_results = []
|
|
70
70
|
for eval_func in eval_funcs:
|
|
71
|
-
|
|
71
|
+
try:
|
|
72
|
+
eval_result = eval_func(trace) # Assuming eval_func returns a dict with 'score' and 'reason'
|
|
73
|
+
except Exception as e:
|
|
74
|
+
eval_result = {"score": 0, "reason":f"ERROR: {str(e)}"}
|
|
72
75
|
eval_results.append(eval_result)
|
|
73
76
|
|
|
74
77
|
eval_name = eval_func.__name__
|
|
75
78
|
|
|
76
79
|
if 'score' and 'reason' not in eval_result:
|
|
77
|
-
|
|
80
|
+
log.error(f"Trace {trace.name} using {eval_name=} did not return a dict with 'score' and 'reason': {eval_result=}")
|
|
81
|
+
eval_result = {"score": 0, "reason": f"malformed eval_result: {eval_result}"}
|
|
78
82
|
|
|
79
83
|
log.info(f"TraceId {trace.id} with name {trace.name} had {eval_name=} with score {eval_result=}")
|
|
80
84
|
|
|
@@ -22,7 +22,7 @@ from .content_buffer import ContentBuffer, BufferStreamingStdOutCallbackHandler
|
|
|
22
22
|
from ..qna.parsers import parse_output
|
|
23
23
|
|
|
24
24
|
from ..custom_logging import log
|
|
25
|
-
from ..utils import
|
|
25
|
+
from ..utils import ConfigManager
|
|
26
26
|
from ..utils.parsers import check_kwargs_support
|
|
27
27
|
|
|
28
28
|
from .langserve import parse_langserve_token, parse_langserve_token_async
|
|
@@ -217,10 +217,10 @@ def escape_braces(text):
|
|
|
217
217
|
"""
|
|
218
218
|
# First, handle cases where there might be a mix of braces
|
|
219
219
|
# Replace all `{` that are not followed by another `{` with `{{`
|
|
220
|
-
text = re.sub(r'(?<!{){(?!{)', '
|
|
220
|
+
text = re.sub(r'(?<!{){(?!{)', '<<', text)
|
|
221
221
|
|
|
222
222
|
# Replace all `}` that are not preceded by another `}` with `}}`
|
|
223
|
-
text = re.sub(r'(?<!})}(?!})', '
|
|
223
|
+
text = re.sub(r'(?<!})}(?!})', '>>', text)
|
|
224
224
|
|
|
225
225
|
# After escaping single braces, return the modified text
|
|
226
226
|
return text
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sunholo
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.90.1
|
|
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.
|
|
6
|
+
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.90.1.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
|
|
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
|