更新mcp
This commit is contained in:
@@ -34,7 +34,21 @@ MCP Search Agent 是基于 Model Context Protocol (MCP) 协议的智能搜索服
|
||||
"id": "request-001",
|
||||
"method": "search",
|
||||
"params": {
|
||||
"query": "什么是人工智能?"
|
||||
"query": "什么是人工智能?",
|
||||
"api_key": "your-llm-api-key"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**或者使用 `llm_api_key`(与API格式保持一致)**:
|
||||
```json
|
||||
{
|
||||
"jsonrpc": "2.0",
|
||||
"id": "request-001",
|
||||
"method": "search",
|
||||
"params": {
|
||||
"query": "什么是人工智能?",
|
||||
"llm_api_key": "your-llm-api-key"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -48,8 +62,8 @@ MCP Search Agent 是基于 Model Context Protocol (MCP) 协议的智能搜索服
|
||||
| method | string | 是 | 方法名,固定为 "search" |
|
||||
| params | object | 是 | 请求参数对象 |
|
||||
| params.query | string | 是 | 搜索查询内容 |
|
||||
| params.api_key | string | 否 | LLM API密钥(可选,如果环境变量已配置则不需要) |
|
||||
| params.model | string | 否 | 模型名称(可选,如果环境变量已配置则不需要) |
|
||||
| params.api_key | string | 是 | LLM API密钥(**必填**,等同于API格式版本的`llm_api_key`) |
|
||||
| params.llm_api_key | string | 是 | LLM API密钥(**必填**,`api_key`的别名,与API格式保持一致) |
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
@@ -117,7 +131,8 @@ MCP Search Agent 是基于 Model Context Protocol (MCP) 协议的智能搜索服
|
||||
"id": "request-002",
|
||||
"method": "search/stream",
|
||||
"params": {
|
||||
"query": "Python编程语言的特点"
|
||||
"query": "Python编程语言的特点",
|
||||
"api_key": "your-llm-api-key"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -146,7 +161,8 @@ data: {"jsonrpc":"2.0","id":"request-002","method":"task/complete","params":{"ta
|
||||
"id": "request-003",
|
||||
"method": "search",
|
||||
"params": {
|
||||
"query": "搜索查询"
|
||||
"query": "搜索查询",
|
||||
"api_key": "your-llm-api-key"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -250,7 +266,8 @@ curl -X POST https://your-service-url/mcp/v1/search \
|
||||
"id": "test-1",
|
||||
"method": "search",
|
||||
"params": {
|
||||
"query": "什么是人工智能?"
|
||||
"query": "什么是人工智能?",
|
||||
"api_key": "your-llm-api-key"
|
||||
}
|
||||
}'
|
||||
|
||||
@@ -262,7 +279,8 @@ curl -X POST https://your-service-url/mcp/v1/search/stream \
|
||||
"id": "test-2",
|
||||
"method": "search/stream",
|
||||
"params": {
|
||||
"query": "Python编程语言的特点"
|
||||
"query": "Python编程语言的特点",
|
||||
"api_key": "your-llm-api-key"
|
||||
}
|
||||
}'
|
||||
```
|
||||
@@ -280,7 +298,8 @@ payload = {
|
||||
"id": "python-request-1",
|
||||
"method": "search",
|
||||
"params": {
|
||||
"query": "什么是人工智能?"
|
||||
"query": "什么是人工智能?",
|
||||
"api_key": "your-llm-api-key"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -305,7 +324,8 @@ const payload = {
|
||||
id: 'js-request-1',
|
||||
method: 'search',
|
||||
params: {
|
||||
query: '什么是人工智能?'
|
||||
query: '什么是人工智能?',
|
||||
api_key: 'your-llm-api-key'
|
||||
}
|
||||
};
|
||||
|
||||
@@ -337,18 +357,21 @@ fetch(url, {
|
||||
以下环境变量在 AKS 部署时已配置,用户**不需要**在请求中传递:
|
||||
|
||||
- `LLM_BASE_URL` - LLM服务基础URL
|
||||
- `MODEL_NAME` - 模型名称
|
||||
- `LITELLM_API_KEY` - LLM API密钥(如果已配置,则用户请求中不需要传递)
|
||||
- `MODEL_NAME` 或 `LLM_MODEL` - 模型名称
|
||||
- `SERPER_API_KEY` - Serper搜索API密钥
|
||||
- `JINA_API_KEY` - Jina Reader API密钥
|
||||
|
||||
### 2. 用户请求参数
|
||||
|
||||
用户调用时**只需要**传递:
|
||||
用户调用时**必须**传递:
|
||||
|
||||
- `query` - 搜索查询内容(**必填**)
|
||||
- `api_key` - LLM API密钥(**可选**,如果部署时未配置则需要传递)
|
||||
- `model` - 模型名称(**可选**,如果部署时未配置则需要传递)
|
||||
- `api_key` 或 `llm_api_key` - LLM API密钥(**必填**,等同于API格式版本的`llm_api_key`,用于计费和身份验证)
|
||||
|
||||
**注意**:
|
||||
- **`api_key`/`llm_api_key`是必需的**,必须在每次请求中传递(这是用户的LLM API密钥,用于计费和身份验证)
|
||||
- **`model`不需要传递**,模型名称已在AKS部署时通过环境变量(`MODEL_NAME`或`LLM_MODEL`)配置
|
||||
- 与API格式版本保持一致:用户的API密钥必须传递,其他配置由部署时通过环境变量配置
|
||||
|
||||
### 3. 请求格式
|
||||
|
||||
@@ -375,11 +398,11 @@ fetch(url, {
|
||||
|
||||
### Q1: 请求中是否需要传递 api_key?
|
||||
|
||||
**A**: 如果服务在 AKS 部署时已配置 `LITELLM_API_KEY` 环境变量,则用户请求中不需要传递 `api_key`。如果没有配置,则需要在请求的 `params` 中传递 `api_key`。
|
||||
**A**: **必须传递**。`api_key`(或`llm_api_key`)是用户的LLM API密钥,必须在每次请求中传递(等同于API格式版本的`llm_api_key`)。这是用于计费和身份验证的,不能从环境变量获取。
|
||||
|
||||
### Q2: 请求中是否需要传递 model?
|
||||
|
||||
**A**: 如果服务在 AKS 部署时已配置 `MODEL_NAME` 环境变量,则用户请求中不需要传递 `model`。如果没有配置,则需要在请求的 `params` 中传递 `model`。
|
||||
**A**: **不需要传递**。模型名称已在AKS部署时通过环境变量(`MODEL_NAME`或`LLM_MODEL`)配置,用户请求中不需要传递。
|
||||
|
||||
### Q3: 如何处理超时?
|
||||
|
||||
|
||||
@@ -281,9 +281,30 @@ class MCPSearchAgentServer:
|
||||
}
|
||||
})
|
||||
|
||||
# 提取API key和model(如果提供)
|
||||
api_key = params.get("api_key") or os.getenv("LITELLM_API_KEY")
|
||||
model = params.get("model") or os.getenv("MODEL_NAME") or os.getenv("LITELLM_MODEL")
|
||||
# 提取API key(必须从请求参数中获取,等同于API格式版本的llm_api_key)
|
||||
api_key = params.get("api_key") or params.get("llm_api_key")
|
||||
if not api_key:
|
||||
return JSONResponse({
|
||||
"jsonrpc": "2.0",
|
||||
"id": request.id,
|
||||
"error": {
|
||||
"code": -32602,
|
||||
"message": "Invalid params: 'api_key' or 'llm_api_key' is required"
|
||||
}
|
||||
})
|
||||
|
||||
# 提取model(从环境变量获取,不支持在请求中传递,与API格式版本保持一致)
|
||||
# 支持多种环境变量名称:MODEL_NAME(优先)、LLM_MODEL(AKS部署)、LITELLM_MODEL
|
||||
model = os.getenv("MODEL_NAME") or os.getenv("LLM_MODEL") or os.getenv("LITELLM_MODEL")
|
||||
if not model:
|
||||
return JSONResponse({
|
||||
"jsonrpc": "2.0",
|
||||
"id": request.id,
|
||||
"error": {
|
||||
"code": -32000,
|
||||
"message": "Model not configured: MODEL_NAME or LLM_MODEL environment variable is required"
|
||||
}
|
||||
})
|
||||
|
||||
# 创建任务ID
|
||||
task_id = params.get("task_id", uuid.uuid4().hex)
|
||||
@@ -355,9 +376,30 @@ class MCPSearchAgentServer:
|
||||
}
|
||||
})
|
||||
|
||||
# 提取API key和model(如果提供)
|
||||
api_key = params.get("api_key") or os.getenv("LITELLM_API_KEY")
|
||||
model = params.get("model") or os.getenv("MODEL_NAME") or os.getenv("LITELLM_MODEL")
|
||||
# 提取API key(必须从请求参数中获取,等同于API格式版本的llm_api_key)
|
||||
api_key = params.get("api_key") or params.get("llm_api_key")
|
||||
if not api_key:
|
||||
return JSONResponse({
|
||||
"jsonrpc": "2.0",
|
||||
"id": request.id,
|
||||
"error": {
|
||||
"code": -32602,
|
||||
"message": "Invalid params: 'api_key' or 'llm_api_key' is required"
|
||||
}
|
||||
})
|
||||
|
||||
# 提取model(从环境变量获取,不支持在请求中传递,与API格式版本保持一致)
|
||||
# 支持多种环境变量名称:MODEL_NAME(优先)、LLM_MODEL(AKS部署)、LITELLM_MODEL
|
||||
model = os.getenv("MODEL_NAME") or os.getenv("LLM_MODEL") or os.getenv("LITELLM_MODEL")
|
||||
if not model:
|
||||
return JSONResponse({
|
||||
"jsonrpc": "2.0",
|
||||
"id": request.id,
|
||||
"error": {
|
||||
"code": -32000,
|
||||
"message": "Model not configured: MODEL_NAME or LLM_MODEL environment variable is required"
|
||||
}
|
||||
})
|
||||
|
||||
task_id = params.get("task_id", uuid.uuid4().hex)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user