介绍 Using Tools LangChain
LangChain 是一个强大的开源框架,旨在帮助开发者更高效地构建和部署基于大语言模型(LLM)的应用。它提供了一整套工具和组件,使开发者能够轻松地将语言模型与其他数据源和工具集成。
核心功能
-
工具集成:
- 支持接入各种外部API和工具
- 预置了Google搜索、计算器、Python REPL等常用工具
- 可自定义工具开发,满足特定业务需求
-
链式调用:
- 允许将多个LLM调用和工具操作串联起来
- 支持条件逻辑和循环控制
- 实现复杂的工作流程自动化
-
记忆管理:
- 提供短期和长期记忆存储
- 支持对话历史维护
- 可实现上下文感知的交互
典型应用场景
- 智能助手开发
- 数据分析
- 自动化工作流
背景描述
LangChain的社区提供了很多封装好的工具,可以直接拿来用(有的需要申请和配置API KEY)
安装依赖
pip install --upgrade --quiet langchain-core langchain langchain-openai
编写代码
为了更有效地获取互联网上的最新信息,我们可以使用 DuckDuckGoSearchRun 这个强大的搜索功能工具。这个工具能够帮助我们直接调用 DuckDuckGo 搜索引擎的 API 接口,实现快速、隐私保护的网络搜索。
DuckDuckGoSearchRun 提供了以下优势:
- 隐私保护:与主流搜索引擎不同,
DuckDuckGo不会追踪用户搜索记录 - 即时结果:通过 API 调用可以直接获取最新的搜索结果
- 简单集成:可以很方便地集成到各种应用程序和工作流中
使用场景示例:
- 在研究项目中快速获取最新的公开数据
- 开发智能助手时需要实时网络搜索功能
- 需要定期监控某些关键词的网络动态
基本使用方法:
- 安装必要的 Python 包:
pip install duckduckgo-search - 导入模块:
from duckduckgo_search import ddg - 执行搜索:
results = ddg("搜索关键词", max_results=5) - 处理返回的 JSON 格式结果
高级功能还包括:
- 指定返回结果数量
- 设置搜索区域(国家/地区)
- 过滤特定时间段的结果
- 获取图片、视频等多媒体搜索结果
代码示例
search = DuckDuckGoSearchRun()
template = """turn the following user input into a search query for a search engine:
{input}"""
prompt = ChatPromptTemplate.from_template(template)
# 使用GPT-4-Turbo 3.5完成的效果不好
model = ChatOpenAI(
model="gpt-4-0125-preview"
)
chain = prompt | model | StrOutputParser() | search
message1 = chain.invoke({"input": "I'd like to figure out what games are tonight"})
print(f"message1: {message1}")
工具列表
文章还列出了工具包中封装的众多工具:
- DuckDuckGoSearchRun / DuckDuckGoSearchResults
- GoogleSearchRun / GoogleSearchResults
- WikipediaQueryRun
- WolframAlphaQueryRun
- PythonREPLTool / PythonAstREPLTool
- 各种Gmail工具
- 各种文件操作工具
运行结果
message1: How to live stream NBA games tonight. Pelicans vs Thunder and Clippers vs Lakers will air on ESPN. Viewers can also stream NBA games on Sling TV...