首頁 >後端開發 >Python教學 >使用 LangChain 和 OpenAI 建立智慧代理:開發人員指南

使用 LangChain 和 OpenAI 建立智慧代理:開發人員指南

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-20 16:22:16114瀏覽

Building Intelligent Agents with LangChain and OpenAI: A Developer

人工智慧的興起使開發人員能夠將智慧功能整合到日常工作流程中。 一個關鍵方法涉及創建將推理與行動結合的自主代理。本文示範如何使用 LangChain、OpenAI 的 GPT-4 和 LangChain 的實驗功能來建構此類代理。這些代理程式將執行 Python 程式碼、與 CSV 檔案互動並處理複雜的查詢。讓我們開始吧!


為什麼要選浪鏈?

LangChain 擅長作為利用語言模型開發應用程式的框架。它的優勢在於創建模組化、可重複使用的元件(例如代理),能夠:

  • 執行Python程式碼。
  • 分析資料檔案並與之互動。
  • 使用工具進行推理與決策。

將LangChain與OpenAI的GPT-4結合,可以創建適合特定需求的代理,包括資料分析和程式碼調試。


入門:環境設定

編碼之前,請確保您的環境已正確配置:

  • 安裝 Python 函式庫:
<code class="language-bash">pip install langchain langchain-openai python-dotenv</code>
  • 建立 .env 檔案:安全儲存您的 OpenAI API 金鑰:
<code>OPENAI_API_KEY=your_api_key_here</code>

建構 Python 執行代理

一個重要的代理功能是執行 Python 程式碼。這是使用 LangChain 的 PythonREPLTool 來實現的。讓我們定義代理:

教學設計

代理的操作依賴一組指令。 提示如下:

<code>instruction = """
You are an agent tasked with writing and executing Python code to answer questions.
You have access to a Python REPL for code execution.
Debug your code if errors occur and retry.
Use only the code's output to answer.
If code cannot answer the question, respond with 'I don't know'.
"""</code>

代理設定

LangChain的REACT框架將建構這個代理:

<code class="language-python">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)</code>

該代理程式執行 Python 程式碼並傳回結果。


新增 CSV 分析

資料分析是一項常見的 AI 代理任務。 整合LangChain的create_csv_agent允許我們的代理查詢和處理CSV檔案中的資料。

CSV 代理設定

以下是增加 CSV 功能的方法:

<code class="language-python">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,
)</code>

該代理人回答有關 episode-info.csv 的問題,例如行/列計數以及劇集最多的季節。


組合工具實現統一代理

為了實現多功能性,我們將 Python 執行和 CSV 分析結合到一個代理程式中,允許根據任務無縫切換工具。

統一代理定義

<code class="language-python">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="""
        Transforms natural language to Python code and executes it.
        Does not accept code as input.
        """
    ),
    Tool(
        name="CSV Agent",
        func=csv_agent.invoke,
        description="""
        Answers questions about episode-info.csv using pandas calculations.
        """
    ),
]

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)</code>

此代理程式處理 Python 邏輯和 CSV 資料分析。


實例:電視節目劇集分析

讓我們用episode-info.csv測試統一代理:

<code class="language-bash">pip install langchain langchain-openai python-dotenv</code>

代理利用 pandas 分析 CSV 並返回劇集最多的季節。


後續步驟與結論

  • 嘗試更多工具和資料集。
  • 探索 LangChain 的文檔以了解更高級的代理創建。

LangChain可以創建高度客製化的智慧代理,簡化複雜的工作流程。 借助 Python REPL 和 CSV 代理程式等工具,從自動化資料分析到程式碼偵錯等,可能性是巨大的。從今天開始建立您的智慧代理!

以上是使用 LangChain 和 OpenAI 建立智慧代理:開發人員指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn