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)}"
|