В инструкции описано, как создавать диалоги с
, где каждый новый запрос учитывает предыдущие сообщения. В отличие от одиночных запросов, режим чата поддерживает контекст беседы.При работе с большими языковыми моделями ключевой особенностью является возможность ведения диалога с сохранением контекста. История сообщений позволяет AI-модели понимать предыдущие вопросы и ответы, что делает общение более естественным и продуктивным.
Используйте чат с историей для создания интерактивных приложений, которые сохраняют контекст диалога и обеспечивают осмысленное общение с AI-моделями.
Для создания чата с историей:
Сохраните сгенерированный API-ключ в переменную окружения API_KEY.
Установите библиотеку OpenAI:
pip install openaiИнициализируйте клиента OpenAI:
import osfrom openai import OpenAIapi_key = os.environ["API_KEY"]client = OpenAI(base_url="https://foundation-models.api.cloud.ru/v1",api_key=api_key)Создайте класс ChatSession для управления историей диалога:
class ChatSession:def __init__(self, client, model="openai/gpt-oss-120b"):self.client = clientself.model = modelself.messages = []def add_user_message(self, content):"""Добавить сообщение пользователя в историю"""self.messages.append({"role": "user","content": content})def add_assistant_message(self, content):"""Добавить ответ модели в историю"""self.messages.append({"role": "assistant","content": content})def send_message(self, user_input):self.add_user_message(user_input)response = self.client.chat.completions.create(model=self.model,messages=self.messages,temperature=0.5,max_completion_tokens=1000)assistant_message = response.choices[0].message.contentself.add_assistant_message(assistant_message)return assistant_messagedef clear_history(self):"""Очистить историю диалога"""self.messages = []def get_history_length(self):"""Получить количество сообщений в истории"""return len(self.messages)Создайте интерактивный чат с использованием написанного класса:
if __name__ == "__main__":chat = ChatSession(client, model="t-tech/T-pro-it-1.0")print("Чат с моделью (нажмите Ctrl+C для выхода)")print("-" * 50)while True:user_input = input("Вы: ").strip()if not user_input:continueprint("Модель думает...", end="", flush=True)response = chat.send_message(user_input)print("\r" + " " * 20 + "\r", end="")if response:print(f"Модель: {response}\n")
Пример работы:
Пользоваетль: Привет! Расскажи о машинном обученииМодель думает...Модель: Привет! Машинное обучение — это подраздел искусственного интеллекта, который позволяет системам учиться и принимать решения без явного программирования...Пользователь: А теперь объясни это простыми словамиМодель думает...Модель: Конечно! Представьте, что вы учите ребенка отличать яблоки от груш. Сначала вы показываете ему много примеров: "Это яблоко, потому что оно круглое и красное...". После обучения ребенок уже сам может определить фрукт по внешнему виду.
Полный код для создания чата с историей