Этот код Python предоставляет реализацию чат-бота с управлением контекстом с использованием моделей чата GPT-3.5 Turbo или GPT-4. Чатбот поддерживает историю разговоров и помогает управлять контекстным состоянием и размером в токенах.
Chatstack находит ваш ключ API OpenAI через переменную среды OpenAI_API_KEY.
ChatRoleMessage : базовый класс данных для сообщений с ролями, текстом и токенами.SystemMessage : класс данных для представления сообщения с роли «системы».ContextMessage : класс данных, представляющий дополнительную информацию для контекста для модели.AssistantMessage : класс данных для представления сообщения с ролью «помощника».UserMessage : класс данных для представления сообщения с ролью «пользователя».ChatContext : класс, который управляет контекстом разговора и генерирует ответы с использованием моделей интерфейса сообщений OpenAI.ChatReponse : класс данных, который содержит ответ на модель на сообщение пользователя, а также запись входного контекста, отправленного в модель, и другие значимые детали, такие как используемая модель, количество используемых токенов, и предполагаемая стоимость запроса.ChatContext .ChatContext с желаемой конфигурацией.user_message или user_message_stream с текстом сообщения пользователя, чтобы получить ответ от чат -бота.Пример:
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 () Класс ChatContext принимает следующие параметры:
min_response_tokens : минимальное количество токенов, чтобы зарезервировать для ответа на завершение модели.max_response_tokens : максимальное количество токенов, чтобы разрешить ответ на завершение модели.chat_context_messages : Количество недавних сообщений помощника и пользователей, чтобы сохранить в контексте.model : имя модели GPT для использования (по умолчанию: «GPT-3.5-Turbo»).temperature : температура для генерации отклика модели.base_system_msg_text : текст сообщения базового системы для предоставления контекста для модели.Основным методом чат -контекста является user_message (), который используется для сборки входного контекста для модели и генерации завершения.
user_message(msg_text: str) -> ChatResponseЭтот метод принимает текст сообщения пользователя в качестве ввода и генерирует ответ от чат -бота, используя контекст разговора.
user_message_stream(msg_text: str) -> ChatResponse Этот метод представляет собой генератор, который принимает текст сообщения пользователя в качестве ввода и дает объекты ChatResponse , содержащие инкрементный и совокупный текст ответа из чата, используя контекст разговора.
add_message(msg : ChatRoleMessage)Добавьте сообщение в контекст для представления в модель в последующих запросах на завершение.
msg_text (str): текст сообщения пользователя. ChatResponse : экземпляр класса данных ChatResponse , который включает в себя текст ответа модели, фактические входные сообщения, отправленные в модель, и другие соответствующие детали, такие как количество токенов и предполагаемая цена завершения.