EnumOutputParser枚举输出解析器示例
from langchain.output_parsers.enum import EnumOutputParser from enum import Enum #定义枚举类型 class Colors(Enum): RED = "红色" BROWN = "棕色" BLACK = "黑色" WHITE = "白色" YELLOW = "黄色" #制定输出解析器 parse = EnumOutputParser(enum=Colors) #制定提示词模版 promptTemplate = PromptTemplate.from_template( """{person}的皮肤主要是什么颜色? {instructions}""" ) #解析器的解析格式:原本解析器的英文解析格式会报错 # instructions = parse.get_format_instructions() instructions = "响应结果请选择以下选项之一:红色、棕色、黑色、白色和黄色。" #提示词部分补充 prompt = promptTemplate.partial(instructions=instructions) chain = prompt | model | parse chain.invoke({"person":"亚洲人"})
**注意:**直接使用输出解析器原始的英文的解析格式作用到提示词中可能由于中英文掺杂和中英文语义的区别导致模型报错,因此,可以适当将输出解析器的解析格式手动翻译成英文后再用!
# 导入LangChain的枚举输出解析器和Python的枚举类 from langchain.output_parsers.enum import EnumOutputParser from enum import Enum
这行代码导入了两个必要的模块:LangChain 的 EnumOutputParser(用于解析模型输出为枚举类型)和 Python 标准库的 Enum(用于创建枚举类)。
# 定义枚举类型Colors,包含五种颜色 class Colors(Enum): RED = "红色" BROWN = "棕色" BLACK = "黑色" WHITE = "白色" YELLOW = "黄色"
这里定义了一个名为 Colors 的枚举类,包含五个成员,每个成员代表一种颜色,值为对应的中文颜色名称。
# 创建枚举输出解析器,指定使用Colors枚举类 parse = EnumOutputParser(enum=Colors)
创建了一个 EnumOutputParser 实例,用于将模型的文本输出解析为 Colors 枚举类型。
# 创建提示词模板 promptTemplate = PromptTemplate.from_template( """{person}的皮肤主要是什么颜色? {instructions}""" )
from enum import Enum # Colors类继承了Enum类 class Colors(Enum): RED = "红色" GREEN = "绿色" # 可以使用Enum类提供的功能 print(Colors.RED.name) # 输出: RED (来自Enum类) print(Colors.RED.value) # 输出: 红色 (来自Enum类) # 遍历所有成员 (来自Enum类) for color in Colors: print(color)
class Colors(Enum)类的一个解释
RED 红色 Colors.RED Colors.GREEN

浙公网安备 33010602011771号