Wikipedia integration for OpenVoiceOS. Provides a retrieval engine for RAG pipelines and an agent toolbox for tool-using agents, both as standard OPM plugins.
pip install ovos-wikipedia-plugin| Entry point | Class | Use case |
|---|---|---|
opm.agents.retrieval — ovos-wikipedia-plugin |
WikipediaRetrievalEngine |
Retrieval — returns ranked (passage, score) tuples |
opm.agents.toolbox — ovos-wikipedia-tool |
WikipediaToolbox |
Agent tool use — exposes search_wikipedia |
WikipediaRetrievalEngine implements the RetrievalEngine OPM interface. It searches Wikipedia, fetches article
summaries in parallel, scores them for relevance, and optionally applies extractive QA and reranking sub-plugins.
from ovos_wikipedia import WikipediaRetrievalEngine
engine = WikipediaRetrievalEngine()
# Returns List[WikipediaResult] sorted by relevance
for result in engine.search("Ada Lovelace", lang="en"):
print(result.title, result.conf)
print(result.summary)
if result.image:
print(result.image)
# RAG interface: List[Tuple[str, float]] (passage, score)
passages = engine.query("who was Ada Lovelace", lang="en", k=3)| Config key | OPM type | Effect |
|---|---|---|
extractive_qa |
opm.agents.extractive_qa |
Extract the best passage from each article summary |
reranker |
opm.agents.reranker |
Re-score results with a cross-encoder |
keyword_extractor |
opm.plugin.keywords |
Rewrite the query when the initial search returns nothing |
engine = WikipediaRetrievalEngine(config={
"extractive_qa": "ovos-bm25-solver",
"reranker": "ovos-bm25-reranker",
"keyword_extractor": "ovos-rake-keywords",
})WikipediaToolbox exposes a single search_wikipedia tool that any OPM-compatible agent loop (
e.g. ovos-agentic-loop) can discover and call.
Any agent loop that supports opm.agents.toolbox entry points will auto-discover this toolbox by name:
{
"name": "ResearchAgent",
"solvers": [
"ovos-react-loop"
],
"ovos-react-loop": {
"brain": "ovos-chat-openai-plugin",
"ovos-chat-openai-plugin": {
"api_url": "http://localhost:11434/v1/chat/completions"
},
"toolboxes": [
"ovos-wikipedia-tool"
]
}
}from ovos_wikipedia import WikipediaToolbox, SearchWikipediaArgs
tb = WikipediaToolbox()
# Discover the tool (used internally by agent loops)
tools = tb.discover_tools()
# [AgentTool(name="search_wikipedia", description="Search Wikipedia for information about a topic...")]
# Call directly
output = tb.search_wikipedia(SearchWikipediaArgs(query="Ada Lovelace", lang="en"))
for title, summary in output.results:
print(title)
print(summary)Apache 2.0 — see LICENSE.