作为框架开发者,最近我在开发 promptulate 和 gcop 的遇到过以下问题:
- 用户需要在多个项目中使用你的框架,但每个项目的配置都不一样(比如不同的 API Key 、模型参数等)
- 手写配置合并逻辑,要考虑默认值、用户全局配置、项目配置的覆盖关系
- 配置值类型不安全,需要手动转换/验证
我参考了 VSCode 的配置系统设计了 Conftier ,让框架开发者可以像 VSCode 一样优雅地处理配置。
实际场景举例
假设你在开发一个 AI 框架:
# 框架开发者:定义配置结构
class OpenAIConfig(BaseModel):
api_key: str = ""
model: str = "gpt-4"
temperature: float = 0.7
# 用户:设置全局 API Key (~/.zeeland/myai/config.yaml)
api_key: "sk-xxx"
# 用户:项目特定配置 (./.myai/config.yaml)
model: "gpt-3.5-turbo" # 这个项目用不同的模型
temperature: 0.5 # 调整参数
Conftier 会自动处理配置的加载、合并、类型转换,框架开发者只需要专注业务逻辑。
主要特性
- 像 VSCode 一样的多层级配置:默认值 -> 用户配置 -> 项目配置
- 支持 Pydantic ,配置类型安全 + IDE 自动补全
- 内置 CLI 工具,用户可以方便地管理配置
- 自动合并配置,不用手写合并逻辑
文档: https://conftier.zeeland.top
GitHub: https://github.com/Undertone0809/conftier
如果你正在开发框架,欢迎试用和提建议,欢迎 star ⭐️
|