Exemplo de PromptFunctions para Desktop - Geração de Insights com Cegid Pulse

Prev Next
  • PT

  • AO

  • MZ

  • CV

  • CS

  • Evolution

  • Web

  • Desktop


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

  1. Aceder ao ecrã de Funções de utilizador - Menu Supervisor » Framework » Funções de utilizador )

  2. Introduzir um novo registo e no campo Nome da função, definir um identificador claro, por exemplo:promptinsight

  3. No 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 AI

    if 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_dir

    if 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álise

    lcPrompt = 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 lcRetVal

    Após a criação da função, é necessário associá-la às análises onde se pretende apresentar insights.

    Passos:

    1. Aceder a: Supervisor » Configuração de Análises » Análises Avançadas de Utilizador

    2. Selecionar a análise pretendida

    3. 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#)

    4. Após a configuração, executar a análise avançada

    5. 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.