作为框架开发者,最近我在开发 promptulate 和 gcop 的遇到过以下问题:

  1. 用户需要在多个项目中使用你的框架,但每个项目的配置都不一样(比如不同的 API Key 、模型参数等)
  2. 手写配置合并逻辑,要考虑默认值、用户全局配置、项目配置的覆盖关系
  3. 配置值类型不安全,需要手动转换/验证

我参考了 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 ⭐️

举报· 106 次点击
登录 注册 站外分享
快来抢沙发
0 条回复  
返回顶部