# 📖 Setup Guide — OmniRoute (తెలుగు) 🌐 **Languages:** 🇺🇸 [English](../../../../guides/SETUP_GUIDE.md) · 🇪🇹 [am](../../../am/docs/guides/SETUP_GUIDE.md) · 🇸🇦 [ar](../../../ar/docs/guides/SETUP_GUIDE.md) · 🇦🇿 [az](../../../az/docs/guides/SETUP_GUIDE.md) · 🇧🇬 [bg](../../../bg/docs/guides/SETUP_GUIDE.md) · 🇧🇩 [bn](../../../bn/docs/guides/SETUP_GUIDE.md) · 🇧🇦 [bs](../../../bs/docs/guides/SETUP_GUIDE.md) · 🇨🇿 [cs](../../../cs/docs/guides/SETUP_GUIDE.md) · 🇩🇰 [da](../../../da/docs/guides/SETUP_GUIDE.md) · 🇩🇪 [de](../../../de/docs/guides/SETUP_GUIDE.md) · 🇬🇷 [el](../../../el/docs/guides/SETUP_GUIDE.md) · 🇪🇸 [es](../../../es/docs/guides/SETUP_GUIDE.md) · 🇪🇪 [et](../../../et/docs/guides/SETUP_GUIDE.md) · 🇮🇷 [fa](../../../fa/docs/guides/SETUP_GUIDE.md) · 🇫🇮 [fi](../../../fi/docs/guides/SETUP_GUIDE.md) · 🇫🇷 [fr](../../../fr/docs/guides/SETUP_GUIDE.md) · 🇮🇪 [ga](../../../ga/docs/guides/SETUP_GUIDE.md) · 🇮🇳 [gu](../../../gu/docs/guides/SETUP_GUIDE.md) · 🇳🇬 [ha](../../../ha/docs/guides/SETUP_GUIDE.md) · 🇮🇱 [he](../../../he/docs/guides/SETUP_GUIDE.md) · 🇮🇳 [hi](../../../hi/docs/guides/SETUP_GUIDE.md) · 🇭🇷 [hr](../../../hr/docs/guides/SETUP_GUIDE.md) · 🇭🇺 [hu](../../../hu/docs/guides/SETUP_GUIDE.md) · 🇦🇲 [hy](../../../hy/docs/guides/SETUP_GUIDE.md) · 🇮🇩 [id](../../../id/docs/guides/SETUP_GUIDE.md) · 🇳🇬 [ig](../../../ig/docs/guides/SETUP_GUIDE.md) · 🇮🇹 [it](../../../it/docs/guides/SETUP_GUIDE.md) · 🇯🇵 [ja](../../../ja/docs/guides/SETUP_GUIDE.md) · 🇬🇪 [ka](../../../ka/docs/guides/SETUP_GUIDE.md) · 🇰🇭 [km](../../../km/docs/guides/SETUP_GUIDE.md) · 🇮🇳 [kn](../../../kn/docs/guides/SETUP_GUIDE.md) · 🇰🇷 [ko](../../../ko/docs/guides/SETUP_GUIDE.md) · 🇱🇹 [lt](../../../lt/docs/guides/SETUP_GUIDE.md) · 🇱🇻 [lv](../../../lv/docs/guides/SETUP_GUIDE.md) · 🇮🇳 [ml](../../../ml/docs/guides/SETUP_GUIDE.md) · 🇮🇳 [mr](../../../mr/docs/guides/SETUP_GUIDE.md) · 🇲🇾 [ms](../../../ms/docs/guides/SETUP_GUIDE.md) · 🇲🇹 [mt](../../../mt/docs/guides/SETUP_GUIDE.md) · 🇲🇲 [my](../../../my/docs/guides/SETUP_GUIDE.md) · 🇳🇵 [ne](../../../ne/docs/guides/SETUP_GUIDE.md) · 🇳🇱 [nl](../../../nl/docs/guides/SETUP_GUIDE.md) · 🇳🇴 [no](../../../no/docs/guides/SETUP_GUIDE.md) · 🇮🇳 [or](../../../or/docs/guides/SETUP_GUIDE.md) · 🇮🇳 [pa](../../../pa/docs/guides/SETUP_GUIDE.md) · 🇵🇭 [phi](../../../phi/docs/guides/SETUP_GUIDE.md) · 🇵🇱 [pl](../../../pl/docs/guides/SETUP_GUIDE.md) · 🇵🇹 [pt](../../../pt/docs/guides/SETUP_GUIDE.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/guides/SETUP_GUIDE.md) · 🇷🇴 [ro](../../../ro/docs/guides/SETUP_GUIDE.md) · 🇷🇺 [ru](../../../ru/docs/guides/SETUP_GUIDE.md) · 🇱🇰 [si](../../../si/docs/guides/SETUP_GUIDE.md) · 🇸🇰 [sk](../../../sk/docs/guides/SETUP_GUIDE.md) · 🇸🇮 [sl](../../../sl/docs/guides/SETUP_GUIDE.md) · 🇷🇸 [sr](../../../sr/docs/guides/SETUP_GUIDE.md) · 🇸🇪 [sv](../../../sv/docs/guides/SETUP_GUIDE.md) · 🇰🇪 [sw](../../../sw/docs/guides/SETUP_GUIDE.md) · 🇮🇳 [ta](../../../ta/docs/guides/SETUP_GUIDE.md) · 🇹🇭 [th](../../../th/docs/guides/SETUP_GUIDE.md) · 🇹🇷 [tr](../../../tr/docs/guides/SETUP_GUIDE.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/guides/SETUP_GUIDE.md) · 🇵🇰 [ur](../../../ur/docs/guides/SETUP_GUIDE.md) · 🇺🇿 [uz](../../../uz/docs/guides/SETUP_GUIDE.md) · 🇻🇳 [vi](../../../vi/docs/guides/SETUP_GUIDE.md) · 🇳🇬 [yo](../../../yo/docs/guides/SETUP_GUIDE.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/guides/SETUP_GUIDE.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/guides/SETUP_GUIDE.md) --- > OmniRoute కోసం పూర్తి సెటప్ సూచన. సంక్షిప్త వెర్షన్ కోసం, [READMEలోని త్వరిత ప్రారంభం](../README.md#-quick-start) చూడండి. ## విషయ సూచిక - [ఇన్స్టాలేషన్ పద్ధతులు](#install-methods) - [CLI సాధనం కాన్ఫిగరేషన్](#cli-tool-configuration) - [ప్రోటోకాల్ సెటప్ (MCP + A2A)](#protocol-setup-mcp--a2a) - [టైమ్అవుట్ కాన్ఫిగరేషన్](#timeout-configuration) - [స్ప్లిట్-పోర్ట్ మోడ్](#split-port-mode) - [Void Linux (xbps-src)](#void-linux-xbps-src-template) - [అన్ఇన్స్టాల్ చేయడం](#uninstalling) --- ## ఇన్స్టాలేషన్ పద్ధతులు ### npm (సిఫార్సు చేయబడింది) ```bash npm install -g omniroute omniroute ``` డాష్బోర్డ్ `http://localhost:20128` వద్ద తెరుచుకుంటుంది మరియు API బేస్ URL `http://localhost:20128/v1`. ### pnpm ```bash pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/core omniroute ``` > **pnpm వినియోగదారులు:** `better-sqlite3` మరియు `@swc/core` కోసం స్థానిక బిల్డ్ స్క్రిప్ట్లను ప్రారంభించడానికి `--allow-build` ఫ్లాగ్ అవసరం. pnpm v11లో గ్లోబల్ ఇన్స్టాలేషన్లకు `pnpm approve-builds -g` కమాండ్కు మద్దతు లేదు. ### Arch Linux (AUR) ```bash yay -S omniroute-bin systemctl --user enable --now omniroute.service ``` [AUR ప్యాకేజీ](https://aur.archlinux.org/packages/omniroute-bin) OmniRouteను ఇన్స్టాల్ చేసి, systemd వినియోగదారు సేవను అందిస్తుంది. ### సోర్స్ నుండి ```bash npm install PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev ``` > **Windows గమనిక:** లెగసీ `%USERPROFILE%\.omniroute` డైరెక్టరీ లేకపోతే, డిఫాల్ట్గా OmniRoute `%APPDATA%\omniroute`ను ఉపయోగిస్తుంది. వేరొక డేటా-డైరెక్టరీ స్థానాన్ని ఎంచుకోవడానికి `DATA_DIR`ను సెట్ చేయండి. > **గమనిక:** మొదటిసారి అమలు చేసినప్పుడు `npm install`, `.env.example` నుండి `.env`ను స్వయంచాలకంగా రూపొందిస్తుంది. తరువాతి ఇన్స్టాలేషన్లు ఇప్పటికే ఉన్న `.env`ను ఓవర్రైట్ చేయవు, కాబట్టి అనుకూలీకరణలు భద్రపరచబడతాయి. మళ్లీ రూపొందించడానికి, తిరిగి అమలు చేసే ముందు `.env`ను తొలగించండి. ### Docker Compose ప్రొఫైల్లు మరియు Caddy HTTPSతో సహా పూర్తి Docker సెటప్ కోసం [Docker గైడ్](./DOCKER_GUIDE.md) చూడండి. ### డెస్క్టాప్ యాప్ (Electron) OmniRoute, Electron 41 + electron-builder 26.10పై నిర్మించిన డెస్క్టాప్ ర్యాపర్తో వస్తుంది. అందుబాటులో ఉన్న స్క్రిప్ట్లు (వర్క్స్పేస్ రూట్): ```bash npm run electron:dev # హాట్-రీలోడ్తో డెస్క్టాప్ను అమలు చేయండి npm run electron:build # ప్రస్తుత OS కోసం బిల్డ్ చేయండి (స్వయంచాలకంగా గుర్తించబడుతుంది) npm run electron:build:win # Windows ఇన్స్టాలర్ (NSIS + పోర్టబుల్) npm run electron:build:mac # macOS (dmg + zip, arm64+x64) npm run electron:build:linux # Linux (AppImage + deb + rpm) npm run electron:smoke:packaged # ప్యాకేజ్ చేసిన బిల్డ్ను స్మోక్-టెస్ట్ చేయండి ``` డెస్క్టాప్ ఇన్స్టాలర్ల విడుదలలు GitHub Releasesకు జోడించబడతాయి. పూర్తి Electron వివరణాత్మక సమాచారం (సైనింగ్, IPC బ్రిడ్జ్, డిస్ట్రోలు) కోసం, [`ELECTRON_GUIDE.md`](./ELECTRON_GUIDE.md) చూడండి _(తరువాతి దశలో సృష్టించబడింది)_. ### హెడ్లెస్ సర్వర్ (CI/ఆటోమేషన్) పర్యవేక్షణ అవసరం లేని సెటప్ల కోసం (Docker, Kubernetes, CI), వీటిని ఉపయోగించండి: ```bash omniroute setup --non-interactive omniroute providers test-batch ``` env varsతో (`INITIAL_PASSWORD`, `OMNIROUTE_WS_BRIDGE_SECRET`, మొదలైనవి) కలిపి ఉపయోగించడం ద్వారా, పూర్తిగా స్క్రిప్ట్ చేయగల OmniRoute ఇన్స్టాన్స్ను ప్రారంభించవచ్చు. ### CLI ఎంపికలు | కమాండ్ | వివరణ | | ----------------------- | --------------------------------------------------------------------------------------------------------------- | | `omniroute` | సర్వర్ను ప్రారంభించండి (`PORT=20128`, API మరియు డాష్బోర్డ్ ఒకే పోర్ట్లో) | | `omniroute setup` | పాస్వర్డ్ మరియు మొదటి ప్రొవైడర్ కోసం మార్గదర్శిత CLI ఆన్బోర్డింగ్ | | `omniroute doctor` | సర్వర్ను ప్రారంభించకుండా స్థానిక ఆరోగ్య తనిఖీలను అమలు చేయండి | | `omniroute providers` | CLI నుండి ప్రొవైడర్లను కనుగొనండి, జాబితా చేయండి, ధ్రువీకరించండి మరియు పరీక్షించండి | | `omniroute config` | CLI సాధనం కాన్ఫిగరేషన్ — కాన్ఫిగ్లను జాబితా చేయండి, పొందండి, సెట్ చేయండి, ధ్రువీకరించండి | | `omniroute status` | ఆఫ్లైన్ స్థితి డాష్బోర్డ్ — వెర్షన్, DB, సాధనాలు, కాన్ఫిగ్ | | `omniroute logs` | API నుండి వినియోగ లాగ్లను స్ట్రీమ్ చేయండి (`--follow`కు మద్దతు ఉంది) | | `omniroute update` | OmniRoute అప్డేట్ల కోసం తనిఖీ చేయండి లేదా వాటిని వర్తింపజేయండి | | `omniroute provider` | ప్రొవైడర్ కనెక్షన్లను నిర్వహించండి — జోడించండి, జాబితా చేయండి, తొలగించండి, పరీక్షించండి, డిఫాల్ట్గా సెట్ చేయండి | | `omniroute --port 3000` | ప్రామాణిక/API పోర్ట్ను 3000కు సెట్ చేయండి | | `omniroute --mcp` | MCP సర్వర్ను ప్రారంభించండి (stdio ట్రాన్స్పోర్ట్) | | `omniroute --no-open` | బ్రౌజర్ను స్వయంచాలకంగా తెరవవద్దు | | `omniroute --help` | సహాయాన్ని చూపండి | హెడ్లెస్ సెటప్ను ఫ్లాగ్లు లేదా ఎన్విరాన్మెంట్ వేరియబుల్లతో స్క్రిప్ట్ చేయవచ్చు: ```bash omniroute setup --non-interactive --password "$OMNIROUTE_PASSWORD" omniroute setup --non-interactive --add-provider --provider openai --api-key "$OPENAI_API_KEY" omniroute setup --non-interactive --add-provider --provider openai --api-key "$OPENAI_API_KEY" --test-provider ``` డాష్బోర్డ్ను తెరవకుండా స్థానిక డయాగ్నస్టిక్లను అమలు చేయండి: ```bash omniroute doctor omniroute doctor --json omniroute doctor --no-liveness ``` డాష్బోర్డ్ను తెరవకుండా SSH లేదా స్క్రిప్ట్ల నుండి ప్రొవైడర్లను నిర్వహించండి: ```bash omniroute providers available omniroute providers available --search openai omniroute providers available --category api-key omniroute providers list omniroute providers test omniroute providers test-all omniroute providers validate ``` --- ## CLI సాధనం కాన్ఫిగరేషన్ ### 1) ప్రొవైడర్లను కనెక్ట్ చేసి API కీని సృష్టించండి 1. Dashboard → `Providers` తెరిచి, కనీసం ఒక ప్రొవైడర్ను (OAuth లేదా API కీ) కనెక్ట్ చేయండి. 2. Dashboard → `Endpoints` తెరిచి, ఒక API కీని సృష్టించండి. 3. (ఐచ్ఛికం) Dashboard → `Combos` తెరిచి, మీ ఫాల్బ్యాక్ చైన్ను సెట్ చేయండి. ### 2) మీ కోడింగ్ సాధనాన్ని సూచించండి ```txt బేస్ URL: http://localhost:20128/v1 API కీ: [Endpoint పేజీ నుండి కాపీ చేయండి] మోడల్: if/qwen3.8-max-preview (లేదా ఏదైనా ప్రొవైడర్/మోడల్ ప్రిఫిక్స్) ``` మీ ఎడిటర్ `Authorization: Bearer ...`ను పంపలేకపోతే, బదులుగా టోకెనైజ్డ్ అనుకూలత బేస్ను ఉపయోగించండి: ```txt బేస్ URL: http://localhost:20128/api/v1/vscode/YOUR_KEY/ మోడల్స్ URL: http://localhost:20128/api/v1/vscode/YOUR_KEY/models చాట్ URL: http://localhost:20128/api/v1/vscode/YOUR_KEY/chat/completions Ollama ట్యాగ్స్ URL: http://localhost:20128/api/v1/vscode/YOUR_KEY/api/tags ``` ఇది Claude Code, Codex CLI, Cursor, Cline, OpenClaw, OpenCode మరియు OpenAI-అనుకూల SDKలతో పనిచేస్తుంది. #### `setup-*`తో స్వయంచాలకంగా కాన్ఫిగర్ చేయండి బేస్ URL మరియు కీని చేతితో పేస్ట్ చేయడానికి బదులుగా, ప్రత్యక్ష మోడల్ కేటలాగ్ నుండి ప్రతి సాధనానికి సంబంధించిన సొంత కాన్ఫిగ్ను OmniRoute వ్రాయనివ్వండి. ఒక్కో సాధనానికి ఒక్క కమాండ్: ```bash omniroute setup-codex # ~/.codex/.config.toml ప్రొఫైల్లు omniroute setup-claude # ~/.claude/profiles//settings.json omniroute setup-opencode # ~/.config/opencode/opencode.json (openai-అనుకూలం) omniroute setup-cline # Cline CLI + VS Code ఎక్స్టెన్షన్ సెట్టింగ్లు omniroute setup-kilo # Kilo Code omniroute setup-continue # ~/.continue/config.yaml (Continue / cn) omniroute setup-cursor # Cursor యాప్లోని దశలను ముద్రిస్తుంది omniroute setup-roo # Roo Code దిగుమతి + autoImport పాయింటర్ omniroute setup-crush # ~/.config/crush/crush.json omniroute setup-goose # ~/.config/goose/config.yaml omniroute setup-aider # ~/.aider.conf.yml omniroute setup-qwen # ~/.qwen/settings.json + ~/.qwen/.env ``` ఒక స్థానిక సాధనాన్ని **రిమోట్** OmniRouteకు వ్యతిరేకంగా కాన్ఫిగర్ చేయడానికి ప్రతి కమాండ్ `--remote --api-key `ను, అలాగే ప్రివ్యూ కోసం `--dry-run`ను అంగీకరిస్తుంది. సరైన envను ఇంజెక్ట్ చేసి, ఎటువంటి కాన్ఫిగ్నూ వ్రాయకుండా CLIని ప్రారంభించడానికి, సాధారణ లాంచర్ `omniroute run `ను (claude, codex, aider, goose, opencode, qwen, gemini) ఉపయోగించండి; పాత ఒక్కో-సాధన లాంచర్లు `omniroute launch` (Claude Code) మరియు `omniroute launch-codex` (Codex) ఇప్పటికీ అందుబాటులో ఉన్నాయి. పూర్తి పట్టిక కోసం (ప్రతి కమాండ్ ఏమి వ్రాస్తుంది, ప్రతి ఫ్లాగ్, లోకల్ vs రిమోట్, బేస్-URL `/v1` నియమాలు), **[CLI ఇంటిగ్రేషన్లు](./CLI-INTEGRATIONS.md)** చూడండి. ప్రతి సాధనానికి సంబంధించిన వివరణాత్మక కాన్ఫిగరేషన్ కోసం (Claude Code, Codex CLI, Cursor, Cline, OpenClaw, Kilo Code, Copilot మరియు మరిన్ని), ప్రత్యేక **[CLI సాధనాల గైడ్](../reference/CLI-TOOLS.md)** చూడండి. --- ## ప్రోటోకాల్ సెటప్ (MCP + A2A) ### MCP సెటప్ (Model Context Protocol) stdio మోడ్లో MCP ట్రాన్స్పోర్ట్ను ప్రారంభించండి: ```bash omniroute --mcp ``` సిఫార్సు చేసిన ధ్రువీకరణ ప్రక్రియ: ```bash # 1. MCP సర్వర్ను ప్రారంభించండి omniroute --mcp # 2. మీ MCP క్లయింట్ నుండి, వీటిని కాల్ చేయండి: omniroute_get_health # సిస్టమ్ ఆరోగ్య స్థితిని తిరిగి ఇవ్వాలి omniroute_list_combos # సక్రియ కాంబోలను తిరిగి ఇవ్వాలి # 3. లేదా పూర్తి E2E సూట్ను అమలు చేయండి: npm run test:protocols:e2e ``` #### MCP క్లయింట్ కాన్ఫిగరేషన్ **Claude Code:** ```bash claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream ``` **Cursor / Cline:** మీ MCP సెట్టింగ్లకు జోడించండి: ```json { "mcpServers": { "omniroute": { "command": "omniroute", "args": ["--mcp"], "env": {} } } } ``` **పూర్తి MCP డాక్యుమెంటేషన్:** [MCP Server README](../../open-sse/mcp-server/README.md) — 110 సాధనాలు, IDE కాన్ఫిగ్లు, Python/TS/Go క్లయింట్లు. ### A2A సెటప్ (Agent-to-Agent Protocol) Agent Cardను ధ్రువీకరించండి: ```bash curl http://localhost:20128/.well-known/agent.json ``` ఒక టాస్క్ను పంపండి: ```bash curl -X POST http://localhost:20128/a2a \ -H 'content-type: application/json' \ -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"నాకు సంక్షిప్త కోటా సారాంశాన్ని ఇవ్వండి."}]}}' ``` **పూర్తి A2A డాక్యుమెంటేషన్:** [A2A Server README](../../src/lib/a2a/README.md) — JSON-RPC 2.0, నైపుణ్యాలు, స్ట్రీమింగ్, టాస్క్ జీవితచక్రం. --- ## టైమ్అవుట్ కాన్ఫిగరేషన్ ### ప్రాథమిక టైమ్అవుట్లు చాలా డిప్లాయ్మెంట్లకు, మీకు ఈ రెండు వేరియబుల్స్ మాత్రమే అవసరం: | వేరియబుల్ | డిఫాల్ట్ | ఉద్దేశ్యం | | ------------------------ | ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `REQUEST_TIMEOUT_MS` | `600000` | అప్స్ట్రీమ్ రెస్పాన్స్ ప్రారంభ టైమ్అవుట్, అంతర్గత Undici టైమ్అవుట్లు, TLS ఫింగర్ప్రింట్ అభ్యర్థనలు మరియు API బ్రిడ్జ్ అభ్యర్థన/ప్రాక్సీ టైమ్అవుట్ల కోసం ఉమ్మడి ప్రాథమిక విలువ | | `STREAM_IDLE_TIMEOUT_MS` | `REQUEST_TIMEOUT_MS` నుంచి స్వీకరిస్తుంది | OmniRoute SSE స్ట్రీమ్ను నిలిపివేయడానికి ముందు స్ట్రీమింగ్ చంక్ల మధ్య అనుమతించే గరిష్ఠ విరామం | వెనుకబడిన అనుకూలత కొనసాగించబడుతుంది: ఇప్పటికే ఉన్న `FETCH_TIMEOUT_MS`, `API_BRIDGE_PROXY_TIMEOUT_MS` మరియు ఇతర ప్రతి-లేయర్ టైమ్అవుట్ వేరియబుల్స్ ఇప్పటికీ పని చేస్తాయి మరియు ఉమ్మడి ప్రాథమిక విలువను ఓవర్రైడ్ చేస్తాయి. ### ప్రొవైడర్-నిర్దిష్ట గమనికలు Claude Code-అనుకూల అప్స్ట్రీమ్ల (`anthropic-compatible-cc-*`) కోసం, ప్రొవైడర్ వైపు రీడ్ టైమ్అవుట్లు మీ env కాన్ఫిగరేషన్తో సమలేఖనంగా ఉండేలా, పరిష్కరించబడిన ఫెచ్ టైమ్అవుట్ నుంచి అవుట్బౌండ్ `X-Stainless-Timeout` హెడర్ను OmniRoute ఉత్పన్నం చేస్తుంది. థర్డ్-పార్టీ Claude Code-అనుకూల రివర్స్ ప్రాక్సీల కోసం, OmniRoute డిఫాల్ట్ `anthropic-beta` సెట్ను పరిమితంగా ఉంచుతుంది మరియు `Client Cache Control`ను `Auto`లో ఉంచినప్పుడు, క్లయింట్ అందించిన `cache_control` మార్కర్లను మాత్రమే ఫార్వర్డ్ చేస్తుంది. అప్స్ట్రీమ్కు ప్రత్యేకంగా రిడాక్ట్ చేయబడిన Claude థింకింగ్ స్ట్రీమ్లు అవసరమైనప్పుడు మాత్రమే, ప్రతి కనెక్షన్కు సంబంధించిన "Enable redact-thinking beta" టాగుల్ను ప్రారంభించండి. ### అధునాతన టైమ్అవుట్ ఓవర్రైడ్లు | వేరియబుల్ | డిఫాల్ట్ | ఉద్దేశ్యం | | ---------------------------------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------- | | `FETCH_TIMEOUT_MS` | `REQUEST_TIMEOUT_MS` నుంచి స్వీకరిస్తుంది | రెస్పాన్స్ హెడర్లు వచ్చే వరకు ఉపయోగించే అప్స్ట్రీమ్ రెస్పాన్స్ ప్రారంభ టైమ్అవుట్ | | `FETCH_HEADERS_TIMEOUT_MS` | `FETCH_TIMEOUT_MS` నుంచి స్వీకరిస్తుంది | అప్స్ట్రీమ్ రెస్పాన్స్ హెడర్లను స్వీకరించడానికి Undici సమయ పరిమితి | | `FETCH_BODY_TIMEOUT_MS` | `FETCH_TIMEOUT_MS` నుంచి స్వీకరిస్తుంది | అప్స్ట్రీమ్ బాడీ చంక్ల మధ్య Undici సమయ పరిమితి (`0` దీన్ని నిలిపివేస్తుంది) | | `FETCH_CONNECT_TIMEOUT_MS` | `30000` | Undici TCP కనెక్ట్ టైమ్అవుట్ | | `FETCH_KEEPALIVE_TIMEOUT_MS` | `4000` | Undici నిష్క్రియ keep-alive సాకెట్ టైమ్అవుట్ | | `TLS_CLIENT_TIMEOUT_MS` | `FETCH_TIMEOUT_MS` నుంచి స్వీకరిస్తుంది | `wreq-js` ద్వారా చేసే TLS ఫింగర్ప్రింట్ అభ్యర్థనల టైమ్అవుట్ | | `API_BRIDGE_PROXY_TIMEOUT_MS` | `REQUEST_TIMEOUT_MS` లేదా `600000` నుంచి స్వీకరిస్తుంది | API పోర్ట్ నుంచి డ్యాష్బోర్డ్ పోర్ట్కు `/v1` ప్రాక్సీ ఫార్వార్డింగ్ కోసం టైమ్అవుట్ | | `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | `max(API_BRIDGE_PROXY_TIMEOUT_MS, 300000)` | API బ్రిడ్జ్ సర్వర్పై ఇన్కమింగ్ అభ్యర్థన టైమ్అవుట్ | | `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | `60000` | API బ్రిడ్జ్ సర్వర్పై ఇన్కమింగ్ హెడర్ టైమ్అవుట్ | | `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | `5000` | API బ్రిడ్జ్ సర్వర్పై keep-alive టైమ్అవుట్ | | `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | API బ్రిడ్జ్ సర్వర్పై సాకెట్ నిష్క్రియ టైమ్అవుట్ (`0` దీన్ని నిలిపివేస్తుంది) | > **గమనిక:** స్ట్రీమింగ్ అభ్యర్థనల కోసం, `FETCH_TIMEOUT_MS` కనెక్షన్ సెటప్ / మొదటి అప్స్ట్రీమ్ రెస్పాన్స్ కోసం వేచి ఉండడాన్ని మాత్రమే కవర్ చేస్తుంది. స్ట్రీమ్ సక్రియమైన తర్వాత, వాస్తవంగా నిలిచిపోవడం (`STREAM_IDLE_TIMEOUT_MS`) లేదా Undici బాడీ నిష్క్రియత (`FETCH_BODY_TIMEOUT_MS`) సంభవించినప్పుడు మాత్రమే OmniRoute దాన్ని నిలిపివేస్తుంది. ### రివర్స్ ప్రాక్సీ అనుకూలత మీరు Nginx, Caddy, Cloudflare లేదా మరొక రివర్స్ ప్రాక్సీ వెనుక OmniRouteను అమలు చేస్తే, ప్రాక్సీ టైమ్అవుట్లు కూడా మీ OmniRoute స్ట్రీమ్/ఫెచ్ టైమ్అవుట్ల కంటే ఎక్కువగా ఉండేలా చూసుకోండి. --- ## స్ప్లిట్-పోర్ట్ మోడ్ అధునాతన సందర్భాల కోసం (రివర్స్ ప్రాక్సీ, కంటైనర్ నెట్వర్కింగ్) API మరియు Dashboardను వేర్వేరు పోర్ట్లలో అమలు చేయండి: ```bash PORT=20128 DASHBOARD_PORT=20129 omniroute # API: http://localhost:20128/v1 # Dashboard: http://localhost:20129 ``` --- ## Void Linux (xbps-src) టెంప్లేట్ Void Linux వినియోగదారులు `xbps-src` ఉపయోగించి స్థానిక ప్యాకేజీని బిల్డ్ చేయవచ్చు. ఈ బ్లాక్ను `srcpkgs/omniroute/template`గా సేవ్ చేయండి: ```bash # 'omniroute' కోసం టెంప్లేట్ ఫైల్ pkgname=omniroute version=3.8.0 revision=1 hostmakedepends="nodejs python3 make" depends="openssl" short_desc="Universal AI gateway with smart routing for multiple LLM providers" maintainer="zenobit " license="MIT" homepage="https://github.com/diegosouzapw/OmniRoute" distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" # ప్రతి విడుదల కోసం దీనితో చెక్సమ్ను మళ్లీ రూపొందించండి: # curl -L -o /tmp/omniroute.tar.gz "https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" && sha256sum /tmp/omniroute.tar.gz checksum=PLACEHOLDER_REGENERATE_PER_RELEASE system_accounts="_omniroute" omniroute_homedir="/var/lib/omniroute" export NODE_ENV=production export npm_config_engine_strict=false export npm_config_loglevel=error export npm_config_fund=false export npm_config_audit=false do_build() { local _gyp_arch case "$XBPS_TARGET_MACHINE" in aarch64*) _gyp_arch=arm64 ;; armv7*|armv6*) _gyp_arch=arm ;; i686*) _gyp_arch=ia32 ;; *) _gyp_arch=x64 ;; esac NODE_ENV=development npm ci --ignore-scripts npm run build cp -r .next/static .next/standalone/.next/static [ -d public ] && cp -r public .next/standalone/public || true local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch") local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release mkdir -p "$_bs3_release" cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/" rm -rf .next/standalone/node_modules/@img for _mod in pino-abstract-transport split2 process-warning; do cp -r "node_modules/$_mod" .next/standalone/node_modules/ done } do_check() { npm run test:unit } do_install() { vmkdir usr/lib/omniroute/.next vcopy .next/standalone/. usr/lib/omniroute/.next/standalone for _d in \ .next/standalone/.next/server/app/dashboard \ .next/standalone/.next/server/app/dashboard/settings \ .next/standalone/.next/server/app/dashboard/providers; do touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" done cat > "${WRKDIR}/omniroute" <<'EOF' #!/bin/sh export PORT="${PORT:-20128}" export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" export APP_LOG_TO_FILE="${APP_LOG_TO_FILE:-false}" mkdir -p "${DATA_DIR}" exec node /usr/lib/omniroute/.next/standalone/server.js "$@" EOF vbin "${WRKDIR}/omniroute" } post_install() { vlicense LICENSE } ``` --- ## అన్ఇన్స్టాల్ చేయడం | కమాండ్ | చర్య | | ------------------------ | ----------------------------------------------------------------------------------------------------- | | `npm run uninstall` | సిస్టమ్ యాప్ను తొలగిస్తుంది, కానీ `~/.omniroute`లోని **మీ DB మరియు కాన్ఫిగరేషన్లను అలాగే ఉంచుతుంది**. | | `npm run uninstall:full` | యాప్ను తొలగించడంతో పాటు **అన్ని కాన్ఫిగరేషన్లు, కీలు మరియు డేటాబేస్లను శాశ్వతంగా తొలగిస్తుంది**. | > అన్ని పద్ధతులకు సంబంధించిన వివరణాత్మక అన్ఇన్స్టాల్ సూచనల కోసం [UNINSTALL.md](./UNINSTALL.md) చూడండి.