尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
LangChain--1--prompt、output格式、LCEL示例
环境本地使用ollama部署的deepseek-r1:1.5b模型本文示例包含:[1] 非LCEL的调用方法[2] LCEL的调用方法[3] prompt template的简单使用除了PromptTemplate模板还有一些其它模板可去查看官网[4] 输出json格式、pydantic对象、字符串格式[一次输出]、字符串格式[流式输出]。除了这些还有其它的输出方式比如xml等可去官网查看示例代码frompydanticimportBaseModel,Fieldfromlangchain_community.llmsimportOllamafromlangchain.promptsimportPromptTemplatefromlangchain.schema.runnableimportRunnablePassthroughclassAdd(BaseModel):a:intField(description第一个整数)b:intField(description第二个整数)result:intField(description两个整数的求和结果)# 初始化LLMllmOllama(modeldeepseek-r1:1.5b,base_urlhttp://localhost:11434,temperature0)# 1 非LCEL 输出jsonprint(1 非LCEL 输出json)fromlangchain_core.output_parsersimportJsonOutputParser json_parserJsonOutputParser(pydantic_objectAdd)prompt_templatePromptTemplate(template计算两个整数的和。\n用户输入{query}\n{format_instructions},input_variables[query],partial_variables{format_instructions:json_parser.get_format_instructions()})query5 加 3 等于几promptprompt_template.format_prompt(queryquery)outputllm.invoke(prompt)print(json_parser.invoke(output))# 2 非LCEL 输出pydantic对象print(2 非LCEL 输出pydantic对象)fromlangchain_core.output_parsersimportPydanticOutputParser pydantic_parserPydanticOutputParser(pydantic_objectAdd)prompt_templatePromptTemplate(template计算两个整数的和。\n用户输入{query}\n{format_instructions},input_variables[query],partial_variables{format_instructions:pydantic_parser.get_format_instructions()})query5 加 3 等于几promptprompt_template.format_prompt(queryquery)outputllm.invoke(prompt)respydantic_parser.invoke(output)print(res,|,res.a,res.b,res.result)# 3 LCEL 字符串流式输出 带有json字符串print(3 LCEL 字符串流式输出 带有json字符串)fromlangchain.schema.output_parserimportStrOutputParserfromlangchain_core.output_parsersimportJsonOutputParser json_parserJsonOutputParser(pydantic_objectAdd)prompt_templatePromptTemplate(template计算两个整数的和。\n用户输入{query}\n{format_instructions},input_variables[query],partial_variables{format_instructions:json_parser.get_format_instructions()})chain{query:RunnablePassthrough()}|prompt_template|llm|StrOutputParser()forchunkinchain.stream(5 加 3 等于几):print(chunk,end)# output chain.invoke(5 加 3 等于几)# print(output)# 4 LCEL 字符串流式输出 不带有json字符串print(4 LCEL 字符串流式输出 不带有json字符串)fromlangchain.schema.output_parserimportStrOutputParser prompt_templatePromptTemplate(template计算两个整数的和。\n用户输入{query}\n,input_variables[query],)chain{query:RunnablePassthrough()}|prompt_template|llm|StrOutputParser()forchunkinchain.stream(5 加 3 等于几):print(chunk,end)print()# 为了流式输出完后换行而已# output chain.invoke(5 加 3 等于几)# print(output)# 5 LCEL 输出jsonprint(5 LCEL 输出json)fromlangchain_core.output_parsersimportJsonOutputParser json_parserJsonOutputParser(pydantic_objectAdd)prompt_templatePromptTemplate(template计算两个整数的和。\n用户输入{query}\n{format_instructions},input_variables[query],partial_variables{format_instructions:json_parser.get_format_instructions()})chain{query:RunnablePassthrough()}|prompt_template|llm|json_parser outputchain.invoke(5 加 3 等于几)print(output)# 6 LCEL 输出pydantic对象print(6 LCEL 输出pydantic对象)fromlangchain_core.output_parsersimportPydanticOutputParser pydantic_parserPydanticOutputParser(pydantic_objectAdd)prompt_templatePromptTemplate(template计算两个整数的和。\n用户输入{query}\n{format_instructions},input_variables[query],partial_variables{format_instructions:pydantic_parser.get_format_instructions()})chain{query:RunnablePassthrough()}|prompt_template|llm|pydantic_parser outputchain.invoke(5 加 3 等于几)print(output,|,output.a,output.b,output.result)结果输出1 非LCEL 输出json {a: 5, b: 3, result: 8} 2 非LCEL 输出pydantic对象 a5 b3 result8 | 5 3 8 3 LCEL 字符串流式输出 带有json字符串 think 嗯用户让我计算两个整数的和。输入是5加3等于几。首先我需要确认这两个数字是否正确输入了。看起来没问题都是整数。 接下来我要按照用户的要求生成一个JSON对象并且确保它符合指定的格式。根据输出 schema我需要定义三个属性a、b和result。每个属性都有特定的描述和类型。 对于a应该是第一个整数5b是第二个整数3result则是它们的和8。这样填写的话整个结构就完整了。 然后我要检查一下JSON格式是否正确。确保逗号的位置没有错误特别是分隔符部分。同时每个属性的名称也必须准确无误地对应到输入中的变量名。 最后确认输出结果是否符合要求比如类型是否都是整数以及结构是否正确。这样用户就能得到一个正确的JSON对象作为输出了。 /think 要计算两个整数的和请按照以下步骤操作 1. 输入第一个整数5 2. 输入第二个整数3 3. 计算它们的和5 3 8 根据要求生成的JSON对象应如下 json { a: 5, b: 3, result: 8 } 请将上述内容作为输出。4 LCEL 字符串流式输出 不带有json字符串 think 首先我需要明确用户的要求。用户希望计算两个整数的和并且提供一个简短的输出。 接下来我会将输入的两个整数分别提取出来。这里给出的是5和3。 然后我会进行加法运算5加上3等于8。 最后我会将结果以清晰的方式呈现给用户。 /think 要计算两个整数的和按照以下步骤进行 1. **输入两个整数** - 输入的第一个整数是 \( 5 \) - 输入的第二个整数是 \( 3 \) 2. **进行加法运算** \[ 5 3 8 \] 3. **输出结果** \boxed{8} 5 LCEL 输出json {a: 5, b: 3, result: 8} 6 LCEL 输出pydantic对象 a5 b3 result8 | 5 3 8 Process finished with exit code 0
RELATED

相关推荐

AI工作流时代,机密电路设计如何守住安全边界?

AI工作流时代,机密电路设计如何守住安全边界?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/31 13:03:35
RAVE与Hyper Techno:AI如何重塑音乐制作与声音设计

RAVE与Hyper Techno:AI如何重塑音乐制作与声音设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/13 4:50:51
用OpenCode高效补环境:AI辅助JS逆向流程实战

用OpenCode高效补环境:AI辅助JS逆向流程实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/6 17:45:29
MORE NEWS

更多资讯

📰

建造者模式详解:原理、实现与应用场景

1. 为什么我们需要建造者模式 上周团队里有个刚毕业的新同事提交了一段创建订单对象的代码,我一看就乐了——构造方法足足有15个参数!这种代码别说维护了,连调用的时候都容易传错参数顺序。这正是建造者模式要解决的典型场景。 建造者模式&a…

📰

大模型Agent开发入门:从框架选型到实战避坑全攻略

经常有朋友拿同样的问题来问我:大模型看起来什么都懂,可真让它去干活,怎么就跟丢了魂似的?我的回答一般很直接——因为大多数人用大模型的方式,是把它当搜索引擎和聊天对象,而不是把它放进一个完整的Agent系…

📰

基于二阶锥松弛的配电网无功优化技术解析

1. 项目背景与核心目标 在现代电力系统中,随着分布式能源渗透率的不断提高,配电网的无功优化问题变得愈发复杂。传统的集中式发电模式正在向"源-网-荷-储"协同互动的主动配电网转变,这对无功电压控制提出了更高要求。本项目正是针对…

📰

博士论文送印前一天,我把封面和目录反复对了三遍,硕词AI(官方网站:www.shuociai.com)提醒还有两处要查

送印前一天晚上,我把博士论文最终稿打印出来,摊在桌上,封面和目录反复对了三遍。封面的专业名称、指导教师、提交日期,逐字和学校模板核对;目录上每一章的页码,随手翻到那一页亲手比过。我以为这样就万无一…

📰

画师作品批量归档:Python爬虫登录态与传输层稳定实践

批量归档自己关注的画师作品,这件事听起来简单,真正动手就会发现问题一堆:登录窗口的人机校验卡在第一步、跑着跑着连接层抛 SSL 异常、请求发得稍密一点列表接口就开始返回空数据、下载到一半断了又得从头再来。这篇讲的就是我给自己搭的这套…

📰

KV Cache技术:大模型推理加速的核心机制与优化实践

1. KV Cache技术解析:大模型推理加速的核心机制 KV Cache(Key-Value缓存)是Transformer架构在推理阶段实现高效计算的关键技术。这项技术通过缓存中间计算结果,显著减少了自回归生成过程中的重复计算。在GPT、LLaMA等主流大语言模…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬