sunholo 0.89.1__tar.gz → 0.89.2__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.1 → sunholo-0.89.2}/PKG-INFO +2 -2
- {sunholo-0.89.1 → sunholo-0.89.2}/setup.py +1 -1
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/agents/dispatch_to_qa.py +18 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/agents/flask/vac_routes.py +11 -8
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/langfuse/evals.py +14 -3
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo.egg-info/PKG-INFO +2 -2
- {sunholo-0.89.1 → sunholo-0.89.2}/LICENSE.txt +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/MANIFEST.in +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/README.md +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/setup.cfg +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/agents/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/agents/chat_history.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/agents/fastapi/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/agents/fastapi/base.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/agents/fastapi/qna_routes.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/agents/flask/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/agents/flask/base.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/agents/flask/qna_routes.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/agents/langserve.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/agents/pubsub.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/agents/route.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/agents/special_commands.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/agents/swagger.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/archive/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/archive/archive.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/auth/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/auth/gcloud.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/auth/refresh.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/auth/run.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/azure/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/azure/auth.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/azure/blobs.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/azure/event_grid.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/bots/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/bots/discord.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/bots/github_webhook.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/bots/webapp.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/chunker/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/chunker/azure.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/chunker/doc_handling.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/chunker/encode_metadata.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/chunker/images.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/chunker/loaders.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/chunker/message_data.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/chunker/pdfs.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/chunker/process_chunker_data.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/chunker/publish.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/chunker/pubsub.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/chunker/splitter.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/cli/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/cli/chat_vac.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/cli/cli.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/cli/cli_init.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/cli/configs.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/cli/deploy.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/cli/embedder.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/cli/merge_texts.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/cli/run_proxy.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/cli/sun_rich.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/cli/swagger.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/cli/vertex.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/components/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/components/llm.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/components/retriever.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/components/vectorstore.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/custom_logging.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/database/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/database/alloydb.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/database/alloydb_client.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/database/database.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/database/lancedb.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/database/sql/sb/create_function.sql +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/database/sql/sb/create_function_time.sql +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/database/sql/sb/create_table.sql +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/database/sql/sb/return_sources.sql +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/database/sql/sb/setup.sql +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/database/static_dbs.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/database/uuid.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/discovery_engine/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/discovery_engine/chunker_handler.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/discovery_engine/create_new.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/discovery_engine/discovery_engine_client.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/discovery_engine/get_ai_search_chunks.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/embedder/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/embedder/embed_chunk.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/excel/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/excel/plugin.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/gcs/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/gcs/add_file.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/gcs/download_folder.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/gcs/download_url.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/gcs/metadata.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/genai/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/genai/init.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/genai/process_funcs_cls.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/genai/safety.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/invoke/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/invoke/async_class.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/invoke/direct_vac_func.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/invoke/invoke_vac_utils.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/langfuse/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/langfuse/callback.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/langfuse/prompts.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/llamaindex/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/llamaindex/get_files.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/llamaindex/import_files.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/llamaindex/llamaindex_class.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/llamaindex/user_history.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/lookup/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/lookup/model_lookup.yaml +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/patches/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/patches/langchain/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/patches/langchain/lancedb.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/patches/langchain/vertexai.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/pubsub/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/pubsub/process_pubsub.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/pubsub/pubsub_manager.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/qna/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/qna/parsers.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/qna/retry.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/streaming/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/streaming/content_buffer.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/streaming/langserve.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/streaming/stream_lookup.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/streaming/streaming.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/summarise/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/summarise/summarise.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/terraform/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/terraform/tfvars_editor.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/tools/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/tools/web_browser.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/utils/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/utils/api_key.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/utils/big_context.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/utils/config.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/utils/config_class.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/utils/config_schema.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/utils/gcp.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/utils/gcp_project.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/utils/parsers.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/utils/timedelta.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/utils/user_ids.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/utils/version.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/vertex/__init__.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/vertex/extensions_call.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/vertex/extensions_class.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/vertex/genai_functions.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/vertex/init.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/vertex/memory_tools.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/vertex/safety.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo/vertex/type_dict_to_json.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo.egg-info/SOURCES.txt +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo.egg-info/dependency_links.txt +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo.egg-info/entry_points.txt +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo.egg-info/requires.txt +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/sunholo.egg-info/top_level.txt +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/tests/test_chat_history.py +0 -0
- {sunholo-0.89.1 → sunholo-0.89.2}/tests/test_config.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sunholo
|
|
3
|
-
Version: 0.89.
|
|
3
|
+
Version: 0.89.2
|
|
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.89.
|
|
6
|
+
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.89.2.tar.gz
|
|
7
7
|
Author: Holosun ApS
|
|
8
8
|
Author-email: multivac@sunholo.com
|
|
9
9
|
License: Apache License, Version 2.0
|
|
@@ -20,6 +20,12 @@ from .langserve import prepare_request_data
|
|
|
20
20
|
|
|
21
21
|
from .route import route_endpoint
|
|
22
22
|
|
|
23
|
+
try:
|
|
24
|
+
from langfuse import Langfuse
|
|
25
|
+
langfuse = Langfuse()
|
|
26
|
+
except ImportError:
|
|
27
|
+
langfuse = None
|
|
28
|
+
|
|
23
29
|
def prep_request_payload(user_input, chat_history, vector_name, stream, **kwargs):
|
|
24
30
|
"""
|
|
25
31
|
Prepares the request payload for sending a query to the QA system.
|
|
@@ -79,9 +85,21 @@ def prep_request_payload(user_input, chat_history, vector_name, stream, **kwargs
|
|
|
79
85
|
|
|
80
86
|
if 'vector_name' not in qna_data:
|
|
81
87
|
qna_data['vector_name'] = vector_name
|
|
88
|
+
|
|
89
|
+
qna_data['trace_id'] = add_langfuse_trace(qna_endpoint)
|
|
82
90
|
|
|
83
91
|
return qna_endpoint, qna_data
|
|
84
92
|
|
|
93
|
+
def add_langfuse_trace(qna_endpoint):
|
|
94
|
+
if not langfuse:
|
|
95
|
+
return None
|
|
96
|
+
|
|
97
|
+
trace = langfuse.trace(name = f'auto/{qna_endpoint}')
|
|
98
|
+
|
|
99
|
+
log.info('Adding langfuse trace {trace.id}')
|
|
100
|
+
|
|
101
|
+
return trace.id
|
|
102
|
+
|
|
85
103
|
def send_to_qa(user_input, vector_name, chat_history, stream=False, **kwargs):
|
|
86
104
|
"""
|
|
87
105
|
Sends a query to the QA system synchronously.
|
|
@@ -161,7 +161,7 @@ if __name__ == "__main__":
|
|
|
161
161
|
|
|
162
162
|
|
|
163
163
|
def handle_stream_vac(self, vector_name):
|
|
164
|
-
observed_stream_interpreter =
|
|
164
|
+
observed_stream_interpreter = self.stream_interpreter
|
|
165
165
|
prep = self.prep_vac(request, vector_name)
|
|
166
166
|
log.info(f"Processing prep: {prep}")
|
|
167
167
|
trace = prep["trace"]
|
|
@@ -225,7 +225,7 @@ if __name__ == "__main__":
|
|
|
225
225
|
return response
|
|
226
226
|
|
|
227
227
|
def handle_process_vac(self, vector_name):
|
|
228
|
-
observed_vac_interpreter =
|
|
228
|
+
observed_vac_interpreter = self.vac_interpreter
|
|
229
229
|
prep = self.prep_vac(request, vector_name)
|
|
230
230
|
log.debug(f"Processing prep: {prep}")
|
|
231
231
|
trace = prep["trace"]
|
|
@@ -365,7 +365,7 @@ if __name__ == "__main__":
|
|
|
365
365
|
"kwargs": data
|
|
366
366
|
}
|
|
367
367
|
|
|
368
|
-
observed_stream_interpreter =
|
|
368
|
+
observed_stream_interpreter = self.stream_interpreter
|
|
369
369
|
|
|
370
370
|
response_id = str(uuid.uuid4())
|
|
371
371
|
|
|
@@ -416,7 +416,7 @@ if __name__ == "__main__":
|
|
|
416
416
|
return Response(generate_response_content(), content_type='text/plain; charset=utf-8')
|
|
417
417
|
|
|
418
418
|
try:
|
|
419
|
-
observed_vac_interpreter =
|
|
419
|
+
observed_vac_interpreter = self.vac_interpreter
|
|
420
420
|
bot_output = observed_vac_interpreter(
|
|
421
421
|
question=user_message,
|
|
422
422
|
vector_name=vector_name,
|
|
@@ -437,7 +437,7 @@ if __name__ == "__main__":
|
|
|
437
437
|
return self.make_openai_response(user_message, vector_name, f'ERROR: {str(err)}')
|
|
438
438
|
|
|
439
439
|
|
|
440
|
-
def create_langfuse_trace(self, request, vector_name):
|
|
440
|
+
def create_langfuse_trace(self, request, vector_name, trace_id):
|
|
441
441
|
try:
|
|
442
442
|
from langfuse import Langfuse
|
|
443
443
|
langfuse = Langfuse()
|
|
@@ -451,11 +451,12 @@ if __name__ == "__main__":
|
|
|
451
451
|
message_source = request.headers.get("X-Message-Source")
|
|
452
452
|
|
|
453
453
|
package_version = sunholo_version()
|
|
454
|
-
tags = [package_version]
|
|
454
|
+
tags = [package_version, "autogenerated"]
|
|
455
455
|
if message_source:
|
|
456
456
|
tags.append(message_source)
|
|
457
457
|
|
|
458
458
|
return langfuse.trace(
|
|
459
|
+
id=trace_id,
|
|
459
460
|
name = f"/vac/{vector_name}",
|
|
460
461
|
user_id = user_id,
|
|
461
462
|
session_id = session_id,
|
|
@@ -464,8 +465,6 @@ if __name__ == "__main__":
|
|
|
464
465
|
)
|
|
465
466
|
|
|
466
467
|
def prep_vac(self, request, vector_name):
|
|
467
|
-
trace = self.create_langfuse_trace(request, vector_name)
|
|
468
|
-
span = None
|
|
469
468
|
|
|
470
469
|
if request.content_type.startswith('application/json'):
|
|
471
470
|
data = request.get_json()
|
|
@@ -490,6 +489,10 @@ if __name__ == "__main__":
|
|
|
490
489
|
|
|
491
490
|
log.info(f"vac/{vector_name} got data: {data}")
|
|
492
491
|
|
|
492
|
+
trace_id = data.get('trace_id')
|
|
493
|
+
trace = self.create_langfuse_trace(request, vector_name, trace_id)
|
|
494
|
+
span = None
|
|
495
|
+
|
|
493
496
|
config, _ = load_config("config/llm_config.yaml")
|
|
494
497
|
vac_configs = config.get("vac")
|
|
495
498
|
if vac_configs:
|
|
@@ -29,15 +29,26 @@ def pubsub_to_evals(data: dict, eval_funcs: list=[eval_length]) -> dict:
|
|
|
29
29
|
|
|
30
30
|
if 'trace_id' not in message_data:
|
|
31
31
|
raise ValueError('No trace_id found in message data')
|
|
32
|
+
|
|
33
|
+
trace_id = message_data.pop('trace_id', None)
|
|
34
|
+
|
|
35
|
+
return do_evals(trace_id, eval_funcs, **message_data)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def direct_langfuse_evals(data, eval_funcs: list=[eval_length]):
|
|
39
|
+
if 'trace_id' not in data:
|
|
40
|
+
raise ValueError('No trace_id found in data')
|
|
32
41
|
|
|
42
|
+
return do_evals(data['trace_id'], eval_funcs, **data)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def do_evals(trace_id, eval_funcs: list=[eval_length], **kwargs) -> dict:
|
|
33
46
|
# Initialize Langfuse with environment variables
|
|
34
47
|
langfuse = Langfuse(
|
|
35
48
|
secret_key=os.environ["LANGFUSE_SECRET_KEY"],
|
|
36
49
|
public_key=os.environ["LANGFUSE_PUBLIC_KEY"],
|
|
37
50
|
host=os.environ["LANGFUSE_HOST"]
|
|
38
51
|
)
|
|
39
|
-
|
|
40
|
-
trace_id = message_data.pop('trace_id', None)
|
|
41
52
|
|
|
42
53
|
# Fetch the latest trace (or modify as needed to fetch a specific trace)
|
|
43
54
|
trace = langfuse.fetch_trace(id=trace_id)
|
|
@@ -64,7 +75,7 @@ def pubsub_to_evals(data: dict, eval_funcs: list=[eval_length]) -> dict:
|
|
|
64
75
|
name=eval_name, # Use the function name as the evaluation name
|
|
65
76
|
value=eval_result["score"],
|
|
66
77
|
comment=eval_result["reason"],
|
|
67
|
-
**
|
|
78
|
+
**kwargs
|
|
68
79
|
)
|
|
69
80
|
|
|
70
81
|
return {"trace_id": trace.id, "eval_results": eval_results}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sunholo
|
|
3
|
-
Version: 0.89.
|
|
3
|
+
Version: 0.89.2
|
|
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.89.
|
|
6
|
+
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.89.2.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
|
|
File without changes
|