WikipediaRetriever
概述
Wikipedia 是一个多语言的免费在线百科全书,由一群志愿者(称为维基人)通过开放协作和使用基于维基的编辑系统MediaWiki编写和维护。
Wikipedia
是历史上最大且最常被查阅的参考作品。
本笔记本展示了如何从wikipedia.org
检索维基页面到下游使用的Document格式。
集成详情
检索器 | 来源 | 包 |
---|---|---|
WikipediaRetriever | Wikipedia 文章 | langchain_community |
设置
如果你想从单个工具的运行中获取自动追踪,你也可以通过取消注释以下内容来设置你的 LangSmith API 密钥:
# os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
# os.environ["LANGSMITH_TRACING"] = "true"
安装
集成位于langchain-community
包中。我们还需要安装wikipedia
python包本身。
%pip install -qU langchain_community wikipedia
实例化
现在我们可以实例化我们的检索器:
WikipediaRetriever
参数包括:
- 可选的
lang
: 默认="en"。用于在维基百科的特定语言部分进行搜索 - 可选的
load_max_docs
: 默认=100。用于限制下载的文档数量。下载所有100个文档需要时间,因此实验时请使用较小的数字。目前有一个300的硬性限制。 - 可选的
load_all_available_meta
: 默认=False。默认情况下,只下载最重要的字段:Published
(文档发布/最后更新的日期),title
,Summary
。如果为True,则也会下载其他字段。
get_relevant_documents()
有一个参数,query
: 用于在维基百科中查找文档的自由文本
from langchain_community.retrievers import WikipediaRetriever
retriever = WikipediaRetriever()
API Reference:WikipediaRetriever
用法
docs = retriever.invoke("TOKYO GHOUL")
print(docs[0].page_content[:400])
Tokyo Ghoul (Japanese: 東京喰種(トーキョーグール), Hepburn: Tōkyō Gūru) is a Japanese dark fantasy manga series written and illustrated by Sui Ishida. It was serialized in Shueisha's seinen manga magazine Weekly Young Jump from September 2011 to September 2014, with its chapters collected in 14 tankōbon volumes. The story is set in an alternate version of Tokyo where humans coexist with ghouls, beings who loo
在链中使用
与其他检索器一样,WikipediaRetriever
可以通过 chains 集成到 LLM 应用中。
我们将需要一个LLM或聊天模型:
Select chat model:
pip install -qU langchain-openai
import getpass
import os
if not os.environ.get("OPENAI_API_KEY"):
os.environ["OPENAI_API_KEY"] = getpass.getpass("Enter API key for OpenAI: ")
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?"
)
'The main character in Tokyo Ghoul is Ken Kaneki, who transforms into a ghoul after receiving an organ transplant from a ghoul named Rize.'
API参考
有关所有WikipediaRetriever
功能和配置的详细文档,请访问API参考。