Source code for langchain_community.document_loaders.wikipedia
from typing import Iterator, Optional
from langchain_core.documents import Document
from langchain_community.document_loaders.base import BaseLoader
from langchain_community.utilities.wikipedia import WikipediaAPIWrapper
[docs]class WikipediaLoader(BaseLoader):
"""从`Wikipedia`加载。
目前查询长度的硬限制为300。
每个维基页面代表一个文档。"""
[docs] def __init__(
self,
query: str,
lang: str = "en",
load_max_docs: Optional[int] = 25,
load_all_available_meta: Optional[bool] = False,
doc_content_chars_max: Optional[int] = 4000,
):
"""初始化WikipediaLoader类的新实例。
参数:
query(str):要在Wikipedia上搜索的查询字符串。
lang(str,可选):Wikipedia语言版本的语言代码。默认为"en"。
load_max_docs(int,可选):要加载的最大文档数。默认为100。
load_all_available_meta(bool,可选):指示是否加载每个文档的所有可用元数据。默认为False。
doc_content_chars_max(int,可选):文档内容的最大字符数。默认为4000。
"""
self.query = query
self.lang = lang
self.load_max_docs = load_max_docs
self.load_all_available_meta = load_all_available_meta
self.doc_content_chars_max = doc_content_chars_max
[docs] def lazy_load(self) -> Iterator[Document]:
"""将来自维基百科的查询结果加载到文档列表中。
返回:
一个表示已加载的维基百科页面的文档对象列表。
"""
client = WikipediaAPIWrapper( # type: ignore[call-arg]
lang=self.lang,
top_k_results=self.load_max_docs, # type: ignore[arg-type]
load_all_available_meta=self.load_all_available_meta, # type: ignore[arg-type]
doc_content_chars_max=self.doc_content_chars_max, # type: ignore[arg-type]
)
yield from client.load(self.query)