Spaces:
Sleeping
Sleeping
import datetime | |
import uuid | |
from abc import abstractmethod | |
from typing import Any, AsyncGenerator, List, Optional | |
from pydantic import BaseModel, Field | |
from aworld.output.base import Output | |
class ChatCompletionMessage(BaseModel): | |
role: str = Field(..., description="The role of the message") | |
content: str = Field(..., description="The content of the message") | |
trace_id: str = Field(None, description="The trace id") | |
class ChatCompletionRequest(BaseModel): | |
user_id: str = Field(None, description="The user id") | |
session_id: str = Field( | |
None, | |
description="The session id, if not provided, a new session will be created", | |
) | |
query_id: str = Field(None, description="The query id") | |
trace_id: str = Field(None, description="The trace id") | |
model: str = Field(..., description="The model to use") | |
messages: List[ChatCompletionMessage] = Field( | |
..., description="The messages to send to the agent" | |
) | |
class ChatCompletionChoice(BaseModel): | |
index: int = 0 | |
delta: ChatCompletionMessage = Field( | |
..., description="The delta message from the agent" | |
) | |
class ChatCompletionResponse(BaseModel): | |
object: str = "chat.completion.chunk" | |
id: str = uuid.uuid4().hex | |
choices: List[ChatCompletionChoice] = Field( | |
..., description="The choices from the agent" | |
) | |
class AgentModel(BaseModel): | |
id: str = Field(..., description="The agent id") | |
name: Optional[str] = Field(None, description="The agent name") | |
description: Optional[str] = Field(None, description="The agent description") | |
path: str = Field(..., description="The agent path") | |
instance: Any = Field(..., description="The agent module instance", exclude=True) | |
class BaseAWorldAgent: | |
def name(self) -> str: | |
pass | |
def description(self) -> str: | |
pass | |
async def run( | |
self, prompt: str = None, request: ChatCompletionRequest = None | |
) -> AsyncGenerator[Output, None]: | |
pass | |
class SessionModel(BaseModel): | |
user_id: str = Field(..., description="The user id") | |
session_id: str = Field(..., description="The session id") | |
name: str = Field(None, description="The session name") | |
description: str = Field(None, description="The session description") | |
created_at: datetime.datetime = Field(None, description="The session created at") | |
updated_at: datetime.datetime = Field(None, description="The session updated at") | |
messages: List[ChatCompletionMessage] = Field( | |
None, description="The messages in the session" | |
) | |