SuperAPI AI 工具集

dspy-adapters

智能体与模型

查看项目

更新于 10-16 05:44

技能介绍

适配器位于 DSPy 模块与语言模型之间,负责两件事:Format(把签名、少样本示例与输入转为提示)和 Parse(从模型原始文本中提取输出字段并按声明的 Python 类型转换)。适配器不直接调用,而是全局或按模块配置,由 DSPy 后台使用。

内置四种适配器。ChatAdapter 为默认,用 [[ ## field_name ## ]] 分隔字段并按字段头解析,解析失败自动回退 JSONAdapter(可用 use_json_adapter_fallback=False 关闭),构造函数支持 callbacks、use_native_function_calling、native_response_types 等。JSONAdapter 要求模型返回与输出字段匹配的 JSON,优先用原生结构化输出,回退 response_format: {"type": "json_object"},用 json_repair 解析并校验类型,适合 Pydantic 嵌套类型与生产批量任务。XMLAdapter 用 <field_name>value</field_name> 标签格式化并按正则解析,适合对 XML 提示更稳的模型。TwoStepAdapter 面向 o1、o3 等推理模型:主模型收到无格式约束的自然语言提示,再由一个便宜的抽取模型解析结果,需必填参数 extraction_model,代价是每次预测两次 LM 调用。

配置方式:全局 dspy.configure(lm=lm, adapter=adapter);用 with dspy.context(adapter=json_adapter) 临时切换;用 pipeline.extract.set_adapter(dspy.JSONAdapter()) 按模块指定。也可继承 Adapter 基类自定义 format() 与 parse()(返回输出字段到值的字典)。

注意:JSONAdapter 会加入 JSON 约束,可能降低开放式创作或摘要质量,仅在需要可靠结构化输出时用;ChatAdapter 已自带 JSON 回退,仅为修偶发解析错误无需全局切换;TwoStepAdapter 的抽取模型不能太弱,且主模型应为推理模型才划算;混合管线应使用 set_adapter 而非全局设置。BamlAdapter 来源存在但无文档,生产环境不建议使用。安装命令:npx skills add lebsral/DSPy-Programming-not-prompting-LMs-skills --skill <name>。