常见错误及解决方法
本文整理了 运行 vLLM Semantic Router 时常见的系统日志报错、原因分析及配置修复方案。
提示
可先尝试本页末尾的快速诊断命令。
配置加载错误
创建 ExtProc 服务器失败
Log 模式:
Failed to create ExtProc server: <error>
原因及修复:
| 原因 | 修复方法 |
|---|---|
| 配置路径无效 | 验证 --config 标志指向存在的 YAML 文件 |
| YAML 语法错误 | 使用 yq 或在线验证器验证 YAML |
| 缺少必填字段 | 检查所有必填字段是否存在 |
# 验证配置路径
./router --config /app/config/config.yaml
读取配置文件失败
Log 模式:
failed to read config file: <error>
修复方法:
- 验证文件存在:
ls -la config/config.yaml - 检查权限:
chmod 644 config/config.yaml - 确保路径是绝对路径或正确的相对路径
参见代码:cmd/main.go。
Cache 和存储错误
需要 Milvus 配置路径
Log 模式:
milvus config path is required
修复方法: 使用 Milvus 后端时设置 backend_config_path:
semantic_cache:
enabled: true
backend_type: "milvus"
backend_config_path: "config/milvus.yaml" # ← 添加此项
索引不存在且禁用了自动创建
Log 模式:
index <name> does not exist and auto-creation is disabled
修复方法: 在 Redis/Milvus 配置中启用自动创建:
# 在 config/redis.yaml 中
index:
auto_create: true # ← 启用此项
Redis 存储尚未实现
日志模式:
redis store not yet implemented
注意: Redis 响应存储尚不可用。请改用 memory 或 milvus:
semantic_cache:
backend_type: "memory" # 或 "milvus"
参见代码:pkg/cache 和 pkg/responsestore。
PII 和安全错误
请求被 PII 过滤器阻断
当请求因包含敏感信息(个人身份信息 PII)而被阻断时,您将看到类似以下的 403 Forbidden 响应:
{
"object": "error",
"message": "PII signal fired: rule=<name>, detected_types=[<types>], threshold=<score>",
"type": "pii_violation",
"param": null,
"code": 403
}
原因:路由器的 PII 模型在这个决策阶段检测到敏感信息(邮件、电话或身份证),且当前策略未将其加入白名单。
修复方法:
- 允许该 PII 类型(如果应该被允许)— 将其添加到信号规则的
pii_types_allowed中:
signals:
pii:
- name: "pii_allow_location"
threshold: 0.5
pii_types_allowed:
- "GPE" # 在此添加被拒绝的类型
- "ORGANIZATION"
- 提高阈值(如果是误报):
signals:
pii:
- name: "pii_deny_all"
threshold: 0.95 # 从默认的 0.5 提高
检测到 Jailbreak 攻击
日志模式:
Jailbreak detected: type=<type>, confidence=<score>
修复方法:
- 提高分数阈值(降低误报) — 更新信号规则:
signals:
jailbreak:
- name: "jailbreak_standard"
threshold: 0.85 # 从默认的 0.65 提高
- 为特定决策旁路检查(例如内部工具通道) — 在该决策的条件中不引用验证特征:
decisions:
# 该决策不引用任何 jailbreak 信号 → 无 jailbreak 检查
- name: "internal_decision"
priority: 100
rules:
operator: "OR"
conditions:
- type: "keyword"
name: "internal_keywords"
modelRefs:
- model: "internal-model"
参见代码:pii/policy.go 和 req_filter_jailbreak.go。
MCP 客户端错误
必须指定命令或 URL
日志模式:
either command or URL must be specified
修复方法: 指定传输配置:
# 对于 stdio 传输
mcp_clients:
my_client:
transport_type: "stdio"
command: "/path/to/mcp-server"
# 对于 HTTP 传输
mcp_clients:
my_client:
transport_type: "streamable-http"
url: "http://localhost:8080"