# 📖 Setup Guide — OmniRoute (አማርኛ) 🌐 **Languages:** 🇺🇸 [English](../../../../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) · 🇮🇳 [te](../../../te/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`ን ከ`.env.example` በራስ-ሰር ያመነጫል። ተከታይ ጭነቶች ነባር `.env`ን አይተኩም፤ ስለዚህ ብጁ ለውጦች ይጠበቃሉ። እንደገና ለማመንጨት፣ ዳግም ከማስኬድዎ በፊት `.env`ን ይሰርዙ። ### Docker የCompose መገለጫዎችን እና Caddy HTTPSን ጨምሮ ለተሟላ የDocker ማዋቀር [የDocker መመሪያውን](./DOCKER_GUIDE.md) ይመልከቱ። ### የዴስክቶፕ መተግበሪያ (Electron) OmniRoute በElectron 41 + electron-builder 26.10 ላይ የተገነባ የዴስክቶፕ መጠቅለያ ይዞ ይመጣል። የሚገኙ ስክሪፕቶች (የworkspace ሥር)፦ ```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 # የታሸገውን ግንባታ የsmoke ሙከራ ያድርጉ ``` የዴስክቶፕ ጫኞች ልቀቶች ከGitHub Releases ጋር ተያይዘዋል። ስለElectron ዝርዝር መረጃ (ፊርማ፣ IPC bridge፣ ስርጭቶች)፣ [`ELECTRON_GUIDE.md`](./ELECTRON_GUIDE.md)ን ይመልከቱ _(በኋለኛ ደረጃ የተፈጠረ)_። ### ማሳያ አልባ አገልጋይ (CI/አውቶሜሽን) ክትትል ለማያስፈልጋቸው ማዋቀሪያዎች (Docker፣ Kubernetes፣ CI)፣ የሚከተለውን ይጠቀሙ፦ ```bash omniroute setup --non-interactive omniroute providers test-batch ``` ከenv ተለዋዋጮች (`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 Tags URL: http://localhost:20128/api/v1/vscode/YOUR_KEY/api/tags ``` ከClaude Code፣ Codex CLI፣ Cursor፣ Cline፣ OpenClaw፣ OpenCode እና ከOpenAI ጋር ተኳኋኝ ከሆኑ SDKs ጋር ይሠራል። #### `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-zed # ~/.config/zed/settings.json (openai_compatible) 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) አሁንም ይገኛሉ። ሙሉውን ሰንጠረዥ (እያንዳንዱ ትዕዛዝ ምን እንደሚጽፍ፣ ሁሉንም ፍላጎች፣ አካባቢያዊ እና የርቀት ልዩነቶችን፣ የመሠረታዊ-URL `/v1` ስምምነቶችን) ለማየት **[የCLI ውህደቶች](./CLI-INTEGRATIONS.md)**ን ይመልከቱ። ለእያንዳንዱ መሣሪያ ዝርዝር ውቅር (Claude Code፣ Codex CLI፣ Cursor፣ Cline፣ OpenClaw፣ Kilo Code፣ Copilot እና ሌሎችም)፣ ራሱን የቻለውን **[የCLI መሣሪያዎች መመሪያ](../reference/CLI-TOOLS.md)** ይመልከቱ። --- ## ፕሮቶኮል ማዋቀር (MCP + A2A) ### MCP ማዋቀር (ሞዴል አውድ ፕሮቶኮል) MCP መጓጓዣን በስቲዲዮ ሁነታ ይጀምሩ፡- ```bash omniroute --mcp ``` የሚመከር የማረጋገጫ ፍሰት፡ ```bash # 1. Start MCP server omniroute --mcp # 2. From your MCP client, call: omniroute_get_health # Should return system health omniroute_list_combos # Should return active combos # 3. Or run the full E2E suite: npm run test:protocols:e2e ``` #### MCP የደንበኛ ውቅር **Claude ኮድ፡-** ```bash claude mcp add --transport http omniroute http://localhost:20128/api/mcp/stream ``` **Cursor / Cline:** ወደ MCP ቅንጅቶችህ አክል (stdio፣ ከቁልፍ ጋር ጠሪው ዋና እንዲኖረው): ```json { "mcpServers": { "omniroute": { "command": "omniroute", "args": ["--mcp"], "env": { "OMNIROUTE_API_KEY": "your-key", "OMNIROUTE_BASE_URL": "http://localhost:20128" } } } } ``` ወይም፣ `mcpTransport` `streamable-http` ሲሆን (በ `/dashboard/mcp` ላይ ወይም በ `omniroute mcp enable --transport streamable-http` ላይ ያቀናብሩት)፣ የደንበኛውን የርቀት MCP አገልጋይ ግቤት `http://localhost:20128/api/mcp/stream` ላይ ያመልክቱ። ቁልፉ የሚጓዘው እንደ `Authorization: Bearer ` ነው (ለሩቅ አስተናጋጆች [የርቀት መዳረሻን ይመልከቱ MCP Server →](../frameworks/MCP-SERVER.md#remote-access-manage-scope-bypass) ይመልከቱ፣ የርቀት ቁልፍ `mcp:connect` እና read/write scopes ያስፈልገዋል)። **ሙሉ MCP ሰነድ፡-** [MCP አገልጋይ README](../../open-sse/mcp-server/README.md) — 110 መሳሪያዎች፣ IDE ውቅሮች፣ Python/TS/Go ደንበኞች። የኦፕሬተር ማመሳከሪያ ለ መጭመቂያ CCR/dedup መሳሪያዎች (ማርከሮች ፣ ቅድመ ሁኔታዎች ፣ በመሳሪያዎች ወሰኖች ፣ የመልሶ ማግኛ pagination ፣ ዲያግኖስቲክስ): [የማመቂያ ሞተርስ → ቅድመ ሁኔታዎች / ኦፕሬተር መመሪያ](../compression/COMPRESSION_ENGINES.md#prerequisites--operator-guide-ccr--session-dedup). ### A2A ማዋቀር (ከወኪል-ለወኪል ፕሮቶኮል) ወኪል ካርዱን ያረጋግጡ፡- ```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":"Give me a short quota summary."}]}}' ``` **ሙሉ A2A ሰነድ፡-** [A2A አገልጋይ README](../../src/lib/a2a/README.md) — JSON-RPC 2.0፣ ችሎታዎች፣ ዥረቶች፣ የተግባር የሕይወት ዑደት። --- ## የጊዜ ገደብ ውቅር ### መሠረታዊ የጊዜ ገደቦች ለአብዛኛዎቹ ማሰማሪያዎች፣ እነዚህ ሁለት ተለዋዋጮች ብቻ ያስፈልጉዎታል፦ | ተለዋዋጭ | ነባሪ | ዓላማ | | ------------------------ | --------------------------- | -------------------------------------------------------------------------------------------------------------------- | | `REQUEST_TIMEOUT_MS` | `600000` | የላይኛው አገልግሎት ምላሽ-መጀመሪያ ጊዜ ገደብ፣ የተደበቁ Undici ጊዜ ገደቦች፣ TLS fingerprint ጥያቄዎች እና API bridge ጥያቄ/ፕሮክሲ ጊዜ ገደቦች የጋራ መነሻ ዋጋ | | `STREAM_IDLE_TIMEOUT_MS` | `REQUEST_TIMEOUT_MS`ን ይወርሳል | OmniRoute የSSE ዥረቱን ከማቋረጡ በፊት በዥረት ቁርጥራጮች መካከል የሚፈቀደው ከፍተኛው ክፍተት | ከቀድሞ ስሪቶች ጋር ተኳሃኝነት ተጠብቋል፦ ነባር `FETCH_TIMEOUT_MS`፣ `API_BRIDGE_PROXY_TIMEOUT_MS` እና ሌሎች የየደረጃው የጊዜ ገደብ ተለዋዋጮች አሁንም ይሠራሉ፣ እንዲሁም የጋራውን መነሻ ዋጋ ይተካሉ። ### ለአቅራቢዎች የተለዩ ማስታወሻዎች Claude Code-ተኳሃኝ ለሆኑ የላይኛው አገልግሎቶች (`anthropic-compatible-cc-*`)፣ የአቅራቢው ወገን የንባብ ጊዜ ገደቦች ከenv ውቅርዎ ጋር እንዲጣጣሙ፣ OmniRoute የወጪውን `X-Stainless-Timeout` header ከተወሰነው fetch ጊዜ ገደብ ያመነጫል። ከሦስተኛ ወገን Claude Code-ተኳሃኝ reverse proxyዎች ጋር፣ OmniRoute ነባሪውን `anthropic-beta` ስብስብ ጥንቃቄ የተሞላበት እንዲሆን ያደርጋል፤ እንዲሁም `Client Cache Control` በ`Auto` ላይ ሲተው፣ ደንበኛው ያቀረባቸውን `cache_control` ምልክቶች ብቻ ወደፊት ያስተላልፋል። የየግንኙነቱን "Enable redact-thinking beta" መቀያየሪያ የላይኛው አገልግሎት የተደበቁ የClaude አስተሳሰብ ዥረቶችን በተለይ ሲፈልግ ብቻ ያንቁ። ### የላቁ የጊዜ ገደብ መተኪያዎች | ተለዋዋጭ | ነባሪ | ዓላማ | | ---------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------- | | `FETCH_TIMEOUT_MS` | `REQUEST_TIMEOUT_MS`ን ይወርሳል | የምላሽ headerዎች እስኪደርሱ ድረስ ጥቅም ላይ የሚውለው የላይኛው አገልግሎት ምላሽ-መጀመሪያ ጊዜ ገደብ | | `FETCH_HEADERS_TIMEOUT_MS` | `FETCH_TIMEOUT_MS`ን ይወርሳል | የላይኛውን አገልግሎት ምላሽ headerዎች ለመቀበል የUndici ጊዜ ገደብ | | `FETCH_BODY_TIMEOUT_MS` | `FETCH_TIMEOUT_MS`ን ይወርሳል | በላይኛው አገልግሎት body ቁርጥራጮች መካከል ያለው የUndici ጊዜ ገደብ (`0` ያሰናክለዋል) | | `FETCH_CONNECT_TIMEOUT_MS` | `30000` | የUndici TCP ግንኙነት ጊዜ ገደብ | | `FETCH_KEEPALIVE_TIMEOUT_MS` | `4000` | የUndici ሥራ-ፈት keep-alive socket ጊዜ ገደብ | | `TLS_CLIENT_TIMEOUT_MS` | `FETCH_TIMEOUT_MS`ን ይወርሳል | በ`wreq-js` በኩል ለሚደረጉ TLS fingerprint ጥያቄዎች የጊዜ ገደብ | | `API_BRIDGE_PROXY_TIMEOUT_MS` | `REQUEST_TIMEOUT_MS`ን ይወርሳል ወይም `600000` | ከAPI port ወደ dashboard port ለሚደረግ የ`/v1` ፕሮክሲ ማስተላለፍ የጊዜ ገደብ | | `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | `max(API_BRIDGE_PROXY_TIMEOUT_MS, 300000)` | በAPI bridge server ላይ የገቢ ጥያቄ ጊዜ ገደብ | | `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | `60000` | በAPI bridge server ላይ የገቢ header ጊዜ ገደብ | | `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | `5000` | በAPI bridge server ላይ የkeep-alive ጊዜ ገደብ | | `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | በAPI bridge server ላይ የsocket እንቅስቃሴ-አልባነት ጊዜ ገደብ (`0` ያሰናክለዋል) | > **ማስታወሻ፦** ለዥረት ጥያቄዎች፣ `FETCH_TIMEOUT_MS` የግንኙነት ማዋቀርን / የመጀመሪያውን የላይኛው አገልግሎት ምላሽ መጠበቅን ብቻ ይሸፍናል። ዥረቱ ገቢር ከሆነ በኋላ፣ OmniRoute የሚያቋርጠው ትክክለኛ መቆም (`STREAM_IDLE_TIMEOUT_MS`) ወይም የUndici body እንቅስቃሴ-አልባነት (`FETCH_BODY_TIMEOUT_MS`) ሲኖር ብቻ ነው። ### የReverse Proxy ተኳሃኝነት OmniRouteን ከNginx፣ Caddy፣ Cloudflare ወይም ሌላ reverse proxy ጀርባ የሚያስኬዱ ከሆነ፣ የproxy ጊዜ ገደቦችም ከOmniRoute stream/fetch ጊዜ ገደቦችዎ ከፍ ያሉ መሆናቸውን ያረጋግጡ። --- ## የተከፋፈለ-ፖርት ሁነታ ለላቁ ሁኔታዎች (reverse proxy፣ የcontainer አውታረ መረብ) API እና Dashboardን በተለያዩ ፖርቶች ላይ ያስኪዱ፦ ```bash PORT=20128 DASHBOARD_PORT=20129 omniroute # API፦ http://localhost:20128/v1 # Dashboard፦ http://localhost:20129 ``` --- ## ባዶ Linux (xbps-src) አብነት ለVoid Linux ተጠቃሚዎች `xbps-src` በመጠቀም ቤተኛ ጥቅል መገንባት ይችላሉ። ይህን ብሎክ እንደ `srcpkgs/omniroute/template` ያስቀምጡ ```bash # Template file for '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" # Regenerate the checksum for each release with: # 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` | መተግበሪያውን ያስወግዳል፣ እንዲሁም **ሁሉንም ውቅሮች፣ ቁልፎች እና databases በቋሚነት ይሰርዛል**። | > በሁሉም ዘዴዎች ላይ ዝርዝር የማራገፍ መመሪያዎችን ለማግኘት [UNINSTALL.md](./UNINSTALL.md)ን ይመልከቱ።