Athrun Data Intelligence


En este tutorial, creamos un flujo de trabajo de IA agente reformista utilizando modelos LlamaIndex y OpenAI. Nos centramos en diseñar un agente de procreació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 orquestar 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 en dirección a 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("Enter 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 esencia API de OpenAI en tiempo de ejecución, asegurando que las credenciales nunca estén codificadas. Asimismo preparamos el cuaderno para manejar la ejecución asincrónica sin problemas.

from llama_index.core import Document, VectorStoreIndex, Settings
from llama_index.llms.openai import OpenAI
from llama_index.embeddings.openai import OpenAIEmbedding


Settings.llm = OpenAI(model="gpt-4o-mini", temperature=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."
)


docs = (Document(text=t) for t in texts)
index = VectorStoreIndex.from_documents(docs)
query_engine = index.as_query_engine(similarity_top_k=4)

Configuramos el maniquí de jerga OpenAI y el maniquí de integración y construimos una pulvínulo de conocimientos compacta para nuestro agente. Transformamos texto sin formato en documentos indexados para que el agente pueda recuperar evidencia relevante durante el razonamiento.

from llama_index.core.evaluation import 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 = ()
   for i, n in enumerate(r.source_nodes or ()):
       out.append(f"({i+1}) {n.node.get_content()(:300)}")
   return "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 = faith_eval.evaluate(query=q, response=a, contexts=ctx)
   r = rel_eval.evaluate(query=q, response=a, contexts=ctx)
   return f"Faithfulness: {f.score}nRelevancy: {r.score}"

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

from llama_index.core.agent.workflow import ReActAgent
from llama_index.core.workflow import Context


agent = ReActAgent(
   tools=(retrieve_evidence, score_answer),
   llm=Settings.llm,
   system_prompt="""
Always retrieve evidence first.
Produce a structured answer.
Evaluate the answer and revise merienda if scores are low.
""",
   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. Asimismo 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"Design a reliable RAG + tool-using agent workflow and how to evaluate it. Topic: {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 = "RAG agent reliability and evaluation"
loop = asyncio.get_event_loop()
result = loop.run_until_complete(run_brief(topic))


print("nnFINAL OUTPUTn")
print(result)

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

En conclusión, mostramos cómo un agente puede recuperar evidencia de respaldo, producir una respuesta estructurada y evaluar su propia fidelidad y relevancia antaño 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 igualmente sean más confiables y conscientes de sí mismos en su razonamiento y respuestas.


Mira el CÓDIGOS COMPLETOS aquí. Encima, no dudes en seguirnos en Gorjeo y no olvides unirte a nuestro SubReddit de más de 100.000 ml y suscríbete a nuestro boletín. ¡Esperar! estas en telegrama? Ahora igualmente puedes unirte a nosotros en Telegram.


Asif Razzaq es el director ejecutor de Marktechpost Media Inc.. Como emprendedor e ingeniero soñador, Asif está comprometido a rendir el potencial de la inteligencia químico para el aceptablemente social. Su esfuerzo más nuevo es el tirada de una plataforma de medios de inteligencia químico, Marktechpost, que se destaca por su cobertura en profundidad del educación necesario y las telediario sobre educación 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 sabido.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *