Este código de Python proporciona una implementación de chatbot con la gestión del contexto utilizando los modelos de chat GPT-3.5-TURBO o GPT-4 de Openai. El chatbot mantiene un historial de conversación y ayuda a administrar el estado de contexto y el tamaño en las fichas.
ChatStack encuentra su tecla API de OpenAI a través de la variable de entorno OpenAI_API_Key.
ChatRoleMessage : una clase de datos base para mensajes con rol, texto y tokens.SystemMessage : una clase de datos para representar un mensaje con el rol 'Sistema'.ContextMessage : una clase de datos que representa un contexto de información adicional para el modelo.AssistantMessage : una clase de datos para representar un mensaje con el rol de 'Asistente'.UserMessage : una clase de datos para representar un mensaje con el rol 'Usuario'.ChatContext : una clase que administra el contexto de conversación y genera respuestas utilizando modelos de interfaz de mensajes OpenAI.ChatReponse : una clase de datos que contiene la respuesta del modelo a un mensaje de usuario junto con un registro del contexto de entrada enviado al modelo y otros detalles significativos, como el modelo utilizado, el número de tokens utilizados y el costo estimado de la solicitud.ChatContext .ChatContext con la configuración deseada.user_message o user_message_stream con el texto del mensaje del usuario para obtener una respuesta del chatbot.Ejemplo:
from chatstack import ChatContext
BASE_SYSTEM_PROMPT = "You are a clever bot. Do not apologize, or make excuses. "
BASE_SYSTEM_PROMPT += "Do not mention that you are an AI language model since that is annoying to users."
def main ():
chat_context = ChatContext ( base_system_msg_text = BASE_SYSTEM_PROMPT )
print ( "Welcome to the Chatbot!" )
while True :
user_input = input ( "You: " )
print ( "Chatbot:" )
response = chat_context . user_message ( user_input , stream = True )
print ( response . text )
if __name__ == "__main__" :
main () La clase ChatContext acepta los siguientes parámetros:
min_response_tokens : número mínimo de tokens para reservar para la respuesta de finalización del modelo.max_response_tokens : número máximo de tokens para permitir la respuesta de finalización del modelo.chat_context_messages : número de mensajes recientes de asistente y usuario para mantener en contexto.model : el nombre del modelo GPT para usar (predeterminado: "GPT-3.5-TURBO").temperature : la temperatura para la generación de respuesta del modelo.base_system_msg_text : el texto del mensaje del sistema base para proporcionar contexto para el modelo.El método principal del chatContext es el user_message () que se utiliza para ensamblar el contexto de entrada al modelo y generar una finalización.
user_message(msg_text: str) -> ChatResponseEste método toma el texto del mensaje de un usuario como entrada y genera una respuesta del chatbot utilizando el contexto de conversación.
user_message_stream(msg_text: str) -> ChatResponse Este método es un generador que toma el texto del mensaje de un usuario como entrada y produce objetos ChatResponse que contienen el texto de respuesta incremental y acumulativo del chatbot utilizando el contexto de conversación.
add_message(msg : ChatRoleMessage)Agregue un mensaje al contexto para su presentación al modelo en solicitudes de finalización posteriores.
msg_text (str): el texto del mensaje del usuario. ChatResponse : una instancia de la clase de datos ChatResponse que incluye el texto de respuesta al modelo, los mensajes de entrada reales enviados al modelo y otros detalles relevantes, como los recuentos de tokens y el precio estimado de la finalización.