修复ali tts证书问题

This commit is contained in:
guo zebin
2026-01-07 16:15:05 +08:00
parent d0cb649187
commit 98d0bba355
4 changed files with 111 additions and 2 deletions

View File

@@ -0,0 +1,102 @@
# MCP 工具外部调用接口
本文整理 Fay 内置 MCP 管理服务(默认端口 5010的外部调用接口覆盖 MCP 工具调用与预启用工具调用。
## 基础信息
- Base URL: `http://127.0.0.1:5010`
- Content-Type: `application/json`
## MCP 工具调用接口
### 调用指定服务器工具
`POST /api/mcp/servers/{server_id}/call`
请求体示例:
```json
{
"method": "tool_name",
"params": {
"key": "value"
},
"is_prestart": false
}
```
说明:
- `is_prestart=true` 会跳过工具启用状态检查(用于预启用调用)。
### 调用工具(自动选择在线服务器)
`POST /api/mcp/tools/{tool_name}`
请求体示例:
```json
{
"key": "value"
}
```
### 获取指定服务器工具列表
`GET /api/mcp/servers/{server_id}/tools`
### 获取在线服务器工具列表(聚合)
`GET /api/mcp/servers/online/tools`
## 预启用工具调用接口
### 配置预启用工具
`POST /api/mcp/servers/{server_id}/tools/{tool_name}/prestart`
请求体示例:
```json
{
"enabled": true,
"params": {
"query": "{{question}}"
},
"include_history": true,
"allow_function_call": false
}
```
### 获取可运行的预启用工具列表
`GET /api/mcp/prestart/runnable`
### 调用单个预启用工具(自动连接服务器)
`POST /api/mcp/servers/{server_id}/prestart/{tool_name}/call`
请求体示例:
```json
{
"params": {
"query": "{{question}}"
},
"question": "用户问题",
"keep_connection": true
}
```
### 批量调用所有预启用工具(自动连接服务器)
`POST /api/mcp/prestart/call`
请求体示例:
```json
{
"question": "用户问题",
"keep_connection": true,
"server_ids": [1, 2],
"tool_names": ["tool_a", "tool_b"]
}
```
说明:
- `question` 必填,用于替换 `params` 中的 `{{question}}` 占位符。
- `server_ids``tool_names` 为空时表示对全部预启用工具生效。

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

@@ -1,6 +1,7 @@
import http.client
import urllib.parse
import json
import ssl
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
from core.authorize_tb import Authorize_Tb
@@ -9,6 +10,11 @@ from utils import util, config_util
from utils import config_util as cfg
import wave
# 创建不验证SSL证书的上下文用于服务器环境证书问题
_ssl_context = ssl.create_default_context()
_ssl_context.check_hostname = False
_ssl_context.verify_mode = ssl.CERT_NONE
class Speech:
def __init__(self):
self.key_ali_nls_key_id = cfg.key_ali_tss_key_id
@@ -63,7 +69,8 @@ class Speech:
__client = AcsClient(
self.key_ali_nls_key_id,
self.key_ali_nls_key_secret,
"cn-shanghai"
"cn-shanghai",
verify=False # 禁用SSL证书验证
)
__request = CommonRequest()
@@ -98,7 +105,7 @@ class Speech:
# 设置HTTPS Body。
body = {'appkey': self.ali_nls_app_key, 'token': self.token,'speech_rate':0, 'text': text, 'format': 'mp3', 'sample_rate': 16000, 'voice': config_util.config["attribute"]["voice"]}
body = json.dumps(body)
conn = http.client.HTTPSConnection(host)
conn = http.client.HTTPSConnection(host, context=_ssl_context)
conn.request(method='POST', url=url, body=body, headers=httpHeaders)
# 处理服务端返回的响应。
response = conn.getresponse()