Objetivo

Neste documento apresentaremos uma proposta para expedição do DTA, onde utilizaremos o mesmo método de expedição feito para o Smart Link.


Procedimentos

Abaixo temos os processos que deverão ser feitos para a expedição do DTA:

  1. Nas tabelas do DTA será necessário adicionar os seguintes campos:
    1. Release: Release do produto que o assunto será liberado 
    2. Eliminação lógica: Informa se o assunto foi eliminado
    3. Registro padrão: Informa se o registro foi fornecido pela TOTVS ou foi customizado pelo cliente
    4. Data de Atualização: Data da ultima atualização do assunto
  2. Criação de um utilitário que crie um programa de inicialização do DTA, onde será criado um programa que alimenta todas as tabelas do DTA, com todos os assuntos existentes no produto atualmente.
  3. Este utilitário criará também um programa de acerto, por release, com as tabelas do DTA.


Programas

Abaixo temos a lista de programas e as funções de cada um deles.

Programa

Descrição
dta\api\v1\conversation.p

Responsável por chamar a apiConversation, que analisa a pergunta feita pelo usuário e troca informações com o LLM.

Endpoints fornecidos: GET /welcome, POST /completion, POST /audio e POST /feedback.

dta\api\v1\function.p

Responsável por chamar a apiFunction, que faz a manutenção de um determinado assunto, glossário e glossário do módulo.

Endpoints fornecidos: Além dos endpoints padrões REST (GET, POST, PUT e DELETE), temos POST /validate, POST /manysave, POST /export e POST /shotsValid.

dta\api\v1\moduleGlossary.p

Responsável por chamar a apiModuleGlossary, que faz a manutenção do glossário do módulo.

Endpoints fornecidos: GET e POST.

dta\api\v1\modules.p

Responsável por chamar a apiModules, que retorna informações dos módulos.

Endpoints fornecidos: GET e GET /descrition.

dta\api\v1\relatedaction.p

Responsável por chamar a apiRelatedAction, que faz a manutenção das ações relacionadas a um determinado assunto.

Endpoints fornecidos: GET e POST.

dta\services\apiConversation.p

piWelcome: Retorna informações de bem-vindo ao usuário.

piAudio: Recebe um audio, transformando o mesmo em texto e envia as informações para o fluxo normal de perguntas do usuário.

piFeedback: Envia o feedback do usuário sobre uma resposta do LLM para o DTA Proxy.

piCompletion: Recebe a pergunta do usuário.

                       Obtém os embeddings dessa pergunta.

                       Obtém o rank dos assuntos que podem responder ao questionamento.

                       Envia esse rank para o LLM para ele escolher quais assuntos serão utilizados para responder a pergunta.

                       Executa as APIs dos assuntos escolhidos e obtém os resultados dessas execuções.

                       Envia o resultado para o LLM e depois envia o resultado para o usuário.

dta\services\apiFunction.p

pi-export-v1: Retorna o JSON de um ou mais assuntos.

pi-many-save-v1: Salva um ou mais assuntos.

pi-save-v1: Faz a validação do assunto.

                  Envia o JSON do assunto para o LLM para validar a estrutura do JSon.

                  Envia a descrição do assunto para o LLM para obter e salvar os Embeddings em banco.

dta\services\apiModuleGlossary.pSalva em banco os glossários do módulo.
dta\services\apiModules.pRetorna informações dos módulos.
dta\services\apiRelatedActions.p

Salva em banco as ações relacionadas de um assunto.

dta\utils\DtaApiRunner.cls

Executa uma API de um determinado assunto, onde:

  • Verifica a segurança de execução da API.
  • Obtém o resultado da API.
  • Aplica no resultado da API o glossário do assunto e o glossário do módulo, ajustando o formato dos valores.
dta\utils\DtaCatalog.cls

É uma classe que representa um JSon de um assunto.

dta\utils\DtaCredentials.cls

Armazena as variáveis globais do DTA, bem como os tokens utilizados.

dta\utils\DtaDatabase.cls

Centraliza o processo de leitura e gravação dos assuntos em banco de dados.

dta\utils\DtaGlossary.cls

Similar ao DtaCatalog, mas para o glossário.

dta\utils\DtaLog.cls

Log do DTA, que permite jogar as informações para um arquivo de log ou acionar o profiler para testes de performance.

dta\utils\DtaProxyRunner.cls

Executa toda comunicação entre a camada progress com DTA Proxy e LLM

dta\utils\DtaSuggestions.cls

Similar ao DtaCatalog, mas para as sugestões de um determinado assunto.

dta\utils\DtaUtils.cls

Rotinas genericas que sao utilizadas por varias APIs e classes

dta\utils\JsonDTARequestParser.cls

Realiza um parser entre o JSON obtido de um retorno do LLM.