update py sdk - add stateless and stateful calls

This commit is contained in:
ramnique 2025-01-15 15:45:02 +05:30
parent 2aba775bcb
commit a22d54fd3c
7 changed files with 247 additions and 119 deletions

54
apps/python-sdk/schema.py Normal file
View file

@ -0,0 +1,54 @@
from typing import List, Optional, Union, Any, Literal
from pydantic import BaseModel
class SystemMessage(BaseModel):
role: Literal['system']
content: str
class UserMessage(BaseModel):
role: Literal['user']
content: str
class AssistantMessage(BaseModel):
role: Literal['assistant']
content: str
agenticSender: Optional[str] = None
agenticResponseType: Literal['internal', 'external']
class FunctionCall(BaseModel):
name: str
arguments: str
class ToolCall(BaseModel):
id: str
type: Literal['function']
function: FunctionCall
class AssistantMessageWithToolCalls(BaseModel):
role: Literal['assistant']
content: Optional[str] = None
tool_calls: List[ToolCall]
agenticSender: Optional[str] = None
agenticResponseType: Literal['internal', 'external']
class ToolMessage(BaseModel):
role: Literal['tool']
content: str
tool_call_id: str
tool_name: str
ApiMessage = Union[
SystemMessage,
UserMessage,
AssistantMessage,
AssistantMessageWithToolCalls,
ToolMessage
]
class ApiRequest(BaseModel):
messages: List[ApiMessage]
state: Any
class ApiResponse(BaseModel):
messages: List[ApiMessage]
state: Any