TPHIAAssistant

O Objeto TPHIAAssistant será responsável pelo processamento de texto, execução de instruções e manipulação de arquivos de entrada para interação com o assistente de inteligência artificial.

Propriedades

Nome Tipo Descrição
Texto String Texto de entrada informado pelo usuário. Antes do envio à IA, pode ser automaticamente combinado com o conteúdo de um Prompt (caso PromptID seja informado), formando o contexto final enviado para processamento. É validado e não pode estar vazio.
PromptID Integer Identificador de um prompt armazenado na base de dados (tabela IA_PROMPTS). Quando informado, o conteúdo do prompt é recuperado e concatenado ao Texto, funcionando como contexto inicial da requisição.
Instrucao String Define o papel (System Role) da IA na requisição, sendo responsável por orientar o comportamento, tom e formato das respostas geradas. Essa propriedade é fundamental para garantir que a IA atue de forma consistente com o objetivo desejado, como por exemplo: resumir textos, traduzir conteúdos, analisar dados ou responder como um especialista em determinada área. Pode ser informada manualmente para personalizar cada execução ou carregada automaticamente a partir dos parâmetros do assistente ao utilizar o método ProcessarTexto. Uma boa definição da Instrucao impacta diretamente na qualidade e previsibilidade das respostas, sendo considerada uma das principais formas de controle do resultado gerado pela IA.
InstrucaoID Integer Identificador de uma instrução previamente cadastrada na base de dados (tabela IA_INSTRUCOES). Quando informado, permite carregar automaticamente o conteúdo da instrução (System Role), evitando a necessidade de defini-la manualmente na propriedade Instrucao. Caso a propriedade Instrucao também esteja preenchida, esta será sobrescrita.
AssistenteID Integer Identificador do assistente de IA. Quando definido, força o carregamento direto das configurações do assistente (modelo, temperatura, API Key, etc.) a partir da base de dados, sobrescrevendo configurações padrão por empresa.o.
TextoRetorno String Resultado retornado pela IA após o processamento. Este valor é preenchido pelo provider de IA após a execução da requisição.
Temperatura Double Parâmetro que controla o nível de criatividade da IA. Valores menores tornam as respostas mais determinísticas, enquanto valores maiores aumentam a variação e criatividade das respostas.
MaxTokens Integer Define o limite máximo de tokens (tamanho da resposta) que a IA pode gerar durante o processamento.
Modelo String Identifica o modelo de IA que será utilizado na execução (ex: GPT-4, GPT-3.5, etc.), sendo carregado a partir das configurações do assistente.

Funções

  • Executar: Executa o processamento principal do assistente com base nas propriedades configuradas.
  • ProcessarTexto: Realiza o processamento do texto informado na propriedade Texto.
  • AdicionarArquivo(const NomeArquivo:String; ArquivoStream:TMemoryStream): Adiciona um arquivo de entrada ao assistente, informando o nome e o conteúdo via Stream.

Funcionalidade

O objeto TPHIAAssistant é responsável por intermediar a comunicação com serviços de inteligência artificial, permitindo o envio de textos, instruções e arquivos para processamento e retorno de respostas. Seu uso é indicado sempre que houver necessidade de interpretar, gerar ou transformar informações utilizando IA.

O comportamento do assistente varia conforme as propriedades e métodos utilizados:

  • Quando a propriedade AssistenteID é informada, todas as configurações (modelo, temperatura, tokens, API Key, entre outras) são carregadas diretamente da base de dados, garantindo a utilização de um assistente específico.
  • Caso AssistenteID não seja informado, serão utilizadas as configurações padrão definidas nos parâmetros de IA da empresa.
  • Ao utilizar o método Executar, o processamento ocorre com base nas propriedades atuais do objeto, sem considerar a instrução padrão definida nos parâmetros de IA.
  • Já o método ProcessarTexto aplica automaticamente a instrução configurada nos parâmetros de IA, influenciando o comportamento e o formato da resposta gerada.
  • A propriedade Texto pode ser combinada com um Prompt previamente cadastrado (quando PromptID é informado), formando um contexto mais completo para a requisição.
  • Também é possível adicionar arquivos como entrada por meio do método AdicionarArquivo, ampliando as possibilidades de interação com a IA.

Dessa forma, o TPHIAAssistant oferece flexibilidade para diferentes cenários de uso, desde chamadas simples até configurações mais avançadas e personalizadas de assistentes de inteligência artificial.

Exemplos

Este exemplo demonstra como utilizar o TPHIAAssistant para analisar arquivos utilizando inteligência artificial. Nesse cenário, um arquivo PDF é carregado em memória e enviado como entrada para a IA, juntamente com uma instrução que define o papel do assistente como especialista em análise de documentos.

Esse tipo de abordagem é ideal para:

  • Leitura e interpretação de arquivos (PDF, TXT, etc.)
  • Extração de informações relevantes
  • Classificação ou descrição de documentos
  • Automação de análise documental

O uso do método AdicionarArquivo permite enriquecer o contexto da requisição, possibilitando que a IA processe não apenas texto, mas também conteúdos estruturados provenientes de arquivos.

procedure AnaliseArquivoComIA;
var
  IA: TPHIAAssistant;
  Arquivo: TMemoryStream;
  Resposta: String; 
begin
  IA := NewPHIAAssistant;
  try
    // Configuração do contexto
    IA.Instrucao := 'Você é um agente de IA especializado em análise de arquivos PDF.';
    IA.Texto     := 'Analise o arquivo enviado e descreva do que se trata.';

    // Carregamento do arquivo
    Arquivo := TMemoryStream.Create;
    try
      Arquivo.LoadFromFile('C:\PH Sys\Arquivo.pdf');

      // Adiciona o arquivo ao contexto da IA
      IA.AdicionarArquivo('Arquivo.pdf', Arquivo);
    finally
      Arquivo.Free;
    end;

    // Execução do processamento
    IA.Executar;

    // Captura da resposta
    Resposta := IA.TextoRetorno;

    // Exemplo de uso da resposta
    Informacao(Resposta);

  finally
    IA.Free;
  end;
end;




Este exemplo apresenta o uso do TPHIAAssistant com um AssistenteID, permitindo carregar automaticamente configurações previamente definidas na base de dados, como modelo, temperatura e parâmetros gerais da IA.

Além disso, é utilizada a propriedade Instrucao para definir o System Role, orientando a IA a gerar um resumo técnico, objetivo e com limite de tamanho.

Esse padrão é recomendado quando:

  • Existem assistentes previamente configurados e padronizados
  • É necessário ajustar dinamicamente o comportamento da IA através da instrução

A combinação de AssistenteID + Instrucao oferece flexibilidade e padronização, permitindo adaptar o comportamento da IA conforme o contexto de uso sem alterar sua configuração base.

procedure GerarResumoTecnico;
var
  IA: TPHIAAssistant;
  TextoEntrada: String;
  Resposta: String;
begin
  IA := NewPHIAAssistant;
  try
    // Texto de entrada do usuário
    TextoEntrada := 'A inteligência artificial vem sendo amplamente utilizada ' +
                    'em diversos setores, como saúde, educação e indústria, ' +
                    'trazendo ganhos de produtividade, automação de processos ' +
                    'e suporte à tomada de decisão.';

    IA.Texto := TextoEntrada;

    // Carrega configurações do assistente (modelo, temperatura, etc.)
    IA.AssistenteID := 1;

    // Define o papel da IA (System Role)
    IA.Instrucao := 'Você é um especialista técnico. Resuma o texto de forma objetiva em no máximo 2 linhas.';

    // Executa o processamento
    IA.Executar;

    // Retorno da IA
    Resposta := IA.TextoRetorno;

    Informacao('Resumo técnico:' + #13 + Resposta);
  finally
    IA.Free;
  end;
end;