airia 0.1.13__py3-none-any.whl → 0.1.15__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.
- airia/client/_request_handler/__init__.py +4 -0
- airia/client/_request_handler/async_request_handler.py +272 -0
- airia/client/_request_handler/base_request_handler.py +108 -0
- airia/client/_request_handler/sync_request_handler.py +255 -0
- airia/client/async_client.py +27 -678
- airia/client/base_client.py +2 -368
- airia/client/conversations/__init__.py +4 -0
- airia/client/conversations/async_conversations.py +187 -0
- airia/client/conversations/base_conversations.py +135 -0
- airia/client/conversations/sync_conversations.py +182 -0
- airia/client/deployments/__init__.py +11 -0
- airia/client/deployments/async_deployments.py +112 -0
- airia/client/deployments/base_deployments.py +95 -0
- airia/client/deployments/sync_deployments.py +112 -0
- airia/client/pipeline_execution/__init__.py +4 -0
- airia/client/pipeline_execution/async_pipeline_execution.py +178 -0
- airia/client/pipeline_execution/base_pipeline_execution.py +96 -0
- airia/client/pipeline_execution/sync_pipeline_execution.py +178 -0
- airia/client/pipelines_config/__init__.py +4 -0
- airia/client/pipelines_config/async_pipelines_config.py +65 -0
- airia/client/pipelines_config/base_pipelines_config.py +44 -0
- airia/client/pipelines_config/sync_pipelines_config.py +65 -0
- airia/client/project/__init__.py +4 -0
- airia/client/project/async_project.py +122 -0
- airia/client/project/base_project.py +74 -0
- airia/client/project/sync_project.py +120 -0
- airia/client/store/__init__.py +4 -0
- airia/client/store/async_store.py +377 -0
- airia/client/store/base_store.py +243 -0
- airia/client/store/sync_store.py +352 -0
- airia/client/sync_client.py +27 -656
- airia/constants.py +1 -1
- airia/exceptions.py +8 -8
- airia/logs.py +9 -9
- airia/types/_request_data.py +11 -4
- airia/types/api/__init__.py +0 -27
- airia/types/api/conversations/__init__.py +13 -0
- airia/types/api/{conversations.py → conversations/_conversations.py} +49 -12
- airia/types/api/deployments/__init__.py +26 -0
- airia/types/api/deployments/get_deployment.py +106 -0
- airia/types/api/deployments/get_deployments.py +224 -0
- airia/types/api/pipeline_execution/__init__.py +13 -0
- airia/types/api/{pipeline_execution.py → pipeline_execution/_pipeline_execution.py} +30 -13
- airia/types/api/pipelines_config/__init__.py +35 -0
- airia/types/api/pipelines_config/get_pipeline_config.py +554 -0
- airia/types/api/project/__init__.py +3 -0
- airia/types/api/{get_projects.py → project/get_projects.py} +16 -4
- airia/types/api/store/__init__.py +19 -0
- airia/types/api/store/get_file.py +145 -0
- airia/types/api/store/get_files.py +21 -0
- airia/types/sse/__init__.py +1 -0
- airia/types/sse/sse_messages.py +364 -48
- airia/utils/sse_parser.py +5 -4
- {airia-0.1.13.dist-info → airia-0.1.15.dist-info}/METADATA +4 -2
- airia-0.1.15.dist-info/RECORD +62 -0
- airia/types/api/get_pipeline_config.py +0 -214
- airia-0.1.13.dist-info/RECORD +0 -24
- {airia-0.1.13.dist-info → airia-0.1.15.dist-info}/WHEEL +0 -0
- {airia-0.1.13.dist-info → airia-0.1.15.dist-info}/licenses/LICENSE +0 -0
- {airia-0.1.13.dist-info → airia-0.1.15.dist-info}/top_level.txt +0 -0
airia/constants.py
CHANGED
airia/exceptions.py
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
class AiriaAPIError(Exception):
|
|
2
|
-
|
|
2
|
+
"""
|
|
3
3
|
Custom exception for Airia API errors.
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
This exception is raised when an API request to the Airia service fails.
|
|
6
6
|
It contains both the HTTP status code and error message to help with
|
|
7
7
|
debugging and proper error handling.
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
Attributes:
|
|
10
10
|
status_code (int): The HTTP status code returned by the API
|
|
11
11
|
message (str): The error message describing what went wrong
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
14
|
def __init__(self, status_code: int, message: str):
|
|
15
15
|
"""
|
|
16
16
|
Initialize the exception with a status code and error message.
|
|
17
|
-
|
|
17
|
+
|
|
18
18
|
Args:
|
|
19
19
|
status_code (int): The HTTP status code of the failed request
|
|
20
20
|
message (str): A descriptive error message
|
|
@@ -22,11 +22,11 @@ class AiriaAPIError(Exception):
|
|
|
22
22
|
super().__init__(f"{status_code}: {message}")
|
|
23
23
|
self.status_code = status_code
|
|
24
24
|
self.message = message
|
|
25
|
-
|
|
25
|
+
|
|
26
26
|
def __str__(self) -> str:
|
|
27
27
|
"""
|
|
28
28
|
Return a string representation of the exception.
|
|
29
|
-
|
|
29
|
+
|
|
30
30
|
Returns:
|
|
31
31
|
str: A formatted string containing the status code and message
|
|
32
32
|
"""
|
airia/logs.py
CHANGED
|
@@ -8,13 +8,13 @@ import loguru
|
|
|
8
8
|
from loguru import logger
|
|
9
9
|
|
|
10
10
|
# Create a context variable to store correlation ID
|
|
11
|
-
correlation_id_context: ContextVar[str] = ContextVar(
|
|
11
|
+
correlation_id_context: ContextVar[str] = ContextVar("correlation_id", default="")
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
def get_correlation_id() -> str:
|
|
15
15
|
"""
|
|
16
16
|
Get the current correlation ID from context or return empty string if not set.
|
|
17
|
-
|
|
17
|
+
|
|
18
18
|
Returns:
|
|
19
19
|
str: The current correlation ID
|
|
20
20
|
"""
|
|
@@ -24,10 +24,10 @@ def get_correlation_id() -> str:
|
|
|
24
24
|
def set_correlation_id(correlation_id: Optional[str] = None) -> str:
|
|
25
25
|
"""
|
|
26
26
|
Set a correlation ID in the current context.
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
Args:
|
|
29
29
|
correlation_id (Optional[str]): The correlation ID to set. If None, a new UUID will be generated.
|
|
30
|
-
|
|
30
|
+
|
|
31
31
|
Returns:
|
|
32
32
|
str: The correlation ID that was set
|
|
33
33
|
"""
|
|
@@ -39,7 +39,7 @@ def set_correlation_id(correlation_id: Optional[str] = None) -> str:
|
|
|
39
39
|
|
|
40
40
|
def clear_correlation_id() -> None:
|
|
41
41
|
"""Clear the correlation ID from the current context."""
|
|
42
|
-
correlation_id_context.set(
|
|
42
|
+
correlation_id_context.set("")
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
# Define a function to be used as a filter to inject correlation_id
|
|
@@ -98,7 +98,7 @@ def configure_logging(
|
|
|
98
98
|
|
|
99
99
|
# Add the new handler
|
|
100
100
|
logger.add(sink, **kwargs)
|
|
101
|
-
|
|
101
|
+
|
|
102
102
|
return logger
|
|
103
103
|
|
|
104
104
|
|
|
@@ -107,15 +107,15 @@ if __name__ == "__main__":
|
|
|
107
107
|
# Basic configuration (uses sys.stderr)
|
|
108
108
|
log = configure_logging()
|
|
109
109
|
log.info("Basic logging configured successfully")
|
|
110
|
-
|
|
110
|
+
|
|
111
111
|
# Set a correlation ID
|
|
112
112
|
set_correlation_id("request-123")
|
|
113
113
|
log.info("This log has a correlation ID")
|
|
114
|
-
|
|
114
|
+
|
|
115
115
|
# Change correlation ID
|
|
116
116
|
set_correlation_id("request-456")
|
|
117
117
|
log.info("This log has a different correlation ID")
|
|
118
|
-
|
|
118
|
+
|
|
119
119
|
# Use auto-generated correlation ID
|
|
120
120
|
set_correlation_id()
|
|
121
121
|
log.info("This log has an auto-generated correlation ID")
|
airia/types/_request_data.py
CHANGED
|
@@ -4,28 +4,35 @@ Internal data structures for HTTP request preparation.
|
|
|
4
4
|
This module defines the data models used internally by the SDK clients
|
|
5
5
|
to organize and pass request information between methods.
|
|
6
6
|
"""
|
|
7
|
-
from typing import Any, Dict, Optional
|
|
8
7
|
|
|
9
|
-
from
|
|
8
|
+
from io import BufferedIOBase
|
|
9
|
+
from typing import Any, Dict, Optional, Tuple
|
|
10
|
+
|
|
11
|
+
from pydantic import BaseModel, ConfigDict
|
|
10
12
|
|
|
11
13
|
|
|
12
14
|
class RequestData(BaseModel):
|
|
13
15
|
"""
|
|
14
16
|
Structured container for HTTP request components.
|
|
15
|
-
|
|
17
|
+
|
|
16
18
|
This internal data structure organizes all the components needed to make
|
|
17
19
|
an HTTP request, including the URL, headers, payload, query parameters,
|
|
18
20
|
and correlation ID for tracing.
|
|
19
|
-
|
|
21
|
+
|
|
20
22
|
Attributes:
|
|
21
23
|
url: The complete URL for the HTTP request
|
|
22
24
|
payload: Optional JSON payload for the request body
|
|
23
25
|
params: Optional query parameters to append to the URL
|
|
26
|
+
files: Optional file data to be uploaded in the request body
|
|
24
27
|
headers: HTTP headers including authentication and content-type
|
|
25
28
|
correlation_id: Unique identifier for request tracing and logging
|
|
26
29
|
"""
|
|
30
|
+
|
|
31
|
+
model_config = ConfigDict(arbitrary_types_allowed=True)
|
|
32
|
+
|
|
27
33
|
url: str
|
|
28
34
|
payload: Optional[Dict[str, Any]]
|
|
29
35
|
params: Optional[Dict[str, Any]]
|
|
36
|
+
files: Optional[Dict[str, Tuple[str, BufferedIOBase, str]]]
|
|
30
37
|
headers: Dict[str, Any]
|
|
31
38
|
correlation_id: str
|
airia/types/api/__init__.py
CHANGED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
API response models for the Airia SDK.
|
|
3
|
-
|
|
4
|
-
This package contains Pydantic models that define the structure of responses
|
|
5
|
-
from various Airia API endpoints, including pipeline execution, project management,
|
|
6
|
-
conversation handling, and configuration retrieval.
|
|
7
|
-
"""
|
|
8
|
-
from .get_projects import ProjectItem
|
|
9
|
-
from .get_pipeline_config import GetPipelineConfigResponse
|
|
10
|
-
from .pipeline_execution import (
|
|
11
|
-
PipelineExecutionDebugResponse,
|
|
12
|
-
PipelineExecutionResponse,
|
|
13
|
-
PipelineExecutionAsyncStreamedResponse,
|
|
14
|
-
PipelineExecutionStreamedResponse,
|
|
15
|
-
)
|
|
16
|
-
from .conversations import CreateConversationResponse, GetConversationResponse
|
|
17
|
-
|
|
18
|
-
__all__ = [
|
|
19
|
-
"PipelineExecutionDebugResponse",
|
|
20
|
-
"PipelineExecutionResponse",
|
|
21
|
-
"PipelineExecutionStreamedResponse",
|
|
22
|
-
"PipelineExecutionAsyncStreamedResponse",
|
|
23
|
-
"GetPipelineConfigResponse",
|
|
24
|
-
"ProjectItem",
|
|
25
|
-
"CreateConversationResponse",
|
|
26
|
-
"GetConversationResponse",
|
|
27
|
-
]
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from ._conversations import (
|
|
2
|
+
ConversationMessage,
|
|
3
|
+
CreateConversationResponse,
|
|
4
|
+
GetConversationResponse,
|
|
5
|
+
PolicyRedaction,
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
__all__ = [
|
|
9
|
+
"CreateConversationResponse",
|
|
10
|
+
"GetConversationResponse",
|
|
11
|
+
"ConversationMessage",
|
|
12
|
+
"PolicyRedaction",
|
|
13
|
+
]
|
|
@@ -4,6 +4,7 @@ Pydantic models for conversation management API responses.
|
|
|
4
4
|
This module defines data structures for conversation operations including
|
|
5
5
|
creation, retrieval, and message management within the Airia platform.
|
|
6
6
|
"""
|
|
7
|
+
|
|
7
8
|
from typing import Optional, List, Dict
|
|
8
9
|
from datetime import datetime
|
|
9
10
|
|
|
@@ -11,24 +12,37 @@ from pydantic import BaseModel, Field
|
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
class PolicyRedaction(BaseModel):
|
|
14
|
-
"""
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
"""Information about content that was redacted due to policy violations.
|
|
16
|
+
|
|
17
17
|
When content in a conversation violates platform policies, this model
|
|
18
18
|
tracks what was redacted and where it occurred.
|
|
19
|
+
|
|
20
|
+
Attributes:
|
|
21
|
+
violating_text: The text content that violated platform policies
|
|
22
|
+
violating_message_index: Index of the message containing the violation
|
|
19
23
|
"""
|
|
24
|
+
|
|
20
25
|
violating_text: str = Field(alias="violatingText")
|
|
21
26
|
violating_message_index: int = Field(alias="violatingMessageIndex")
|
|
22
27
|
|
|
23
28
|
|
|
24
29
|
class ConversationMessage(BaseModel):
|
|
25
|
-
"""
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
"""Individual message within a conversation.
|
|
31
|
+
|
|
28
32
|
Represents a single message exchange in a conversation, which can be
|
|
29
33
|
from a user, assistant, or system. Messages may include text content
|
|
30
34
|
and optional image attachments.
|
|
35
|
+
|
|
36
|
+
Attributes:
|
|
37
|
+
id: Unique identifier for the message
|
|
38
|
+
conversation_id: ID of the conversation this message belongs to
|
|
39
|
+
message: Optional text content of the message
|
|
40
|
+
created_at: Timestamp when the message was created
|
|
41
|
+
updated_at: Timestamp when the message was last updated
|
|
42
|
+
role: Role of the message sender (user, assistant, system)
|
|
43
|
+
images: Optional list of image URLs or identifiers
|
|
31
44
|
"""
|
|
45
|
+
|
|
32
46
|
id: str
|
|
33
47
|
conversation_id: str = Field(alias="conversationId")
|
|
34
48
|
message: Optional[str] = None
|
|
@@ -39,13 +53,26 @@ class ConversationMessage(BaseModel):
|
|
|
39
53
|
|
|
40
54
|
|
|
41
55
|
class GetConversationResponse(BaseModel):
|
|
42
|
-
"""
|
|
43
|
-
|
|
44
|
-
|
|
56
|
+
"""Complete conversation data including messages and metadata.
|
|
57
|
+
|
|
45
58
|
This response contains all information about a conversation including
|
|
46
59
|
its message history, associated files, execution status, and any
|
|
47
60
|
content moderation actions that have been applied.
|
|
61
|
+
|
|
62
|
+
Attributes:
|
|
63
|
+
user_id: ID of the user who owns the conversation
|
|
64
|
+
conversation_id: Unique identifier for the conversation
|
|
65
|
+
messages: List of messages in the conversation
|
|
66
|
+
title: Optional title for the conversation
|
|
67
|
+
websocket_url: Optional WebSocket URL for real-time updates
|
|
68
|
+
deployment_id: Optional ID of the deployment handling the conversation
|
|
69
|
+
data_source_files: Dictionary mapping data sources to their files
|
|
70
|
+
is_bookmarked: Whether the conversation is bookmarked by the user
|
|
71
|
+
policy_redactions: Optional dictionary of policy violations and redactions
|
|
72
|
+
last_execution_status: Optional status of the last execution
|
|
73
|
+
last_execution_id: Optional ID of the last execution
|
|
48
74
|
"""
|
|
75
|
+
|
|
49
76
|
user_id: str = Field(alias="userId")
|
|
50
77
|
conversation_id: str = Field(alias="conversationId")
|
|
51
78
|
messages: List[ConversationMessage]
|
|
@@ -62,12 +89,22 @@ class GetConversationResponse(BaseModel):
|
|
|
62
89
|
|
|
63
90
|
|
|
64
91
|
class CreateConversationResponse(BaseModel):
|
|
65
|
-
"""
|
|
66
|
-
|
|
67
|
-
|
|
92
|
+
"""Response data for newly created conversations.
|
|
93
|
+
|
|
68
94
|
Contains the essential information needed to begin interacting with
|
|
69
95
|
a new conversation, including connection details and visual metadata.
|
|
96
|
+
|
|
97
|
+
Attributes:
|
|
98
|
+
user_id: ID of the user who created the conversation
|
|
99
|
+
conversation_id: Unique identifier for the new conversation
|
|
100
|
+
websocket_url: WebSocket URL for real-time conversation updates
|
|
101
|
+
deployment_id: ID of the deployment handling the conversation
|
|
102
|
+
icon_id: Optional ID of the conversation icon
|
|
103
|
+
icon_url: Optional URL of the conversation icon
|
|
104
|
+
description: Optional description of the conversation
|
|
105
|
+
space_name: Optional name of the space containing the conversation
|
|
70
106
|
"""
|
|
107
|
+
|
|
71
108
|
user_id: str = Field(alias="userId")
|
|
72
109
|
conversation_id: str = Field(alias="conversationId")
|
|
73
110
|
websocket_url: str = Field(alias="websocketUrl")
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"""
|
|
2
|
+
API types for deployment management.
|
|
3
|
+
|
|
4
|
+
This module exports all deployment-related response models and types
|
|
5
|
+
used by the deployments API endpoints.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from .get_deployment import GetDeploymentResponse
|
|
9
|
+
from .get_deployments import (
|
|
10
|
+
AboutDeploymentMetadata,
|
|
11
|
+
DataSource,
|
|
12
|
+
DeploymentItem,
|
|
13
|
+
GetDeploymentsResponse,
|
|
14
|
+
Project,
|
|
15
|
+
UserPrompt,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
__all__ = [
|
|
19
|
+
"AboutDeploymentMetadata",
|
|
20
|
+
"DataSource",
|
|
21
|
+
"DeploymentItem",
|
|
22
|
+
"GetDeploymentResponse",
|
|
23
|
+
"GetDeploymentsResponse",
|
|
24
|
+
"Project",
|
|
25
|
+
"UserPrompt",
|
|
26
|
+
]
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Pydantic models for single deployment API responses.
|
|
3
|
+
|
|
4
|
+
This module defines the data structures returned by the get_deployment endpoint,
|
|
5
|
+
which retrieves a single deployment by ID.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from typing import List, Optional
|
|
9
|
+
from uuid import UUID
|
|
10
|
+
|
|
11
|
+
from pydantic import BaseModel, Field
|
|
12
|
+
|
|
13
|
+
from .get_deployments import AboutDeploymentMetadata, DataSource, UserPrompt
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class GetDeploymentResponse(BaseModel):
|
|
17
|
+
"""
|
|
18
|
+
Response model for retrieving a single deployment.
|
|
19
|
+
|
|
20
|
+
Represents a deployment DTO with complete information about the deployment,
|
|
21
|
+
including its configuration, associated resources, and metadata.
|
|
22
|
+
|
|
23
|
+
Attributes:
|
|
24
|
+
id: Unique deployment identifier
|
|
25
|
+
pipeline_id: Unique identifier of the pipeline powering this deployment
|
|
26
|
+
pipeline_name: Name of the pipeline associated with this deployment
|
|
27
|
+
project_id: Unique identifier of the project containing this deployment
|
|
28
|
+
deployment_name: Human-readable name of the deployment
|
|
29
|
+
deployment_icon_url: Optional URL to the deployment's icon image
|
|
30
|
+
deployment_icon_id: Optional unique identifier for the deployment icon
|
|
31
|
+
description: Detailed description of what the deployment does
|
|
32
|
+
tags: List of tags for categorizing and filtering deployments
|
|
33
|
+
is_recommended: Whether this deployment is marked as recommended
|
|
34
|
+
user_prompts: List of user prompts associated with this deployment
|
|
35
|
+
deployment_prompt: Optional hardcoded prompt type for the deployment
|
|
36
|
+
user_ids: List of user IDs that have access to this deployment
|
|
37
|
+
group_ids: List of group IDs that have access to this deployment
|
|
38
|
+
conversation_type: Type of conversation this deployment supports
|
|
39
|
+
data_sources: List of data sources that the deployment can access
|
|
40
|
+
pipeline_user_id: ID of the user who created the underlying pipeline
|
|
41
|
+
about: Optional metadata for the About tab
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
id: UUID = Field(description="Gets the deployment ID.")
|
|
45
|
+
pipeline_id: UUID = Field(
|
|
46
|
+
alias="pipelineId",
|
|
47
|
+
description="Gets the pipeline ID associated with this deployment.",
|
|
48
|
+
)
|
|
49
|
+
pipeline_name: Optional[str] = Field(
|
|
50
|
+
None,
|
|
51
|
+
alias="pipelineName",
|
|
52
|
+
description="Gets the pipeline name associated with this deployment.",
|
|
53
|
+
)
|
|
54
|
+
project_id: UUID = Field(
|
|
55
|
+
alias="projectId",
|
|
56
|
+
description="Gets the project ID associated with this deployment.",
|
|
57
|
+
)
|
|
58
|
+
deployment_name: str = Field(
|
|
59
|
+
alias="deploymentName", description="Gets the deployment name."
|
|
60
|
+
)
|
|
61
|
+
deployment_icon_url: Optional[str] = Field(
|
|
62
|
+
None, alias="deploymentIconUrl", description="Gets the Deployment Icon URL."
|
|
63
|
+
)
|
|
64
|
+
deployment_icon_id: Optional[UUID] = Field(
|
|
65
|
+
None, alias="deploymentIconId", description="Gets the Deployment Icon Id."
|
|
66
|
+
)
|
|
67
|
+
description: str = Field(description="Gets the deployment description.")
|
|
68
|
+
tags: List[str] = Field(description="Gets the Tags.")
|
|
69
|
+
is_recommended: bool = Field(
|
|
70
|
+
alias="isRecommended",
|
|
71
|
+
description="Gets a value indicating whether the deployment is recommended.",
|
|
72
|
+
)
|
|
73
|
+
user_prompts: List[UserPrompt] = Field(
|
|
74
|
+
alias="userPrompts",
|
|
75
|
+
description="Gets the user prompts associated with this deployment.",
|
|
76
|
+
)
|
|
77
|
+
deployment_prompt: Optional[str] = Field(
|
|
78
|
+
None,
|
|
79
|
+
alias="deploymentPrompt",
|
|
80
|
+
description="Gets or sets the optional deployment prompt type.",
|
|
81
|
+
)
|
|
82
|
+
user_ids: Optional[List[UUID]] = Field(
|
|
83
|
+
alias="userIds",
|
|
84
|
+
description="Gets or sets the user IDs associated with this deployment.",
|
|
85
|
+
)
|
|
86
|
+
group_ids: Optional[List[UUID]] = Field(
|
|
87
|
+
alias="groupIds",
|
|
88
|
+
description="Gets or sets the group IDs associated with this deployment.",
|
|
89
|
+
)
|
|
90
|
+
conversation_type: str = Field(
|
|
91
|
+
alias="conversationType",
|
|
92
|
+
description="Gets or sets the conversation start type for this deployment.",
|
|
93
|
+
)
|
|
94
|
+
data_sources: List[DataSource] = Field(
|
|
95
|
+
alias="dataSources",
|
|
96
|
+
description="Gets the data sources associated with this deployment.",
|
|
97
|
+
)
|
|
98
|
+
pipeline_user_id: Optional[UUID] = Field(
|
|
99
|
+
None,
|
|
100
|
+
alias="pipelineUserId",
|
|
101
|
+
description="Gets the ID of the user who created deployed agent.",
|
|
102
|
+
)
|
|
103
|
+
about: Optional[AboutDeploymentMetadata] = Field(
|
|
104
|
+
None,
|
|
105
|
+
description="Gets the deployment metadata for the 'About' section.",
|
|
106
|
+
)
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Pydantic models for deployment API responses.
|
|
3
|
+
|
|
4
|
+
This module defines the data structures returned by deployment-related endpoints,
|
|
5
|
+
including deployment listings with metadata, user prompts, and data sources.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from datetime import datetime
|
|
9
|
+
from typing import List, Optional
|
|
10
|
+
from uuid import UUID
|
|
11
|
+
|
|
12
|
+
from pydantic import BaseModel, Field
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class Project(BaseModel):
|
|
16
|
+
"""
|
|
17
|
+
The base project model.
|
|
18
|
+
|
|
19
|
+
Represents basic project information within deployment contexts.
|
|
20
|
+
|
|
21
|
+
Attributes:
|
|
22
|
+
id: Unique project identifier
|
|
23
|
+
name: Human-readable project name
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
id: UUID = Field(description="Gets or sets the project identifier.")
|
|
27
|
+
name: str = Field(description="Gets or sets the project name.")
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class DataSource(BaseModel):
|
|
31
|
+
"""
|
|
32
|
+
Condensed version of the datasource DTO.
|
|
33
|
+
|
|
34
|
+
Represents basic data source information associated with deployments.
|
|
35
|
+
|
|
36
|
+
Attributes:
|
|
37
|
+
id: Optional unique identifier for the data source
|
|
38
|
+
name: Optional human-readable name of the data source
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
id: Optional[UUID] = Field(
|
|
42
|
+
None, description="Gets or Sets the datasource identifier."
|
|
43
|
+
)
|
|
44
|
+
name: Optional[str] = Field(None, description="Gets or Sets the datasource name.")
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class UserPrompt(BaseModel):
|
|
48
|
+
"""
|
|
49
|
+
Represents a user prompt entity in the system.
|
|
50
|
+
|
|
51
|
+
User prompts are reusable text templates that can be associated with deployments
|
|
52
|
+
to provide consistent interaction patterns.
|
|
53
|
+
|
|
54
|
+
Attributes:
|
|
55
|
+
user_prompt_id: Unique identifier for the user prompt
|
|
56
|
+
name: Human-readable name of the user prompt
|
|
57
|
+
message: The actual prompt message content
|
|
58
|
+
description: Detailed description of what the prompt does
|
|
59
|
+
updated_at: Timestamp of when the prompt was last modified
|
|
60
|
+
active_deployments: Number of active deployments using this prompt
|
|
61
|
+
project_id: Unique identifier of the project containing this prompt
|
|
62
|
+
project_name: Name of the project containing this prompt
|
|
63
|
+
project: Complete project information associated with this prompt
|
|
64
|
+
"""
|
|
65
|
+
|
|
66
|
+
user_prompt_id: UUID = Field(
|
|
67
|
+
alias="userPromptId",
|
|
68
|
+
description="Gets or sets the unique identifier for the user prompt.",
|
|
69
|
+
)
|
|
70
|
+
name: str = Field(description="Gets or sets the name of the UserPrompt.")
|
|
71
|
+
message: str = Field(description="Gets or sets the UserPrompt Message.")
|
|
72
|
+
description: str = Field(description="Gets or sets the UserPrompt Description.")
|
|
73
|
+
updated_at: datetime = Field(
|
|
74
|
+
alias="updatedAt",
|
|
75
|
+
description="Gets or sets the last modified date of the UserPrompt.",
|
|
76
|
+
)
|
|
77
|
+
active_deployments: int = Field(
|
|
78
|
+
alias="activeDeployments",
|
|
79
|
+
description="Gets or sets the number of active deployments for the UserPrompt.",
|
|
80
|
+
)
|
|
81
|
+
project_id: UUID = Field(
|
|
82
|
+
alias="projectId",
|
|
83
|
+
description="Gets or sets the unique identifier of the project that the prompt belongs to.",
|
|
84
|
+
)
|
|
85
|
+
project_name: Optional[str] = Field(
|
|
86
|
+
None,
|
|
87
|
+
alias="projectName",
|
|
88
|
+
description="Gets or sets the name of the project that the prompt belongs to.",
|
|
89
|
+
)
|
|
90
|
+
project: Optional[Project] = Field(None, description="Gets or sets the project.")
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
class AboutDeploymentMetadata(BaseModel):
|
|
94
|
+
"""
|
|
95
|
+
Represents metadata about a deployment for the About tab.
|
|
96
|
+
|
|
97
|
+
Contains additional information displayed in the deployment's About section,
|
|
98
|
+
including documentation and multimedia resources.
|
|
99
|
+
|
|
100
|
+
Attributes:
|
|
101
|
+
version: Version of the About Deployment metadata format
|
|
102
|
+
video_url: URL to an explanatory video for the deployment
|
|
103
|
+
"""
|
|
104
|
+
|
|
105
|
+
version: int = Field(
|
|
106
|
+
description="Gets or sets the version of the About Deployment metadata."
|
|
107
|
+
)
|
|
108
|
+
video_url: str = Field(alias="videoUrl", description="Gets or sets the video url.")
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
class DeploymentItem(BaseModel):
|
|
112
|
+
"""
|
|
113
|
+
Represents a deployment DTO.
|
|
114
|
+
|
|
115
|
+
A deployment is a configured and published AI agent that can be used for conversations.
|
|
116
|
+
It contains all the necessary information including the underlying pipeline,
|
|
117
|
+
associated data sources, user prompts, and configuration settings.
|
|
118
|
+
|
|
119
|
+
Attributes:
|
|
120
|
+
deployment_id: Unique identifier for the deployment
|
|
121
|
+
pipeline_id: Unique identifier of the pipeline powering this deployment
|
|
122
|
+
deployment_name: Human-readable name of the deployment
|
|
123
|
+
deployment_icon_url: Optional URL to the deployment's icon image
|
|
124
|
+
description: Detailed description of what the deployment does
|
|
125
|
+
project_id: Unique identifier of the project containing this deployment
|
|
126
|
+
project_name: Name of the project containing this deployment
|
|
127
|
+
user_prompts: List of user prompts associated with this deployment
|
|
128
|
+
data_sources: List of data sources that the deployment can access
|
|
129
|
+
is_recommended: Whether this deployment is marked as recommended
|
|
130
|
+
tags: List of tags for categorizing and filtering deployments
|
|
131
|
+
is_pinned: Whether this deployment is pinned for the current user
|
|
132
|
+
deployment_type: Type of deployment (Chat, AddinChat, etc.)
|
|
133
|
+
conversation_type: Type of conversation this deployment supports
|
|
134
|
+
created_at: Timestamp when the deployment was created
|
|
135
|
+
pipeline_user_id: ID of the user who created the underlying pipeline
|
|
136
|
+
pipeline_name: Name of the underlying pipeline/agent
|
|
137
|
+
deployment_prompt: Optional hardcoded prompt type for the deployment
|
|
138
|
+
about_deployment_metadata: Optional metadata for the About tab
|
|
139
|
+
"""
|
|
140
|
+
|
|
141
|
+
deployment_id: UUID = Field(
|
|
142
|
+
alias="deploymentId", description="Gets the deployment ID."
|
|
143
|
+
)
|
|
144
|
+
pipeline_id: UUID = Field(
|
|
145
|
+
alias="pipelineId",
|
|
146
|
+
description="Gets the pipeline ID associated with this deployment.",
|
|
147
|
+
)
|
|
148
|
+
deployment_name: str = Field(
|
|
149
|
+
alias="deploymentName", description="Gets the deployment name."
|
|
150
|
+
)
|
|
151
|
+
deployment_icon_url: Optional[str] = Field(
|
|
152
|
+
None, alias="deploymentIconUrl", description="Gets the Deployment Icon URL."
|
|
153
|
+
)
|
|
154
|
+
description: str = Field(description="Gets the deployment description.")
|
|
155
|
+
project_id: UUID = Field(
|
|
156
|
+
alias="projectId",
|
|
157
|
+
description="Gets the projectId associated with this deployment.",
|
|
158
|
+
)
|
|
159
|
+
project_name: Optional[str] = Field(
|
|
160
|
+
None,
|
|
161
|
+
alias="projectName",
|
|
162
|
+
description="Gets the project name associated with this deployment.",
|
|
163
|
+
)
|
|
164
|
+
user_prompts: List[UserPrompt] = Field(
|
|
165
|
+
alias="userPrompts",
|
|
166
|
+
description="Gets the user prompts associated with this deployment.",
|
|
167
|
+
)
|
|
168
|
+
data_sources: List[DataSource] = Field(
|
|
169
|
+
alias="dataSources",
|
|
170
|
+
description="Gets the data sources associated with this deployment.",
|
|
171
|
+
)
|
|
172
|
+
is_recommended: bool = Field(
|
|
173
|
+
alias="isRecommended",
|
|
174
|
+
description="Gets a value indicating whether the deployment is recommended.",
|
|
175
|
+
)
|
|
176
|
+
tags: List[str] = Field(description="Gets the Tags.")
|
|
177
|
+
is_pinned: bool = Field(
|
|
178
|
+
alias="isPinned",
|
|
179
|
+
description="Gets a value indicating whether the deployment is pinned for this user.",
|
|
180
|
+
)
|
|
181
|
+
deployment_type: str = Field(
|
|
182
|
+
alias="deploymentType", description="Gets the deployment type."
|
|
183
|
+
)
|
|
184
|
+
conversation_type: str = Field(
|
|
185
|
+
alias="conversationType",
|
|
186
|
+
description="Gets or sets the conversation start type for this deployment.",
|
|
187
|
+
)
|
|
188
|
+
created_at: Optional[datetime] = Field(
|
|
189
|
+
None, alias="createdAt", description="Gets when the deployment was created."
|
|
190
|
+
)
|
|
191
|
+
pipeline_user_id: Optional[UUID] = Field(
|
|
192
|
+
None,
|
|
193
|
+
alias="pipelineUserId",
|
|
194
|
+
description="Gets the ID of the user who created deployed agent.",
|
|
195
|
+
)
|
|
196
|
+
pipeline_name: Optional[str] = Field(
|
|
197
|
+
None, alias="pipelineName", description="Gets the name of the agent."
|
|
198
|
+
)
|
|
199
|
+
deployment_prompt: Optional[str] = Field(
|
|
200
|
+
None, alias="deploymentPrompt", description="Gets the deployment prompt."
|
|
201
|
+
)
|
|
202
|
+
about_deployment_metadata: Optional[AboutDeploymentMetadata] = Field(
|
|
203
|
+
None,
|
|
204
|
+
alias="aboutDeploymentMetadata",
|
|
205
|
+
description="Gets the metadata about the deployment, such as the video link.",
|
|
206
|
+
)
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
class GetDeploymentsResponse(BaseModel):
|
|
210
|
+
"""
|
|
211
|
+
Paged results for deployment entities.
|
|
212
|
+
|
|
213
|
+
Contains a paginated list of deployments along with the total count,
|
|
214
|
+
allowing for efficient retrieval of large deployment collections.
|
|
215
|
+
|
|
216
|
+
Attributes:
|
|
217
|
+
items: List of deployment items in the current page
|
|
218
|
+
total_count: Total number of deployments matching the query
|
|
219
|
+
"""
|
|
220
|
+
|
|
221
|
+
items: List[DeploymentItem] = Field(description="Gets or sets a list of items.")
|
|
222
|
+
total_count: int = Field(
|
|
223
|
+
alias="totalCount", description="Gets or sets the total count of items."
|
|
224
|
+
)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from ._pipeline_execution import (
|
|
2
|
+
PipelineExecutionAsyncStreamedResponse,
|
|
3
|
+
PipelineExecutionDebugResponse,
|
|
4
|
+
PipelineExecutionResponse,
|
|
5
|
+
PipelineExecutionStreamedResponse,
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
__all__ = [
|
|
9
|
+
"PipelineExecutionDebugResponse",
|
|
10
|
+
"PipelineExecutionResponse",
|
|
11
|
+
"PipelineExecutionStreamedResponse",
|
|
12
|
+
"PipelineExecutionAsyncStreamedResponse",
|
|
13
|
+
]
|