Skip to content

wikitool

WikiTool

WikiTool(source: WikiProvider, llm: LLMProvider)

Wiki Tool.

PARAMETER DESCRIPTION
source

Source provider

TYPE: WikiProvider

llm

LLM Provider

TYPE: LLMProvider

Example

Create a WikiTool object with Wikipedia and SentenceTransformers.

>>> from wikitool import WikiTool
>>> from wikitool.extras.st_provider import STProvider
>>> from wikitool.sources.wiki_source import WikiProvider
>>> tool = WikiTool(
...         source=WikiProvider("WikiTool wikitool@test.com", "test"),
...         llm=STProvider("thenlper/gte-small"),
...        )

search

search(
    queries: str | list[str],
    top_k: int = 5,
    chunk_size: int | None = None,
    chunk_overlap: int | None = None,
) -> list[list[str]]

Search the source using the llm provider.

PARAMETER DESCRIPTION
queries

Query (or list of queries) to search.

TYPE: str | list[str]

top_k

Amount of results to return.

TYPE: int DEFAULT: 5

chunk_size

TYPE: int | None DEFAULT: None

chunk_overlap

TYPE: int | None DEFAULT: None

RETURNS DESCRIPTION
list[list[str]]

List of search results.

Example

Search Wikipedia using SentenceTransformers.

>>> from wikitool import WikiTool
>>> from wikitool.extras.st_provider import STProvider
>>> from wikitool.sources.wiki_source import WikiProvider
>>> tool = WikiTool(
...         source=WikiProvider("WikiTool wikitool@test.com", "test"),
...         llm=STProvider("thenlper/gte-small"),
...        )
>>> top_k = 3
>>> results = tool.search(["query_1", "query_2"], top_k, 512, 64)
>>> assert isinstance(results, list)
>>> assert len(results) == 2
>>> assert isinstance(results[0][0], str)
>>> assert len(results[0]) == top_k
Note

Even when a single query is provided, a list of lists is returned. So, to get the result of a single query:

>>> from wikitool import WikiTool
>>> from wikitool.extras.st_provider import STProvider
>>> from wikitool.sources.wiki_source import WikiProvider
>>> tool = WikiTool(
...         source=WikiProvider("WikiTool wikitool@test.com", "test"),
...         llm=STProvider("thenlper/gte-small"),
...        )
>>> top_k = 3
>>> results = tool.search("single query", top_k, 512, 64)
>>> query_result = results[0]
>>> assert isinstance(query_result, list)
>>> assert isinstance(query_result[0], str)
>>> assert len(query_result) == top_k