Manuais
PHC GO Funções SDK - Cris
 
A Cris pode ser chamada partir dos seguintes locais no PHC GO:

  • Ecrã
  • Ecrã com uma listagem associada
  • Análise
  • Explorador de dados
  • Listagem


Função de backend


Fazer uma pergunta à Cris:
sdk.GenAiAPI.GetGenAiAnswer(GenAIQuestionContent, GenAiTypeEnum)



Obter as perguntas já construídas com base nos parâmetros gerais:
sdk.GenAiAPI.GetPromptToCopy(GenAIQuestionContent, GenAiTypeEnum)

Parâmetro 1 - GenAIQuestionContent


Construir um objeto do tipo:

  • GenAIfusqlContent: Para utilizar a Cris numa Análise.
  • GenAIMapDefCabContent: Para utilizar a Cris numa Listagem.
  • GenAIMainformContent: Para utilizar a Cris num Ecrã.

Propriedades comuns a todos os objetos:

NameDescriptionType
contextContextoString
questionPerguntaString
aiTemperatureTemperatura da resposta AiTemperatureEnum (1 – Objective, 2 – Normal, 3 – Creative)
aiResponseSizeTamanho da respostaAiResponseSizeEnum (1 – Short, 2 – Normal, 3 - Long)
entityEntidadeString


Propriedades específicas de cada objeto:

GenAIfusqlContent


NameDescriptionType
fusqlStampStamp de análiseString
cStampStamp do registo de for uma análise de registoString
cVarsVariáveis da análiseList(Of VarsVO)


Exemplo

Enviar um e-mail para o responsável de vendas, com resumo do que correu bem e do que correu mal das visitas. Esta lista de visitas é disponibilizada com base numa análise previamente criada.

dim emailTo as string = "mailto@mail.com"
dim emailFrom as String = "mailfrom@mail.pt"

Dim GenAIfusqlContent as New GenAiApi.GenAIfusqlContent()
GenAIfusqlContent.context = "O e-mail tem o propósito de ajudar o responsável de vendas a preparar a reunião semanal. É uma reunião entre o responsável de vendas e os vários vendedores da empresa. O e-mail deve ser simples, indicar o correu bem e o que correu mal e ações para serem abordadas na reunião semanal de equipa com ideias para cada uma dessas ações.O e-mail deve ser escrito em português europeu (Portugal)."
GenAIfusqlContent.question = "Escreve um e-mail para o responsável de vendas com base nas visitas que aconteceram na última semana Esse e-mail deve indicar o que correu bem e o que correu mal nas visitas"
GenAIfusqlContent.aiTemperature = GenAiApi.AiTemperatureEnum.Objective
GenAIfusqlContent.aiResponseSize = GenAiApi.AiResponseSizeEnum.Normal
GenAIfusqlContent.entity = "fusql"
GenAIfusqlContent.fusqlStamp = "z202406251656067730081718"

dim result as PHCResult= sdk.GenAiAPI.GetGenAiAnswer(GenAIfusqlContent, 2)

SDK.Email.send(emailFrom, emailTo, "Resumo semanal de atividades dos seus vendedores", result.scalarResult.stringresult, False)

GenAIMapDefCabContent


NameDescriptionType
mapdefcabstampStamp da listagemString
filterItemsFiltros da listagemList(Of FilterItem)


GenAIMainformContent


NameDescriptionType
recordStampStamp do registoString
genAiReportTypeSe tem análise associadaGenAiReportTypeEnum (0 - NONE, 1 – FUSQL, 2 - MAPDEFCAB)
fusqlConfigCaso genAiReportType = 1GenAIfusqlContent
mapdefcabConfigCaso genAiReportType = 2GenAIMapDefCabContent


Exemplo 1

Ao gravar a ficha de um cliente, utilizando o conhecimento da Cris, preenche a informação do endereço da empresa com o site e nas observações informação da empresa.

Dim recordStamp as String = itemVO.clstamp

Dim genAIMainformContent As New GenAiApi.GenAIMainformContent()
genAIMainformContent.context = "Dá-me resposta apenas com os dados que peço sem texto antes ou depois. Só quero o URL na resposta, sem mais texto nenhum, a resposta deve começar com o https logo direto."
genAIMainformContent.question = "Dá-me o endereço do site desta empresa: " + itemVO.nome
genAIMainformContent.aiTemperature = GenAiApi.AiTemperatureEnum.Normal '(1 – Objective, 2 – Normal, 3 – Creative)
genAIMainformContent.aiResponseSize = GenAiApi.AiResponseSizeEnum.Normal '(1 – Short, 2 – Normal, 3 - Long)
genAIMainformContent.entity = "cl"
genAIMainformContent.recordStamp = recordStamp
genAIMainformContent.genAiReportType = 0

Dim result as PHCResult = sdk.GenAiAPI.GetGenAiAnswer(genAIMainformContent, 1) '1 - MAINFORM, 2 - FUSQLMAPDEFCAB
itemVO.url = result.scalarResult.stringresult

genAIMainformContent.context = "Dá-me a resposta o mais completa possível, mas resume até 200 caracteres."
genAIMainformContent.question = "Procura e dá-me informação sobre esta empresa: " + itemVO.nome
genAIMainformContent.aiTemperature = GenAiApi.AiTemperatureEnum.Normal
genAIMainformContent.aiResponseSize = GenAiApi.AiResponseSizeEnum.Normal
genAIMainformContent.entity = "cl"
genAIMainformContent.recordStamp = recordStamp
genAIMainformContent.genAiReportType = 0

result = sdk.GenAiAPI.GetGenAiAnswer(genAIMainformContent, 1)
itemVO.obs = result.scalarResult.stringresult


Exemplo 2

Ao gravar nos Artigos e Serviços, quero traduzir automaticamente para os idiomas Inglês, Espanhol e Francês a designação e descrição técnica do artigo.

' Cria uma nova linha nos Idiomas
Dim idiomas As New List(Of String)()
idiomas.Add("Inglês")
idiomas.Add("Espanhol")
idiomas.Add("Francês")

For Each idioma As String In idiomas
Dim existeIdioma As Boolean = False

' Verifica manualmente se o idioma já existe na lista
For Each item As SiVO In itemVO.sis
If item.operation <> OperationEnum.Deleted and item.idiom = idioma Then
existeIdioma = True
Exit For
End If
Next

If Not existeIdioma Then
Dim genAIMainformContent As New GenAiApi.GenAIMainformContent()
' Adicionei a linha de Idiomas para designação
Dim itemDescricao As SiVO = SiVO.getNewInstance(Of SiVO)()
itemDescricao.idiom = idioma

Dim recordStamp As String = itemVO.ststamp
genAIMainformContent.context = "A resposta deve ser apenas a palavra traduzida, sem mais nenhum texto antes, nem depois. Caso não consigas traduzir, deves escrever 'Não consegui traduzir'."
genAIMainformContent.question = "Quero que traduzas a seguinte palavra para " + idioma + ": " + itemVO.design
genAIMainformContent.aiTemperature = GenAiApi.AiTemperatureEnum.Normal
genAIMainformContent.aiResponseSize = GenAiApi.AiResponseSizeEnum.Normal
genAIMainformContent.entity = "st"
genAIMainformContent.recordStamp = recordStamp
genAIMainformContent.genAiReportType = 0

Dim resultDescricao As PHCResult = sdk.GenAiAPI.GetGenAiAnswer(genAIMainformContent, 1)
itemDescricao.designTranslated = resultDescricao.scalarResult.stringresult

If Not isVoid(itemVO.desctec) Then
Dim genAIMainformContent2 As New GenAiApi.GenAIMainformContent()
genAIMainformContent2.context = "Dá-me resposta apenas com os dados que peço sem texto antes ou depois. Só quero a palavra ou frase traduzida na resposta, sem mais texto nenhum, a resposta deve começar com a tradução direto."
genAIMainformContent2.question = "Preciso que traduzas a seguinte frase para o idioma " + idioma + ": " + itemVO.desctec
genAIMainformContent2.aiTemperature = GenAiApi.AiTemperatureEnum.Normal
genAIMainformContent2.aiResponseSize = GenAiApi.AiResponseSizeEnum.Normal
genAIMainformContent2.entity = "st"
genAIMainformContent2.recordStamp = recordStamp
genAIMainformContent2.genAiReportType = 0

Dim resultDescricaoTec As PHCResult = sdk.GenAiAPI.GetGenAiAnswer(genAIMainformContent2, 1)
itemDescricao.descTecTranslated = resultDescricaoTec.scalarResult.stringresult
End If

itemVO.sis.Add(itemDescricao)
actEntity(itemVO)
End If
Next


Exemplo 3

Ao gravar no ecrã de Atividades, pretendo estruturar a informação do relatório da visita.

Dim genAIMainformContent As New PHCBusinessLayer.GenAiApi.genAIMainformContent()
Dim recordStamp as string = itemVO.crmactivitystamp
genAIMainformContent.context = "Organiza a informação de forma estruturada. Os vários pontos devem estar agrupados pelas seguintes tipologias: Formação, Marketing, Vendas, Suporte e Outros pontos abordados. Caso não exista nenhuma informação para uma das tipologias deve indicar isso mesmo. Só deve ser utilizada informação para a resposta do campo ""Notes"" e mais nenhum outro campo. O texto deve ser escrito em Português Europeu (Portugal)"
genAIMainformContent.question = "Estrutura a seguinte informação: " + itemVO.notes
genAIMainformContent.aiTemperature = GenAiApi.AiTemperatureEnum.Normal
genAIMainformContent.aiResponseSize = GenAiApi.AiResponseSizeEnum.Normal
genAIMainformContent.entity = "CRMActivity"
genAIMainformContent.recordStamp = recordStamp
genAIMainformContent.genAiReportType = 0

dim result as PHCResult= sdk.GenAiAPI.GetGenAiAnswer(genAIMainformContent, 1)
Dim text as String = result.scalarResult.stringresult
itemVO.notes=text
save(itemVO)


Parâmetro 2 - GenAiTypeEnum




  • 1 - MAINFORM
  • 2 - FUSQLMAPDEFCAB
  • 3 - MAPDEFCAB
  • 4 - DATAEXPLORER