omniroute 1.4.11 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ar.md +1153 -0
- package/README.bg.md +1238 -0
- package/README.da.md +1238 -0
- package/README.de.md +1 -1
- package/README.es.md +1 -1
- package/README.fi.md +1238 -0
- package/README.fr.md +1 -1
- package/README.he.md +1238 -0
- package/README.hu.md +1238 -0
- package/README.id.md +1238 -0
- package/README.in.md +952 -0
- package/README.it.md +1 -1
- package/README.ja.md +1152 -0
- package/README.ko.md +1238 -0
- package/README.md +25 -20
- package/README.ms.md +1238 -0
- package/README.nl.md +1238 -0
- package/README.no.md +1238 -0
- package/README.phi.md +1238 -0
- package/README.pl.md +1238 -0
- package/README.pt-BR.md +16 -12
- package/README.pt.md +1238 -0
- package/README.ro.md +1238 -0
- package/README.ru.md +1 -1
- package/README.sk.md +1239 -0
- package/README.sv.md +1238 -0
- package/README.th.md +1229 -0
- package/README.uk-UA.md +1240 -0
- package/README.vi.md +1238 -0
- package/README.zh-CN.md +1 -1
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +28 -28
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/prerender-manifest.json +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +6 -6
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/costs/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/costs/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/health/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/limits/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/limits/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/logs/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/logs/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +2 -2
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page.js +1 -1
- package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/backups/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/status/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/route.js +1 -1
- package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/monitoring/health/route.js +1 -1
- package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback/page.js +2 -2
- package/app/.next/server/app/callback/page.js.nft.json +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/docs/page.js +2 -2
- package/app/.next/server/app/docs/page.js.nft.json +1 -1
- package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forbidden/page.js +2 -2
- package/app/.next/server/app/forbidden/page.js.nft.json +1 -1
- package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forgot-password/page.js +2 -2
- package/app/.next/server/app/forgot-password/page.js.nft.json +1 -1
- package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing/page.js +2 -2
- package/app/.next/server/app/landing/page.js.nft.json +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login/page.js +2 -2
- package/app/.next/server/app/login/page.js.nft.json +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/page.js +1 -1
- package/app/.next/server/app/page.js.nft.json +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/privacy/page.js +2 -2
- package/app/.next/server/app/privacy/page.js.nft.json +1 -1
- package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/terms/page.js +2 -2
- package/app/.next/server/app/terms/page.js.nft.json +1 -1
- package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +28 -28
- package/app/.next/server/chunks/1248.js +1 -0
- package/app/.next/server/chunks/{3994.js → 1465.js} +2 -2
- package/app/.next/server/chunks/1526.js +1 -0
- package/app/.next/server/chunks/1584.js +1 -0
- package/app/.next/server/chunks/1623.js +1 -0
- package/app/.next/server/chunks/1880.js +1 -0
- package/app/.next/server/chunks/1960.js +1 -1
- package/app/.next/server/chunks/1990.js +1 -1
- package/app/.next/server/chunks/2214.js +1 -0
- package/app/.next/server/chunks/2372.js +1 -0
- package/app/.next/server/chunks/2594.js +1 -0
- package/app/.next/server/chunks/3371.js +1 -0
- package/app/.next/server/chunks/3498.js +1 -1
- package/app/.next/server/chunks/3911.js +1 -0
- package/app/.next/server/chunks/438.js +1 -0
- package/app/.next/server/chunks/496.js +1 -0
- package/app/.next/server/chunks/5047.js +1 -0
- package/app/.next/server/chunks/5094.js +1 -0
- package/app/.next/server/chunks/5097.js +1 -0
- package/app/.next/server/chunks/5393.js +2 -0
- package/app/.next/server/chunks/5521.js +1 -0
- package/app/.next/server/chunks/5945.js +1 -0
- package/app/.next/server/chunks/6118.js +1 -0
- package/app/.next/server/chunks/6930.js +1 -0
- package/app/.next/server/chunks/7011.js +1 -0
- package/app/.next/server/chunks/708.js +1 -0
- package/app/.next/server/chunks/7650.js +1 -0
- package/app/.next/server/chunks/8220.js +1 -0
- package/app/.next/server/chunks/8464.js +1 -0
- package/app/.next/server/chunks/8706.js +1 -0
- package/app/.next/server/chunks/8976.js +1 -0
- package/app/.next/server/chunks/9119.js +1 -0
- package/app/.next/server/chunks/944.js +1 -0
- package/app/.next/server/chunks/9824.js +1 -1
- package/app/.next/server/chunks/9837.js +1 -0
- package/app/.next/server/pages/500.html +2 -2
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/chunks/{6458-085536744d592424.js → 1149-fefe7f95f0e9842f.js} +1 -1
- package/app/.next/static/chunks/{5846-19c878280decbd16.js → 5846-c6bffec2bf9757fa.js} +1 -1
- package/app/.next/static/chunks/{782-5e138760b7f7bf48.js → 8055-5844ff783b2e8a99.js} +3 -3
- package/app/.next/static/chunks/{993-e3050ebfd4f5032f.js → 993-cf9fe6c017bc7e67.js} +3 -3
- package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/page-52f76c7c91444ec2.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-1dd4d0c348a7b0a6.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-e5bf8955e7b9a4f5.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-ce332ffdb491a4d8.js +15 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/{page-ede2315b6918315e.js → page-6abed29d64c46388.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/page-3ed2a7685adf9b91.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-1420c3ca376f1585.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/health/page-9a6519bf1468f16e.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-f4a2d6d07df5ddc4.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/{page-6ee69634597daee0.js → page-833d24f322a20f5a.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/page-ec914ae79f085e6f.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-388840686801f3f5.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-9c8ffb212f855704.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-31cdb6e15134d8c2.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-1f022385b812b987.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-1393d4935fc087cf.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/pricing/{page-77158451270c1852.js → page-f10a8d4bb8236913.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-83b07523f81d6282.js +4 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-9cc99ab874fc36e7.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/{layout-b23c2c5427e04dcf.js → layout-00d5d56af65098a9.js} +1 -1
- package/app/.next/static/chunks/app/callback/page-585a53f7dc6a30f1.js +1 -0
- package/app/.next/static/chunks/app/docs/page-2fe9dcbeb3f738c0.js +1 -0
- package/app/.next/static/chunks/app/forbidden/{page-4a39fedc08aaaf55.js → page-df886dfa2d5bd9fa.js} +1 -1
- package/app/.next/static/chunks/app/forgot-password/page-2a495f0b0c653ab4.js +1 -0
- package/app/.next/static/chunks/app/landing/page-9d540ab1716f8e3e.js +1 -0
- package/app/.next/static/chunks/app/login/page-121c612ee459e7c2.js +1 -0
- package/app/.next/static/chunks/app/privacy/page-2fe9dcbeb3f738c0.js +1 -0
- package/app/.next/static/chunks/app/terms/page-2fe9dcbeb3f738c0.js +1 -0
- package/app/.next/static/css/6f101b114a4a7286.css +1 -0
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/app/.next/server/chunks/1259.js +0 -2
- package/app/.next/server/chunks/4509.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/page-a50474b6ebdf468a.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-d806e4f28c15636a.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-27bc511cf3930e1e.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-ad885fdf9806e9a6.js +0 -15
- package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/page-08f3ed204d01b6a0.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-6e4f3ca7ac9778be.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/health/page-8725f1a181e558a3.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-fbe1442b61df950a.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/page-931fa0c45dca76c9.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-04bc41f9e9de17ef.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-6b6d62c5872aee46.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-2dc2a865e90681dd.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-ac85ce5066cd9044.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-88cac9e6f2fbe335.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-b351778975cb8622.js +0 -4
- package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-f0809c7842e4f5b4.js +0 -1
- package/app/.next/static/chunks/app/callback/page-e439cd5a287000d8.js +0 -1
- package/app/.next/static/chunks/app/docs/page-8f74097544a61b9d.js +0 -1
- package/app/.next/static/chunks/app/forgot-password/page-a440e0c1675842bf.js +0 -1
- package/app/.next/static/chunks/app/landing/page-09741814aaca7548.js +0 -1
- package/app/.next/static/chunks/app/login/page-164f6b6b41167c5a.js +0 -1
- package/app/.next/static/chunks/app/privacy/page-8f74097544a61b9d.js +0 -1
- package/app/.next/static/chunks/app/terms/page-8f74097544a61b9d.js +0 -1
- package/app/.next/static/css/e90887a86e63903f.css +0 -1
- /package/app/.next/static/{g7Mie-iq39oZ7ts610YtL → XOdkUGO-Pm15MwsN4s6B3}/_buildManifest.js +0 -0
- /package/app/.next/static/{g7Mie-iq39oZ7ts610YtL → XOdkUGO-Pm15MwsN4s6B3}/_ssgManifest.js +0 -0
package/README.uk-UA.md
ADDED
|
@@ -0,0 +1,1240 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/>
|
|
3
|
+
|
|
4
|
+
# 🚀 OmniRoute — безкоштовний ШІ-шлюз
|
|
5
|
+
|
|
6
|
+
🌐 **[English](#-omniroute--the-free-ai-gateway)** | **[Português (BR)](#-omniroute--gateway-de-ia-gratuito)**
|
|
7
|
+
|
|
8
|
+
### Ніколи не припиняйте кодувати. Розумна маршрутизація до **БЕЗКОШТОВНИХ і недорогих моделей штучного інтелекту** з автоматичним резервним копіюванням.
|
|
9
|
+
|
|
10
|
+
_Ваш універсальний API-проксі — одна кінцева точка, понад 36 провайдерів, нуль простоїв._
|
|
11
|
+
|
|
12
|
+
**Завершення чату • Вбудовування • Генерація зображень • Аудіо • Реранжування • 100% TypeScript**
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
### 🤖 Безкоштовний постачальник AI для ваших улюблених агентів кодування
|
|
17
|
+
|
|
18
|
+
_Підключіть будь-який інструмент IDE або CLI на основі штучного інтелекту через OmniRoute — безкоштовний шлюз API для необмеженого програмування._
|
|
19
|
+
|
|
20
|
+
<table>
|
|
21
|
+
<tr>
|
|
22
|
+
<td align="center" width="110">
|
|
23
|
+
<a href="https://github.com/cline/cline">
|
|
24
|
+
<img src="./public/providers/openclaw.png" alt="OpenClaw" width="48"/><br/>
|
|
25
|
+
<b>OpenClaw</b>
|
|
26
|
+
</a><br/>
|
|
27
|
+
<sub>⭐ 205K</sub>
|
|
28
|
+
</td>
|
|
29
|
+
<td align="center" width="110">
|
|
30
|
+
<a href="https://github.com/HKUDS/nanobot">
|
|
31
|
+
<img src="./public/providers/nanobot.png" alt="NanoBot" width="48"/><br/>
|
|
32
|
+
<b>NanoBot</b>
|
|
33
|
+
</a><br/>
|
|
34
|
+
<sub>⭐ 20.9K</sub>
|
|
35
|
+
</td>
|
|
36
|
+
<td align="center" width="110">
|
|
37
|
+
<a href="https://github.com/sipeed/picoclaw">
|
|
38
|
+
<img src="./public/providers/picoclaw.jpg" alt="PicoClaw" width="48"/><br/>
|
|
39
|
+
<b>PicoClaw</b>
|
|
40
|
+
</a><br/>
|
|
41
|
+
<sub>⭐ 14.6K</sub>
|
|
42
|
+
</td>
|
|
43
|
+
<td align="center" width="110">
|
|
44
|
+
<a href="https://github.com/zeroclaw-labs/zeroclaw">
|
|
45
|
+
<img src="./public/providers/zeroclaw.png" alt="ZeroClaw" width="48"/><br/>
|
|
46
|
+
<b>ZeroClaw</b>
|
|
47
|
+
</a><br/>
|
|
48
|
+
<sub>⭐ 9.9K</sub>
|
|
49
|
+
</td>
|
|
50
|
+
<td align="center" width="110">
|
|
51
|
+
<a href="https://github.com/nearai/ironclaw">
|
|
52
|
+
<img src="./public/providers/ironclaw.png" alt="IronClaw" width="48"/><br/>
|
|
53
|
+
<b>IronClaw</b>
|
|
54
|
+
</a><br/>
|
|
55
|
+
<sub>⭐ 2.1K</sub>
|
|
56
|
+
</td>
|
|
57
|
+
</tr>
|
|
58
|
+
<tr>
|
|
59
|
+
<td align="center" width="110">
|
|
60
|
+
<a href="https://github.com/anomalyco/opencode">
|
|
61
|
+
<img src="./public/providers/opencode.svg" alt="OpenCode" width="48"/><br/>
|
|
62
|
+
<b>OpenCode</b>
|
|
63
|
+
</a><br/>
|
|
64
|
+
<sub>⭐ 106K</sub>
|
|
65
|
+
</td>
|
|
66
|
+
<td align="center" width="110">
|
|
67
|
+
<a href="https://github.com/openai/codex">
|
|
68
|
+
<img src="./public/providers/codex.png" alt="Codex CLI" width="48"/><br/>
|
|
69
|
+
<b>Codex CLI</b>
|
|
70
|
+
</a><br/>
|
|
71
|
+
<sub>⭐ 60.8K</sub>
|
|
72
|
+
</td>
|
|
73
|
+
<td align="center" width="110">
|
|
74
|
+
<a href="https://github.com/anthropics/claude-code">
|
|
75
|
+
<img src="./public/providers/claude.png" alt="Claude Code" width="48"/><br/>
|
|
76
|
+
<b>Claude Code</b>
|
|
77
|
+
</a><br/>
|
|
78
|
+
<sub>⭐ 67.3K</sub>
|
|
79
|
+
</td>
|
|
80
|
+
<td align="center" width="110">
|
|
81
|
+
<a href="https://github.com/google-gemini/gemini-cli">
|
|
82
|
+
<img src="./public/providers/gemini-cli.png" alt="Gemini CLI" width="48"/><br/>
|
|
83
|
+
<b>Gemini CLI</b>
|
|
84
|
+
</a><br/>
|
|
85
|
+
<sub>⭐ 94.7K</sub>
|
|
86
|
+
</td>
|
|
87
|
+
<td align="center" width="110">
|
|
88
|
+
<a href="https://github.com/Kilo-Org/kilocode">
|
|
89
|
+
<img src="./public/providers/kilocode.png" alt="Kilo Code" width="48"/><br/>
|
|
90
|
+
<b>Kilo Code</b>
|
|
91
|
+
</a><br/>
|
|
92
|
+
<sub>⭐ 15.5K</sub>
|
|
93
|
+
</td>
|
|
94
|
+
</tr>
|
|
95
|
+
</table>
|
|
96
|
+
|
|
97
|
+
<sub>📡 Усі агенти підключаються через <code>http://localhost:20128/v1</code> або <code>http://cloud.omniroute.online/v1</code> — одна конфігурація, необмежена кількість моделей і квота</sub>
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
[](https://www.npmjs.com/package/omniroute)
|
|
102
|
+
[](https://hub.docker.com/r/diegosouzapw/omniroute)
|
|
103
|
+
[](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE)
|
|
104
|
+
[](https://omniroute.online)
|
|
105
|
+
[](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
|
|
106
|
+
|
|
107
|
+
[🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
|
|
108
|
+
|
|
109
|
+
🌐 **Available in:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](README.pt-BR.md) | 🇪🇸 [Español](README.es.md) | 🇫🇷 [Français](README.fr.md) | 🇮🇹 [Italiano](README.it.md) | 🇷🇺 [Русский](README.ru.md) | 🇨🇳 [中文 (简体)](README.zh-CN.md) | 🇩🇪 [Deutsch](README.de.md) | 🇮🇳 [हिन्दी](README.in.md) | 🇹🇭 [ไทย](README.th.md) | 🇺🇦 [Українська](README.uk-UA.md) | 🇸🇦 [العربية](README.ar.md) | 🇯🇵 [日本語](README.ja.md) | 🇻🇳 [Tiếng Việt](README.vi.md) | 🇧🇬 [Български](README.bg.md) | 🇩🇰 [Dansk](README.da.md) | 🇫🇮 [Suomi](README.fi.md) | 🇮🇱 [עברית](README.he.md) | 🇭🇺 [Magyar](README.hu.md) | 🇮🇩 [Bahasa Indonesia](README.id.md) | 🇰🇷 [한국어](README.ko.md) | 🇲🇾 [Bahasa Melayu](README.ms.md) | 🇳🇱 [Nederlands](README.nl.md) | 🇳🇴 [Norsk](README.no.md) | 🇵🇹 [Português (Portugal)](README.pt.md) | 🇷🇴 [Română](README.ro.md) | 🇵🇱 [Polski](README.pl.md) | 🇸🇰 [Slovenčina](README.sk.md) | 🇸🇪 [Svenska](README.sv.md) | 🇵🇭 [Filipino](README.phi.md)
|
|
110
|
+
|
|
111
|
+
</div>
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 🤔 Чому OmniRoute?
|
|
116
|
+
|
|
117
|
+
**Припиніть витрачати гроші та досягати лімітів:**
|
|
118
|
+
|
|
119
|
+
- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Квота підписки закінчується без використання кожного місяця
|
|
120
|
+
- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Обмеження швидкості перешкоджають кодуванню в середині
|
|
121
|
+
- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Дорогі API ($20-50/місяць за постачальника)
|
|
122
|
+
- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Ручне перемикання між провайдерами
|
|
123
|
+
|
|
124
|
+
**OmniRoute вирішує цю проблему:**
|
|
125
|
+
|
|
126
|
+
- ✅ **Збільште кількість підписок** - Відстежуйте квоту, використовуйте кожен біт перед скиданням
|
|
127
|
+
- ✅ **Автоматичний резерв** - Підписка → Ключ API → Дешево → Безкоштовно, без простоїв
|
|
128
|
+
- ✅ **Кілька облікових записів** - Циклічний цикл між обліковими записами кожного постачальника
|
|
129
|
+
- ✅ **Універсальний** - Працює з Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, будь-яким інструментом CLI
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 🔄 Як це працює
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
┌─────────────┐
|
|
137
|
+
│ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...)
|
|
138
|
+
│ Tool │
|
|
139
|
+
└──────┬──────┘
|
|
140
|
+
│ http://localhost:20128/v1
|
|
141
|
+
↓
|
|
142
|
+
┌─────────────────────────────────────────┐
|
|
143
|
+
│ OmniRoute (Smart Router) │
|
|
144
|
+
│ • Format translation (OpenAI ↔ Claude) │
|
|
145
|
+
│ • Quota tracking + Embeddings + Images │
|
|
146
|
+
│ • Auto token refresh │
|
|
147
|
+
└──────┬──────────────────────────────────┘
|
|
148
|
+
│
|
|
149
|
+
├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI
|
|
150
|
+
│ ↓ quota exhausted
|
|
151
|
+
├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc.
|
|
152
|
+
│ ↓ budget limit
|
|
153
|
+
├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M)
|
|
154
|
+
│ ↓ budget limit
|
|
155
|
+
└─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited)
|
|
156
|
+
|
|
157
|
+
Result: Never stop coding, minimal cost
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## ⚡ Швидкий старт
|
|
163
|
+
|
|
164
|
+
**1. Встановити глобально:**
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
npm install -g omniroute
|
|
168
|
+
omniroute
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
🎉 Інформаційна панель відкривається в `http://localhost:20128`
|
|
172
|
+
|
|
173
|
+
| Команда | Опис |
|
|
174
|
+
| ----------------------- | ---------------------------------------------- |
|
|
175
|
+
| `omniroute` | Запустити сервер (порт за замовчуванням 20128) |
|
|
176
|
+
| `omniroute --port 3000` | Використовувати спеціальний порт |
|
|
177
|
+
| `omniroute --no-open` | Не відкривати автоматично браузер |
|
|
178
|
+
| `omniroute --help` | Показати довідку |
|
|
179
|
+
|
|
180
|
+
**2. Підключіть БЕЗКОШТОВНОГО провайдера:**
|
|
181
|
+
|
|
182
|
+
Інформаційна панель → Постачальники → Підключити **Claude Code** або **Antigravity** → Вхід OAuth → Готово!
|
|
183
|
+
|
|
184
|
+
**3. Використовуйте у своєму інструменті CLI:**
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
Claude Code/Codex/Gemini CLI/OpenClaw/Cursor/Cline Settings:
|
|
188
|
+
Endpoint: http://localhost:20128/v1
|
|
189
|
+
API Key: [copy from dashboard]
|
|
190
|
+
Model: if/kimi-k2-thinking
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**Ось і все!** Почніть кодувати з БЕЗКОШТОВНИМИ моделями ШІ.
|
|
194
|
+
|
|
195
|
+
**Альтернатива — запустити з джерела:**
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
cp .env.example .env
|
|
199
|
+
npm install
|
|
200
|
+
PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## 🐳 Докер
|
|
206
|
+
|
|
207
|
+
OmniRoute доступний як загальнодоступний образ Docker на [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute).
|
|
208
|
+
|
|
209
|
+
**Швидкий біг:**
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
docker run -d \
|
|
213
|
+
--name omniroute \
|
|
214
|
+
--restart unless-stopped \
|
|
215
|
+
-p 20128:20128 \
|
|
216
|
+
-v omniroute-data:/app/data \
|
|
217
|
+
diegosouzapw/omniroute:latest
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
**З файлом середовища:**
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
# Copy and edit .env first
|
|
224
|
+
cp .env.example .env
|
|
225
|
+
|
|
226
|
+
docker run -d \
|
|
227
|
+
--name omniroute \
|
|
228
|
+
--restart unless-stopped \
|
|
229
|
+
--env-file .env \
|
|
230
|
+
-p 20128:20128 \
|
|
231
|
+
-v omniroute-data:/app/data \
|
|
232
|
+
diegosouzapw/omniroute:latest
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**Використання Docker Compose:**
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
# Base profile (no CLI tools)
|
|
239
|
+
docker compose --profile base up -d
|
|
240
|
+
|
|
241
|
+
# CLI profile (Claude Code, Codex, OpenClaw built-in)
|
|
242
|
+
docker compose --profile cli up -d
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
| Зображення | Тег | Розмір | Опис |
|
|
246
|
+
| ------------------------ | -------- | ------- | -------------------------- |
|
|
247
|
+
| `diegosouzapw/omniroute` | `latest` | ~250 МБ | Останній стабільний випуск |
|
|
248
|
+
| `diegosouzapw/omniroute` | `1.0.3` | ~250 МБ | Поточна версія |
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 💰 Короткий огляд цін
|
|
253
|
+
|
|
254
|
+
| Рівень | Постачальник | Вартість | Скидання квоти | Найкраще для |
|
|
255
|
+
| ------------------ | ---------------- | ------------------------------- | ----------------------------- | ---------------------------- |
|
|
256
|
+
| **💳 ПІДПИСКА** | Клод Код (Pro) | 20 доларів США на місяць | 5 годин + щотижня | Вже підписані |
|
|
257
|
+
| | Codex (Plus/Pro) | $20-200/міс | 5 годин + щотижня | Користувачі OpenAI |
|
|
258
|
+
| | Gemini CLI | **БЕЗКОШТОВНО** | 180 тис./місяць + 1 тис./день | всі! |
|
|
259
|
+
| | Копілот GitHub | $10-19/міс | Щомісяця | Користувачі GitHub |
|
|
260
|
+
| **🔑 КЛЮЧ API** | NVIDIA NIM | **БЕЗКОШТОВНО** (1000 кредитів) | Одноразова | Безкоштовне тестування рівня |
|
|
261
|
+
| | DeepSeek | Оплата за використання | Жодного | Краща ціна/якість |
|
|
262
|
+
| | Groq | Безкоштовний рівень + платний | Оцінка обмежена | Надшвидкий висновок |
|
|
263
|
+
| | xAI (Грок) | Оплата за використання | Жодного | Моделі Grok |
|
|
264
|
+
| | Містраль | Безкоштовний рівень + платний | Оцінка обмежена | Європейський ШІ |
|
|
265
|
+
| | OpenRouter | Оплата за використання | Жодного | 100+ моделей |
|
|
266
|
+
| **💰 ДЕШЕВО** | GLM-4.7 | $0,6/1 млн | Щодня о 10 ранку | Резервне копіювання бюджету |
|
|
267
|
+
| | MiniMax M2.1 | $0,2/1 млн | 5-годинний роликовий | Найдешевший варіант |
|
|
268
|
+
| | Кімі К2 | 9 $/міс квартира | 10 млн токенів/міс | Передбачувана вартість |
|
|
269
|
+
| **🆓 БЕЗКОШТОВНО** | iFlow | $0 | Необмежений | 8 моделей безкоштовно |
|
|
270
|
+
| | Квен | $0 | Необмежений | 3 моделі безкоштовно |
|
|
271
|
+
| | Кіро | $0 | Необмежений | Клод безкоштовно |
|
|
272
|
+
|
|
273
|
+
**💡 Порада професіонала:** Почніть із Gemini CLI (180 тис. безкоштовно/місяць) + iFlow (необмежено безкоштовно) = 0 доларів США!
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## 🎯 Випадки використання
|
|
278
|
+
|
|
279
|
+
### Випадок 1: «У мене є підписка на Claude Pro»
|
|
280
|
+
|
|
281
|
+
**Проблема:** Квота закінчується невикористаною, обмеження швидкості під час інтенсивного кодування
|
|
282
|
+
|
|
283
|
+
```
|
|
284
|
+
Combo: "maximize-claude"
|
|
285
|
+
1. cc/claude-opus-4-6 (use subscription fully)
|
|
286
|
+
2. glm/glm-4.7 (cheap backup when quota out)
|
|
287
|
+
3. if/kimi-k2-thinking (free emergency fallback)
|
|
288
|
+
|
|
289
|
+
Monthly cost: $20 (subscription) + ~$5 (backup) = $25 total
|
|
290
|
+
vs. $20 + hitting limits = frustration
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### Випадок 2: "Я хочу нульову вартість"
|
|
294
|
+
|
|
295
|
+
**Проблема:** не можу дозволити собі підписку, потрібне надійне кодування ШІ
|
|
296
|
+
|
|
297
|
+
```
|
|
298
|
+
Combo: "free-forever"
|
|
299
|
+
1. gc/gemini-3-flash (180K free/month)
|
|
300
|
+
2. if/kimi-k2-thinking (unlimited free)
|
|
301
|
+
3. qw/qwen3-coder-plus (unlimited free)
|
|
302
|
+
|
|
303
|
+
Monthly cost: $0
|
|
304
|
+
Quality: Production-ready models
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
### Випадок 3: «Мені потрібне кодування 24/7, без перерв»
|
|
308
|
+
|
|
309
|
+
**Проблема:** Дедлайни, не можу дозволити собі простою
|
|
310
|
+
|
|
311
|
+
```
|
|
312
|
+
Combo: "always-on"
|
|
313
|
+
1. cc/claude-opus-4-6 (best quality)
|
|
314
|
+
2. cx/gpt-5.2-codex (second subscription)
|
|
315
|
+
3. glm/glm-4.7 (cheap, resets daily)
|
|
316
|
+
4. minimax/MiniMax-M2.1 (cheapest, 5h reset)
|
|
317
|
+
5. if/kimi-k2-thinking (free unlimited)
|
|
318
|
+
|
|
319
|
+
Result: 5 layers of fallback = zero downtime
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
### Випадок 4: «Я хочу БЕЗКОШТОВНОГО ШІ в OpenClaw»
|
|
323
|
+
|
|
324
|
+
**Проблема:** потрібен помічник штучного інтелекту в програмах для обміну повідомленнями, повністю безкоштовний
|
|
325
|
+
|
|
326
|
+
```
|
|
327
|
+
Combo: "openclaw-free"
|
|
328
|
+
1. if/glm-4.7 (unlimited free)
|
|
329
|
+
2. if/minimax-m2.1 (unlimited free)
|
|
330
|
+
3. if/kimi-k2-thinking (unlimited free)
|
|
331
|
+
|
|
332
|
+
Monthly cost: $0
|
|
333
|
+
Access via: WhatsApp, Telegram, Slack, Discord, iMessage, Signal...
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## 💡 Основні характеристики
|
|
339
|
+
|
|
340
|
+
### 🧠 Основна маршрутизація та інтелект
|
|
341
|
+
|
|
342
|
+
| Особливість | Що він робить |
|
|
343
|
+
| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
|
|
344
|
+
| 🎯 **Розумний 4-рівневий резервний варіант** | Авто-маршрут: Підписка → Ключ API → Дешево → Безкоштовно |
|
|
345
|
+
| 📊 **Відстеження квот у реальному часі** | Підрахунок живих токенів + скидання зворотного відліку для кожного постачальника |
|
|
346
|
+
| 🔄 **Формат перекладу** | OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro seamless + відповідь санація |
|
|
347
|
+
| 👥 **Підтримка кількох облікових записів** | Кілька облікових записів на постачальника з інтелектуальним вибором |
|
|
348
|
+
| 🔄 **Автоматичне оновлення токенів** | Маркери OAuth оновлюються автоматично з повторною спробою |
|
|
349
|
+
| 🎨 **Користувацькі комбо** | 6 стратегій: спочатку заповнює, циклічний, p2c, випадковий, найменш використовуваний, оптимізований за витратами |
|
|
350
|
+
| 🧩 **Користувацькі моделі** | Додайте будь-який ідентифікатор моделі до будь-якого постачальника |
|
|
351
|
+
| 🌐 **Wildcard Router** | Динамічно направляйте шаблони `provider/*` до будь-якого постачальника |
|
|
352
|
+
| 🧠 **Мислення про бюджет** | Наскрізний, автоматичний, настроюваний і адаптивний режими для моделей міркування |
|
|
353
|
+
| 💬 **Швидке впровадження системи** | Глобальне системне підказка застосовується до всіх запитів |
|
|
354
|
+
| 📄 **API відповідей** | Повна підтримка OpenAI Responses API (`/v1/responses`) для Codex |
|
|
355
|
+
|
|
356
|
+
### 🎵 Мультимодальні API
|
|
357
|
+
|
|
358
|
+
| Особливість | Що він робить |
|
|
359
|
+
| ---------------------------------- | ----------------------------------------------------- |
|
|
360
|
+
| 🖼️ **Створення зображень** | `/v1/images/generations` — 4 провайдери, 9+ моделей |
|
|
361
|
+
| 📐 **Вбудовування** | `/v1/embeddings` — 6 провайдерів, 9+ моделей |
|
|
362
|
+
| 🎤 **Транскрипція аудіо** | `/v1/audio/transcriptions` — сумісний із Whisper |
|
|
363
|
+
| 🔊 **Створення тексту в мовлення** | `/v1/audio/speech` — Багатопровайдерний аудіосинтез |
|
|
364
|
+
| 🛡️ **Модерації** | `/v1/moderations` — Перевірка безпеки вмісту |
|
|
365
|
+
| 🔀 **Переранжування** | `/v1/rerank` — Переранжування релевантності документа |
|
|
366
|
+
|
|
367
|
+
### 🛡️ Стійкість і безпека
|
|
368
|
+
|
|
369
|
+
| Особливість | Що він робить |
|
|
370
|
+
| ------------------------------------- | ----------------------------------------------------------------------------------------------------- |
|
|
371
|
+
| 🔌 **Автоматичний вимикач** | Автоматичне відкриття/закриття для кожного постачальника з настроюваними пороговими значеннями |
|
|
372
|
+
| 🛡️ **Anti-Thundering Herd** | Mutex + обмеження швидкості семафора для постачальників ключів API |
|
|
373
|
+
| 🧠 **Семантичний кеш** | Дворівневий кеш (підпис + семантика) зменшує вартість і затримку |
|
|
374
|
+
| ⚡ **Запит на ідемпотентність** | 5-секундне вікно дедупляції для дублікатів запитів |
|
|
375
|
+
| 🔒 **Підробка відбитків пальців TLS** | Обійти виявлення ботів на основі TLS через wreq-js |
|
|
376
|
+
| 🌐 **IP-фільтрація** | Білий/чорний список для керування доступом API |
|
|
377
|
+
| 📊 **Редаговані ліміти ставок** | Конфігурація RPM, мінімальний проміжок і максимальна одночасність на рівні системи |
|
|
378
|
+
| 🛡 **API Endpoint Protection** | Аутентифікація + блокування постачальника для кінцевої точки `/models` |
|
|
379
|
+
| 🔒 **Видимість проксі** | Кольорові значки: 🟢 глобальний, 🟡 постачальник, 🔵 кожне підключення з відображенням IP |
|
|
380
|
+
| 🌐 **3-рівнева конфігурація проксі** | Налаштуйте проксі-сервери на глобальному рівні, на рівні кожного постачальника чи кожного підключення |
|
|
381
|
+
|
|
382
|
+
### 📊 Спостережливість і аналітика
|
|
383
|
+
|
|
384
|
+
| Особливість | Що він робить |
|
|
385
|
+
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
|
|
386
|
+
| 📝 **Подати запит на реєстрацію** | Режим налагодження з повними журналами запитів/відповідей |
|
|
387
|
+
| 💾 **Журнали проксі SQLite** | Постійні журнали проксі зберігаються після перезавантаження сервера |
|
|
388
|
+
| 📊 **Інформаційна панель аналітики** | На основі Recharts: картки статистики, діаграма використання моделей, таблиця провайдерів |
|
|
389
|
+
| 📈 **Відстеження прогресу** | Увімкніть події прогресу SSE для потокового передавання |
|
|
390
|
+
| 🧪 **Оцінки LLM** | Тестування золотого набору з 4 стратегіями матчу |
|
|
391
|
+
| 🔍 **Надіслати запит на телеметрію** | агрегація затримок p50/p95/p99 + трасування X-Request-Id |
|
|
392
|
+
| 📋 **Інформаційна панель журналів** | Уніфікована сторінка з 4 вкладками: журнали запитів, журнали проксі, журнали аудиту, консоль |
|
|
393
|
+
| 🖥️ **Перегляд журналу консолі** | Переглядач у режимі реального часу у стилі терміналу з фільтром рівнів, пошуком, автоматичним прокручуванням |
|
|
394
|
+
| 📑 **Логування на основі файлів** | Перехоплювач консолі захоплює весь вихід у файл журналу JSON із обертанням |
|
|
395
|
+
| 🏥 **Інформаційна панель здоров’я** | Час роботи системи, стани автоматичного вимикача, блокування, статистика кешу |
|
|
396
|
+
| 💰 **Відстеження витрат** | Управління бюджетом + конфігурація ціноутворення для кожної моделі |
|
|
397
|
+
|
|
398
|
+
### ☁️ Розгортання та синхронізація
|
|
399
|
+
|
|
400
|
+
| Особливість | Що він робить |
|
|
401
|
+
| ------------------------------------------- | ----------------------------------------------------------------------------------- |
|
|
402
|
+
| 💾 **Хмарна синхронізація** | Синхронізація конфігурації між пристроями через Cloudflare Workers |
|
|
403
|
+
| 🌐 **Розгортайте будь-де** | Localhost, VPS, Docker, Cloudflare Workers |
|
|
404
|
+
| 🔑 **Керування ключами API** | Генерувати, обертати та використовувати ключі API для кожного постачальника |
|
|
405
|
+
| 🧙 **Майстер адаптації** | 4-етапне покрокове налаштування для користувачів, які вперше |
|
|
406
|
+
| 🔧 **Інформаційна панель інструментів CLI** | Налаштувати в один клік Claude, Codex, Cline, OpenClaw, Kilo, Antigravity |
|
|
407
|
+
| 🔄 **Резервне копіювання БД** | Автоматичне резервне копіювання, відновлення, експорт і імпорт для всіх налаштувань |
|
|
408
|
+
| 🌐 **Інтернаціоналізація** | Повний i18n із next-intl — підтримка англійської та португальської (Бразилія) |
|
|
409
|
+
| 🌍 **Вибір мови** | Значок глобуса в заголовку для перемикання мов у реальному часі (🇺🇸/🇧🇷) |
|
|
410
|
+
| 📂 **Каталог користувацьких даних** | `DATA_DIR` змінна env для перевизначення типового шляху зберігання `~/.omniroute` |
|
|
411
|
+
|
|
412
|
+
<details>
|
|
413
|
+
<summary><b>📖 Деталі функції</b></summary>
|
|
414
|
+
|
|
415
|
+
### 🎯 Smart 4-Tier Fallback
|
|
416
|
+
|
|
417
|
+
Створюйте комбо з автоматичним резервним варіантом:
|
|
418
|
+
|
|
419
|
+
```
|
|
420
|
+
Combo: "my-coding-stack"
|
|
421
|
+
1. cc/claude-opus-4-6 (your subscription)
|
|
422
|
+
2. nvidia/llama-3.3-70b (free NVIDIA API)
|
|
423
|
+
3. glm/glm-4.7 (cheap backup, $0.6/1M)
|
|
424
|
+
4. if/kimi-k2-thinking (free fallback)
|
|
425
|
+
|
|
426
|
+
→ Auto switches when quota runs out or errors occur
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
### 📊 Відстеження квот у реальному часі
|
|
430
|
+
|
|
431
|
+
- Споживання токенів на постачальника
|
|
432
|
+
- Скидання зворотного відліку (5 годин, щодня, щотижня)
|
|
433
|
+
- Оцінка вартості платних рівнів
|
|
434
|
+
- Щомісячні звіти про витрати
|
|
435
|
+
|
|
436
|
+
### 🔄 Переклад формату
|
|
437
|
+
|
|
438
|
+
Плавний переклад між форматами:
|
|
439
|
+
|
|
440
|
+
- **OpenAI** ↔ **Клод** ↔ **Близнюки** ↔ **Відповіді OpenAI**
|
|
441
|
+
- Ваш інструмент CLI надсилає формат OpenAI → OmniRoute перекладає → Постачальник отримує рідний формат
|
|
442
|
+
- Працює з будь-яким інструментом, який підтримує спеціальні кінцеві точки OpenAI
|
|
443
|
+
- **Дезінфікація відповіді** — видаляє нестандартні поля для суворої сумісності з OpenAI SDK
|
|
444
|
+
- **Нормалізація ролі** — `developer` → `system` для не-OpenAI; `system` → `user` для моделей GLM/ERNIE
|
|
445
|
+
- **Вилучення тегів мислення** — `<think>` блоків → `reasoning_content` для моделей мислення
|
|
446
|
+
- **Структурований вихід** — `json_schema` → Gemini `responseMimeType`/`responseSchema`
|
|
447
|
+
|
|
448
|
+
### 👥 Підтримка кількох облікових записів
|
|
449
|
+
|
|
450
|
+
- Додайте кілька облікових записів для кожного постачальника
|
|
451
|
+
- Автоматична циклічна або пріоритетна маршрутизація
|
|
452
|
+
- Повернення до наступного облікового запису, коли досягається квота
|
|
453
|
+
|
|
454
|
+
### 🔄 Автоматичне оновлення токенів
|
|
455
|
+
|
|
456
|
+
- Маркери OAuth автоматично оновлюються до закінчення терміну дії
|
|
457
|
+
- Повторна автентифікація вручну не потрібна
|
|
458
|
+
- Бездоганний досвід у всіх постачальників
|
|
459
|
+
|
|
460
|
+
### 🎨 Спеціальні комбо
|
|
461
|
+
|
|
462
|
+
- Створюйте необмежену кількість комбінацій моделей
|
|
463
|
+
- 6 стратегій: спочатку заповнюй, циклічна, сила двох варіантів, випадкова, найменш використовувана, оптимізована за витратами
|
|
464
|
+
- Діліться комбо на різних пристроях за допомогою Cloud Sync
|
|
465
|
+
|
|
466
|
+
### 🏥 Інформаційна панель здоров'я
|
|
467
|
+
|
|
468
|
+
- Статус системи (час роботи, версія, використання пам'яті)
|
|
469
|
+
- Стани автоматичного вимикача для кожного постачальника (замкнуто/розімкнуто/напіврозімкнуто)
|
|
470
|
+
- Статус обмеження швидкості та активні блокування
|
|
471
|
+
— Статистика кешу підписів
|
|
472
|
+
- Телеметрія затримки (p50/p95/p99) + кеш підказок
|
|
473
|
+
- Скинути стан здоров'я одним клацанням миші
|
|
474
|
+
|
|
475
|
+
### 🔧 Ігровий майданчик для перекладачів
|
|
476
|
+
|
|
477
|
+
OmniRoute містить потужний вбудований Translator Playground із **4 режимами** для налагодження, тестування та моніторингу перекладів API:
|
|
478
|
+
|
|
479
|
+
| Режим | Опис |
|
|
480
|
+
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
481
|
+
| **💻 Ігровий майданчик** | Прямий переклад формату — вставте будь-яке тіло запиту API та миттєво подивіться, як OmniRoute перекладає його між форматами постачальників (OpenAI ↔ Claude ↔ Gemini ↔ Responses API). Включає приклади шаблонів і автоматичне визначення формату. |
|
|
482
|
+
| **💬 Тестер чату** | Надсилайте справжні запити в чат через OmniRoute і переглядайте повну інформацію: ваші дані, перекладений запит, відповідь постачальника та перекладену відповідь. Безцінний для перевірки комбінованої маршрутизації. |
|
|
483
|
+
| **🧪 Тестовий стенд** | Режим пакетного тестування — визначте кілька тестів із різними вхідними та очікуваними результатами, запустіть їх усі одночасно та порівняйте результати між постачальниками та моделями. |
|
|
484
|
+
| **📱 Live Monitor** | Моніторинг запитів у режимі реального часу — спостерігайте за вхідними запитами, коли вони проходять через OmniRoute, переглядайте трансляції форматів у реальному часі та миттєво виявляйте проблеми. |
|
|
485
|
+
|
|
486
|
+
**Доступ:** Інформаційна панель → Перекладач (бічна панель)
|
|
487
|
+
|
|
488
|
+
### 💾 Cloud Sync
|
|
489
|
+
|
|
490
|
+
- Синхронізація постачальників, комбінацій і налаштувань на всіх пристроях
|
|
491
|
+
- Автоматична фонова синхронізація
|
|
492
|
+
- Безпечне зашифроване сховище
|
|
493
|
+
|
|
494
|
+
</details>
|
|
495
|
+
|
|
496
|
+
---
|
|
497
|
+
|
|
498
|
+
## 📖 Посібник із налаштування
|
|
499
|
+
|
|
500
|
+
<details>
|
|
501
|
+
<summary><b>💳 Постачальники підписки</b></summary>
|
|
502
|
+
|
|
503
|
+
### Claude Code (Pro/Max)
|
|
504
|
+
|
|
505
|
+
```bash
|
|
506
|
+
Dashboard → Providers → Connect Claude Code
|
|
507
|
+
→ OAuth login → Auto token refresh
|
|
508
|
+
→ 5-hour + weekly quota tracking
|
|
509
|
+
|
|
510
|
+
Models:
|
|
511
|
+
cc/claude-opus-4-6
|
|
512
|
+
cc/claude-sonnet-4-5-20250929
|
|
513
|
+
cc/claude-haiku-4-5-20251001
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
**Професійна порада:** використовуйте Opus для складних завдань, Sonnet для швидкості. OmniRoute відстежує квоту на модель!
|
|
517
|
+
|
|
518
|
+
### OpenAI Codex (Plus/Pro)
|
|
519
|
+
|
|
520
|
+
```bash
|
|
521
|
+
Dashboard → Providers → Connect Codex
|
|
522
|
+
→ OAuth login (port 1455)
|
|
523
|
+
→ 5-hour + weekly reset
|
|
524
|
+
|
|
525
|
+
Models:
|
|
526
|
+
cx/gpt-5.2-codex
|
|
527
|
+
cx/gpt-5.1-codex-max
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
### Gemini CLI (БЕЗКОШТОВНО 180K/місяць!)
|
|
531
|
+
|
|
532
|
+
```bash
|
|
533
|
+
Dashboard → Providers → Connect Gemini CLI
|
|
534
|
+
→ Google OAuth
|
|
535
|
+
→ 180K completions/month + 1K/day
|
|
536
|
+
|
|
537
|
+
Models:
|
|
538
|
+
gc/gemini-3-flash-preview
|
|
539
|
+
gc/gemini-2.5-pro
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
**Найкраще:** Величезний безкоштовний рівень! Використовуйте це перед платними рівнями.
|
|
543
|
+
|
|
544
|
+
### Копілот GitHub
|
|
545
|
+
|
|
546
|
+
```bash
|
|
547
|
+
Dashboard → Providers → Connect GitHub
|
|
548
|
+
→ OAuth via GitHub
|
|
549
|
+
→ Monthly reset (1st of month)
|
|
550
|
+
|
|
551
|
+
Models:
|
|
552
|
+
gh/gpt-5
|
|
553
|
+
gh/claude-4.5-sonnet
|
|
554
|
+
gh/gemini-3-pro
|
|
555
|
+
```
|
|
556
|
+
|
|
557
|
+
</details>
|
|
558
|
+
|
|
559
|
+
<details>
|
|
560
|
+
<summary><b>🔑 Постачальники ключів API</b></summary>
|
|
561
|
+
|
|
562
|
+
### NVIDIA NIM (БЕЗКОШТОВНІ 1000 кредитів!)
|
|
563
|
+
|
|
564
|
+
1. Зареєструйтесь: [build.nvidia.com](https://build.nvidia.com)
|
|
565
|
+
2. Отримайте безкоштовний ключ API (1000 кредитів включено)
|
|
566
|
+
3. Інформаційна панель → Додати постачальника → NVIDIA NIM:
|
|
567
|
+
- Ключ API: `nvapi-your-key`
|
|
568
|
+
|
|
569
|
+
**Моделі:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` та понад 50 інших
|
|
570
|
+
|
|
571
|
+
**Порада професіонала:** OpenAI-сумісний API — бездоганно працює з перекладом формату OmniRoute!
|
|
572
|
+
|
|
573
|
+
### DeepSeek
|
|
574
|
+
|
|
575
|
+
1. Зареєструйтеся: [platform.deepseek.com](https://platform.deepseek.com)
|
|
576
|
+
2. Отримайте ключ API
|
|
577
|
+
3. Інформаційна панель → Додати постачальника → DeepSeek
|
|
578
|
+
|
|
579
|
+
**Моделі:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder`
|
|
580
|
+
|
|
581
|
+
### Groq (доступний безкоштовний рівень!)
|
|
582
|
+
|
|
583
|
+
1. Зареєструйтеся: [console.groq.com](https://console.groq.com)
|
|
584
|
+
2. Отримайте ключ API (включає безкоштовний рівень)
|
|
585
|
+
3. Інформаційна панель → Додати постачальника → Groq
|
|
586
|
+
|
|
587
|
+
**Моделі:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b`
|
|
588
|
+
|
|
589
|
+
**Професійна порада:** Надшвидкий висновок — найкращий для кодування в реальному часі!
|
|
590
|
+
|
|
591
|
+
### OpenRouter (100+ моделей)
|
|
592
|
+
|
|
593
|
+
1. Зареєструйтеся: [openrouter.ai](https://openrouter.ai)
|
|
594
|
+
2. Отримайте ключ API
|
|
595
|
+
3. Інформаційна панель → Додати провайдера → OpenRouter
|
|
596
|
+
|
|
597
|
+
**Моделі:** Отримуйте доступ до понад 100 моделей від усіх основних постачальників за допомогою єдиного ключа API.
|
|
598
|
+
|
|
599
|
+
</details>
|
|
600
|
+
|
|
601
|
+
<details>
|
|
602
|
+
<summary><b>💰 Дешеві постачальники (резервні)</b></summary>
|
|
603
|
+
|
|
604
|
+
### GLM-4.7 (щоденне скидання, $0,6/1 млн)
|
|
605
|
+
|
|
606
|
+
1. Зареєструйтеся: [Zhipu AI](https://open.bigmodel.cn/)
|
|
607
|
+
2. Отримайте ключ API від Coding Plan
|
|
608
|
+
3. Інформаційна панель → Додати ключ API:
|
|
609
|
+
- Постачальник: `glm`
|
|
610
|
+
- Ключ API: `your-key`
|
|
611
|
+
|
|
612
|
+
**Використовуйте:** `glm/glm-4.7`
|
|
613
|
+
|
|
614
|
+
**Професійна порада:** План кодування пропонує 3x квоту за 1/7 вартості! Скидання щодня о 10:00.
|
|
615
|
+
|
|
616
|
+
### MiniMax M2.1 (5 годин скидання, $0,20/1 млн)
|
|
617
|
+
|
|
618
|
+
1. Зареєструйтеся: [MiniMax](https://www.minimax.io/)
|
|
619
|
+
2. Отримайте ключ API
|
|
620
|
+
3. Інформаційна панель → Додати ключ API
|
|
621
|
+
|
|
622
|
+
**Використовуйте:** `minimax/MiniMax-M2.1`
|
|
623
|
+
|
|
624
|
+
**Порада:** Найдешевший варіант для довгого контексту (1 млн токенів)!
|
|
625
|
+
|
|
626
|
+
### Kimi K2 ($9/місяць)
|
|
627
|
+
|
|
628
|
+
1. Підпишіться: [Moonshot AI](https://platform.moonshot.ai/)
|
|
629
|
+
2. Отримайте ключ API
|
|
630
|
+
3. Інформаційна панель → Додати ключ API
|
|
631
|
+
|
|
632
|
+
**Використання:** `kimi/kimi-latest`
|
|
633
|
+
|
|
634
|
+
**Професійна порада:** Фіксовані 9 доларів США на місяць за 10 мільйонів токенів = 0,90 доларів США за 1 млн. ефективних витрат!
|
|
635
|
+
|
|
636
|
+
</details>
|
|
637
|
+
|
|
638
|
+
<details>
|
|
639
|
+
<summary><b>🆓 БЕЗКОШТОВНІ постачальники (аварійне резервне копіювання)</b></summary>
|
|
640
|
+
|
|
641
|
+
### iFlow (8 БЕЗКОШТОВНИХ моделей)
|
|
642
|
+
|
|
643
|
+
```bash
|
|
644
|
+
Dashboard → Connect iFlow
|
|
645
|
+
→ iFlow OAuth login
|
|
646
|
+
→ Unlimited usage
|
|
647
|
+
|
|
648
|
+
Models:
|
|
649
|
+
if/kimi-k2-thinking
|
|
650
|
+
if/qwen3-coder-plus
|
|
651
|
+
if/glm-4.7
|
|
652
|
+
if/minimax-m2
|
|
653
|
+
if/deepseek-r1
|
|
654
|
+
```
|
|
655
|
+
|
|
656
|
+
### Qwen (3 БЕЗКОШТОВНІ моделі)
|
|
657
|
+
|
|
658
|
+
```bash
|
|
659
|
+
Dashboard → Connect Qwen
|
|
660
|
+
→ Device code authorization
|
|
661
|
+
→ Unlimited usage
|
|
662
|
+
|
|
663
|
+
Models:
|
|
664
|
+
qw/qwen3-coder-plus
|
|
665
|
+
qw/qwen3-coder-flash
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
### Кіро (Клод БЕЗКОШТОВНО)
|
|
669
|
+
|
|
670
|
+
```bash
|
|
671
|
+
Dashboard → Connect Kiro
|
|
672
|
+
→ AWS Builder ID or Google/GitHub
|
|
673
|
+
→ Unlimited usage
|
|
674
|
+
|
|
675
|
+
Models:
|
|
676
|
+
kr/claude-sonnet-4.5
|
|
677
|
+
kr/claude-haiku-4.5
|
|
678
|
+
```
|
|
679
|
+
|
|
680
|
+
</details>
|
|
681
|
+
|
|
682
|
+
<details>
|
|
683
|
+
<summary><b>🎨 Створення комбо</b></summary>
|
|
684
|
+
|
|
685
|
+
### Приклад 1: максимізація підписки → дешеве резервне копіювання
|
|
686
|
+
|
|
687
|
+
```
|
|
688
|
+
Dashboard → Combos → Create New
|
|
689
|
+
|
|
690
|
+
Name: premium-coding
|
|
691
|
+
Models:
|
|
692
|
+
1. cc/claude-opus-4-6 (Subscription primary)
|
|
693
|
+
2. glm/glm-4.7 (Cheap backup, $0.6/1M)
|
|
694
|
+
3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)
|
|
695
|
+
|
|
696
|
+
Use in CLI: premium-coding
|
|
697
|
+
```
|
|
698
|
+
|
|
699
|
+
### Приклад 2: лише безкоштовно (нульова вартість)
|
|
700
|
+
|
|
701
|
+
```
|
|
702
|
+
Name: free-combo
|
|
703
|
+
Models:
|
|
704
|
+
1. gc/gemini-3-flash-preview (180K free/month)
|
|
705
|
+
2. if/kimi-k2-thinking (unlimited)
|
|
706
|
+
3. qw/qwen3-coder-plus (unlimited)
|
|
707
|
+
|
|
708
|
+
Cost: $0 forever!
|
|
709
|
+
```
|
|
710
|
+
|
|
711
|
+
</details>
|
|
712
|
+
|
|
713
|
+
<details>
|
|
714
|
+
<summary><b>🔧 Інтеграція CLI</b></summary>
|
|
715
|
+
|
|
716
|
+
### Курсор IDE
|
|
717
|
+
|
|
718
|
+
```
|
|
719
|
+
Settings → Models → Advanced:
|
|
720
|
+
OpenAI API Base URL: http://localhost:20128/v1
|
|
721
|
+
OpenAI API Key: [from OmniRoute dashboard]
|
|
722
|
+
Model: cc/claude-opus-4-6
|
|
723
|
+
```
|
|
724
|
+
|
|
725
|
+
### Клод Код
|
|
726
|
+
|
|
727
|
+
Використовуйте сторінку **Інструменти CLI** на інформаційній панелі для налаштування одним клацанням миші або редагуйте `~/.claude/settings.json` вручну.
|
|
728
|
+
|
|
729
|
+
### Codex CLI
|
|
730
|
+
|
|
731
|
+
```bash
|
|
732
|
+
export OPENAI_BASE_URL="http://localhost:20128"
|
|
733
|
+
export OPENAI_API_KEY="your-omniroute-api-key"
|
|
734
|
+
|
|
735
|
+
codex "your prompt"
|
|
736
|
+
```
|
|
737
|
+
|
|
738
|
+
### OpenClaw
|
|
739
|
+
|
|
740
|
+
**Варіант 1 — Інформаційна панель (рекомендовано):**
|
|
741
|
+
|
|
742
|
+
```
|
|
743
|
+
Dashboard → CLI Tools → OpenClaw → Select Model → Apply
|
|
744
|
+
```
|
|
745
|
+
|
|
746
|
+
**Варіант 2 — вручну:** Редагувати `~/.openclaw/openclaw.json`:
|
|
747
|
+
|
|
748
|
+
```json
|
|
749
|
+
{
|
|
750
|
+
"models": {
|
|
751
|
+
"providers": {
|
|
752
|
+
"omniroute": {
|
|
753
|
+
"baseUrl": "http://127.0.0.1:20128/v1",
|
|
754
|
+
"apiKey": "sk_omniroute",
|
|
755
|
+
"api": "openai-completions"
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
```
|
|
761
|
+
|
|
762
|
+
> **Примітка:** OpenClaw працює лише з локальним OmniRoute. Використовуйте `127.0.0.1` замість `localhost`, щоб уникнути проблем із вирішенням IPv6.
|
|
763
|
+
|
|
764
|
+
### Cline / Продовжити / RooCode
|
|
765
|
+
|
|
766
|
+
```
|
|
767
|
+
Settings → API Configuration:
|
|
768
|
+
Provider: OpenAI Compatible
|
|
769
|
+
Base URL: http://localhost:20128/v1
|
|
770
|
+
API Key: [from OmniRoute dashboard]
|
|
771
|
+
Model: if/kimi-k2-thinking
|
|
772
|
+
```
|
|
773
|
+
|
|
774
|
+
</details>
|
|
775
|
+
|
|
776
|
+
---
|
|
777
|
+
|
|
778
|
+
## 📊 Доступні моделі
|
|
779
|
+
|
|
780
|
+
<details>
|
|
781
|
+
<summary><b>Переглянути всі доступні моделі</b></summary>
|
|
782
|
+
|
|
783
|
+
**Claude Code (`cc/`)** - Pro/Max:
|
|
784
|
+
|
|
785
|
+
- `cc/claude-opus-4-6`
|
|
786
|
+
- `cc/claude-sonnet-4-5-20250929`
|
|
787
|
+
- `cc/claude-haiku-4-5-20251001`
|
|
788
|
+
|
|
789
|
+
**Codex (`cx/`)** - Plus/Pro:
|
|
790
|
+
|
|
791
|
+
- `cx/gpt-5.2-codex`
|
|
792
|
+
- `cx/gpt-5.1-codex-max`
|
|
793
|
+
|
|
794
|
+
**Gemini CLI (`gc/`)** - БЕЗКОШТОВНО:
|
|
795
|
+
|
|
796
|
+
- `gc/gemini-3-flash-preview`
|
|
797
|
+
- `gc/gemini-2.5-pro`
|
|
798
|
+
|
|
799
|
+
**Копілот GitHub (`gh/`)**:
|
|
800
|
+
|
|
801
|
+
- `gh/gpt-5`
|
|
802
|
+
- `gh/claude-4.5-sonnet`
|
|
803
|
+
|
|
804
|
+
**NVIDIA NIM (`nvidia/`)** - БЕЗКОШТОВНІ кредити:
|
|
805
|
+
|
|
806
|
+
- `nvidia/llama-3.3-70b-instruct`
|
|
807
|
+
- `nvidia/mistral-7b-instruct`
|
|
808
|
+
- більше 50 моделей на [build.nvidia.com](https://build.nvidia.com)
|
|
809
|
+
|
|
810
|
+
**GLM (`glm/`)** - 0,6 $/1 млн:
|
|
811
|
+
|
|
812
|
+
- `glm/glm-4.7`
|
|
813
|
+
|
|
814
|
+
**MiniMax (`minimax/`)** - $0,2/1 млн.:
|
|
815
|
+
|
|
816
|
+
- `minimax/MiniMax-M2.1`
|
|
817
|
+
|
|
818
|
+
**iFlow (`if/`)** - БЕЗКОШТОВНО:
|
|
819
|
+
|
|
820
|
+
- `if/kimi-k2-thinking`
|
|
821
|
+
- `if/qwen3-coder-plus`
|
|
822
|
+
- `if/deepseek-r1`
|
|
823
|
+
- `if/glm-4.7`
|
|
824
|
+
- `if/minimax-m2`
|
|
825
|
+
|
|
826
|
+
**Qwen (`qw/`)** - БЕЗКОШТОВНО:
|
|
827
|
+
|
|
828
|
+
- `qw/qwen3-coder-plus`
|
|
829
|
+
- `qw/qwen3-coder-flash`
|
|
830
|
+
|
|
831
|
+
**Kiro (`kr/`)** - БЕЗКОШТОВНО:
|
|
832
|
+
|
|
833
|
+
- `kr/claude-sonnet-4.5`
|
|
834
|
+
- `kr/claude-haiku-4.5`
|
|
835
|
+
|
|
836
|
+
**OpenRouter (`or/`)** - 100+ моделей:
|
|
837
|
+
|
|
838
|
+
- `or/anthropic/claude-4-sonnet`
|
|
839
|
+
- `or/google/gemini-2.5-pro`
|
|
840
|
+
- Будь-яка модель від [openrouter.ai/models](https://openrouter.ai/models)
|
|
841
|
+
|
|
842
|
+
</details>
|
|
843
|
+
|
|
844
|
+
---
|
|
845
|
+
|
|
846
|
+
## 🧪 Оцінки (Evals)
|
|
847
|
+
|
|
848
|
+
OmniRoute містить вбудовану систему оцінювання для перевірки якості відповіді LLM на відповідність золотому набору. Доступ до нього через **Аналітика → Оцінки** на інформаційній панелі.
|
|
849
|
+
|
|
850
|
+
### Вбудований Золотий набір
|
|
851
|
+
|
|
852
|
+
Попередньо завантажений "Золотий набір OmniRoute" містить 10 тестів, які охоплюють:
|
|
853
|
+
|
|
854
|
+
- Привітання, математика, географія, генерація коду
|
|
855
|
+
- Відповідність формату JSON, переклад, розмітка
|
|
856
|
+
- Відмова безпеки (шкідливий контент), підрахунок, булева логіка
|
|
857
|
+
|
|
858
|
+
### Стратегії оцінювання
|
|
859
|
+
|
|
860
|
+
| Стратегія | Опис | Приклад |
|
|
861
|
+
| ---------- | -------------------------------------------------------------- | -------------------------------- |
|
|
862
|
+
| `exact` | Вихідні дані повинні точно відповідати | `"4"` |
|
|
863
|
+
| `contains` | Вихідні дані повинні містити підрядок (незалежно від регістру) | `"Paris"` |
|
|
864
|
+
| `regex` | Вихідні дані мають відповідати шаблону регулярного виразу | `"1.*2.*3"` |
|
|
865
|
+
| `custom` | Спеціальна функція JS повертає true/false | `(output) => output.length > 10` |
|
|
866
|
+
|
|
867
|
+
---
|
|
868
|
+
|
|
869
|
+
## 🔐 OAuth em Servidor Remoto (віддалене налаштування OAuth)
|
|
870
|
+
|
|
871
|
+
<a name="oauth-em-servidor-remoto"></a>
|
|
872
|
+
|
|
873
|
+
> **⚠️ ВАЖЛИВО для використання OmniRoute у віддаленому VPS/Docker/сервері**
|
|
874
|
+
|
|
875
|
+
### Чи OAuth для Antigravity / Gemini CLI не підтримує віддалені сервери?
|
|
876
|
+
|
|
877
|
+
Провідники **Antigravity** і **Gemini CLI** використовують **Google OAuth 2.0** для автентифікації. Google вимагає, щоб `redirect_uri` не використовував fluxo OAuth, який **exatamente** має URI перед кадастрадами без додатка Google Cloud Console.
|
|
878
|
+
|
|
879
|
+
Оскільки повноваження OAuth embutidas, OmniRoute не встановлено в кадастрадах **apenas para `localhost`**. Якщо ви маєте доступ до OmniRoute у віддаленому сервері (наприклад: `https://omniroute.meuservidor.com`), або Google rejeita a autenticação com:
|
|
880
|
+
|
|
881
|
+
```
|
|
882
|
+
Error 400: redirect_uri_mismatch
|
|
883
|
+
```
|
|
884
|
+
|
|
885
|
+
### Рішення: налаштуйте власні облікові записи OAuth
|
|
886
|
+
|
|
887
|
+
Потрібно точно написати **Ідентифікатор клієнта OAuth 2.0** у Google Cloud Console через URI вашого сервера.
|
|
888
|
+
|
|
889
|
+
#### Passo a passo
|
|
890
|
+
|
|
891
|
+
**1. Доступ до Google Cloud Console**
|
|
892
|
+
|
|
893
|
+
Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials)
|
|
894
|
+
|
|
895
|
+
**2. Crie um novo OAuth 2.0 ID клієнта**
|
|
896
|
+
|
|
897
|
+
- Натисніть **"+ Створити облікові дані"** → **"Ідентифікатор клієнта OAuth"**
|
|
898
|
+
- Tipo de aplicativo: **"Веб-програма"**
|
|
899
|
+
- Назва: escolha qualquer nome (наприклад: `OmniRoute Remote`)
|
|
900
|
+
|
|
901
|
+
**3. Додайте як авторизовані URI перенаправлення**
|
|
902
|
+
|
|
903
|
+
Без поля **"Авторизовані URI перенаправлення"**, додайте:
|
|
904
|
+
|
|
905
|
+
```
|
|
906
|
+
https://seu-servidor.com/callback
|
|
907
|
+
```
|
|
908
|
+
|
|
909
|
+
> Замініть `seu-servidor.com` домен або IP на свій сервер (включно з необхідним портом, наприклад: `http://45.33.32.156:20128/callback`).
|
|
910
|
+
|
|
911
|
+
**4. Зберегти електронну копію як ідентифікацію**
|
|
912
|
+
|
|
913
|
+
Наприклад, Google показує **Ідентифікатор клієнта** і **Секрет клієнта**.
|
|
914
|
+
|
|
915
|
+
**5. Налаштувати як variáveis de ambiente**
|
|
916
|
+
|
|
917
|
+
Немає `.env` (або наших варіантів середовища Docker):
|
|
918
|
+
|
|
919
|
+
```bash
|
|
920
|
+
# Para Antigravity:
|
|
921
|
+
ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
|
|
922
|
+
ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
|
|
923
|
+
|
|
924
|
+
# Para Gemini CLI:
|
|
925
|
+
GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
|
|
926
|
+
GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
|
|
927
|
+
GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
|
|
928
|
+
```
|
|
929
|
+
|
|
930
|
+
**6. Reinicie o OmniRoute**
|
|
931
|
+
|
|
932
|
+
```bash
|
|
933
|
+
# Se usando npm:
|
|
934
|
+
npm run dev
|
|
935
|
+
|
|
936
|
+
# Se usando Docker:
|
|
937
|
+
docker restart omniroute
|
|
938
|
+
```
|
|
939
|
+
|
|
940
|
+
**7. Tente conectar novamente**
|
|
941
|
+
|
|
942
|
+
Інформаційна панель → Постачальники → Антигравітація (або Gemini CLI) → OAuth
|
|
943
|
+
|
|
944
|
+
Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a authenticação funcionará.
|
|
945
|
+
|
|
946
|
+
---
|
|
947
|
+
|
|
948
|
+
### Тимчасове вирішення проблеми (необхідне налаштування облікових записів)
|
|
949
|
+
|
|
950
|
+
Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**:
|
|
951
|
+
|
|
952
|
+
1. OmniRoute скидає URL-адресу авторизації Google
|
|
953
|
+
2. Якщо ви авторизуєтеся, перенаправлення даних Google для `localhost` (неможливо віддалено від сервера)
|
|
954
|
+
3. **Скопіюйте повну URL-адресу** для переходу до вашого браузера (повідомте, що сторінка не створена)
|
|
955
|
+
4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute
|
|
956
|
+
5. Натисніть **"Підключити"**
|
|
957
|
+
|
|
958
|
+
> Este workaround funciona porque o código de autorização na URL é válido independente do redirect ter carregado ou não.
|
|
959
|
+
|
|
960
|
+
---
|
|
961
|
+
|
|
962
|
+
## 🐛 Усунення несправностей
|
|
963
|
+
|
|
964
|
+
<details>
|
|
965
|
+
<summary><b>Натисніть, щоб розгорнути посібник з усунення несправностей</b></summary>
|
|
966
|
+
|
|
967
|
+
**"Мовна модель не надавала повідомлень"**
|
|
968
|
+
|
|
969
|
+
- Квота постачальника вичерпана → Перевірте систему відстеження квот на інформаційній панелі
|
|
970
|
+
- Рішення: скористайтеся комбінованим альтернативним варіантом або перейдіть на дешевший рівень
|
|
971
|
+
|
|
972
|
+
**Обмеження швидкості**
|
|
973
|
+
|
|
974
|
+
— Вичерпана квота на підписку → Повернення до GLM/MiniMax
|
|
975
|
+
|
|
976
|
+
- Додати комбо: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
|
|
977
|
+
|
|
978
|
+
**Термін дії маркера OAuth минув**
|
|
979
|
+
|
|
980
|
+
— Автоматично оновлено OmniRoute
|
|
981
|
+
|
|
982
|
+
- Якщо проблеми не зникають: Інформаційна панель → Постачальник → Повторне підключення
|
|
983
|
+
|
|
984
|
+
**Високі витрати**
|
|
985
|
+
|
|
986
|
+
- Перевірте статистику використання в Інформаційній панелі → Витрати
|
|
987
|
+
- Переключіть основну модель на GLM/MiniMax
|
|
988
|
+
- Використовуйте безкоштовний рівень (Gemini CLI, iFlow) для некритичних завдань
|
|
989
|
+
|
|
990
|
+
**Інформаційна панель відкривається через неправильний порт**
|
|
991
|
+
|
|
992
|
+
- Встановити `PORT=20128` та `NEXT_PUBLIC_BASE_URL=http://localhost:20128`
|
|
993
|
+
|
|
994
|
+
**Помилки хмарної синхронізації**
|
|
995
|
+
|
|
996
|
+
- Переконайтеся, що `BASE_URL` вказує на ваш запущений екземпляр
|
|
997
|
+
- Перевірте `CLOUD_URL` вказує на очікувану кінцеву точку хмари
|
|
998
|
+
- Зберігайте значення `NEXT_PUBLIC_*` у відповідності зі значеннями на стороні сервера
|
|
999
|
+
|
|
1000
|
+
**Перший вхід не працює**
|
|
1001
|
+
|
|
1002
|
+
- Перевірте `INITIAL_PASSWORD` в `.env`
|
|
1003
|
+
- Якщо не встановлено, резервний пароль – `123456`
|
|
1004
|
+
|
|
1005
|
+
**Немає журналів запитів**
|
|
1006
|
+
|
|
1007
|
+
- Установіть `ENABLE_REQUEST_LOGS=true` в `.env`
|
|
1008
|
+
|
|
1009
|
+
**Тест з’єднання показує «Недійсне» для OpenAI-сумісних постачальників**
|
|
1010
|
+
|
|
1011
|
+
- Багато постачальників не розкривають кінцеву точку `/models`
|
|
1012
|
+
- OmniRoute v1.0.6+ включає резервну перевірку через завершення чату
|
|
1013
|
+
- Переконайтеся, що базова URL-адреса містить суфікс `/v1`
|
|
1014
|
+
|
|
1015
|
+
</details>
|
|
1016
|
+
|
|
1017
|
+
---
|
|
1018
|
+
|
|
1019
|
+
## 🛠️ Tech Stack
|
|
1020
|
+
|
|
1021
|
+
- **Серед виконання**: Node.js 18–22 LTS (⚠️ Node.js 24+ **не підтримується** — рідні двійкові файли `better-sqlite3` несумісні)
|
|
1022
|
+
- **Мова**: TypeScript 5.9 — **100% TypeScript** для `src/` та `open-sse/` (версія 1.0.6)
|
|
1023
|
+
- **Framework**: Next.js 16 + React 19 + Tailwind CSS 4
|
|
1024
|
+
- **База даних**: LowDB (JSON) + SQLite (стан домену + журнали проксі)
|
|
1025
|
+
- **Потокове передавання**: події, надіслані сервером (SSE)
|
|
1026
|
+
- **Auth**: OAuth 2.0 (PKCE) + JWT + ключі API
|
|
1027
|
+
- **Тестування**: програма для тестування Node.js (368+ модульних тестів)
|
|
1028
|
+
- **CI/CD**: дії GitHub (автоматична публікація npm + Docker Hub після випуску)
|
|
1029
|
+
- **Веб-сайт**: [omniroute.online](https://omniroute.online)
|
|
1030
|
+
- **Пакет**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
|
|
1031
|
+
- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
|
|
1032
|
+
- **Стійкість**: автоматичний вимикач, експоненціальна віддача, захист від громового стада, підробка TLS
|
|
1033
|
+
|
|
1034
|
+
---
|
|
1035
|
+
|
|
1036
|
+
## 📖 Документація
|
|
1037
|
+
|
|
1038
|
+
| Документ | Опис |
|
|
1039
|
+
| -------------------------------------------- | ----------------------------------------------------- |
|
|
1040
|
+
| [User Guide](docs/USER_GUIDE.md) | Постачальники, комбо, інтеграція CLI, розгортання |
|
|
1041
|
+
| [API Reference](docs/API_REFERENCE.md) | Усі кінцеві точки з прикладами |
|
|
1042
|
+
| [Troubleshooting](docs/TROUBLESHOOTING.md) | Загальні проблеми та рішення |
|
|
1043
|
+
| [Architecture](docs/ARCHITECTURE.md) | Архітектура системи та внутрішні |
|
|
1044
|
+
| [Contributing](CONTRIBUTING.md) | Розробка установки та рекомендацій |
|
|
1045
|
+
| [OpenAPI Spec](docs/openapi.yaml) | Специфікація OpenAPI 3.0 |
|
|
1046
|
+
| [Security Policy](SECURITY.md) | Повідомлення про вразливості та методи безпеки |
|
|
1047
|
+
| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Повний посібник: налаштування VM + nginx + Cloudflare |
|
|
1048
|
+
| [Features Gallery](docs/FEATURES.md) | Огляд інформаційної панелі зі знімками екрана |
|
|
1049
|
+
|
|
1050
|
+
### 📸 Попередній перегляд інформаційної панелі
|
|
1051
|
+
|
|
1052
|
+
<details>
|
|
1053
|
+
<summary><b>Натисніть, щоб переглянути знімки панелі інструментів</b></summary>
|
|
1054
|
+
|
|
1055
|
+
| Сторінка | Скріншот |
|
|
1056
|
+
| ------------------------ | ------------------------------------------------- |
|
|
1057
|
+
| **Постачальники** |  |
|
|
1058
|
+
| **Комбінації** |  |
|
|
1059
|
+
| **Аналітика** |  |
|
|
1060
|
+
| **Здоров'я** |  |
|
|
1061
|
+
| **Перекладач** |  |
|
|
1062
|
+
| **Налаштування** |  |
|
|
1063
|
+
| **Інструменти CLI** |  |
|
|
1064
|
+
| **Журнали використання** |  |
|
|
1065
|
+
| **Кінцева точка** |  |
|
|
1066
|
+
|
|
1067
|
+
</details>
|
|
1068
|
+
|
|
1069
|
+
---
|
|
1070
|
+
|
|
1071
|
+
## 🗺️ Дорожня карта
|
|
1072
|
+
|
|
1073
|
+
OmniRoute має **заплановано понад 210 функцій** на кількох етапах розробки. Ось ключові області:
|
|
1074
|
+
|
|
1075
|
+
| Категорія | Заплановані особливості | Основні моменти |
|
|
1076
|
+
| -------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
1077
|
+
| 🧠 **Маршрутизація та інтелект** | 25+ | Маршрутизація з найменшою затримкою, маршрутизація на основі тегів, попередній перегляд квот, вибір облікового запису P2C |
|
|
1078
|
+
| 🔒 **Безпека та відповідність** | 20+ | Захист SSRF, маскування облікових даних, обмеження швидкості для кінцевої точки, визначення обсягу ключа керування |
|
|
1079
|
+
| 📊 **Спостережливість** | 15+ | Інтеграція OpenTelemetry, моніторинг квот у реальному часі, відстеження витрат на модель |
|
|
1080
|
+
| 🔄 **Інтеграція постачальників** | 20+ | Реєстр динамічної моделі, час відновлення провайдера, Codex із кількома обліковими записами, розбір квоти Copilot |
|
|
1081
|
+
| ⚡ **Виконання** | 15+ | Подвійний рівень кешу, кеш запитів, кеш відповідей, потокове підтримання активності, пакетний API |
|
|
1082
|
+
| 🌐 **Екосистема** | 10+ | API WebSocket, гаряче перезавантаження конфігурації, розподілене сховище конфігурацій, комерційний режим |
|
|
1083
|
+
|
|
1084
|
+
### 🔜 Незабаром
|
|
1085
|
+
|
|
1086
|
+
- 🔗 **Інтеграція OpenCode** — власна підтримка постачальника для IDE кодування OpenCode AI
|
|
1087
|
+
- 🔗 **Інтеграція TRAE** — повна підтримка інфраструктури розробки TRAE AI
|
|
1088
|
+
- 📦 **Batch API** — асинхронна пакетна обробка масових запитів
|
|
1089
|
+
- 🎯 **Маршрутизація на основі тегів** — Маршрутизація запитів на основі спеціальних тегів і метаданих
|
|
1090
|
+
- 💰 **Стратегія найнижчої вартості** — автоматично вибирайте найдешевшого доступного постачальника
|
|
1091
|
+
|
|
1092
|
+
> 📝 Повні специфікації функцій доступні в [link](docs/new-features/) (217 детальних специфікацій)
|
|
1093
|
+
|
|
1094
|
+
---
|
|
1095
|
+
|
|
1096
|
+
## 📧 Підтримка
|
|
1097
|
+
|
|
1098
|
+
> 💬 **Приєднуйтесь до нашої спільноти!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — отримуйте допомогу, діліться порадами та будьте в курсі подій.
|
|
1099
|
+
|
|
1100
|
+
- **Веб-сайт**: [omniroute.online](https://omniroute.online)
|
|
1101
|
+
- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
|
|
1102
|
+
- **Проблеми**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
|
|
1103
|
+
- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
|
|
1104
|
+
- **Оригінальний проект**: [9router by decolua](https://github.com/decolua/9router)
|
|
1105
|
+
|
|
1106
|
+
---
|
|
1107
|
+
|
|
1108
|
+
## 👥 Автори
|
|
1109
|
+
|
|
1110
|
+
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
|
|
1111
|
+
|
|
1112
|
+
### Як зробити внесок
|
|
1113
|
+
|
|
1114
|
+
1. Розгалужте репозиторій
|
|
1115
|
+
2. Створіть свою гілку функцій (`git checkout -b feature/amazing-feature`)
|
|
1116
|
+
3. Зафіксуйте свої зміни (`git commit -m 'Add amazing feature'`)
|
|
1117
|
+
4. Push до відділення (`git push origin feature/amazing-feature`)
|
|
1118
|
+
5. Відкрийте Pull Request
|
|
1119
|
+
|
|
1120
|
+
Див. [CONTRIBUTING.md](CONTRIBUTING.md), щоб отримати докладні вказівки.
|
|
1121
|
+
|
|
1122
|
+
### Випуск нової версії
|
|
1123
|
+
|
|
1124
|
+
```bash
|
|
1125
|
+
# Create a release — npm publish happens automatically
|
|
1126
|
+
gh release create v1.0.6 --title "v1.0.6" --generate-notes
|
|
1127
|
+
```
|
|
1128
|
+
|
|
1129
|
+
---
|
|
1130
|
+
|
|
1131
|
+
## 📊 Зоряна історія
|
|
1132
|
+
|
|
1133
|
+
<a href="https://star-history.com/#diegosouzapw/OmniRoute&Date">
|
|
1134
|
+
<picture>
|
|
1135
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date&theme=dark" />
|
|
1136
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
|
|
1137
|
+
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
|
|
1138
|
+
</picture>
|
|
1139
|
+
</a>
|
|
1140
|
+
|
|
1141
|
+
---
|
|
1142
|
+
|
|
1143
|
+
## 🙏 Подяка
|
|
1144
|
+
|
|
1145
|
+
Особлива подяка **[9router](https://github.com/decolua/9router)** від **[decolua](https://github.com/decolua)** — оригінального проекту, який надихнув цей форк. OmniRoute спирається на цю неймовірну основу завдяки додатковим функціям, мультимодальним API і повному перепису TypeScript.
|
|
1146
|
+
|
|
1147
|
+
Особлива подяка **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — оригінальній реалізації Go, яка надихнула цей порт JavaScript.
|
|
1148
|
+
|
|
1149
|
+
---
|
|
1150
|
+
|
|
1151
|
+
## 📄 Ліцензія
|
|
1152
|
+
|
|
1153
|
+
Ліцензія Массачусетського технологічного інституту – подробиці див. [LICENSE](LICENSE).
|
|
1154
|
+
|
|
1155
|
+
---
|
|
1156
|
+
|
|
1157
|
+
---
|
|
1158
|
+
|
|
1159
|
+
## 🇧🇷 OmniRoute — Gateway de IA Gratuito
|
|
1160
|
+
|
|
1161
|
+
<a name="-omniroute--gateway-de-ia-gratuito"></a>
|
|
1162
|
+
|
|
1163
|
+
### Nunca pare de codar. Roteamento inteligente para **modelos de IA GRATUITOS e de baixo custo** com reserve automático.
|
|
1164
|
+
|
|
1165
|
+
_Універсальний проксі-сервер API — кінцева точка, 36+ постачальників, нуль простоїв._
|
|
1166
|
+
|
|
1167
|
+
### 🌐 Internacionalização (i18n)
|
|
1168
|
+
|
|
1169
|
+
Інформаційна панель OmniRoute підтримує **багато ідіом**. Актуально доступні:
|
|
1170
|
+
|
|
1171
|
+
| Ідіома | Código | Статус |
|
|
1172
|
+
| ----------------------- | ------- | -------- |
|
|
1173
|
+
| 🇺🇸 англійська | `en` | ✅ Повне |
|
|
1174
|
+
| 🇧🇷 Português (Бразилія) | `pt-BR` | ✅ Повне |
|
|
1175
|
+
|
|
1176
|
+
**Параметр троакар або ідіома:** Натисніть без вибору ідіоми (🇺🇸 EN) без заголовка на інформаційній панелі → вибір ідіоми.
|
|
1177
|
+
|
|
1178
|
+
**Para adicionar um nova idioma:**
|
|
1179
|
+
|
|
1180
|
+
1. Викличте `src/i18n/messages/{codigo}.json` на основі `en.json`
|
|
1181
|
+
2. Додайте код `src/i18n/config.ts` → `LOCALES` і `LANGUAGES`
|
|
1182
|
+
3. Reinicie або сервер
|
|
1183
|
+
|
|
1184
|
+
### ⚡ Início Rápido
|
|
1185
|
+
|
|
1186
|
+
```bash
|
|
1187
|
+
# Instalar via npm
|
|
1188
|
+
npx omniroute@latest
|
|
1189
|
+
|
|
1190
|
+
# Ou rodar do código-fonte
|
|
1191
|
+
cp .env.example .env
|
|
1192
|
+
npm install
|
|
1193
|
+
PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev
|
|
1194
|
+
```
|
|
1195
|
+
|
|
1196
|
+
### 🐳 Докер
|
|
1197
|
+
|
|
1198
|
+
```bash
|
|
1199
|
+
docker run -d --name omniroute -p 20128:20128 diegosouzapw/omniroute:latest
|
|
1200
|
+
```
|
|
1201
|
+
|
|
1202
|
+
### 🔑 Funcionalidades Principais
|
|
1203
|
+
|
|
1204
|
+
- **36+ провідників IA** — Claude, GPT, Gemini, Llama, Qwen, DeepSeek та ін.
|
|
1205
|
+
- **Roteamento inteligente** — Запасні автоматичні постачальники
|
|
1206
|
+
- **Tradução de formato** — OpenAI ↔ Claude ↔ Gemini automaticamente
|
|
1207
|
+
- **Multi-conta** — Múltiplas contas por provedor com seleção inteligente
|
|
1208
|
+
- **Cache semântico** — Зменшити налаштування та затримку
|
|
1209
|
+
- **OAuth automático** — автоматичне оновлення токенів
|
|
1210
|
+
- **Combos personalizados** — 6 estratégias de roteamento
|
|
1211
|
+
- **Помна панель приладів** — Моніторинг, журнали, аналізи, конфігурації
|
|
1212
|
+
- **Інструменти CLI** — налаштуйте Claude Code, Codex, Cursor, Cline за допомогою кліка
|
|
1213
|
+
- **100% TypeScript** — Código limpo e tipado
|
|
1214
|
+
|
|
1215
|
+
### 📖 Documentação
|
|
1216
|
+
|
|
1217
|
+
| Documento | Опис |
|
|
1218
|
+
| ----------------------------------------------- | ------------------------------------- |
|
|
1219
|
+
| [Guia do Usuário](docs/USER_GUIDE.md) | Провідори, комбо, CLI, розгортання |
|
|
1220
|
+
| [Referência da API](docs/API_REFERENCE.md) | Усі кінцеві точки з прикладами |
|
|
1221
|
+
| [Solução de Problemas](docs/TROUBLESHOOTING.md) | Problemas comuns e soluções |
|
|
1222
|
+
| [Arquitetura](docs/ARCHITECTURE.md) | Arquitetura e internos do sistema |
|
|
1223
|
+
| [Contribuição](CONTRIBUTING.md) | Setup de desenvolvimento e guidelines |
|
|
1224
|
+
| [Deploy em VM](docs/VM_DEPLOYMENT_GUIDE.md) | Повна версія: VM + nginx + Cloudflare |
|
|
1225
|
+
|
|
1226
|
+
### 📧 Підтримуйте
|
|
1227
|
+
|
|
1228
|
+
> 💬 **Entre para a comunidade!** [Grupo WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Тир dúvidas, compartilhe dicas e fique atualizado.
|
|
1229
|
+
|
|
1230
|
+
- **Веб-сайт**: [omniroute.online](https://omniroute.online)
|
|
1231
|
+
- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
|
|
1232
|
+
- **Проблеми**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
|
|
1233
|
+
|
|
1234
|
+
---
|
|
1235
|
+
|
|
1236
|
+
<div align="center">
|
|
1237
|
+
<sub>Створено з ❤️ для розробників, які працюють у режимі 24/7</sub>
|
|
1238
|
+
<br/>
|
|
1239
|
+
<sub><a href="https://omniroute.online">omniroute.online</a></sub>
|
|
1240
|
+
</div>
|