Меню документации — Файлы: приём и генерация
Начало
Quick StartСписок моделейИнтеграции
ОбзорCursorClaude CodeCline / Roo CodeLangChainDifyCherry StudioOpen WebUIChatGPT Next WebChatboxGuides
Какой endpoint выбратьGemini: нативный generateContentVision и файлы в чатеСтриминг (SSE)Миграция с OpenAI / AnthropicВеб-поиск и инструментыФайлы: приём и генерацияКонцепции
АутентификацияRate-limitsМедиа
Генерация изображенийГенерация видеоОзвучка (TTS)Генерация музыки3D-генерацияAPI Reference
EmbeddingsОшибкиФайлы: приём и генерация
Через Ranvik можно загружать файлы для модели и забирать сгенерированные ей файлы.
Приём файлов
OpenAI: POST /v1/files (multipart). Claude:
POST /v1/anthropic/files. Gemini: POST /v1/google/files.
curl https://api.ranvik.ru/v1/files \
-H "Authorization: Bearer rk_live_..." \
-F purpose=assistants \
-F file=@./report.pdf
В ответе — file_id. Дальше ссылайтесь на него в
/v1/responses / /v1/chat/completions как
input_file.
/content → 400).files/<id>. В наши /v1/google/files/...
можно слать и полную форму files/<id>, и голый
<id> — нормализуем сами.Генерация файлов (code interpreter)
curl https://api.ranvik.ru/v1/responses \
-H "Authorization: Bearer rk_live_..." \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5-5",
"input": "Построй CSV с числами 1..100 и сохрани файл",
"tools": [{"type": "code_interpreter", "container": {"type": "auto"}}]
}'
В ответе output[] ищите элемент
type:"code_interpreter_call" — там container_id и
outputs[].file_id. Скачать файл:
curl https://api.ranvik.ru/v1/containers/{container_id}/files/{file_id}/content \
-H "Authorization: Bearer rk_live_..." --output result.csv
Какая модель что умеет
- Приём файлов: OpenAI (
/v1/files), Claude (/v1/anthropic/files), Gemini (/v1/google/files) - Генерация файлов: OpenAI/xAI — code interpreter через
/v1/responses(файлы тянутся из контейнера:/v1/containers/{cid}/files/{fid}/content); Claude — code execution, файлы какfile_id; Gemini — инлайн base64 в ответе.
Native vs Compat — важно для файлов
/v1/chat/completions с Claude/Gemini-моделью транслирует
ответ в OpenAI-формат. Это удобно, но vendor-специфичные блоки (например
сгенерённые code-execution файлы) — лучшая совместимость на
нативных эндпоинтах, где мы работаем чистым прокси и НИЧЕГО не
теряем:- OpenAI / xAI →
POST /v1/responses(нативный, pure-proxy) - Claude →
POST /v1/messages(нативный Anthropic, pure-proxy — все content-блоки иfile_idсохраняются 1:1) - Gemini →
POST /v1/google/generateContent(нативный, pure-proxy —inlineData/ code execution /fileDataприходят как есть)
curl https://api.ranvik.ru/v1/google/generateContent \
-H "Authorization: Bearer rk_live_..." \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-2.5-flash",
"contents": [{"role":"user","parts":[{"text":"Построй график и сохрани PNG"}]}],
"tools": [{"codeExecution": {}}]
}'
Сгенерённый Gemini файл вернётся инлайн в
candidates[0].content.parts[].inlineData (base64) — отдельного
скачивания не нужно. На кросс-вендор пути
(/v1/chat/completions + claude/gemini) сгенерённые файлы
выносятся в choices[0].message.generated_files; Claude-файлы
качаются через /v1/anthropic/files/{id}/content. Нужна
полная точность вендора — используйте нативный эндпоинт.
Лимиты и биллинг
- Квоты per-ключ: число файлов и сессий code interpreter в минуту.
- Хранение и скачивание файлов в текущей версии не тарифицируются.
- Ошибки:
404— чужой/несуществующий id;429 quota_exceeded— превышены квоты.