Contexto De Modelo
from dataclasses import dataclass
from saptiva_agents import SAPTIVA_LEGACY
from saptiva_agents.core import AgentId, MessageContext, RoutedAgent, SingleThreadedAgentRuntime, message_handler, BufferedChatCompletionContext
from saptiva_agents.models import AssistantMessage, SystemMessage, UserMessage
from saptiva_agents.base import SaptivaAIChatCompletionClient@dataclass
class Message:
content: strclass SimpleAgentWithContext(RoutedAgent):
def __init__(self, model_client: SaptivaAIChatCompletionClient) -> None:
super().__init__("A simple agent")
self._system_messages = [SystemMessage(content="You are a helpful AI assistant.")]
self._model_client = model_client
self._model_context = BufferedChatCompletionContext(buffer_size=5)
@message_handler
async def handle_user_message(self, message: Message, ctx: MessageContext) -> Message:
# Preparar entrada para el modelo de finalización de chat.
user_message = UserMessage(content=message.content, source="user")
# Agregar mensaje al contexto del modelo.
await self._model_context.add_message(user_message)
# Generar una respuesta.
response = await self._model_client.create(
self._system_messages + (await self._model_context.get_messages()),
cancellation_token=ctx.cancellation_token,
)
# Retornar la respuesta del modelo.
assert isinstance(response.content, str)
# Agregar respuesta al contexto del modelo.
await self._model_context.add_message(AssistantMessage(content=response.content, source=self.metadata["type"]))
return Message(content=response.content)Última actualización