import sys from langchain_openai import ChatOpenAI from langchain.prompts import PromptTemplate from langchain.chains import LLMChain # Конфигурация модели OpenAI через LangChain llm = ChatOpenAI( model_name="gpt-3.5-turbo", temperature=0.7, ) # Шаблон запроса к модели: сохраняем историю диалога в переменной `history` prompt_template = PromptTemplate( input_variables=["history", "user_input"], template=""" Ты играешь роль ведущего текстовой приключенческой игры. Тебе дано текущее состояние истории и последнее сообщение игрока. Ответь как будто продолжаешь сюжет, добавляя новые события, описания и диалоги. История: {history} Игрок: {user_input} Ответ ведущего: """, ) # Создаём цепочку LangChain chain = LLMChain(llm=llm, prompt=prompt_template) def main(): """ Основной цикл игры. Пользователь вводит команды, которые передаются модели через LangChain. Команда 'exit' завершает игру. """ history = "" print("Добро пожаловать в текстовую приключенческую игру!") print("Введите свои действия (или 'exit', чтобы выйти).") while True: try: user_input = input("\nВы: ").strip() except EOFError: # Обработка Ctrl-D print("\nЗавершение игры.") break if not user_input: continue if user_input.lower() == "exit": print("Спасибо за игру! До свидания.") break # Формируем запрос к модели и получаем ответ try: response = chain.run(history=history, user_input=user_input) except Exception as e: print(f"Ошибка при обращении к модели: {e}") continue # Выводим ответ ведущего print(f"\nВедущий: {response.strip()}") # Обновляем историю для следующего шага history += f"\nИгрок: {user_input}\nВедущий: {response}" if __name__ == "__main__": main()