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

Model I/O进阶

目录

  • 1 结构化输出 OutputParser
    • 1.1 普通 JsonOutputParser(提示约束)
    • 1.2 原生结构化输出(厂商接口能力)
    • 1.3 其他解析器
  • 2 ChatPromptTemplate 提示词模板
  • 3 LCEL 链式表达式(核心 Runnable)
    • 3.1 Runnable 统一接口
    • 3.2 RunnableSequence 串行流水线(最常用)
    • 3.3 RunnableParallel 并行执行
    • 3.4 其他常用 Runnable
  • 4 本章小结

1 结构化输出 OutputParser

1.1 普通 JsonOutputParser(提示约束)

流程: 1 用 Pydantic 定义输出结构 2 解析器生成格式要求注入 System 提示 3 LLM 输出后自动转为 Python 对象

frompydanticimportBaseModel,Fieldfromlangchain_openaiimportChatOpenAIfromlangchain_core.output_parsersimportJsonOutputParserclassPrimeModel(BaseModel):prime:list[int]=Field(description="1000-10000素数列表")count:int=Field(description="素数个数")parser=JsonOutputParser(pydantic_object=PrimeModel)llm=ChatOpenAI(temperature=0)prompt=parser.get_format_instructions()res=llm.invoke([("system",prompt),("user","生成5个1000~10000素数")])data=parser.invoke(res)print(type(data))

1.2 原生结构化输出(厂商接口能力)

OpenAI/Gemini 支持with_structured_output,无需手写约束提示:

classEvent(BaseModel):name:strdate:strpeople:list[str]llm=ChatOpenAI(temperature=0)new_llm=llm.with_structured_output(Event)res=new_llm.invoke("Alice周五参加科技展")print(res.name)

1.3 其他解析器

内置解析器:列表、XML、Markdown、纯文本 StrOutputParser

2 ChatPromptTemplate 提示词模板

支持变量占位,动态拼接对话上下文

fromlangchain_core.promptsimportChatPromptTemplate prompt=ChatPromptTemplate.from_messages([("system","你是{product}专业评测师"),("human","分析{aspect1}和{aspect2}优缺点")])msg=prompt.invoke({"product":"iPhone16","aspect1":"性能","aspect2":"续航"})

3 LCEL 链式表达式(核心 Runnable)

3.1 Runnable 统一接口

所有组件(提示 / 模型 / 解析器)都拥有invoke/stream/batch/ainvoke,支持管道|拼接

3.2 RunnableSequence 串行流水线(最常用)

提示模板 → LLM → 输出解析

prompt=ChatPromptTemplate.from_template("讲{topic}段子")llm=init_chat_model(model="gpt-4o-mini",model_provider="openai")parser=StrOutputParser()# LCEL管道chain=prompt|llm|parser res=chain.invoke({"topic":"大模型"})print(res)

3.3 RunnableParallel 并行执行

同时运行多条链路,合并结果

trans_en=PromptTemplate.from_template("翻译{text}为英文")|llm|StrOutputParser()trans_kr=PromptTemplate.from_template("翻译{text}为韩文")|llm|StrOutputParser()# 并行字典写法map_chain={"en":trans_en,"kr":trans_kr}res=map_chain.invoke({"text":"人工智能技术"})print(res)

3.4 其他常用 Runnable

1 RunnableLambda:普通函数包装进流水线 2 RunnableBranch:if 分支路由 3 RunnablePassthrough:透传原始输入 4 RunnableWithFallbacks:异常降级兜底

4 本章小结

1 OutputParser 实现结构化 JSON 输出,分提示约束、原生两种方案 2 ChatPromptTemplate 实现动态变量提示词 3 LCEL 管道|快速组装业务流程,串行 / 并行是开发主流

http://www.jsqmd.com/news/1358048/

相关文章:

  • 如何免费批量导出Notion页面为PDF?终极解决方案指南
  • 找大田作物专用桶混助剂厂家 - 中媒介
  • Java Lambda表达式详解:语法、应用与性能优化
  • Python 中的多态,不止是“重写”——聊聊鸭子类型与动态协议
  • 二层网络环路与广播风暴:从原理到排查与STP防护详解
  • 化工腐蚀性液体灌装机定制 - 中媒介
  • hermes使用OpenCode Go订阅模型慢?本地curl_cffi代理一招搞定
  • AI赋能测试:Test-Master Skills如何重塑测试工程师的工作流
  • Java+微信小程序实现智能会议室管理系统
  • 从零上手Claude Code:Node.js环境配置、API Key获取与核心使用指南
  • 游戏专用调度器:基于eBPF和Rust的低延迟优化实践
  • 2026AI检索变局:为什么传统营销失效?GEO生成式优化落地逻辑与避坑指南
  • 想租赁临时办公用的数码设备 - 中媒介
  • Java异常处理机制:从原理到最佳实践
  • Vibe Coding:提升开发效率与愉悦感的双轨实践指南
  • PYTHON+AI LLM DAY ONE HUNDRED AND THIRTY-ONE
  • Goldberg Steam Emulator技术深度解析:构建无需Steam的局域网游戏环境实战指南
  • 日本求职SPI测试全解析:从适应性测评原理到高效备考策略
  • 机房加湿设备哪家效果好? - 中媒介
  • Kimi K3大模型技术解析:从核心能力到本地部署与API集成实践
  • word怎么压缩到10M以下?PDF与文档压缩工具盘点,覆盖图片瘦身、格式转换与在线轻量处理
  • 终极农历公历转换指南:3步掌握传统文化数字化开发
  • 健身器材整体采购哪家推荐? - 中媒介
  • 高校班级管理系统全栈开发:微信小程序+Spring Boot实战
  • DeepSeek论文降AI率实战:从85%降至15%的核心方法
  • 深圳防护用品生产哪家规模大? - 中媒介
  • Pelican基准测试:评估AI模型真实能力的核心工具与实践指南
  • Seraphine深度解析:基于LCU API的英雄联盟数据集成框架如何重构游戏体验
  • 教小白安装rocky10linux系统
  • 专科生必备:9款AI时代高效办公工具测评