vital-agent-container-sdk 0.1.1__tar.gz → 0.1.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.
- {vital_agent_container_sdk-0.1.1/vital_agent_container_sdk.egg-info → vital_agent_container_sdk-0.1.2}/PKG-INFO +3 -3
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/setup.py +3 -3
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/test/test_app.py +1 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container/agent_container_app.py +10 -4
- vital_agent_container_sdk-0.1.2/vital_agent_container/handler/aimp_message_handler_inf.py +14 -0
- vital_agent_container_sdk-0.1.2/vital_agent_container/handler/impl/aimp_echo_message_handler.py +23 -0
- vital_agent_container_sdk-0.1.2/vital_agent_container/processor/aimp_message_processor.py +18 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2/vital_agent_container_sdk.egg-info}/PKG-INFO +3 -3
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container_sdk.egg-info/requires.txt +2 -2
- vital_agent_container_sdk-0.1.1/vital_agent_container/handler/aimp_message_handler_inf.py +0 -5
- vital_agent_container_sdk-0.1.1/vital_agent_container/handler/impl/aimp_echo_message_handler.py +0 -7
- vital_agent_container_sdk-0.1.1/vital_agent_container/processor/aimp_message_processor.py +0 -9
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/LICENSE +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/README.md +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/setup.cfg +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container/__init__.py +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container/config/__init__.py +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container/handler/__init__.py +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container/handler/impl/__init__.py +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container/processor/__init__.py +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container/streaming/__init__.py +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container/streaming/custom_streaming_response.py +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container/tasks/__init__.py +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container/tasks/request_task.py +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container/tasks/task_manager_async_client.py +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container/utils/__init__.py +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container/utils/aws_utils.py +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container/utils/config_utils.py +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container_sdk.egg-info/SOURCES.txt +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container_sdk.egg-info/dependency_links.txt +0 -0
- {vital_agent_container_sdk-0.1.1 → vital_agent_container_sdk-0.1.2}/vital_agent_container_sdk.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: vital-agent-container-sdk
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.2
|
4
4
|
Summary: Vital Agent Container SDK
|
5
5
|
Home-page: https://github.com/vital-ai/vital-agent-container-python
|
6
6
|
Author: Marc Hadfield
|
@@ -12,8 +12,8 @@ Classifier: Operating System :: OS Independent
|
|
12
12
|
Requires-Python: >=3.10
|
13
13
|
Description-Content-Type: text/markdown
|
14
14
|
License-File: LICENSE
|
15
|
-
Requires-Dist: vital-ai-vitalsigns==0.1.
|
16
|
-
Requires-Dist: vital-ai-aimp==0.1.
|
15
|
+
Requires-Dist: vital-ai-vitalsigns==0.1.20
|
16
|
+
Requires-Dist: vital-ai-aimp==0.1.7
|
17
17
|
Requires-Dist: httpx==0.26.0
|
18
18
|
Requires-Dist: python-json-logger==2.0.7
|
19
19
|
Requires-Dist: python-dotenv==1.0.1
|
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
|
2
2
|
|
3
3
|
setup(
|
4
4
|
name='vital-agent-container-sdk',
|
5
|
-
version='0.1.
|
5
|
+
version='0.1.2',
|
6
6
|
author='Marc Hadfield',
|
7
7
|
author_email='marc@vital.ai',
|
8
8
|
description='Vital Agent Container SDK',
|
@@ -21,8 +21,8 @@ setup(
|
|
21
21
|
},
|
22
22
|
license='Apache License 2.0',
|
23
23
|
install_requires=[
|
24
|
-
'vital-ai-vitalsigns==0.1.
|
25
|
-
'vital-ai-aimp==0.1.
|
24
|
+
'vital-ai-vitalsigns==0.1.20',
|
25
|
+
'vital-ai-aimp==0.1.7',
|
26
26
|
'httpx==0.26.0',
|
27
27
|
'python-json-logger==2.0.7',
|
28
28
|
'python-dotenv==1.0.1',
|
@@ -42,11 +42,13 @@ class AgentContainerApp(FastAPI):
|
|
42
42
|
self.app_home = app_home
|
43
43
|
load_dotenv()
|
44
44
|
self.config = ConfigUtils.load_config(app_home)
|
45
|
+
self.message_processor = AIMPMessageProcessor()
|
45
46
|
self.add_routes()
|
46
47
|
|
47
48
|
async def process_ws_message(self, client: httpx.AsyncClient, websocket: WebSocket, data: str,
|
48
49
|
started_event: asyncio.Event):
|
49
|
-
|
50
|
+
print(f"process_ws_message: Processing: {data}")
|
51
|
+
await self.message_processor.process_message(self.handler, self.config, client, websocket, data, started_event)
|
50
52
|
|
51
53
|
def add_routes(self):
|
52
54
|
@self.get("/health")
|
@@ -67,8 +69,9 @@ class AgentContainerApp(FastAPI):
|
|
67
69
|
|
68
70
|
logger.info(f"Received message from {websocket.client.host}:{websocket.client.port}: {data}")
|
69
71
|
message_obj = json.loads(data)
|
70
|
-
|
71
|
-
|
72
|
+
logger.info(f"Received message: {message_obj}")
|
73
|
+
message_type = message_obj[0].get("type", None)
|
74
|
+
message_intent = message_obj[0].get("http://vital.ai/ontology/vital-aimp#hasIntent", None)
|
72
75
|
logger.info(f"message_type: {message_type}")
|
73
76
|
logger.info(f"message_intent: {message_intent}")
|
74
77
|
|
@@ -96,9 +99,12 @@ class AgentContainerApp(FastAPI):
|
|
96
99
|
else:
|
97
100
|
logger.info(f"Processing message: {data}")
|
98
101
|
started_event = asyncio.Event()
|
99
|
-
task = asyncio.create_task(self.process_ws_message(
|
102
|
+
task = asyncio.create_task(self.process_ws_message(client, websocket, data, started_event))
|
100
103
|
background_tasks.append(task)
|
101
104
|
await started_event.wait()
|
105
|
+
logger.info(f"Completed Processing message: {data}")
|
106
|
+
# break out of infinite loop
|
107
|
+
break
|
102
108
|
except WebSocketDisconnect:
|
103
109
|
logger.info("WebSocket connection closed by the client.")
|
104
110
|
# still try to close it in finally?
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import asyncio
|
2
|
+
import httpx
|
3
|
+
from starlette.websockets import WebSocket
|
4
|
+
from abc import ABC, abstractmethod
|
5
|
+
|
6
|
+
|
7
|
+
class AIMPMessageHandlerInf(ABC):
|
8
|
+
|
9
|
+
@abstractmethod
|
10
|
+
async def process_message(self, config, client: httpx.AsyncClient, websocket: WebSocket, data: str, started_event: asyncio.Event):
|
11
|
+
pass
|
12
|
+
|
13
|
+
|
14
|
+
|
vital_agent_container_sdk-0.1.2/vital_agent_container/handler/impl/aimp_echo_message_handler.py
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
import asyncio
|
2
|
+
import httpx
|
3
|
+
from starlette.websockets import WebSocket
|
4
|
+
from vital_agent_container.handler.aimp_message_handler_inf import AIMPMessageHandlerInf
|
5
|
+
|
6
|
+
|
7
|
+
class AIMPEchoMessageHandler(AIMPMessageHandlerInf):
|
8
|
+
async def process_message(self, config, client: httpx.AsyncClient, websocket: WebSocket, data: str, started_event: asyncio.Event):
|
9
|
+
try:
|
10
|
+
print(f"Received Message: {data}")
|
11
|
+
await websocket.send_text(data)
|
12
|
+
print(f"Sent Message: {data}")
|
13
|
+
# await websocket.close(1000, "Processing Complete")
|
14
|
+
# print(f"Websocket closed.")
|
15
|
+
started_event.set()
|
16
|
+
print(f"Completed Event.")
|
17
|
+
except asyncio.CancelledError:
|
18
|
+
# log canceling
|
19
|
+
raise
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import asyncio
|
2
|
+
|
3
|
+
from vital_agent_container.handler.aimp_message_handler_inf import AIMPMessageHandlerInf
|
4
|
+
|
5
|
+
|
6
|
+
class AIMPMessageProcessor:
|
7
|
+
|
8
|
+
def __init__(self):
|
9
|
+
pass
|
10
|
+
|
11
|
+
async def process_message(self, handler: AIMPMessageHandlerInf, app_config, client, websocket, data, started_event):
|
12
|
+
print(f"Processing: {data}")
|
13
|
+
try:
|
14
|
+
return await handler.process_message(app_config, client, websocket, data, started_event)
|
15
|
+
except asyncio.CancelledError:
|
16
|
+
# log canceling
|
17
|
+
raise
|
18
|
+
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: vital-agent-container-sdk
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.2
|
4
4
|
Summary: Vital Agent Container SDK
|
5
5
|
Home-page: https://github.com/vital-ai/vital-agent-container-python
|
6
6
|
Author: Marc Hadfield
|
@@ -12,8 +12,8 @@ Classifier: Operating System :: OS Independent
|
|
12
12
|
Requires-Python: >=3.10
|
13
13
|
Description-Content-Type: text/markdown
|
14
14
|
License-File: LICENSE
|
15
|
-
Requires-Dist: vital-ai-vitalsigns==0.1.
|
16
|
-
Requires-Dist: vital-ai-aimp==0.1.
|
15
|
+
Requires-Dist: vital-ai-vitalsigns==0.1.20
|
16
|
+
Requires-Dist: vital-ai-aimp==0.1.7
|
17
17
|
Requires-Dist: httpx==0.26.0
|
18
18
|
Requires-Dist: python-json-logger==2.0.7
|
19
19
|
Requires-Dist: python-dotenv==1.0.1
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|