Cómo construir un sistema de IA agente de autoevaluación con LlamaIndex y OpenAI mediante recuperación, uso de herramientas y controles de calidad automatizados

En este tutorial, creamos un flujo de trabajo de IA agente avanzado utilizando modelos LlamaIndex y OpenAI. Nos centramos en diseñar un agente de generación aumentada de recuperación (RAG) confiable que pueda razonar sobre la evidencia, usar herramientas deliberadamente y evaluar la calidad de sus propios resultados. Al estructurar el sistema en torno a la recuperación, la síntesis de respuestas y la autoevaluación, demostramos cómo los patrones de agencia van más allá de los simples chatbots y avanzan hacia sistemas de IA más confiables y controlables, adecuados para casos de uso analítico y de investigación.

!pip -q install -U llama-index llama-index-llms-openai llama-index-embeddings-openai nest_asyncio import os import asyncio import nest_asyncio nest_asyncio.apply() from getpass import getpass if not os.environ.get(“OPENAI_API_KEY”): os.environ[“OPENAI_API_KEY”] = getpass(“Ingrese OPENAI_API_KEY: “)

Configuramos el entorno e instalamos todas las dependencias necesarias para ejecutar un flujo de trabajo de IA agente. Cargamos de forma segura la clave API de OpenAI en tiempo de ejecución, asegurando que las credenciales nunca estén codificadas. También preparamos el cuaderno para manejar la ejecución asincrónica sin problemas.

de llama_index.core importar documento, VectorStoreIndex, Configuración de llama_index.llms.openai importar OpenAI de llama_index.embeddings.openai importar OpenAIEmbedding Settings.llm = OpenAI(model=”gpt-4o-mini”, temperatura=0.2) Settings.embed_model = OpenAIEmbedding(model=”text-embedding-3-small”) texts = [
“Reliable RAG systems separate retrieval, synthesis, and verification. Common failures include hallucination and shallow retrieval.”,
“RAG evaluation focuses on faithfulness, answer relevancy, and retrieval quality.”,
“Tool-using agents require constrained tools, validation, and self-review loops.”,
“A robust workflow follows retrieve, answer, evaluate, and revise steps.”
]

documentos = [Document(text=t) for t in texts]
índice = VectorStoreIndex.from_documents(docs) query_engine = index.as_query_engine(similitud_top_k=4)

Configuramos el modelo de lenguaje OpenAI y el modelo de integración y construimos una base de conocimientos compacta para nuestro agente. Transformamos texto sin formato en documentos indexados para que el agente pueda recuperar evidencia relevante durante el razonamiento.

de llama_index.core.evaluación importar FaithfulnessEvaluator, RelevancyEvaluator Faith_eval = FaithfulnessEvaluator(llm=Settings.llm) rel_eval = RelevancyEvaluator(llm=Settings.llm) def retrieve_evidence(q: str) -> str: r = query_engine.query(q) out = []
para i, n en enumerar (r.source_nodes o []): out.append(f”[{i+1}] {n.nodo.get_content()[:300]}”) devuelve “\n”.join(out) def score_answer(q: str, a: str) -> str: r = query_engine.query(q) ctx = [n.node.get_content() for n in r.source_nodes or []]f = fe_eval.evaluate(query=q, respuesta=a, contextos=ctx) r = rel_eval.evaluate(query=q, respuesta=a, contextos=ctx) return f”Fidelidad: {f.score}\nRelevancia: {r.score}”

Definimos las herramientas centrales utilizadas por el agente: recuperación de evidencia y evaluación de respuestas. Implementamos puntuación automática de fidelidad y relevancia para que el agente pueda juzgar la calidad de sus propias respuestas.

de llama_index.core.agent.workflow importar ReActAgent de llama_index.core.workflow importar Agente de contexto = ReActAgent( herramientas =[retrieve_evidence, score_answer]llm=Settings.llm, system_prompt=””” Siempre recupere la evidencia primero. Produzca una respuesta estructurada. Evalúe la respuesta y revísela una vez si las puntuaciones son bajas. “””, verbose=True ) ctx = Context(agent)

Creamos el agente basado en ReAct y definimos el comportamiento de su sistema, guiando cómo recupera evidencia, genera respuestas y revisa resultados. También inicializamos el contexto de ejecución que mantiene el estado del agente en todas las interacciones. Este paso reúne herramientas y razonamiento en un único flujo de trabajo agente.

async def run_brief(topic: str): q = f”Diseñe un flujo de trabajo de agente confiable con herramientas RAG + y cómo evaluarlo. Tema: {topic}” handler = agent.run(q, ctx=ctx) async for ev in handler.stream_events(): print(getattr(ev, “delta”, “”), end=””) res = await handler return str(res) topic = “Confiabilidad y evaluación del agente RAG” loop = asyncio.get_event_loop() resultado = loop.run_until_complete(run_brief(tema)) print(“\n\nSALIDA FINAL\n”) print(resultado)

Ejecutamos el ciclo completo del agente pasando un tema al sistema y transmitiendo el razonamiento y los resultados del agente. Permitimos que el agente complete su ciclo de recuperación, generación y evaluación de forma asincrónica.

En conclusión, mostramos cómo un agente puede recuperar evidencia de respaldo, generar una respuesta estructurada y evaluar su propia fidelidad y relevancia antes de finalizar una respuesta. Mantuvimos el diseño modular y transparente, lo que facilitó la ampliación del flujo de trabajo con herramientas adicionales, evaluadores o fuentes de conocimiento de dominios específicos. Este enfoque ilustra cómo podemos utilizar la IA agente con los modelos LlamaIndex y OpenAI para construir sistemas más capaces que también sean más confiables y conscientes de sí mismos en su razonamiento y respuestas.

Consulta los CÓDIGOS COMPLETOS aquí. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 100.000 ML y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.

Asif Razzaq es el director ejecutivo de Marktechpost Media Inc.. Como emprendedor e ingeniero visionario, Asif está comprometido a aprovechar el potencial de la inteligencia artificial para el bien social. Su esfuerzo más reciente es el lanzamiento de una plataforma de medios de inteligencia artificial, Marktechpost, que se destaca por su cobertura en profundidad del aprendizaje automático y las noticias sobre aprendizaje profundo que es técnicamente sólida y fácilmente comprensible para una amplia audiencia. La plataforma cuenta con más de 2 millones de visitas mensuales, lo que ilustra su popularidad entre el público.