DEV Community

Pablo Nieto
Pablo Nieto

Posted on

Dotando a IAs con: V1 Enrich Amount (ETL-D API)

CONTENT:

  • The Hallucination Problem

    En los modelos de lenguaje grande (LLM), uno de los desafíos críticos es la tendencia a "alucinar", es decir, generar respuestas poco precisas o inventadas basadas en datos dados incorrectamente. Este problema es especialmente notorio cuando se trata de interpretar valores monetarios a partir de descripciones textuales inconsistentes. Sin la capacidad de procesar datos financieros con precisión, los LLMs pueden proporcionar resultados engañosos que no cumplen con los requisitos de precisión en aplicaciones comerciales. Para resolver esto, se utiliza el endpoint '/v1/enrich/amount' del entorno ETL-D, que se especializa en extraer y limpiar valores monetarios, garantizando así que el LLM recibe datos monetarios exactos y verificados.

  • Agent Tool Architecture

    Integrando el endpoint '/v1/enrich/amount' como una herramienta determinista dentro de un agente automatizado basado en LLM (como los de LangChain o AutoGPT), actúa como un middleware que proporciona validación y enriquecimiento contextualmente conscientes de los datos financieros. Al utilizarse como una capa determinista, se garantiza que las decisiones basadas en valores monetarios se realicen con precisión, sin depende de conjeturas que pueden degradar la funcionalidad del agente.

  • Implementation

    A continuación se muestra un bloque de código en Python que demuestra cómo envolver el uso del SDK de ETL-D como una herramienta en LangChain o una función invocable para un agente. Este bloque maneja los errores comunes, como problemas de crédito insuficiente y errores de validación.

  from etld_sdk import ETLD_Client, ETLD_Exception
  from langchain import Tool

  # Configuración del cliente ETL-D
  client = ETLD_Client(api_key='YOUR_API_KEY')

  def enrich_amount_tool(amount_string, context=None):
      try:
          # Preparando el cuerpo de la petición
          request_data = {'amount_string': amount_string}
          if context:
              request_data['context'] = context

          # Llamada al endpoint de enriquecimiento
          response = client.enrich_amount_v1_enrich_amount_post(request_data)
          return response.json()  # Retorna el resultado procesado

      except ETLD_Exception as e:
          # Manejo de excepciones específicas del SDK de ETL-D
          if e.status_code == 402:
              return "Error: Créditos insuficientes. Por favor, recarga tu cuenta."
          elif e.status_code == 422:
              return f"Error de Validación: {e.message}"
          else:
              return f"Error inesperado: {e.message}"

  @Tool(name="EnrichAmount", description="Utiliza ETL-D para procesar y limpiar valores monetarios.")
  def enrich_amount(amount_text: str):
      return enrich_amount_tool(amount_string=amount_text)
Enter fullscreen mode Exit fullscreen mode
  • Deterministic Output Specs La salida que recibe el LLM de este proceso es una estructura de datos JSON precisa y limpiada contenida en el MoneyOutput. El esquema asegura que los valores monetarios se proporcionen con exactitud, incluyendo el valor numérico y el código de moneda ISO correspondiente. Esto permite que el LLM utilice estos datos con confianza en sus procesos de toma de decisiones, asegurando un alto nivel de precisión y reduciendo errores potenciales en los flujos de trabajo automatizados.

🔗 Get the Agent Tool Code: GitHub Gist

Top comments (0)