Чтобы адаптировать ваш код для работы с моделью GigaChat вместо OpenAI, вам нужно выполнить несколько изменений, включая настройку URL API, заголовков и структуры данных, если это необходимо. Вот пример того, как можно адаптировать ваш код:
```python
@dp.callback_query_handler(lambda c: c.data.startswith('rewrite_'))
async def process_rewrite(callback_query: types.CallbackQuery):
message_id = int(callback_query.data.split('_')[1])
if message_id in message_storage:
original_message = message_storage[message_id]
original_text = original_message.text if original_message.text else ""
rewritten_text = await rewrite_text_with_gigachat(original_text)
await client.edit_message(technical_channel_id, message_id, rewritten_text)
await bot.answer_callback_query(callback_query.id, "Текст переформулирован.")
proxies = {
"http://": proxy_url,
"https://": proxy_url
}
async def rewrite_text_with_gigachat(text):
prompt_text = "Переформулируй этот текст: " + text
json_data = {
"input": prompt_text,
"model": "giga-chat" # название модели, используемое в GigaChat API
}
# Установка заголовков, если это необходимо
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {your_gigachat_api_key}" # замените на ваш ключ API GigaChat
}
# Установка таймаута для запроса
timeout = httpx.Timeout(10.0, connect=90.0)
async with httpx.AsyncClient(proxies=proxies, timeout=timeout) as client:
# Заменяем URL на точку доступа GigaChat
response = await client.post(
"https://api.gigachat.sber.ru/v1/rewrite",
json=json_data,
headers=headers
)
if response.status_code == 200:
result = response.json()
return result["rewritten_text"] # предполагаем, что здесь возвращается переформулированный текст
else:
# Обработайте ошибку
return f"Ошибка при обращении к GigaChat: {response.status_code} {response.text}"
```
### Что изменилось:
1. **Заголовки и ключи API:** Замените `openai_api_key` на ваш `your_gigachat_api_key`.
2. **Структура запроса:** Измените тело запроса для соответствия с тем, что требуется в GigaChat (например, `"input"` вместо `"messages"`).
3. **URL API:** Обновите URL для запроса на тот, который используется в GigaChat.
4. **Обработка ответа:** Измените способ доступа к тексту результата в зависимости от структуры ответа API GigaChat.
Убедитесь, что вы проверили документацию GigaChat для точных деталей об API и необходимых параметрах.