Prompt Function para Geração de Insights com Cegid Pulse
A Prompt Function de insights é uma funcionalidade que permite gerar automaticamente análises inteligentes sobre dados apresentados em ecrãs de análise do Cegid PHC, recorrendo ao Cegid Pulse.
Esta funcionalidade transforma listagens e dados operacionais em insights claros, objetivos e acionáveis, apresentados diretamente no ecrã da análise, sem necessidade de intervenção manual por parte do utilizador.
Vantagens de utilização:
Interpretar dados de uma análise (ex: listagens, relatórios)
Identificar padrões, tendências ou concentrações relevantes
Gerar um insight principal (Insight do dia)
Apresentar um racional associado, explicando o significado do insight
Desta forma, o sistema deixa de ser apenas um repositório de informação, passando a atuar como um apoio à decisão.
Criação da Prompt Function
Aceder ao ecrã de Funções de utilizador - Menu Supervisor » Framework » Funções de utilizador )
Introduzir um novo registo e no campo Nome da função, definir um identificador claro, por exemplo:
promptinsightNo campo Expressão da função em XBASE, inserir o seguinte código:
lparameters lcegidpulsemath, lcUserCriteria
lcRetVal = alltrim(tempsql.descricao) && * Obtém a descrição da análise atual e remove espaços em branco no início/fim
lcPrompt = "Esta é uma análise de " + lcRetVal && * Cria o contexto inicial para identificar o tipo de análise ao modelo AIif used("sqltmp") and !eof("sqltmp")
lcContextData = "" && * Inicializa a variável que irá guardar os dados CSV*** Converter o cursor para CSV (em Desktop, os dados devem ser enviados para Cegid Pulse em CSV)
lcFileDir = tmp_dir + "sqltmp.csv" && * O ficheiro csv deve ter o nome do cursor e é colocado na tmp_dirif LISTtoCSV("sqltmp") and file(lcFileDir) && * A nova função LISTtoCSV permite exportar os dados de cursor para CSV
lcContextData = filetostr(lcFileDir)
delete file (lcFileDir)
endif
if !empty(lcContextData)*** Prompt #1
*** Este prompt é agnóstico, e pede ao Cegid Pulse para sugerir um prompt para AI
*** Explicamos que ele deve analisar os dados, e ter em conta o âmbito (que sabe porque inicializamos o prompt com o título da análise)
*** Com base nisso o Cegid Pulse deve inferir um cálculo relevante para o que seria a persona alvo desta análise
**** E explicamos que esse prompt será usado para gerar o melhor insight para este tipo de análiselcPrompt = lcPrompt + "Faz uma análise profunda aos dados (em CSV), interpreta possíveis conceitos e classificações discretas no âmbito da análise."
lcPrompt = lcPrompt + "O teu objetivo é sugerir um prompt para AI que permita obter cálculos a serem realizados sobre os dados."
lcPrompt = lcPrompt + "O prompt deve solicitar o cálculo que permita o melhor insight, relevante e acionável, não vago, para a persona target deste tipo de análise numa empresa."if !empty(lcUserCriteria)
lcPrompt = lcPrompt + "O prompt devera focar-se na preferencia do user: " + lcUserCriteria
endif*** Adicionamos instruções para garantirmos narrow da resposta, de forma a ser curta, para reduzir o tempo de resposta
lcPrompt = lcPrompt + "/r/n/r/n" + "O texto da tua resposta deve conter única e exclusivamente o prompt com um único cálculo a efetuar."
*** Usamos a função PromptFunction passando o prompt e o contexto
lcPrompt = promptfunction(lcPrompt, lcContextData)*** Prompt #2
*** Começando pelo prompt obtido na chamada anterior
*** Adicionamos o pedido para que efetue o cálculo e elabore o Insight do dia
lcPrompt = lcPrompt + "/r/n/r/n"
lcPrompt = lcPrompt + "Efetua o cálculo solicitado e com base nisso gera um insight, relevante e acionável, não vago, num texto sem markdown, "
lcPrompt = lcPrompt + "com o formato html puro simples <b>Insight do dia (by Cegid Pulse):</b> (...)<br><br><b>Racional:</b> (...)"*** Adicionamos instruções para garantirmos narrow da resposta, de forma a ser curta, para reduzir o tempo de resposta
lcContext = "O texto da tua resposta ao utilizador deve conter única e exclusivamente o insight e racional. Sem texto ou explicações ou tabelas antes ou depois."
lcPrompt = lcPrompt + lcContext_cliptext = lcPrompt
*** Há duas hipóteses para essa segunda chamada: com o Cegid Pulse a usar cálculo matemático ou não (ou seja, passando 3 parametros com o CSV no último, ou não).
if lcegidpulsemath
lcRetVal = promptfunction(lcPrompt, lcContext , lcContextData)
&& ativar a skill de cálculo analítico/matemático (importante para cálculos ou dados complexos; usar em chamadas separadas de geração de texto, quando ocorre alucinação)
else
lcRetVal = promptfunction(lcPrompt, lcContextData) && Mais rápido, recorrendo apenas a GenaI.
endif
endif
endif* Devolve o insight final gerado
return lcRetValApós a criação da função, é necessário associá-la às análises onde se pretende apresentar insights.
Passos:
Aceder a: Supervisor » Configuração de Análises » Análises Avançadas de Utilizador
Selecionar a análise pretendida
No separador Outra informação, preencher o campo: Expressão para título, com a chamada da função. Por exmeplo: return user_promptinsight(.t., #18#)
Após a configuração, executar a análise avançada
O sistema irá automaticamente gerar e apresentar o insight, que está visível na parte superior do ecrã da análise
A utilização de Prompt Functions com Cegid Pulse permite automatizar a análise de dados e gerar insights relevantes diretamente no sistema, aumentando a eficiência operacional e apoiando a tomada de decisão.