新闻详情

新闻详情

首页 / 资讯中心 / 详情

LangChain--1--prompt、output格式、LCEL示例

发布时间:2026/9/4 14:44:32来源:尧图网络
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测试开发实战:代码生成之外,预期与断言才是核心 2026/9/4 19:55:18

AI测试开发实战:代码生成之外,预期与断言才是核心

先抛一个和大多数教学视频不太一样的观点:把 Claude Code、TRAE、DeepSeek 真正放进测试开发流程之后,最先发生变化的不是“测试代码写得快了”,而是“确认预期的方式变了”。 我在团队里做了一轮小范围实验:让 AI 从一个接口文档…

阅读更多 →
记忆增强压缩:将思维链推理移入提示词,降低Token成本与延迟 2026/9/4 19:55:18

记忆增强压缩:将思维链推理移入提示词,降低Token成本与延迟

先给结论:记忆增强压缩的核心工作,是把一批反复使用的推理步骤从生成阶段拿出来,提前整理好放进提示词里,用一套稳定的“可复用推理记忆”去替代模型每次从零推导的思维链过程。它针对的是思维链成本问题,更准确地说&a…

阅读更多 →
软件卸载不干净?快照对比工具Total Uninstall让残留清理有据可依 2026/9/4 19:55:18

软件卸载不干净?快照对比工具Total Uninstall让残留清理有据可依

先说结论:如果你装软件、卸载软件频繁,或者遇到过“明明卸载了,但安装目录还在、右键菜单还在、开机启动项还在”这类情况,Total Uninstall这类带安装前后快照对比的卸载工具,比Windows自带卸载和普通卸载工具更值得一…

阅读更多 →
监控场景专用YOLO行人检测数据集:小目标、低分辨率、长焦距优化 2026/9/4 19:55:18

监控场景专用YOLO行人检测数据集:小目标、低分辨率、长焦距优化

简介:本资源是一套专为监控场景行人目标检测任务构建的YOLO格式数据集,面向计算机视觉初学者与算法工程师,解决实际安防、智能监控等应用中行人定位与识别的数据基础需求。数据集严格遵循YOLOv5目录结构组织,包含训练集&#xff0…

阅读更多 →
MATLAB实现5G NR LDPC编解码的协议级实战指南 2026/9/4 19:55:18

MATLAB实现5G NR LDPC编解码的协议级实战指南

简介:本资源是一套面向通信工程专业学生、5G算法研究者及MATLAB仿真开发者的5G NR标准LDPC编解码器完整实现方案,聚焦于新无线系统中关键的前向纠错技术建模与验证。压缩包共含多个MATLAB脚本文件(.m为主),涵盖LDPC编码…

阅读更多 →
市面上的GEO工具怎么选,别只看价格看这几个关键点 2026/9/4 19:52:17

市面上的GEO工具怎么选,别只看价格看这几个关键点

免责声明:本文为个人实操观测总结,仅作为创作参考,不代表工具厂商官方结论,产品功能、算法策略会持续迭代,一切以厂商官方公示为准。一、【GEO 工具】分别是什么?介绍双方定位GEO 全称生成式引擎优化&#…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞