配置文件说明
.env 文件
.env 用于存放环境变量,本框架主要读取日志配置与 Langfuse 配置。你可以在项目的工作目录创建 .env,也可以直接通过系统环境变量覆盖。
日志相关环境变量
# 日志级别(默认 DEBUG)
# 可选值:DEBUG, INFO, WARNING, ERROR, CRITICAL
LOG_LEVEL=DEBUG
# 日志目录(默认 logs)
LOG_DIR=logs
支持的环境变量
环境变量 |
说明 |
可选值 |
默认值 |
|---|---|---|---|
|
控制台与文件日志级别 |
|
|
|
日志输出目录 |
任意路径 |
|
环境变量优先级
优先级顺序(从高到低):
运行时环境变量(如
export LOG_LEVEL=INFO).env文件中的配置框架默认值
provider.json 文件
provider.json 用于配置模型提供商、API 密钥与限流参数。OpenAICompatible.load_from_json_file(...) 读取此文件并返回一个二维字典:providers[provider_id][model_name]。
配置文件结构
provider.json 采用 提供商 -> 模型配置列表 的结构,每个模型配置包含 model_name 与密钥等参数:
{
"openai": [
{
"model_name": "gpt-3.5-turbo",
"api_keys": ["sk-test-key-1", "sk-test-key-2"],
"base_url": "https://api.openai.com/v1",
"max_retries": 5,
"retry_delay": 1.0,
"rate_limit_capacity": 20,
"rate_limit_refill_rate": 3.0
},
{
"model_name": "gpt-4",
"api_keys": ["sk-test-key-3"],
"base_url": "https://api.openai.com/v1",
"max_retries": 5,
"retry_delay": 1.0,
"rate_limit_capacity": 10,
"rate_limit_refill_rate": 1.0
}
],
"zhipu": [
{
"model_name": "glm-4",
"api_keys": ["zhipu-test-key-1", "zhipu-test-key-2"],
"base_url": "https://open.bigmodel.cn/api/paas/v4/",
"max_retries": 3,
"retry_delay": 0.5,
"rate_limit_capacity": 15,
"rate_limit_refill_rate": 2.0
}
]
}
配置参数说明
参数 |
类型 |
说明 |
示例 |
|---|---|---|---|
|
字符串 |
模型名称(作为索引 key) |
|
|
数组 |
API 密钥列表(支持负载均衡) |
|
|
字符串 |
API 服务地址 |
|
|
数字 |
最大重试次数 |
|
|
浮点数 |
重试间隔(秒) |
|
|
数字 |
令牌桶容量 |
|
|
浮点数 |
令牌补充速率(tokens/秒) |
|
加载和使用
from SimpleLLMFunc import OpenAICompatible, llm_function
models = OpenAICompatible.load_from_json_file("provider.json")
gpt35 = models["openai"]["gpt-3.5-turbo"]
@llm_function(llm_interface=gpt35)
async def my_task(text: str) -> str:
"""处理文本的任务"""
pass
最佳实践
多密钥负载均衡:同一模型配置多个 key,避免单 key 限流。
按模型调整限流:高成本模型设置更保守的
rate_limit_capacity与rate_limit_refill_rate。避免重复
model_name:同一 provider 内的model_name将作为索引键,重复会覆盖。