web-browsing-agent / tools /search_ddg.py
heysho's picture
Upload 2 files
5949f3d verified
raw
history blame
1.55 kB
from itertools import islice
from duckduckgo_search import DDGS
from langchain_core.tools import tool
from langchain_core.pydantic_v1 import (BaseModel, Field)
class SearchDDGInput(BaseModel):
query: str = Field(description="検索したいキーワードを入力してください")
@tool(args_schema=SearchDDGInput)
def search_ddg(query, max_result_num=5):
"""
DuckDuckGo検索を実行するためのツールです。
検索したいキーワードを入力して使用してください。
検索結果の各ページのタイトル、スニペット(説明文)、URLが返されます。
このツールから得られる情報は非常に簡素化されており、時には古い情報の場合もあります。
必要な情報が見つからない場合は、必ず `WEB Page Fetcher` ツールを使用して各ページの内容を確認してください。
文脈に応じて最も適切な言語を使用してください(ユーザーの言語と同じである必要はありません)。
例えば、プログラミング関連の質問では、英語で検索するのが最適です。
Returns
-------
List[Dict[str, str]]:
- title
- snippet
- url
"""
res = DDGS().text(query + " latest", region='JP', safesearch='off', backend="lite")
return [
{
"title": r.get('title', ""),
"snippet": r.get('body', ""),
"url": r.get('href', "")
}
for r in islice(res, max_result_num)
]