194 lines
3.7 KiB
Markdown
194 lines
3.7 KiB
Markdown
# Model Settings 需求文档
|
||
|
||
## 需求概述
|
||
|
||
Model Settings 页面用于管理 AI 模型配置,支持添加、编辑、删除和测试模型连接。
|
||
|
||
## 功能列表
|
||
|
||
### 1. 模型列表展示
|
||
|
||
展示已配置的模型列表,包含以下字段:
|
||
- Model Name(模型名称)
|
||
- Model Type(模型类型):Chat / Embedding / Rerank / VLM
|
||
- API Endpoint(API 端点)
|
||
- Status(状态):Active / Inactive
|
||
|
||
### 2. 添加新模型
|
||
|
||
点击 "Add New Model" 按钮,弹出表单包含以下字段:
|
||
- Model Name(必填)
|
||
- Model Type(必选):Chat / Embedding / Rerank / VLM
|
||
- Provider(必选):OpenAI / Ollama
|
||
- Model(必填):模型名称,如 gpt-4o
|
||
- API Key(必填)
|
||
- Base URL(必填)
|
||
- API Endpoint(可选)
|
||
|
||
### 3. 测试连接
|
||
|
||
在添加模型表单中提供 "Test Connection" 按钮,用于验证模型连接是否可用。
|
||
|
||
### 4. 编辑模型
|
||
|
||
点击编辑按钮,弹出编辑表单,可修改模型信息。
|
||
|
||
### 5. 删除模型
|
||
|
||
点击删除按钮,确认后删除模型记录。
|
||
|
||
---
|
||
|
||
## 后端接口需求
|
||
|
||
### 1. 获取模型列表
|
||
|
||
**接口地址:** `GET /api/models` 或 `GET /model/list`
|
||
|
||
**返回参数:**
|
||
```json
|
||
{
|
||
"list": [
|
||
{
|
||
"id": "1",
|
||
"name": "OpenAI",
|
||
"model_type": "chat",
|
||
"provider": "OpenAI",
|
||
"model": "gpt-4o",
|
||
"api_key": "sk-xxx",
|
||
"base_url": "https://api.openai.com",
|
||
"api_endpoint": "/v1/chat/completions",
|
||
"status": "active",
|
||
"created_at": "2024-01-01T00:00:00Z",
|
||
"updated_at": "2024-01-01T00:00:00Z"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 2. 添加模型
|
||
|
||
**接口地址:** `POST /api/models` 或 `POST /model/add`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"name": "OpenAI",
|
||
"model_type": "chat",
|
||
"provider": "OpenAI",
|
||
"model": "gpt-4o",
|
||
"api_key": "sk-xxx",
|
||
"base_url": "https://api.openai.com",
|
||
"api_endpoint": "/v1/chat/completions"
|
||
}
|
||
```
|
||
|
||
**返回参数:**
|
||
```json
|
||
{
|
||
"id": "1",
|
||
"name": "OpenAI",
|
||
"model_type": "chat",
|
||
...
|
||
}
|
||
```
|
||
|
||
### 3. 更新模型
|
||
|
||
**接口地址:** `PUT /api/models/{id}` 或 `PUT /model/{id}`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"name": "OpenAI Updated",
|
||
"model_type": "chat",
|
||
"provider": "OpenAI",
|
||
"model": "gpt-4o",
|
||
"api_key": "sk-xxx",
|
||
"base_url": "https://api.openai.com",
|
||
"api_endpoint": "/v1/chat/completions",
|
||
"status": "active"
|
||
}
|
||
```
|
||
|
||
### 4. 删除模型
|
||
|
||
**接口地址:** `DELETE /api/models/{id}` 或 `DELETE /model/{id}`
|
||
|
||
**返回参数:**
|
||
```json
|
||
{
|
||
"success": true
|
||
}
|
||
```
|
||
|
||
### 5. 测试连接
|
||
|
||
**接口地址:** `POST /api/models/test` 或 `POST /model/test`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"provider": "OpenAI",
|
||
"model": "gpt-4o",
|
||
"api_key": "sk-xxx",
|
||
"base_url": "https://api.openai.com",
|
||
"api_endpoint": "/v1/chat/completions"
|
||
}
|
||
```
|
||
|
||
**返回参数:**
|
||
```json
|
||
{
|
||
"success": true,
|
||
"message": "Connection successful"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 数据结构
|
||
|
||
### Model 表结构(参考)
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| id | string | 主键 UUID |
|
||
| name | string | 模型名称 |
|
||
| model_type | string | 模型类型:chat/embedding/rerank/vlm |
|
||
| provider | string | 提供商:OpenAI/Ollama |
|
||
| model | string | 模型标识 |
|
||
| api_key | string | API 密钥(加密存储) |
|
||
| base_url | string | 基础 URL |
|
||
| api_endpoint | string | API 端点路径 |
|
||
| status | string | 状态:active/inactive |
|
||
| created_at | datetime | 创建时间 |
|
||
| updated_at | datetime | 更新时间 |
|
||
|
||
---
|
||
|
||
## 前端组件状态
|
||
|
||
### 表单数据 (newModelForm)
|
||
```typescript
|
||
{
|
||
name: string,
|
||
apiKey: string,
|
||
apiEndpoint: string,
|
||
baseUrl: string,
|
||
provider: string,
|
||
model: string,
|
||
modelType: string
|
||
}
|
||
```
|
||
|
||
### 模型类型选项 (modelTypeOptions)
|
||
- Chat
|
||
- Embedding
|
||
- Rerank
|
||
- VLM
|
||
|
||
### 提供商选项 (providerOptions)
|
||
- OpenAI
|
||
- Ollama
|