omniroute 1.4.10 → 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 +39 -39
- 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 +4 -4
- 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.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 +1 -1
- 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 +1 -1
- 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.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.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.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 +39 -39
- 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 +5 -3
- 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 +2 -2
- 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-bac355f56b136439.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-961f6e199b93539a.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-3fcbbdb2221f0b0c.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-f256689b8410bd74.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-a5a48afa8c125ada.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-75c8b38a55e13042.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-057ea91c6f140e0b.js +0 -1
- package/app/.next/static/chunks/app/landing/page-09741814aaca7548.js +0 -1
- package/app/.next/static/chunks/app/login/page-c1d7bfab91a7877c.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/{8UAle4UTGR7gIVofXmh_1 → XOdkUGO-Pm15MwsN4s6B3}/_buildManifest.js +0 -0
- /package/app/.next/static/{8UAle4UTGR7gIVofXmh_1 → XOdkUGO-Pm15MwsN4s6B3}/_ssgManifest.js +0 -0
package/README.th.md
ADDED
|
@@ -0,0 +1,1229 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="./docs/screenshots/MainOmniRoute.png" alt="OmniRoute Dashboard" width="800"/>
|
|
3
|
+
|
|
4
|
+
# 🚀 OmniRoute — เกตเวย์ AI ฟรี
|
|
5
|
+
|
|
6
|
+
🌐 **[English](#-omniroute--the-free-ai-gateway)** | **[Português (BR)](#-omniroute--gateway-de-ia-gratuito)**
|
|
7
|
+
|
|
8
|
+
### อย่าหยุดเขียนโค้ด การกำหนดเส้นทางอัจฉริยะไปยัง **โมเดล AI ฟรีและราคาประหยัด** พร้อมทางเลือกสำรองอัตโนมัติ
|
|
9
|
+
|
|
10
|
+
_พร็อกซี API สากลของคุณ — จุดสิ้นสุดเดียว ผู้ให้บริการมากกว่า 36 ราย เวลาหยุดทำงานเป็นศูนย์_
|
|
11
|
+
|
|
12
|
+
**เสร็จสิ้นการแชท • การฝัง • การสร้างภาพ • เสียง • การจัดอันดับใหม่ • TypeScript 100%**
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
### 🤖 ผู้ให้บริการ AI ฟรีสำหรับตัวแทนการเขียนโค้ดที่คุณชื่นชอบ
|
|
17
|
+
|
|
18
|
+
_เชื่อมต่อเครื่องมือ IDE หรือ CLI ที่ขับเคลื่อนด้วย AI ผ่าน 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
|
+
**แค่นั้นแหละ!** เริ่มเขียนโค้ดด้วยโมเดล AI ฟรี
|
|
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
|
+
**การใช้นักเทียบท่าเขียน:**
|
|
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` | ~250MB | รุ่นเสถียรล่าสุด |
|
|
248
|
+
| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | เวอร์ชันปัจจุบัน |
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 💰 ราคาโดยสรุป
|
|
253
|
+
|
|
254
|
+
| ชั้น | ผู้ให้บริการ | ราคา | รีเซ็ตโควต้า | ดีที่สุดสำหรับ |
|
|
255
|
+
| ------------------ | ---------------- | ---------------------- | ------------------- | ---------------------------- |
|
|
256
|
+
| **💳 สมัครสมาชิก** | รหัสคลอดด์ (Pro) | $20/เดือน | 5 ชม. + รายสัปดาห์ | สมัครสมาชิกแล้ว |
|
|
257
|
+
| | Codex (พลัส/โปร) | $20-200/เดือน | 5 ชม. + รายสัปดาห์ | ผู้ใช้ OpenAI |
|
|
258
|
+
| | ราศีเมถุน CLI | **ฟรี** | 180K/เดือน + 1K/วัน | ทุกคน! |
|
|
259
|
+
| | นักบิน GitHub | $10-19/เดือน | รายเดือน | ผู้ใช้ GitHub |
|
|
260
|
+
| **🔑 คีย์ API** | NVIDIA NIM | **ฟรี** (1,000 เครดิต) | ครั้งเดียว | การทดสอบระดับฟรี |
|
|
261
|
+
| | DeepSeek | จ่ายตามการใช้งาน | ไม่มี | ราคา/คุณภาพที่ดีที่สุด |
|
|
262
|
+
| | กรอค | ฟรีเทียร์ + จ่ายเงิน | อัตราจำกัด | การอนุมานที่รวดเร็วเป็นพิเศษ |
|
|
263
|
+
| | xAI (โกรก) | จ่ายตามการใช้งาน | ไม่มี | รุ่น Grok |
|
|
264
|
+
| | มิสทรัล | ฟรีเทียร์ + จ่ายเงิน | อัตราจำกัด | AI ยุโรป |
|
|
265
|
+
| | OpenRouter | จ่ายตามการใช้งาน | ไม่มี | โมเดลมากกว่า 100 แบบ |
|
|
266
|
+
| **💰 ราคาถูก** | GLM-4.7 | $0.6/1M | ทุกวัน 10.00 น. | สำรองงบประมาณ |
|
|
267
|
+
| | MiniMax M2.1 | $0.2/1M | กลิ้ง 5 ชั่วโมง | ตัวเลือกที่ถูกที่สุด |
|
|
268
|
+
| | คิมิ K2 | $9/เดือน คงที่ | 10M โทเค็น/เดือน | ต้นทุนที่คาดการณ์ได้ |
|
|
269
|
+
| **🆓 ฟรี** | ไอโฟลว์ | $0 | ไม่จำกัด | ฟรี 8 รุ่น |
|
|
270
|
+
| | ควีน | $0 | ไม่จำกัด | ฟรี 3 รุ่น |
|
|
271
|
+
| | คิโระ | $0 | ไม่จำกัด | คลอดด์ฟรี |
|
|
272
|
+
|
|
273
|
+
**💡 เคล็ดลับสำหรับมืออาชีพ:** เริ่มต้นด้วย Gemini CLI (ฟรี 180,000 ต่อเดือน) + 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
|
+
**ปัญหา:** ไม่สามารถสมัครสมาชิกได้ ต้องการการเข้ารหัส AI ที่เชื่อถือได้
|
|
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 ชั่วโมงทุกวัน ไม่มีการหยุดชะงัก"
|
|
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: "ฉันต้องการ AI ฟรีใน OpenClaw"
|
|
323
|
+
|
|
324
|
+
**ปัญหา:** ต้องการผู้ช่วย AI ในแอปส่งข้อความ ไม่มีค่าใช้จ่ายใดๆ ทั้งสิ้น
|
|
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 ↔ ราศีเมถุน ↔ เคอร์เซอร์ ↔ Kiro ไร้รอยต่อ + การฆ่าเชื้อแบบตอบสนอง |
|
|
347
|
+
| 👥 **รองรับหลายบัญชี** | หลายบัญชีต่อผู้ให้บริการพร้อมตัวเลือกที่ชาญฉลาด |
|
|
348
|
+
| 🔄 **รีเฟรชโทเค็นอัตโนมัติ** | โทเค็น OAuth รีเฟรชอัตโนมัติพร้อมลองอีกครั้ง |
|
|
349
|
+
| 🎨 **คอมโบแบบกำหนดเอง** | 6 กลยุทธ์: เติมก่อน, ปัดเศษ, p2c, สุ่ม, ใช้น้อยที่สุด, ปรับต้นทุนให้เหมาะสม |
|
|
350
|
+
| 🧩 **โมเดลที่กำหนดเอง** | เพิ่ม ID รุ่นใด ๆ ให้กับผู้ให้บริการ |
|
|
351
|
+
| 🌐 **เราเตอร์ตัวแทน** | กำหนดเส้นทางรูปแบบ `provider/*` ไปยังผู้ให้บริการใดๆ แบบไดนามิก |
|
|
352
|
+
| 🧠 **คิดงบประมาณ** | โหมดส่งผ่าน, อัตโนมัติ, กำหนดเอง และแบบปรับได้สำหรับโมเดลการให้เหตุผล |
|
|
353
|
+
| 💌 **ระบบพร้อมฉีด** | พร้อมท์ระบบสากลใช้กับคำขอทั้งหมด |
|
|
354
|
+
| 📄 **API ตอบกลับ** | รองรับ OpenAI Responses API เต็มรูปแบบ (`/v1/responses`) สำหรับ Codex |
|
|
355
|
+
|
|
356
|
+
### 🎵 Multi-Modal API
|
|
357
|
+
|
|
358
|
+
| คุณสมบัติ | มันทำอะไร |
|
|
359
|
+
| ----------------------- | ------------------------------------------------------------- |
|
|
360
|
+
| 🖼️ **การสร้างภาพ** | `/v1/images/generations` — ผู้ให้บริการ 4 ราย รุ่น 9+ |
|
|
361
|
+
| 📐 **การฝัง** | `/v1/embeddings` — ผู้ให้บริการ 6 ราย รุ่น 9+ |
|
|
362
|
+
| 🎶 **การถอดเสียง** | `/v1/audio/transcriptions` — รองรับการกระซิบ |
|
|
363
|
+
| 🔊 **ข้อความเป็นคำพูด** | `/v1/audio/speech` — การสังเคราะห์เสียงจากผู้ให้บริการหลายราย |
|
|
364
|
+
| 🛡️ **การกลั่นกรอง** | `/v1/moderations` — การตรวจสอบความปลอดภัยของเนื้อหา |
|
|
365
|
+
| 🔀 **จัดอันดับ** | `/v1/rerank` — การจัดอันดับความเกี่ยวข้องของเอกสาร |
|
|
366
|
+
|
|
367
|
+
### 🛡️ ความยืดหยุ่นและความปลอดภัย
|
|
368
|
+
|
|
369
|
+
| คุณสมบัติ | มันทำอะไร |
|
|
370
|
+
| --------------------------------- | ------------------------------------------------------------------------- |
|
|
371
|
+
| 🔌 **เซอร์กิตเบรกเกอร์** | เปิด/ปิดอัตโนมัติต่อผู้ให้บริการพร้อมเกณฑ์ที่กำหนดค่าได้ |
|
|
372
|
+
| 🛡️ **ฝูงต่อต้านฟ้าร้อง** | Mutex + ขีดจำกัดอัตราเซมาฟอร์สำหรับผู้ให้บริการคีย์ API |
|
|
373
|
+
| 🧠 **แคชความหมาย** | แคชสองชั้น (ลายเซ็น + ความหมาย) ช่วยลดต้นทุน & เวลาแฝง |
|
|
374
|
+
| ⚡ **ขอ Idempotency** | หน้าต่าง dedup 5s สำหรับคำขอซ้ำ |
|
|
375
|
+
| 🔒 **การปลอมแปลงลายนิ้วมือ TLS** | เลี่ยงการตรวจจับบอทที่ใช้ TLS ผ่าน wreq-js |
|
|
376
|
+
| 🌐 **การกรอง IP** | รายการที่อนุญาต/รายการบล็อกสำหรับการควบคุมการเข้าถึง API |
|
|
377
|
+
| 📊 **ขีดจำกัดอัตราที่แก้ไขได้** | RPM ที่กำหนดค่าได้ ช่องว่างขั้นต่ำ และสูงสุดพร้อมกันที่ระดับระบบ |
|
|
378
|
+
| 🛡 **การป้องกันปลายทาง API** | การตรวจสอบสิทธิ์ + การบล็อกผู้ให้บริการสำหรับปลายทาง `/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, นักเทียบท่า, พนักงาน Cloudflare |
|
|
404
|
+
| 🔑 **การจัดการคีย์ API** | สร้าง หมุนเวียน และกำหนดขอบเขตคีย์ API ตามผู้ให้บริการ |
|
|
405
|
+
| 🧙 **ตัวช่วยสร้างการเริ่มต้นใช้งาน** | การตั้งค่าพร้อมคำแนะนำ 4 ขั้นตอนสำหรับผู้ใช้ครั้งแรก |
|
|
406
|
+
| ???? **แดชบอร์ดเครื่องมือ CLI** | คลิกเดียวกำหนดค่า Claude, Codex, Cline, OpenClaw, Kilo, Antigravity |
|
|
407
|
+
| 🔄 **การสำรองฐานข้อมูล** | สำรองข้อมูล กู้คืน ส่งออก & นำเข้าอัตโนมัติสำหรับการตั้งค่าทั้งหมด |
|
|
408
|
+
| 🌐 **ความเป็นสากล** | i18n เต็มรูปแบบพร้อม next-intl — รองรับภาษาอังกฤษ + โปรตุเกส (บราซิล) |
|
|
409
|
+
| 🌍 **ตัวเลือกภาษา** | ไอคอนลูกโลกในส่วนหัวสำหรับการสลับภาษาแบบเรียลไทม์ (USA/🇧🇷) |
|
|
410
|
+
| 📂 **ไดเรกทอรีข้อมูลที่กำหนดเอง** | `DATA_DIR` env var เพื่อแทนที่ค่าเริ่มต้น `~/.omniroute` พาธหน่วยเก็บข้อมูล |
|
|
411
|
+
|
|
412
|
+
<details>
|
|
413
|
+
<summary><b>📖 รายละเอียดคุณสมบัติ</b></summary>
|
|
414
|
+
### 🎯 ทางเลือกสำรอง 4 ชั้นอัจฉริยะ
|
|
415
|
+
|
|
416
|
+
สร้างคอมโบพร้อมทางเลือกอัตโนมัติ:
|
|
417
|
+
|
|
418
|
+
```
|
|
419
|
+
Combo: "my-coding-stack"
|
|
420
|
+
1. cc/claude-opus-4-6 (your subscription)
|
|
421
|
+
2. nvidia/llama-3.3-70b (free NVIDIA API)
|
|
422
|
+
3. glm/glm-4.7 (cheap backup, $0.6/1M)
|
|
423
|
+
4. if/kimi-k2-thinking (free fallback)
|
|
424
|
+
|
|
425
|
+
→ Auto switches when quota runs out or errors occur
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
### 📊 การติดตามโควต้าแบบเรียลไทม์
|
|
429
|
+
|
|
430
|
+
- การใช้โทเค็นต่อผู้ให้บริการ
|
|
431
|
+
- รีเซ็ตการนับถอยหลัง (5 ชั่วโมง รายวัน รายสัปดาห์)
|
|
432
|
+
- การประมาณต้นทุนสำหรับระดับที่ชำระเงิน
|
|
433
|
+
- รายงานการใช้จ่ายรายเดือน
|
|
434
|
+
|
|
435
|
+
### 🔄 แปลรูปแบบ
|
|
436
|
+
|
|
437
|
+
การแปลที่ราบรื่นระหว่างรูปแบบ:
|
|
438
|
+
|
|
439
|
+
- **OpenAI** ↔ **Claude** ↔ **ราศีเมถุน** ↔ **การตอบกลับ OpenAI**
|
|
440
|
+
- เครื่องมือ CLI ของคุณส่งรูปแบบ OpenAI → การแปล OmniRoute → ผู้ให้บริการได้รับรูปแบบดั้งเดิม
|
|
441
|
+
- ทำงานร่วมกับเครื่องมือใดๆ ที่รองรับจุดสิ้นสุด OpenAI ที่กำหนดเอง
|
|
442
|
+
- **การฆ่าเชื้อการตอบสนอง** — ตัดช่องที่ไม่ได้มาตรฐานสำหรับความเข้ากันได้ของ OpenAI SDK ที่เข้มงวด
|
|
443
|
+
- **การปรับบทบาทให้เป็นมาตรฐาน** — `developer` → `system` สำหรับ non-OpenAI; `system` → `user` สำหรับรุ่น GLM/ERNIE
|
|
444
|
+
- **ลองแยกแท็ก** — `<think>` บล็อก → `reasoning_content` สำหรับการคิดโมเดล
|
|
445
|
+
- **เอาต์พุตที่มีโครงสร้าง** — `json_schema` → `responseMimeType`/`responseSchema` ของราศีเมถุน
|
|
446
|
+
|
|
447
|
+
### 👥 รองรับหลายบัญชี
|
|
448
|
+
|
|
449
|
+
- เพิ่มหลายบัญชีต่อผู้ให้บริการ
|
|
450
|
+
- การวนรอบอัตโนมัติหรือการกำหนดเส้นทางตามลำดับความสำคัญ
|
|
451
|
+
- ถอยกลับไปยังบัญชีถัดไปเมื่อถึงโควต้า
|
|
452
|
+
|
|
453
|
+
### 🔄 รีเฟรชโทเค็นอัตโนมัติ
|
|
454
|
+
|
|
455
|
+
- โทเค็น OAuth จะรีเฟรชโดยอัตโนมัติก่อนหมดอายุ
|
|
456
|
+
- ไม่จำเป็นต้องตรวจสอบสิทธิ์ซ้ำด้วยตนเอง
|
|
457
|
+
- ประสบการณ์ที่ไร้รอยต่อกับผู้ให้บริการทุกราย
|
|
458
|
+
|
|
459
|
+
### 🎨 คอมโบที่กำหนดเอง
|
|
460
|
+
|
|
461
|
+
- สร้างชุดค่าผสมโมเดลได้ไม่จำกัด
|
|
462
|
+
- 6 กลยุทธ์: เติมก่อน ปัดเศษ ยกกำลังสองตัวเลือก สุ่ม ใช้น้อยที่สุด ปรับต้นทุนให้เหมาะสม
|
|
463
|
+
- แบ่งปันคอมโบระหว่างอุปกรณ์ด้วย Cloud Sync
|
|
464
|
+
|
|
465
|
+
### 🏥 แดชบอร์ดสุขภาพ
|
|
466
|
+
|
|
467
|
+
- สถานะของระบบ (สถานะการออนไลน์, เวอร์ชัน, การใช้หน่วยความจำ)
|
|
468
|
+
- สถานะเซอร์กิตเบรกเกอร์ต่อผู้ให้บริการ (ปิด/เปิด/เปิดครึ่ง)
|
|
469
|
+
- สถานะการจำกัดอัตราและการล็อกที่ใช้งานอยู่
|
|
470
|
+
- สถิติแคชลายเซ็น
|
|
471
|
+
- telemetry Latency (p50/p95/p99) + แคชพร้อมท์
|
|
472
|
+
- รีเซ็ตสถานะสุขภาพได้ด้วยคลิกเดียว
|
|
473
|
+
|
|
474
|
+
### ???? สนามเด็กเล่นนักแปล
|
|
475
|
+
|
|
476
|
+
OmniRoute มี Translator Playground ในตัวอันทรงพลัง พร้อมด้วย **4 โหมด** สำหรับการดีบัก การทดสอบ และการตรวจสอบการแปล API:
|
|
477
|
+
|
|
478
|
+
| โหมด | คำอธิบาย |
|
|
479
|
+
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
480
|
+
| **💻 สนามเด็กเล่น** | การแปลรูปแบบโดยตรง — วางเนื้อหาคำขอ API ใดๆ และดูได้ทันทีว่า OmniRoute แปลระหว่างรูปแบบของผู้ให้บริการอย่างไร (OpenAI ↔ Claude ↔ Gemini ↔ Responses API) รวมเทมเพลตตัวอย่างและการตรวจจับรูปแบบอัตโนมัติ |
|
|
481
|
+
| **💌 โปรแกรมทดสอบการแชท** | ส่งคำขอแชทจริงผ่าน OmniRoute และดูการเดินทางไปกลับทั้งหมด: ข้อมูลของคุณ คำขอที่แปล คำตอบของผู้ให้บริการ และการตอบกลับที่แปลแล้ว ล้ำค่าสำหรับการตรวจสอบการกำหนดเส้นทางคำสั่งผสม |
|
|
482
|
+
| **🧪 ม้านั่งทดสอบ** | โหมดการทดสอบแบบแบตช์ — กำหนดกรณีการทดสอบหลายกรณีด้วยอินพุตและเอาต์พุตที่คาดหวังที่แตกต่างกัน รันการทดสอบทั้งหมดพร้อมกัน และเปรียบเทียบผลลัพธ์ระหว่างผู้ให้บริการและโมเดลต่างๆ |
|
|
483
|
+
| **📱 ไลฟ์มอนิเตอร์** | การตรวจสอบคำขอแบบเรียลไทม์ — ดูคำขอที่เข้ามาขณะที่คำขอไหลผ่าน OmniRoute ดูการแปลรูปแบบที่เกิดขึ้นแบบสด และระบุปัญหาได้ทันที |
|
|
484
|
+
|
|
485
|
+
**การเข้าถึง:** แดชบอร์ด → นักแปล (แถบด้านข้าง)
|
|
486
|
+
|
|
487
|
+
### 💾 คลาวด์ซิงค์
|
|
488
|
+
|
|
489
|
+
- ซิงค์ผู้ให้บริการ คอมโบ และการตั้งค่าระหว่างอุปกรณ์ต่างๆ
|
|
490
|
+
- ซิงค์พื้นหลังอัตโนมัติ
|
|
491
|
+
- พื้นที่เก็บข้อมูลที่เข้ารหัสที่ปลอดภัย
|
|
492
|
+
|
|
493
|
+
</details>
|
|
494
|
+
|
|
495
|
+
---
|
|
496
|
+
|
|
497
|
+
## 📖 คู่มือการตั้งค่า
|
|
498
|
+
|
|
499
|
+
<details>
|
|
500
|
+
<summary><b>💳 ผู้ให้บริการสมัครสมาชิก</b></summary>
|
|
501
|
+
### รหัสคลอด (Pro/Max)
|
|
502
|
+
|
|
503
|
+
```bash
|
|
504
|
+
Dashboard → Providers → Connect Claude Code
|
|
505
|
+
→ OAuth login → Auto token refresh
|
|
506
|
+
→ 5-hour + weekly quota tracking
|
|
507
|
+
|
|
508
|
+
Models:
|
|
509
|
+
cc/claude-opus-4-6
|
|
510
|
+
cc/claude-sonnet-4-5-20250929
|
|
511
|
+
cc/claude-haiku-4-5-20251001
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
**เคล็ดลับสำหรับมือโปร:** ใช้ Opus สำหรับงานที่ซับซ้อน และใช้ Sonnet เพื่อความรวดเร็ว โควต้าการติดตาม OmniRoute ต่อรุ่น!
|
|
515
|
+
|
|
516
|
+
### OpenAI Codex (พลัส/โปร)
|
|
517
|
+
|
|
518
|
+
```bash
|
|
519
|
+
Dashboard → Providers → Connect Codex
|
|
520
|
+
→ OAuth login (port 1455)
|
|
521
|
+
→ 5-hour + weekly reset
|
|
522
|
+
|
|
523
|
+
Models:
|
|
524
|
+
cx/gpt-5.2-codex
|
|
525
|
+
cx/gpt-5.1-codex-max
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
### Gemini CLI (ฟรี 180K/เดือน!)
|
|
529
|
+
|
|
530
|
+
```bash
|
|
531
|
+
Dashboard → Providers → Connect Gemini CLI
|
|
532
|
+
→ Google OAuth
|
|
533
|
+
→ 180K completions/month + 1K/day
|
|
534
|
+
|
|
535
|
+
Models:
|
|
536
|
+
gc/gemini-3-flash-preview
|
|
537
|
+
gc/gemini-2.5-pro
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
**คุ้มค่าที่สุด:** ระดับฟรีมหาศาล! ใช้สิ่งนี้ก่อนระดับที่ชำระเงิน
|
|
541
|
+
|
|
542
|
+
### นักบิน GitHub
|
|
543
|
+
|
|
544
|
+
```bash
|
|
545
|
+
Dashboard → Providers → Connect GitHub
|
|
546
|
+
→ OAuth via GitHub
|
|
547
|
+
→ Monthly reset (1st of month)
|
|
548
|
+
|
|
549
|
+
Models:
|
|
550
|
+
gh/gpt-5
|
|
551
|
+
gh/claude-4.5-sonnet
|
|
552
|
+
gh/gemini-3-pro
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
</details>
|
|
556
|
+
|
|
557
|
+
<details>
|
|
558
|
+
<summary><b>🔑 ผู้ให้บริการคีย์ API</b></summary>
|
|
559
|
+
### NVIDIA NIM (ฟรี 1,000 เครดิต!)
|
|
560
|
+
|
|
561
|
+
1. ลงทะเบียน: [build.nvidia.com](https://build.nvidia.com)
|
|
562
|
+
2. รับคีย์ API ฟรี (รวมเครดิตการอนุมาน 1,000 รายการ)
|
|
563
|
+
3. แดชบอร์ด → เพิ่มผู้ให้บริการ → NVIDIA NIM:
|
|
564
|
+
- คีย์ API: `nvapi-your-key`
|
|
565
|
+
|
|
566
|
+
**รุ่น:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` และอีก 50+ รายการ
|
|
567
|
+
|
|
568
|
+
**เคล็ดลับสำหรับมือโปร:** API ที่เข้ากันได้กับ OpenAI — ทำงานได้อย่างราบรื่นกับการแปลรูปแบบของ OmniRoute!
|
|
569
|
+
|
|
570
|
+
### ดีปซีค
|
|
571
|
+
|
|
572
|
+
1. ลงทะเบียน: [platform.deepseek.com](https://platform.deepseek.com)
|
|
573
|
+
2. รับรหัส API
|
|
574
|
+
3. แดชบอร์ด → เพิ่มผู้ให้บริการ → DeepSeek
|
|
575
|
+
|
|
576
|
+
**รุ่น:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder`
|
|
577
|
+
|
|
578
|
+
### Groq (มีระดับฟรี!)
|
|
579
|
+
|
|
580
|
+
1. ลงทะเบียน: [console.groq.com](https://console.groq.com)
|
|
581
|
+
2. รับคีย์ API (รวมเทียร์ฟรี)
|
|
582
|
+
3. แดชบอร์ด → เพิ่มผู้ให้บริการ → Groq
|
|
583
|
+
|
|
584
|
+
**รุ่น:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b`
|
|
585
|
+
|
|
586
|
+
**เคล็ดลับสำหรับมือโปร:** การอนุมานที่รวดเร็วเป็นพิเศษ — ดีที่สุดสำหรับการเขียนโค้ดแบบเรียลไทม์!
|
|
587
|
+
|
|
588
|
+
### OpenRouter (มากกว่า 100 รุ่น)
|
|
589
|
+
|
|
590
|
+
1. ลงทะเบียน: [openrouter.ai](https://openrouter.ai)
|
|
591
|
+
2. รับรหัส API
|
|
592
|
+
3. แดชบอร์ด → เพิ่มผู้ให้บริการ → OpenRouter
|
|
593
|
+
|
|
594
|
+
**รุ่น:** เข้าถึงโมเดลมากกว่า 100 โมเดลจากผู้ให้บริการรายใหญ่ทั้งหมดผ่านคีย์ API เดียว
|
|
595
|
+
|
|
596
|
+
</details>
|
|
597
|
+
|
|
598
|
+
<details>
|
|
599
|
+
<summary><b>💰 ผู้ให้บริการราคาถูก (สำรอง)</b></summary>
|
|
600
|
+
### GLM-4.7 (รีเซ็ตรายวัน, $0.6/1M)
|
|
601
|
+
|
|
602
|
+
1. ลงทะเบียน: [Zhipu AI](https://open.bigmodel.cn/)
|
|
603
|
+
2. รับคีย์ API จาก Coding Plan
|
|
604
|
+
3. แดชบอร์ด → เพิ่มคีย์ API:
|
|
605
|
+
- ผู้ให้บริการ: `glm`
|
|
606
|
+
- คีย์ API: `your-key`
|
|
607
|
+
|
|
608
|
+
**ใช้:** `glm/glm-4.7`
|
|
609
|
+
|
|
610
|
+
**เคล็ดลับสำหรับมือโปร:** แผนการเขียนโค้ดเสนอโควต้า 3 เท่าในราคา 1/7! รีเซ็ตทุกวัน 10.00 น.
|
|
611
|
+
|
|
612
|
+
### MiniMax M2.1 (รีเซ็ต 5 ชม., $0.20/1M)
|
|
613
|
+
|
|
614
|
+
1. ลงทะเบียน: [MiniMax](https://www.minimax.io/)
|
|
615
|
+
2. รับรหัส API
|
|
616
|
+
3. แดชบอร์ด → เพิ่มคีย์ API
|
|
617
|
+
|
|
618
|
+
**ใช้:** `minimax/MiniMax-M2.1`
|
|
619
|
+
|
|
620
|
+
**เคล็ดลับสำหรับมือโปร:** ตัวเลือกที่ถูกที่สุดสำหรับบริบทที่ยาว (โทเค็น 1M)!
|
|
621
|
+
|
|
622
|
+
### Kimi K2 ($9/เดือน)
|
|
623
|
+
|
|
624
|
+
1. สมัครสมาชิก: [Moonshot AI](https://platform.moonshot.ai/)
|
|
625
|
+
2. รับรหัส API
|
|
626
|
+
3. แดชบอร์ด → เพิ่มคีย์ API
|
|
627
|
+
|
|
628
|
+
**ใช้:** `kimi/kimi-latest`
|
|
629
|
+
|
|
630
|
+
**เคล็ดลับสำหรับมือโปร:** แก้ไข $9/เดือนสำหรับโทเค็น 10M = $0.90/ต้นทุนที่แท้จริง 1M!
|
|
631
|
+
|
|
632
|
+
</details>
|
|
633
|
+
|
|
634
|
+
<details>
|
|
635
|
+
<summary><b>🆓 ผู้ให้บริการฟรี (การสำรองข้อมูลฉุกเฉิน)</b></summary>
|
|
636
|
+
### iFlow (ฟรี 8 รุ่น)
|
|
637
|
+
|
|
638
|
+
```bash
|
|
639
|
+
Dashboard → Connect iFlow
|
|
640
|
+
→ iFlow OAuth login
|
|
641
|
+
→ Unlimited usage
|
|
642
|
+
|
|
643
|
+
Models:
|
|
644
|
+
if/kimi-k2-thinking
|
|
645
|
+
if/qwen3-coder-plus
|
|
646
|
+
if/glm-4.7
|
|
647
|
+
if/minimax-m2
|
|
648
|
+
if/deepseek-r1
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
### Qwen (ฟรี 3 รุ่น)
|
|
652
|
+
|
|
653
|
+
```bash
|
|
654
|
+
Dashboard → Connect Qwen
|
|
655
|
+
→ Device code authorization
|
|
656
|
+
→ Unlimited usage
|
|
657
|
+
|
|
658
|
+
Models:
|
|
659
|
+
qw/qwen3-coder-plus
|
|
660
|
+
qw/qwen3-coder-flash
|
|
661
|
+
```
|
|
662
|
+
|
|
663
|
+
### คิโระ (คลอดด์ฟรี)
|
|
664
|
+
|
|
665
|
+
```bash
|
|
666
|
+
Dashboard → Connect Kiro
|
|
667
|
+
→ AWS Builder ID or Google/GitHub
|
|
668
|
+
→ Unlimited usage
|
|
669
|
+
|
|
670
|
+
Models:
|
|
671
|
+
kr/claude-sonnet-4.5
|
|
672
|
+
kr/claude-haiku-4.5
|
|
673
|
+
```
|
|
674
|
+
|
|
675
|
+
</details>
|
|
676
|
+
|
|
677
|
+
<details>
|
|
678
|
+
<summary><b>🎨 สร้างคอมโบ</b></summary>
|
|
679
|
+
### ตัวอย่างที่ 1: เพิ่มการสมัครสมาชิกให้สูงสุด → การสำรองข้อมูลราคาถูก
|
|
680
|
+
|
|
681
|
+
```
|
|
682
|
+
Dashboard → Combos → Create New
|
|
683
|
+
|
|
684
|
+
Name: premium-coding
|
|
685
|
+
Models:
|
|
686
|
+
1. cc/claude-opus-4-6 (Subscription primary)
|
|
687
|
+
2. glm/glm-4.7 (Cheap backup, $0.6/1M)
|
|
688
|
+
3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)
|
|
689
|
+
|
|
690
|
+
Use in CLI: premium-coding
|
|
691
|
+
```
|
|
692
|
+
|
|
693
|
+
### ตัวอย่างที่ 2: ฟรีเท่านั้น (ไม่มีค่าใช้จ่าย)
|
|
694
|
+
|
|
695
|
+
```
|
|
696
|
+
Name: free-combo
|
|
697
|
+
Models:
|
|
698
|
+
1. gc/gemini-3-flash-preview (180K free/month)
|
|
699
|
+
2. if/kimi-k2-thinking (unlimited)
|
|
700
|
+
3. qw/qwen3-coder-plus (unlimited)
|
|
701
|
+
|
|
702
|
+
Cost: $0 forever!
|
|
703
|
+
```
|
|
704
|
+
|
|
705
|
+
</details>
|
|
706
|
+
|
|
707
|
+
<details>
|
|
708
|
+
<summary><b>ดำเนินการบูรณาการ CLI</b></summary>
|
|
709
|
+
### เคอร์เซอร์ IDE
|
|
710
|
+
|
|
711
|
+
```
|
|
712
|
+
Settings → Models → Advanced:
|
|
713
|
+
OpenAI API Base URL: http://localhost:20128/v1
|
|
714
|
+
OpenAI API Key: [from OmniRoute dashboard]
|
|
715
|
+
Model: cc/claude-opus-4-6
|
|
716
|
+
```
|
|
717
|
+
|
|
718
|
+
### รหัสคลอด
|
|
719
|
+
|
|
720
|
+
ใช้หน้า **เครื่องมือ CLI** ในแดชบอร์ดสำหรับการกำหนดค่าด้วยคลิกเดียว หรือแก้ไข `~/.claude/settings.json` ด้วยตนเอง
|
|
721
|
+
|
|
722
|
+
### Codex CLI
|
|
723
|
+
|
|
724
|
+
```bash
|
|
725
|
+
export OPENAI_BASE_URL="http://localhost:20128"
|
|
726
|
+
export OPENAI_API_KEY="your-omniroute-api-key"
|
|
727
|
+
|
|
728
|
+
codex "your prompt"
|
|
729
|
+
```
|
|
730
|
+
|
|
731
|
+
### โอเพ่นคลอว์
|
|
732
|
+
|
|
733
|
+
**ตัวเลือก 1 — แดชบอร์ด (แนะนำ):**
|
|
734
|
+
|
|
735
|
+
```
|
|
736
|
+
Dashboard → CLI Tools → OpenClaw → Select Model → Apply
|
|
737
|
+
```
|
|
738
|
+
|
|
739
|
+
**ตัวเลือก 2 — กำหนดเอง:** แก้ไข `~/.openclaw/openclaw.json`:
|
|
740
|
+
|
|
741
|
+
```json
|
|
742
|
+
{
|
|
743
|
+
"models": {
|
|
744
|
+
"providers": {
|
|
745
|
+
"omniroute": {
|
|
746
|
+
"baseUrl": "http://127.0.0.1:20128/v1",
|
|
747
|
+
"apiKey": "sk_omniroute",
|
|
748
|
+
"api": "openai-completions"
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
}
|
|
752
|
+
}
|
|
753
|
+
```
|
|
754
|
+
|
|
755
|
+
> **หมายเหตุ:** OpenClaw ใช้งานได้กับ OmniRoute ในพื้นที่เท่านั้น ใช้ `127.0.0.1` แทน `localhost` เพื่อหลีกเลี่ยงปัญหาความละเอียดของ IPv6
|
|
756
|
+
|
|
757
|
+
### ไคลน์ / ดำเนินการต่อ / RooCode
|
|
758
|
+
|
|
759
|
+
```
|
|
760
|
+
Settings → API Configuration:
|
|
761
|
+
Provider: OpenAI Compatible
|
|
762
|
+
Base URL: http://localhost:20128/v1
|
|
763
|
+
API Key: [from OmniRoute dashboard]
|
|
764
|
+
Model: if/kimi-k2-thinking
|
|
765
|
+
```
|
|
766
|
+
|
|
767
|
+
</details>
|
|
768
|
+
|
|
769
|
+
---
|
|
770
|
+
|
|
771
|
+
## 📊 รุ่นที่มีจำหน่าย
|
|
772
|
+
|
|
773
|
+
<details>
|
|
774
|
+
<summary><b>ดูรุ่นที่มีทั้งหมด</b></summary>
|
|
775
|
+
|
|
776
|
+
**รหัสโคลด (`cc/`)** - โปร/สูงสุด:
|
|
777
|
+
|
|
778
|
+
- `cc/claude-opus-4-6`
|
|
779
|
+
- `cc/claude-sonnet-4-5-20250929`
|
|
780
|
+
- `cc/claude-haiku-4-5-20251001`
|
|
781
|
+
|
|
782
|
+
**โคเด็กซ์ (`cx/`)** - บวก/โปร:
|
|
783
|
+
|
|
784
|
+
- `cx/gpt-5.2-codex`
|
|
785
|
+
- `cx/gpt-5.1-codex-max`
|
|
786
|
+
|
|
787
|
+
**ราศีเมถุน CLI (`gc/`)** - ฟรี:
|
|
788
|
+
|
|
789
|
+
- `gc/gemini-3-flash-preview`
|
|
790
|
+
- `gc/gemini-2.5-pro`
|
|
791
|
+
|
|
792
|
+
**โปรแกรมควบคุม GitHub (`gh/`)**:
|
|
793
|
+
|
|
794
|
+
- `gh/gpt-5`
|
|
795
|
+
- `gh/claude-4.5-sonnet`
|
|
796
|
+
|
|
797
|
+
**NVIDIA NIM (`nvidia/`)** - เครดิตฟรี:
|
|
798
|
+
|
|
799
|
+
- `nvidia/llama-3.3-70b-instruct`
|
|
800
|
+
- `nvidia/mistral-7b-instruct`
|
|
801
|
+
- มากกว่า 50 รุ่นบน [build.nvidia.com](https://build.nvidia.com)
|
|
802
|
+
|
|
803
|
+
**GLM (`glm/`)** - $0.6/1M:
|
|
804
|
+
|
|
805
|
+
- `glm/glm-4.7`
|
|
806
|
+
|
|
807
|
+
**มินิแม็กซ์ (`minimax/`)** - $0.2/1M:
|
|
808
|
+
|
|
809
|
+
- `minimax/MiniMax-M2.1`
|
|
810
|
+
|
|
811
|
+
**iFlow (`if/`)** - ฟรี:
|
|
812
|
+
|
|
813
|
+
- `if/kimi-k2-thinking`
|
|
814
|
+
- `if/qwen3-coder-plus`
|
|
815
|
+
- `if/deepseek-r1`
|
|
816
|
+
- `if/glm-4.7`
|
|
817
|
+
- `if/minimax-m2`
|
|
818
|
+
|
|
819
|
+
**คิวเวน (`qw/`)** - ฟรี:
|
|
820
|
+
|
|
821
|
+
- `qw/qwen3-coder-plus`
|
|
822
|
+
- `qw/qwen3-coder-flash`
|
|
823
|
+
|
|
824
|
+
**คิโระ (`kr/`)** - ฟรี:
|
|
825
|
+
|
|
826
|
+
- `kr/claude-sonnet-4.5`
|
|
827
|
+
- `kr/claude-haiku-4.5`
|
|
828
|
+
|
|
829
|
+
**OpenRouter (`or/`)** - มากกว่า 100 รุ่น:
|
|
830
|
+
|
|
831
|
+
- `or/anthropic/claude-4-sonnet`
|
|
832
|
+
- `or/google/gemini-2.5-pro`
|
|
833
|
+
- รุ่นใดก็ได้จาก [openrouter.ai/models](https://openrouter.ai/models)
|
|
834
|
+
|
|
835
|
+
</details>
|
|
836
|
+
|
|
837
|
+
---
|
|
838
|
+
|
|
839
|
+
## 🧪 การประเมินผล (Evals)
|
|
840
|
+
|
|
841
|
+
OmniRoute มีกรอบการประเมินในตัวเพื่อทดสอบคุณภาพการตอบสนองของ LLM เทียบกับชุดทอง เข้าถึงได้ผ่านทาง **Analytics → Evals** ในแดชบอร์ด
|
|
842
|
+
|
|
843
|
+
### ชุดทองในตัว
|
|
844
|
+
|
|
845
|
+
"OmniRoute Golden Set" ที่โหลดไว้ล่วงหน้าประกอบด้วยกรณีทดสอบ 10 กรณีที่ครอบคลุม:
|
|
846
|
+
|
|
847
|
+
- คำทักทาย คณิตศาสตร์ ภูมิศาสตร์ การสร้างโค้ด
|
|
848
|
+
- การปฏิบัติตามรูปแบบ JSON, การแปล, มาร์กดาวน์
|
|
849
|
+
- การปฏิเสธอย่างปลอดภัย (เนื้อหาที่เป็นอันตราย) การนับ ตรรกะบูลีน
|
|
850
|
+
|
|
851
|
+
### กลยุทธ์การประเมินผล
|
|
852
|
+
|
|
853
|
+
| กลยุทธ์ | คำอธิบาย | ตัวอย่าง |
|
|
854
|
+
| ---------- | ------------------------------------------------------------------ | -------------------------------- |
|
|
855
|
+
| `exact` | ผลลัพธ์จะต้องตรงกันทุกประการ | `"4"` |
|
|
856
|
+
| `contains` | เอาต์พุตจะต้องมีสตริงย่อย (ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) | `"Paris"` |
|
|
857
|
+
| `regex` | เอาต์พุตต้องตรงกับรูปแบบ regex | `"1.*2.*3"` |
|
|
858
|
+
| `custom` | ฟังก์ชัน JS แบบกำหนดเองส่งคืนค่า true/false | `(output) => output.length > 10` |
|
|
859
|
+
|
|
860
|
+
---
|
|
861
|
+
|
|
862
|
+
## 🔐 OAuth ในเซิร์ฟเวอร์ Remoto (การตั้งค่า OAuth ระยะไกล)
|
|
863
|
+
|
|
864
|
+
<a name="oauth-em-servidor-remoto"></a>
|
|
865
|
+
|
|
866
|
+
> **⚠️ สิ่งสำคัญสำหรับการใช้ OmniRoute กับ VPS/Docker/servidor remoto**
|
|
867
|
+
|
|
868
|
+
### ใช่ OAuth ของ Antigravity / Gemini CLI หรือไม่?
|
|
869
|
+
|
|
870
|
+
ระบบปฏิบัติการ **Antigravity** และ **Gemini CLI** ใช้ **Google OAuth 2.0** สำหรับการรับรองความถูกต้อง O Google ต้องการ `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pré-cadastradas no Google Cloud Console do aplicativo.
|
|
871
|
+
|
|
872
|
+
ตามที่รับรอง OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. ต้องการใช้ OmniRoute ในเซิร์ฟเวอร์ remoto (เช่น `https://omniroute.meuservidor.com`) หรือ Google ตรวจสอบ com autenticação:
|
|
873
|
+
|
|
874
|
+
```
|
|
875
|
+
Error 400: redirect_uri_mismatch
|
|
876
|
+
```
|
|
877
|
+
|
|
878
|
+
### วิธีแก้ปัญหา: กำหนดค่า suas próprias credenciais OAuth
|
|
879
|
+
|
|
880
|
+
อยู่ในนั้นโดยตรง **OAuth 2.0 Client ID** ไม่มี Google Cloud Console พร้อม URI สำหรับเซิร์ฟเวอร์
|
|
881
|
+
|
|
882
|
+
#### เยี่ยมเลย
|
|
883
|
+
|
|
884
|
+
**1. เข้าถึง Google Cloud Console**
|
|
885
|
+
|
|
886
|
+
อับรา: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials)
|
|
887
|
+
|
|
888
|
+
**2. ฉันเพิ่งค้นพบ OAuth 2.0 Client ID**
|
|
889
|
+
|
|
890
|
+
- คลิก em **"+ สร้างข้อมูลรับรอง"** → **"รหัสไคลเอ็นต์ OAuth"**
|
|
891
|
+
- เคล็ดลับการใช้งาน: **"แอปพลิเคชันเว็บ"**
|
|
892
|
+
- ชื่อ: ชื่อ escolha qualquer (เช่น: `OmniRoute Remote`)
|
|
893
|
+
|
|
894
|
+
**3. Adicione เป็น URI การเปลี่ยนเส้นทางที่ได้รับอนุญาต**
|
|
895
|
+
|
|
896
|
+
ไม่มีค่าย **"URI การเปลี่ยนเส้นทางที่ได้รับอนุญาต"** ผู้สนับสนุน:
|
|
897
|
+
|
|
898
|
+
```
|
|
899
|
+
https://seu-servidor.com/callback
|
|
900
|
+
```
|
|
901
|
+
|
|
902
|
+
> Substitua `seu-servidor.com` pelo domínio ou IP do seu servidor (รวม porta se necessário เช่น `http://45.33.32.156:20128/callback`)
|
|
903
|
+
|
|
904
|
+
**4. Salve e copy as credenciais**
|
|
905
|
+
|
|
906
|
+
อ้างอิงถึง Google มากที่สุด o **Client ID** e o **Client Secret**
|
|
907
|
+
|
|
908
|
+
**5. กำหนดค่าเป็น variáveis de Ambiente**
|
|
909
|
+
|
|
910
|
+
ไม่มี `.env` (คุณมีตัวเลือกอื่นสำหรับ Docker):
|
|
911
|
+
|
|
912
|
+
```bash
|
|
913
|
+
# Para Antigravity:
|
|
914
|
+
ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
|
|
915
|
+
ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
|
|
916
|
+
|
|
917
|
+
# Para Gemini CLI:
|
|
918
|
+
GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
|
|
919
|
+
GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
|
|
920
|
+
GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
|
|
921
|
+
```
|
|
922
|
+
|
|
923
|
+
**6. ย้อนกลับไปสู่ OmniRoute**
|
|
924
|
+
|
|
925
|
+
```bash
|
|
926
|
+
# Se usando npm:
|
|
927
|
+
npm run dev
|
|
928
|
+
|
|
929
|
+
# Se usando Docker:
|
|
930
|
+
docker restart omniroute
|
|
931
|
+
```
|
|
932
|
+
|
|
933
|
+
**7. เต็นท์ คอนเนกตาร์ โนวาเมนเต**
|
|
934
|
+
|
|
935
|
+
แดชบอร์ด → ผู้ให้บริการ → Antigravity (หรือ Gemini CLI) → OAuth
|
|
936
|
+
|
|
937
|
+
ภาพรวมของ Google การแก้ไขสำหรับ `https://seu-servidor.com/callback` และการรับรองความถูกต้อง
|
|
938
|
+
|
|
939
|
+
---
|
|
940
|
+
|
|
941
|
+
### วิธีแก้ปัญหาชั่วคราว (sem configurar credenciais próprias)
|
|
942
|
+
|
|
943
|
+
Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**:
|
|
944
|
+
|
|
945
|
+
1. O OmniRoute ย่อ URL อัตโนมัติของ Google
|
|
946
|
+
2. Após você autorizar, o Google tentará redirecionar para `localhost` (que falha no servidor remoto)
|
|
947
|
+
3. **คัดลอก URL ที่สมบูรณ์** da barra de endereço do seu browser (mesmo que a página não carregue)
|
|
948
|
+
4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute
|
|
949
|
+
5. คลิกที่นี่ **"เชื่อมต่อ"**
|
|
950
|
+
|
|
951
|
+
> วิธีแก้ปัญหาเบื้องต้นคือทำการเปลี่ยนเส้นทางโดยอัตโนมัติและทำการเปลี่ยนเส้นทางโดยอัตโนมัติ
|
|
952
|
+
|
|
953
|
+
---
|
|
954
|
+
|
|
955
|
+
## 🐛 การแก้ไขปัญหา
|
|
956
|
+
|
|
957
|
+
<details>
|
|
958
|
+
<summary><b>คลิกเพื่อขยายคำแนะนำการแก้ปัญหา</b></summary>
|
|
959
|
+
**"โมเดลภาษาไม่ได้ระบุข้อความ"**
|
|
960
|
+
|
|
961
|
+
- โควต้าผู้ให้บริการหมด → ตรวจสอบตัวติดตามโควต้าแดชบอร์ด
|
|
962
|
+
- วิธีแก้ไข: ใช้ทางเลือกแบบคอมโบหรือเปลี่ยนไปใช้ระดับที่ถูกกว่า
|
|
963
|
+
|
|
964
|
+
**จำกัดอัตรา**
|
|
965
|
+
|
|
966
|
+
- โควต้าการสมัครสมาชิกหมด → สำรองไปที่ GLM/MiniMax
|
|
967
|
+
- เพิ่มคอมโบ: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
|
|
968
|
+
|
|
969
|
+
**โทเค็น OAuth หมดอายุแล้ว**
|
|
970
|
+
|
|
971
|
+
- รีเฟรชอัตโนมัติโดย OmniRoute
|
|
972
|
+
- หากปัญหายังคงอยู่: แดชบอร์ด → ผู้ให้บริการ → เชื่อมต่อใหม่
|
|
973
|
+
|
|
974
|
+
**ค่าใช้จ่ายสูง**
|
|
975
|
+
|
|
976
|
+
- ตรวจสอบสถิติการใช้งานในแดชบอร์ด → ต้นทุน
|
|
977
|
+
- เปลี่ยนโมเดลหลักเป็น GLM/MiniMax
|
|
978
|
+
- ใช้ระดับฟรี (Gemini CLI, iFlow) สำหรับงานที่ไม่สำคัญ
|
|
979
|
+
|
|
980
|
+
**แดชบอร์ดเปิดผิดพอร์ต**
|
|
981
|
+
|
|
982
|
+
- ตั้งค่า `PORT=20128` และ `NEXT_PUBLIC_BASE_URL=http://localhost:20128`
|
|
983
|
+
|
|
984
|
+
**ข้อผิดพลาดในการซิงค์คลาวด์**
|
|
985
|
+
|
|
986
|
+
- ตรวจสอบ `BASE_URL` ชี้ไปยังอินสแตนซ์ที่ทำงานอยู่ของคุณ
|
|
987
|
+
- ตรวจสอบ `CLOUD_URL` ชี้ไปยังจุดปลายทางคลาวด์ที่คุณคาดหวัง
|
|
988
|
+
- เก็บค่า `NEXT_PUBLIC_*` ให้สอดคล้องกับค่าฝั่งเซิร์ฟเวอร์
|
|
989
|
+
|
|
990
|
+
**เข้าสู่ระบบครั้งแรกใช้งานไม่ได้**
|
|
991
|
+
|
|
992
|
+
- ตรวจสอบ `INITIAL_PASSWORD` ใน `.env`
|
|
993
|
+
- หากไม่ได้ตั้งค่า รหัสผ่านสำรองจะเป็น `123456`
|
|
994
|
+
|
|
995
|
+
** ไม่มีบันทึกคำขอ **
|
|
996
|
+
|
|
997
|
+
- ตั้งค่า `ENABLE_REQUEST_LOGS=true` ใน `.env`
|
|
998
|
+
|
|
999
|
+
**การทดสอบการเชื่อมต่อแสดงว่า "ไม่ถูกต้อง" สำหรับผู้ให้บริการที่รองรับ OpenAI**
|
|
1000
|
+
|
|
1001
|
+
- ผู้ให้บริการหลายรายไม่เปิดเผยปลายทาง `/models`
|
|
1002
|
+
- OmniRoute v1.0.6+ มีการตรวจสอบทางเลือกผ่านการแชทให้เสร็จสิ้น
|
|
1003
|
+
- ตรวจสอบให้แน่ใจว่า URL ฐานมีคำต่อท้าย `/v1`
|
|
1004
|
+
|
|
1005
|
+
</details>
|
|
1006
|
+
|
|
1007
|
+
---
|
|
1008
|
+
|
|
1009
|
+
## 🛠️ เทคสแต็ค
|
|
1010
|
+
|
|
1011
|
+
- **รันไทม์**: Node.js 18–22 LTS (⚠️ Node.js 24+ ไม่ได้รับการสนับสนุน\*\* — `better-sqlite3` ไบนารีดั้งเดิมเข้ากันไม่ได้)
|
|
1012
|
+
- **ภาษา**: TypeScript 5.9 — **100% TypeScript** ทั่วทั้ง `src/` และ `open-sse/` (v1.0.6)
|
|
1013
|
+
- **เฟรมเวิร์ก**: Next.js 16 + React 19 + Tailwind CSS 4
|
|
1014
|
+
- **ฐานข้อมูล**: LowDB (JSON) + SQLite (สถานะโดเมน + บันทึกพร็อกซี)
|
|
1015
|
+
- **การสตรีม**: เหตุการณ์ที่เซิร์ฟเวอร์ส่ง (SSE)
|
|
1016
|
+
- **Auth**: OAuth 2.0 (PKCE) + JWT + คีย์ API
|
|
1017
|
+
- **การทดสอบ**: ตัวรันการทดสอบ Node.js (การทดสอบหน่วยมากกว่า 368 รายการ)
|
|
1018
|
+
- **CI/CD**: การดำเนินการ GitHub (เผยแพร่ npm อัตโนมัติ + Docker Hub เมื่อวางจำหน่าย)
|
|
1019
|
+
- **เว็บไซต์**: [omniroute.online](https://omniroute.online)
|
|
1020
|
+
- **แพ็คเกจ**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
|
|
1021
|
+
- **นักเทียบท่า**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
|
|
1022
|
+
- **ความยืดหยุ่น**: เซอร์กิตเบรกเกอร์, การถอยกลับแบบเอ็กซ์โปเนนเชียล, การป้องกันฝูงฟ้าผ่า, การปลอมแปลง TLS
|
|
1023
|
+
|
|
1024
|
+
---
|
|
1025
|
+
|
|
1026
|
+
## 📖 เอกสารประกอบ
|
|
1027
|
+
|
|
1028
|
+
| เอกสาร | คำอธิบาย |
|
|
1029
|
+
| -------------------------------------------- | ----------------------------------------------------- |
|
|
1030
|
+
| [User Guide](docs/USER_GUIDE.md) | ผู้ให้บริการ, คอมโบ, การรวม CLI, การปรับใช้ |
|
|
1031
|
+
| [API Reference](docs/API_REFERENCE.md) | จุดสิ้นสุดทั้งหมดพร้อมตัวอย่าง |
|
|
1032
|
+
| [Troubleshooting](docs/TROUBLESHOOTING.md) | ปัญหาและแนวทางแก้ไขทั่วไป |
|
|
1033
|
+
| [Architecture](docs/ARCHITECTURE.md) | สถาปัตยกรรมระบบและภายใน |
|
|
1034
|
+
| [Contributing](CONTRIBUTING.md) | การตั้งค่าและแนวทางการพัฒนา |
|
|
1035
|
+
| [OpenAPI Spec](docs/openapi.yaml) | ข้อมูลจำเพาะของ OpenAPI 3.0 |
|
|
1036
|
+
| [Security Policy](SECURITY.md) | การรายงานช่องโหว่และแนวปฏิบัติด้านความปลอดภัย |
|
|
1037
|
+
| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | คู่มือฉบับสมบูรณ์: VM + nginx + การตั้งค่า Cloudflare |
|
|
1038
|
+
| [Features Gallery](docs/FEATURES.md) | ทัวร์ชมแดชบอร์ดภาพพร้อมภาพหน้าจอ |
|
|
1039
|
+
|
|
1040
|
+
### 📸 ดูตัวอย่างแดชบอร์ด
|
|
1041
|
+
|
|
1042
|
+
<details>
|
|
1043
|
+
<summary><b>คลิกเพื่อดูภาพหน้าจอแดชบอร์ด</b></summary>
|
|
1044
|
+
| หน้า | ภาพหน้าจอ |
|
|
1045
|
+
| ------------------- | ------------------------------------------------- |
|
|
1046
|
+
| **ผู้ให้บริการ** |  |
|
|
1047
|
+
| **คอมโบ** |  |
|
|
1048
|
+
| **การวิเคราะห์** |  |
|
|
1049
|
+
| **สุขภาพ** |  |
|
|
1050
|
+
| **นักแปล** |  |
|
|
1051
|
+
| **การตั้งค่า** |  |
|
|
1052
|
+
| **เครื่องมือ CLI** |  |
|
|
1053
|
+
| **บันทึกการใช้งาน** |  |
|
|
1054
|
+
| **จุดสิ้นสุด** |  |
|
|
1055
|
+
|
|
1056
|
+
</details>
|
|
1057
|
+
|
|
1058
|
+
---
|
|
1059
|
+
|
|
1060
|
+
## 🗺️ โรดแมป
|
|
1061
|
+
|
|
1062
|
+
OmniRoute มี **ฟีเจอร์มากกว่า 210 รายการที่วางแผน** ไว้ในขั้นตอนการพัฒนาหลายขั้นตอน นี่คือประเด็นสำคัญ:
|
|
1063
|
+
|
|
1064
|
+
| หมวดหมู่ | คุณสมบัติที่วางแผนไว้ | ไฮไลท์ |
|
|
1065
|
+
| ------------------------------------------ | --------------------- | ------------------------------------------------------------------------------------------------------------- |
|
|
1066
|
+
| 🧠 **การกำหนดเส้นทางและความฉลาด** | 25+ | การกำหนดเส้นทางที่มีความหน่วงต่ำที่สุด, การกำหนดเส้นทางตามแท็ก, โควต้า preflight, การเลือกบัญชี P2C |
|
|
1067
|
+
| 🔒 **ความปลอดภัยและการปฏิบัติตามข้อกำหนด** | 20+ | การเสริมความแข็งแกร่งของ SSRF, การปิดบังข้อมูลรับรอง, ขีดจำกัดอัตราต่อจุดสิ้นสุด, การกำหนดขอบเขตคีย์การจัดการ |
|
|
1068
|
+
| 📊 **ความสามารถในการสังเกต** | 15+ | การรวม OpenTelemetry การตรวจสอบโควต้าแบบเรียลไทม์ การติดตามต้นทุนต่อรุ่น |
|
|
1069
|
+
| 🔄 **การบูรณาการของผู้ให้บริการ** | 20+ | การลงทะเบียนโมเดลแบบไดนามิก, คูลดาวน์ของผู้ให้บริการ, Codex หลายบัญชี, การแยกวิเคราะห์โควต้า Copilot |
|
|
1070
|
+
| ⚡ **ประสิทธิภาพ** | 15+ | เลเยอร์แคชคู่, แคชพร้อมท์, แคชการตอบสนอง, การสตรีมแบบ Keepalive, ชุด API |
|
|
1071
|
+
| 🌐 **ระบบนิเวศ** | 10+ | WebSocket API, กำหนดค่า hot-reload, การจัดเก็บ config แบบกระจาย, โหมดเชิงพาณิชย์ |
|
|
1072
|
+
|
|
1073
|
+
### 🔜 เร็วๆ นี้
|
|
1074
|
+
|
|
1075
|
+
- 🔗 **การรวม OpenCode** — รองรับผู้ให้บริการเนทีฟสำหรับ IDE การเข้ารหัส OpenCode AI
|
|
1076
|
+
- 🔗 **การบูรณาการ TRAE** — รองรับกรอบการพัฒนา TRAE AI อย่างเต็มที่
|
|
1077
|
+
- 📦 **Batch API** — การประมวลผลแบบแบตช์แบบอะซิงโครนัสสำหรับคำขอจำนวนมาก
|
|
1078
|
+
- 🎯 **การกำหนดเส้นทางตามแท็ก** — คำขอกำหนดเส้นทางตามแท็กที่กำหนดเองและข้อมูลเมตา
|
|
1079
|
+
- 💰 **กลยุทธ์ต้นทุนต่ำสุด** — เลือกผู้ให้บริการที่ถูกที่สุดโดยอัตโนมัติ
|
|
1080
|
+
|
|
1081
|
+
> dict ข้อมูลจำเพาะคุณสมบัติแบบเต็มมีอยู่ใน [link](docs/new-features/) (ข้อมูลจำเพาะโดยละเอียด 217 รายการ)
|
|
1082
|
+
|
|
1083
|
+
---
|
|
1084
|
+
|
|
1085
|
+
## 📧 สนับสนุน
|
|
1086
|
+
|
|
1087
|
+
> 💌 **เข้าร่วมชุมชนของเรา!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — รับความช่วยเหลือ แบ่งปันเคล็ดลับ และติดตามข่าวสารล่าสุด
|
|
1088
|
+
|
|
1089
|
+
- **เว็บไซต์**: [omniroute.online](https://omniroute.online)
|
|
1090
|
+
- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
|
|
1091
|
+
- **ปัญหา**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
|
|
1092
|
+
- **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
|
|
1093
|
+
- **โปรเจ็กต์ดั้งเดิม**: [9router by decolua](https://github.com/decolua/9router)
|
|
1094
|
+
|
|
1095
|
+
---
|
|
1096
|
+
|
|
1097
|
+
## 👥 ผู้มีส่วนร่วม
|
|
1098
|
+
|
|
1099
|
+
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
|
|
1100
|
+
|
|
1101
|
+
### วิธีการมีส่วนร่วม
|
|
1102
|
+
|
|
1103
|
+
1. แยกพื้นที่เก็บข้อมูล
|
|
1104
|
+
2. สร้างสาขาคุณลักษณะของคุณ (`git checkout -b feature/amazing-feature`)
|
|
1105
|
+
3. ยอมรับการเปลี่ยนแปลงของคุณ (`git commit -m 'Add amazing feature'`)
|
|
1106
|
+
4. กดไปที่สาขา (`git push origin feature/amazing-feature`)
|
|
1107
|
+
5. เปิดคำขอดึง
|
|
1108
|
+
|
|
1109
|
+
ดู [CONTRIBUTING.md](CONTRIBUTING.md) สำหรับคำแนะนำโดยละเอียด
|
|
1110
|
+
|
|
1111
|
+
### เปิดตัวเวอร์ชันใหม่
|
|
1112
|
+
|
|
1113
|
+
```bash
|
|
1114
|
+
# Create a release — npm publish happens automatically
|
|
1115
|
+
gh release create v1.0.6 --title "v1.0.6" --generate-notes
|
|
1116
|
+
```
|
|
1117
|
+
|
|
1118
|
+
---
|
|
1119
|
+
|
|
1120
|
+
## 📊 ประวัติดารา
|
|
1121
|
+
|
|
1122
|
+
<a href="https://star-history.com/#diegosouzapw/OmniRoute&Date">
|
|
1123
|
+
<picture>
|
|
1124
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date&theme=dark" />
|
|
1125
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
|
|
1126
|
+
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=diegosouzapw/OmniRoute&type=Date" />
|
|
1127
|
+
</picture>
|
|
1128
|
+
</a>
|
|
1129
|
+
|
|
1130
|
+
---
|
|
1131
|
+
|
|
1132
|
+
## 🙏ขอบพระคุณ
|
|
1133
|
+
|
|
1134
|
+
ขอขอบคุณเป็นพิเศษกับ **[9router](https://github.com/decolua/9router)** โดย **[decolua](https://github.com/decolua)** — โปรเจ็กต์ดั้งเดิมที่เป็นแรงบันดาลใจให้กับ Fork นี้ OmniRoute สร้างบนรากฐานอันน่าทึ่งดังกล่าวด้วยคุณสมบัติเพิ่มเติม API หลายรูปแบบ และการเขียน TypeScript ใหม่ทั้งหมด
|
|
1135
|
+
|
|
1136
|
+
ขอขอบคุณเป็นพิเศษสำหรับ **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — การใช้งาน Go ดั้งเดิมที่เป็นแรงบันดาลใจให้กับพอร์ต JavaScript นี้
|
|
1137
|
+
|
|
1138
|
+
---
|
|
1139
|
+
|
|
1140
|
+
## 📄 ใบอนุญาต
|
|
1141
|
+
|
|
1142
|
+
ใบอนุญาต MIT - ดู [LICENSE](LICENSE) สำหรับรายละเอียด
|
|
1143
|
+
|
|
1144
|
+
---
|
|
1145
|
+
|
|
1146
|
+
---
|
|
1147
|
+
|
|
1148
|
+
## 🇧🇷 OmniRoute — เกตเวย์ IA ฟรี
|
|
1149
|
+
|
|
1150
|
+
<a name="-omniroute--gateway-de-ia-gratuito"></a>
|
|
1151
|
+
|
|
1152
|
+
### นันคา พาเร เด โคดาร์. อัจฉริยะสำหรับ **แบบจำลอง IA ฟรีและการปรับแต่ง** com ทางเลือกอัตโนมัติ
|
|
1153
|
+
|
|
1154
|
+
_Seu proxy universal de API — อืม endpoint, 36+ พิสูจน์แล้ว, ศูนย์หยุดทำงาน._
|
|
1155
|
+
|
|
1156
|
+
### 🌐 อินเตอร์นาซิอองนาลลิซาเซา (i18n)
|
|
1157
|
+
|
|
1158
|
+
O แดชบอร์ดรองรับ OmniRoute **múltiplos idiomas** สาเหตุที่แท้จริงคือ:
|
|
1159
|
+
|
|
1160
|
+
| ไอดิโอมา | โคดิโก้ | สถานะ |
|
|
1161
|
+
| -------------------- | ------- | ------ |
|
|
1162
|
+
| 🇮🇩 อังกฤษ | `en` | ✅ ครบ |
|
|
1163
|
+
| 🇧🇷 โปรตุเกส (บราซิล) | `pt-BR` | ✅ ครบ |
|
|
1164
|
+
|
|
1165
|
+
**Para trocar o idioma:** Clique no seletor de idioma (USA) no header do Dashboard → selecione o idioma desejado.
|
|
1166
|
+
|
|
1167
|
+
**สำหรับการอ้างอิง um novo idioma:**
|
|
1168
|
+
|
|
1169
|
+
1. ร้องไห้ `src/i18n/messages/{codigo}.json` ฐาน `en.json`
|
|
1170
|
+
2. อ้างอิงถึง `src/i18n/config.ts` → `LOCALES` และ `LANGUAGES`
|
|
1171
|
+
3. Reinicie หรือผู้รับใช้
|
|
1172
|
+
|
|
1173
|
+
### ⚡ Início Rapido
|
|
1174
|
+
|
|
1175
|
+
```bash
|
|
1176
|
+
# Instalar via npm
|
|
1177
|
+
npx omniroute@latest
|
|
1178
|
+
|
|
1179
|
+
# Ou rodar do código-fonte
|
|
1180
|
+
cp .env.example .env
|
|
1181
|
+
npm install
|
|
1182
|
+
PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev
|
|
1183
|
+
```
|
|
1184
|
+
|
|
1185
|
+
### 🐳 ด็อคเกอร์
|
|
1186
|
+
|
|
1187
|
+
```bash
|
|
1188
|
+
docker run -d --name omniroute -p 20128:20128 diegosouzapw/omniroute:latest
|
|
1189
|
+
```
|
|
1190
|
+
|
|
1191
|
+
### 🔑 Funcionalidades Principais
|
|
1192
|
+
|
|
1193
|
+
- ** IA มากกว่า 36 รายการ ** — Claude, GPT, Gemini, Llama, Qwen, DeepSeek และอีเมลอื่น ๆ
|
|
1194
|
+
- **Roteamento inteligente** — ทางเลือกสำรองอัตโนมัติ
|
|
1195
|
+
- **รูปแบบการจัดรูปแบบ** — OpenAI ↔ Claude ↔ Gemini automaticamente
|
|
1196
|
+
- **หลายคอนตา** — Múltiplas contas por provendor com seleção inteligente
|
|
1197
|
+
- **ความหมายแคช** — Reduz custos e latência
|
|
1198
|
+
- **OAuth automático** — โทเค็นปรับปรุงอัตโนมัติ
|
|
1199
|
+
- **คอมโบส่วนบุคคล** — 6 estratégias de roteamento
|
|
1200
|
+
- **แดชบอร์ดที่สมบูรณ์** — การตรวจสอบ บันทึก การวิเคราะห์ การกำหนดค่า
|
|
1201
|
+
- **เครื่องมือ CLI** — กำหนดค่ารหัส Claude, Codex, เคอร์เซอร์, ไคลน์
|
|
1202
|
+
- **TypeScript100%** — รวดเร็วทันใจ
|
|
1203
|
+
|
|
1204
|
+
### 📖 เอกสารประกอบ
|
|
1205
|
+
|
|
1206
|
+
| เอกสาร | คำอธิบาย |
|
|
1207
|
+
| ----------------------------------------------- | --------------------------------- |
|
|
1208
|
+
| [Guia do Usuário](docs/USER_GUIDE.md) | Provedores, คอมโบ, CLI, ปรับใช้ |
|
|
1209
|
+
| [Referência da API](docs/API_REFERENCE.md) | Todos os endpoints com exemplos |
|
|
1210
|
+
| [Solução de Problemas](docs/TROUBLESHOOTING.md) | Problemas comuns e soluções |
|
|
1211
|
+
| [Arquitetura](docs/ARCHITECTURE.md) | Arquitetura e internos do sistema |
|
|
1212
|
+
| [Contribuição](CONTRIBUTING.md) | ตั้งค่าแนวทางการพัฒนา |
|
|
1213
|
+
| [Deploy em VM](docs/VM_DEPLOYMENT_GUIDE.md) | สมบูรณ์: VM + nginx + Cloudflare |
|
|
1214
|
+
|
|
1215
|
+
### 📧 สนับสนุน
|
|
1216
|
+
|
|
1217
|
+
> 💬 **เริ่มต้นการเดินทาง!** [Grupo WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Tyre dúvidas, compartilhe dicas e fique atualizado.
|
|
1218
|
+
|
|
1219
|
+
- **เว็บไซต์**: [omniroute.online](https://omniroute.online)
|
|
1220
|
+
- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
|
|
1221
|
+
- **ปัญหา**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
|
|
1222
|
+
|
|
1223
|
+
---
|
|
1224
|
+
|
|
1225
|
+
<div align="center">
|
|
1226
|
+
<sub>สร้างด้วย ❤️ สำหรับนักพัฒนาที่เขียนโค้ด 24/7</sub>
|
|
1227
|
+
<br/>
|
|
1228
|
+
<sub><a href="https://omniroute.online">omniroute.online</a>
|
|
1229
|
+
</div>
|