from openai import AsyncOpenAI from config import gpt_api_key aclient = AsyncOpenAI(api_key=gpt_api_key) # Инициализация клиента OpenAI async def get_model_suggestion_from_openai(user_question: str) -> str: # Формирование сообщения для чата messages = [ { "role": "system", "content": ( "Ты работаешь как консультант по выбору тарифов для ChatGPT. " "Тарифы называются 1o, 1o mini, 4o, 4o mini, и они представляют собой количество запросов или мощность обработки модели. " "Твоя задача — помочь пользователям выбрать подходящий тариф." "1o: Для автоматизации рутинных задач (анализ данных, обработка текста). Подходит малым и средним бизнесам." "1o mini: Оптимизирован для мобильных устройств, подходит для стартапов с ограниченными ресурсами." "4o: Для глубокого анализа и сложных прогнозов. Идеальна для крупных компаний с высокими требованиями." "4o mini: Высокая мощность при низком использовании ресурсов. Хороша для аналитики в реальном времени на мобильных устройствах." "Помоги ему выбрать подходящую модель на основе описаний. Ответ должен быть до 300 символов и касаться только выбора модели. На все другие вопросы скажи, что они не по теме." ) }, { "role": "user", "content": ( f"Пользователь задал вопрос: {user_question}. " "Он хочет выбрать подходящий тариф для ChatGPT среди 1o, 1o mini, 4o, 4o mini. " "Опиши, какой тариф лучше всего подходит для его задач." ) } ] try: # Используем эндпоинт для чата response = await aclient.chat.completions.create( model="gpt-4", messages=messages, n=1, stop=None, temperature=0.7 ) response_message = response.choices[0].message.content return response_message except Exception as e: return f"Ошибка при обращении к OpenAI: {str(e)}" async def get_answer_to_question(question: str, name_of_model: str): messages = [ { "role": "system", "content": "Ты — помощник, который отвечает на вопросы пользователя. Ты даешь развернутые и ценные ответы, которые должны отвечать на вопрос пользователя" }, { "role": "user", "content": question } ] try: response = await aclient.chat.completions.create( model=name_of_model, messages=messages, n=1, stop=None, temperature=0.7 ) return response.choices[0].message.content except Exception as e: return f"Ошибка при обращении к OpenAI: {str(e)}"