SuperAPI AI 工具集

dspy-signatures

通用与其它

查看项目

更新于 10-15 23:58

技能介绍

用途:DSPy Signatures 用于为语言模型调用声明输入/输出契约,即字段名、类型与描述。你只定义 I/O 规格,DSPy 会自动把它编译成优化后的提示词。

主要能力:支持两种风格。内联签名是带 -> 的字符串,如 "question -> answer"、"text -> label: bool",类型后缀支持 str(默认)、int、float、bool、list[str]。类式签名继承 dspy.Signature,可加类型约束、字段描述,并用 docstring 作为任务指令。InputField 与 OutputField 支持 desc(自然语言描述)和 type_(类型约束,推荐改用内联注解)。复杂或嵌套输出可用 Pydantic BaseModel 作为输出类型,DSPy 自动处理序列化与校验。还支持 dspy.Image、dspy.History、dspy.Audio、dspy.Code 等特殊输入类型。

使用方式:原型阶段先用内联签名;需要类型约束、字段描述或多个输出时改用类式签名。类式签名示例:class ParseInvoice(dspy.Signature) 中定义 text: str = dspy.InputField(desc="Raw invoice text") 与 invoice: Invoice = dspy.OutputField(desc="Parsed invoice data"),再配合 dspy.ChainOfThought 等模块调用。动态签名可在调用时覆盖指令,或用 with_instructions、append、delete 修改字段。安装技能命令:npx skills add lebsral/DSPy-Programming-not-prompting-LMs-skills --skill <name>。

适用场景:简单抽取与问答、分类与排序、结构化数据解析、输出映射到数据库模型或 API 响应等。

限制与注意:字段名会直接进入生成的提示词,应取描述性名称;docstring 是主要任务指令,需写得明确;输出字段超过 4-5 个会降低质量,应拆分为多次调用;字段 desc 值不会被优化器(GEPA、MIPROv2、COPRO)调优;运行时用列表构造 Literal 需写成 Literal[tuple(["a", "b"])];Pydantic 输出若校验失败说明类型约束过严,应放宽或补充 desc 说明格式。简单任务不要过度使用类式签名。