当前位置: 首页 > wzjs >正文

域名刚到期就被跳转到其他网站东莞商城网站建设

域名刚到期就被跳转到其他网站,东莞商城网站建设,企业品牌宣传推广,化妆品网站建设零基础langchain实战一:模型、提示词和解析器-CSDN博客 书接上文 大模型输出格式化 在下面例子中:我们需要将大模型的输出格式化成json。 import os from dotenv import load_dotenvload_dotenv() # 加载 .env 文件 api_key os.getenv("DEEPS…

零基础langchain实战一:模型、提示词和解析器-CSDN博客

书接上文

大模型输出格式化

在下面例子中:我们需要将大模型的输出格式化成json。

import os
from dotenv import load_dotenvload_dotenv()  # 加载 .env 文件
api_key = os.getenv("DEEPSEEK_API_KEY")from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="deepseek-chat",temperature=0.0,max_tokens=None,timeout=None,max_retries=2,base_url="https://api.deepseek.com",api_key=api_key,
)

 调用ResponseSchema定义输出格式json:

最后生成的json格式为:

from langchain.output_parsers import ResponseSchema
from langchain.output_parsers import StructuredOutputParseraffection_schema = ResponseSchema(name="affection", description="评价这段话总体的情感是积极的还是消极的,并为其打分,输出为-1.0 至 1.0 的一位小数")
positive_content_schema = ResponseSchema(name="positive", description="总结这段话评价了物品的哪些优点,列举出物品的优点。如果没有输出 None")
negative_content_schema = ResponseSchema(name="negative", description="总结这段话评价了物品的哪些缺点,列举出物品的缺点。如果没有输出 None")response_schema = [affection_schema, positive_content_schema, negative_content_schema]

因此实例化三个ResponseSchema,一个相当于json中的一个key。

并将三个实例添加到列表中。

output_parser = StructuredOutputParser.from_response_schemas(response_schema)
format_instructions = output_parser.get_format_instructions()

StructuredOutputParser:创建一个 结构化输出解析器,用于将 LLM 的文本输出解析为预定义的结构化格式。

format instructions:生成 格式化指令,这些指令会直接插入到提示模板中,指导 LLM 如何按结构化格式输出结果。

按照之前的方法定义system_prompt:

from langchain.prompts import ChatPromptTemplateprompt = """下面这段话是用户评价商品的一段话 \请你帮忙判断这段话总体来说为“好评”还是“差评” \告诉我用户为物品的哪些特征打“好评” \哪些特征打差评text:{comment}{format_instructions}
"""prompt_template = ChatPromptTemplate.from_template(prompt)prompt_template.messages[0].prompt
comment = """尺码正常买就行,不用买太大。 \鞋底非常高~鞋楦较宽,高脚背胖脚也能穿。 \鞋底非常软弹,很容易踩开,确实超出预期。 \鞋子非常轻,真的很轻哈哈哈~差不多和竞训碳板鞋一样轻了[爱心_blue][爱心_blue]。 \因为是防泼水鞋面嘛,所以鞋面有点不透气,室外温度30度穿这鞋会有点热,可以秋天再入手。 \补充一下哈,因为是全黑的鞋,所以刚开始看起来会有点怪怪的,时间长了就更耐看了 """
messages = prompt_template.format_messages(comment = comment,format_instructions = format_instructions)print(messages[0].content)

输出如下:

调用大模型:

response = llm.invoke(messages)
print(response.content)

输出如下:

最后调用先前的 结构化输出解析器 将大模型输出结果解析成json格式:

output_dict = output_parser.parse(response.content)

最后的结果为:

总结:

LangChain 中的 Output Parser(输出解析器)Prompt Template(提示模板) 相当于在调用大模型的输入前输出后添加了两个中间层,它们共同作用,确保大模型的输出符合预定义的格式规范。这种设计的核心目标是让大模型的输出更结构化、可解析、可验证,从而满足实际应用的需求。

Q&A:

  •         为什么需要这两个中间层?

1, 解决自由文本的不确定性

大模型默认输出是自由文本,但实际应用中需要结构化数据(如 JSON、表格)。例如,智能客服需要提取订单号、价格、物流信息等字段。

示例:如果用户问“我的订单什么时候到货?”,模型需要从回答中提取字段,而不是返回一段话。


 2,提高开发效率和可维护性
通过预定义格式,开发者无需手动处理自由文本的解析逻辑,框架自动完成字段提取和类型校验。
优势:
        减少代码量(如 50% 以上的开发效率提升)。
        错误隔离性强(格式校验失败时抛出明确异常,如 OutputParserException)。


3,适配复杂业务场景
对于需要多步骤推理的任务(如旅行规划、数据分析),模型需要按步骤调用工具(如天气查询、航班搜索),每一步的输出都需要结构化。

http://www.dtcms.com/wzjs/92224.html

相关文章:

  • 在国外社交网站做产品推广seo快速排名培训
  • 科威网络做网站怎么样国际热点事件
  • 长春网站建设有什么百度问答平台
  • 北京做网站灰色关键词排名收录
  • 门户网站建设的好处厦门人才网个人会员
  • 工程建设期刊网站军事新闻最新消息今天
  • 班级网站建设主题如何免费推广自己的产品
  • 常州网站外包北京疫情最新新闻
  • 一个服务器做一样的网站灯塔seo
  • 最好的网站建设组织域名访问网站怎么进入
  • wordpress如何加插件广告优化师的工作内容
  • 义乌做网站多少钱营销运营主要做什么
  • 买好域名后怎么做网站指定关键词排名优化
  • 南浔做网站seo优化师
  • 做网站送白酒引擎优化seo
  • 如何做网站方案静态网页制作
  • 有没有在网上做ps赚钱的网站seo排名快速上升
  • wamp网站根目录配置惠州疫情最新情况
  • 做兼职的网站是不是真的百度站长平台网页版
  • 专门做卫生间效果图的网站2022年网络流行语
  • 怎么知道网站是谁做的seo每日工作内容
  • 北京做网络工程公司的网站南宁百度seo建议
  • 两学一做网站视频百度一下app下载安装
  • 编程网站排名淘宝seo培训
  • 网站建设集团郑州网站优化
  • wordpress广告牌排名优化网站建设
  • 百度做网站不给FTP密码bt磁力在线种子搜索神器
  • 2023军文职人员招聘网官网长沙哪里有网站推广优化
  • 哈尔滨做网站找哪家好小说关键词提取软件
  • 营口 建设街道 政府网站百度软件应用中心