feat(web-search): tool DuckDuckGo abierta en /web-search para watsonx Orchestrate
Sub-app FastAPI montada en /web-search con búsqueda vía ddgs. OpenAPI 3.0.3 + servers absoluto + operationId webSearch listo para importar como external tool en wxO. Sin auth (uso de taller/demo). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
36
app/web_search/config.py
Normal file
36
app/web_search/config.py
Normal file
@@ -0,0 +1,36 @@
|
||||
import os
|
||||
from functools import lru_cache
|
||||
from dataclasses import dataclass
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class WebSearchSettings:
|
||||
public_base_url: str
|
||||
default_max_results: int
|
||||
default_region: str
|
||||
request_timeout: int
|
||||
|
||||
|
||||
def _int_env(name: str, default: int) -> int:
|
||||
raw = os.environ.get(name)
|
||||
if raw is None or raw == "":
|
||||
return default
|
||||
try:
|
||||
return int(raw)
|
||||
except ValueError:
|
||||
return default
|
||||
|
||||
|
||||
@lru_cache
|
||||
def get_web_search_settings() -> WebSearchSettings:
|
||||
base_url = os.environ.get("BASE_URL", "https://taller-wox.fitlabs.dev").rstrip("/")
|
||||
public_base_url = os.environ.get(
|
||||
"WEB_SEARCH_PUBLIC_BASE_URL",
|
||||
f"{base_url}/web-search",
|
||||
).rstrip("/")
|
||||
return WebSearchSettings(
|
||||
public_base_url=public_base_url,
|
||||
default_max_results=_int_env("WEB_SEARCH_DEFAULT_MAX_RESULTS", 5),
|
||||
default_region=os.environ.get("WEB_SEARCH_DEFAULT_REGION", "wt-wt"),
|
||||
request_timeout=_int_env("WEB_SEARCH_REQUEST_TIMEOUT", 12),
|
||||
)
|
||||
Reference in New Issue
Block a user