Configuración de API personalizada de ai-hedge-fund

Updated 2026-09-05

La selección del proveedor va antes que la configuración del endpoint. Sigue la fábrica y el registro de modelos actuales y valida por separado los datos, la salida del agente y la evaluación.

Identifica la ruta actual de la aplicación

Para la aplicación actual de ai-hedge-fund, confirma el proveedor del registro del modelo antes de configurar OPENAI_API_BASE. En la revisión fc1bf250, la fábrica del cliente está en hedge_fund/llm/client.py y lee un registro situado junto a ella. Los tutoriales antiguos que solo mencionan src/llm/models.py describen otra ruta de aplicación. Fija tu checkout y usa el punto de entrada que importe la fábrica actual. Empieza con la comprobación previa del proveedor de abajo y ejercita después el cliente del proyecto antes de recopilar datos financieros para un ciclo de investigación completo.

Resuelve el proveedor antes de configurar la URL base

make_llm selecciona un proveedor a partir del identificador de modelo elegido. Su rama OpenAI pasa OPENAI_API_BASE a ChatOpenAI y lee la clave de API correspondiente. Un identificador desconocido recurre al transporte de Anthropic en la fuente revisada, por lo que exportar una URL base de OpenAI no es suficiente. Confirma primero que el ID exacto del modelo del endpoint está registrado bajo OpenAI. Aquí OpenAI identifica el adaptador de transporte; no certifica el proveedor del modelo subyacente. No cambies una entrada del registro global sin entender cada flujo que la consume.

AjustePropósitoComprobación
HEDGE_FUND_LLM_MODELSeleccionar el ID exacto del modeloEl registro resuelve el proveedor previsto
OPENAI_API_BASESobrescribir el endpoint de transporte de OpenAISe aplica a la rama OpenAI
OPENAI_API_KEYAutenticar ese transporteDisponible para el proceso del cliente
api_models.jsonMapear IDs de modelos a proveedoresLa ruta actual es hedge_fund/llm/

Inspecciona la configuración sin hacer una solicitud

El ejemplo de abajo falla antes de construir el cliente si el registro local selecciona un transporte diferente. Define RESEARCH_MODEL_ID como un ID de catálogo cuya inclusión en la aplicación hayas revisado. Si está ausente, añade deliberadamente una fila del registro local usando los campos existentes display_name, model_name y provider, conservando las entradas no relacionadas. El placeholder no es una afirmación de modelo compatible. Proporciona la clave mediante tu entorno o almacén de secretos. Esta comprobación previa valida solo la selección; no establece el acceso de red, los derechos de la cuenta, la salida estructurada ni la calidad de la investigación.

import os
from hedge_fund.llm.registry import provider_for

model = os.environ["RESEARCH_MODEL_ID"]
if provider_for(model) != "OpenAI":
    raise RuntimeError("MODEL_TRANSPORT_MISMATCH")
os.environ["HEDGE_FUND_LLM_MODEL"] = model
os.environ["OPENAI_API_BASE"] = "https://api.apisrouter.com/v1"
assert os.environ["OPENAI_API_KEY"]
# Selection check only; no make_llm() or model request.

Sigue la ruta de modelo propuesta

La ruta del modelo comienza después de resolver el registro. La aplicación todavía necesita un cliente de datos financieros, una definición del universo y una fecha de investigación explícita. Una clave de gateway no es una credencial de Financial Datasets ni un derecho para redistribuir datos de mercado. Valida por separado los identificadores de empresas, la moneda y la semántica de las marcas de tiempo. Para empresas cotizadas en varias bolsas, especifica si el análisis se refiere al emisor, a una clase de acciones local o a un recibo depositario. Mantén separadas las evidencias de solicitudes al modelo y de datos del proveedor para no diagnosticar una serie financiera ausente como un problema del LLM.

Ruta de transporte OpenAI de ai-hedge-fund después de seleccionar el modelo en el registro.ai-hedge-fund routes through Proveedor del registro OpenAI + OPENAI_API_BASE to the APIsRouter gateway (api.apisrouter.com/v1), which fans out to: Registered research model.ai-hedge-fundviaProveedor del registroOpenAI +OPENAI_API_BASEAPIsRouterapi.apisrouter.com/v1Registered research model
Ruta documentada del cliente después de seleccionar el proveedor. Los datos financieros usan su propio cliente.

Valida las decisiones analizadas como datos

La fábrica revisada envuelve los clientes de proveedores detrás de un método complete(system, user). Su texto de respuesta no es automáticamente un resultado de investigación válido. Inspecciona la capa del agente que analiza JSON, gestiona la abstención y combina salidas. Una respuesta puede ser no vacía pero estar malformada, ser internamente contradictoria o no estar respaldada por las entradas. Conserva la respuesta sin procesar redactada y el objeto analizado bajo un mismo registro de solicitud. Valida los campos esperados y los estados permitidos en lugar de buscar una frase tranquilizadora. Trata un resultado ausente o rechazado como no disponible, no como una señal neutral que entre silenciosamente en la agregación de carteras.

import os
from hedge_fund.llm.client import make_llm, extract_json
from hedge_fund.llm.registry import provider_for

model = os.environ["HEDGE_FUND_LLM_MODEL"]
assert provider_for(model) == "OpenAI"
client = make_llm(model=model)
result = extract_json(client.complete(
    "Return a JSON object with a boolean ready field.",
    "Set ready to true.",
))
assert result.get("ready") is True
# This request tests the client and parser, not financial research.

Haz que el primer ciclo de investigación sea pequeño y revisable

Después de una prueba autorizada del cliente, elige un emisor y una pregunta acotada con evidencia pública o con licencia. Confirma que cada herramienta requerida haya devuelto la empresa y el periodo esperados y compara la explicación generada con los documentos originales. Mantén la primera ejecución en solo lectura e incluye un paso explícito de revisión humana. Evalúa si la salida cita evidencia a favor y en contra, registra los datos ausentes y distingue los supuestos de los cálculos. El nombre de una función de analista o un estilo de inversión no demuestra que el razonamiento generado reproduzca los métodos o el criterio de una persona real.

Mantén independiente la evidencia del backtest

Una aplicación puede terminar un ciclo de investigación mientras su evaluación histórica sigue siendo inválida. Examina las marcas de tiempo de publicación, los datos revisados, la selección de empresas supervivientes y cualquier uso de noticias actuales en prompts históricos. Separa los periodos de desarrollo, validación y retención antes de iterar sobre prompts o ajustes de estrategia. Guarda el benchmark, los supuestos de costes de transacción y cada configuración probada. Elegir repetidamente un prompt a partir del mismo periodo de prueba convierte ese periodo en datos de desarrollo. Informa honestamente de una evaluación incompleta en lugar de llenar una tabla de resultados con un retorno ilustrativo que podría confundirse con una medición.

Controla los fallos y el gasto total de investigación

Cuenta las llamadas al modelo, los reintentos, los fallos de análisis, los cargos de datos financieros y el cálculo local a nivel de trabajo. Un timeout del endpoint puede dejar el uso desconocido hasta conciliarlo. Reintenta los fallos transitorios de transporte dentro de un presupuesto fijo; no reintentes sin cambios los fallos de autenticación o selección de proveedor. Mantén disponible para revisión la etapa fallida y su error saneado. Una respuesta genérica de saludo del gateway puede ayudar a aislar el transporte, pero solo las pruebas del propio cliente del proyecto ejercitan el comportamiento de su adaptador. Una comparación de costes útil mantiene constantes el paquete de fuentes, las funciones y los criterios de aceptación de salida entre los modelos candidatos.

Evidencia y limitaciones

La fábrica y el registro actuales se revisaron en fc1bf250 el 5 de septiembre de 2026. Los ejemplos son plantillas respaldadas por fuentes; para esta guía no se ejecutaron una solicitud de APIsRouter ni un ciclo completo de investigación. Las llamadas anteriores mediante otros gateways no demuestran esta integración. Mantén separados los resultados del cliente, de las herramientas de datos y del artefacto completo al validar tu entorno.

Preguntas frecuentes

¿Por qué mi ID personalizado pide una clave de Anthropic?

En la fábrica revisada, un ID de modelo no registrado recurre a Anthropic. Comprueba provider_for(model) y el registro actual hedge_fund/llm/api_models.json antes de construir el cliente.

¿OPENAI_API_BASE redirige a todos los proveedores?

No. Se lee en la rama del cliente OpenAI. Los demás proveedores del registro construyen sus propios clientes y pueden usar ajustes diferentes.

¿Qué campos del registro son relevantes?

El registro revisado lee display_name, model_name y provider. Conserva el ID exacto del endpoint y selecciona el transporte de forma intencionada.

¿Un modelo del menú de la aplicación implica acceso al endpoint?

No. Comprueba el ID exacto y el acceso de la cuenta con el endpoint elegido. El registro de la aplicación determina la selección del cliente, no el catálogo del gateway.

¿Qué debo comprobar después de que el cliente devuelva JSON?

Valida las herramientas de datos financieros, el esquema de salida del agente, el comportamiento de abstención y el artefacto final de investigación vinculado a fuentes mediante una tarea acotada.

¿Puedo usar la salida para colocar una orden automáticamente?

Esta guía cubre la configuración de investigación. La autorización de órdenes, los límites, la conciliación y la revisión operativa pertenecen a un sistema de ejecución validado por separado.