Comando AICOMMAND
Información de Concepto
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.
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:
|
| 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:
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:
-
AnalyticsAICOMMAND extrae el campo o campos seleccionados de una tabla de Analytics y los guarda en un archivo CSV.
-
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.
-
PythonEl script de Python importa el archivo CSV y lo convierte en un marco de datos de Pandas.
-
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.
-
Servicio de IAEl servicio de IA procesa el marco de datos basado en las instrucciones en la solicitud del usuario.
-
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.
-
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.
-
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.
-
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.
-
Utilice AICOMMAND para procesar datos mediante un servicio de IA externo.
-
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 |