chatgpt_bot/bot/utils/openai_tasks.py

71 lines
3.7 KiB
Python
Raw Permalink Normal View History

2024-10-09 20:50:46 +00:00
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)}"