Comando AICOMMAND

Información de Concepto

Uso de AI con análisis de datos

Admite el análisis de datos en lenguaje natural mediante la integración de Analytics con un servicio de AI externo.

Nota

Para usar el comando AICOMMAND, debe instalar y configurar una versión compatible de Python en la computadora donde se ejecutará el comando. También debe instalar dos librerías de Python: Pandas y OpenAI Python API. Si desea obtener más información, consulte Configuración de Python para uso con Analytics.

El servicio de AI externo no es proporcionado por Diligent. Debe ser proporcionado por su organización.

Solo conéctese a un servicio de AI externo que haya sido aprobado para su uso por su organización. Asegúrese de seguir todos los protocolos de seguridad si tiene la intención de transmitir datos confidenciales desde Analytics al servicio de AI.

Los resultados de AI pueden contener imprecisiones o errores. Utilice un método alternativo para verificar los resultados si se requiere una precisión absoluta.

Sintaxis

AICOMMAND {<FIELDS> field <...n>|<FIELDS> ALL} <SCRIPT "path_and_filename"> TO table_name USER_PROMPT "user_prompt_text" <PASSWORD num> MODEL "model_information" URL "ai_service_api_url" <BATCHSIZE number_of_records> <IF test> <WHILE test> <FIRST range|NEXT range> <OPEN>

Parámetros

Nombre Descripción

FIELDS nombre_campo <...n> | FIELDS ALL

Los campos o expresiones de la tabla de origen de Analytics para enviar al servicio IA.

Debe especificar al menos un campo o expresión.

  • FIELDS field_nameincluye el campo, los campos o las expresiones especificados

    Separe los nombres de campo con espacios. Los campos se exportan en el orden en el que usted los indica.

    Para exportar un campo relacionado, especifique un nombre de campo completo (table_name.field_name). Por ejemplo: Vendor.Vendor_Name

  • FIELDS ALLIncluya todos los campos de tabla.

    Los campos se exportan en el orden en el que aparecen en el formato de tabla. No se realizan exportaciones en los campos relacionados.

Nota

Limite la cantidad total de datos enviados al servicio de AI especificando únicamente aquellos campos que sean estrictamente necesarios para su objetivo de análisis.

Incluya un campo de identificador único si desea unir o relacionar la tabla devuelta por el servicio de AI con la tabla de origen original. Para obtener más información, consulte Cree un campo de identificador único.

SCRIPT "path_and_filename"

opcional

Si usa su propio script Python con AICOMMAND, la ruta del archivo y el nombre del script.

Si especifica un script, PASSWORD, MODEL y URL son opcionales. Para obtener más información, consulte Uso de su propio script de Python.

TO nombre_tabla

El lugar al que se deben enviar los resultados del comando:

  • nombre_tablaguarda los resultados en una tabla de Analytics

    Especifique nombre_tabla como una cadena entre comillas con una extensión de archivo .FIL. Por ejemplo: TO "Output.FIL"

    Por valor predeterminado, la archivo de datos de la tabla (.FIL) se guarda en la carpeta que contiene el proyecto de Analytics.

    Utilice una ruta de archivo absoluta o relativa para guardar el archivo de datos en una carpeta existente o una diferente:

    • TO "C:\Output.FIL"
    • TO "Results\Output.FIL"

    Nota

    Los nombres de las tablas tienen un límite de 64 caracteres alfanuméricos, sin incluir la extensión .FIL. El nombre puede incluir un guión bajo ( _ ), pero no puede incluir ningún otro carácter especial ni espacios. El nombre no puede comenzar con un número.

USER_PROMPT "user_prompt_text"

El texto de la solicitud para ingresar al servicio de IA.

La solicitud le indica al servicio de IA cómo procesar los datos de entrada que envía y qué salida desea.

Nota

Debe incluir user_prompt_text con comillas dobles ( " ). Sin embargo, no incluya comillas dobles en el cuerpo del user_prompt_text. Las comillas dobles en el cuerpo del texto de la solicitud hacen que el comando falle. Puede usar comillas simples ( ' ) en el texto del mensaje.

PASSWORD núm

opcional

La definición de contraseña que se debe usar.

No se utiliza PASSWORD núm para solicitar o especificar una contraseña real. La definición de contraseña hace referencia a una contraseña proporcionada o configurada previamente con el comando PASSWORD, el comando SET PASSWORD o la etiqueta de estudio analítico PASSWORD.

núm es el número de la definición de contraseña. Por ejemplo, si se proporcionaron o configuraron dos contraseñas previamente en un script, o al programar un script de estudio analítico, PASSWORD 2 especifica que se utiliza la contraseña número 2.

Si desea obtener más información acerca de la especificación o configuración de contraseñas, consulte:

Nota

AICOMMAND usa la clave API de IA guardada en el registro local, suponiendo que se guardó una clave. Si no se guarda ninguna clave, o si desea usar una clave diferente, debe usar PASSWORD. Para obtener más información, consulte Configuración de conexión para un servicio de AI externo.

MODEL "model_information"

Identificación de información para el modelo específico de IA que desea utilizar.

Por ejemplo:

MODEL "anthropic.claude-3-5-sonnet-20241022-v2:0"

Un servicio de IA puede ofrecer diferentes modelos que puede usar.

Puede usar cualquier modelo de lenguaje de gran tamaño (LLM) compatible con OpenAI, es decir, un modelo de OpenAI o un modelo que use el mismo esquema de API que los modelos de OpenAI.

URL "ai_service_api_url"

La URL completa de la API de servicios de IA.

Por ejemplo:

URL "https://api.anthropic.com/v1"
BATCHSIZE number_of_records

opcional

El número de registros a incluir en cada lote enviado al servicio de IA.

Si AICOMMAND falla, intente especificar un tamaño de lote de 50 o 25.

Si no especifica BATCHSIZE, se usa el tamaño de lote predeterminado de 100 registros.

Normalmente, un servicio de AI limita la cantidad de datos que procesa en cada operación. Los registros de una tabla de Analytics se envían al servicio de AI en lotes para aumentar la probabilidad de mantenerse dentro de los límites de datos. Las respuestas de IA para todos los lotes se ensamblan en la tabla de salida única de Analytics.

IF prueba

opcional

Una condición que se debe cumplir para procesar el registro actual. Los datos enviados al servicio de IA contiene únicamente los registros que cumplen con esta condición.

Al menos un registro se debe incluir en la tabla por la condición IF. Si la condición excluye todos los registros de la tabla, se produce un error y el comando no se ejecuta.

WHILE prueba

opcional

Una expresión condicional que debe ser verdadera para procesar cada registro. El comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega al final de la tabla.

Nota

Si usa WHILE junto con FIRST o NEXT, el procesamiento de registros se detiene al llegar a un límite.

FIRST rango | NEXT rango

opcional

La cantidad de registros que se procesarán:

  • FIRSTComienza a procesar desde el primer registro hasta que se llega al número de registros especificado.
  • NEXTComienza a procesar desde el registro seleccionado actualmente hasta que se llega al número de registros especificado.

Utilice intervalo para especificar la cantidad de registros que se deben procesar.

Si omite FIRST y NEXT, se procesan todos los registros de forma predeterminada.

ABRIR

opcional

Abre la tabla creada por el comando después de la ejecución del comando. Solo es válido si el comando crea una tabla de salida.

Ejemplos

Evaluación de proveedores mediante AI

Usted desea realizar una verificación básica de una tabla de proveedores para detectar posibles proveedores ficticios. Para ello, ingresa los campos de nombre y dirección del proveedor en el servicio de AI y le solicita que categorice a los proveedores como COMMON (Común), RARE (Poco común) o UNKNOWN (Desconocido).

Los proveedores clasificados como desconocidos requieren una investigación adicional para determinar si realmente existen.

OPEN Vendors
AICOMMAND FIELDS vendor_name address TO "ai_vendor_classification" USER_PROMPT "Is this a commonly known vendor? The output value should be COMMON if common, RARE if known but uncommon, UNKNOWN otherwise." MODEL "anthropic.claude-3-5-sonnet-20241022-v2:0" URL "https://hackfest-bedrock-proxy.diligentoneplatform-dev.com/api/v1"

Revisión de gastos mediante AI

Usted desea revisar las transacciones de tarjetas de compra (P-cards) y marcar cualquier gasto donde exista una discrepancia entre el artículo o servicio y el precio de compra. Para ello, ingresa la descripción del gasto y los campos de costo en el servicio de AI y le solicita que evalúe si el gasto es razonable.

OPEN PcardTransactions
AICOMMAND FIELDS Description UnitCost TO "ai_expense_cost_review" USER_PROMPT "Given the combination of Description and Unit Cost, indicate whether the cost is typical or unusual." MODEL "anthropic.claude-3-5-sonnet-20241022-v2:0" URL "https://hackfest-bedrock-proxy.diligentoneplatform-dev.com/api/v1"

Análisis del sentimiento de las reseñas de hoteles con IA

Usted desea realizar un análisis de sentimiento y una categorización del campo de comentarios de texto libre en una tabla que contiene reseñas de hoteles de clientes. Le solicita al servicio de AI que categorice los comentarios según las seis emociones humanas básicas.

OPEN hotel_reviews
AICOMMAND FIELDS reviews_rating reviews_text TO "ai_hotel_reviews_sentiment_analysis" USER_PROMPT "Perform a sentiment analysis on the reviews_text field and categorize the reviews by the following basic human emotions: Happiness, Anger, Fear, Sadness, Disgust, Surprise." MODEL "anthropic.claude-3-5-sonnet-20241022-v2:0" URL "https://hackfest-bedrock-proxy.diligentoneplatform-dev.com/api/v1" BATCHSIZE 50 OPEN

Observaciones

Cómo funciona la integración entre Analytics y un servicio de IA externo

Seleccionar campos, crear un mensaje de usuario y ejecutar AICOMMAND es el punto de partida para la integración completa entre Analytics y un servicio de IA externo:

  1. AnalyticsAICOMMAND extrae el campo o campos seleccionados de una tabla de Analytics y los guarda en un archivo CSV.

  2. AnalyticsAICOMMAND pone a disposición del usuario el mensaje de solicitud y la información de conexión para la API del servicio de IA, tanto en el script predeterminado de Python como en cualquier script de Python que usted cree.

    Ubicación del script predeterminado de Python:

    C:\Program Files (x86)\ACL Software\ACL for Windows <version>\acl_py_util\ai_main.py

    ¡Precaución!

    No mueva el script predeterminado de Python, ni lo altere de ninguna manera. La operación predeterminada de AICOMMAND depende de que el script predeterminado de Python esté en la ubicación correcta y permanezca sin cambios.

  3. PythonEl script de Python importa el archivo CSV y lo convierte en un marco de datos de Pandas.

  4. PythonEl script de Python envía el marco de datos y la solicitud del usuario a la API del servicio de IA. Para permanecer dentro de los límites de datos de la API, el script envía el marco de datos en lotes.

  5. Servicio de IAEl servicio de IA procesa el marco de datos basado en las instrucciones en la solicitud del usuario.

  6. Servicio de IAEl servicio de IA devuelve el marco de datos al script de Python con la adición de la columna ai_response, que contiene los resultados del procesamiento de IA.

  7. PythonEl script de Python convierte el marco de datos devuelto en una tabla de Analytics y lo exporta a Analytics con el nombre de la tabla de salida especificado en AICOMMAND.

  8. AnalyticsPuede abrir la tabla de salida en Analytics para ver los resultados del procesamiento de IA, o utilizar los resultados como base para el análisis de datos adicionales.

Uso de su propio script de Python

Puede usar tu propio script de Python con AICOMMAND. Cree el script con la lógica que desee para interactuar con la API del servicio de IA. En AICOMMAND, use el parámetro SCRIPT para especificar la ruta y el nombre de archivo del script.

Un enfoque posible es copiar el script predeterminado de Python utilizado por AICOMMAND como punto de partida para su propio script. El script predeterminado se encuentra en la carpeta de instalación de Analytics. Si instaló Analytics en la ubicación predeterminada, el script está aquí:

C:\Program Files (x86)\ACL Software\ACL for Windows <version>\acl_py_util\ai_main.py

¡Precaución!

No mueva el script predeterminado de Python, ni lo altere de ninguna manera. La operación predeterminada de AICOMMAND depende de que el script predeterminado de Python esté en la ubicación correcta y permanezca sin cambios.

El script de Python utilizado por AICOMMAND debe contener la configuración de conexión para el servicio de IA externo, ya sea el script predeterminado o su propio script. En su propio script, tiene dos opciones:

  • Utilice la configuración de conexión de AnalyticsUtilice los valores clave de host, modelo e IA de API especificados en los parámetros AICOMMAND.

    Para usar los valores de AICOMMAND en su script Python, defina tres variables o copie las definiciones de variables desde el script predeterminado de Python.

    an_api_key = os.getenv("ACL_PY_API_KEY")
    ai_base_url = os.getenv("ACL_PY_AI_BASE_URL")
    ai_model = os.getenv("ACL_PY_AI_MODEL")
  • Use su propio métodoUse su propio método para proporcionar los valores clave de host, modelo e IA de API. Si utiliza su propio método, no es necesario especificar los valores de conexión en los parámetros de AICOMMAND.

Cree un campo de identificador único

Si desea unir la tabla devuelta del servicio de IA con la tabla de origen, pero no tiene un campo de identificador único, puede usar la función RECNO( ) para crear una antes de usar AICOMMAND.

  1. En la tabla de origen, cree un campo calculado llamado record_number que utilice la siguiente expresión:

    RECNO( )

    Para cada registro de la tabla, la función RECNO( ) agrega el número de registro único en el campo record_number.

    Para obtener más información, consulte DEFINE FIELD. . . Comando COMPUTED.

  2. Utilice AICOMMAND para procesar datos mediante un servicio de IA externo.

  3. Utilice el camporecord_number como el campo clave común para unir la tabla devuelta por el servicio de AI con la tabla de origen.

    Para obtener más información, consulte Comando JOIN.

Separe múltiples componentes en el campo ai_response

En la tabla de salida devuelta por AICOMMAND, los valores en el campo ai_response pueden contener varios componentes o elementos. Por ejemplo, el único valor que se muestra a continuación contiene cuatro componentes: sentimiento, sentiment_score, key_reasons y temas. El componente temas contiene tres valores individuales.

sentiment: Positivo, sentiment_score: 0,6, key_reasons: habitaciones limpias, personal amable, problemas con el desayuno, temas: limpieza, personal, comida

Para facilitar el análisis posterior, puede aislar los componentes y valores en campos calculados independientes que cree con las expresiones calculadas que se muestran a continuación.

Para obtener información general sobre cómo crear campos computados, consulte Definir campos calculados.

Nombre del campo calculado Expresión calculada Valor de resultado
sentimiento
REGEXREPLACE(ai_response, "sentiment\:\s(.*?),.*", "$1")
Positivo/a
sentiment_score
VALUE(REGEXREPLACE(ai_response, ".*sentiment_score\:\s(.*?),.*", "$1"), 1)
0,6
key_reasons
REGEXREPLACE(ai_response, ".*key_reasons\:\s(.*?),\sthemes.*", "$1")
habitaciones limpias, personal amable, problemas con el desayuno
temas
REGEXREPLACE(ai_response, ".*themes\:\s(.*?)", "$1")
limpieza, personal, comida
theme_1
SPLIT(REGEXREPLACE(ai_response, ".*themes\:\s(.*?)", "$1"), ",", 1)
limpieza
theme_2
SPLIT(REGEXREPLACE(ai_response, ".*themes\:\s(.*?)", "$1"), ",", 2)
personal
theme_3
SPLIT(REGEXREPLACE(ai_response, ".*themes\:\s(.*?)", "$1"), ",", 3)
comida