71 lines
3.7 KiB
Python
71 lines
3.7 KiB
Python
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)}" |