Comando AICOMMAND
Informações do conceito
Oferece suporte à análise de dados em linguagem natural ao integrar o Analytics com um serviço de IA externo.
Observação
Para usar o comando AICOMMAND,, você precisa instalar e configurar uma versão compatível do Python no computador em que o comando será executado. Também deve instalar duas bibliotecas Python: Pandas e API Python da OpenAI. Para obter mais informações, consulte Configuração do Python para uso com o Analytics.
O serviço externo de IA não é fornecido pela Diligent. Ele deve ser fornecido pela sua organização.
Conecte-se apenas a um serviço externo de IA que tenha sido aprovado para uso pela sua organização. Certifique-se de seguir todos os protocolos de segurança caso pretenda transmitir dados sensíveis do Analytics para o serviço de IA.
Os resultados da IA podem conter imprecisões ou erros. Utilize um método alternativo para verificar os resultados caso seja necessária precisão absoluta.
Sintaxe
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
| Nome | Descrição |
|---|---|
|
FIELDS nome_campo <...n> | FIELDS ALL |
Os campos ou expressões da tabela de origem do Analytics a serem enviados ao serviço de IA. Você deve especificar pelo menos um campo ou expressão.
Observação Limite a quantidade total de dados enviados ao serviço de IA especificando apenas os campos estritamente necessários para o objetivo da sua análise. Inclua um campo de identificador único se quiser unir ou relacionar a tabela retornada do serviço de IA com a tabela de origem original. Para obter mais informações, consulte Criar um campo de identificador exclusivo:. |
|
SCRIPT "path_and_filename" opcional |
Se você usar seu próprio script Python com AICOMMAND, o caminho do arquivo e o nome do script. Se você especificar um script, PASSWORD, MODEL e URL são opcionais. Para obter mais informações, consulte Usando seu próprio script Python. |
| TO nome_tabela |
A localização para onde enviar os resultados do comando:
|
| USER_PROMPT "texto_do_prompt_do_usuario" |
O texto do prompt a ser enviado ao serviço de IA. O prompt informa ao serviço de IA como processar os dados de entrada que você envia e qual saída você deseja. Observação Você deve colocar texto_do_prompt_do_usuario entre aspas duplas ( " ). No entanto, não inclua aspas duplas no conteúdo do texto do texto_do_prompt_do_usuario. Aspas duplas dentro do texto do prompt fazem o comando falhar. Você pode usar aspas simples ( ' ) no texto do prompt. |
|
PASSWORD num opcional |
A definição de senha a ser usada. PASSWORD num não é usado para solicitar ou especificar uma senha real. A definição de senha faz referência a uma senha previamente fornecida ou definida com o comando PASSWORD, o comando SET PASSWORD ou a tag de análise PASSWORD. num é o número da definição de senha. Por exemplo, se as duas senhas foram previamente fornecidas ou definidas em um script, ou no agendamento de um script de análise, PASSWORD 2 especifica o uso da senha nº 2. Para obter mais informações sobre o fornecimento ou a definição de senhas, consulte: Observação AICOMMAND usa a chave de API de IA salva no registro local, caso uma chave tenha sido salva. Se nenhuma chave estiver salva, ou se você quiser usar uma chave diferente, deve usar PASSWORD. Para obter mais informações, consulte Configurações de conexão para um serviço de IA externo. |
|
MODEL "informações_do_modelo" |
Informações de identificação do modelo específico de IA que você deseja usar. Por exemplo: MODEL "anthropic.claude-3-5-sonnet-20241022-v2:0" Um serviço de IA pode oferecer diferentes modelos que você pode usar. Você pode usar qualquer modelo de linguagem grande (LLM) compatível com a OpenAI, ou seja, um modelo da OpenAI ou um modelo que utilize o mesmo esquema de API dos modelos da OpenAI. |
|
URL "url_da_api_do_servico_de_ia" |
A URL completa da API do serviço de IA. Por exemplo: URL "https://api.anthropic.com/v1" |
| BATCHSIZE numero_de_registros opcional |
O número de registros a incluir em cada lote enviado ao serviço de IA. Se AICOMMAND falhar, tente especificar um tamanho de lote de 50 ou 25. Se você não especificar BATCHSIZE, será usado o tamanho de lote padrão de 100 registros. Um serviço de IA normalmente limita a quantidade de dados que processa em cada operação. Os registros de uma tabela do Analytics são enviados para um serviço de IA em lotes, para aumentar a probabilidade de permanecer dentro dos limites de dados. As respostas da IA para todos os lotes são reunidas em uma única tabela de saída do Analytics. |
| IF teste opcional |
Uma condição que precisa ser atendida para processar o registro atual. Os dados enviados ao serviço de IA incluem apenas os registros que atendem à condição. Pelo menos um registro da tabela deve ser incluído pela condição IF. Se a condição excluir todos os registros da tabela, ocorre um erro e o comando não é executado. |
| WHILE teste opcional |
Uma expressão condicional que deve ser verdadeira para processar cada registro. O comando é executado até que a condição seja avaliada como falsa ou o fim da tabela seja alcançado. Observação Se você usar WHILE juntamente com FIRST ou NEXT, o processamento de registros será interrompido assim que um limite for alcançado. |
| FIRST intervalo | NEXT intervalo opcional |
O número de registros a ser processado:
Use intervalo para especificar o número de registros a serem processados. Se você omitir FIRST e NEXT, todos os registros serão processados por padrão. |
|
OPEN opcional |
Abre a tabela criada pelo comando após a execução do comando. Válido apenas se o comando criar uma tabela de saída. |
Exemplos
Avaliação de fornecedores usando IA
Você deseja realizar uma verificação básica de uma tabela de fornecedores para identificar possíveis fornecedores fictícios. Você insere os campos de nome e endereço do fornecedor no serviço de IA e solicita que ele categorize os fornecedores como Common, Rare ou Unknown.
Quaisquer fornecedores categorizados como Desconhecido exigem investigação adicional para determinar se realmente existem.
OPEN Vendors
AICOMMAND FIELDS vendor_name address TO "ai_vendor_classification" USER_PROMPT "Este é um fornecedor amplamente conhecido? O valor de saída deve ser COMMON se for comum, RARE se for conhecido, mas incomum, e UNKNOWN caso contrário." MODEL "anthropic.claude-3-5-sonnet-20241022-v2:0" URL "https://hackfest-bedrock-proxy.diligentoneplatform-dev.com/api/v1"
Revisão de despesas usando IA
Você deseja revisar transações de cartão corporativo (P-card) e sinalizar quaisquer despesas em que exista discrepância entre o item ou serviço e o preço de compra. Você insere os campos de descrição da despesa e custo no serviço de IA e solicita que ele avalie se a despesa é razoável.
OPEN PcardTransactions
AICOMMAND FIELDS Description UnitCost TO "ai_expense_cost_review" USER_PROMPT "Dada a combinação de Description e Unit Cost, indique se o custo é típico ou incomum." MODEL "anthropic.claude-3-5-sonnet-20241022-v2:0" URL "https://hackfest-bedrock-proxy.diligentoneplatform-dev.com/api/v1"
Análise de sentimento de avaliações de hotéis usando IA
Você deseja realizar uma análise de sentimento e categorização do campo de comentários em texto livre em uma tabela contendo avaliações de clientes de hotel. Você solicita ao serviço de IA que categorize os comentários de acordo com as seis emoções humanas básicas.
OPEN hotel_reviews
AICOMMAND FIELDS reviews_rating reviews_text TO "ai_hotel_reviews_sentiment_analysis" USER_PROMPT "Realize uma análise de sentimento no campo reviews_text e categorize as avaliações de acordo com as seguintes emoções humanas básicas: Felicidade, Raiva, Medo, Tristeza, Nojo, Surpresa." MODEL "anthropic.claude-3-5-sonnet-20241022-v2:0" URL "https://hackfest-bedrock-proxy.diligentoneplatform-dev.com/api/v1" BATCHSIZE 50 OPEN
Observações
Como funciona a integração entre o Analytics e um serviço de IA externo
Selecionar campos, criar um prompt do usuário e executar AICOMMAND é o ponto inicial para a integração bidirecional entre o Analytics e um serviço de IA externo:
-
AnalyticsAICOMMAND extrai o campo ou campos selecionados de uma tabela do Analytics e os salva em um arquivo CSV.
-
AnalyticsAICOMMAND disponibiliza o prompt do usuário e as informações de conexão da API do serviço de IA para o script Python padrão ou para um script Python criado por você.
Localização do script Python padrão:
C:\Program Files (x86)\ACL Software\ACL for Windows <version>\acl_py_util\ai_main.py
Cuidado
Não mova o script Python padrão nem o altere de nenhuma forma. O funcionamento padrão do AICOMMAND depende de o script Python padrão estar no local correto e permanecer inalterado.
-
PythonO script Python importa o arquivo CSV e o converte em um dataframe do Pandas.
-
PythonO script Python envia o dataframe e o prompt do usuário para a API do serviço de IA. Para permanecer dentro dos limites de dados da API, o script envia o dataframe em lotes.
-
Serviço de AIO serviço de IA processa o dataframe com base nas instruções do prompt do usuário.
-
Serviço de AIO serviço de IA retorna o dataframe ao script Python com a adição da coluna ai_response, que contém os resultados do processamento da IA.
-
PythonO script Python converte o dataframe retornado em uma tabela do Analytics e a exporta para o Analytics usando o nome da tabela de saída especificado em AICOMMAND.
-
AnalyticsVocê pode abrir a tabela de saída no Analytics para visualizar os resultados do processamento da IA ou usar os resultados como base para análises adicionais de dados.
Usando seu próprio script Python
Você pode usar seu próprio script Python com AICOMMAND. Crie o script com a lógica que você deseja para interagir com a API do serviço de IA. No AICOMMAND, use o parâmetro SCRIPT para especificar o caminho e o nome do arquivo do script.
Uma abordagem possível é copiar o script Python padrão usado pelo AICOMMAND como ponto de partida para o seu próprio script. O script padrão fica na pasta de instalação do Analytics. Se você instalou o Analytics no local padrão, o script fica aqui:
C:\Program Files (x86)\ACL Software\ACL for Windows <version>\acl_py_util\ai_main.py
Cuidado
Não mova o script Python padrão nem o altere de nenhuma forma. O funcionamento padrão do AICOMMAND depende de o script Python padrão estar no local correto e permanecer inalterado.
O script Python usado pelo AICOMMAND deve conter as configurações de conexão para o serviço de IA externo, seja ele o script padrão ou o seu próprio script. No seu script, você tem duas opções:
-
Usar as configurações de conexão do AnalyticsUse os valores de host, modelo e chave de API de IA especificados nos parâmetros do AICOMMAND.
Para usar os valores do AICOMMAND no seu script Python, defina três variáveis ou copie as definições de variáveis do script Python padrão.
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 seu próprio métodoUse seu próprio método para fornecer os valores de host, modelo e chave de API de IA. Se você usar seu próprio método, não precisa especificar os valores de conexão nos parâmetros do AICOMMAND.
Criar um campo de identificador exclusivo:
Se você quiser unir a tabela retornada do serviço de IA com a tabela de origem original, mas não tiver um campo de identificador único, pode usar a função RECNO( ) para criar um antes de usar o AICOMMAND.
-
Na tabela de origem, crie um campo calculado chamado record_number que use a seguinte expressão:
RECNO( )
Para cada registro na tabela, a função RECNO( ) adiciona o número único do registro no campo record_number.
Para obter mais informações, consulte DEFINE FIELD . . . Comando COMPUTED
-
Use o AICOMMAND para processar dados usando um serviço de IA externo.
-
Use o campo record_number como campo-chave comum para unir a tabela retornada do serviço de IA com a tabela de origem.
Para obter mais informações, consulte Comando JOIN.
Separar múltiplos componentes no campo ai_response
Na tabela de saída retornada pelo AICOMMAND, os valores no campo ai_response podem conter vários componentes ou elementos. Por exemplo, o valor único mostrado abaixo contém quatro componentes: sentiment, sentiment_score, key_reasons e themes. O componente themes contém três valores individuais.
sentiment: Positive, sentiment_score: 0.6, key_reasons: key_reasons: quartos limpos, equipe simpática, problemas no café da manhã, themes: limpeza, equipe, alimentação
Para permitir análises posteriores, você pode isolar os componentes e valores em campos calculados separados que você cria usando as expressões calculadas mostradas abaixo.
Para informações gerais sobre como criar campos calculados, consulte Definir campos calculados.
| Nome de campo calculado | Expressão calculada | Valor de resultado |
|---|---|---|
| sentiment | 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") |
quartos limpos, equipe simpática, problemas no café da manhã |
| themes | REGEXREPLACE(ai_response, ".themes:\s(.?)", "$1") |
limpeza, equipe, comida |
| theme_1 | SPLIT(REGEXREPLACE(ai_response, ".themes:\s(.?)", "$1"), ",", 1) |
limpeza |
| theme_2 | SPLIT(REGEXREPLACE(ai_response, ".themes:\s(.?)", "$1"), ",", 2) |
equipe |
| theme_3 | SPLIT(REGEXREPLACE(ai_response, ".themes:\s(.?)", "$1"), ",", 3) |
comida |