v1.0.177: History — объединение history+History, 5 подпапок
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# Вопрос: HTTP/2 из Python к aillm.ru
|
||||
|
||||
## Контекст
|
||||
|
||||
Flask-приложение в контейнере `python:3.12-slim`, деплоится через облачную платформу.
|
||||
Нужно отправлять промпты к LLM API: `https://api.aillm.ru/v1/chat/completions`
|
||||
(ключ: `sk-ucI5YvOticoOQ9Kuj5K9mQ`, модель: `gpt-oss-120b`).
|
||||
|
||||
## Проблема
|
||||
|
||||
`api.aillm.ru` за ddos-guard, который **требует HTTP/2 от облачных IP**.
|
||||
С локальной машины работает любой HTTP-клиент (requests, curl без --http2),
|
||||
но из облачного контейнера — только HTTP/2.
|
||||
|
||||
Что пробовали, что НЕ сработало:
|
||||
- `requests` — HTTP/1.1, ddos-guard возвращает ложный 401
|
||||
- `httpx[http2]` в requirements.txt — платформа не парсит `[http2]`, h2 не ставится
|
||||
- `curl` через subprocess — curl не установлен в slim-контейнере, apt недоступен
|
||||
- свой HTTP/2 клиент на h2+socket — слишком сложно, заказчик против
|
||||
|
||||
## Вопрос
|
||||
|
||||
**Как в Python из slim-контейнера сделать HTTP/2 POST-запрос к aillm.ru?**
|
||||
|
||||
Требования:
|
||||
1. Никакого apt/curl — только pip
|
||||
2. Просто, без велосипедов на сокетах
|
||||
3. Работает в python:3.12-slim
|
||||
4. Ключ передаётся как `Authorization: Bearer sk-ucI5YvOticoOQ9Kuj5K9mQ`
|
||||
5. Тело: JSON с model, messages, max_tokens, temperature
|
||||
|
||||
Доступные модели на aillm.ru: `gpt-oss-120b`, `qwen3.6-27b-fp8`, `qwen3-6-27b-fp8-opt`, `whisper-large-v3-turbo`.
|
||||
|
||||
## Для справки
|
||||
|
||||
В Node.js это работает одной строкой:
|
||||
```js
|
||||
await fetch('https://api.aillm.ru/v1/chat/completions', {
|
||||
method: 'POST',
|
||||
headers: { Authorization: `Bearer ${KEY}`, 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ model: 'gpt-oss-120b', messages: [...] })
|
||||
});
|
||||
```
|
||||
|
||||
Нужен такой же простой способ в Python.
|
||||
Reference in New Issue
Block a user