Pruebas
Componentes simulados para ayudarte a probar tu sistema impulsado por IA
Cuando pruebas un agente, no quieres que cada ejecución de prueba haga llamadas reales a la API de OpenAI, Anthropic o cualquier otro proveedor. Las llamadas reales son lentas, cuestan dinero y devuelven resultados diferentes cada vez, lo que hace que tus pruebas sean inestables y caras. Lo mismo aplica a los agentes RAG: no quieres levantar una base de datos vectorial ni llamar a una API de embeddings solo para verificar la lógica de tu agente.
Neuron incluye dobles de prueba listos para usar que solucionan este problema. FakeAIProvider reemplaza al proveedor de IA, FakeEmbeddingsProvider reemplaza al proveedor de embeddings, y FakeVectorStore reemplaza el almacén vectorial. Devuelven respuestas predeterminadas, nunca acceden a la red y registran cada interacción para que puedas verificar exactamente lo que hizo tu agente.
Configuración
Crea una FakeAIProvider con las respuestas que esperas que devuelva el modelo, luego inyéctalo en tu agente:
use NeuronAI\Chat\Messages\Stream\AssistantMessage;
use NeuronAI\Testing\FakeAIProvider;
$provider = new FakeAIProvider(
new AssistantMessage('¡Hola! ¿En qué puedo ayudarte?')
);
$agent = MyAgent::make()->setAiProvider($provider);Las respuestas se devuelven en orden. Si tu agente realiza múltiples llamadas al proveedor (por ejemplo, llamadas a herramientas), encola varias respuestas:
$provider = new FakeAIProvider(
new AssistantMessage('Primera respuesta'),
new AssistantMessage('Segunda respuesta'),
);Chat
Streaming
El proveedor falso divide el texto de la respuesta en fragmentos, simulando una transmisión real:
Puedes cambiar el tamaño del fragmento con setStreamChunkSize():
Salida estructurada
Proporciona una cadena JSON que coincida con el esquema de tu clase de salida. El agente la deserializará y validará como de costumbre:
Llamadas a herramientas
Cuando el modelo decide llamar a una herramienta, devuelve un ToolCallMessage. El agente ejecuta la herramienta y vuelve al proveedor para obtener una respuesta final. Encola ambas respuestas:
Aserciones
FakeAIProvider incluye aserciones integradas que puedes usar en tus pruebas:
Inspección de solicitudes
Para verificaciones más avanzadas, accede a las solicitudes registradas en bruto:
RAG
Los agentes RAG dependen de un proveedor de embeddings y de un almacén vectorial, además del proveedor de IA. Neuron proporciona FakeEmbeddingsProvider y FakeVectorStore para reemplazar ambos en las pruebas.
FakeEmbeddingsProvider
Genera embeddings deterministas sin llamar a ninguna API externa. Úsalo donde necesites un proveedor de embeddings:
FakeVectorStore
Devuelve documentos predeterminados de similaritySearch() independientemente del embedding pasado. Pasa al constructor los documentos que quieres que se devuelvan:
Chat RAG
Agregar documentos
Prueba que tu canalización de indexación incrusta y almacena documentos correctamente:
Aserciones de RAG
Última actualización