Skip to content

Latest commit

 

History

History
501 lines (435 loc) · 15.7 KB

File metadata and controls

501 lines (435 loc) · 15.7 KB

模型管理 API

返回目录

方法 路径 描述
POST /models 创建模型
GET /models 获取模型列表
GET /models/:id 获取模型详情
PUT /models/:id 更新模型
DELETE /models/:id 删除模型
GET /models/providers 获取模型服务商列表

服务商支持 (Provider Support)

WeKnora 支持多种主流 AI 模型服务商,在创建模型时可通过 provider 字段指定服务商类型以获得更好的兼容性。

支持的服务商列表

服务商标识 名称 支持的模型类型
generic 自定义 (OpenAI兼容接口) Chat, Embedding, Rerank, VLLM
openai OpenAI Chat, Embedding, Rerank, VLLM
aliyun 阿里云 DashScope Chat, Embedding, Rerank, VLLM
zhipu 智谱 BigModel Chat, Embedding, Rerank, VLLM
volcengine 火山引擎 Volcengine Chat, Embedding, VLLM
hunyuan 腾讯混元 Hunyuan Chat, Embedding
deepseek DeepSeek Chat
minimax MiniMax Chat
mimo 小米 MiMo Chat
siliconflow 硅基流动 SiliconFlow Chat, Embedding, Rerank, VLLM
jina Jina Embedding, Rerank
openrouter OpenRouter Chat, VLLM
gemini Google Gemini Chat
modelscope 魔搭 ModelScope Chat, Embedding, VLLM
moonshot 月之暗面 Moonshot Chat, VLLM
qianfan 百度千帆 Baidu Cloud Chat, Embedding, Rerank, VLLM
qiniu 七牛云 Qiniu Chat
longcat LongCat AI Chat
gpustack GPUStack Chat, Embedding, Rerank, VLLM

GET /models/providers - 获取模型服务商列表

根据模型类型获取支持的服务商列表及配置信息。

请求参数:

参数 类型 必填 描述
model_type string 模型类型:chat, embedding, rerank, vllm

请求:

# 获取所有服务商
curl --location 'http://localhost:8080/api/v1/models/providers' \
--header 'X-API-Key: your_api_key'

# 获取支持 Embedding 类型的服务商
curl --location 'http://localhost:8080/api/v1/models/providers?model_type=embedding' \
--header 'X-API-Key: your_api_key'

响应:

{
    "success": true,
    "data": [
        {
            "value": "aliyun",
            "label": "阿里云 DashScope",
            "description": "qwen-plus, tongyi-embedding-vision-plus, qwen3-rerank, etc.",
            "defaultUrls": {
                "chat": "https://dashscope.aliyuncs.com/compatible-mode/v1",
                "embedding": "https://dashscope.aliyuncs.com/compatible-mode/v1",
                "rerank": "https://dashscope.aliyuncs.com/api/v1/services/rerank/text-rerank/text-rerank"
            },
            "modelTypes": ["chat", "embedding", "rerank", "vllm"]
        },
        {
            "value": "zhipu",
            "label": "智谱 BigModel",
            "description": "glm-4.7, embedding-3, rerank, etc.",
            "defaultUrls": {
                "chat": "https://open.bigmodel.cn/api/paas/v4",
                "embedding": "https://open.bigmodel.cn/api/paas/v4/embeddings",
                "rerank": "https://open.bigmodel.cn/api/paas/v4/rerank"
            },
            "modelTypes": ["chat", "embedding", "rerank", "vllm"]
        }
    ]
}

POST /models - 创建模型

创建对话模型(KnowledgeQA)

本地 Ollama 模型:

curl --location 'http://localhost:8080/api/v1/models' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: your_api_key' \
--data '{
    "name": "qwen3:8b",
    "type": "KnowledgeQA",
    "source": "local",
    "description": "LLM Model for Knowledge QA",
    "parameters": {
        "base_url": "",
        "api_key": ""
    }
}'

远程 API 模型(指定服务商):

curl --location 'http://localhost:8080/api/v1/models' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: your_api_key' \
--data '{
    "name": "qwen-plus",
    "type": "KnowledgeQA",
    "source": "remote",
    "description": "阿里云 Qwen 大模型",
    "parameters": {
        "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
        "api_key": "sk-your-dashscope-api-key",
        "provider": "aliyun"
    }
}'

创建嵌入模型(Embedding)

本地 Ollama 模型:

curl --location 'http://localhost:8080/api/v1/models' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: your_api_key' \
--data '{
    "name": "nomic-embed-text:latest",
    "type": "Embedding",
    "source": "local",
    "description": "Embedding Model",
    "parameters": {
        "base_url": "",
        "api_key": "",
        "embedding_parameters": {
            "dimension": 768,
            "truncate_prompt_tokens": 0
        }
    }
}'

远程 API 模型(阿里云 DashScope):

curl --location 'http://localhost:8080/api/v1/models' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: your_api_key' \
--data '{
    "name": "text-embedding-v3",
    "type": "Embedding",
    "source": "remote",
    "description": "阿里云通义千问 Embedding 模型",
    "parameters": {
        "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
        "api_key": "sk-your-dashscope-api-key",
        "provider": "aliyun",
        "embedding_parameters": {
            "dimension": 1024,
            "truncate_prompt_tokens": 0
        }
    }
}'

远程 API 模型(Jina AI):

curl --location 'http://localhost:8080/api/v1/models' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: your_api_key' \
--data '{
    "name": "jina-embeddings-v3",
    "type": "Embedding",
    "source": "remote",
    "description": "Jina AI Embedding 模型",
    "parameters": {
        "base_url": "https://api.jina.ai/v1",
        "api_key": "jina_your_api_key",
        "provider": "jina",
        "embedding_parameters": {
            "dimension": 1024,
            "truncate_prompt_tokens": 0
        }
    }
}'

创建排序模型(Rerank)

远程 API 模型(阿里云 DashScope):

curl --location 'http://localhost:8080/api/v1/models' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: your_api_key' \
--data '{
    "name": "gte-rerank",
    "type": "Rerank",
    "source": "remote",
    "description": "阿里云 GTE Rerank 模型",
    "parameters": {
        "base_url": "https://dashscope.aliyuncs.com/api/v1/services/rerank/text-rerank/text-rerank",
        "api_key": "sk-your-dashscope-api-key",
        "provider": "aliyun"
    }
}'

远程 API 模型(Jina AI):

curl --location 'http://localhost:8080/api/v1/models' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: your_api_key' \
--data '{
    "name": "jina-reranker-v2-base-multilingual",
    "type": "Rerank",
    "source": "remote",
    "description": "Jina AI Rerank 模型",
    "parameters": {
        "base_url": "https://api.jina.ai/v1",
        "api_key": "jina_your_api_key",
        "provider": "jina"
    }
}'

创建视觉模型(VLLM)

curl --location 'http://localhost:8080/api/v1/models' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: your_api_key' \
--data '{
    "name": "qwen-vl-plus",
    "type": "VLLM",
    "source": "remote",
    "description": "阿里云通义千问视觉模型",
    "parameters": {
        "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
        "api_key": "sk-your-dashscope-api-key",
        "provider": "aliyun"
    }
}'

响应:

{
    "success": true,
    "data": {
        "id": "09c5a1d6-ee8b-4657-9a17-d3dcbd5c70cb",
        "tenant_id": 1,
        "name": "text-embedding-v3",
        "type": "Embedding",
        "source": "remote",
        "description": "阿里云通义千问 Embedding 模型",
        "parameters": {
            "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
            "api_key": "sk-***",
            "provider": "aliyun",
            "embedding_parameters": {
                "dimension": 1024,
                "truncate_prompt_tokens": 0
            }
        },
        "is_default": false,
        "status": "active",
        "created_at": "2025-08-12T10:39:01.454591766+08:00",
        "updated_at": "2025-08-12T10:39:01.454591766+08:00",
        "deleted_at": null
    }
}

GET /models - 获取模型列表

请求:

curl --location 'http://localhost:8080/api/v1/models' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: your_api_key'

响应:

{
    "success": true,
    "data": [
        {
            "id": "dff7bc94-7885-4dd1-bfd5-bd96e4df2fc3",
            "tenant_id": 1,
            "name": "text-embedding-v3",
            "type": "Embedding",
            "source": "remote",
            "description": "阿里云通义千问 Embedding 模型",
            "parameters": {
                "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
                "api_key": "sk-***",
                "provider": "aliyun",
                "embedding_parameters": {
                    "dimension": 1024,
                    "truncate_prompt_tokens": 0
                }
            },
            "is_default": true,
            "status": "active",
            "created_at": "2025-08-11T20:10:41.813832+08:00",
            "updated_at": "2025-08-11T20:10:41.822354+08:00",
            "deleted_at": null
        },
        {
            "id": "8aea788c-bb30-4898-809e-e40c14ffb48c",
            "tenant_id": 1,
            "name": "qwen-plus",
            "type": "KnowledgeQA",
            "source": "remote",
            "description": "阿里云 Qwen 大模型",
            "parameters": {
                "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
                "api_key": "sk-***",
                "provider": "aliyun",
                "embedding_parameters": {
                    "dimension": 0,
                    "truncate_prompt_tokens": 0
                }
            },
            "is_default": true,
            "status": "active",
            "created_at": "2025-08-11T20:10:41.811761+08:00",
            "updated_at": "2025-08-11T20:10:41.825381+08:00",
            "deleted_at": null
        }
    ]
}

GET /models/:id - 获取模型详情

请求:

curl --location 'http://localhost:8080/api/v1/models/dff7bc94-7885-4dd1-bfd5-bd96e4df2fc3' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: your_api_key'

响应:

{
    "success": true,
    "data": {
        "id": "dff7bc94-7885-4dd1-bfd5-bd96e4df2fc3",
        "tenant_id": 1,
        "name": "text-embedding-v3",
        "type": "Embedding",
        "source": "remote",
        "description": "阿里云通义千问 Embedding 模型",
        "parameters": {
            "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
            "api_key": "sk-***",
            "provider": "aliyun",
            "embedding_parameters": {
                "dimension": 1024,
                "truncate_prompt_tokens": 0
            }
        },
        "is_default": true,
        "status": "active",
        "created_at": "2025-08-11T20:10:41.813832+08:00",
        "updated_at": "2025-08-11T20:10:41.822354+08:00",
        "deleted_at": null
    }
}

PUT /models/:id - 更新模型

请求:

curl --location --request PUT 'http://localhost:8080/api/v1/models/8fdc464d-8eaa-44d4-a85b-094b28af5330' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: your_api_key' \
--data '{
    "name": "gte-rerank-v2",
    "description": "阿里云 GTE Rerank 模型 V2",
    "parameters": {
        "base_url": "https://dashscope.aliyuncs.com/api/v1/services/rerank/text-rerank/text-rerank",
        "api_key": "sk-your-new-api-key",
        "provider": "aliyun"
    }
}'

响应:

{
    "success": true,
    "data": {
        "id": "8fdc464d-8eaa-44d4-a85b-094b28af5330",
        "tenant_id": 1,
        "name": "gte-rerank-v2",
        "type": "Rerank",
        "source": "remote",
        "description": "阿里云 GTE Rerank 模型 V2",
        "parameters": {
            "base_url": "https://dashscope.aliyuncs.com/api/v1/services/rerank/text-rerank/text-rerank",
            "api_key": "sk-***",
            "provider": "aliyun",
            "embedding_parameters": {
                "dimension": 0,
                "truncate_prompt_tokens": 0
            }
        },
        "is_default": false,
        "status": "active",
        "created_at": "2025-08-12T10:57:39.512681+08:00",
        "updated_at": "2025-08-12T11:00:27.271678+08:00",
        "deleted_at": null
    }
}

DELETE /models/:id - 删除模型

请求:

curl --location --request DELETE 'http://localhost:8080/api/v1/models/8fdc464d-8eaa-44d4-a85b-094b28af5330' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: your_api_key'

响应:

{
    "success": true,
    "message": "Model deleted"
}

参数说明

ModelType (模型类型)

说明 用途
KnowledgeQA 对话模型 知识库问答、对话生成
Embedding 嵌入模型 文本向量化、知识库检索
Rerank 排序模型 检索结果重排序、相关性优化
VLLM 视觉语言模型 多模态分析、图文理解

ModelSource (模型来源)

说明 配置要求
local 本地模型 需要已安装 Ollama 并拉取模型
remote 远程 API 需要提供 base_urlapi_key

Parameters (模型参数)

字段 类型 说明
base_url string API 服务地址(远程模型必填)
api_key string API 密钥(远程模型必填)
provider string 服务商标识(可选,用于选择特定的 API 适配器)
embedding_parameters object Embedding 模型专用参数
extra_config object 服务商特定的额外配置

EmbeddingParameters (嵌入参数)

字段 类型 说明
dimension int 向量维度(如:768, 1024)
truncate_prompt_tokens int 截断 Token 数(0 表示不截断)