sunholo 0.62.11__tar.gz → 0.62.13__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.62.11 → sunholo-0.62.13}/PKG-INFO +2 -2
- {sunholo-0.62.11 → sunholo-0.62.13}/setup.py +1 -1
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/agents/dispatch_to_qa.py +1 -1
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/agents/flask/qna_routes.py +2 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo.egg-info/PKG-INFO +2 -2
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo.egg-info/SOURCES.txt +2 -1
- sunholo-0.62.13/tests/test_config.py +34 -0
- sunholo-0.62.13/tests/test_dispatch_to_qa.py +18 -0
- sunholo-0.62.11/tests/test_config.py +0 -11
- {sunholo-0.62.11 → sunholo-0.62.13}/LICENSE.txt +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/MANIFEST.in +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/README.md +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/setup.cfg +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/agents/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/agents/chat_history.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/agents/fastapi/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/agents/fastapi/base.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/agents/fastapi/qna_routes.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/agents/flask/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/agents/flask/base.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/agents/langserve.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/agents/pubsub.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/agents/route.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/agents/special_commands.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/archive/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/archive/archive.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/auth/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/auth/run.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/bots/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/bots/discord.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/bots/github_webhook.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/bots/webapp.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/chunker/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/chunker/data_to_embed_pubsub.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/chunker/doc_handling.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/chunker/images.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/chunker/loaders.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/chunker/message_data.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/chunker/pdfs.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/chunker/publish.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/chunker/splitter.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/cli/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/cli/chat_vac.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/cli/cli.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/cli/cli_init.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/cli/configs.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/cli/deploy.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/cli/embedder.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/cli/merge_texts.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/cli/run_proxy.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/cli/sun_rich.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/components/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/components/llm.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/components/retriever.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/components/vectorstore.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/database/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/database/alloydb.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/database/database.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/database/lancedb.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/database/sql/sb/create_function.sql +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/database/sql/sb/create_function_time.sql +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/database/sql/sb/create_table.sql +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/database/sql/sb/return_sources.sql +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/database/sql/sb/setup.sql +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/database/static_dbs.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/database/uuid.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/embedder/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/embedder/embed_chunk.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/gcs/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/gcs/add_file.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/gcs/download_url.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/gcs/metadata.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/langfuse/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/langfuse/callback.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/langfuse/prompts.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/llamaindex/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/llamaindex/generate.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/llamaindex/get_files.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/llamaindex/import_files.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/logging.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/lookup/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/lookup/model_lookup.yaml +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/patches/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/patches/langchain/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/patches/langchain/lancedb.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/patches/langchain/vertexai.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/pubsub/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/pubsub/process_pubsub.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/pubsub/pubsub_manager.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/qna/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/qna/parsers.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/qna/retry.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/streaming/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/streaming/content_buffer.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/streaming/langserve.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/streaming/stream_lookup.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/streaming/streaming.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/summarise/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/summarise/summarise.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/utils/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/utils/big_context.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/utils/config.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/utils/config_schema.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/utils/gcp.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/utils/gcp_project.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/utils/parsers.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/utils/timedelta.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/utils/user_ids.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/vertex/__init__.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/vertex/init.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo/vertex/memory_tools.py +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo.egg-info/dependency_links.txt +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo.egg-info/entry_points.txt +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo.egg-info/requires.txt +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/sunholo.egg-info/top_level.txt +0 -0
- {sunholo-0.62.11 → sunholo-0.62.13}/tests/test_chat_history.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sunholo
|
|
3
|
-
Version: 0.62.
|
|
3
|
+
Version: 0.62.13
|
|
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.62.
|
|
6
|
+
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.62.13.tar.gz
|
|
7
7
|
Author: Holosun ApS
|
|
8
8
|
Author-email: multivac@sunholo.com
|
|
9
9
|
License: Apache License, Version 2.0
|
|
@@ -74,7 +74,7 @@ def prep_request_payload(user_input, chat_history, vector_name, stream, **kwargs
|
|
|
74
74
|
# Update qna_data with optional values from kwargs
|
|
75
75
|
qna_data.update(kwargs)
|
|
76
76
|
|
|
77
|
-
if
|
|
77
|
+
if 'vector_name' not in qna_data:
|
|
78
78
|
qna_data['vector_name'] = vector_name
|
|
79
79
|
|
|
80
80
|
return qna_endpoint, qna_data
|
|
@@ -206,6 +206,8 @@ def prep_vac(request, vector_name):
|
|
|
206
206
|
stream_wait_time = data.pop('stream_wait_time', 7)
|
|
207
207
|
stream_timeout = data.pop('stream_timeout', 120)
|
|
208
208
|
chat_history = data.pop('chat_history', None)
|
|
209
|
+
vector_name = data.pop('vector_name', vector_name)
|
|
210
|
+
|
|
209
211
|
paired_messages = extract_chat_history(chat_history)
|
|
210
212
|
|
|
211
213
|
all_input = {'user_input': user_input,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sunholo
|
|
3
|
-
Version: 0.62.
|
|
3
|
+
Version: 0.62.13
|
|
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.62.
|
|
6
|
+
Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.62.13.tar.gz
|
|
7
7
|
Author: Holosun ApS
|
|
8
8
|
Author-email: multivac@sunholo.com
|
|
9
9
|
License: Apache License, Version 2.0
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
from unittest.mock import patch, mock_open
|
|
3
|
+
from sunholo.utils import config
|
|
4
|
+
|
|
5
|
+
def test_load_config():
|
|
6
|
+
expected_config = {"key": "value"}
|
|
7
|
+
with pytest.raises(FileNotFoundError):
|
|
8
|
+
config.load_config("non_existent_file")
|
|
9
|
+
with patch("builtins.open", mock_open(read_data='{"key": "value"}'), create=True):
|
|
10
|
+
result, _ = config.load_config("mock_file.json")
|
|
11
|
+
assert result == expected_config
|
|
12
|
+
|
|
13
|
+
# Test cases for load_config_key function
|
|
14
|
+
@patch("sunholo.utils.config.load_all_configs")
|
|
15
|
+
def test_load_config_key(mock_load_all_configs):
|
|
16
|
+
mock_load_all_configs.return_value = {
|
|
17
|
+
"vacConfig": {
|
|
18
|
+
"vac": {
|
|
19
|
+
"test_vector": {
|
|
20
|
+
"key1": "value1",
|
|
21
|
+
"key2": "value2"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
# Test existing key
|
|
27
|
+
assert config.load_config_key("key1", "test_vector", "vacConfig") == "value1"
|
|
28
|
+
# Test non-existing key
|
|
29
|
+
result = config.load_config_key("non_existing_key", "test_vector", "vacConfig")
|
|
30
|
+
assert result is None
|
|
31
|
+
|
|
32
|
+
# Test invalid configuration
|
|
33
|
+
with pytest.raises(KeyError):
|
|
34
|
+
config.load_config_key("key1", "test_vector", "invalidConfig")
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
from unittest.mock import patch
|
|
3
|
+
from sunholo.agents.dispatch_to_qa import prep_request_payload
|
|
4
|
+
|
|
5
|
+
@pytest.mark.parametrize("user_input, chat_history, vector_name, stream, expected_endpoint, expected_payload", [
|
|
6
|
+
("What is AI?", [], "my_vector", False, "http://example.com/invoke", {"user_input": "What is AI?", "chat_history": [], "vector_name": "my_vector"}),
|
|
7
|
+
("Tell me about ML", ["Previous chat message"], "another_vector", True, "http://example.com/stream", {"user_input": "Tell me about ML", "chat_history": ["Previous chat message"], "vector_name": "another_vector"})
|
|
8
|
+
])
|
|
9
|
+
@patch('sunholo.agents.dispatch_to_qa.load_config_key')
|
|
10
|
+
@patch('sunholo.agents.dispatch_to_qa.route_endpoint')
|
|
11
|
+
def test_prep_request_payload(mock_route_endpoint, mock_load_config_key, user_input, chat_history, vector_name, stream, expected_endpoint, expected_payload):
|
|
12
|
+
mock_route_endpoint.return_value = {"invoke": "http://example.com/invoke", "stream": "http://example.com/stream"}
|
|
13
|
+
mock_load_config_key.side_effect = lambda key, vector_name=None, kind=None: "my_vector" if key == "vector_name" else None
|
|
14
|
+
|
|
15
|
+
endpoint, payload = prep_request_payload(user_input, chat_history, vector_name, stream)
|
|
16
|
+
|
|
17
|
+
assert endpoint == expected_endpoint
|
|
18
|
+
assert payload == expected_payload
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import pytest
|
|
2
|
-
from unittest.mock import patch, mock_open
|
|
3
|
-
from sunholo.utils import config
|
|
4
|
-
|
|
5
|
-
def test_load_config():
|
|
6
|
-
expected_config = {"key": "value"}
|
|
7
|
-
with pytest.raises(FileNotFoundError):
|
|
8
|
-
config.load_config("non_existent_file")
|
|
9
|
-
with patch("builtins.open", mock_open(read_data='{"key": "value"}'), create=True):
|
|
10
|
-
result, _ = config.load_config("mock_file.json")
|
|
11
|
-
assert result == expected_config
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|