跳至主要内容

WikipediaRetriever

概述

维基百科是一个多语言的免费在线百科全书,由一群志愿者(称为维基百科人)通过开放式协作和使用名为MediaWiki的基于wiki的编辑系统编写和维护。维基百科是历史上最大、阅读量最多的参考作品。

此笔记本演示如何将wikipedia.org中的维基页面检索到在下游使用的Document格式。

集成详情

检索器来源
WikipediaRetriever维基百科文章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(文档发布/上次更新的日期)、titleSummary。如果为True,则还会下载其他字段。

get_relevant_documents()有一个参数query:用于在维基百科中查找文档的自由文本

from langchain_community.retrievers import WikipediaRetriever

retriever = WikipediaRetriever()
API参考: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可以通过集成到LLM应用程序中。

我们将需要一个LLM或聊天模型

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?"
)
'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参考


此页面是否有帮助?


您还可以留下详细的反馈 在GitHub上.