模型管理
Snail AI 提供统一的多模型管理能力,通过抽象模型提供商、模型配置、模型类型三个核心概念,实现对不同厂商、不同用途 AI 模型的集中管理与灵活调度。
多模型架构概览
Snail AI 的模型管理系统采用三层架构设计:
┌─────────────────────────────────────────────────────┐
│ 智能体 / RAG / 记忆 │
│ (业务层 —— 按类型选择模型) │
├─────────────────────────────────────────────────────┤
│ 模型配置层 │
│ apiKey / apiEndpoint / modelKey / configJson │
│ scope: GLOBAL | PERSONAL │
├─────────────────────────────────────────────────────┤
│ 模型提供商层 │
│ OpenAI · Claude · Ollama · Gemini · 火山引擎 ... │
└─────────────────────────────────────────────────────┘| 层级 | 职责 | 说明 |
|---|---|---|
| 模型提供商 | 接入管理 | 定义厂商信息(名称、标识、图标),支持启用/禁用 |
| 模型配置 | 参数管理 | 为某个提供商下的具体模型配置密钥、端点、参数 |
| 业务消费 | 按类型选用 | 智能体、RAG、记忆等模块按模型类型选取可用模型 |
模型类型
系统支持五种模型类型,覆盖 AI 应用的主要场景:
| 类型 | 枚举值 | 用途 | 典型模型 |
|---|---|---|---|
| 对话模型 | CHAT | 智能体对话、推理、工具调用 | GPT-4o、Claude 3.5 Sonnet、Gemini Pro |
| 向量模型 | EMBEDDING | RAG 文档向量化、记忆向量化 | text-embedding-3-small、bge-m3 |
| 重排序模型 | RERANKER | RAG 检索结果重排序 | bge-reranker-v2-m3、Cohere Rerank |
| 图像模型 | IMAGE | 图像生成 | DALL-E 3、Stable Diffusion |
| 语音模型 | SPEECH | 语音合成与识别 | Whisper、TTS-1 |
在创建智能体、知识库、记忆库等资源时,系统会根据所需模型类型自动筛选可用模型列表,确保选型正确。
模型作用域
每个模型配置都有一个**作用域(Scope)**属性,决定该模型的可见范围:
| 作用域 | 枚举值 | 说明 |
|---|---|---|
| 全局 | GLOBAL | 所有用户均可使用,由管理员统一配置和维护 |
| 个人 | PERSONAL | 仅配置者本人可用,适合用户自带 API Key 的场景 |
典型使用场景
- 企业统一采购:管理员创建
GLOBAL模型,配置企业统一的 API Key,供全员使用 - 个人自带密钥:普通用户创建
PERSONAL模型,使用自己的 API Key,不占用企业额度
默认模型
系统支持为每种模型类型设置一个默认模型:
- 创建智能体时,如果未手动指定对话模型,系统自动分配
CHAT类型的默认模型 - 创建知识库时,如果未手动指定向量模型,系统自动分配
EMBEDDING类型的默认模型 - 同一类型下只能有一个默认模型,切换默认模型会自动取消原来的默认状态
通过合理设置默认模型,可以简化日常操作流程,降低使用门槛。
功能导航
| 功能 | 说明 | 文档链接 |
|---|---|---|
| 模型提供商管理 | 接入和管理 AI 厂商 | 模型提供商 |
| 模型配置管理 | 创建和维护具体模型的参数配置 | 模型配置 |
| 使用统计 | 查看模型调用量、成功率、Token 消耗等指标 | 使用统计 |
模型管理 API 概览
以下是模型管理相关的核心 API 端点:
| 操作 | 方法 | 端点 | 说明 |
|---|---|---|---|
| 提供商列表 | GET | /ai-model/providers | 获取已启用的提供商 |
| 全部提供商 | GET | /ai-model/all-providers | 包括已禁用的 |
| 模型配置列表 | GET | /ai-model/configs | 分页查询,支持按提供商/类型/作用域筛选 |
| 按类型查模型 | GET | /ai-model/by-type/{modelType} | 获取指定类型的可用模型 |
| 默认模型 | GET | /ai-model/default/{modelType} | 获取指定类型的默认模型 |
| 使用统计 | GET | /ai-model/usage/stat/{modelId} | 获取单个模型的使用统计 |
权限说明
GLOBAL作用域的模型配置和提供商管理操作仅限管理员(Admin)PERSONAL作用域的模型配置允许普通用户自行创建和管理- 全局使用统计(
/ai-model/usage/global-stats)仅管理员可查看