使用LangChain和Wikipedia API进行查询的教程

本教程将介绍如何使用LangChain库和Wikipedia API进行查询,并展示如何自定义工具的名称、描述和参数。

1. 导入必要的库

首先,我们需要导入LangChain库中的WikipediaQueryRunWikipediaAPIWrapper

from langchain_community.tools import WikipediaQueryRun
from langchain_community.utilities import WikipediaAPIWrapper

2. 创建Wikipedia API包装器

接下来,我们创建一个WikipediaAPIWrapper实例,设置返回结果的数量和文档内容的最大字符数。

api_wrapper = WikipediaAPIWrapper(top_k_results=1, doc_content_chars_max=100)

3. 创建Wikipedia查询工具

使用上一步创建的api_wrapper实例,创建一个WikipediaQueryRun工具。

tool = WikipediaQueryRun(api_wrapper=api_wrapper)

4. 执行查询

通过调用invoke方法,传入查询参数,执行Wikipedia查询。

print(tool.invoke({"query": "langchain"}))

输出结果如下:

Page: LangChain
Summary: LangChain is a software framework that helps facilitate the integration of 

5. 查看工具的属性

我们可以查看工具的名称、描述、参数模式和是否直接返回结果。

print(f"Name: {tool.name}")
print(f"Description: {tool.description}")
print(f"args schema: {tool.args}")
print(f"returns directly?: {tool.return_direct}")

输出结果如下:

Name: wikipedia
Description: A wrapper around Wikipedia. Useful for when you need to answer general questions about people, places, companies, facts, historical events, or other subjects. Input should be a search query.
args schema: {'query': {'description': 'query to look up on wikipedia', 'title': 'Query', 'type': 'string'}}
returns directly?: False

6. 自定义工具

我们可以通过定义一个BaseModel来自定义工具的参数,并创建一个新的WikipediaQueryRun实例。

from pydantic import BaseModel, Field

class WikiInputs(BaseModel):
    """Inputs to the wikipedia tool."""
    query: str = Field(description="query to look up in Wikipedia, should be 3 or less words")

tool = WikipediaQueryRun(
    name="wiki-tool",
    description="look up things in wikipedia",
    args_schema=WikiInputs,
    api_wrapper=api_wrapper,
    return_direct=True,
)

7. 使用自定义工具执行查询

通过调用run方法,传入查询参数,使用自定义工具执行Wikipedia查询。

print(tool.run("langchain"))

输出结果如下:

Page: LangChain
Summary: LangChain is a software framework that helps facilitate the integration of 

8. 查看自定义工具的属性

同样,我们可以查看自定义工具的名称、描述、参数模式和是否直接返回结果。

print(f"Name: {tool.name}")
print(f"Description: {tool.description}")
print(f"args schema: {tool.args}")
print(f"returns directly?: {tool.return_direct}")

输出结果如下:

Name: wiki-tool
Description: look up things in wikipedia
args schema: {'query': {'description': 'query to look up in Wikipedia, should be 3 or less words', 'title': 'Query', 'type': 'string'}}
returns directly?: True

通过以上步骤,我们成功使用LangChain和Wikipedia API进行了查询,并展示了如何自定义工具的属性。希望这个教程对你有所帮助!

参考链接:https://python.langchain.com/docs/how_to/tools_builtin/
如果有任何问题,欢迎在评论区提问。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐