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)