Brave como respaldo de DuckDuckGo, y arreglo de la guardia de bf16
Cadena de búsqueda con respaldo. DuckDuckGo sigue de primario porque no exige credenciales: en el camino habitual ningún tercero se entera de qué busca la familia. Pero su endpoint lite no es una API con contrato, así que cuando limite por tasa o cambie el HTML, Brave responde. Dos matices del encadenado: - Cero resultados NO dispara el respaldo. Si el primario respondió bien y no encontró nada, esa es la respuesta correcta; encadenar gastaría cuota y devolvería resultados peores. Solo se avanza ante un error real. - La cadena recuerda quién respondió: al depurar una respuesta rara, lo primero que hay que saber es de dónde salió. Un respaldo sin credencial falla al arrancar y no en la primera consulta — que es justo cuando el primario ya falló y el respaldo tiene que funcionar. Aparte, verificando torch en la 2060 apareció un defecto real en backends.py: torch.cuda.is_bf16_supported() usa including_emulation=True por defecto, así que devuelve True en Turing, donde bf16 no existe en silicio. La guardia no habría atrapado el perfil de la 5090 corriendo en la 2060: el entrenamiento seguía, emulado y silencioso. Medido en la placa: 4,49 ms por matmul en bf16 contra 1,75 ms en fp16, unas 2,6x más lento. Ahora se consulta con including_emulation=False, con respaldo por compute capability. 11 tests nuevos (113 en total). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,17 +1,28 @@
|
||||
# Herramientas del agente.
|
||||
#
|
||||
# La búsqueda web usa DuckDuckGo, que no exige API key ni cuenta en ningún
|
||||
# servicio: no hay credenciales que gestionar ni un tercero al que se le informe
|
||||
# qué busca la familia.
|
||||
# La búsqueda web usa DuckDuckGo como primario: no exige API key ni cuenta, así
|
||||
# que no hay credenciales que gestionar ni un tercero al que se le informe qué
|
||||
# busca la familia.
|
||||
#
|
||||
# Aclaración sobre el endpoint: la API oficial de DuckDuckGo ("Instant Answer")
|
||||
# solo devuelve definiciones y fichas de entidades, no resultados web. Los
|
||||
# resultados reales salen del endpoint lite, que no es una API con contrato: el
|
||||
# HTML puede cambiar y hay límite de tasa. Por eso existe el backend `searxng`,
|
||||
# autoalojado y estable, como reemplazo de una línea cuando haga falta.
|
||||
# HTML puede cambiar y hay límite de tasa. Por eso existe la cadena de respaldo.
|
||||
search:
|
||||
backend: duckduckgo
|
||||
region: es-es
|
||||
|
||||
# Se prueban en orden, y solo ante un error real del anterior. Cero
|
||||
# resultados no dispara el respaldo: si el primario respondió bien y no
|
||||
# encontró nada, esa es la respuesta correcta.
|
||||
#
|
||||
# Brave sí es una API con contrato y límites claros, pero cada consulta pasa
|
||||
# por un tercero asociado a una cuenta — por eso va de respaldo y no de
|
||||
# primario. SearxNG autoalojado es el destino natural cuando el volumen lo
|
||||
# justifique: agrega DuckDuckGo entre sus fuentes sin exponer las consultas.
|
||||
fallbacks: [brave]
|
||||
|
||||
region: es-es # DuckDuckGo
|
||||
country: uy # Brave
|
||||
language: es
|
||||
|
||||
# Presupuesto de contexto. Con seq_len 2048 hay que repartir entre resultados
|
||||
@@ -28,5 +39,6 @@ search:
|
||||
# idénticas en pocos minutos.
|
||||
cache_ttl: 300.0
|
||||
|
||||
# Solo se usa con backend=searxng. Sale de .env y queda vacío si no está.
|
||||
# Credenciales, desde .env. Quedan vacías si la variable no está definida.
|
||||
brave_api_key: ${oc.env:ENLACE_BRAVE_API_KEY,""}
|
||||
searxng_url: ${oc.env:ENLACE_SEARXNG_URL,""}
|
||||
|
||||
Reference in New Issue
Block a user