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.fi.md
ADDED
|
@@ -0,0 +1,1238 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/>
|
|
3
|
+
|
|
4
|
+
# 🚀 OmniRoute — ilmainen tekoälyyhdyskäytävä
|
|
5
|
+
|
|
6
|
+
🌐 **[English](#-omniroute--the-free-ai-gateway)** | **[Português (BR)](#-omniroute--gateway-de-ia-gratuito)**
|
|
7
|
+
|
|
8
|
+
### Älä koskaan lopeta koodaamista. Älykäs reititys **ILMAisiin ja edullisiin tekoälymalleihin** automaattisella varalla.
|
|
9
|
+
|
|
10
|
+
_Universaali API-välityspalvelin – yksi päätepiste, yli 36 palveluntarjoajaa, nolla seisokkia._
|
|
11
|
+
|
|
12
|
+
**Pikaviestien loppuun saattaminen • upotukset • kuvien luominen • ääni • uudelleensijoitus • 100 % TypeScript**
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
### 🤖 Ilmainen AI Provider suosikkikoodaajillesi
|
|
17
|
+
|
|
18
|
+
_Yhdistä mikä tahansa tekoälyllä toimiva IDE- tai CLI-työkalu OmniRouten kautta – ilmainen API-yhdyskäytävä rajoittamattomaan koodaukseen._
|
|
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>📡 Kaikki agentit muodostavat yhteyden kautta <code>http://localhost:20128/v1</code> tai <code>http://cloud.omniroute_EN_2NI4/v_1_TO_OM. konfiguraatio, rajattomat mallit ja kiintiö</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
|
+
## 🤔 Miksi OmniRoute?
|
|
116
|
+
|
|
117
|
+
**Lopeta rahan tuhlaaminen ja rajojen ylittäminen:**
|
|
118
|
+
|
|
119
|
+
- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Tilauskiintiö vanhenee käyttämättä joka kuukausi
|
|
120
|
+
- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Korjausrajoitukset estävät sinua kesken koodaamisen
|
|
121
|
+
- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> kalliita sovellusliittymiä (20-50 $/kk per tarjoaja)
|
|
122
|
+
- <img src="https://img.shields.io/badge/✗-e74c3c?style=flat-square" height="16"/> Manuaalinen vaihtaminen palveluntarjoajien välillä
|
|
123
|
+
|
|
124
|
+
**OmniRoute ratkaisee tämän:**
|
|
125
|
+
|
|
126
|
+
- ✅ **Maksimoi tilaukset** - Seuraa kiintiötä, käytä jokainen bitti ennen nollausta
|
|
127
|
+
- ✅ **Automaattinen palautus** - Tilaus → API-avain → Halpa → Ilmainen, nolla seisonta-aikaa
|
|
128
|
+
- ✅ **Moni tili** - Pyöreä haku tilien välillä per palveluntarjoaja
|
|
129
|
+
- ✅ **Universaali** - Toimii Claude Coden, Codexin, Gemini CLI:n, Cursorin, Clinen, OpenClawin ja minkä tahansa CLI-työkalun kanssa
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 🔄 Näin se toimii
|
|
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
|
+
## ⚡ Pika-aloitus
|
|
163
|
+
|
|
164
|
+
**1. Asenna maailmanlaajuisesti:**
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
npm install -g omniroute
|
|
168
|
+
omniroute
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
🎉 Hallintapaneeli avautuu klo `http://localhost:20128`
|
|
172
|
+
|
|
173
|
+
| Komento | Kuvaus |
|
|
174
|
+
| ----------------------- | --------------------------------------- |
|
|
175
|
+
| `omniroute` | Käynnistä palvelin (oletusportti 20128) |
|
|
176
|
+
| `omniroute --port 3000` | Käytä mukautettua porttia |
|
|
177
|
+
| `omniroute --no-open` | Älä avaa selainta automaattisesti |
|
|
178
|
+
| `omniroute --help` | Näytä ohje |
|
|
179
|
+
|
|
180
|
+
**2. Yhdistä ILMAINEN palveluntarjoaja:**
|
|
181
|
+
|
|
182
|
+
Kojelauta → Palveluntarjoajat → Yhdistä **Claude Code** tai **Antigravity** → OAuth-kirjautuminen → Valmis!
|
|
183
|
+
|
|
184
|
+
**3. Käytä CLI-työkalussasi:**
|
|
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
|
+
**Siinä se!** Aloita koodaus ILMAISTEN AI-malleilla.
|
|
194
|
+
|
|
195
|
+
**Vaihtoehto – suorita lähteestä:**
|
|
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
|
+
## 🐳 Docker
|
|
206
|
+
|
|
207
|
+
OmniRoute on saatavilla julkisena Docker-kuvana osoitteessa [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute).
|
|
208
|
+
|
|
209
|
+
**Pikaajo:**
|
|
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
|
+
**Ympäristötiedostolla:**
|
|
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 Composen käyttäminen:**
|
|
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
|
+
| Kuva | Tag | Koko | Kuvaus |
|
|
246
|
+
| ------------------------ | -------- | ------- | -------------------- |
|
|
247
|
+
| `diegosouzapw/omniroute` | `latest` | ~250 Mt | Uusin vakaa julkaisu |
|
|
248
|
+
| `diegosouzapw/omniroute` | `1.0.3` | ~250 Mt | Nykyinen versio |
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 💰 Hinnoittelu yhdellä silmäyksellä
|
|
253
|
+
|
|
254
|
+
| Taso | Palveluntarjoaja | Kustannukset | Kiintiön nollaus | Paras |
|
|
255
|
+
| ---------------- | ----------------- | ------------------------------ | ---------------------- | -------------------------- |
|
|
256
|
+
| **💳 TILAUS** | Claude Code (Pro) | 20 dollaria/kk | 5h + viikoittain | jo tilattu |
|
|
257
|
+
| | Codex (Plus/Pro) | 20-200 $/kk | 5h + viikoittain | OpenAI-käyttäjät |
|
|
258
|
+
| | Gemini CLI | **ILMAINEN** | 180 tk/kk + 1 tk/päivä | Kaikki! |
|
|
259
|
+
| | GitHub Copilot | 10-19 $/kk | Kuukausittain | GitHub-käyttäjät |
|
|
260
|
+
| **🔑 API-AVAIN** | NVIDIA NIM | **ILMAINEN** (1000 krediittiä) | Kertaluonteinen | Ilmainen tasotestaus |
|
|
261
|
+
| | DeepSeek | Maksu per käyttö | Ei yhtään | Paras hinta/laatu |
|
|
262
|
+
| | Groq | Ilmainen taso + maksettu | Hinta rajoitettu | Erittäin nopea johtopäätös |
|
|
263
|
+
| | xAI (Grok) | Maksu per käyttö | Ei yhtään | Grok mallit |
|
|
264
|
+
| | Mistral | Ilmainen taso + maksettu | Hinta rajoitettu | Eurooppalainen tekoäly |
|
|
265
|
+
| | OpenRouter | Maksu per käyttö | Ei yhtään | 100+ mallia |
|
|
266
|
+
| **💰 EDULLISET** | GLM-4.7 | 0,6 $/1 milj. | Päivittäin klo 10 | Budjetin varmuuskopio |
|
|
267
|
+
| | MiniMax M2.1 | 0,2 $/1 milj. | 5 tunnin rullaus | Halvin vaihtoehto |
|
|
268
|
+
| | Kimi K2 | 9 dollaria/kk asunto | 10 milj. rahakkeita/kk | Ennustettavat kustannukset |
|
|
269
|
+
| **🆓 ILMAINEN** | iFlow | 0 dollaria | Rajoittamaton | 8 mallia ilmaiseksi |
|
|
270
|
+
| | Qwen | 0 dollaria | Rajoittamaton | 3 mallia ilmaiseksi |
|
|
271
|
+
| | Kiro | 0 dollaria | Rajoittamaton | Claude ilmaiseksi |
|
|
272
|
+
|
|
273
|
+
**💡 Pro-vinkki:** Aloita Gemini CLI:llä (180 000 ilmaista kuukaudessa) + iFlow (rajoittamaton ilmainen) -yhdistelmä = 0 dollarin hinta!
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## 🎯 Käyttökotelot
|
|
278
|
+
|
|
279
|
+
### Tapaus 1: "Minulla on Claude Pro -tilaus"
|
|
280
|
+
|
|
281
|
+
**Ongelma:** Kiintiö vanhenee käyttämättä, nopeusrajoitukset raskaan koodauksen aikana
|
|
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
|
+
### Tapaus 2: "Haluan ilman kustannuksia"
|
|
294
|
+
|
|
295
|
+
**Ongelma:** Ei ole varaa tilauksiin, tarvitaan luotettavaa tekoälykoodausta
|
|
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
|
+
### Tapaus 3: "Tarvitsen 24/7-koodausta, ei keskeytyksiä"
|
|
308
|
+
|
|
309
|
+
**Ongelma:** Määräajat, seisokkeihin ei ole varaa
|
|
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
|
+
### Tapaus 4: "Haluan ILMAISTA tekoälyä OpenClawissa"
|
|
323
|
+
|
|
324
|
+
**Ongelma:** Tarvitset AI-avustajan viestisovelluksissa, täysin ilmainen
|
|
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
|
+
## 💡 Tärkeimmät ominaisuudet
|
|
339
|
+
|
|
340
|
+
### 🧠 Ydinreititys ja älykkyys
|
|
341
|
+
|
|
342
|
+
| Ominaisuus | Mitä se tekee |
|
|
343
|
+
| ------------------------------------- | --------------------------------------------------------------------------------------------- |
|
|
344
|
+
| 🎯 **Smart 4-Tier Fallback** | Automaattinen reitti: Tilaus → API-avain → Halpa → Ilmainen |
|
|
345
|
+
| 📊 **Reaaliaikainen kiintiöseuranta** | Live-tunnusten määrä + nollaa lähtölaskenta palveluntarjoajaa kohti |
|
|
346
|
+
| 🔄 **Käännösmuoto** | OpenAI ↔ Claude ↔ Kaksoset ↔ Kursori ↔ Kiro saumaton + vastaus desinfiointi |
|
|
347
|
+
| 👥 **Useiden tilien tuki** | Useita tilejä per palveluntarjoaja älykkäällä valinnalla |
|
|
348
|
+
| 🔄 **Automaattinen Token Refresh** | OAuth-tunnukset päivittyvät automaattisesti yrittämällä uudelleen |
|
|
349
|
+
| 🎨 **Muokatut yhdistelmät** | 6 strategiaa: fill-first, round-robin, p2c, satunnainen, vähiten käytetty, kustannusoptimoitu |
|
|
350
|
+
| 🧩 **Räätälöidyt mallit** | Lisää mikä tahansa mallitunnus mille tahansa toimittajalle |
|
|
351
|
+
| 🌐 **Wildcard-reititin** | Reititä `provider/*` mallit mille tahansa palveluntarjoajalle dynaamisesti |
|
|
352
|
+
| 🧠 **Ajatteleva budjetti** | Läpivienti-, automaatti-, mukautetut ja mukautuvat tilat päättelymalleille |
|
|
353
|
+
| 💬 **Järjestelmän pikaruiskutus** | Maailmanlaajuinen järjestelmäkehote käytössä kaikissa pyynnöissä |
|
|
354
|
+
| 📄 **Responses API** | Täysi OpenAI Responses API (`/v1/responses`) tuki Codexille |
|
|
355
|
+
|
|
356
|
+
### 🎵 Multimodaaliset sovellusliittymät
|
|
357
|
+
|
|
358
|
+
| Ominaisuus | Mitä se tekee |
|
|
359
|
+
| ------------------------- | --------------------------------------------------------- |
|
|
360
|
+
| 🖼️ **Kuvan luominen** | `/v1/images/generations` — 4 toimittajaa, 9+ mallia |
|
|
361
|
+
| 📐 **Upotukset** | `/v1/embeddings` — 6 toimittajaa, 9+ mallia |
|
|
362
|
+
| 🎤 **Äänitranskriptio** | `/v1/audio/transcriptions` — Kuiskausyhteensopiva |
|
|
363
|
+
| 🔊 **Tekstistä puheeksi** | `/v1/audio/speech` — Usean palveluntarjoajan äänisynteesi |
|
|
364
|
+
| 🛡️ **Moderaatiot** | `/v1/moderations` — Sisällön turvallisuustarkistukset |
|
|
365
|
+
| 🔀 **Uudelleenjärjestys** | `/v1/rerank` — Asiakirjan osuvuuden uudelleensijoitus |
|
|
366
|
+
|
|
367
|
+
### 🛡️ Joustavuus ja turvallisuus
|
|
368
|
+
|
|
369
|
+
| Ominaisuus | Mitä se tekee |
|
|
370
|
+
| ----------------------------------------- | ------------------------------------------------------------------------------------------------ |
|
|
371
|
+
| 🔌 **Katkaisija** | Automaattinen avaaminen/sulkeminen palveluntarjoajakohtaisesti konfiguroitavilla kynnysarvoilla |
|
|
372
|
+
| 🛡️ **Ukkosen vastainen lauma** | Mutex + semaforin nopeusrajoitus API-avainten tarjoajille |
|
|
373
|
+
| 🧠 **Semanttinen välimuisti** | Kaksitasoinen välimuisti (allekirjoitus + semanttinen) vähentää kustannuksia ja viivettä |
|
|
374
|
+
| ⚡ **Pyydä idempotenssia** | 5s dedup-ikkuna päällekkäisille pyynnöille |
|
|
375
|
+
| 🔒 **TLS-sormenjälkien huijaus** | Ohita TLS-pohjainen bot-tunnistus wreq-js:n avulla |
|
|
376
|
+
| 🌐 **IP-suodatus** | API-käyttöoikeuksien hallinnan sallittu-/estoluettelo |
|
|
377
|
+
| 📊 **Muokattavat hintarajat** | Konfiguroitava kierrosluku, minimiväli ja suurin samanaikainen järjestelmätasolla |
|
|
378
|
+
| 🛡 **API Endpoint Protection** | Todennusportin + tarjoajan esto `/models`-päätepisteelle |
|
|
379
|
+
| 🔒 **Välityspalvelimen näkyvyys** | Värikoodatut merkit: 🟢 maailmanlaajuinen, 🟡 tarjoaja, 🔵 yhteyskohtainen IP-näytöllä |
|
|
380
|
+
| 🌐 **3-tason välityspalvelimen määritys** | Määritä välityspalvelimet maailmanlaajuisesti, palveluntarjoajakohtaisesti tai yhteyskohtaisesti |
|
|
381
|
+
|
|
382
|
+
### 📊 Havaittavuus ja analytiikka
|
|
383
|
+
|
|
384
|
+
| Ominaisuus | Mitä se tekee |
|
|
385
|
+
| ------------------------------------- | ----------------------------------------------------------------------------------------------------- |
|
|
386
|
+
| 📝 **Pyydä kirjaamista** | Vianetsintätila täydellisillä pyyntö-/vastauslokeilla |
|
|
387
|
+
| 💾 **SQLite-välityspalvelimen lokit** | Pysyvät välityspalvelimen lokit selviävät palvelimen uudelleenkäynnistyksistä |
|
|
388
|
+
| 📊 **Analytics Dashboard** | Recharts-powered: tilastokortit, mallin käyttökaavio, toimittajataulukko |
|
|
389
|
+
| 📈 **Edistyksen seuranta** | Ota SSE:n edistymistapahtumat käyttöön suoratoistoa varten |
|
|
390
|
+
| 🧪 **LLM-arvioinnit** | Kultaisen setin testaus 4 ottelustrategialla |
|
|
391
|
+
| 🔍 **Pyydä telemetriaa** | p50/p95/p99 latenssiaggregointi + X-Request-Id-jäljitys |
|
|
392
|
+
| 📋 **Lokien hallintapaneeli** | Yhdistetty 4-välilehden sivu: pyyntölokit, välityspalvelimen lokit, tarkastuslokit, konsoli |
|
|
393
|
+
| 🖥️ **Console Log Viewer** | Reaaliaikainen pääte-tyylinen katseluohjelma tasosuodattimella, haulla, automaattisella vierityksellä |
|
|
394
|
+
| 📑 **Tiedostopohjainen kirjaus** | Konsolin sieppaaja kaappaa kaiken lähdön JSON-lokitiedostoon pyörittämällä |
|
|
395
|
+
| 🏥 **Terveyden hallintapaneeli** | Järjestelmän käytettävyys, katkaisijoiden tilat, lukitukset, välimuistitilastot |
|
|
396
|
+
| 💰 **Kustannusseuranta** | Budjetin hallinta + mallikohtainen hinnoittelu |
|
|
397
|
+
|
|
398
|
+
### ☁️ Käyttöönotto ja synkronointi
|
|
399
|
+
|
|
400
|
+
| Ominaisuus | Mitä se tekee |
|
|
401
|
+
| ----------------------------------- | -------------------------------------------------------------------------------- |
|
|
402
|
+
| 💾 **Cloud Sync** | Synkronoi asetukset laitteiden välillä Cloudflare Workersin kautta |
|
|
403
|
+
| 🌐 **Ota käyttöön missä tahansa** | Localhost, VPS, Docker, Cloudflare Workers |
|
|
404
|
+
| 🔑 **API-avainten hallinta** | Luo, kierrä ja laajenna API-avaimia tarjoajakohtaisesti |
|
|
405
|
+
| 🧙 **Ohjattu käyttöönottotoiminto** | 4-vaiheinen ohjattu asennus ensikertalaisille |
|
|
406
|
+
| 🔧 **CLI Tools Dashboard** | Määritä yhdellä napsautuksella Claude, Codex, Cline, OpenClaw, Kilo, Antigravity |
|
|
407
|
+
| 🔄 **DB-varmuuskopiot** | Automaattinen varmuuskopiointi, palautus, vienti ja tuonti kaikille asetuksille |
|
|
408
|
+
| 🌐 **Kansainvälistyminen** | Täysi i18n next-intl:llä — Englanti + portugali (Brasilia) tuki |
|
|
409
|
+
| 🌍 **Kielenvalitsin** | Maapallokuvake otsikossa reaaliaikaista kielenvaihtoa varten (🇺🇸/🇧🇷) |
|
|
410
|
+
| 📂 **Muokattu tietohakemisto** | `DATA_DIR` env var ohittaa oletusarvoisen `~/.omniroute`-tallennuspolun |
|
|
411
|
+
|
|
412
|
+
<details>
|
|
413
|
+
<summary><b>📖 Ominaisuuden tiedot</b></summary>
|
|
414
|
+
|
|
415
|
+
### 🎯 Älykäs 4-tasoinen varavaihtoehto
|
|
416
|
+
|
|
417
|
+
Luo komboja automaattisella varalla:
|
|
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
|
+
### 📊 Reaaliaikainen kiintiöseuranta
|
|
430
|
+
|
|
431
|
+
- Token-kulutus palveluntarjoajaa kohti
|
|
432
|
+
- Nollaa lähtölaskenta (5 tuntia, päivittäin, viikoittain)
|
|
433
|
+
- Kustannusarvio maksetuille tasoille
|
|
434
|
+
- Kuukausittaiset kuluraportit
|
|
435
|
+
|
|
436
|
+
### 🔄 Muotoile käännös
|
|
437
|
+
|
|
438
|
+
Saumaton käännös muotojen välillä:
|
|
439
|
+
|
|
440
|
+
- **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **OpenAI-vastaukset**
|
|
441
|
+
- CLI-työkalusi lähettää OpenAI-muodon → OmniRoute kääntää → Palveluntarjoaja vastaanottaa alkuperäisen muodon
|
|
442
|
+
- Toimii minkä tahansa työkalun kanssa, joka tukee mukautettuja OpenAI-päätepisteitä
|
|
443
|
+
- **Vastauksen desinfiointi** - Poistaa standardista poikkeavat kentät tiukan OpenAI SDK -yhteensopivuuden varmistamiseksi
|
|
444
|
+
- **Roolin normalisointi** — `developer` → `system` ei-OpenAI:lle; `system` → `user` GLM/ERNIE-malleille
|
|
445
|
+
- **Ajattele tunnisteen purkaminen** — `<think>` lohkot → `reasoning_content` ajattelumalleille
|
|
446
|
+
- **Strukturoitu tulos** — `json_schema` → Geminin `responseMimeType`/`responseSchema`
|
|
447
|
+
|
|
448
|
+
### 👥 Usean tilin tuki
|
|
449
|
+
|
|
450
|
+
- Lisää useita tilejä palveluntarjoajaa kohti
|
|
451
|
+
- Automaattinen round-robin tai prioriteettipohjainen reititys
|
|
452
|
+
- Takaisin seuraavalle tilille, kun kiintiö saavutetaan
|
|
453
|
+
|
|
454
|
+
### 🔄 Tokenin automaattinen päivitys
|
|
455
|
+
|
|
456
|
+
- OAuth-tunnukset päivittyvät automaattisesti ennen vanhenemista
|
|
457
|
+
- Manuaalista uudelleentodennusta ei tarvita
|
|
458
|
+
- Saumaton kokemus kaikilta palveluntarjoajilta
|
|
459
|
+
|
|
460
|
+
### 🎨 Mukautetut yhdistelmät
|
|
461
|
+
|
|
462
|
+
- Luo rajattomasti malliyhdistelmiä
|
|
463
|
+
- 6 strategiaa: täytä ensin, round-robin, kahden valinnan teho, satunnainen, vähiten käytetty, kustannusoptimoitu
|
|
464
|
+
- Jaa komboja laitteiden välillä Cloud Sync -sovelluksella
|
|
465
|
+
|
|
466
|
+
### 🏥 Health Dashboard
|
|
467
|
+
|
|
468
|
+
- Järjestelmän tila (käyttöaika, versio, muistin käyttö)
|
|
469
|
+
- Katkaisijoiden tilat palveluntarjoajan mukaan (suljettu/auki/puoliauki)
|
|
470
|
+
- Hintarajoituksen tila ja aktiiviset lukitukset
|
|
471
|
+
- Allekirjoitusvälimuistin tilastot
|
|
472
|
+
- Latenssi-telemetria (p50/p95/p99) + välimuisti
|
|
473
|
+
- Palauta terveydentila yhdellä napsautuksella
|
|
474
|
+
|
|
475
|
+
### 🔧 Kääntäjän leikkikenttä
|
|
476
|
+
|
|
477
|
+
OmniRoute sisältää tehokkaan sisäänrakennetun Translator Playgroundin, jossa on **4 tilaa** virheenkorjausta, testausta ja API-käännösten seurantaa varten:
|
|
478
|
+
|
|
479
|
+
| Tila | Kuvaus |
|
|
480
|
+
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
481
|
+
| **💻 Leikkikenttä** | Suoramuotoinen käännös — liitä mikä tahansa API-pyynnön runko ja katso heti, kuinka OmniRoute kääntää sen toimittajamuotojen välillä (OpenAI ↔ Claude ↔ Gemini ↔ Responses API). Sisältää esimerkkimalleja ja muotojen automaattisen tunnistuksen. |
|
|
482
|
+
| **💬 Chat Tester** | Lähetä todellisia chat-pyyntöjä OmniRouten kautta ja katso koko meno-paluu: syötteesi, käännetty pyyntö, palveluntarjoajan vastaus ja käännetty vastaus takaisin. Korvaamaton yhdistelmäreitityksen vahvistamisessa. |
|
|
483
|
+
| **🧪 Testipenkki** | Erätestaustila — määritä useita testitapauksia eri tuloilla ja odotettavissa olevilla lähdöillä, suorita ne kaikki kerralla ja vertaile tuloksia eri toimittajien ja mallien välillä. |
|
|
484
|
+
| **📱 Live Monitor** | Reaaliaikainen pyyntöjen seuranta – seuraa saapuvia pyyntöjä niiden kulkeessa OmniRouten kautta, katso muotokäännökset reaaliajassa ja tunnista ongelmat välittömästi. |
|
|
485
|
+
|
|
486
|
+
**Käyttö:** Kojelauta → Kääntäjä (sivupalkki)
|
|
487
|
+
|
|
488
|
+
### 💾 Cloud Sync
|
|
489
|
+
|
|
490
|
+
- Synkronoi palveluntarjoajat, yhdistelmät ja asetukset eri laitteiden välillä
|
|
491
|
+
- Automaattinen taustasynkronointi
|
|
492
|
+
- Suojattu salattu tallennustila
|
|
493
|
+
|
|
494
|
+
</details>
|
|
495
|
+
|
|
496
|
+
---
|
|
497
|
+
|
|
498
|
+
## 📖 Asennusopas
|
|
499
|
+
|
|
500
|
+
<details>
|
|
501
|
+
<summary><b>💳 Tilauksen tarjoajat</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
|
+
**Provinkki:** Käytä Opusta monimutkaisiin tehtäviin ja Sonnetia nopeutta varten. OmniRoute jäljityskiintiö mallia kohden!
|
|
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 (ILMAINEN 180 000/kk!)
|
|
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
|
+
**Paras hinta-laatusuhde:** Valtava ilmainen taso! Käytä tätä ennen maksettuja tasoja.
|
|
543
|
+
|
|
544
|
+
### GitHub Copilot
|
|
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-avaintoimittajat</b></summary>
|
|
561
|
+
|
|
562
|
+
### NVIDIA NIM (ILMAINEN 1000 krediittiä!)
|
|
563
|
+
|
|
564
|
+
1. Rekisteröidy: [build.nvidia.com](https://build.nvidia.com)
|
|
565
|
+
2. Hanki ilmainen API-avain (sisältää 1000 johtopäätöskrediittiä)
|
|
566
|
+
3. Kojelauta → Lisää toimittaja → NVIDIA NIM:
|
|
567
|
+
- API-avain: `nvapi-your-key`
|
|
568
|
+
|
|
569
|
+
**Mallit:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` ja yli 50 muuta
|
|
570
|
+
|
|
571
|
+
**Provinkki:** OpenAI-yhteensopiva API – toimii saumattomasti OmniRouten muotokäännöksen kanssa!
|
|
572
|
+
|
|
573
|
+
### DeepSeek
|
|
574
|
+
|
|
575
|
+
1. Rekisteröidy: [platform.deepseek.com](https://platform.deepseek.com)
|
|
576
|
+
2. Hanki API-avain
|
|
577
|
+
3. Dashboard → Add Provider → DeepSeek
|
|
578
|
+
|
|
579
|
+
**Mallit:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder`
|
|
580
|
+
|
|
581
|
+
### Groq (ilmainen taso saatavilla!)
|
|
582
|
+
|
|
583
|
+
1. Rekisteröidy: [console.groq.com](https://console.groq.com)
|
|
584
|
+
2. Hanki API-avain (ilmainen taso mukana)
|
|
585
|
+
3. Dashboard → Add Provider → Groq
|
|
586
|
+
|
|
587
|
+
**Mallit:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b`
|
|
588
|
+
|
|
589
|
+
**Provinkki:** Erittäin nopea päättely – paras reaaliaikaiseen koodaukseen!
|
|
590
|
+
|
|
591
|
+
### OpenRouter (100+ mallia)
|
|
592
|
+
|
|
593
|
+
1. Rekisteröidy: [openrouter.ai](https://openrouter.ai)
|
|
594
|
+
2. Hanki API-avain
|
|
595
|
+
3. Dashboard → Add Provider → OpenRouter
|
|
596
|
+
|
|
597
|
+
**Mallit:** Käytä yli 100 mallia kaikilta tärkeimmiltä palveluntarjoajilta yhdellä API-avaimella.
|
|
598
|
+
|
|
599
|
+
</details>
|
|
600
|
+
|
|
601
|
+
<details>
|
|
602
|
+
<summary><b>💰 Halvat palveluntarjoajat (Varmuuskopio)</b></summary>
|
|
603
|
+
|
|
604
|
+
### GLM-4.7 (Päivittäinen nollaus, 0,6 $/1 milj.)
|
|
605
|
+
|
|
606
|
+
1. Rekisteröidy: [Zhipu AI](https://open.bigmodel.cn/)
|
|
607
|
+
2. Hanki API-avain Coding Planista
|
|
608
|
+
3. Hallintapaneeli → Lisää API-avain:
|
|
609
|
+
- Palveluntarjoaja: `glm`
|
|
610
|
+
- API-avain: `your-key`
|
|
611
|
+
|
|
612
|
+
**Käytä:** `glm/glm-4.7`
|
|
613
|
+
|
|
614
|
+
**Provinkki:** Koodaussuunnitelma tarjoaa 3-kertaisen kiintiön 1/7 hinnalla! Nollaa päivittäin klo 10.00.
|
|
615
|
+
|
|
616
|
+
### MiniMax M2.1 (5 h nollaus, 0,20 $/1 milj.)
|
|
617
|
+
|
|
618
|
+
1. Rekisteröidy: [MiniMax](https://www.minimax.io/)
|
|
619
|
+
2. Hanki API-avain
|
|
620
|
+
3. Kojelauta → Lisää API-avain
|
|
621
|
+
|
|
622
|
+
**Käytä:** `minimax/MiniMax-M2.1`
|
|
623
|
+
|
|
624
|
+
**Ammattilaisen vinkki:** Halvin vaihtoehto pitkälle kontekstille (1 milj. merkkiä)!
|
|
625
|
+
|
|
626
|
+
### Kimi K2 (9 dollaria/kk asunto)
|
|
627
|
+
|
|
628
|
+
1. Tilaa: [Moonshot AI](https://platform.moonshot.ai/)
|
|
629
|
+
2. Hanki API-avain
|
|
630
|
+
3. Kojelauta → Lisää API-avain
|
|
631
|
+
|
|
632
|
+
**Käytä:** `kimi/kimi-latest`
|
|
633
|
+
|
|
634
|
+
**Ammattilaisen vinkki:** Kiinteä 9 dollaria kuukaudessa 10 miljoonalle tokenille = 0,90 dollaria / 1 miljoona todellista hintaa!
|
|
635
|
+
|
|
636
|
+
</details>
|
|
637
|
+
|
|
638
|
+
<details>
|
|
639
|
+
<summary><b>🆓 ILMAISIA palveluntarjoajia (hätävarmuuskopio)</b></summary>
|
|
640
|
+
|
|
641
|
+
### iFlow (8 ILMAISTA mallia)
|
|
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 ILMAISTA mallia)
|
|
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
|
+
### Kiro (Claude ILMAINEN)
|
|
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>🎨 Luo komboja</b></summary>
|
|
684
|
+
|
|
685
|
+
### Esimerkki 1: Maksimoi tilaus → Halpa varmuuskopio
|
|
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
|
+
### Esimerkki 2: Vain ilmainen (nollahinta)
|
|
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-integrointi</b></summary>
|
|
715
|
+
|
|
716
|
+
### Kohdistimen 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
|
+
### Claude Code
|
|
726
|
+
|
|
727
|
+
Käytä kojelaudan **CLI Tools** -sivua määrittääksesi yhdellä napsautuksella tai muokkaa `~/.claude/settings.json` manuaalisesti.
|
|
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
|
+
**Vaihtoehto 1 – hallintapaneeli (suositus):**
|
|
741
|
+
|
|
742
|
+
```
|
|
743
|
+
Dashboard → CLI Tools → OpenClaw → Select Model → Apply
|
|
744
|
+
```
|
|
745
|
+
|
|
746
|
+
**Vaihtoehto 2 – Manuaalinen:** Muokkaa `~/.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
|
+
> **Huomaa:** OpenClaw toimii vain paikallisen OmniRouten kanssa. Käytä `127.0.0.1` `localhost` sijaan IPv6-resoluutioongelmien välttämiseksi.
|
|
763
|
+
|
|
764
|
+
### Cline / Continue / 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
|
+
## 📊 Saatavilla olevat mallit
|
|
779
|
+
|
|
780
|
+
<details>
|
|
781
|
+
<summary><b>Näytä kaikki saatavilla olevat mallit</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
|
+
**Koodi (`cx/`)** - Plus/Pro:
|
|
790
|
+
|
|
791
|
+
- `cx/gpt-5.2-codex`
|
|
792
|
+
- `cx/gpt-5.1-codex-max`
|
|
793
|
+
|
|
794
|
+
**Gemini CLI (`gc/`)** - ILMAINEN:
|
|
795
|
+
|
|
796
|
+
- `gc/gemini-3-flash-preview`
|
|
797
|
+
- `gc/gemini-2.5-pro`
|
|
798
|
+
|
|
799
|
+
**GitHub Copilot (`gh/`)**:
|
|
800
|
+
|
|
801
|
+
- `gh/gpt-5`
|
|
802
|
+
- `gh/claude-4.5-sonnet`
|
|
803
|
+
|
|
804
|
+
**NVIDIA NIM (`nvidia/`)** - ILMAISIA krediittejä:
|
|
805
|
+
|
|
806
|
+
- `nvidia/llama-3.3-70b-instruct`
|
|
807
|
+
- `nvidia/mistral-7b-instruct`
|
|
808
|
+
- Yli 50 mallia [build.nvidia.com](https://build.nvidia.com)
|
|
809
|
+
|
|
810
|
+
**GLM (`glm/`)** - 0,6 $/1 milj.:
|
|
811
|
+
|
|
812
|
+
- `glm/glm-4.7`
|
|
813
|
+
|
|
814
|
+
**MiniMax (`minimax/`)** - 0,2 $/1 milj.
|
|
815
|
+
|
|
816
|
+
- `minimax/MiniMax-M2.1`
|
|
817
|
+
|
|
818
|
+
**iFlow (`if/`)** - ILMAINEN:
|
|
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/`)** - ILMAINEN:
|
|
827
|
+
|
|
828
|
+
- `qw/qwen3-coder-plus`
|
|
829
|
+
- `qw/qwen3-coder-flash`
|
|
830
|
+
|
|
831
|
+
**Kiro (`kr/`)** - ILMAINEN:
|
|
832
|
+
|
|
833
|
+
- `kr/claude-sonnet-4.5`
|
|
834
|
+
- `kr/claude-haiku-4.5`
|
|
835
|
+
|
|
836
|
+
**OpenRouter (`or/`)** - 100+ mallia:
|
|
837
|
+
|
|
838
|
+
- `or/anthropic/claude-4-sonnet`
|
|
839
|
+
- `or/google/gemini-2.5-pro`
|
|
840
|
+
- Mikä tahansa malli alkaen [openrouter.ai/models](https://openrouter.ai/models)
|
|
841
|
+
|
|
842
|
+
</details>
|
|
843
|
+
|
|
844
|
+
---
|
|
845
|
+
|
|
846
|
+
## 🧪 Arvioinnit (Evals)
|
|
847
|
+
|
|
848
|
+
OmniRoute sisältää sisäänrakennetun arviointikehyksen, jolla testataan LLM-vastauksen laatua kultaiseen joukkoon verrattuna. Käytä sitä kojelaudan **Analytics → Evals** kautta.
|
|
849
|
+
|
|
850
|
+
### Sisäänrakennettu kultainen setti
|
|
851
|
+
|
|
852
|
+
Esiladattu "OmniRoute Golden Set" sisältää 10 testitapausta, jotka kattavat:
|
|
853
|
+
|
|
854
|
+
- Tervehdys, matematiikka, maantiede, koodin luominen
|
|
855
|
+
- JSON-muodon noudattaminen, käännös, merkintä
|
|
856
|
+
- Turvallisuuskielto (haitallinen sisältö), laskenta, boolen logiikka
|
|
857
|
+
|
|
858
|
+
### Arviointistrategiat
|
|
859
|
+
|
|
860
|
+
| Strategia | Kuvaus | Esimerkki |
|
|
861
|
+
| ---------- | ------------------------------------------------------------------------ | -------------------------------- |
|
|
862
|
+
| `exact` | Tulosten on vastattava tarkasti | `"4"` |
|
|
863
|
+
| `contains` | Tulosteen tulee sisältää alimerkkijono (kirjainkoolla ei ole merkitystä) | `"Paris"` |
|
|
864
|
+
| `regex` | Tulostuksen on vastattava regex-mallia | `"1.*2.*3"` |
|
|
865
|
+
| `custom` | Mukautettu JS-funktio palauttaa true/false | `(output) => output.length > 10` |
|
|
866
|
+
|
|
867
|
+
---
|
|
868
|
+
|
|
869
|
+
## 🔐 OAuth em Servidor Remoto (OAuth-etäasetus)
|
|
870
|
+
|
|
871
|
+
<a name="oauth-em-servidor-remoto"></a>
|
|
872
|
+
|
|
873
|
+
> **⚠️ TÄRKEÄÄ käyttäjille com OmniRoute em VPS/Docker/servidor Remoto**
|
|
874
|
+
|
|
875
|
+
### Onko OAuth do Antigravity / Gemini CLI falha em servidores Remotos?
|
|
876
|
+
|
|
877
|
+
Os provedores **Antigravity** ja **Gemini CLI** usam **Google OAuth 2.0** para autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pre-cadastradas no Google Cloud Console do aplicativo.
|
|
878
|
+
|
|
879
|
+
As credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor Remoto (esim. `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com:
|
|
880
|
+
|
|
881
|
+
```
|
|
882
|
+
Error 400: redirect_uri_mismatch
|
|
883
|
+
```
|
|
884
|
+
|
|
885
|
+
### Ratkaisu: Määritä suas próprias credenciais OAuth
|
|
886
|
+
|
|
887
|
+
Você precisa criar um **OAuth 2.0 Client ID** ei Google Cloud Console com URI do seu servidor.
|
|
888
|
+
|
|
889
|
+
#### Passo a passo
|
|
890
|
+
|
|
891
|
+
**1. Acesse tai 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 -asiakastunnus**
|
|
896
|
+
|
|
897
|
+
- Klikkaa em **"+ Luo kirjautumistiedot"** → **"OAuth-asiakastunnus"**
|
|
898
|
+
- Tipo de aplicativo: **"Web-sovellus"**
|
|
899
|
+
- Nimi: escolha qualquer nome (esim.: `OmniRoute Remote`)
|
|
900
|
+
|
|
901
|
+
**3. Adicione valtuutettuina uudelleenohjaus-URI:ina**
|
|
902
|
+
|
|
903
|
+
No campo **"Authorized redirect URIs"**, lisäys:
|
|
904
|
+
|
|
905
|
+
```
|
|
906
|
+
https://seu-servidor.com/callback
|
|
907
|
+
```
|
|
908
|
+
|
|
909
|
+
> Korvaa `seu-servidor.com` pelo dominio tai IP do seu servidor (mukaan lukien porta se necessário, esim. `http://45.33.32.156:20128/callback`).
|
|
910
|
+
|
|
911
|
+
**4. Tallenna kopio valtuutuksena**
|
|
912
|
+
|
|
913
|
+
Após criar, o Google mostrará o **Client ID** e o **Client Secret**.
|
|
914
|
+
|
|
915
|
+
**5. Määritä variáveis de ambiente**
|
|
916
|
+
|
|
917
|
+
Ei seu `.env` (ou nas variáveis de ambiente do 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
|
+
Dashboard → Providers → Antigravity (ou Gemini CLI) → OAuth
|
|
943
|
+
|
|
944
|
+
Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e a autenticação funcionará.
|
|
945
|
+
|
|
946
|
+
---
|
|
947
|
+
|
|
948
|
+
### Workaround temporário (sem configurar credenciais próprias)
|
|
949
|
+
|
|
950
|
+
Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**:
|
|
951
|
+
|
|
952
|
+
1. OmniRoute lähettää Googlen lupa-osoitteen
|
|
953
|
+
2. Após você autorizar, o Google tentará redirecionar para `localhost` (que falha no servidor Remoto)
|
|
954
|
+
3. **Kopioi URL-osoite täydellinen** da barra de endereço do seu selaimessa (mesmo que a página não carregue)
|
|
955
|
+
4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute
|
|
956
|
+
5. Klikkaa em **"Yhdistä"**
|
|
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
|
+
## 🐛 Vianetsintä
|
|
963
|
+
|
|
964
|
+
<details>
|
|
965
|
+
<summary><b>Laajenna vianetsintäopas napsauttamalla</b></summary>
|
|
966
|
+
|
|
967
|
+
**"Kielimalli ei antanut viestejä"**
|
|
968
|
+
|
|
969
|
+
- Palveluntarjoajan kiintiö käytetty loppuun → Tarkista kojelaudan kiintiön seuranta
|
|
970
|
+
- Ratkaisu: Käytä yhdistelmävaraa tai vaihda halvempaan tasoon
|
|
971
|
+
|
|
972
|
+
**hintarajoitus**
|
|
973
|
+
|
|
974
|
+
- Tilauskiintiö loppu → Varaa GLM/MiniMaxiin
|
|
975
|
+
- Lisää yhdistelmä: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
|
|
976
|
+
|
|
977
|
+
**OAuth-tunnus vanhentunut**
|
|
978
|
+
|
|
979
|
+
- OmniRoute päivittää automaattisesti
|
|
980
|
+
- Jos ongelmat jatkuvat: Kojelauta → Palveluntarjoaja → Yhdistä uudelleen
|
|
981
|
+
|
|
982
|
+
**Korkeat kustannukset**
|
|
983
|
+
|
|
984
|
+
- Tarkista käyttötilastot kohdassa Dashboard → Costs
|
|
985
|
+
- Vaihda ensisijaiseksi malliksi GLM/MiniMax
|
|
986
|
+
- Käytä ilmaista tasoa (Gemini CLI, iFlow) ei-kriittisiin tehtäviin
|
|
987
|
+
|
|
988
|
+
**Kojelauta avautuu väärään porttiin**
|
|
989
|
+
|
|
990
|
+
- Aseta `PORT=20128` ja `NEXT_PUBLIC_BASE_URL=http://localhost:20128`
|
|
991
|
+
|
|
992
|
+
**Pilvisynkronointivirheet**
|
|
993
|
+
|
|
994
|
+
- Vahvista `BASE_URL` pistettä käynnissä olevaan esiintymääsi
|
|
995
|
+
- Vahvista `CLOUD_URL` pistettä odotettuun pilvipäätepisteeseen
|
|
996
|
+
- Pidä `NEXT_PUBLIC_*`-arvot kohdakkain palvelinpuolen arvojen kanssa
|
|
997
|
+
|
|
998
|
+
**Ensimmäinen kirjautuminen ei toimi**
|
|
999
|
+
|
|
1000
|
+
- Tarkista `INITIAL_PASSWORD` kohteessa `.env`
|
|
1001
|
+
- Jos ei ole asetettu, varasalasana on `123456`
|
|
1002
|
+
|
|
1003
|
+
**Ei pyyntölokeja**
|
|
1004
|
+
|
|
1005
|
+
- Aseta `ENABLE_REQUEST_LOGS=true` kohteeseen `.env`
|
|
1006
|
+
|
|
1007
|
+
**Yhteystesti näyttää "Virheellinen" OpenAI-yhteensopiville palveluntarjoajille**
|
|
1008
|
+
|
|
1009
|
+
- Monet palveluntarjoajat eivät paljasta `/models`-päätepistettä
|
|
1010
|
+
- OmniRoute v1.0.6+ sisältää varatarkistuksen chatin loppuunsaattamisen kautta
|
|
1011
|
+
- Varmista, että perus-URL sisältää `/v1`-liitteen
|
|
1012
|
+
|
|
1013
|
+
</details>
|
|
1014
|
+
|
|
1015
|
+
---
|
|
1016
|
+
|
|
1017
|
+
## 🛠️ Tech Stack
|
|
1018
|
+
|
|
1019
|
+
- **Suoritusaika**: Node.js 18–22 LTS (⚠️ Node.js 24+ -versiota **ei tueta** — `better-sqlite3` alkuperäiset binaarit eivät ole yhteensopivia)
|
|
1020
|
+
- **Kieli**: TypeScript 5.9 — **100 % TypeScript** `src/` ja `open-sse/` (v1.0.6) välillä
|
|
1021
|
+
- **Framework**: Next.js 16 + React 19 + Tailwind CSS 4
|
|
1022
|
+
- **Tietokanta**: LowDB (JSON) + SQLite (verkkotunnuksen tila + välityspalvelimen lokit)
|
|
1023
|
+
- **Striimaus**: Palvelimen lähettämät tapahtumat (SSE)
|
|
1024
|
+
- **Auth**: OAuth 2.0 (PKCE) + JWT + API-avaimet
|
|
1025
|
+
- **Testaus**: Node.js-testausohjelma (368+ yksikkötestiä)
|
|
1026
|
+
- **CI/CD**: GitHub Actions (automaattinen npm-julkaisu + Docker Hub julkaisussa)
|
|
1027
|
+
- **Verkkosivusto**: [omniroute.online](https://omniroute.online)
|
|
1028
|
+
- **Paketti**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
|
|
1029
|
+
- **Dokkeri**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
|
|
1030
|
+
- **Kestävyys**: Katkaisija, eksponentiaalinen backoff, ukkosen esto, TLS-huijaus
|
|
1031
|
+
|
|
1032
|
+
---
|
|
1033
|
+
|
|
1034
|
+
## 📖 Dokumentaatio
|
|
1035
|
+
|
|
1036
|
+
| Asiakirja | Kuvaus |
|
|
1037
|
+
| -------------------------------------------- | ------------------------------------------------------------- |
|
|
1038
|
+
| [User Guide](docs/USER_GUIDE.md) | Palveluntarjoajat, yhdistelmät, CLI-integrointi, käyttöönotto |
|
|
1039
|
+
| [API Reference](docs/API_REFERENCE.md) | Kaikki päätepisteet esimerkeineen |
|
|
1040
|
+
| [Troubleshooting](docs/TROUBLESHOOTING.md) | Yleisiä ongelmia ja ratkaisuja |
|
|
1041
|
+
| [Architecture](docs/ARCHITECTURE.md) | Järjestelmäarkkitehtuuri ja sisäosat |
|
|
1042
|
+
| [Contributing](CONTRIBUTING.md) | Kehittämisjärjestelyt ja -ohjeet |
|
|
1043
|
+
| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0 -spesifikaatio |
|
|
1044
|
+
| [Security Policy](SECURITY.md) | Haavoittuvuusraportointi ja tietoturvakäytännöt |
|
|
1045
|
+
| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Täydellinen opas: VM + nginx + Cloudflare-asennus |
|
|
1046
|
+
| [Features Gallery](docs/FEATURES.md) | Visuaalinen kojelautakierros kuvakaappauksilla |
|
|
1047
|
+
|
|
1048
|
+
### 📸 Kojelaudan esikatselu
|
|
1049
|
+
|
|
1050
|
+
<details>
|
|
1051
|
+
<summary><b>Klikkaa nähdäksesi hallintapaneelin kuvakaappaukset</b></summary>
|
|
1052
|
+
|
|
1053
|
+
| Sivu | Kuvakaappaus |
|
|
1054
|
+
| ---------------- | ------------------------------------------------- |
|
|
1055
|
+
| **Palvelut** |  |
|
|
1056
|
+
| **Yhdistelmät** |  |
|
|
1057
|
+
| **Analytics** |  |
|
|
1058
|
+
| **Terveys** |  |
|
|
1059
|
+
| **Kääntäjä** |  |
|
|
1060
|
+
| **Asetukset** |  |
|
|
1061
|
+
| **CLI-työkalut** |  |
|
|
1062
|
+
| **Käyttölokit** |  |
|
|
1063
|
+
| **Päätepiste** |  |
|
|
1064
|
+
|
|
1065
|
+
</details>
|
|
1066
|
+
|
|
1067
|
+
---
|
|
1068
|
+
|
|
1069
|
+
## 🗺️ Etenemissuunnitelma
|
|
1070
|
+
|
|
1071
|
+
OmniRoutella on **210+ suunniteltua ominaisuutta** useissa kehitysvaiheissa. Tässä ovat tärkeimmät alueet:
|
|
1072
|
+
|
|
1073
|
+
| Luokka | Suunnitellut ominaisuudet | Kohokohdat |
|
|
1074
|
+
| ------------------------------------------- | ------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
|
1075
|
+
| 🧠 **Routing & Intelligence** | 25+ | Pienimmän viiveen reititys, tunnistepohjainen reititys, kiintiön esitarkastus, P2C-tilin valinta |
|
|
1076
|
+
| 🔒 **Turvallisuus ja vaatimustenmukaisuus** | 20+ | SSRF-karkaisu, valtuustietojen peittäminen, päätepistekohtainen nopeusraja, hallintaavaimen laajuus |
|
|
1077
|
+
| 📊 **Havaittavuus** | 15+ | OpenTelemetry-integraatio, reaaliaikainen kiintiöiden seuranta, kustannusseuranta mallikohtaisesti |
|
|
1078
|
+
| 🔄 **Tarjoajien integraatiot** | 20+ | Dynaaminen mallirekisteri, palveluntarjoajan jäähtyminen, usean tilin Codex, Copilot-kiintiön jäsentäminen |
|
|
1079
|
+
| ⚡ **Suorituskyky** | 15+ | Kaksoisvälimuistikerros, kehotevälimuisti, vastausvälimuisti, suoratoiston ylläpitäminen, erä-API |
|
|
1080
|
+
| 🌐 **Ekosysteemi** | 10+ | WebSocket API, konfiguroinnin hot-reload, hajautettu konfiguraatiosäilö, kaupallinen tila |
|
|
1081
|
+
|
|
1082
|
+
### 🔜 Tulossa pian
|
|
1083
|
+
|
|
1084
|
+
- 🔗 **OpenCode Integration** - Natiivitoimittajan tuki OpenCode AI -koodaus-IDE:lle
|
|
1085
|
+
- 🔗 **TRAE-integraatio** — Täysi tuki TRAE AI -kehityskehykselle
|
|
1086
|
+
- 📦 **Eräsovellusliittymä** — Asynkroninen eräkäsittely joukkopyyntöille
|
|
1087
|
+
- 🎯 **Tagipohjainen reititys** - Reittipyynnöt mukautettujen tunnisteiden ja metatietojen perusteella
|
|
1088
|
+
- 💰 **Alhaisimman kustannustason strategia** - Valitse automaattisesti halvin saatavilla oleva palveluntarjoaja
|
|
1089
|
+
|
|
1090
|
+
> 📝 Täydelliset ominaisuudet saatavilla osoitteessa [link](docs/new-features/) (217 yksityiskohtaista spesifikaatiota)
|
|
1091
|
+
|
|
1092
|
+
---
|
|
1093
|
+
|
|
1094
|
+
## 📧 Tuki
|
|
1095
|
+
|
|
1096
|
+
> 💬 **Liity yhteisöömme!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Hanki apua, jaa vinkkejä ja pysy ajan tasalla.
|
|
1097
|
+
|
|
1098
|
+
- **Verkkosivusto**: [omniroute.online](https://omniroute.online)
|
|
1099
|
+
- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
|
|
1100
|
+
- **Ongelmia**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
|
|
1101
|
+
- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
|
|
1102
|
+
- **Alkuperäinen projekti**: [9router by decolua](https://github.com/decolua/9router)
|
|
1103
|
+
|
|
1104
|
+
---
|
|
1105
|
+
|
|
1106
|
+
## 👥 Avustajat
|
|
1107
|
+
|
|
1108
|
+
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
|
|
1109
|
+
|
|
1110
|
+
### Kuinka osallistua
|
|
1111
|
+
|
|
1112
|
+
1. Haarukka arkisto
|
|
1113
|
+
2. Luo ominaisuushaara (`git checkout -b feature/amazing-feature`)
|
|
1114
|
+
3. Vahvista muutokset (`git commit -m 'Add amazing feature'`)
|
|
1115
|
+
4. Työnnä haaraan (`git push origin feature/amazing-feature`)
|
|
1116
|
+
5. Avaa vetopyyntö
|
|
1117
|
+
|
|
1118
|
+
Katso tarkemmat ohjeet kohdasta [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
1119
|
+
|
|
1120
|
+
### Uuden version julkaisu
|
|
1121
|
+
|
|
1122
|
+
```bash
|
|
1123
|
+
# Create a release — npm publish happens automatically
|
|
1124
|
+
gh release create v1.0.6 --title "v1.0.6" --generate-notes
|
|
1125
|
+
```
|
|
1126
|
+
|
|
1127
|
+
---
|
|
1128
|
+
|
|
1129
|
+
## 📊 Tähtihistoria
|
|
1130
|
+
|
|
1131
|
+
<a href="https://star-history.com/#diegosouzapw/OmniRoute&Date">
|
|
1132
|
+
<picture>
|
|
1133
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date&theme=dark" />
|
|
1134
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
|
|
1135
|
+
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
|
|
1136
|
+
</picture>
|
|
1137
|
+
</a>
|
|
1138
|
+
|
|
1139
|
+
---
|
|
1140
|
+
|
|
1141
|
+
## 🙏 Kiitokset
|
|
1142
|
+
|
|
1143
|
+
Erityinen kiitos **[9router](https://github.com/decolua/9router)**, **[decolua](https://github.com/decolua)** - alkuperäinen projekti, joka inspiroi tätä haarukkaa. OmniRoute rakentaa tälle uskomattomalle perustalle lisäominaisuuksia, multimodaalisia API-liittymiä ja täydellistä TypeScript-uudelleenkirjoitusta.
|
|
1144
|
+
|
|
1145
|
+
Erityinen kiitos **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** - alkuperäiselle Go-toteutukselle, joka inspiroi tätä JavaScript-porttia.
|
|
1146
|
+
|
|
1147
|
+
---
|
|
1148
|
+
|
|
1149
|
+
## 📄 Lisenssi
|
|
1150
|
+
|
|
1151
|
+
MIT-lisenssi – katso lisätietoja osoitteesta [LICENSE](LICENSE).
|
|
1152
|
+
|
|
1153
|
+
---
|
|
1154
|
+
|
|
1155
|
+
---
|
|
1156
|
+
|
|
1157
|
+
## 🇧🇷 OmniRoute — Gateway de IA Gratuito
|
|
1158
|
+
|
|
1159
|
+
<a name="-omniroute--gateway-de-ia-gratuito"></a>
|
|
1160
|
+
|
|
1161
|
+
### Nunca pare de codar. Roteamento inteligente para **mallit de IA GRATUITOS e de baixo custo** com backback automático.
|
|
1162
|
+
|
|
1163
|
+
_Seu välityspalvelin universaali de API — um päätepiste, 36+ valmistajaa, nolla seisokkeja._
|
|
1164
|
+
|
|
1165
|
+
### 🌐 Internacionalização (i18n)
|
|
1166
|
+
|
|
1167
|
+
OmniRoute-kojelauta tukee **múltiplos idiomas**. Atualmente disponível em:
|
|
1168
|
+
|
|
1169
|
+
| Idioma | Código | Tila |
|
|
1170
|
+
| ----------------------- | ------- | -------------- |
|
|
1171
|
+
| 🇺🇸 englanti | `en` | ✅ Täydellinen |
|
|
1172
|
+
| 🇧🇷 Português (Brasilia) | `pt-BR` | ✅ Täydellinen |
|
|
1173
|
+
|
|
1174
|
+
**Para trocar o idioma:** Clique no seletor de idioma (🇺🇸 FI) no header do dashboard → selecione o idioma desejado.
|
|
1175
|
+
|
|
1176
|
+
**Para adicionar um novo idioma:**
|
|
1177
|
+
|
|
1178
|
+
1. Itke `src/i18n/messages/{codigo}.json` baseado em `en.json`
|
|
1179
|
+
2. Adicione o código em `src/i18n/config.ts` → `LOCALES` ja `LANGUAGES`
|
|
1180
|
+
3. Reinicie o servidor
|
|
1181
|
+
|
|
1182
|
+
### ⚡ Início Rápido
|
|
1183
|
+
|
|
1184
|
+
```bash
|
|
1185
|
+
# Instalar via npm
|
|
1186
|
+
npx omniroute@latest
|
|
1187
|
+
|
|
1188
|
+
# Ou rodar do código-fonte
|
|
1189
|
+
cp .env.example .env
|
|
1190
|
+
npm install
|
|
1191
|
+
PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev
|
|
1192
|
+
```
|
|
1193
|
+
|
|
1194
|
+
### 🐳 Docker
|
|
1195
|
+
|
|
1196
|
+
```bash
|
|
1197
|
+
docker run -d --name omniroute -p 20128:20128 diegosouzapw/omniroute:latest
|
|
1198
|
+
```
|
|
1199
|
+
|
|
1200
|
+
### 🔑 Funcionalidades Principais
|
|
1201
|
+
|
|
1202
|
+
- **36+ IA:n tuottajaa** – Claude, GPT, Gemini, Llama, Qwen, DeepSeek, e mais
|
|
1203
|
+
- **Roteamento inteligente** — Varastoautomatico entre provedores
|
|
1204
|
+
- **Tradução de formato** — OpenAI ↔ Claude ↔ Gemini automaticamente
|
|
1205
|
+
- **Multi-conta** — Múltiplas contas por provedor com seleção inteligente
|
|
1206
|
+
- **Cache semântico** - Reduz custos e latência
|
|
1207
|
+
- **OAuth automático** — Tokens renovam automaticamente
|
|
1208
|
+
- **Yhdistelmät personoidut** - 6 estratégias de roteamento
|
|
1209
|
+
- **Dashboard Completo** - Monitoramento, lokit, analyysit, konfiguraatiot
|
|
1210
|
+
- **CLI-työkalut** — Määritä Claude Code, Codex, Cursor, Cline com um clique
|
|
1211
|
+
- **100 % TypeScript** - Código limpo e tipado
|
|
1212
|
+
|
|
1213
|
+
### 📖 Documentação
|
|
1214
|
+
|
|
1215
|
+
| Documento | Kuvaus |
|
|
1216
|
+
| ----------------------------------------------- | ------------------------------------------- |
|
|
1217
|
+
| [Guia do Usuário](docs/USER_GUIDE.md) | Provedorit, yhdistelmät, CLI, käyttöönotto |
|
|
1218
|
+
| [Referência da API](docs/API_REFERENCE.md) | Todos os päätepisteet com exemplos |
|
|
1219
|
+
| [Solução de Problemas](docs/TROUBLESHOOTING.md) | Problemas comuns e soluções |
|
|
1220
|
+
| [Arquitetura](docs/ARCHITECTURE.md) | Arquitetura e internos do system |
|
|
1221
|
+
| [Contribuição](CONTRIBUTING.md) | Desenvolvimento e -ohjeiden asennus |
|
|
1222
|
+
| [Deploy em VM](docs/VM_DEPLOYMENT_GUIDE.md) | Täydellinen versio: VM + nginx + Cloudflare |
|
|
1223
|
+
|
|
1224
|
+
### 📧 Tuki
|
|
1225
|
+
|
|
1226
|
+
> 💬 **Entre para a comunidade!** [Grupo WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Tire dúvidas, compartilhe dicas e fique atualizado.
|
|
1227
|
+
|
|
1228
|
+
- **Verkkosivusto**: [omniroute.online](https://omniroute.online)
|
|
1229
|
+
- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
|
|
1230
|
+
- **Ongelmia**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
|
|
1231
|
+
|
|
1232
|
+
---
|
|
1233
|
+
|
|
1234
|
+
<div align="center">
|
|
1235
|
+
<sub>Rakennettu ❤️-kehittäjille, jotka koodaavat 24/7</sub>
|
|
1236
|
+
<br/>
|
|
1237
|
+
<sub><a href="https://omniroute.online">omniroute.online</a></sub>
|
|
1238
|
+
</div>
|