墨淳雅 发表于 2026-2-3 13:50:03

AI开发-python-langchain框架(1-9 返回字符串列表-格式解析器)

     大模型输出结果通常都是文本信息,如何让他按照你期望的格式输出?
     这段代码演示了如何使用LangChain将大语言模型的自由文本输出转换为结构化的字符串列表。核心目标是让模型返回逗号分隔的多个值,并通过专用解析器自动拆分为Python列表。
     CommaSeparatedListOutputParser专用于解析逗号分隔的文本,自动处理空格、引号等边界字符,输出类型为List。与StrOutputParser返回纯字符串不同,它强制将响应拆分为离散元素,适用于多值提取场景。     提示词设计必须显式约束输出格式。通过partial_variables注入格式指令(如"内容1, 内容2, 内容3"),引导模型生成符合解析器要求的纯列表文本。若缺少格式约束,模型可能返回自然语言描述,导致解析器机械分割产生语义错误。 代码如下:from langchain.output_parsers import CommaSeparatedListOutputParser
from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
import os

#输出-字符串列表
output_parser = CommaSeparatedListOutputParser()

#这里指定分隔符
format_instructions = "您的响应应该是csv格式的逗号分隔值的列表,例如:'内容1, 内容2, 内容3'"

#构建提示词-给出样例,提高返回的准确率
prompt = PromptTemplate(
    template="{format_instructions}\n请列出五个 {subject}.",
    input_variables=["subject"],
    partial_variables={"format_instructions": format_instructions},
)

#输出提示词
print('#######################')
print(prompt.invoke({"subject": "宠物狗的品种"}).text)
print('#######################')

llm = ChatOpenAI(
    api_key=os.getenv("DEEPSEEK_API_KEY"),
    base_url=os.getenv("BASE_URL"),# Deepseek 的 API 基础地址
    model="deepseek-v3:671b",# Deepseek 对话模型(可选:deepseek-chat-pro 等高级模型)
    temperature=0.7,# 温度参数(0-1,越低越稳定)
    max_tokens=1024# 最大生成 tokens
)


chain = prompt | llm | output_parser

result = chain.invoke({"subject": "宠物狗的品种"})
print(result) 输出结果如下:
#######################
您的响应应该是csv格式的逗号分隔值的列表,例如:'内容1, 内容2, 内容3'
请列出五个 宠物狗的品种.
#######################
["'拉布拉多", '金毛寻回犬', '德国牧羊犬', '贵宾犬', "比格犬'"]

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

赏勿 发表于 2026-2-8 07:20:39

喜欢鼓捣这些软件,现在用得少,谢谢分享!

蛟当罟 发表于 2026-2-8 13:24:31

感谢发布原创作品,程序园因你更精彩

印萍 发表于 2026-2-10 03:41:52

谢谢楼主提供!

申屠梓彤 发表于 2026-2-11 04:23:00

前排留名,哈哈哈

戈森莉 发表于 2026-2-11 12:20:57

东西不错很实用谢谢分享

梁宁 发表于 2026-2-12 10:47:55

懂技术并乐意极积无私分享的人越来越少。珍惜

喙审 发表于 2026-2-13 13:26:43

收藏一下   不知道什么时候能用到

艾曼语 发表于 2026-2-18 04:24:30

不错,里面软件多更新就更好了

穆望 发表于 2026-2-20 22:33:48

过来提前占个楼

尝琨 发表于 2026-2-21 12:52:03

不错,里面软件多更新就更好了

铵滔 发表于 2026-2-22 03:53:04

谢谢分享,试用一下

阎一禾 发表于 2026-2-24 08:12:47

东西不错很实用谢谢分享

碛物 发表于 2026-2-27 12:08:40

这个有用。

鞣谘坡 发表于 2026-3-8 07:38:00

感谢分享,学习下。

盖彗云 发表于 2026-3-10 08:37:46

感谢分享,下载保存了,貌似很强大

何玲 发表于 2026-3-11 05:45:39

感谢发布原创作品,程序园因你更精彩

咒卖箴 发表于 2026-3-12 04:17:36

很好很强大我过来先占个楼 待编辑
页: [1]
查看完整版本: AI开发-python-langchain框架(1-9 返回字符串列表-格式解析器)