--- title: "Função PromptFunctions do Cegid Pulse" slug: "1783348876" tags: ["PromptFunctions"] updated: 2026-09-23T13:53:30Z published: 2026-09-23T13:53:30Z canonical: "help.ila.cegid.com/1783348876" stale: true --- > ## Documentation Index > Fetch the complete documentation index at: https://help.ila.cegid.com/llms.txt > Use this file to discover all available pages before exploring further. # Função PromptFunctions do Cegid Pulse - [x] PT - [ ] AO - [ ] MZ - [ ] CV - [ ] CS - [x] Evolution - [x] Web - [x] Desktop --- O objetivo desta funcionalidade é **simplificar a integração com modelos de AI** e permitir que as respostas sejam **geradas de forma mais flexível e centralizada**, através da plataforma Cegid Pulse. --- ## **Funcionamento em Web** ### Requisitos Para utilizar esta funcionalidade, é necessário cumprir os seguintes requisitos: - Cegid PHC Evolution - Plano Advanced ou superior - Módulo Cegid Pulse A função de implementador **PromptFunction** permite obter respostas geradas por modelos de Inteligência Artificial do Cegid Pulse. Esta função pode ser utilizada em diferentes cenários, como por exemplo: - Geração automática de textos - Tradução de conteúdos - Resumo de informação - Geração de emails - Análise ou interpretação de dados A função pode ser utilizada em vários contextos da aplicação, incluindo: - Eventos - Opções de utilizador - Código personalizado A função foi adicionada ao **editor** de código, disponível em alguns ecrãs da aplicação. A função encontra-se no separador **Funções**, enquanto o respetivo exemplo de utilização está disponível no separador **Exemplos**. Esta organização permite tenha um acesso rápido tanto à função como a exemplos práticos da sua utilização. ### Parâmetros da função A função **PromptFunction** é composta pelos seguintes parâmetros: **1. UserQuestion** - Tipo: String - Define a pergunta ou pedido enviado ao modelo de Inteligência Artificial - Este parâmetro corresponde à instrução principal utilizada para gerar a resposta - Exemplo: *Escreve um email para um cliente a agradecer a sua preferência.* **2. ContextDescription** - Tipo: String - Define o contexto ou instruções adicionais que ajudam o modelo de Inteligência Artificial a gerar uma resposta mais adequada - Este parâmetro pode ser utilizado para orientar o estilo, formato ou comportamento da resposta - Exemplos de utilização: *Responde em português europeu* **3. ContextData** - Tipo: DataTable - Define dados estruturados que podem ser utilizados como contexto adicional na geração da resposta - Estes dados são enviados para o modelo para permitir análises ou respostas baseadas em informação estruturada - Exemplo de utilização: *Utilizar uma DataTable com informação de clientes, documentos ou outros dados da aplicação para apoiar a geração da resposta.* **4. Culture** - Tipo: String - Parâmetro opcional - Define a cultura utilizada para gerar a resposta - Caso não seja definida, é utilizada por defeito a cultura da sessão atual - Exemplo: *pt-PT* > [!WARNING] > Para garantir compatibilidade com implementações existentes, a função **GetGenAIAnswer** continua disponível. As implementações que utilizam esta função continuam a funcionar sem necessidade de alterações. Internamente, esta função passa agora a utilizar a **PromptFunction**, sendo considerados apenas os parâmetros necessários para esta nova abordagem. Todos os restantes parâmetros anteriormente utilizados deixam de ter efeito. > [!NOTE] > No Cegid Pulse Studio, é possível **utilizar diferentes modelos de Inteligência Artificial**, nomeadamente Abacus e OpenAI, cada um com características específicas. O modelo **Abacus** apresenta melhor desempenho em cenários que envolvem análise e interpretação de dados numéricos. Por defeito, o comportamento da função **PromptFunction** depende dos parâmetros enviados: > > - Quando os parâmetros **Pergunta**, **Contexto** e **Dataset** são todos **preenchidos**, o pedido é processado pelo modelo **Abacus**. > - Caso contrário, **se apenas alguns destes parâmetros forem utilizados**, o pedido é processado pelo modelo **OpenAI**. --- ## **Funcionamento em Desktop** ### Requisitos de utilização Para utilizar esta funcionalidade, é necessário cumprir os seguintes requisitos: - Cegid PHC Evolution - Plano Advanced ou superior - Módulo Cegid Pulse A função de implementador **PromptFunction** permite obter respostas geradas por modelos de Inteligência Artificial do Cegid Pulse. Esta função pode ser utilizada em diferentes cenários, como por exemplo: - Geração automática de textos - Tradução de conteúdos - Resumo de informação - Geração de emails - Análise ou interpretação de dados ### Parâmetros da função A função PromptFunction é composta pelos seguintes parâmetros: **1. Pergunta** - Tipo: Caracter - Define a pergunta ou pedido enviado ao modelo de Inteligência Artificial - Este parâmetro corresponde à instrução principal que será utilizada para gerar a resposta - Exemplo: *Escreve um email para um cliente a agradecer a sua preferência.* **2. Contexto** - Tipo: Caracter - Define o contexto ou instruções adicionais que ajudam o modelo de Inteligência Artificial a gerar uma resposta mais adequada - Este parâmetro pode ser utilizado para orientar o estilo ou formato da resposta - Exemplo de utilização: *Responde em português europeu* **3. Dataset** - Tipo: Caracter - Define os dados que podem ser utilizados como contexto adicional na geração da resposta - O dataset pode ser passado de duas formas: **através de um cursor** ou **através de texto estruturado em formato CSV** - Exemplo: *CL (*neste caso, será utilizado o *dataset* da tabela **Clientes**) **4. Idioma** - Tipo: Caracter - Parâmetro opcional - Define o idioma em que a resposta deve ser gerada - Se este parâmetro não for definido, o sistema segue a seguinte ordem: - 1. idioma configurado na ficha do utilizador - 2. idioma definido no sistema - Exemplo: *pt-PT* Durante a execução da função podem ocorrer as seguintes mensagens: - Falta de requisitos: Caso o módulo Cegid Pulse não esteja ativo, é apresentada a mensagem: "*Não tem os requisitos necessários para utilizar esta funcionalidade.*" - “*Erro na execução da Prompt Function*”: Caso ocorra um erro durante a execução da função: - "*Ocorreu um erro ao executar a Prompt Function Cegid Pulse. Contacte o administrador de sistema.*" > [!NOTE] > No Cegid Pulse Studio, é possível utilizar **diferentes modelos** **de Inteligência Artificial**, nomeadamente **Abacus** e **OpenAI**, cada um com características específicas. O modelo **Abacus** apresenta **melhor desempenho** em cenários que envolvem **análise e interpretação de dados numéricos**. Por defeito, o comportamento da função **PromptFunction** depende dos parâmetros enviados: > > - Quando os parâmetros **Pergunta**, **Contexto** e **Dataset** são todos preenchidos, o pedido é processado pelo modelo **Abacus**. > - Caso contrário, **se apenas alguns destes parâmetros forem utilizados,** o pedido é processado pelo modelo **OpenAI**. ### Exemplo O exemplo seguinte demonstra a utilização da função **PromptFunction** para gerar automaticamente o corpo de um email em formato HTML a partir das faturas em aberto de um cliente. ```plaintext local lbOk, lcSql, lcFileDir, lcContextData, lcContextDescription local lcUserQuestion, lcRespostaPulse, lnSucess lcRespostaPulse = "" lcContextDescription = "" lcContextData = "" lcUserQuestion = "" lcfiledir = "" lnSucess = 0 lbOk = .f. * Verificar se o e-mail está preenchido na ficha do cliente if used("cl") and !eof("cl") and empty(cl.email) msg("É necessário preencher o e-mail na ficha do cliente.") return lbOk endif * Mensagem informativa actform("A enviar e-mail ao cliente...") * Query para obter as faturas por regularizar do cliente lcSql = " select ft.nmdoc as Serie, ft.fno as Numero, ft.fdata as DataEmissao, ft.pdata as DataVencimento, ft.etotal as Total, sum((cc.edeb-cc.edebf)-(cc.ecred-cc.ecredf)) as TotalDivida " lcSql = lcSql + " from cc inner join ft on cc.no=ft.no and cc.estab=ft.estab and cc.ftstamp = ft.ftstamp " lcSql = lcSql + " where ft.fno > 0 and cc.no ="+astr(cl.no)+" and cc.estab= "+astr(cl.estab) lcSql = lcSql + " And (case when cc.moeda=´EURO´ Or cc.moeda=space(11) then abs((cc.edeb-cc.edebf)-(cc.ecred-cc.ecredf)) else " lcSql = lcSql + " abs((cc.debm-cc.debfm)-(cc.credm-cc.credfm)) end) > (case when cc.moeda =´EURO´ Or cc.moeda =space(11) then 0.010000 Else 0 end) " lcSql = lcSql + " and cc.origem<>´RD´ and cc.origem<>´CH´ " lcSql = lcSql + " group by ft.nmdoc, ft.fno, ft.fdata, ft.pdata, ft.etotal " lcSql = lcSql + " order by ft.fdata desc, ft.nmdoc, ft.fno " * Obter o cursor das faturas por regularizar e transformar em formato CSV if u_sqlexec(lcSql, "cr_regdocs") and !eof("cr_regdocs") lcFileDir = tmp_dir + "cr_regdocs" + ".csv" lbOk = listtocsv("cr_regdocs") if lbOk lcContextData = filetostr(lcFileDir) delete file (lcFileDir) endif endif fecha("cr_regdocs") * Caso não existam faturas em aberto if not lbOk deactform() msg("Não existem faturas por regularizar do cliente "+ alltrim(cl.nome) +".") return lbOk endif * Definir o contexto para a fonte de dados (CSV) text to lcContextDescription textmerge noshow Contexto: Os dados fornecidos representam as últimas 5 faturas emitidas ao cliente que ainda se encontram por regularizar. A empresa que emitiu esses documentos é Cegid PHC com NIF 502199326. O cliente tem os seguintes dados: - Nome: <> - NIF: <> Os dados adicionais são fornecidos em formato CSV (separador ponto e vírgula) e cada linha representa uma fatura em aberto. As colunas do CSV seguem a seguinte estrutura: 1. Serie – Série da fatura 2. Numero – Número da fatura 3. DataEmissao – Data de emissão da fatura (formato DD.MM.YYYY) 4. DataVencimento – Data limite de pagamento (formato DD.MM.YYYY) 5. Total – Valor total da fatura com IVA incluído 6. TotalDivida – Valor total em dívida da fatura O objetivo é utilizar estes dados para comunicar com o cliente de forma profissional e clara. endtext * Definir a pergunta/pedido para o Cegid Pulse text to lcUserQuestion textmerge noshow Com base no contexto e no CSV fornecido, cria o corpo de um e-mail HTML moderno e profissional. Regras obrigatórias: - Devolver exclusivamente HTML puro (sem Markdown). - Utilizar apenas CSS inline. - Criar um layout moderno com container centralizado. - Incluir um resumo com número de faturas e total em dívida. - Apresentar uma tabela com os dados das faturas. - Destacar visualmente os valores em dívida. - Utilizar um tom profissional e institucional. - No final adicionar uma assinatura profissional da empresa. endtext * Obter a resposta do Cegid Pulse lcRespostaPulse = PromptFunction(lcUserQuestion, lcContextDescription, lcContextData) if empty(lcRespostaPulse) deactform() msg("Não foi possível obter a resposta do Cegid Pulse. Tente novamente mais tarde.") return .f. endif * Remover possíveis caracteres inválidos lcRespostaPulse = STRTRAN(lcRespostaPulse, "```html", "") lcRespostaPulse = STRTRAN(lcRespostaPulse, "```", "") * Enviar e-mail em formato HTML para o cliente lnSucess = u_sendmailhtml(alltrim(cl.email), ; "Regularização de Faturas em Aberto – Cegid PHC", ; lcRespostaPulse,"",.f.,.t.) deactform() if lnSucess=0 msg("E-mail enviado com sucesso.") else msg("Ocorreu um erro ao enviar o e-mail. Verifique análise interna.") endif ``` ### Compatibilidade com funções GenAI Para garantir compatibilidade com implementações existentes, a função **GetGenaiAnswer** continua disponível. As implementações que utilizam esta função continuam a funcionar, contudo alguns parâmetros anteriormente utilizados deixam se aplicar dado que a configuração da geração de respostas passa a ser gerida através do Cegid Pulse. - **Id**: define o local de onde é chamada a função e preenche o campo **Id de contexto** no ecrã **Log de atividade das consultas GenAI;** - **DatasetTitle**: define o título da listagem de dados; - **Temperatura**: define o tipo de resposta (Objetiva, Neutra ou Criativa); - **TemperaturaDec**: define o nível de criatividade da resposta; - **Tamanho**: define o tamanho da resposta (Curta, Média ou Longa); - **Modelo**: define o modelo (Legado, Padrão ou Especial). As seguintes funções **não estão** disponíveis: - ShowGenAi - GetPromptToCopy Sempre que estas funções forem executadas será apresentada a seguinte mensagem: *"Esta funcionalidade já não se encontra disponível".*