llm-api-benchmark-tool/docs/configuration.md
2025-04-21 18:19:09 +08:00

131 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 配置文档
本文档详细说明了LLM API基准测试工具的配置选项。
## 配置文件格式
配置文件使用YAML格式默认文件名为`config.yaml`。您可以通过命令行参数`-config`指定其他配置文件路径。
## 配置选项
### API配置
```yaml
api:
endpoint: "https://api.example.com/v1/completions" # API端点URL
api_key: "your_api_key" # API密钥
model: "gpt-3.5-turbo" # 模型名称
```
### 提示词模板配置
```yaml
prompt_templates:
short: # 短咨询提示词配置
target_tokens: 50 # 目标Token数±5%
templates: # 提示词模板列表
- "什么是{concept}"
- "请简要解释{concept}的基本原理。"
- "简述{topic}的主要观点。"
long: # 长文档提示词配置
target_tokens: 1000 # 目标Token数±5%
templates: # 提示词模板列表
- "请撰写一篇关于{country}历史的详细介绍,包括主要历史事件和文化发展。"
- "请对{topic}进行深入分析,包括其背景、现状、问题和未来发展趋势。"
```
提示词模板中可以使用以下占位符:
- `{country}`: 国家名称
- `{concept}`: 概念名称
- `{topic}`: 主题名称
- `{event}`: 事件名称
系统会自动替换这些占位符并根据目标Token数动态调整提示词长度。
### 请求配置
```yaml
requests:
- type: "short" # 提示词类型
weight: 0.7 # 权重(占比)
- type: "long"
weight: 0.3
```
权重总和应为1.0,表示各类型提示词的比例。
### 并发配置
```yaml
concurrency:
steps: [50, 200, 500] # 并发步骤
duration_per_step: 300 # 每个步骤的持续时间(秒)
```
系统会按照指定的并发步骤逐步增加并发用户数,每个步骤持续指定的时间。
### 超时配置
```yaml
timeout: 60 # 请求超时时间(秒)
```
### 泊松分布参数
```yaml
poisson_lambda: 1.0 # 请求间隔泊松分布参数
```
该参数控制请求间隔的随机性,模拟真实用户行为。
### 分词器配置
```yaml
tokenizer:
model: "gpt-3.5-turbo" # 用于tiktoken-go的分词器模型
```
## 完整配置示例
```yaml
api:
endpoint: "https://api.example.com/v1/completions"
api_key: "your_api_key"
model: "gpt-3.5-turbo"
prompt_templates:
short:
target_tokens: 50
templates:
- "什么是{concept}"
- "请简要解释{concept}的基本原理。"
- "简述{topic}的主要观点。"
- "{country}的首都是哪里?"
- "如何快速入门{concept}"
long:
target_tokens: 1000
templates:
- "请撰写一篇关于{country}历史的详细介绍,包括主要历史事件和文化发展。"
- "请对{topic}进行深入分析,包括其背景、现状、问题和未来发展趋势。"
- "请撰写一份关于{event}影响的综合报告,包括社会、经济和政治层面的分析。"
- "请详细介绍{concept}的技术原理、应用场景和未来发展方向。"
- "请撰写一篇关于{topic}的学术论文,包括研究背景、方法、结果和讨论。"
requests:
- type: "short"
weight: 0.7
- type: "long"
weight: 0.3
concurrency:
steps: [50, 200, 500]
duration_per_step: 300 # 秒
timeout: 60 # 秒
poisson_lambda: 1.0 # 请求间隔泊松分布参数
tokenizer:
model: "gpt-3.5-turbo" # 用于tiktoken-go的分词器模型
```