agentex-sdk 0.1.0a6__py3-none-any.whl
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.
- agentex/__init__.py +103 -0
- agentex/_base_client.py +1992 -0
- agentex/_client.py +506 -0
- agentex/_compat.py +219 -0
- agentex/_constants.py +14 -0
- agentex/_exceptions.py +108 -0
- agentex/_files.py +123 -0
- agentex/_models.py +829 -0
- agentex/_qs.py +150 -0
- agentex/_resource.py +43 -0
- agentex/_response.py +830 -0
- agentex/_streaming.py +333 -0
- agentex/_types.py +219 -0
- agentex/_utils/__init__.py +57 -0
- agentex/_utils/_logs.py +25 -0
- agentex/_utils/_proxy.py +65 -0
- agentex/_utils/_reflection.py +42 -0
- agentex/_utils/_resources_proxy.py +24 -0
- agentex/_utils/_streams.py +12 -0
- agentex/_utils/_sync.py +86 -0
- agentex/_utils/_transform.py +447 -0
- agentex/_utils/_typing.py +151 -0
- agentex/_utils/_utils.py +422 -0
- agentex/_version.py +4 -0
- agentex/lib/.keep +4 -0
- agentex/lib/__init__.py +0 -0
- agentex/lib/adk/__init__.py +41 -0
- agentex/lib/adk/_modules/__init__.py +0 -0
- agentex/lib/adk/_modules/acp.py +247 -0
- agentex/lib/adk/_modules/agent_task_tracker.py +176 -0
- agentex/lib/adk/_modules/agents.py +77 -0
- agentex/lib/adk/_modules/events.py +141 -0
- agentex/lib/adk/_modules/messages.py +285 -0
- agentex/lib/adk/_modules/state.py +291 -0
- agentex/lib/adk/_modules/streaming.py +75 -0
- agentex/lib/adk/_modules/tasks.py +124 -0
- agentex/lib/adk/_modules/tracing.py +194 -0
- agentex/lib/adk/providers/__init__.py +9 -0
- agentex/lib/adk/providers/_modules/__init__.py +0 -0
- agentex/lib/adk/providers/_modules/litellm.py +232 -0
- agentex/lib/adk/providers/_modules/openai.py +416 -0
- agentex/lib/adk/providers/_modules/sgp.py +85 -0
- agentex/lib/adk/utils/__init__.py +5 -0
- agentex/lib/adk/utils/_modules/__init__.py +0 -0
- agentex/lib/adk/utils/_modules/templating.py +94 -0
- agentex/lib/cli/__init__.py +0 -0
- agentex/lib/cli/commands/__init__.py +0 -0
- agentex/lib/cli/commands/agents.py +328 -0
- agentex/lib/cli/commands/init.py +227 -0
- agentex/lib/cli/commands/main.py +33 -0
- agentex/lib/cli/commands/secrets.py +169 -0
- agentex/lib/cli/commands/tasks.py +118 -0
- agentex/lib/cli/commands/uv.py +133 -0
- agentex/lib/cli/handlers/__init__.py +0 -0
- agentex/lib/cli/handlers/agent_handlers.py +160 -0
- agentex/lib/cli/handlers/cleanup_handlers.py +186 -0
- agentex/lib/cli/handlers/deploy_handlers.py +351 -0
- agentex/lib/cli/handlers/run_handlers.py +452 -0
- agentex/lib/cli/handlers/secret_handlers.py +670 -0
- agentex/lib/cli/templates/default/.dockerignore.j2 +43 -0
- agentex/lib/cli/templates/default/Dockerfile-uv.j2 +42 -0
- agentex/lib/cli/templates/default/Dockerfile.j2 +42 -0
- agentex/lib/cli/templates/default/README.md.j2 +193 -0
- agentex/lib/cli/templates/default/deploy/example.yaml.j2 +55 -0
- agentex/lib/cli/templates/default/manifest.yaml.j2 +116 -0
- agentex/lib/cli/templates/default/project/acp.py.j2 +29 -0
- agentex/lib/cli/templates/default/pyproject.toml.j2 +33 -0
- agentex/lib/cli/templates/default/requirements.txt.j2 +5 -0
- agentex/lib/cli/templates/deploy/Screenshot 2025-03-19 at 10.36.57/342/200/257AM.png +0 -0
- agentex/lib/cli/templates/deploy/example.yaml.j2 +55 -0
- agentex/lib/cli/templates/sync/.dockerignore.j2 +43 -0
- agentex/lib/cli/templates/sync/Dockerfile-uv.j2 +42 -0
- agentex/lib/cli/templates/sync/Dockerfile.j2 +42 -0
- agentex/lib/cli/templates/sync/README.md.j2 +293 -0
- agentex/lib/cli/templates/sync/deploy/example.yaml.j2 +55 -0
- agentex/lib/cli/templates/sync/manifest.yaml.j2 +116 -0
- agentex/lib/cli/templates/sync/project/acp.py.j2 +26 -0
- agentex/lib/cli/templates/sync/pyproject.toml.j2 +33 -0
- agentex/lib/cli/templates/sync/requirements.txt.j2 +5 -0
- agentex/lib/cli/templates/temporal/.dockerignore.j2 +43 -0
- agentex/lib/cli/templates/temporal/Dockerfile-uv.j2 +48 -0
- agentex/lib/cli/templates/temporal/Dockerfile.j2 +48 -0
- agentex/lib/cli/templates/temporal/README.md.j2 +316 -0
- agentex/lib/cli/templates/temporal/deploy/example.yaml.j2 +55 -0
- agentex/lib/cli/templates/temporal/manifest.yaml.j2 +137 -0
- agentex/lib/cli/templates/temporal/project/acp.py.j2 +30 -0
- agentex/lib/cli/templates/temporal/project/run_worker.py.j2 +33 -0
- agentex/lib/cli/templates/temporal/project/workflow.py.j2 +66 -0
- agentex/lib/cli/templates/temporal/pyproject.toml.j2 +34 -0
- agentex/lib/cli/templates/temporal/requirements.txt.j2 +5 -0
- agentex/lib/cli/utils/cli_utils.py +14 -0
- agentex/lib/cli/utils/credential_utils.py +103 -0
- agentex/lib/cli/utils/exceptions.py +6 -0
- agentex/lib/cli/utils/kubectl_utils.py +135 -0
- agentex/lib/cli/utils/kubernetes_secrets_utils.py +185 -0
- agentex/lib/core/__init__.py +0 -0
- agentex/lib/core/adapters/__init__.py +0 -0
- agentex/lib/core/adapters/llm/__init__.py +1 -0
- agentex/lib/core/adapters/llm/adapter_litellm.py +46 -0
- agentex/lib/core/adapters/llm/adapter_sgp.py +55 -0
- agentex/lib/core/adapters/llm/port.py +24 -0
- agentex/lib/core/adapters/streams/adapter_redis.py +128 -0
- agentex/lib/core/adapters/streams/port.py +50 -0
- agentex/lib/core/clients/__init__.py +1 -0
- agentex/lib/core/clients/temporal/__init__.py +0 -0
- agentex/lib/core/clients/temporal/temporal_client.py +181 -0
- agentex/lib/core/clients/temporal/types.py +47 -0
- agentex/lib/core/clients/temporal/utils.py +56 -0
- agentex/lib/core/services/__init__.py +0 -0
- agentex/lib/core/services/adk/__init__.py +0 -0
- agentex/lib/core/services/adk/acp/__init__.py +0 -0
- agentex/lib/core/services/adk/acp/acp.py +210 -0
- agentex/lib/core/services/adk/agent_task_tracker.py +85 -0
- agentex/lib/core/services/adk/agents.py +43 -0
- agentex/lib/core/services/adk/events.py +61 -0
- agentex/lib/core/services/adk/messages.py +164 -0
- agentex/lib/core/services/adk/providers/__init__.py +0 -0
- agentex/lib/core/services/adk/providers/litellm.py +256 -0
- agentex/lib/core/services/adk/providers/openai.py +723 -0
- agentex/lib/core/services/adk/providers/sgp.py +99 -0
- agentex/lib/core/services/adk/state.py +120 -0
- agentex/lib/core/services/adk/streaming.py +262 -0
- agentex/lib/core/services/adk/tasks.py +69 -0
- agentex/lib/core/services/adk/tracing.py +36 -0
- agentex/lib/core/services/adk/utils/__init__.py +0 -0
- agentex/lib/core/services/adk/utils/templating.py +58 -0
- agentex/lib/core/temporal/__init__.py +0 -0
- agentex/lib/core/temporal/activities/__init__.py +207 -0
- agentex/lib/core/temporal/activities/activity_helpers.py +37 -0
- agentex/lib/core/temporal/activities/adk/__init__.py +0 -0
- agentex/lib/core/temporal/activities/adk/acp/__init__.py +0 -0
- agentex/lib/core/temporal/activities/adk/acp/acp_activities.py +86 -0
- agentex/lib/core/temporal/activities/adk/agent_task_tracker_activities.py +76 -0
- agentex/lib/core/temporal/activities/adk/agents_activities.py +35 -0
- agentex/lib/core/temporal/activities/adk/events_activities.py +50 -0
- agentex/lib/core/temporal/activities/adk/messages_activities.py +94 -0
- agentex/lib/core/temporal/activities/adk/providers/__init__.py +0 -0
- agentex/lib/core/temporal/activities/adk/providers/litellm_activities.py +71 -0
- agentex/lib/core/temporal/activities/adk/providers/openai_activities.py +210 -0
- agentex/lib/core/temporal/activities/adk/providers/sgp_activities.py +42 -0
- agentex/lib/core/temporal/activities/adk/state_activities.py +85 -0
- agentex/lib/core/temporal/activities/adk/streaming_activities.py +33 -0
- agentex/lib/core/temporal/activities/adk/tasks_activities.py +48 -0
- agentex/lib/core/temporal/activities/adk/tracing_activities.py +55 -0
- agentex/lib/core/temporal/activities/adk/utils/__init__.py +0 -0
- agentex/lib/core/temporal/activities/adk/utils/templating_activities.py +41 -0
- agentex/lib/core/temporal/services/__init__.py +0 -0
- agentex/lib/core/temporal/services/temporal_task_service.py +69 -0
- agentex/lib/core/temporal/types/__init__.py +0 -0
- agentex/lib/core/temporal/types/workflow.py +5 -0
- agentex/lib/core/temporal/workers/__init__.py +0 -0
- agentex/lib/core/temporal/workers/worker.py +162 -0
- agentex/lib/core/temporal/workflows/workflow.py +26 -0
- agentex/lib/core/tracing/__init__.py +5 -0
- agentex/lib/core/tracing/processors/agentex_tracing_processor.py +117 -0
- agentex/lib/core/tracing/processors/sgp_tracing_processor.py +119 -0
- agentex/lib/core/tracing/processors/tracing_processor_interface.py +40 -0
- agentex/lib/core/tracing/trace.py +311 -0
- agentex/lib/core/tracing/tracer.py +70 -0
- agentex/lib/core/tracing/tracing_processor_manager.py +62 -0
- agentex/lib/environment_variables.py +87 -0
- agentex/lib/py.typed +0 -0
- agentex/lib/sdk/__init__.py +0 -0
- agentex/lib/sdk/config/__init__.py +0 -0
- agentex/lib/sdk/config/agent_config.py +61 -0
- agentex/lib/sdk/config/agent_manifest.py +219 -0
- agentex/lib/sdk/config/build_config.py +35 -0
- agentex/lib/sdk/config/deployment_config.py +117 -0
- agentex/lib/sdk/config/local_development_config.py +56 -0
- agentex/lib/sdk/config/project_config.py +103 -0
- agentex/lib/sdk/fastacp/__init__.py +3 -0
- agentex/lib/sdk/fastacp/base/base_acp_server.py +406 -0
- agentex/lib/sdk/fastacp/fastacp.py +74 -0
- agentex/lib/sdk/fastacp/impl/agentic_base_acp.py +72 -0
- agentex/lib/sdk/fastacp/impl/sync_acp.py +109 -0
- agentex/lib/sdk/fastacp/impl/temporal_acp.py +97 -0
- agentex/lib/sdk/fastacp/tests/README.md +297 -0
- agentex/lib/sdk/fastacp/tests/conftest.py +307 -0
- agentex/lib/sdk/fastacp/tests/pytest.ini +10 -0
- agentex/lib/sdk/fastacp/tests/run_tests.py +227 -0
- agentex/lib/sdk/fastacp/tests/test_base_acp_server.py +450 -0
- agentex/lib/sdk/fastacp/tests/test_fastacp_factory.py +344 -0
- agentex/lib/sdk/fastacp/tests/test_integration.py +477 -0
- agentex/lib/sdk/state_machine/__init__.py +6 -0
- agentex/lib/sdk/state_machine/noop_workflow.py +21 -0
- agentex/lib/sdk/state_machine/state.py +10 -0
- agentex/lib/sdk/state_machine/state_machine.py +189 -0
- agentex/lib/sdk/state_machine/state_workflow.py +16 -0
- agentex/lib/sdk/utils/__init__.py +0 -0
- agentex/lib/sdk/utils/messages.py +223 -0
- agentex/lib/types/__init__.py +0 -0
- agentex/lib/types/acp.py +94 -0
- agentex/lib/types/agent_configs.py +79 -0
- agentex/lib/types/agent_results.py +29 -0
- agentex/lib/types/credentials.py +34 -0
- agentex/lib/types/fastacp.py +61 -0
- agentex/lib/types/files.py +13 -0
- agentex/lib/types/json_rpc.py +49 -0
- agentex/lib/types/llm_messages.py +354 -0
- agentex/lib/types/task_message_updates.py +171 -0
- agentex/lib/types/tracing.py +34 -0
- agentex/lib/utils/__init__.py +0 -0
- agentex/lib/utils/completions.py +131 -0
- agentex/lib/utils/console.py +14 -0
- agentex/lib/utils/io.py +29 -0
- agentex/lib/utils/iterables.py +14 -0
- agentex/lib/utils/json_schema.py +23 -0
- agentex/lib/utils/logging.py +31 -0
- agentex/lib/utils/mcp.py +17 -0
- agentex/lib/utils/model_utils.py +46 -0
- agentex/lib/utils/parsing.py +15 -0
- agentex/lib/utils/regex.py +6 -0
- agentex/lib/utils/temporal.py +13 -0
- agentex/py.typed +0 -0
- agentex/resources/__init__.py +103 -0
- agentex/resources/agents.py +707 -0
- agentex/resources/events.py +294 -0
- agentex/resources/messages/__init__.py +33 -0
- agentex/resources/messages/batch.py +271 -0
- agentex/resources/messages/messages.py +492 -0
- agentex/resources/spans.py +557 -0
- agentex/resources/states.py +544 -0
- agentex/resources/tasks.py +615 -0
- agentex/resources/tracker.py +384 -0
- agentex/types/__init__.py +56 -0
- agentex/types/acp_type.py +7 -0
- agentex/types/agent.py +29 -0
- agentex/types/agent_list_params.py +13 -0
- agentex/types/agent_list_response.py +10 -0
- agentex/types/agent_rpc_by_name_params.py +21 -0
- agentex/types/agent_rpc_params.py +51 -0
- agentex/types/agent_rpc_params1.py +21 -0
- agentex/types/agent_rpc_response.py +20 -0
- agentex/types/agent_rpc_result.py +90 -0
- agentex/types/agent_task_tracker.py +34 -0
- agentex/types/data_content.py +30 -0
- agentex/types/data_content_param.py +31 -0
- agentex/types/data_delta.py +14 -0
- agentex/types/event.py +29 -0
- agentex/types/event_list_params.py +22 -0
- agentex/types/event_list_response.py +10 -0
- agentex/types/message_author.py +7 -0
- agentex/types/message_create_params.py +18 -0
- agentex/types/message_list_params.py +14 -0
- agentex/types/message_list_response.py +10 -0
- agentex/types/message_style.py +7 -0
- agentex/types/message_update_params.py +18 -0
- agentex/types/messages/__init__.py +8 -0
- agentex/types/messages/batch_create_params.py +16 -0
- agentex/types/messages/batch_create_response.py +10 -0
- agentex/types/messages/batch_update_params.py +16 -0
- agentex/types/messages/batch_update_response.py +10 -0
- agentex/types/shared/__init__.py +3 -0
- agentex/types/shared/task_message_update.py +83 -0
- agentex/types/span.py +36 -0
- agentex/types/span_create_params.py +40 -0
- agentex/types/span_list_params.py +12 -0
- agentex/types/span_list_response.py +10 -0
- agentex/types/span_update_params.py +37 -0
- agentex/types/state.py +25 -0
- agentex/types/state_create_params.py +16 -0
- agentex/types/state_list_params.py +16 -0
- agentex/types/state_list_response.py +10 -0
- agentex/types/state_update_params.py +16 -0
- agentex/types/task.py +23 -0
- agentex/types/task_delete_by_name_response.py +8 -0
- agentex/types/task_delete_response.py +8 -0
- agentex/types/task_list_response.py +10 -0
- agentex/types/task_message.py +33 -0
- agentex/types/task_message_content.py +16 -0
- agentex/types/task_message_content_param.py +17 -0
- agentex/types/task_message_delta.py +16 -0
- agentex/types/text_content.py +53 -0
- agentex/types/text_content_param.py +54 -0
- agentex/types/text_delta.py +14 -0
- agentex/types/tool_request_content.py +36 -0
- agentex/types/tool_request_content_param.py +37 -0
- agentex/types/tool_request_delta.py +18 -0
- agentex/types/tool_response_content.py +36 -0
- agentex/types/tool_response_content_param.py +36 -0
- agentex/types/tool_response_delta.py +18 -0
- agentex/types/tracker_list_params.py +16 -0
- agentex/types/tracker_list_response.py +10 -0
- agentex/types/tracker_update_params.py +19 -0
- agentex_sdk-0.1.0a6.dist-info/METADATA +426 -0
- agentex_sdk-0.1.0a6.dist-info/RECORD +289 -0
- agentex_sdk-0.1.0a6.dist-info/WHEEL +4 -0
- agentex_sdk-0.1.0a6.dist-info/entry_points.txt +2 -0
- agentex_sdk-0.1.0a6.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,207 @@
|
|
1
|
+
from scale_gp import SGPClient, SGPClientError
|
2
|
+
|
3
|
+
from agentex import AsyncAgentex
|
4
|
+
from agentex.lib.core.adapters.llm.adapter_litellm import LiteLLMGateway
|
5
|
+
from agentex.lib.core.adapters.streams.adapter_redis import RedisEventStreamRepository
|
6
|
+
from agentex.lib.core.services.adk.acp.acp import ACPService
|
7
|
+
from agentex.lib.core.services.adk.agent_task_tracker import AgentTaskTrackerService
|
8
|
+
from agentex.lib.core.services.adk.events import EventsService
|
9
|
+
from agentex.lib.core.services.adk.messages import MessagesService
|
10
|
+
from agentex.lib.core.services.adk.providers.litellm import LiteLLMService
|
11
|
+
from agentex.lib.core.services.adk.providers.openai import OpenAIService
|
12
|
+
from agentex.lib.core.services.adk.providers.sgp import SGPService
|
13
|
+
from agentex.lib.core.services.adk.state import StateService
|
14
|
+
from agentex.lib.core.services.adk.streaming import StreamingService
|
15
|
+
from agentex.lib.core.services.adk.tasks import TasksService
|
16
|
+
from agentex.lib.core.services.adk.tracing import TracingService
|
17
|
+
from agentex.lib.core.services.adk.utils.templating import TemplatingService
|
18
|
+
from agentex.lib.core.temporal.activities.adk.acp.acp_activities import ACPActivities
|
19
|
+
from agentex.lib.core.temporal.activities.adk.agent_task_tracker_activities import (
|
20
|
+
AgentTaskTrackerActivities,
|
21
|
+
)
|
22
|
+
from agentex.lib.core.temporal.activities.adk.events_activities import EventsActivities
|
23
|
+
from agentex.lib.core.temporal.activities.adk.messages_activities import MessagesActivities
|
24
|
+
from agentex.lib.core.temporal.activities.adk.providers.litellm_activities import (
|
25
|
+
LiteLLMActivities,
|
26
|
+
)
|
27
|
+
from agentex.lib.core.temporal.activities.adk.providers.openai_activities import (
|
28
|
+
OpenAIActivities,
|
29
|
+
)
|
30
|
+
from agentex.lib.core.temporal.activities.adk.providers.sgp_activities import SGPActivities
|
31
|
+
from agentex.lib.core.temporal.activities.adk.state_activities import StateActivities
|
32
|
+
from agentex.lib.core.temporal.activities.adk.streaming_activities import (
|
33
|
+
StreamingActivities,
|
34
|
+
)
|
35
|
+
from agentex.lib.core.temporal.activities.adk.tasks_activities import TasksActivities
|
36
|
+
from agentex.lib.core.temporal.activities.adk.tracing_activities import TracingActivities
|
37
|
+
from agentex.lib.core.temporal.activities.adk.utils.templating_activities import (
|
38
|
+
TemplatingActivities,
|
39
|
+
)
|
40
|
+
from agentex.lib.core.tracing import AsyncTracer
|
41
|
+
|
42
|
+
|
43
|
+
def get_all_activities(sgp_client=None):
|
44
|
+
"""
|
45
|
+
Returns a list of all standard activity functions that can be directly passed to worker.run().
|
46
|
+
|
47
|
+
Args:
|
48
|
+
sgp_client: Optional SGP client instance. If not provided, SGP activities will not be included.
|
49
|
+
|
50
|
+
Returns:
|
51
|
+
list: A list of activity functions ready to be passed to worker.run()
|
52
|
+
"""
|
53
|
+
# Initialize common dependencies
|
54
|
+
try:
|
55
|
+
sgp_client = SGPClient()
|
56
|
+
except SGPClientError:
|
57
|
+
sgp_client = None
|
58
|
+
|
59
|
+
llm_gateway = LiteLLMGateway()
|
60
|
+
stream_repository = RedisEventStreamRepository()
|
61
|
+
agentex_client = AsyncAgentex()
|
62
|
+
tracer = AsyncTracer(agentex_client)
|
63
|
+
|
64
|
+
# Services
|
65
|
+
|
66
|
+
## ADK
|
67
|
+
streaming_service = StreamingService(
|
68
|
+
agentex_client=agentex_client,
|
69
|
+
stream_repository=stream_repository,
|
70
|
+
)
|
71
|
+
messages_service = MessagesService(
|
72
|
+
agentex_client=agentex_client,
|
73
|
+
streaming_service=streaming_service,
|
74
|
+
tracer=tracer,
|
75
|
+
)
|
76
|
+
events_service = EventsService(
|
77
|
+
agentex_client=agentex_client,
|
78
|
+
tracer=tracer,
|
79
|
+
)
|
80
|
+
agent_task_tracker_service = AgentTaskTrackerService(
|
81
|
+
agentex_client=agentex_client,
|
82
|
+
tracer=tracer,
|
83
|
+
)
|
84
|
+
state_service = StateService(
|
85
|
+
agentex_client=agentex_client,
|
86
|
+
tracer=tracer,
|
87
|
+
)
|
88
|
+
tasks_service = TasksService(
|
89
|
+
agentex_client=agentex_client,
|
90
|
+
tracer=tracer,
|
91
|
+
)
|
92
|
+
tracing_service = TracingService(
|
93
|
+
tracer=tracer,
|
94
|
+
)
|
95
|
+
|
96
|
+
## ACP
|
97
|
+
acp_service = ACPService(
|
98
|
+
agentex_client=agentex_client,
|
99
|
+
tracer=tracer,
|
100
|
+
)
|
101
|
+
|
102
|
+
## Providers
|
103
|
+
litellm_service = LiteLLMService(
|
104
|
+
agentex_client=agentex_client,
|
105
|
+
llm_gateway=llm_gateway,
|
106
|
+
streaming_service=streaming_service,
|
107
|
+
tracer=tracer,
|
108
|
+
)
|
109
|
+
openai_service = OpenAIService(
|
110
|
+
agentex_client=agentex_client,
|
111
|
+
streaming_service=streaming_service,
|
112
|
+
tracer=tracer,
|
113
|
+
)
|
114
|
+
sgp_service = None
|
115
|
+
if sgp_client is not None:
|
116
|
+
sgp_service = SGPService(
|
117
|
+
sgp_client=sgp_client,
|
118
|
+
tracer=tracer,
|
119
|
+
)
|
120
|
+
|
121
|
+
## Utils
|
122
|
+
templating_service = TemplatingService(
|
123
|
+
tracer=tracer,
|
124
|
+
)
|
125
|
+
|
126
|
+
# ADK
|
127
|
+
|
128
|
+
## Core activities
|
129
|
+
messages_activities = MessagesActivities(messages_service=messages_service)
|
130
|
+
events_activities = EventsActivities(events_service=events_service)
|
131
|
+
agent_task_tracker_activities = AgentTaskTrackerActivities(
|
132
|
+
agent_task_tracker_service=agent_task_tracker_service
|
133
|
+
)
|
134
|
+
state_activities = StateActivities(state_service=state_service)
|
135
|
+
streaming_activities = StreamingActivities(streaming_service=streaming_service)
|
136
|
+
tasks_activities = TasksActivities(tasks_service=tasks_service)
|
137
|
+
tracing_activities = TracingActivities(tracing_service=tracing_service)
|
138
|
+
|
139
|
+
## ACP
|
140
|
+
acp_activities = ACPActivities(acp_service=acp_service)
|
141
|
+
|
142
|
+
## Providers
|
143
|
+
litellm_activities = LiteLLMActivities(litellm_service=litellm_service)
|
144
|
+
openai_activities = OpenAIActivities(openai_service=openai_service)
|
145
|
+
if sgp_client is not None:
|
146
|
+
sgp_activities = SGPActivities(sgp_service=sgp_service)
|
147
|
+
else:
|
148
|
+
sgp_activities = None
|
149
|
+
|
150
|
+
## Utils
|
151
|
+
templating_activities = TemplatingActivities(templating_service=templating_service)
|
152
|
+
|
153
|
+
# Build list of standard activities
|
154
|
+
activities = [
|
155
|
+
# Core activities
|
156
|
+
## Messages activities
|
157
|
+
messages_activities.create_message,
|
158
|
+
messages_activities.update_message,
|
159
|
+
messages_activities.create_messages_batch,
|
160
|
+
messages_activities.update_messages_batch,
|
161
|
+
messages_activities.list_messages,
|
162
|
+
## Events activities
|
163
|
+
events_activities.get_event,
|
164
|
+
events_activities.list_events,
|
165
|
+
## Agent Task Tracker activities
|
166
|
+
agent_task_tracker_activities.get_agent_task_tracker,
|
167
|
+
agent_task_tracker_activities.get_agent_task_tracker_by_task_and_agent,
|
168
|
+
agent_task_tracker_activities.update_agent_task_tracker,
|
169
|
+
## State activities
|
170
|
+
state_activities.create_state,
|
171
|
+
state_activities.get_state,
|
172
|
+
state_activities.update_state,
|
173
|
+
state_activities.delete_state,
|
174
|
+
## Streaming activities
|
175
|
+
streaming_activities.stream_update,
|
176
|
+
## Tasks activities
|
177
|
+
tasks_activities.get_task,
|
178
|
+
tasks_activities.delete_task,
|
179
|
+
## Tracing activities
|
180
|
+
tracing_activities.start_span,
|
181
|
+
tracing_activities.end_span,
|
182
|
+
# ACP activities
|
183
|
+
acp_activities.task_create,
|
184
|
+
acp_activities.message_send,
|
185
|
+
acp_activities.event_send,
|
186
|
+
acp_activities.task_cancel,
|
187
|
+
# Providers
|
188
|
+
## LiteLLM activities
|
189
|
+
litellm_activities.chat_completion,
|
190
|
+
litellm_activities.chat_completion_auto_send,
|
191
|
+
litellm_activities.chat_completion_stream_auto_send,
|
192
|
+
## OpenAI activities
|
193
|
+
openai_activities.run_agent,
|
194
|
+
openai_activities.run_agent_auto_send,
|
195
|
+
openai_activities.run_agent_streamed_auto_send,
|
196
|
+
# Utils
|
197
|
+
templating_activities.render_jinja,
|
198
|
+
]
|
199
|
+
|
200
|
+
# SGP activities
|
201
|
+
if sgp_client is not None:
|
202
|
+
sgp_all_activities = [
|
203
|
+
sgp_activities.download_file_content,
|
204
|
+
]
|
205
|
+
activities.extend(sgp_all_activities)
|
206
|
+
|
207
|
+
return activities
|
@@ -0,0 +1,37 @@
|
|
1
|
+
from datetime import timedelta
|
2
|
+
from typing import Any, TypeVar
|
3
|
+
|
4
|
+
from pydantic import TypeAdapter
|
5
|
+
from temporalio import workflow
|
6
|
+
from temporalio.common import RetryPolicy
|
7
|
+
|
8
|
+
from agentex.lib.utils.model_utils import BaseModel
|
9
|
+
|
10
|
+
T = TypeVar("T", bound="BaseModel")
|
11
|
+
|
12
|
+
|
13
|
+
class ActivityHelpers:
|
14
|
+
@staticmethod
|
15
|
+
async def execute_activity(
|
16
|
+
activity_name: str,
|
17
|
+
request: BaseModel | str | int | float | bool | dict[str, Any] | list[Any],
|
18
|
+
response_type: Any,
|
19
|
+
start_to_close_timeout: timedelta | None = None,
|
20
|
+
heartbeat_timeout: timedelta | None = None,
|
21
|
+
retry_policy: RetryPolicy | None = None,
|
22
|
+
) -> Any:
|
23
|
+
if start_to_close_timeout is None:
|
24
|
+
start_to_close_timeout = timedelta(seconds=10)
|
25
|
+
if retry_policy is None:
|
26
|
+
retry_policy = RetryPolicy(maximum_attempts=0)
|
27
|
+
|
28
|
+
response = await workflow.execute_activity(
|
29
|
+
activity=activity_name,
|
30
|
+
arg=request,
|
31
|
+
start_to_close_timeout=start_to_close_timeout,
|
32
|
+
retry_policy=retry_policy,
|
33
|
+
heartbeat_timeout=heartbeat_timeout,
|
34
|
+
)
|
35
|
+
|
36
|
+
adapter = TypeAdapter(response_type)
|
37
|
+
return adapter.validate_python(response)
|
File without changes
|
File without changes
|
@@ -0,0 +1,86 @@
|
|
1
|
+
from enum import Enum
|
2
|
+
from typing import Any
|
3
|
+
|
4
|
+
from temporalio import activity
|
5
|
+
|
6
|
+
from agentex.lib.core.services.adk.acp.acp import ACPService
|
7
|
+
from agentex.types.event import Event
|
8
|
+
from agentex.types.task_message import TaskMessage
|
9
|
+
from agentex.types.task_message_content import TaskMessageContent
|
10
|
+
from agentex.types.task import Task
|
11
|
+
from agentex.lib.types.tracing import BaseModelWithTraceParams
|
12
|
+
from agentex.lib.utils.logging import make_logger
|
13
|
+
|
14
|
+
logger = make_logger(__name__)
|
15
|
+
|
16
|
+
|
17
|
+
class ACPActivityName(str, Enum):
|
18
|
+
TASK_CREATE = "task-create"
|
19
|
+
MESSAGE_SEND = "message-send"
|
20
|
+
EVENT_SEND = "event-send"
|
21
|
+
TASK_CANCEL = "task-cancel"
|
22
|
+
|
23
|
+
|
24
|
+
class TaskCreateParams(BaseModelWithTraceParams):
|
25
|
+
name: str | None = None
|
26
|
+
agent_id: str | None = None
|
27
|
+
agent_name: str | None = None
|
28
|
+
params: dict[str, Any] | None = None
|
29
|
+
|
30
|
+
|
31
|
+
class MessageSendParams(BaseModelWithTraceParams):
|
32
|
+
agent_id: str | None = None
|
33
|
+
agent_name: str | None = None
|
34
|
+
task_id: str | None = None
|
35
|
+
content: TaskMessageContent
|
36
|
+
|
37
|
+
|
38
|
+
class EventSendParams(BaseModelWithTraceParams):
|
39
|
+
agent_id: str | None = None
|
40
|
+
agent_name: str | None = None
|
41
|
+
task_id: str | None = None
|
42
|
+
content: TaskMessageContent
|
43
|
+
|
44
|
+
|
45
|
+
class TaskCancelParams(BaseModelWithTraceParams):
|
46
|
+
task_id: str | None = None
|
47
|
+
task_name: str | None = None
|
48
|
+
|
49
|
+
|
50
|
+
class ACPActivities:
|
51
|
+
def __init__(self, acp_service: ACPService):
|
52
|
+
self._acp_service = acp_service
|
53
|
+
|
54
|
+
@activity.defn(name=ACPActivityName.TASK_CREATE)
|
55
|
+
async def task_create(self, params: TaskCreateParams) -> Task:
|
56
|
+
return await self._acp_service.task_create(
|
57
|
+
name=params.name,
|
58
|
+
agent_id=params.agent_id,
|
59
|
+
agent_name=params.agent_name,
|
60
|
+
params=params.params,
|
61
|
+
)
|
62
|
+
|
63
|
+
@activity.defn(name=ACPActivityName.MESSAGE_SEND)
|
64
|
+
async def message_send(self, params: MessageSendParams) -> TaskMessage:
|
65
|
+
return await self._acp_service.message_send(
|
66
|
+
agent_id=params.agent_id,
|
67
|
+
agent_name=params.agent_name,
|
68
|
+
task_id=params.task_id,
|
69
|
+
content=params.content,
|
70
|
+
)
|
71
|
+
|
72
|
+
@activity.defn(name=ACPActivityName.EVENT_SEND)
|
73
|
+
async def event_send(self, params: EventSendParams) -> Event:
|
74
|
+
return await self._acp_service.event_send(
|
75
|
+
agent_id=params.agent_id,
|
76
|
+
agent_name=params.agent_name,
|
77
|
+
task_id=params.task_id,
|
78
|
+
content=params.content,
|
79
|
+
)
|
80
|
+
|
81
|
+
@activity.defn(name=ACPActivityName.TASK_CANCEL)
|
82
|
+
async def task_cancel(self, params: TaskCancelParams) -> Task:
|
83
|
+
return await self._acp_service.task_cancel(
|
84
|
+
task_id=params.task_id,
|
85
|
+
task_name=params.task_name,
|
86
|
+
)
|
@@ -0,0 +1,76 @@
|
|
1
|
+
from enum import Enum
|
2
|
+
|
3
|
+
from temporalio import activity
|
4
|
+
|
5
|
+
from agentex.lib.core.services.adk.agent_task_tracker import AgentTaskTrackerService
|
6
|
+
from agentex.lib.types.tracing import BaseModelWithTraceParams
|
7
|
+
from agentex.lib.utils.logging import make_logger
|
8
|
+
from agentex.types.agent_task_tracker import AgentTaskTracker
|
9
|
+
|
10
|
+
logger = make_logger(__name__)
|
11
|
+
|
12
|
+
|
13
|
+
class AgentTaskTrackerActivityName(str, Enum):
|
14
|
+
GET_AGENT_TASK_TRACKER = "get-agent-task-tracker"
|
15
|
+
GET_AGENT_TASK_TRACKER_BY_TASK_AND_AGENT = (
|
16
|
+
"get-agent-task-tracker-by-task-and-agent"
|
17
|
+
)
|
18
|
+
UPDATE_AGENT_TASK_TRACKER = "update-agent-task-tracker"
|
19
|
+
|
20
|
+
|
21
|
+
class GetAgentTaskTrackerParams(BaseModelWithTraceParams):
|
22
|
+
tracker_id: str
|
23
|
+
|
24
|
+
|
25
|
+
class GetAgentTaskTrackerByTaskAndAgentParams(BaseModelWithTraceParams):
|
26
|
+
task_id: str
|
27
|
+
agent_id: str
|
28
|
+
|
29
|
+
|
30
|
+
class UpdateAgentTaskTrackerParams(BaseModelWithTraceParams):
|
31
|
+
tracker_id: str
|
32
|
+
last_processed_event_id: str | None
|
33
|
+
status: str | None
|
34
|
+
status_reason: str | None
|
35
|
+
|
36
|
+
|
37
|
+
class AgentTaskTrackerActivities:
|
38
|
+
def __init__(self, agent_task_tracker_service: AgentTaskTrackerService):
|
39
|
+
self._agent_task_tracker_service = agent_task_tracker_service
|
40
|
+
|
41
|
+
@activity.defn(name=AgentTaskTrackerActivityName.GET_AGENT_TASK_TRACKER)
|
42
|
+
async def get_agent_task_tracker(
|
43
|
+
self, params: GetAgentTaskTrackerParams
|
44
|
+
) -> AgentTaskTracker:
|
45
|
+
return await self._agent_task_tracker_service.get_agent_task_tracker(
|
46
|
+
tracker_id=params.tracker_id,
|
47
|
+
trace_id=params.trace_id,
|
48
|
+
parent_span_id=params.parent_span_id,
|
49
|
+
)
|
50
|
+
|
51
|
+
@activity.defn(
|
52
|
+
name=AgentTaskTrackerActivityName.GET_AGENT_TASK_TRACKER_BY_TASK_AND_AGENT
|
53
|
+
)
|
54
|
+
async def get_agent_task_tracker_by_task_and_agent(
|
55
|
+
self,
|
56
|
+
params: GetAgentTaskTrackerByTaskAndAgentParams,
|
57
|
+
) -> AgentTaskTracker | None:
|
58
|
+
return await self._agent_task_tracker_service.get_by_task_and_agent(
|
59
|
+
task_id=params.task_id,
|
60
|
+
agent_id=params.agent_id,
|
61
|
+
trace_id=params.trace_id,
|
62
|
+
parent_span_id=params.parent_span_id,
|
63
|
+
)
|
64
|
+
|
65
|
+
@activity.defn(name=AgentTaskTrackerActivityName.UPDATE_AGENT_TASK_TRACKER)
|
66
|
+
async def update_agent_task_tracker(
|
67
|
+
self, params: UpdateAgentTaskTrackerParams
|
68
|
+
) -> AgentTaskTracker:
|
69
|
+
return await self._agent_task_tracker_service.update_agent_task_tracker(
|
70
|
+
tracker_id=params.tracker_id,
|
71
|
+
last_processed_event_id=params.last_processed_event_id,
|
72
|
+
status=params.status,
|
73
|
+
status_reason=params.status_reason,
|
74
|
+
trace_id=params.trace_id,
|
75
|
+
parent_span_id=params.parent_span_id,
|
76
|
+
)
|
@@ -0,0 +1,35 @@
|
|
1
|
+
from enum import Enum
|
2
|
+
from typing import Optional
|
3
|
+
|
4
|
+
from agentex.lib.core.services.adk.agents import AgentsService
|
5
|
+
from agentex.types.agent import Agent
|
6
|
+
from temporalio import activity
|
7
|
+
|
8
|
+
from agentex.lib.types.tracing import BaseModelWithTraceParams
|
9
|
+
from agentex.lib.utils.logging import make_logger
|
10
|
+
|
11
|
+
logger = make_logger(__name__)
|
12
|
+
|
13
|
+
|
14
|
+
class AgentsActivityName(str, Enum):
|
15
|
+
GET_AGENT = "get-agent"
|
16
|
+
|
17
|
+
|
18
|
+
class GetAgentParams(BaseModelWithTraceParams):
|
19
|
+
agent_id: Optional[str] = None
|
20
|
+
agent_name: Optional[str] = None
|
21
|
+
|
22
|
+
|
23
|
+
class AgentsActivities:
|
24
|
+
def __init__(self, agents_service: AgentsService):
|
25
|
+
self._agents_service = agents_service
|
26
|
+
|
27
|
+
@activity.defn(name=AgentsActivityName.GET_AGENT)
|
28
|
+
async def get_agent(self, params: GetAgentParams) -> Agent | None:
|
29
|
+
return await self._agents_service.get_agent(
|
30
|
+
agent_id=params.agent_id,
|
31
|
+
agent_name=params.agent_name,
|
32
|
+
trace_id=params.trace_id,
|
33
|
+
parent_span_id=params.parent_span_id,
|
34
|
+
)
|
35
|
+
|
@@ -0,0 +1,50 @@
|
|
1
|
+
from enum import Enum
|
2
|
+
|
3
|
+
from temporalio import activity
|
4
|
+
|
5
|
+
from agentex.lib.core.services.adk.events import EventsService
|
6
|
+
from agentex.types.event import Event
|
7
|
+
from agentex.lib.types.tracing import BaseModelWithTraceParams
|
8
|
+
from agentex.lib.utils.logging import make_logger
|
9
|
+
|
10
|
+
logger = make_logger(__name__)
|
11
|
+
|
12
|
+
|
13
|
+
class EventsActivityName(str, Enum):
|
14
|
+
GET_EVENT = "get-event"
|
15
|
+
LIST_EVENTS = "list-events"
|
16
|
+
|
17
|
+
|
18
|
+
class GetEventParams(BaseModelWithTraceParams):
|
19
|
+
event_id: str
|
20
|
+
|
21
|
+
|
22
|
+
class ListEventsParams(BaseModelWithTraceParams):
|
23
|
+
task_id: str
|
24
|
+
agent_id: str
|
25
|
+
last_processed_event_id: str | None = None
|
26
|
+
limit: int | None = None
|
27
|
+
|
28
|
+
|
29
|
+
class EventsActivities:
|
30
|
+
def __init__(self, events_service: EventsService):
|
31
|
+
self._events_service = events_service
|
32
|
+
|
33
|
+
@activity.defn(name=EventsActivityName.GET_EVENT)
|
34
|
+
async def get_event(self, params: GetEventParams) -> Event | None:
|
35
|
+
return await self._events_service.get_event(
|
36
|
+
event_id=params.event_id,
|
37
|
+
trace_id=params.trace_id,
|
38
|
+
parent_span_id=params.parent_span_id,
|
39
|
+
)
|
40
|
+
|
41
|
+
@activity.defn(name=EventsActivityName.LIST_EVENTS)
|
42
|
+
async def list_events(self, params: ListEventsParams) -> list[Event]:
|
43
|
+
return await self._events_service.list_events(
|
44
|
+
task_id=params.task_id,
|
45
|
+
agent_id=params.agent_id,
|
46
|
+
last_processed_event_id=params.last_processed_event_id,
|
47
|
+
limit=params.limit,
|
48
|
+
trace_id=params.trace_id,
|
49
|
+
parent_span_id=params.parent_span_id,
|
50
|
+
)
|
@@ -0,0 +1,94 @@
|
|
1
|
+
from enum import Enum
|
2
|
+
|
3
|
+
from temporalio import activity
|
4
|
+
|
5
|
+
from agentex.lib.core.services.adk.messages import MessagesService
|
6
|
+
from agentex.types.task_message import TaskMessage
|
7
|
+
from agentex.types.task_message_content import TaskMessageContent
|
8
|
+
from agentex.lib.types.tracing import BaseModelWithTraceParams
|
9
|
+
from agentex.lib.utils.logging import make_logger
|
10
|
+
|
11
|
+
logger = make_logger(__name__)
|
12
|
+
|
13
|
+
|
14
|
+
class MessagesActivityName(str, Enum):
|
15
|
+
CREATE_MESSAGE = "create-message"
|
16
|
+
UPDATE_MESSAGE = "update-message"
|
17
|
+
CREATE_MESSAGES_BATCH = "create-messages-batch"
|
18
|
+
UPDATE_MESSAGES_BATCH = "update-messages-batch"
|
19
|
+
LIST_MESSAGES = "list-messages"
|
20
|
+
|
21
|
+
|
22
|
+
class CreateMessageParams(BaseModelWithTraceParams):
|
23
|
+
task_id: str
|
24
|
+
content: TaskMessageContent
|
25
|
+
emit_updates: bool = True
|
26
|
+
|
27
|
+
|
28
|
+
class UpdateMessageParams(BaseModelWithTraceParams):
|
29
|
+
task_id: str
|
30
|
+
message_id: str
|
31
|
+
content: TaskMessageContent
|
32
|
+
|
33
|
+
|
34
|
+
class CreateMessagesBatchParams(BaseModelWithTraceParams):
|
35
|
+
task_id: str
|
36
|
+
contents: list[TaskMessageContent]
|
37
|
+
emit_updates: bool = True
|
38
|
+
|
39
|
+
|
40
|
+
class UpdateMessagesBatchParams(BaseModelWithTraceParams):
|
41
|
+
task_id: str
|
42
|
+
updates: dict[str, TaskMessageContent]
|
43
|
+
|
44
|
+
|
45
|
+
class ListMessagesParams(BaseModelWithTraceParams):
|
46
|
+
task_id: str
|
47
|
+
limit: int | None = None
|
48
|
+
|
49
|
+
|
50
|
+
class MessagesActivities:
|
51
|
+
def __init__(self, messages_service: MessagesService):
|
52
|
+
self._messages_service = messages_service
|
53
|
+
|
54
|
+
@activity.defn(name=MessagesActivityName.CREATE_MESSAGE)
|
55
|
+
async def create_message(self, params: CreateMessageParams) -> TaskMessage:
|
56
|
+
return await self._messages_service.create_message(
|
57
|
+
task_id=params.task_id,
|
58
|
+
content=params.content,
|
59
|
+
emit_updates=params.emit_updates,
|
60
|
+
)
|
61
|
+
|
62
|
+
@activity.defn(name=MessagesActivityName.UPDATE_MESSAGE)
|
63
|
+
async def update_message(self, params: UpdateMessageParams) -> TaskMessage:
|
64
|
+
return await self._messages_service.update_message(
|
65
|
+
task_id=params.task_id,
|
66
|
+
message_id=params.message_id,
|
67
|
+
content=params.content,
|
68
|
+
)
|
69
|
+
|
70
|
+
@activity.defn(name=MessagesActivityName.CREATE_MESSAGES_BATCH)
|
71
|
+
async def create_messages_batch(
|
72
|
+
self, params: CreateMessagesBatchParams
|
73
|
+
) -> list[TaskMessage]:
|
74
|
+
return await self._messages_service.create_messages_batch(
|
75
|
+
task_id=params.task_id,
|
76
|
+
contents=params.contents,
|
77
|
+
emit_updates=params.emit_updates,
|
78
|
+
)
|
79
|
+
|
80
|
+
@activity.defn(name=MessagesActivityName.UPDATE_MESSAGES_BATCH)
|
81
|
+
async def update_messages_batch(
|
82
|
+
self, params: UpdateMessagesBatchParams
|
83
|
+
) -> list[TaskMessage]:
|
84
|
+
return await self._messages_service.update_messages_batch(
|
85
|
+
task_id=params.task_id,
|
86
|
+
updates=params.updates,
|
87
|
+
)
|
88
|
+
|
89
|
+
@activity.defn(name=MessagesActivityName.LIST_MESSAGES)
|
90
|
+
async def list_messages(self, params: ListMessagesParams) -> list[TaskMessage]:
|
91
|
+
return await self._messages_service.list_messages(
|
92
|
+
task_id=params.task_id,
|
93
|
+
limit=params.limit,
|
94
|
+
)
|
File without changes
|
@@ -0,0 +1,71 @@
|
|
1
|
+
from enum import Enum
|
2
|
+
|
3
|
+
from temporalio import activity
|
4
|
+
|
5
|
+
from agentex.lib.core.services.adk.providers.litellm import LiteLLMService
|
6
|
+
from agentex.lib.types.llm_messages import Completion, LLMConfig
|
7
|
+
from agentex.types.task_message import TaskMessage
|
8
|
+
from agentex.lib.types.tracing import BaseModelWithTraceParams
|
9
|
+
from agentex.lib.utils import logging
|
10
|
+
|
11
|
+
logger = logging.make_logger(__name__)
|
12
|
+
|
13
|
+
|
14
|
+
class LiteLLMActivityName(str, Enum):
|
15
|
+
CHAT_COMPLETION = "chat-completion"
|
16
|
+
CHAT_COMPLETION_AUTO_SEND = "chat-completion-auto-send"
|
17
|
+
# Note: CHAT_COMPLETION_STREAM is not supported in Temporal due to generator limitations
|
18
|
+
CHAT_COMPLETION_STREAM_AUTO_SEND = "chat-completion-stream-auto-send"
|
19
|
+
|
20
|
+
|
21
|
+
class ChatCompletionParams(BaseModelWithTraceParams):
|
22
|
+
llm_config: LLMConfig
|
23
|
+
|
24
|
+
|
25
|
+
class ChatCompletionAutoSendParams(BaseModelWithTraceParams):
|
26
|
+
task_id: str
|
27
|
+
llm_config: LLMConfig
|
28
|
+
|
29
|
+
|
30
|
+
class ChatCompletionStreamAutoSendParams(BaseModelWithTraceParams):
|
31
|
+
task_id: str
|
32
|
+
llm_config: LLMConfig
|
33
|
+
|
34
|
+
|
35
|
+
class LiteLLMActivities:
|
36
|
+
def __init__(self, litellm_service: LiteLLMService):
|
37
|
+
self._litellm_service = litellm_service
|
38
|
+
|
39
|
+
@activity.defn(name=LiteLLMActivityName.CHAT_COMPLETION)
|
40
|
+
async def chat_completion(self, params: ChatCompletionParams) -> Completion:
|
41
|
+
return await self._litellm_service.chat_completion(
|
42
|
+
llm_config=params.llm_config,
|
43
|
+
trace_id=params.trace_id,
|
44
|
+
parent_span_id=params.parent_span_id,
|
45
|
+
)
|
46
|
+
|
47
|
+
@activity.defn(name=LiteLLMActivityName.CHAT_COMPLETION_AUTO_SEND)
|
48
|
+
async def chat_completion_auto_send(self, params: ChatCompletionAutoSendParams) -> TaskMessage | None:
|
49
|
+
"""
|
50
|
+
Activity for non-streaming chat completion with automatic TaskMessage creation.
|
51
|
+
"""
|
52
|
+
return await self._litellm_service.chat_completion_auto_send(
|
53
|
+
task_id=params.task_id,
|
54
|
+
llm_config=params.llm_config,
|
55
|
+
trace_id=params.trace_id,
|
56
|
+
parent_span_id=params.parent_span_id,
|
57
|
+
)
|
58
|
+
|
59
|
+
@activity.defn(name=LiteLLMActivityName.CHAT_COMPLETION_STREAM_AUTO_SEND)
|
60
|
+
async def chat_completion_stream_auto_send(
|
61
|
+
self, params: ChatCompletionStreamAutoSendParams
|
62
|
+
) -> TaskMessage | None:
|
63
|
+
"""
|
64
|
+
Activity for streaming chat completion with automatic TaskMessage creation.
|
65
|
+
"""
|
66
|
+
return await self._litellm_service.chat_completion_stream_auto_send(
|
67
|
+
task_id=params.task_id,
|
68
|
+
llm_config=params.llm_config,
|
69
|
+
trace_id=params.trace_id,
|
70
|
+
parent_span_id=params.parent_span_id,
|
71
|
+
)
|