0

0

使用 LangChain 和 OpenAI 构建智能代理:开发人员指南

DDD

DDD

发布时间:2025-01-20 17:40:10

|

1170人浏览过

|

来源于php中文网

原创

使用 langchain 和 openai 构建智能代理:开发人员指南

人工智能技术日新月异,开发者们正积极探索将智能功能融入日常工作流程的方法。构建能够自主完成任务、将推理与行动相结合的智能代理便是其中一种有效途径。本文将指导您如何利用LangChain、OpenAI的GPT-4以及LangChain的实验工具,创建一个能够执行Python代码、处理CSV文件并解答复杂问题的智能代理。


LangChain的优势

LangChain是一个功能强大的框架,用于构建基于语言模型的应用程序。其模块化、可重用的组件(例如代理)使其在创建智能代理方面尤为出色,它具备以下能力:

  • 执行Python代码。
  • 分析和处理数据文件。
  • 利用工具进行推理和决策。

结合LangChain的功能和OpenAI的GPT-4,我们可以针对数据分析、代码调试等特定场景构建高效的智能代理。


环境配置

在开始编写代码之前,请确保您的环境已安装必要的工具:

  • 安装Python库:
pip install langchain langchain-openai python-dotenv
  • 创建.env文件,安全存储您的OpenAI API密钥:
openai_api_key=your_api_key_here

构建Python代码执行代理

代理的核心功能之一是执行Python代码,这可以通过LangChain的PythonREPLTool实现。让我们从定义代理开始。

指令设计

代理将根据一系列指令进行操作。我们将使用以下提示:

instruction = """
您是一个旨在编写和执行Python代码以回答问题的代理。
您可以访问Python REPL,用于执行Python代码。
如果出现错误,请调试代码并重试。
仅使用代码的输出回答问题。
如果您无法编写代码来回答问题,请返回“我不知道”。
"""

代理设置

我们将使用LangChain的React框架构建此代理:

from langchain import hub
from langchain_openai import ChatOpenAI
from langchain_experimental.tools import PythonREPLTool
from langchain.agents import create_react_agent, AgentExecutor

base_prompt = hub.pull("langchain-ai/react-agent-template")
prompt = base_prompt.partial(instructions=instruction)

tools = [PythonREPLTool()]
python_agent = create_react_agent(
    prompt=prompt,
    llm=ChatOpenAI(temperature=0, model="gpt-4-turbo"),
    tools=tools,
)
python_executor = AgentExecutor(agent=python_agent, tools=tools, verbose=True)

现在,该代理可以执行Python代码并返回结果。


CSV数据分析功能集成

08cms企业建站系统 1.0 正式版
08cms企业建站系统 1.0 正式版

08cms企业建站系统是基于08cmsv3.4核心程序,通过系统架构,模板制作,并根据此系统的功能和操作流程进行了代码优化。由08cms官方团队开发。安装链接:install.php、管理后台链接:admina.php日常管理请不要使用创始人帐号(admin),系统内置有内容管理帐号08cms:密码08cms系统特点:1、系统可自动生成静态页面;2、根据企业系统的特点,基于08cms V3.4核心

下载

数据分析是人工智能代理的常见应用场景。通过集成LangChain的create_csv_agent,我们可以赋予代理查询和处理CSV文件数据的能力。

CSV代理设置

以下是如何向代理添加CSV处理功能:

from langchain_experimental.agents.agent_toolkits import create_csv_agent

csv_agent = create_csv_agent(
    llm=ChatOpenAI(temperature=0, model="gpt-4-turbo"),
    path="episode-info.csv",
    verbose=True,
    allow_dangerous_code=True,
)

该代理现在可以回答关于episode-info.csv内容的问题,例如:

  • 文件有多少行和列?
  • 哪一季的集数最多?

整合工具,构建统一代理

为了创建一个多功能代理,我们将把Python代码执行和CSV数据分析功能整合到一个实体中,使代理能够根据任务在不同工具之间无缝切换。

统一代理定义

from langchain.agents import Tool

def python_executor_wrapper(prompt: str):
    python_executor.invoke({"input": prompt})

tools = [
    Tool(
        name="python agent",
        func=python_executor_wrapper,
        description="""
        用于将自然语言转换为Python代码并执行。
        不接受代码作为输入。
        """
    ),
    Tool(
        name="csv agent",
        func=csv_agent.invoke,
        description="""
        用于通过运行pandas计算来回答关于episode-info.csv的问题。
        """
    ),
]

grant_agent = create_react_agent(
    prompt=base_prompt.partial(instructions=""),
    llm=ChatOpenAI(temperature=0, model="gpt-4-turbo"),
    tools=tools,
)
grant_agent_executor = AgentExecutor(agent=grant_agent, tools=tools, verbose=True)

这个组合代理能够回答关于Python逻辑和CSV数据分析的问题。


实际案例:分析电视节目剧集数据

让我们通过查询episode-info.csv来测试这个统一代理:

print(
    grant_agent_executor.invoke({
        "input": "What season has the most episodes?"
    })
)

代理将分析CSV文件并返回集数最多的剧集信息,并在后台使用pandas进行计算。


后续步骤

  • 使用其他工具和数据集进行实验。
  • 探索LangChain文档以构建更强大的代理。

LangChain为创建高度定制的智能代理提供了强大的工具,能够简化复杂的工作流程。借助Python REPL和CSV代理等工具,您可以实现从自动化数据分析到代码调试等多种功能,可能性无限。从现在开始构建您的智能代理吧!

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

773

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

684

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

765

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

719

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1425

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

570

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

579

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

751

2023.08.11

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

25

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 19万人学习

Django 教程
Django 教程

共28课时 | 3.5万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号