当前你家常用AI常用器 是 AI Skill Hub 本期精选AI工具之一。综合评分 7.5 分,整体质量较高。我们推荐使用将其纳入你的 AI 工具库,帮助提升工作效率。
当前你家常用AI常用器。常用一个系统给管球的常用器。常用一个系统给管球的常用器。
当前你家常用AI常用器 是一款基于 Go 开发的开源工具,专注于 installable、ai、ai-tools 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
当前你家常用AI常用器。常用一个系统给管球的常用器。常用一个系统给管球的常用器。
当前你家常用AI常用器 是一款基于 Go 开发的开源工具,专注于 installable、ai、ai-tools 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
# 方式一:go install(推荐) go install github.com/hugalafutro/model-hotel@latest # 方式二:从源码编译 git clone https://github.com/hugalafutro/model-hotel cd model-hotel go build -o model-hotel . # 方式三:下载预编译二进制 # 访问 Releases 页面下载对应平台二进制文件 # https://github.com/hugalafutro/model-hotel/releases
# 查看帮助 model-hotel --help # 基本运行 model-hotel [options] <input> # 详细使用说明请查阅文档 # https://github.com/hugalafutro/model-hotel
# model-hotel 配置说明 # 查看配置选项 model-hotel --config-example > config.yml # 常见配置项 # output_dir: ./output # log_level: info # workers: 4 # 环境变量(覆盖配置文件) export MODEL_HOTEL_CONFIG="/path/to/config.yml"
<p align="center"> <img src="docs/logo.svg" alt="Model Hotel"><br> <em>"Because we have LiteLLM at home"</em> </p> <br>
<p align="center"><strong>Multi-Provider AI Gateway</strong></p>
<p align="center"> <a href="/actions/workflows/ci.yml"><img src="https://github.com/hugalafutro/model-hotel/actions/workflows/ci.yml/badge.svg" alt="CI"></a> <a href="go.mod"><img src="https://img.shields.io/github/go-mod/go-version/hugalafutro/model-hotel" alt="Go Version"></a> <a href="https://goreportcard.com/report/github.com/hugalafutro/model-hotel"><img src="https://goreportcard.com/badge/github.com/hugalafutro/model-hotel" alt="Go Report"></a> <a href="https://codecov.io/github/hugalafutro/model-hotel"><img src="https://codecov.io/github/hugalafutro/model-hotel/branch/master/graph/badge.svg" alt="Coverage"></a> <a href="https://hub.docker.com/r/hugalafutro/model-hotel"> <img src="https://img.shields.io/docker/pulls/hugalafutro/model-hotel.svg" alt="Docker Pulls"> </a> <br> <img src="https://img.shields.io/badge/Go-00ADD8?logo=go&logoColor=white" alt="Go"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white" alt="TypeScript"> <img src="https://img.shields.io/badge/React-61DAFB?logo=react&logoColor=black" alt="React"> <img src="https://img.shields.io/badge/PostgreSQL-4169E1?logo=postgresql&logoColor=white" alt="PostgreSQL"> <img src="https://img.shields.io/badge/Docker-2496ED?logo=docker&logoColor=white" alt="Docker"> </p>
AI-Assisted Project Disclaimer:<br>Human judgment applied at every stage, particularly around architectural decisions, UX flows, and quality control.<br>
Made in CodeNomad with OpenCode.<br>From around version 0.4 the app was used as opencode model provider for its own development.
<details> <summary>📊 opencode stats (click to expand)</summary>
┌────────────────────────────────────────────────────────┐
│ OVERVIEW │
├────────────────────────────────────────────────────────┤
│Sessions 2,038 │
│Messages 74,164 │
│Days 38 │
└────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────┐
│ COST & TOKENS │
├────────────────────────────────────────────────────────┤
│Total Cost $112.90 │
│Avg Cost/Day $2.97 │
│Avg Tokens/Session 2.8M │
│Median Tokens/Session 585.8K │
│Input 2695.8M │
│Output 18.8M │
│Cache Read 3026.4M │
│Cache Write 4.1M │
└────────────────────────────────────────────────────────┘ </details>
<a href="https://github.com/aovestdipaperino/tokensave"><a><br><br> Meet the oh-my-opencode-slim team:<br><br><img src="https://img.shields.io/badge/GLM_5.1-orchestrator,%20council,%20commit%20review-8B5CF6?style=flat" alt="GLM 5.1"> <img src="https://img.shields.io/badge/Kimi_K2.6-designer-06B6D4?style=flat" alt="Kimi K2.6"> <img src="https://img.shields.io/badge/DeepSeek_V4_Pro-oracle,%20council-E53E3E?style=flat" alt="DeepSeek V4 Pro"> <img src="https://img.shields.io/badge/Qwen3_Coder_480B-council-F59E0B?style=flat" alt="Qwen3 Coder"><br><img src="https://img.shields.io/badge/Qwen3.5_397B-fixer-F59E0B?style=flat" alt="Qwen3.5 397B"> <img src="https://img.shields.io/badge/DeepSeek_V4_Pro-librarian-E53E3E?style=flat" alt="DeepSeek V4 Pro"> <img src="https://img.shields.io/badge/Gemini_3_Flash-observer-4285F4?style=flat" alt="Gemini 3 Flash"><br><br><img src="https://img.shields.io/badge/Claude_Opus_4.7-code%20review-D97706?style=flat" alt="Claude Opus 4.7"> <img src="https://img.shields.io/badge/Grok_4.3-code_review-FF4500?style=flat" alt="Grok 4.3"><br> </div><br>
A single OpenAI-compatible endpoint that sits in front of all your LLM providers. Models are auto-discovered the moment you add a provider and optionally on schedule; failover groups form automatically around shared model names and retry transparently when a provider goes down; no prompt data is ever stored.

| Requirement | Details |
|---|---|
| **MASTER_KEY must match** | Provider API keys are AES-256-GCM encrypted using a key derived from MASTER_KEY via Argon2id. Restoring with a different MASTER_KEY will leave all provider keys unrecoverable. The app will start, but key decryption will fail. |
| **Admin token is not in the backup** | The admin token hash lives in DATA_DIR/admin-token on the filesystem, not in the database. If that file is lost, a new token is auto-generated on next boot. Check startup logs for the new token. |
| **Virtual keys are irrecoverable** | Virtual keys are stored as SHA-256 hashes only. Plaintext virtual keys are never persisted. If you lose the plaintext keys, they cannot be recovered from the backup (by design). |
No git clone needed. Create two files and go:
1. Create .env with your secrets:
```bash
docker exec -i postgres-container pg_restore --clean --if-exists -U user -d dbname < backup_file.dump ```
git clone <repository-url>
cd model-hotel
cp .env.example .env
nano .env # set a strong MASTER_KEY and POSTGRES_PASSWORD
docker compose -f docker-compose.yml -f compose.dev.yml up --build -d
For development, use the dev compose override: docker compose -f docker-compose.yml -f compose.dev.yml up -d. To use the prebuilt image instead of building from source, edit docker-compose.yml: comment out build: . and uncomment the image: line.
The admin token is displayed once in the logs on first run and will never be shown again:
docker compose -f docker-compose.yml -f compose.dev.yml logs app | grep "ADMIN_TOKEN="
If you lose the token, delete .data/admin-token and restart to generate a new one.
You can also set a fixed admin token via the ADMIN_TOKEN environment variable.
Open http://localhost:8081, log in with that token, add your first provider, and start proxying.
[!TIP] The admin token appears only once in the logs on first run. If you lose it, delete.data/admin-tokenand restart to generate a new one, or set a fixed token via theADMIN_TOKENenv var.
Security: The Docker socket is disabled by default indocker-compose.yml(production). Thecompose.dev.ymloverride enables it for local development. Only use the dev override in trusted environments.
```bash
A live SSE event bus delivers toast notifications for discovery outcomes, model disabling events, token counting errors, circuit breaker state transitions, and stale-request alerts straight to the dashboard. Failover retries during proxying are logged but not pushed as SSE events. The sidebar polls system stats every 10 seconds, showing CPU, memory, disk I/O, and network throughput with color-coded warnings (orange at 75%, red at 90%). When running under Docker Compose, stats are aggregated across containers; otherwise, cgroup metrics are used. Goroutine count, database health (size, connections, cache hit ratio), API uptime, and process count are also displayed.

MASTER_KEY=<your-master-key> POSTGRES_PASSWORD=<your-postgres-password> ADMIN_TOKEN=
**2.** Create `docker-compose.yml`:
<details>
<summary>docker-compose.yml (click to expand, then copy)</summary>
yaml name: model-hotel services: app: # Build from source (default): build: context: . args: VERSION: ${VERSION:-dev} # Prebuilt images (uncomment 1 image according to registry preference, comment out build above): # image: ghcr.io/hugalafutro/model-hotel:latest # image: hugalafutro/model-hotel:latest ports: - "${HOST_PORT:-8081}:8080" environment: - MASTER_KEY=${MASTER_KEY:?MASTER_KEY must be set in .env} - POSTGRES_USER=${POSTGRES_USER:-modelhotel} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD must be set in .env} - POSTGRES_HOST=db - POSTGRES_DB=${POSTGRES_DB:-modelhotel} - ADMIN_TOKEN=${ADMIN_TOKEN:-} - ALLOW_HTTP_PROVIDERS=false - DATA_DIR=/data - RATE_LIMIT_ENABLED=true - DEBUG_LOG=false - CORS_ORIGINS=http://localhost:5173,http://localhost:${HOST_PORT:-8081} - ALLOWED_PROVIDER_HOSTS= volumes: - ./.data:/data # Docker socket (disabled by default for security). # Enable to show container-level stats in the sidebar (CPU, memory per container). # ⚠️ Granting Docker socket access allows the container to control the Docker daemon. # Only enable if you trust the deployment environment. # - /var/run/docker.sock:/var/run/docker.sock:ro restart: unless-stopped depends_on: db: condition: service_healthy db: image: postgres:16-alpine command: ["postgres", "-c", "log_min_error_statement=panic", "-c", "log_min_messages=error", "-c", "log_checkpoints=off"] environment: - POSTGRES_USER=${POSTGRES_USER:-modelhotel} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD must be set in .env} - POSTGRES_DB=${POSTGRES_DB:-modelhotel} volumes: - ./.data/pgdata:/var/lib/postgresql/data ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-modelhotel}"] interval: 5s timeout: 5s retries: 5
</details>
**3.** Deploy:
bash docker compose -f docker-compose.yml -f compose.dev.yml up --build -d ```
Note: Thedocker-compose.ymlcontent above is the production compose (auto-synced by a GitHub Action). For development, layer thecompose.dev.ymloverride:docker compose -f docker-compose.yml -f compose.dev.yml up -d. If you want the prebuilt image instead of building from source, uncomment theimage:line and comment outbuild: .in the compose file.
Add any OpenAI-compatible provider (Anthropic, DeepSeek, KoboldCPP, LMStudio, NanoGPT, OpenRouter, Z.AI, x.ai, Google AI Studio, Cohere, Ollama, Ollama Cloud, OpenCode Go, OpenCode Zen, OpenAI, or your own), and call them all through the same /v1/chat/completions endpoint. The proxy handles model ID mapping and failover transparently. Provider API keys are encrypted with AES-256-GCM at rest using your MASTER_KEY; only the proxy ever sees the decrypted credentials. Keyless providers (e.g. OpenCode Zen free models, local Ollama) are also supported (no API key required).

The dashboard includes a built-in Chat interface for testing models interactively, with support for system personas (presets or custom prompts), generation parameters (temperature, top_p, max_tokens, min_p, top_k, frequency/presence penalties), and streaming responses with collapsible thinking-block rendering. Vision-capable models show an image upload button: attach a photo for the model to describe or analyze. Audio-capable models show an audio upload button for sending audio input. Attachments are sent as OpenAI-compatible multimodal content parts (image_url, input_audio). Switch to Conversation mode to watch two models talk to each other: enter a starter prompt, set the number of rounds and optional delay between turns, and observe the back-and-forth with per-message metrics (duration, tokens, chars/sec).

Arena mode offers two sub-modes: Competition runs bracket tournaments where models face off in pairwise matchups. Vote for winners, and the bracket auto-advances to the next round until a champion emerges. Compare places two or more models in a grid with the same prompt for parallel evaluation, with per-slot personas and voting. Both modes support per-model generation parameters, streaming with thinking-block rendering, and per-response metrics. Past sessions are saved to an arena history modal for review and restoration.

常用AI常用器。常用一个系统给管球的常用器。常用一个系统给管球的常用器。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。
经综合评估,当前你家常用AI常用器 在AI工具赛道中表现稳健,质量良好。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。
| 原始名称 | model-hotel |
| 原始描述 | 开源AI工具:"Because we have LiteLLM at home"。⭐7 · Go |
| Topics | installableaiai-toolsdiscoveryfailoverllmgo |
| GitHub | https://github.com/hugalafutro/model-hotel |
| License | MIT |
| 语言 | Go |
收录时间:2026-05-23 · 更新时间:2026-05-30 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。