[使用WikipediaRetriever轻松获取维基百科内容:让AI应用如虎添翼]

232 阅读2分钟
# 使用WikipediaRetriever轻松获取维基百科内容:让AI应用如虎添翼

## 引言
在现代AI应用开发中,获取结构化的知识是至关重要的一环。维基百科作为世界上最大且最常用的参考资料来源,经常被希望获取丰富信息数据的开发者所使用。本篇文章将向您介绍如何使用`WikipediaRetriever`从维基百科中检索文章内容,并将其用于下游任务。

## 主要内容

### 安装与设置
要使用`WikipediaRetriever`,首先需要安装`langchain-community``wikipedia` Python 包:
```shell
%pip install -qU langchain_community wikipedia

实例化检索器

WikipediaRetriever提供了灵活的参数设置,可以根据需求调整,如搜索语言和下载文档的最大数量等。

from langchain_community.retrievers import WikipediaRetriever

retriever = WikipediaRetriever(
    lang="en",  # 设置搜索的语言,默认为英语
    load_max_docs=10,  # 限制下载的文档数量以提升性能
    load_all_available_meta=True  # 下载所有可用的元数据
)

在链中使用

WikipediaRetriever可与大语言模型(LLMs)结合使用,以增强自然语言处理应用的能力。以下示例演示了如何将检索到的维基百科文档作为上下文输入给AI模型:

# Set environment variables for API keys
import getpass
import os

os.environ["OPENAI_API_KEY"] = getpass.getpass("Enter your OpenAI API key: ")

from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough

# Initialize the LLM
llm = ChatOpenAI(model="gpt-4o-mini")

# Define a chain for processing
prompt = ChatPromptTemplate.from_template("""
    Answer the question based only on the context provided.
    Context: {context}
    Question: {question}
""")

def format_docs(docs):
    return "\n\n".join(doc.page_content for doc in docs)

chain = (
    {"context": retriever | format_docs, "question": RunnablePassthrough()}
    | prompt
    | llm
    | StrOutputParser()
)

代码示例

以下是一个完整的代码示例,演示如何检索Tokyo Ghoul的相关信息:

docs = retriever.invoke("Tokyo Ghoul")  # 使用API代理服务提高访问稳定性

print(docs[0].page_content[:400])

常见问题和解决方案

  1. 网络访问限制:在部分地区访问维基百科API可能受限,建议使用API代理服务进行稳定访问。
  2. 下载速度慢:调整load_max_docs参数以减少一次性下载的文档数量。

总结和进一步学习资源

通过使用WikipediaRetriever,您可以便捷地将精确的维基百科文章纳入AI应用中,提升信息检索的效率。您可以访问以下资源进一步学习相关知识:

参考资料

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

---END---