omni-inference

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
<!-- generated by src/lib/agentSkills/generator.ts; manual edits will be overwritten -->
<!-- 由 src/lib/agentSkills/generator.ts 生成;手动修改将被覆盖 -->

Overview

概述

The core OpenAI-compatible inference endpoints: chat completions, embeddings, images, audio (TTS/STT), moderations, rerank, and the Responses API. The primary integration surface for AI agents.
兼容 OpenAI 的核心推理端点:聊天补全、嵌入、图像、音频(TTS/STT)、内容审核、重排序,以及 Responses API。是 AI Agent 的主要集成接口。

Authentication

身份验证

All requests require a valid Bearer token or session cookie. Obtain a token via
POST /api/auth/login
or configure
REQUIRE_API_KEY=false
for local development.
所有请求都需要有效的 Bearer token 或 session cookie。可通过
POST /api/auth/login
获取 token,或在本地开发环境中配置
REQUIRE_API_KEY=false
。

Endpoints

端点

  • POST /api/v1/session-leases
  • GET /api/v1/search
  • POST /api/v1/search
  • POST /api/v1/chat/completions
  • GET /api/v1/ws
  • POST /api/v1/providers/{provider}/chat/completions
  • POST /api/v1/api/chat
  • POST /api/v1/messages
  • POST /api/v1/messages/count_tokens
  • POST /api/v1/responses
  • POST /api/v1/embeddings
  • GET /api/v1/multimodal-embeddings
  • POST /api/v1/multimodal-embeddings
  • POST /api/v1/providers/{provider}/embeddings
  • POST /api/v1/images/generations
  • POST /api/v1/providers/{provider}/images/generations
  • POST /api/v1/audio/speech
  • POST /api/v1/audio/transcriptions
  • POST /api/v1/moderations
  • POST /api/v1/rerank
  • GET /api/v1
  • GET /api/v1/providers/{provider}/models
  • GET /api/v1/management/proxy-subscriptions
  • POST /api/v1/management/proxy-subscriptions
  • GET /api/v1/management/proxy-subscriptions/{id}
  • PATCH /api/v1/management/proxy-subscriptions/{id}
  • DELETE /api/v1/management/proxy-subscriptions/{id}
  • GET /api/v1/management/proxy-subscriptions/{id}/nodes
  • POST /api/v1/management/proxy-subscriptions/{id}/refresh
  • POST /api/v1/ocr
  • POST /api/v1/audio/translations
  • GET /api/v1/voices
  • POST /api/v1/speech-to-text
  • POST /api/v1/text-to-speech/{voiceId}
  • GET /api/v1/explain/routing
  • GET /api/v1/providers/suggested-models
  • GET /api/v1/provider-plugin-manifest
  • GET /api/v1/{omnirouteCatchAll}
  • POST /api/v1/{omnirouteCatchAll}
  • PUT /api/v1/{omnirouteCatchAll}
  • PATCH /api/v1/{omnirouteCatchAll}
  • DELETE /api/v1/{omnirouteCatchAll}
  • GET /api/v1/accounts/{id}/limits
  • PUT /api/v1/accounts/{id}/limits
  • GET /api/v1/agents/credentials
  • POST /api/v1/agents/credentials
  • GET /api/v1/agents/health
  • GET /api/v1/agents/tasks
  • POST /api/v1/agents/tasks
  • DELETE /api/v1/agents/tasks
  • GET /api/v1/agents/tasks/{id}
  • POST /api/v1/agents/tasks/{id}
  • DELETE /api/v1/agents/tasks/{id}
  • POST /api/v1/antigravity
  • GET /api/v1/auto-combo/{channel}/candidates
  • GET /api/v1/batches
  • POST /api/v1/batches
  • GET /api/v1/batches/{id}
  • DELETE /api/v1/batches/{id}
  • POST /api/v1/batches/{id}/cancel
  • DELETE /api/v1/batches/delete-completed
  • POST /api/v1/classify
  • GET /api/v1/combos
  • POST /api/v1/completions
  • GET /api/v1/files
  • POST /api/v1/files
  • GET /api/v1/files/{id}
  • DELETE /api/v1/files/{id}
  • GET /api/v1/files/{id}/content
  • POST /api/v1/images/edits
  • GET /api/v1/images/upscale
  • POST /api/v1/images/upscale
  • GET /api/v1/media/{id}
  • POST /api/v1/issues/report
  • GET /api/v1/management/proxies
  • POST /api/v1/management/proxies
  • PATCH /api/v1/management/proxies
  • DELETE /api/v1/management/proxies
  • GET /api/v1/management/proxies/assignments
  • PUT /api/v1/management/proxies/assignments
  • PUT /api/v1/management/proxies/bulk-assign
  • GET /api/v1/management/proxies/health
  • GET /api/v1/me/status
  • GET /api/v1/muse-code/models
  • GET /api/v1/music/generations
  • POST /api/v1/music/generations
  • GET /api/v1/providers/{provider}/limits
  • PUT /api/v1/providers/{provider}/limits
  • GET /api/v1/quotas/check
  • GET /api/v1/registered-keys
  • POST /api/v1/registered-keys
  • GET /api/v1/registered-keys/{id}
  • DELETE /api/v1/registered-keys/{id}
  • POST /api/v1/registered-keys/{id}/revoke
  • POST /api/v1/relay/chat/completions
  • POST /api/v1/relay/chat/completions/bifrost
  • POST /api/v1/responses/{path}
  • GET /api/v1/search/analytics
  • POST /api/v1/segment
  • GET /api/v1/video-bridge/drilldown
  • DELETE /api/v1/video-bridge/drilldown
  • GET /api/v1/videos/generations
  • POST /api/v1/videos/generations
  • GET /api/v1/vscode/{token}
  • POST /api/v1/vscode/{token}/api/chat
  • POST /api/v1/vscode/{token}/api/show
  • GET /api/v1/vscode/{token}/api/tags
  • GET /api/v1/vscode/{token}/api/version
  • POST /api/v1/vscode/{token}/chat/completions
  • GET /api/v1/vscode/{token}/combos
  • GET /api/v1/vscode/{token}/models
  • POST /api/v1/vscode/{token}/responses
  • POST /api/v1/vscode/{token}/v1/chat/completions
  • GET /api/v1/vscode/{token}/v1/models
  • GET /api/v1/vscode/combos/{token}/{{slug}}
  • POST /api/v1/vscode/combos/{token}/{{slug}}
  • GET /api/v1/vscode/raw/{token}
  • POST /api/v1/vscode/raw/{token}/api/chat
  • POST /api/v1/vscode/raw/{token}/api/show
  • GET /api/v1/vscode/raw/{token}/api/tags
  • GET /api/v1/vscode/raw/{token}/api/version
  • POST /api/v1/vscode/raw/{token}/chat/completions
  • GET /api/v1/vscode/raw/{token}/combos
  • GET /api/v1/vscode/raw/{token}/models
  • POST /api/v1/vscode/raw/{token}/responses
  • POST /api/v1/vscode/raw/{token}/v1/chat/completions
  • GET /api/v1/vscode/raw/{token}/v1/models
  • POST /api/v1/web/fetch
  • POST /api/v1/session-leases
  • GET /api/v1/search
  • POST /api/v1/search
  • POST /api/v1/chat/completions
  • GET /api/v1/ws
  • POST /api/v1/providers/{provider}/chat/completions
  • POST /api/v1/api/chat
  • POST /api/v1/messages
  • POST /api/v1/messages/count_tokens
  • POST /api/v1/responses
  • POST /api/v1/embeddings
  • GET /api/v1/multimodal-embeddings
  • POST /api/v1/multimodal-embeddings
  • POST /api/v1/providers/{provider}/embeddings
  • POST /api/v1/images/generations
  • POST /api/v1/providers/{provider}/images/generations
  • POST /api/v1/audio/speech
  • POST /api/v1/audio/transcriptions
  • POST /api/v1/moderations
  • POST /api/v1/rerank
  • GET /api/v1
  • GET /api/v1/providers/{provider}/models
  • GET /api/v1/management/proxy-subscriptions
  • POST /api/v1/management/proxy-subscriptions
  • GET /api/v1/management/proxy-subscriptions/{id}
  • PATCH /api/v1/management/proxy-subscriptions/{id}
  • DELETE /api/v1/management/proxy-subscriptions/{id}
  • GET /api/v1/management/proxy-subscriptions/{id}/nodes
  • POST /api/v1/management/proxy-subscriptions/{id}/refresh
  • POST /api/v1/ocr
  • POST /api/v1/audio/translations
  • GET /api/v1/voices
  • POST /api/v1/speech-to-text
  • POST /api/v1/text-to-speech/{voiceId}
  • GET /api/v1/explain/routing
  • GET /api/v1/providers/suggested-models
  • GET /api/v1/provider-plugin-manifest
  • GET /api/v1/{omnirouteCatchAll}
  • POST /api/v1/{omnirouteCatchAll}
  • PUT /api/v1/{omnirouteCatchAll}
  • PATCH /api/v1/{omnirouteCatchAll}
  • DELETE /api/v1/{omnirouteCatchAll}
  • GET /api/v1/accounts/{id}/limits
  • PUT /api/v1/accounts/{id}/limits
  • GET /api/v1/agents/credentials
  • POST /api/v1/agents/credentials
  • GET /api/v1/agents/health
  • GET /api/v1/agents/tasks
  • POST /api/v1/agents/tasks
  • DELETE /api/v1/agents/tasks
  • GET /api/v1/agents/tasks/{id}
  • POST /api/v1/agents/tasks/{id}
  • DELETE /api/v1/agents/tasks/{id}
  • POST /api/v1/antigravity
  • GET /api/v1/auto-combo/{channel}/candidates
  • GET /api/v1/batches
  • POST /api/v1/batches
  • GET /api/v1/batches/{id}
  • DELETE /api/v1/batches/{id}
  • POST /api/v1/batches/{id}/cancel
  • DELETE /api/v1/batches/delete-completed
  • POST /api/v1/classify
  • GET /api/v1/combos
  • POST /api/v1/completions
  • GET /api/v1/files
  • POST /api/v1/files
  • GET /api/v1/files/{id}
  • DELETE /api/v1/files/{id}
  • GET /api/v1/files/{id}/content
  • POST /api/v1/images/edits
  • GET /api/v1/images/upscale
  • POST /api/v1/images/upscale
  • GET /api/v1/media/{id}
  • POST /api/v1/issues/report
  • GET /api/v1/management/proxies
  • POST /api/v1/management/proxies
  • PATCH /api/v1/management/proxies
  • DELETE /api/v1/management/proxies
  • GET /api/v1/management/proxies/assignments
  • PUT /api/v1/management/proxies/assignments
  • PUT /api/v1/management/proxies/bulk-assign
  • GET /api/v1/management/proxies/health
  • GET /api/v1/me/status
  • GET /api/v1/muse-code/models
  • GET /api/v1/music/generations
  • POST /api/v1/music/generations
  • GET /api/v1/providers/{provider}/limits
  • PUT /api/v1/providers/{provider}/limits
  • GET /api/v1/quotas/check
  • GET /api/v1/registered-keys
  • POST /api/v1/registered-keys
  • GET /api/v1/registered-keys/{id}
  • DELETE /api/v1/registered-keys/{id}
  • POST /api/v1/registered-keys/{id}/revoke
  • POST /api/v1/relay/chat/completions
  • POST /api/v1/relay/chat/completions/bifrost
  • POST /api/v1/responses/{path}
  • GET /api/v1/search/analytics
  • POST /api/v1/segment
  • GET /api/v1/video-bridge/drilldown
  • DELETE /api/v1/video-bridge/drilldown
  • GET /api/v1/videos/generations
  • POST /api/v1/videos/generations
  • GET /api/v1/vscode/{token}
  • POST /api/v1/vscode/{token}/api/chat
  • POST /api/v1/vscode/{token}/api/show
  • GET /api/v1/vscode/{token}/api/tags
  • GET /api/v1/vscode/{token}/api/version
  • POST /api/v1/vscode/{token}/chat/completions
  • GET /api/v1/vscode/{token}/combos
  • GET /api/v1/vscode/{token}/models
  • POST /api/v1/vscode/{token}/responses
  • POST /api/v1/vscode/{token}/v1/chat/completions
  • GET /api/v1/vscode/{token}/v1/models
  • GET /api/v1/vscode/combos/{token}/{{slug}}
  • POST /api/v1/vscode/combos/{token}/{{slug}}
  • GET /api/v1/vscode/raw/{token}
  • POST /api/v1/vscode/raw/{token}/api/chat
  • POST /api/v1/vscode/raw/{token}/api/show
  • GET /api/v1/vscode/raw/{token}/api/tags
  • GET /api/v1/vscode/raw/{token}/api/version
  • POST /api/v1/vscode/raw/{token}/chat/completions
  • GET /api/v1/vscode/raw/{token}/combos
  • GET /api/v1/vscode/raw/{token}/models
  • POST /api/v1/vscode/raw/{token}/responses
  • POST /api/v1/vscode/raw/{token}/v1/chat/completions
  • GET /api/v1/vscode/raw/{token}/v1/models
  • POST /api/v1/web/fetch

Payloads

载荷

See the full OpenAPI specification at
GET /api/openapi/spec
or
docs/openapi.yaml
for detailed request/response schemas.
<!-- skill:custom-start --> <!-- Aggregated from: omniroute-chat, omniroute-image, omniroute-tts, omniroute-stt, omniroute-embeddings, omniroute-web-search, omniroute-web-fetch -->
有关详细的请求/响应 schema,请参阅
GET /api/openapi/spec
或
docs/openapi.yaml
中的完整 OpenAPI 规范。
<!-- skill:custom-start --> <!-- 聚合自:omniroute-chat, omniroute-image, omniroute-tts, omniroute-stt, omniroute-embeddings, omniroute-web-search, omniroute-web-fetch -->

Chat completions

聊天补全

Requires
OMNIROUTE_URL
and
OMNIROUTE_KEY
. See entry-point SKILL for setup.
需要设置
OMNIROUTE_URL
和
OMNIROUTE_KEY
。有关设置,请参阅入口 SKILL。

Endpoints

端点

  • POST $OMNIROUTE_URL/v1/chat/completions
    — OpenAI format
  • POST $OMNIROUTE_URL/v1/messages
    — Anthropic Messages format
  • POST $OMNIROUTE_URL/v1/responses
    — OpenAI Responses API
  • POST $OMNIROUTE_URL/v1/chat/completions
    — OpenAI 格式
  • POST $OMNIROUTE_URL/v1/messages
    — Anthropic Messages 格式
  • POST $OMNIROUTE_URL/v1/responses
    — OpenAI Responses API

Discover

模型发现

bash
curl $OMNIROUTE_URL/v1/models | jq '.data[].id'
Combos (e.g.
auto
,
cost-optimized
,
subscription
) auto-fallback through multiple providers.
bash
curl $OMNIROUTE_URL/v1/models | jq '.data[].id'
Combos(例如
auto
、
cost-optimized
、
subscription
)可在多个 provider 之间自动回退。

OpenAI format example

OpenAI 格式示例

bash
curl -X POST $OMNIROUTE_URL/v1/chat/completions \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-4-7",
    "messages": [{"role": "user", "content": "Refactor this function"}],
    "stream": true
  }'
bash
curl -X POST $OMNIROUTE_URL/v1/chat/completions \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-4-7",
    "messages": [{"role": "user", "content": "Refactor this function"}],
    "stream": true
  }'

Anthropic format example

Anthropic 格式示例

bash
curl -X POST $OMNIROUTE_URL/v1/messages \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-4-7",
    "max_tokens": 4096,
    "messages": [{"role": "user", "content": "Hi"}]
  }'
bash
curl -X POST $OMNIROUTE_URL/v1/messages \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-4-7",
    "max_tokens": 4096,
    "messages": [{"role": "user", "content": "Hi"}]
  }'

Tool use

工具使用

Supports OpenAI
tools
array and Anthropic
tools
block. Tool results auto-compressed via RTK (47 filters: git-diff, grep, test-jest, terraform-plan, docker-logs, etc.) — 20-40% token savings. Disable per-request with
X-Omniroute-Rtk: off
header.
支持 OpenAI
tools
数组和 Anthropic
tools
块。工具结果可通过 RTK 自动压缩(47 个过滤器:git-diff、grep、test-jest、terraform-plan、docker-logs 等)——节省 20–40% token。可通过
X-Omniroute-Rtk: off
请求头按请求禁用。

Reasoning / thinking

推理 / 思考

Anthropic extended thinking and OpenAI Responses reasoning blocks are forwarded verbatim. Cached automatically via reasoning cache.
Anthropic 扩展思考和 OpenAI Responses 推理块将原样转发,并通过 reasoning cache 自动缓存。

Errors

错误

  • 401
    → invalid API key
  • 400 invalid_model
    → model not in registry; check
    /v1/models
  • 503 circuit_open
    → provider circuit breaker tripped; retry later or use combo
  • 429 rate_limited
    → honor
    Retry-After
    ; consider using a combo for auto-fallback
  • 401
    → API 密钥无效
  • 400 invalid_model
    → 模型不在注册表中;请检查
    /v1/models
  • 503 circuit_open
    → provider 熔断器已触发;请稍后重试或使用 combo
  • 429 rate_limited
    → 请遵循
    Retry-After
    ;可考虑使用 combo 进行自动回退

Image generation

图像生成

Requires
OMNIROUTE_URL
and
OMNIROUTE_KEY
. See entry-point SKILL for setup.
需要设置
OMNIROUTE_URL
和
OMNIROUTE_KEY
。有关设置,请参阅入口 SKILL。

Endpoints

端点

  • POST $OMNIROUTE_URL/v1/images/generations
    — Text-to-image
  • POST $OMNIROUTE_URL/v1/images/edits
    — Image edit (mask)
  • POST $OMNIROUTE_URL/v1/images/variations
    — Variations
  • POST $OMNIROUTE_URL/v1/images/generations
    — 文生图
  • POST $OMNIROUTE_URL/v1/images/edits
    — 图像编辑(蒙版)
  • POST $OMNIROUTE_URL/v1/images/variations
    — 图像变体

Discover

模型发现

bash
curl $OMNIROUTE_URL/v1/models/image | jq '.data[]'
Returns
{ id, owned_by, sizes:[...], capabilities:[...] }
per model.
bash
curl $OMNIROUTE_URL/v1/models/image | jq '.data[]'
每个模型返回
{ id, owned_by, sizes:[...], capabilities:[...] }
。

Generate example

生成示例

bash
curl -X POST $OMNIROUTE_URL/v1/images/generations \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dall-e-3",
    "prompt": "a red bicycle on a wet street, photoreal",
    "n": 1,
    "size": "1024x1024",
    "response_format": "b64_json"
  }'
Response:
{ created, data: [{ url? or b64_json, revised_prompt }] }
bash
curl -X POST $OMNIROUTE_URL/v1/images/generations \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dall-e-3",
    "prompt": "a red bicycle on a wet street, photoreal",
    "n": 1,
    "size": "1024x1024",
    "response_format": "b64_json"
  }'
响应:
{ created, data: [{ url? or b64_json, revised_prompt }] }

Errors

错误

  • 400 invalid_size
    → not supported by this model; check
    /v1/models/image
  • 400 content_policy_violation
    → blocked by provider safety
  • 503
    → provider unavailable; try another model in
    /v1/models/image
  • 400 invalid_size
    → 此模型不支持该尺寸;请检查
    /v1/models/image
  • 400 content_policy_violation
    → 被 provider 安全策略阻止
  • 503
    → provider 不可用;请尝试使用
    /v1/models/image
    中的其他模型

Text-to-speech

文本转语音

Requires
OMNIROUTE_URL
and
OMNIROUTE_KEY
. See entry-point SKILL for setup.
需要设置
OMNIROUTE_URL
和
OMNIROUTE_KEY
。有关设置,请参阅入口 SKILL。

Endpoint

端点

  • POST $OMNIROUTE_URL/v1/audio/speech
    — returns binary audio (mp3/opus/wav/flac)
  • POST $OMNIROUTE_URL/v1/audio/speech
    — 返回二进制音频(mp3/opus/wav/flac)

Discover

模型发现

bash
curl $OMNIROUTE_URL/v1/models/tts | jq '.data[]'
Each entry includes
voices:[...]
for the available voice names per provider.
bash
curl $OMNIROUTE_URL/v1/models/tts | jq '.data[]'
每个条目都包含
voices:[...]
,用于列出各 provider 可用的 voice 名称。

Example

示例

bash
curl -X POST $OMNIROUTE_URL/v1/audio/speech \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "input": "Hello from OmniRoute.",
    "voice": "alloy",
    "response_format": "mp3"
  }' --output speech.mp3
bash
curl -X POST $OMNIROUTE_URL/v1/audio/speech \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "input": "Hello from OmniRoute.",
    "voice": "alloy",
    "response_format": "mp3"
  }' --output speech.mp3

Voices

Voice

Voice names vary by provider. Check
/v1/models/tts
— each entry has
voices:[...]
. Common OpenAI voices:
alloy
,
echo
,
fable
,
onyx
,
nova
,
shimmer
.
Voice 名称因 provider 而异。请检查
/v1/models/tts
——每个条目都包含
voices:[...]
。 常见的 OpenAI voice:
alloy
、
echo
、
fable
、
onyx
、
nova
、
shimmer
。

Errors

错误

  • 400 invalid_voice
    → voice not supported by this model
  • 400 input_too_long
    → input exceeds model character limit
  • 503
    → provider unavailable; try another model in
    /v1/models/tts
  • 400 invalid_voice
    → 此模型不支持该 voice
  • 400 input_too_long
    → 输入超过模型的字符数限制
  • 503
    → provider 不可用;请尝试使用
    /v1/models/tts
    中的其他模型

Speech-to-text

语音转文本

Requires
OMNIROUTE_URL
and
OMNIROUTE_KEY
. See entry-point SKILL for setup.
需要设置
OMNIROUTE_URL
和
OMNIROUTE_KEY
。有关设置,请参阅入口 SKILL。

Endpoints

端点

  • POST $OMNIROUTE_URL/v1/audio/transcriptions
    — multipart upload, returns text
  • POST $OMNIROUTE_URL/v1/audio/translations
    — transcribe + translate to English
  • POST $OMNIROUTE_URL/v1/audio/transcriptions
    — multipart 上传,返回文本
  • POST $OMNIROUTE_URL/v1/audio/translations
    — 转录并翻译成英文

Discover

模型发现

bash
curl $OMNIROUTE_URL/v1/models/stt | jq '.data[]'
bash
curl $OMNIROUTE_URL/v1/models/stt | jq '.data[]'

Example

示例

bash
curl -X POST $OMNIROUTE_URL/v1/audio/transcriptions \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -F "file=@audio.mp3" \
  -F "model=whisper-1" \
  -F "response_format=verbose_json"
Response:
{ text, language, duration, segments?:[{ start, end, text }] }
bash
curl -X POST $OMNIROUTE_URL/v1/audio/transcriptions \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -F "file=@audio.mp3" \
  -F "model=whisper-1" \
  -F "response_format=verbose_json"
响应:
{ text, language, duration, segments?:[{ start, end, text }] }

Supported formats

支持的格式

Audio:
mp3
,
mp4
,
mpeg
,
mpga
,
m4a
,
wav
,
webm
. Response formats:
json
,
text
,
srt
,
verbose_json
,
vtt
.
音频格式:
mp3
、
mp4
、
mpeg
、
mpga
、
m4a
、
wav
、
webm
。 响应格式:
json
、
text
、
srt
、
verbose_json
、
vtt
。

Errors

错误

  • 400 invalid_file_format
    → unsupported audio format
  • 400 file_too_large
    → exceeds provider limit (usually 25MB)
  • 503
    → provider unavailable; try another model in
    /v1/models/stt
  • 400 invalid_file_format
    → 不支持的音频格式
  • 400 file_too_large
    → 超过 provider 限制(通常为 25MB)
  • 503
    → provider 不可用;请尝试使用
    /v1/models/stt
    中的其他模型

Embeddings

嵌入

Requires
OMNIROUTE_URL
and
OMNIROUTE_KEY
. See entry-point SKILL for setup.
需要设置
OMNIROUTE_URL
和
OMNIROUTE_KEY
。有关设置,请参阅入口 SKILL。

Endpoint

端点

  • POST $OMNIROUTE_URL/v1/embeddings
  • POST $OMNIROUTE_URL/v1/embeddings

Discover

模型发现

bash
curl $OMNIROUTE_URL/v1/models/embedding | jq '.data[]'
Each entry:
{ id, owned_by, dimensions, max_input_tokens }
.
bash
curl $OMNIROUTE_URL/v1/models/embedding | jq '.data[]'
每个条目:
{ id, owned_by, dimensions, max_input_tokens }
。

Example

示例

bash
curl -X POST $OMNIROUTE_URL/v1/embeddings \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-embedding-3-large",
    "input": ["first text", "second text"],
    "encoding_format": "float"
  }'
Response:
{ data:[{ embedding:[...], index }], usage:{ prompt_tokens, total_tokens } }
bash
curl -X POST $OMNIROUTE_URL/v1/embeddings \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-embedding-3-large",
    "input": ["first text", "second text"],
    "encoding_format": "float"
  }'
响应:
{ data:[{ embedding:[...], index }], usage:{ prompt_tokens, total_tokens } }

Batch input

批量输入

input
accepts a string or array of strings (up to provider batch limit, typically 2048 items).
input
接受字符串或字符串数组(最多达到 provider 的批量限制,通常为 2048 个项目)。

Errors

错误

  • 400 input_too_long
    → input exceeds
    max_input_tokens
    for this model
  • 400 invalid_encoding_format
    → use
    float
    or
    base64
  • 503
    → provider unavailable; try another model in
    /v1/models/embedding
  • 400 input_too_long
    → 输入超过此模型的
    max_input_tokens
  • 400 invalid_encoding_format
    → 请使用
    float
    或
    base64
  • 503
    → provider 不可用;请尝试使用
    /v1/models/embedding
    中的其他模型

Web search

网页搜索

Requires
OMNIROUTE_URL
and
OMNIROUTE_KEY
. See entry-point SKILL for setup.
需要设置
OMNIROUTE_URL
和
OMNIROUTE_KEY
。有关设置,请参阅入口 SKILL。

Endpoint

端点

  • POST $OMNIROUTE_URL/v1/web/search
    — unified search format
  • POST $OMNIROUTE_URL/v1/web/search
    — 统一搜索格式

Discover

模型发现

bash
curl $OMNIROUTE_URL/v1/models/web | jq '.data[] | select(.kind == "webSearch")'
bash
curl $OMNIROUTE_URL/v1/models/web | jq '.data[] | select(.kind == "webSearch")'

Example

示例

bash
curl -X POST $OMNIROUTE_URL/v1/web/search \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tavily/search",
    "query": "OmniRoute github latest release",
    "max_results": 5,
    "include_answer": true
  }'
Response:
{ answer?, results:[{ url, title, content, score }] }
bash
curl -X POST $OMNIROUTE_URL/v1/web/search \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tavily/search",
    "query": "OmniRoute github latest release",
    "max_results": 5,
    "include_answer": true
  }'
响应:
{ answer?, results:[{ url, title, content, score }] }

Parameters

参数

FieldTypeDescription
model
stringProvider model from
/v1/models/web
query
stringSearch query
max_results
numberMax results (default: 5)
include_answer
booleanInclude AI-synthesized answer
search_depth
string
basic
or
advanced
(Tavily)
字段类型说明
model
string来自
/v1/models/web
的 provider 模型
query
string搜索查询
max_results
number最大结果数(默认值:5)
include_answer
boolean包含 AI 合成答案
search_depth
string
basic
或
advanced
(Tavily)

Errors

错误

  • 400 query_too_long
    → shorten the search query
  • 503
    → provider unavailable; try another model in
    /v1/models/web
  • 400 query_too_long
    → 请缩短搜索查询
  • 503
    → provider 不可用;请尝试使用
    /v1/models/web
    中的其他模型

Web fetch

网页内容抓取

Requires
OMNIROUTE_URL
and
OMNIROUTE_KEY
. See entry-point SKILL for setup.
需要设置
OMNIROUTE_URL
和
OMNIROUTE_KEY
。有关设置,请参阅入口 SKILL。

Endpoint

端点

  • POST $OMNIROUTE_URL/v1/web/fetch
  • POST $OMNIROUTE_URL/v1/web/fetch

Discover

模型发现

bash
curl $OMNIROUTE_URL/v1/models/web | jq '.data[] | select(.kind == "webFetch")'
bash
curl $OMNIROUTE_URL/v1/models/web | jq '.data[] | select(.kind == "webFetch")'

Example

示例

bash
curl -X POST $OMNIROUTE_URL/v1/web/fetch \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jina/reader",
    "url": "https://anthropic.com",
    "format": "markdown"
  }'
Response:
{ url, title, markdown, links?:[...], images?:[...] }
bash
curl -X POST $OMNIROUTE_URL/v1/web/fetch \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jina/reader",
    "url": "https://anthropic.com",
    "format": "markdown"
  }'
响应:
{ url, title, markdown, links?:[...], images?:[...] }

Parameters

参数

FieldTypeDescription
model
stringProvider from
/v1/models/web
(e.g.
jina/reader
,
firecrawl/scrape
)
url
stringURL to fetch
format
string
markdown
(default),
html
,
text
字段类型说明
model
string来自
/v1/models/web
的 provider(例如
jina/reader
、
firecrawl/scrape
)
url
string要抓取的 URL
format
string
markdown
(默认)、
html
、
text

Errors

错误

  • 400 invalid_url
    → URL must be http/https
  • 403 blocked
    → provider blocked by target site; try a different model
  • 503
    → provider unavailable; try another model in
    /v1/models/web
<!-- skill:custom-end -->
  • 400 invalid_url
    → URL 必须使用 http/https
  • 403 blocked
    → 目标网站阻止了该 provider;请尝试使用其他模型
  • 503
    → provider 不可用;请尝试使用
    /v1/models/web
    中的其他模型
<!-- skill:custom-end -->