kirara_ai/web/api/dispatch/README.md
调度规则 API 提供了消息处理规则的管理功能。调度规则决定了如何根据消息内容选择合适的工作流进行处理。
GET/backend-api/api/dispatch/rules
获取所有已配置的调度规则。
响应示例:
{
"rules": [
{
"rule_id": "chat_normal",
"name": "普通聊天",
"description": "普通聊天,使用默认参数",
"workflow_id": "chat:normal",
"priority": 5,
"enabled": true,
"rule_groups": [
{
"operator": "or",
"rules": [
{
"type": "prefix",
"config": {
"prefix": "/chat"
}
},
{
"type": "keyword",
"config": {
"keywords": ["聊天", "对话"]
}
}
]
}
],
"metadata": {
"category": "chat",
"permission": "user",
"temperature": 0.7
}
}
]
}
GET/backend-api/api/dispatch/rules/{rule_id}
获取指定规则的详细信息。
POST/backend-api/api/dispatch/rules
创建新的调度规则。
请求体:
{
"rule_id": "chat_creative",
"name": "创意聊天",
"description": "创意聊天,使用更高的温度参数",
"workflow_id": "chat:creative",
"priority": 5,
"enabled": true,
"rule_groups": [
{
"operator": "and",
"rules": [
{
"type": "prefix",
"config": {
"prefix": "/creative"
}
},
{
"type": "keyword",
"config": {
"keywords": ["创意", "发散"]
}
}
]
}
],
"metadata": {
"category": "chat",
"permission": "user",
"temperature": 0.9
}
}
PUT/backend-api/api/dispatch/rules/{rule_id}
更新现有规则。
DELETE/backend-api/api/dispatch/rules/{rule_id}
删除指定规则。
POST/backend-api/api/dispatch/rules/{rule_id}/enable
启用指定规则。
POST/backend-api/api/dispatch/rules/{rule_id}/disable
禁用指定规则。
type: 规则类型 (prefix/keyword/regex)config: 规则类型特定的配置operator: 组合操作符 (and/or)rules: 规则列表rule_id: 规则唯一标识符name: 规则名称description: 规则描述workflow_id: 关联的工作流IDpriority: 优先级(数字越大优先级越高)enabled: 是否启用rule_groups: 规则组列表(组之间是 AND 关系)metadata: 元数据(可选)根据消息前缀进行匹配,例如 "/help"。
配置参数:
prefix: 要匹配的前缀检查消息中是否包含指定关键词。
配置参数:
keywords: 关键词列表使用正则表达式进行匹配,提供最灵活的匹配方式。
配置参数:
pattern: 正则表达式模式新版本的调度规则系统支持复杂的条件组合:
例如,可以创建如下规则:
{
"rule_groups": [
{
"operator": "or",
"rules": [
{ "type": "prefix", "config": { "prefix": "/creative" } },
{ "type": "keyword", "config": { "keywords": ["创意", "发散"] } }
]
},
{
"operator": "and",
"rules": [
{ "type": "regex", "config": { "pattern": ".*问题.*" } },
{ "type": "keyword", "config": { "keywords": ["帮我", "请问"] } }
]
}
]
}
这个规则表示:
所有 API 端点在发生错误时都会返回适当的 HTTP 状态码和错误信息:
{
"error": "错误描述信息"
}
常见状态码:
import requests
rule_data = {
"rule_id": "chat_creative",
"name": "创意聊天",
"description": "创意聊天模式",
"workflow_id": "chat:creative",
"priority": 5,
"enabled": True,
"rule_groups": [
{
"operator": "or",
"rules": [
{
"type": "prefix",
"config": {
"prefix": "/creative"
}
},
{
"type": "keyword",
"config": {
"keywords": ["创意", "发散"]
}
}
]
}
]
}
response = requests.post(
'http://localhost:8080/api/dispatch/rules',
headers={'Authorization': f'Bearer {token}'},
json=rule_data
)
import requests
response = requests.put(
'http://localhost:8080/api/dispatch/rules/chat_creative',
headers={'Authorization': f'Bearer {token}'},
json={"priority": 8}
)