| # Примеры Curl команд для OpenRouter API |
|
|
| ## Установка переменных окружения |
|
|
| ```bash |
| # Установите ваш API ключ |
| export OPENROUTER_API_KEY="sk-or-v1-..." |
| |
| # Опционально: выберите модель (по умолчанию gemini-3-flash-preview) |
| export OPENROUTER_MODEL="google/gemini-3-flash-preview" |
| ``` |
|
|
| ## 1. Базовый запрос |
|
|
| ```bash |
| curl https://openrouter.ai/api/v1/chat/completions \ |
| -H "Content-Type: application/json" \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" \ |
| -d '{ |
| "model": "google/gemini-3-flash-preview", |
| "messages": [ |
| { |
| "role": "user", |
| "content": "Hello, how are you?" |
| } |
| ] |
| }' |
| ``` |
|
|
| ## 2. Запрос с reasoning mode (для Gemini) |
|
|
| ```bash |
| curl https://openrouter.ai/api/v1/chat/completions \ |
| -H "Content-Type: application/json" \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" \ |
| -d '{ |
| "model": "google/gemini-3-flash-preview", |
| "messages": [ |
| { |
| "role": "user", |
| "content": "How many r'\''s are in the word strawberry?" |
| } |
| ], |
| "reasoning": { |
| "enabled": true |
| } |
| }' |
| ``` |
|
|
| ## 3. Медицинская коррекция (простая) |
|
|
| ```bash |
| curl https://openrouter.ai/api/v1/chat/completions \ |
| -H "Content-Type: application/json" \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" \ |
| -d '{ |
| "model": "google/gemini-3-flash-preview", |
| "messages": [ |
| { |
| "role": "system", |
| "content": "Ты медицинский помощник. Исправь ошибки в медицинской транскрипции." |
| }, |
| { |
| "role": "user", |
| "content": "Пациент жалуется на боль в животе, тошнота и рвота" |
| } |
| ], |
| "temperature": 0.1, |
| "reasoning": { |
| "enabled": true |
| } |
| }' |
| ``` |
|
|
| ## 4. Медицинская коррекция с терминами |
|
|
| ```bash |
| curl https://openrouter.ai/api/v1/chat/completions \ |
| -H "Content-Type: application/json" \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" \ |
| -d '{ |
| "model": "google/gemini-3-flash-preview", |
| "messages": [ |
| { |
| "role": "system", |
| "content": "Ты медицинский помощник. Исправь ошибки в транскрипции, используя правильную медицинскую терминологию.\n\nМедицинские термины: аппендицит, гастрит, энцефалопатия, кардиомиопатия, артериальная гипертензия, сахарный диабет" |
| }, |
| { |
| "role": "user", |
| "content": "У пациента подозрение на апендицит и гастрит. Также отмечается повышенное давление." |
| } |
| ], |
| "temperature": 0.1, |
| "max_tokens": 2000, |
| "reasoning": { |
| "enabled": true |
| } |
| }' |
| ``` |
|
|
| ## 5. Запрос с дополнительными заголовками |
|
|
| ```bash |
| curl https://openrouter.ai/api/v1/chat/completions \ |
| -H "Content-Type: application/json" \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" \ |
| -H "HTTP-Referer: http://localhost" \ |
| -H "X-Title: Trans_for_doctors" \ |
| -d '{ |
| "model": "google/gemini-3-flash-preview", |
| "messages": [ |
| { |
| "role": "user", |
| "content": "Привет!" |
| } |
| ] |
| }' |
| ``` |
|
|
| ## 6. Использование другой модели (GPT-4o) |
|
|
| ```bash |
| curl https://openrouter.ai/api/v1/chat/completions \ |
| -H "Content-Type: application/json" \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" \ |
| -d '{ |
| "model": "openai/gpt-4o", |
| "messages": [ |
| { |
| "role": "system", |
| "content": "Ты медицинский эксперт. Исправь транскрипцию." |
| }, |
| { |
| "role": "user", |
| "content": "Пациент жалуется на боль в животе" |
| } |
| ], |
| "temperature": 0.1 |
| }' |
| ``` |
|
|
| ## 7. Использование Claude |
|
|
| ```bash |
| curl https://openrouter.ai/api/v1/chat/completions \ |
| -H "Content-Type: application/json" \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" \ |
| -d '{ |
| "model": "anthropic/claude-3.5-sonnet", |
| "messages": [ |
| { |
| "role": "user", |
| "content": "Исправь медицинскую транскрипцию: Пациент с диагнозом апендицит" |
| } |
| ], |
| "temperature": 0.1 |
| }' |
| ``` |
|
|
| ## 8. Форматированный вывод (с jq) |
|
|
| ```bash |
| curl -s https://openrouter.ai/api/v1/chat/completions \ |
| -H "Content-Type: application/json" \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" \ |
| -d '{ |
| "model": "google/gemini-3-flash-preview", |
| "messages": [ |
| { |
| "role": "user", |
| "content": "Hello!" |
| } |
| ] |
| }' | jq '.choices[0].message.content' |
| ``` |
|
|
| ## 9. Сохранение ответа в файл |
|
|
| ```bash |
| curl https://openrouter.ai/api/v1/chat/completions \ |
| -H "Content-Type: application/json" \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" \ |
| -d '{ |
| "model": "google/gemini-3-flash-preview", |
| "messages": [ |
| { |
| "role": "user", |
| "content": "Исправь: Пациент жалуется на боль" |
| } |
| ] |
| }' > response.json |
| ``` |
|
|
| ## 10. Batch обработка (скрипт) |
|
|
| ```bash |
| #!/bin/bash |
| |
| TEXTS=( |
| "Пациент жалуется на боль в животе" |
| "Диагноз апендицит" |
| "Высокая температура и кашель" |
| ) |
| |
| for text in "${TEXTS[@]}"; do |
| echo "Обработка: $text" |
| |
| curl -s https://openrouter.ai/api/v1/chat/completions \ |
| -H "Content-Type: application/json" \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" \ |
| -d "{ |
| \"model\": \"google/gemini-3-flash-preview\", |
| \"messages\": [ |
| { |
| \"role\": \"system\", |
| \"content\": \"Исправь медицинский текст\" |
| }, |
| { |
| \"role\": \"user\", |
| \"content\": \"$text\" |
| } |
| ], |
| \"temperature\": 0.1 |
| }" | jq -r '.choices[0].message.content' |
| |
| echo "---" |
| done |
| ``` |
|
|
| ## 11. Проверка статуса API |
|
|
| ```bash |
| curl -s https://openrouter.ai/api/v1/models \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" | jq |
| ``` |
|
|
| ## 12. Получение информации о модели |
|
|
| ```bash |
| curl -s https://openrouter.ai/api/v1/models \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" | \ |
| jq '.data[] | select(.id == "google/gemini-3-flash-preview")' |
| ``` |
|
|
| ## 13. Multiline текст (heredoc) |
|
|
| ```bash |
| curl https://openrouter.ai/api/v1/chat/completions \ |
| -H "Content-Type: application/json" \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" \ |
| -d @- <<EOF |
| { |
| "model": "google/gemini-3-flash-preview", |
| "messages": [ |
| { |
| "role": "system", |
| "content": "Ты медицинский помощник" |
| }, |
| { |
| "role": "user", |
| "content": "Пациент жалуется на:\n- боль в животе\n- тошноту\n- рвоту" |
| } |
| ], |
| "temperature": 0.1 |
| } |
| EOF |
| ``` |
|
|
| ## 14. С таймаутом |
|
|
| ```bash |
| curl --max-time 30 https://openrouter.ai/api/v1/chat/completions \ |
| -H "Content-Type: application/json" \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" \ |
| -d '{ |
| "model": "google/gemini-3-flash-preview", |
| "messages": [ |
| { |
| "role": "user", |
| "content": "Quick test" |
| } |
| ] |
| }' |
| ``` |
|
|
| ## 15. Подробный вывод (verbose) |
|
|
| ```bash |
| curl -v https://openrouter.ai/api/v1/chat/completions \ |
| -H "Content-Type: application/json" \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" \ |
| -d '{ |
| "model": "google/gemini-3-flash-preview", |
| "messages": [ |
| { |
| "role": "user", |
| "content": "Test" |
| } |
| ] |
| }' |
| ``` |
|
|
| ## Использование готового скрипта |
|
|
| Проект включает готовый bash скрипт для тестирования: |
|
|
| ```bash |
| # Базовое использование |
| ./test_openrouter_curl.sh |
| |
| # С кастомным текстом |
| ./test_openrouter_curl.sh "Ваш текст для обработки" |
| |
| # С переменной окружения для модели |
| OPENROUTER_MODEL="openai/gpt-4o" ./test_openrouter_curl.sh "Текст" |
| ``` |
|
|
| ## Обработка ошибок |
|
|
| ```bash |
| response=$(curl -s -w "\n%{http_code}" https://openrouter.ai/api/v1/chat/completions \ |
| -H "Content-Type: application/json" \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" \ |
| -d '{ |
| "model": "google/gemini-3-flash-preview", |
| "messages": [{"role": "user", "content": "Test"}] |
| }') |
| |
| http_code=$(echo "$response" | tail -n1) |
| body=$(echo "$response" | head -n-1) |
| |
| if [ "$http_code" -eq 200 ]; then |
| echo "Success: $body" |
| else |
| echo "Error ($http_code): $body" |
| fi |
| ``` |
|
|
| ## Полезные советы |
|
|
| 1. **Сохраните API ключ в переменной окружения**: |
| ```bash |
| echo "export OPENROUTER_API_KEY='your-key'" >> ~/.bashrc |
| source ~/.bashrc |
| ``` |
|
|
| 2. **Установите jq для форматирования JSON**: |
| ```bash |
| # Ubuntu/Debian |
| sudo apt-get install jq |
| |
| # macOS |
| brew install jq |
| ``` |
|
|
| 3. **Используйте файлы для больших промптов**: |
| ```bash |
| curl https://openrouter.ai/api/v1/chat/completions \ |
| -H "Content-Type: application/json" \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" \ |
| -d @request.json |
| ``` |
|
|
| 4. **Логируйте запросы для отладки**: |
| ```bash |
| curl https://openrouter.ai/api/v1/chat/completions \ |
| -H "Authorization: Bearer $OPENROUTER_API_KEY" \ |
| -d '...' | tee response.log |
| ``` |
|
|
| ## Дополнительные ресурсы |
|
|
| - [OpenRouter API Docs](https://openrouter.ai/docs) |
| - [Список моделей](https://openrouter.ai/models) |
| - [Примеры в Python](test_openrouter.py) |
| - [Полная документация](corrector/OPENROUTER.md) |
|
|