Este código Python fornece uma implementação de chatbot com gerenciamento de contexto usando os modelos de bate-papo GPT-3.5-Turbo ou GPT-4 do OpenAI. O chatbot mantém um histórico de conversas e ajuda a gerenciar o estado de contexto e o tamanho dos tokens.
O ChatStack encontra sua chave de API do OpenAI através da variável de ambiente OpenAI_API_KEY.
ChatRoleMessage : uma classe de dados de base para mensagens com função, texto e tokens.SystemMessage : uma classe de dados para representar uma mensagem com a função 'System'.ContextMessage : Uma classe de dados que representa um contexto de informações adicionais para o modelo.AssistantMessage : uma classe de dados para representar uma mensagem com a função 'Assistente'.UserMessage : uma classe de dados para representar uma mensagem com a função 'usuário'.ChatContext : Uma classe que gerencia o contexto da conversa e gera respostas usando os modelos de interface de mensagens OpenAI.ChatReponse : uma classe de dados que contém a resposta do modelo a uma mensagem do usuário, juntamente com um registro do contexto de entrada enviado ao modelo e outros detalhes significativos, como o modelo usado, o número de tokens utilizados e o custo estimado da solicitação.ChatContext .ChatContext com a configuração desejada.user_message ou user_message_stream com o texto da mensagem do usuário para obter uma resposta do chatbot.Exemplo:
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 () A classe ChatContext aceita os seguintes parâmetros:
min_response_tokens : Número mínimo de tokens para reservar para a resposta de conclusão do modelo.max_response_tokens : Número máximo de tokens para permitir a resposta de conclusão do modelo.chat_context_messages : Número de mensagens recentes de assistente e usuário para manter em contexto.model : o nome do modelo GPT a ser usado (padrão: "GPT-3.5-turbo").temperature : a temperatura para a geração de resposta do modelo.base_system_msg_text : o texto da mensagem do sistema base para fornecer contexto para o modelo.O método principal do ChatContext é o user_message () que é usado para montar o contexto de entrada no modelo e gerar uma conclusão.
user_message(msg_text: str) -> ChatResponseEste método leva o texto da mensagem de um usuário como entrada e gera uma resposta do chatbot usando o contexto da conversa.
user_message_stream(msg_text: str) -> ChatResponse Este método é um gerador que leva o texto da mensagem de um usuário como entrada e produz objetos ChatResponse , contendo o texto de resposta incremental e cumulativo do chatbot usando o contexto da conversa.
add_message(msg : ChatRoleMessage)Adicione uma mensagem ao contexto para apresentação ao modelo nas solicitações de conclusão subsequentes.
msg_text (str): o texto da mensagem do usuário. ChatResponse : Uma instância da classe de dados ChatResponse que inclui o texto da resposta do modelo, as mensagens de entrada reais enviadas ao modelo e outros detalhes relevantes, como contagem de token e preço estimado da conclusão.