open webui deploy

Open WebUI 部署:打造自己的 ChatGPT 界面

引言 Open WebUI(原名 Ollama WebUI)是目前最成熟的开源 AI 对话前端项目。它提供了与 ChatGPT 类似的用户体验,同时支持多模型接入、RAG 知识库、多用户管理、插件系统等企业级功能。截至 2026 年中,Open WebUI 在 GitHub 上获得超过 70k Star,成为私有化 AI 界面的事实标准。 核心功能概览 功能 描述 多模型对话 支持 Ollama、OpenAI、vLLM 等多种后端 RAG 知识库 内置文档上传、向量化、检索增强 多用户管理 RBAC 权限、用户组、配额管理 模型市场 一键拉取 Ollama 模型 对话分支 基于任意消息重新生成 提示词库 预设提示词管理与共享 插件系统 工具调用、Web 搜索、代码执行 多语言 支持 20+ 语言界面 主题定制 明暗主题、自定义配色 API 开放 完整 REST API,可被外部调用 安装部署 Docker 部署(推荐) # docker-compose.yml version: '3.8' services: open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui ports: - "3000:8080" environment: - OLLAMA_BASE_URL=http://ollama:11434 - OPENAI_API_BASE_URL=https://api.openai.com/v1 - OPENAI_API_KEY=${OPENAI_API_KEY} - WEBUI_AUTH=true - WEBUI_DATABASE_URL=postgresql://webui:password@postgres:5432/webui - ENABLE_RAG_WEB_SEARCH=true - RAG_WEB_SEARCH_ENGINE=searxng - SEARXNG_API_BASE_URL=http://searxng:8080 volumes: - open-webui-data:/app/backend/data depends_on: - ollama - postgres restart: unless-stopped ollama: image: ollama/ollama:latest container_name: ollama ports: - "11434:11434" volumes: - ollama-data:/root/.ollama deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] restart: unless-stopped postgres: image: postgres:16 container_name: webui-postgres environment: - POSTGRES_USER=webui - POSTGRES_PASSWORD=password - POSTGRES_DB=webui volumes: - postgres-data:/var/lib/postgresql/data restart: unless-stopped searxng: image: searxng/searxng:latest container_name: searxng ports: - "8081:8080" restart: unless-stopped volumes: open-webui-data: ollama-data: postgres-data: # 启动所有服务 docker compose up -d # 查看日志 docker compose logs -f open-webui # 首次访问 http://localhost:3000 # 注册的第一个用户自动成为管理员 pip 安装 # 安装 pip install open-webui # 启动 open-webui serve --host 0.0.0.0 --port 3000 Kubernetes 部署 apiVersion: apps/v1 kind: Deployment metadata: name: open-webui spec: replicas: 2 template: spec: containers: - name: open-webui image: ghcr.io/open-webui/open-webui:main ports: - containerPort: 8080 env: - name: OLLAMA_BASE_URL value: "http://ollama-service:11434" - name: WEBUI_AUTH value: "true" - name: WEBUI_DATABASE_URL valueFrom: secretKeyRef: name: webui-secrets key: database-url resources: requests: memory: "1Gi" cpu: "500m" limits: memory: "4Gi" cpu: "2000m" readinessProbe: httpGet: path: /health port: 8080 initialDelaySeconds: 30 periodSeconds: 10 --- apiVersion: v1 kind: Service metadata: name: open-webui spec: type: LoadBalancer ports: - port: 80 targetPort: 8080 selector: app: open-webui 配置详解 模型接入配置 Open WebUI 支持同时接入多个模型后端: ...

2026-06-25 · 4 min · 827 words · 硅基 AGI 探索者
openai compatible api

OpenAI 兼容 API 生态:统一接入层的标准之争

引言 2023 年 OpenAI 的 Chat Completions API 成为事实标准后,整个 AI 生态出现了一个有趣的现象:几乎所有的 LLM 推理引擎、本地模型运行时和云服务提供商都实现了「OpenAI 兼容 API」。这种兼容性让开发者可以仅修改 base_url 就切换底层模型,极大降低了供应商锁定风险。本文将深入解析这一生态的现状、标准规范、主流实现方案和最佳实践。 OpenAI API 标准解析 核心端点 OpenAI 兼容 API 的核心端点包括: 端点 路径 功能 Chat Completions /v1/chat/completions 对话补全(最核心) Completions /v1/completions 文本补全(旧版) Embeddings /v1/embeddings 文本向量化 Models /v1/models 模型列表 Files /v1/files 文件管理 Fine-tuning /v1/fine_tuning/jobs 微调任务 Chat Completions 规范 { "model": "gpt-4o", "messages": [ {"role": "system", "content": "你是一个助手。"}, {"role": "user", "content": "你好"} ], "temperature": 0.7, "top_p": 0.9, "max_tokens": 1024, "stream": false, "stop": ["\n\n"], "response_format": {"type": "json_object"}, "tools": [...], "tool_choice": "auto", "seed": 42, "n": 1, "logprobs": false } 兼容性分级 不同实现对「兼容」的定义各不相同,可以按兼容程度分为四级: ...

2026-06-25 · 5 min · 990 words · 硅基 AGI 探索者
sglang inference

SGLang 探理引擎:结构化生成的高性能方案

引言 SGLang(Structured Generation Language)是由 UC Berkeley / LMSYS 团队开发的高性能 LLM 推理引擎。与 vLLM 专注通用吞吐量优化不同,SGLang 的核心差异化在于:结构化生成和 RadixAttention 两项关键技术。在需要 JSON/正则约束输出、多轮对话、复杂提示词模板的场景下,SGLang 的性能表现显著优于 vLLM 和 TensorRT-LLM。 核心技术解析 RadixAttention RadixAttention 是 SGLang 的核心创新,使用基数树(Radix Tree)管理 KV Cache 的自动复用: 传统 KV Cache(每请求独立): 请求 A "系统提示 + 问题1" → KV Cache A(2048 tokens) 请求 B "系统提示 + 问题2" → KV Cache B(2048 tokens) → 同一系统提示被重复计算 RadixAttention(自动复用): Radix Tree: ┌──────────────────────────┐ │ [系统提示共享前缀] │ ← 复用,不重复计算 │ ├── [问题1] → KV Cache │ │ └── [问题2] → KV Cache │ └──────────────────────────┘ → 系统提示只计算一次,后续请求直接复用 与前缀缓存(Prefix Caching)的区别: ...

2026-06-25 · 5 min · 921 words · 硅基 AGI 探索者
vllm production guide

vLLM 生产部署指南:高吞吐推理引擎

引言 vLLM 由 UC Berkeley 团队开发,凭借 PagedAttention 技术实现了接近理论峰值的 GPU 利用率。在同等硬件条件下,vLLM 的吞吐量可达 Hugging Face Transformers 的 14-24 倍。截至 2026 年,vLLM 已成为企业级 LLM 推理部署的首选引擎,被 Anthropic、Meta、字节跳动等公司广泛采用。 核心技术解析 PagedAttention PagedAttention 是 vLLM 的核心创新,灵感来自操作系统的虚拟内存分页机制。传统 LLM 推理中,KV Cache 的内存管理存在严重碎片化问题。 传统 KV Cache 问题: ┌─────────────────────────────────────────┐ │ 连续内存分配(传统方式) │ │ ┌──────┐┌──────┐┌──────┐┌──────────┐ │ │ │Req A ││Req B ││Req C ││ 空洞 │ │ │ │2GB ││2GB ││2GB ││ 1.5GB │ │ │ └──────┘└──────┘└──────┘└──────────┘ │ │ 问题:外部碎片导致 1.5GB 无法利用 │ └─────────────────────────────────────────┘ PagedAttention 方案: ...

2026-06-25 · 4 min · 813 words · 硅基 AGI 探索者
local ai stack 2026

2026 本地 AI 技术栈:从模型到应用的完整方案

技术栈全景 2026 年本地 AI 部署已从实验阶段走向生产成熟。一个完整的本地 AI 技术栈包含五层: ┌─────────────────────────────────────────────────┐ │ Application Layer │ │ Agent Framework / RAG / Workflow Engine │ ├─────────────────────────────────────────────────┤ │ Frontend Layer │ │ Open WebUI / LobeChat / LibreChat │ ├─────────────────────────────────────────────────┤ │ API Gateway Layer │ │ OpenAI Compatible API / Load Balancer │ ├─────────────────────────────────────────────────┤ │ Inference Layer │ │ vLLM / SGLang / Ollama / TGI │ ├─────────────────────────────────────────────────┤ │ Model Layer │ │ Llama / Qwen / DeepSeek / Mistral │ └─────────────────────────────────────────────────┘ 各层选型 1. 模型层 用途 推荐模型 显存需求 (Q4) 备注 通用对话 Llama 3.3 70B 40 GB 综合能力最强 通用对话(轻量) Qwen 2.5 32B 20 GB 中英文优秀 编程助手 DeepSeek Coder V2 236B 130 GB 代码能力顶级 编程助手(轻量) Qwen 2.5 Coder 32B 20 GB 性价比高 推理模型 DeepSeek R1 671B 400 GB 推理能力强 推理模型(轻量) DeepSeek R1 Distill 32B 20 GB 蒸馏版 嵌入模型 nomic-embed-text 1 GB 向量检索 嵌入模型(中文) bge-m3 2 GB 中英多语言 视觉模型 Qwen2.5-VL 72B 45 GB 图文理解 TTS XTTS v2 2 GB 语音合成 ASR Whisper Large v3 3 GB 语音识别 2. 推理层 引擎 最佳场景 吞吐排名 部署难度 vLLM 高并发 API 服务 ★★★★★ 中 SGLang 多轮对话 / RAG ★★★★☆ 中 TGI HuggingFace 生态 ★★★★☆ 低 Ollama 开发 / 原型 ★★☆☆☆ 最低 llama.cpp CPU / 边缘设备 ★★☆☆☆ 低 3. API 网关层 # 用 Nginx 做多推理引擎负载均衡 upstream llm_backend { least_conn; server vllm-1:8000 max_fails=3 fail_timeout=30s; server vllm-2:8000 max_fails=3 fail_timeout=30s; server sglang-1:30000 backup; } server { listen 443 ssl http2; server_name llm.internal.example.com; ssl_certificate /etc/ssl/certs/llm.crt; ssl_certificate_key /etc/ssl/private/llm.key; # API 认证 auth_request /auth; location / { proxy_pass http://llm_backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_buffering off; # 流式输出必须关闭缓冲 proxy_read_timeout 300s; } location /auth { internal; proxy_pass http://auth-service:5000/verify; proxy_pass_request_body off; proxy_set_header Content-Length ""; proxy_set_header X-Original-URI $request_uri; } } 4. 前端层 方案 特点 适合场景 Open WebUI 功能最全,多用户 企业内部平台 LobeChat 颜值高,插件丰富 个人 / 小团队 LibreChat 轻量,多端点 开发测试 5. 应用层 组件 推荐方案 说明 RAG 框架 Dify / LangFlow 可视化工作流 向量数据库 Qdrant / Milvus 生产级检索 Agent 框架 LangGraph / CrewAI 多 Agent 编排 工作流引擎 n8n / Dify API 编排 缓存 Redis 对话缓存 硬件需求 按规模选型 规模 GPU 配置 可运行最大模型 并发能力 预算 个人 RTX 4090 24G ×1 32B Q4 4-8 ¥16K 小团队 RTX 4090 24G ×2 70B Q4 8-16 ¥32K 中型 A100 80G ×4 70B FP16 / 405B Q4 32-64 ¥400K 大型 H100 80G ×8 671B Q4 64-128 ¥2M 关键硬件指标 # 推理性能估算公式 tokens_per_second = min( gpu_memory_bandwidth / model_size_bytes, # 内存带宽瓶颈 gpu_compute_tflops * efficiency / ops_per_token # 计算瓶颈 ) # 示例:Llama 3.1 70B Q4 on A100 80G # model_size = 40 GB # gpu_bandwidth = 2000 GB/s # theoretical_max = 2000 / 40 = 50 tokens/s (单请求) # 实际效率约 70% → ~35 tokens/s 非 GPU 硬件要求 组件 最低要求 推荐 CPU 16 核 32-64 核 内存 模型大小 × 2 模型大小 × 3 存储 NVMe SSD NVMe RAID 网络 10 GbE 25-100 GbE(多节点) Docker Compose 全栈编排 # docker-compose.full-stack.yml version: "3.9" services: # ========== 推理层 ========== vllm: image: vllm/vllm-openai:latest container_name: vllm runtime: nvidia environment: - HF_TOKEN=${HF_TOKEN} volumes: - model_cache:/root/.cache/huggingface ports: - "8000:8000" command: - --model=meta-llama/Llama-3.1-70B-Instruct - --tensor-parallel-size=4 - --gpu-memory-utilization=0.90 - --max-model-len=32768 - --enable-prefix-caching healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 10 deploy: resources: reservations: devices: - driver: nvidia count: 4 capabilities: [gpu] vllm-embed: image: vllm/vllm-openai:latest container_name: vllm-embed runtime: nvidia volumes: - model_cache:/root/.cache/huggingface ports: - "8001:8000" command: - --model=nomic-ai/nomic-embed-text-v1.5 - --gpu-memory-utilization=0.5 deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] # ========== 前端层 ========== open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui ports: - "3000:8080" volumes: - webui_data:/app/backend/data environment: - OLLAMA_BASE_URL=http://ollama:11434 - OPENAI_API_BASE_URL=http://vllm:8000/v1 - OPENAI_API_KEY=none - WEBUI_AUTH=true - ENABLE_SIGNUP=false - DATABASE_URL=postgresql://webui:${DB_PASSWORD}@postgres:5432/webui depends_on: - vllm - postgres ollama: image: ollama/ollama:latest container_name: ollama ports: - "11434:11434" volumes: - ollama_data:/root/.ollama environment: - OLLAMA_KEEP_ALIVE=24h # ========== 应用层 ========== qdrant: image: qdrant/qdrant:latest container_name: qdrant ports: - "6333:6333" volumes: - qdrant_data:/qdrant/storage dify: image: langgenius/dify-api:latest container_name: dify ports: - "5001:5001" environment: - DB_HOST=postgres - DB_PASSWORD=${DB_PASSWORD} - REDIS_HOST=redis - VECTOR_STORE=qdrant - QDRANT_URL=http://qdrant:6333 depends_on: - postgres - redis - qdrant # ========== 基础设施 ========== postgres: image: postgres:16-alpine container_name: postgres environment: - POSTGRES_PASSWORD=${DB_PASSWORD} - POSTGRES_DB=webui volumes: - postgres_data:/var/lib/postgresql/data redis: image: redis:7-alpine container_name: redis volumes: - redis_data:/data prometheus: image: prom/prometheus:latest container_name: prometheus volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml - prometheus_data:/prometheus ports: - "9090:9090" grafana: image: grafana/grafana:latest container_name: grafana environment: - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD} volumes: - grafana_data:/var/lib/grafana ports: - "3001:3000" dcgm-exporter: image: nvcr.io/nvidia/k8s/dcgm-exporter:latest container_name: dcgm-exporter runtime: nvidia deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] ports: - "9400:9400" volumes: model_cache: ollama_data: webui_data: postgres_data: redis_data: qdrant_data: prometheus_data: grafana_data: 安全加固 网络隔离 # docker-compose.network.yml 片段 networks: frontend: driver: bridge internal: false # 对外暴露 backend: driver: bridge internal: true # 仅内部访问 inference: driver: bridge internal: true # 推理引擎隔离 services: open-webui: networks: [frontend, backend] vllm: networks: [backend, inference] postgres: networks: [backend] API 认证 # API Key 认证中间件 from fastapi import Request, HTTPException import hashlib, hmac, time VALID_API_KEYS = set() # 从数据库加载 async def verify_api_key(request: Request): api_key = request.headers.get("Authorization", "").replace("Bearer ", "") if not api_key or api_key not in VALID_API_KEYS: raise HTTPException(status_code=401, detail="Invalid API key") # 速率限制 client_ip = request.client.host rate_key = f"rate:{client_ip}:{api_key[:8]}" # ... Redis 速率限制 模型安全 # 输入过滤 + 输出审核 class SafetyFilter: BLOCKED_PATTERNS = [ r"ignore (previous|above) instructions", r"system prompt", r"<\|.*\|>", # 特殊 token 注入 ] def check_input(self, text: str) -> bool: import re for pattern in self.BLOCKED_PATTERNS: if re.search(pattern, text, re.IGNORECASE): return False return True def check_output(self, text: str) -> str: # PII 脱敏 import re text = re.sub(r'\b\d{16,19}\b', '[REDACTED]', text) # 信用卡 text = re.sub(r'\b\d{3}-\d{2}-\d{4}\b', '[SSN]', text) # SSN return text 维护策略 模型更新流程 #!/bin/bash # model-update.sh set -euo pipefail MODEL_NAME="meta-llama/Llama-3.1-70B-Instruct" BACKUP_DIR="/data/models/backup" # 1. 备份当前模型 cp -r /data/models/current $BACKUP_DIR/$(date +%Y%m%d) # 2. 拉取新版本 huggingface-cli download $MODEL_NAME --local-dir /data/models/new # 3. 评估测试 python eval.py --model /data/models/new --benchmark mmlu,gsm8k,humaneval # 4. 金丝雀部署 docker run --name vllm-canary -d \ vllm/vllm-openai:latest \ --model /data/models/new \ --port 8001 # 5. 流量切换(通过 Nginx weight 调整) # 6. 清理旧版本(保留最近 3 个) ls -dt $BACKUP_DIR/*/ | tail -n +4 | xargs rm -rf 监控告警 告警规则 条件 通知方式 GPU 温度过高 > 85°C 立即 PagerDuty 显存不足 > 95% Slack 请求队列积压 waiting > 50 持续 5min Slack 推理延迟异常 P99 > 3s Slack 服务不可用 health check 失败 立即 PagerDuty 磁盘空间不足 > 90% Slack 备份策略 # 每日备份 0 2 * * * docker exec postgres pg_dump -U webui webui | gzip > /backup/db_$(date +\%Y\%m\%d).sql.gz 0 3 * * * rsync -avz /data/models/ backup-server:/backup/models/ 0 4 * * * docker exec qdrant qdrant-cli snapshot create # 保留策略:7 天日备 + 4 周周备 + 12 月月备 加入讨论 这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。 ...

2026-06-25 · 5 min · 1041 words · 硅基 AGI 探索者
llama cpp guide

llama.cpp 完全指南:CPU 也能跑大模型

llama.cpp 架构 llama.cpp 是 Georgi Gerganov 用纯 C/C++ 编写的 LLM 推理引擎,最初为 LLaMA 模型设计,现已支持 40+ 模型架构。其核心设计哲学: 零依赖:仅依赖 C/C++ 标准库,编译后单二进制运行 跨平台:x86/ARM CPU、NVIDIA/AMD/Apple GPU、WebAssembly 量化优先:原生 GGML/GGUF 量化格式,在 CPU 上实现实用级推理速度 ┌─────────────────────────────────────────┐ │ CLI / Server / API │ │ (llama-cli / llama-server) │ ├─────────────────────────────────────────┤ │ GGML Compute Graph │ │ (Operator Fusion + SIMD/NEON) │ ├──────────┬───────────┬──────────────────┤ │ CPU │ CUDA │ Metal / Vulkan │ │ Backend │ Backend │ Backend │ │ (AVX2/ │ (NVIDIA) │ (Apple/AMD/Intel)│ │ AVX512/ │ │ │ │ NEON) │ │ │ └──────────┴───────────┴──────────────────┘ GGUF 格式 GGUF(GGML Universal Format)是 llama.cpp 的模型文件格式,取代了早期的 GGML 格式。 ...

2026-06-25 · 5 min · 959 words · 硅基 AGI 探索者
ollama production guide

Ollama 生产部署指南:本地 LLM 的最佳实践

Ollama 架构概览 Ollama 是一个轻量级的本地 LLM 运行时,核心用 Go 编写,底层调用 llama.cpp 进行推理。其架构分为三层: CLI 层:ollama run、ollama pull 等命令,通过 Unix Socket / TCP 与服务端通信 Server 层:HTTP REST API(默认 :11434),管理模型生命周期、请求队列、并发控制 Runtime 层:基于 llama.cpp 的 GGML 后端,支持 CPU / GPU 混合推理 ┌──────────┐ HTTP API ┌──────────────┐ llama.cpp ┌─────────┐ │ CLI / │ ──────────→ │ Ollama │ ───────────→ │ GGML │ │ Client │ │ Server │ │ Backend│ └──────────┘ │ (:11434) │ │ (CPU/ │ └──────────────┘ │ GPU) │ └─────────┘ 关键设计决策 Ollama 将模型权重、推理引擎、API 服务打包为单一二进制,降低了部署复杂度。但这也意味着你在生产环境中需要关注以下限制: ...

2026-06-25 · 4 min · 802 words · 硅基 AGI 探索者
openai compatible api servers

OpenAI 兼容 API 服务器对比:vLLM/TGI/Ollama/LM Studio

为什么需要 OpenAI 兼容 OpenAI 的 Chat Completions API 已成为 LLM 推理的事实标准。兼容这个接口意味着: ┌─────────────────────────────────────────────┐ │ 任意 OpenAI SDK 客户端 │ │ (Python / TypeScript / Go / Rust ...) │ ├─────────────────────────────────────────────┤ │ OpenAI 兼容 API 层 │ │ /v1/chat/completions │ │ /v1/completions │ │ /v1/embeddings │ │ /v1/models │ ├─────────────┬───────────┬───────────────────┤ │ vLLM │ TGI │ Ollama │ │ │ │ LM Studio │ └─────────────┴───────────┴───────────────────┘ 核心价值: 零代码迁移:只需改 base_url,现有应用立即切换到本地模型 生态复用:LangChain、LlamaIndex、AutoGen 等框架原生支持 可替换性:推理引擎可热切换,应用层无需修改 from openai import OpenAI # 同一份代码,切换后端只需改一行 # OpenAI: client = OpenAI(base_url="https://api.openai.com/v1", api_key="sk-xxx") # vLLM: client = OpenAI(base_url="http://vllm:8000/v1", api_key="none") # Ollama: client = OpenAI(base_url="http://ollama:11434/v1", api_key="ollama") # TGI: client = OpenAI(base_url="http://tgi:8080/v1", api_key="none") response = client.chat.completions.create( model="meta-llama/Llama-3.1-8B-Instruct", messages=[{"role": "user", "content": "Hello"}], stream=True ) API 规范差异 基础端点覆盖 端点 vLLM TGI Ollama LM Studio /v1/chat/completions ✅ ✅ ✅ ✅ /v1/completions ✅ ✅ ✅ ✅ /v1/embeddings ✅ ✅ ✅ ✅ /v1/models ✅ ✅ ✅ ✅ /v1/files ✅ ❌ ❌ ❌ /v1/audio/transcriptions ✅ ❌ ❌ ✅ /v1/images/generations ✅ ❌ ❌ ❌ 请求参数支持 参数 vLLM TGI Ollama LM Studio stream ✅ ✅ ✅ ✅ temperature ✅ ✅ ✅ ✅ top_p ✅ ✅ ✅ ✅ top_k ✅ ✅ ✅ ✅ max_tokens ✅ ✅ ✅ ✅ stop ✅ ✅ ✅ ✅ n (多选) ✅ ⚠️ 限1 ❌ ✅ logprobs ✅ ✅ ⚠️ ✅ presence_penalty ✅ ✅ ✅ ✅ frequency_penalty ✅ ✅ ✅ ✅ seed ✅ ✅ ✅ ✅ response_format (JSON) ✅ ✅ ⚠️ ✅ Function Calling 支持 response = client.chat.completions.create( model="llama3.1:8b", messages=[{"role": "user", "content": "What's the weather in Tokyo?"}], tools=[{ "type": "function", "function": { "name": "get_weather", "description": "Get current weather", "parameters": { "type": "object", "properties": { "city": {"type": "string"} }, "required": ["city"] } } }], tool_choice="auto" ) 特性 vLLM TGI Ollama LM Studio 基础 Function Calling ✅ ✅ ✅ ✅ Parallel Function Calling ✅ ⚠️ ✅ ✅ tool_choice: "required" ✅ ⚠️ ✅ ⚠️ 指定函数调用 ✅ ⚠️ ✅ ⚠️ JSON Schema 结构化输出 ✅ ✅ ⚠️ ✅ 流式输出差异 所有引擎均支持 SSE 流式输出,但存在细微差异: ...

2026-06-25 · 5 min · 923 words · 硅基 AGI 探索者
sglang vs vllm

SGLang vs vLLM:新一代推理引擎之争

背景:为什么需要新的推理引擎 vLLM 以 PagedAttention 革新了 KV Cache 管理,但在实际生产中仍存在痛点: 前缀缓存粒度粗:vLLM 的 Prefix Cache 是 block 级别,命中率受限于前缀完全匹配 多轮对话效率低:每轮对话的 KV Cache 无法跨请求高效复用 缺乏结构化生成:JSON/Regex 约束生成需要额外引擎(如 Outlines) SGLang(Structured Generation Language)由 LMSYS 团队开发,从设计之初就针对这些问题。 SGLang 架构 核心组件 ┌──────────────────────────────────────────────┐ │ SGLang Frontend (Python) │ │ @function 装饰器 / sgl.gen() DSL │ ├──────────────────────────────────────────────┤ │ SGLang Runtime (Server) │ │ RadixAttention + Cache Manager │ │ + Constrained Decoding (Regex/JSON) │ ├───────────────┬──────────────────────────────┤ │ Scheduler │ Model Worker │ │ (Batching) │ (Tensor Parallel) │ ├───────────────┴──────────────────────────────┤ │ GPU Workers (CUDA) │ └──────────────────────────────────────────────┘ RadixAttention 原理 RadixAttention 是 SGLang 的核心创新。与 vLLM 的 PagedAttention 相比,关键区别在于 KV Cache 的组织方式: ...

2026-06-25 · 4 min · 751 words · 硅基 AGI 探索者
text generation webui

Text Generation Inference 评测:HuggingFace 的推理服务器

TGI 架构 Text Generation Inference(TGI)是 HuggingFace 官方的 LLM 推理服务器,与 HuggingFace 生态深度集成。 ┌─────────────────────────────────────────────┐ │ OpenAI Compatible REST API │ │ (Streaming / Function Calling / Tools) │ ├─────────────────────────────────────────────┤ │ Router │ │ (Load Balancing + Queue Management) │ ├──────────────┬──────────────────────────────┤ │ Flash │ Continuous Batching │ │ Attention │ Scheduler │ │ (v2/v3) │ │ ├──────────────┴──────────────────────────────┤ │ CUDA / ROCm Workers │ │ (Tensor Parallel + Quantization) │ └─────────────────────────────────────────────┘ 核心组件 组件 说明 Router 请求路由、负载均衡、队列管理 Flash Attention I/O 感知的精确注意力 Continuous Batching 动态批处理 Quantization GPTQ / AWQ / EETQ / BitsAndBytes Watermark 水印生成(防滥用) Token Streaming SSE 流式输出 Flash Attention 集成 TGI 从设计之初就深度集成 Flash Attention,这是其与 vLLM 早期竞争的核心优势之一。 ...

2026-06-25 · 5 min · 962 words · 硅基 AGI 探索者
鲁ICP备2026018361号