Skip to content

Wikipedia

WikipediaReader #

Bases: BasePydanticReader

维基百科阅读器。

读取页面。

Source code in llama_index/readers/wikipedia/base.py
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
class WikipediaReader(BasePydanticReader):
    """维基百科阅读器。

    读取页面。"""

    is_remote: bool = True

    def __init__(self) -> None:
        """使用参数进行初始化。"""
        try:
            import wikipedia  # noqa
        except ImportError:
            raise ImportError(
                "`wikipedia` package not found, please run `pip install wikipedia`"
            )

    @classmethod
    def class_name(cls) -> str:
        return "WikipediaReader"

    def load_data(
        self, pages: List[str], lang_prefix: str = "en", **load_kwargs: Any
    ) -> List[Document]:
        """从输入目录加载数据。

Args:
    pages(List[str]):要读取的页面列表。
    lang_prefix(str):维基百科的语言前缀。默认为英语。有效的维基百科语言代码可以在https://en.wikipedia.org/wiki/List_of_Wikipedias找到。
"""
        import wikipedia

        if lang_prefix.lower() != "en":
            if lang_prefix.lower() in wikipedia.languages():
                wikipedia.set_lang(lang_prefix.lower())
            else:
                raise ValueError(
                    f"Language prefix '{lang_prefix}' for Wikipedia is not supported. Check supported languages at https://en.wikipedia.org/wiki/List_of_Wikipedias."
                )

        results = []
        for page in pages:
            wiki_page = wikipedia.page(page, **load_kwargs)
            page_content = wiki_page.content
            page_id = wiki_page.pageid
            results.append(Document(id_=page_id, text=page_content))
        return results

load_data #

load_data(
    pages: List[str],
    lang_prefix: str = "en",
    **load_kwargs: Any
) -> List[Document]

从输入目录加载数据。

Parameters:

Name Type Description Default
lang_prefix(str):维基百科的语言前缀。默认为英语。有效的维基百科语言代码可以在https

//en.wikipedia.org/wiki/List_of_Wikipedias找到。

required
Source code in llama_index/readers/wikipedia/base.py
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
    def load_data(
        self, pages: List[str], lang_prefix: str = "en", **load_kwargs: Any
    ) -> List[Document]:
        """从输入目录加载数据。

Args:
    pages(List[str]):要读取的页面列表。
    lang_prefix(str):维基百科的语言前缀。默认为英语。有效的维基百科语言代码可以在https://en.wikipedia.org/wiki/List_of_Wikipedias找到。
"""
        import wikipedia

        if lang_prefix.lower() != "en":
            if lang_prefix.lower() in wikipedia.languages():
                wikipedia.set_lang(lang_prefix.lower())
            else:
                raise ValueError(
                    f"Language prefix '{lang_prefix}' for Wikipedia is not supported. Check supported languages at https://en.wikipedia.org/wiki/List_of_Wikipedias."
                )

        results = []
        for page in pages:
            wiki_page = wikipedia.page(page, **load_kwargs)
            page_content = wiki_page.content
            page_id = wiki_page.pageid
            results.append(Document(id_=page_id, text=page_content))
        return results