|
|
from smolagents import DuckDuckGoSearchTool, Tool |
|
|
import wikipediaapi |
|
|
|
|
|
class WikipediaSearchTool(Tool): |
|
|
name = "wikipedia_search" |
|
|
description = "查找英文维基百科的页面简介,输入应为一个词或短词组" |
|
|
inputs = { |
|
|
"query": {"type": "string", "description": "维基百科搜索关键词,例如人名/专名"} |
|
|
} |
|
|
output_type = "string" |
|
|
def __init__(self, lang="en"): |
|
|
super().__init__() |
|
|
self.wiki = wikipediaapi.Wikipedia(language=lang, user_agent="celum") |
|
|
def forward(self, query: str): |
|
|
page = self.wiki.page(query) |
|
|
if not page.exists(): |
|
|
return "No Wikipedia page found." |
|
|
return page.summary[:1000] |
|
|
|
|
|
wiki_tool = WikipediaSearchTool() |
|
|
ddg_tool = DuckDuckGoSearchTool() |
|
|
|
|
|
my_tool_list = [wiki_tool, ddg_tool] |