54 lines
3.2 KiB
Markdown
54 lines
3.2 KiB
Markdown
# LLM Checker
|
||
|
||
`type: llm` 用于大模型服务应用层健康检查。
|
||
|
||
## 配置项
|
||
|
||
| 字段 | 说明 | 必填 | 默认值 |
|
||
| --------------------- | ----------------------------------------------------- | ---- | ------- |
|
||
| `llm.provider` | 模型提供方:`openai`、`openai-responses`、`anthropic` | 是 | 无 |
|
||
| `llm.url` | API base URL | 是 | 无 |
|
||
| `llm.model` | 模型名称 | 是 | 无 |
|
||
| `llm.prompt` | 单轮 prompt | 是 | 无 |
|
||
| `llm.mode` | 调用模式:`http` 或 `stream` | 否 | `http` |
|
||
| `llm.key` | API key,支持 `${VAR}` 变量替换 | 否 | `""` |
|
||
| `llm.authToken` | Bearer token,仅 `anthropic` provider,与 `key` 互斥 | 否 | 无 |
|
||
| `llm.headers` | 附加请求头 | 否 | 无 |
|
||
| `llm.ignoreSSL` | 忽略 HTTPS 证书校验 | 否 | `false` |
|
||
| `llm.options` | 生成选项 | 否 | 无 |
|
||
| `llm.providerOptions` | Provider 专属选项 | 否 | 无 |
|
||
|
||
`llm.options` 支持 `maxOutputTokens`(默认 `16`)、`temperature`(默认 `0`)、`topP`、`topK`、`presencePenalty`、`frequencyPenalty`、`stopSequences`、`seed`。
|
||
|
||
## expect 校验项
|
||
|
||
| 字段 | 说明 | 必填 | 默认值 |
|
||
| ----------------- | --------------------------------------------------------------------------- | ---- | ------- |
|
||
| `status` | 可接受的状态码列表,支持精确码和范围(如 `"2xx"`) | 否 | `[200]` |
|
||
| `headers` | 响应头校验,使用 `KeyedExpectations` | 否 | 无 |
|
||
| `output` | 模型输出校验,使用 `ContentExpectations` 数组 | 否 | 无 |
|
||
| `finishReason` | finish reason 校验,使用 `ValueMatcher` | 否 | 无 |
|
||
| `rawFinishReason` | 原始 finish reason 校验,使用 `ValueMatcher` | 否 | 无 |
|
||
| `usage` | Token usage 校验,支持 `inputTokens`、`outputTokens`、`totalTokens` matcher | 否 | 无 |
|
||
| `stream` | 流式断言,支持 `completed`、`firstTokenMs` matcher,仅 `mode: stream` | 否 | 无 |
|
||
| `durationMs` | 完整执行耗时校验,使用 `ValueMatcher` | 否 | 无 |
|
||
|
||
## 示例
|
||
|
||
```yaml
|
||
- id: "llm-openai-probe"
|
||
name: "OpenAI 健康检查"
|
||
type: llm
|
||
llm:
|
||
provider: openai
|
||
url: "https://api.openai.com/v1"
|
||
model: "gpt-4o-mini"
|
||
prompt: "Say OK"
|
||
key: "${OPENAI_API_KEY}"
|
||
expect:
|
||
status: [200]
|
||
finishReason: "stop"
|
||
output:
|
||
- contains: "OK"
|
||
```
|