【AI大模型应用开发】【LangChain系列】实战案例1:用LangChain写Python代码并执行来生成答案

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: 【AI大模型应用开发】【LangChain系列】实战案例1:用LangChain写Python代码并执行来生成答案
  • 大家好,我是同学小张,日常分享AI知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏

本站文章一览:


本文通过一个案例来学习下如何让 LangChain 写代码并自动执行输出结果。

本文案例来自:https://python.langchain.com/docs/expression_language/cookbook/code_writing

0. 完整代码

先来跑通demo代码

from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import (
    ChatPromptTemplate,
)
from langchain_experimental.utilities import PythonREPL
from langchain_openai import ChatOpenAI
template = """Write some python code to solve the user's problem. 
Return only python code in Markdown format, e.g.:
```python
....
```"""
prompt = ChatPromptTemplate.from_messages([("system", template), ("human", "{input}")])
model = ChatOpenAI()
def _sanitize_output(text: str):
    _, after = text.split("```python")
    return after.split("```")[0]
chain = prompt | model | StrOutputParser() | _sanitize_output | PythonREPL().run
result = chain.invoke({"input": "whats 2 plus 2"})
print(result)

执行结果:

1. 代码学习

这段代码实现的功能:当接收到用户提问时,通过调用大模型来写Python代码,通过执行Python代码输出Python代码的运行结果。上面的demo中,用户提问2+2等于几,Python程序执行结果为4。

案例很简单,但也有值得学习的地方。

(1)首先是前面的传统chain部分,prompt | model | StrOutputParser 就是将用户提问和系统设定的Prompt给到大模型,然后大模型输出结果,通过StrOutputParser将结果转换成字符串格式。

StrOutputParser 的作用:将大模型的输出转换成字符串格式。如果是LLM的返回,保持原样(LLM的返回本来就是字符串),如果是ChatModel的返回,它会输出.content 中的信息作为结果字符串。

这里面可以重点关注下给系统设定的Prompt:限定了只输出Python代码,并且用Markdown的形式,并且还给了输出格式的例子。最大限度地保证大模型输出地Python代码是可以运行的。

template = """Write some python code to solve the user's problem. 
Return only python code in Markdown format, e.g.:
```python
....
```"""

(2)_sanitize_output 函数,将大模型输出的Markdown格式的Python代码提取出来,其实这里就是去掉前面的 “```python” 和后面的 “```”。所以,前面的Prompt就显得至关重要了,一定将输出格式限制死了,有一点不对就会提取Python代码出错。

(3)PythonREPL().run ,从代码中也能猜出它就是用来在内部运行 Python 程序的,它是LangChain封装的一个用来执行Python代码的类。

run 函数的几个注意点:

  • 参数为完整的要执行的Python代码
  • 其返回结果为 Python 代码中通过 print 函数打印的内容,如下示例代码,print(1+1),才能返回2。
from langchain_experimental.utilities import PythonREPL
python_repl = PythonREPL()
python_repl.run("print(1+1)") # 有返回值,2
python_repl.run("print(1+1)") # 无返回值,空的

本文中demo程序生成的Python代码,有使用 print

看下PythonREPL的源码,原理很简单,就是调用了一下 exec 函数执行代码,然后将标准输出中的内容放到队列中。执行完之后 return queue.get(),将标准输出内容作为结果返回。

所以从源码也可以知道,它不止会返回 print 打印出来的内容,任何输出到标准输出中的信息它都会返回,例如程序报错、警告等。

本文到这里就结束了。通过本文,我们主要是学习了如何让大模型写Python程序并自动执行。其实最大的收获就是知道了有 PythonREPL 这么个东西,更深一点知道了 PythonREPL 的运行原理,后面即使不用LangChain,也能自己写一段类似的功能。

如果觉得本文对你有帮助,麻烦点个赞和关注呗 ~~~


  • 大家好,我是同学小张,日常分享AI知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏

本站文章一览:

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
13天前
|
人工智能 并行计算 安全
从零到一,打造专属AI王国!大模型私有化部署全攻略,手把手教你搭建、优化与安全设置
【10月更文挑战第24天】本文详细介绍从零开始的大模型私有化部署流程,涵盖需求分析、环境搭建、模型准备、模型部署、性能优化和安全设置六个关键步骤,并提供相应的示例代码,确保企业能够高效、安全地将大型AI模型部署在本地或私有云上。
106 7
|
9天前
|
人工智能 JSON API
阿里云文档智能 & RAG解决方案:提升AI大模型业务理解与应用
阿里云推出的文档智能 & RAG解决方案,旨在通过先进的文档解析技术和检索增强生成(RAG)方法,显著提升人工智能大模型在业务场景中的应用效果。该方案通过文档智能(Document Mind)技术将非结构化文档内容转换为结构化数据,提取文档的层级树、样式和版面信息,并输出为Markdown和Json格式,为RAG提供语义分块策略。这一过程不仅解决了文档内容解析错误和切块丢失语义信息的问题,还优化了输出LLM友好的Markdown信息。方案的优势在于其多格式支持能力,能够处理包括Office文档、PDF、Html、图片在内的主流文件类型,返回文档的样式、版面信息和层级树结构。
50 2
|
1天前
|
人工智能 弹性计算 Serverless
触手可及,函数计算玩转 AI 大模型 | 简单几步,轻松实现AI绘图
本文介绍了零售业中“人—货—场”三要素的变化,指出传统营销方式已难以吸引消费者。现代消费者更注重个性化体验,因此需要提供超出预期的内容。文章还介绍了阿里云基于函数计算的AI大模型,特别是Stable Diffusion WebUI,帮助非专业人士轻松制作高质量的促销海报。通过详细的部署步骤和实践经验,展示了该方案在实际生产环境中的应用价值。
23 6
触手可及,函数计算玩转 AI 大模型 | 简单几步,轻松实现AI绘图
|
13天前
|
存储 人工智能 数据可视化
高效率,低成本!且看阿里云AI大模型如何帮助企业提升客服质量和销售转化率
在数字化时代,企业面临海量客户对话数据处理的挑战。阿里云推出的“AI大模型助力客户对话分析”解决方案,通过先进的AI技术和智能化分析,帮助企业精准识别客户意图、发现服务质量问题,并生成详尽的分析报告和可视化数据。该方案采用按需付费模式,有效降低企业运营成本,提升客服质量和销售转化率。
高效率,低成本!且看阿里云AI大模型如何帮助企业提升客服质量和销售转化率
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
当前AI大模型在软件开发中的创新应用与挑战
【10月更文挑战第31天】2024年,AI大模型在软件开发领域的应用取得了显著进展,从自动化代码生成、智能代码审查到智能化测试,极大地提升了开发效率和代码质量。然而,技术挑战、伦理与安全问题以及模型可解释性仍是亟待解决的关键问题。开发者需不断学习和适应,以充分利用AI的优势。
|
6天前
|
人工智能 JSON 自然语言处理
基于文档智能&RAG搭建更懂业务的AI大模型
本文介绍了一种结合文档智能和检索增强生成(RAG)技术,构建强大LLM知识库的方法。通过清洗文档内容、向量化处理和特定Prompt,提供足够的上下文信息,实现对企业级文档的智能问答。文档智能(Document Mind)能够高效解析多种文档格式,确保语义的连贯性和准确性。整个部署过程简单快捷,适合处理复杂的企业文档,提升信息提取和利用效率。
|
3天前
|
人工智能 自然语言处理 算法
企业内训|AI/大模型/智能体的测评/评估技术-某电信运营商互联网研发中心
本课程是TsingtaoAI专为某电信运营商的互联网研发中心的AI算法工程师设计,已于近日在广州对客户团队完成交付。课程聚焦AI算法工程师在AI、大模型和智能体的测评/评估技术中的关键能力建设,深入探讨如何基于当前先进的AI、大模型与智能体技术,构建符合实际场景需求的科学测评体系。课程内容涵盖大模型及智能体的基础理论、测评集构建、评分标准、自动化与人工测评方法,以及特定垂直场景下的测评实战等方面。
22 4
|
8天前
|
人工智能
热门 新 1024 云上见 AI大模型助力客户对话分析 2000个智能台灯等你来领
热门 新 1024 云上见 AI大模型助力客户对话分析 2000个智能台灯等你来领
31 3
|
14天前
|
人工智能 自然语言处理 监控
函数计算玩转 AI 大模型
本文总结了对一个基于函数计算和AI大模型的解决方案的理解和实践体验。整体而言,方案描述详细、逻辑清晰,易于理解。但在技术细节和部署引导方面还有提升空间,如增加示例代码和常见错误解决方案。函数计算的优势在部署过程中得到了有效体现,特别是在弹性扩展和按需计费方面。然而,针对高并发场景的优化建议仍需进一步补充。总体评价认为,该解决方案框架良好,但需在文档和细节方面继续优化。
|
13天前
|
人工智能 安全 网络安全
揭秘!大模型私有化部署的全方位安全攻略与优化秘籍,让你的AI项目稳如磐石,数据安全无忧!
【10月更文挑战第24天】本文探讨了大模型私有化部署的安全性考量与优化策略,涵盖数据安全、防火墙配置、性能优化、容器化部署、模型更新和数据备份等方面,提供了实用的示例代码,旨在为企业提供全面的技术参考。
41 6
下一篇
无影云桌面