mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-05-01 23:35:52 +00:00
refactor: move search_usage to utils/searchusage, remove brave stub
- Rename agent/tools/search_usage.py → utils/searchusage.py (not an LLM tool, matches utils/ naming convention) - Remove redundant _fetch_brave_usage — handled by else branch - Move test to tests/utils/test_searchusage.py Made-with: Cursor
This commit is contained in:
parent
bc0ff7f214
commit
7ffd93f48d
@ -64,7 +64,7 @@ async def cmd_status(ctx: CommandContext) -> OutboundMessage:
|
|||||||
# Fetch web search provider usage (best-effort, never blocks the response)
|
# Fetch web search provider usage (best-effort, never blocks the response)
|
||||||
search_usage_text: str | None = None
|
search_usage_text: str | None = None
|
||||||
try:
|
try:
|
||||||
from nanobot.agent.tools.search_usage import fetch_search_usage
|
from nanobot.utils.searchusage import fetch_search_usage
|
||||||
web_cfg = getattr(getattr(loop, "config", None), "tools", None)
|
web_cfg = getattr(getattr(loop, "config", None), "tools", None)
|
||||||
web_cfg = getattr(web_cfg, "web", None) if web_cfg else None
|
web_cfg = getattr(web_cfg, "web", None) if web_cfg else None
|
||||||
search_cfg = getattr(web_cfg, "search", None) if web_cfg else None
|
search_cfg = getattr(web_cfg, "search", None) if web_cfg else None
|
||||||
|
|||||||
@ -81,10 +81,8 @@ async def fetch_search_usage(
|
|||||||
|
|
||||||
if p == "tavily":
|
if p == "tavily":
|
||||||
return await _fetch_tavily_usage(api_key)
|
return await _fetch_tavily_usage(api_key)
|
||||||
elif p == "brave":
|
|
||||||
return await _fetch_brave_usage(api_key)
|
|
||||||
else:
|
else:
|
||||||
# duckduckgo, searxng, jina, unknown — no usage API
|
# brave, duckduckgo, searxng, jina, unknown — no usage API
|
||||||
return SearchUsageInfo(provider=p, supported=False)
|
return SearchUsageInfo(provider=p, supported=False)
|
||||||
|
|
||||||
|
|
||||||
@ -171,13 +169,3 @@ def _parse_tavily_usage(data: dict[str, Any]) -> SearchUsageInfo:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
# Brave
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
async def _fetch_brave_usage(api_key: str | None) -> SearchUsageInfo:
|
|
||||||
"""
|
|
||||||
Brave Search does not have a public usage/quota endpoint.
|
|
||||||
Rate-limit headers are returned per-request, not queryable standalone.
|
|
||||||
"""
|
|
||||||
return SearchUsageInfo(provider="brave", supported=False)
|
|
||||||
@ -5,7 +5,7 @@ from __future__ import annotations
|
|||||||
import pytest
|
import pytest
|
||||||
from unittest.mock import AsyncMock, MagicMock, patch
|
from unittest.mock import AsyncMock, MagicMock, patch
|
||||||
|
|
||||||
from nanobot.agent.tools.search_usage import (
|
from nanobot.utils.searchusage import (
|
||||||
SearchUsageInfo,
|
SearchUsageInfo,
|
||||||
_parse_tavily_usage,
|
_parse_tavily_usage,
|
||||||
fetch_search_usage,
|
fetch_search_usage,
|
||||||
Loading…
x
Reference in New Issue
Block a user