Skip to main content

Wikipedia

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

本笔记本演示了如何从 wikipedia.org 检索维基页面并将其转换为下游使用的文档格式。

安装

首先,您需要安装 wikipedia Python包。

#!pip install wikipedia

WikipediaRetriever 有以下参数:

  • 可选的 lang:默认值为"en"。用于在特定语言的维基百科中进行搜索。
  • 可选的 load_max_docs:默认值为100。用于限制下载的文档数量。下载所有100个文档需要时间,因此对于实验,请使用较小的数量。目前限制为最多300个。
  • 可选的 load_all_available_meta:默认值为False。默认只下载最重要的字段:Published(文档发布/最后更新日期)、titleSummary。如果为True,则还会下载其他字段。

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

示例

运行检索器

from langchain.retrievers import WikipediaRetriever
retriever = WikipediaRetriever()
docs = retriever.get_relevant_documents(query="HUNTER X HUNTER")
docs[0].metadata  # 文档的元数据
docs[0].page_content[:400]  # 文档的内容

事实问答

# 获取一个令牌:https://platform.openai.com/account/api-keys
from getpass import getpass

OPENAI_API_KEY = getpass()
import os

os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY
from langchain.chat_models import ChatOpenAI
from langchain.chains import ConversationalRetrievalChain

model = ChatOpenAI(model_name="gpt-3.5-turbo") # 切换到 'gpt-4'
qa = ConversationalRetrievalChain.from_llm(model, retriever=retriever)
questions = [
"什么是 Apify?",
"1830年革命烈士纪念碑是什么时候创建的?",
"什么是阿布哈耶伽里寺庙?",
# "Wikipédia en français有多大?",
]
chat_history = []

for question in questions:
result = qa({"question": question, "chat_history": chat_history})
chat_history.append((question, result["answer"]))
print(f"-> **问题**:{question} \n")
print(f"**答案**:{result['answer']} \n")