3
respostas

[Dúvida] Divisão de arquivos não provoca economia de tokens

Não sei se pode ser tratado nas próximas aulas, mas a sugestão de segmentar em diferentes arquivos me pareceu não trazer economia de tokens de entrada.

Na primeira versão, utilizamos a função "carrega" com o arquivo ecomart.txt, que continha todos os contextos no prompt. 1 envio de todo o conteúdo necessário quanto a contexto.

Na segunda versão, o prompt do sistema no "app.py", recebe somente o "documento_selecionado". Contudo, o conteúdo de ambos os arquivos foi encaminhado em "seleciona documentos.txt", gerando o mesma quantidade de tokens que o arquivo "ecomart.txt", somente para que pudessemos definir o arquivo ideal. Em seguinda, um segundo envio foi realizado para produzir o retorno ao usuário, aumentando a quantidade de tokens que agora é o conteúdo de dois dos três arquivos disponíveis.

Entretanto, didaticamente ficou claro as possibilidade de exploração deste tipo de recurso para o refinamento do prompt.

3 respostas

Olá Ricardo! Tudo ok contigo?

A ideia de dividir o arquivo grande em arquivos menores é principalmente para facilitar o gerenciamento e a manutenibilidade do código, especialmente quando estamos lidando com arquivos de texto muito grandes.

No entanto, você está correto ao dizer que, em termos de economia de tokens, essa abordagem pode não ser a mais eficiente. Isso porque, ao dividir o arquivo grande em arquivos menores, estamos de fato enviando mais tokens para a API, pois cada solicitação inclui tanto o conteúdo do arquivo relevante quanto o conteúdo do arquivo "seleciona documentos.txt".

A abordagem de dividir o arquivo em arquivos menores pode ser útil em situações em que você tem um arquivo de texto muito grande e deseja garantir que apenas a parte relevante desse arquivo seja enviada para a API. Isso pode ajudar a evitar que você atinja o limite máximo de tokens permitidos em uma única solicitação.

No entanto, se o tamanho total dos arquivos menores for maior que o tamanho do arquivo original, essa abordagem pode de fato resultar em um maior consumo de tokens. Portanto, é sempre importante considerar o trade-off entre a facilidade de gerenciamento do código e a economia de tokens ao decidir como estruturar seus arquivos de texto.

Era isso, abraços e bons estudos.

Olá Renan, obrigado pelo retorno!

Quanto ao seu comentário "...A abordagem de dividir o arquivo em arquivos menores pode ser útil em situações em que você tem um arquivo de texto muito grande e deseja garantir que apenas a parte relevante desse arquivo seja enviada para a API. Isso pode ajudar a evitar que você atinja o limite máximo de tokens permitidos em uma única solicitação..."

Este é o ponto que quiz abordar. Na lógica implementada, para que se tome a decisão de qual arquivo selecionar eu preciso enviar o conteúdo de todos os arquivos. Ou seja, pouco importa se envio os dados em um único arquivo ou separadamente. A quantidade de tokens é a mesma.

Exemplo:

A empresa EcoMart possui três documentos principais que detalham diferentes aspectos do negócio:

#Documento 1 "\n {dados_ecomart} "\n"
#Documento 2 "\n" {politicas_ecomart} "\n"
#Documento 3 "\n" {produtos_ecomart} "\n"

A empresa EcoMart possui um documentos principais que detalham diferentes aspectos do negócio:

#Documento "\n {ecomart.txt} "\n"

Ao que pude compreender até aqui, ambos os prompts geram o mesmo número de tokens de entrada.

Quanto ao aumento, de fato, gerar o envio direto do contexto é mais econômico do que enviar seu conteúdo em partes (que tem o mesmo tamanho que o arquivo ecomart.txt) no fonte de seleção de documentos e depois, gerar mais uma consulta com somente os tokens do arquivo selecionado.

Mais uma vez, agradeço o retorno. Vamos em frente.

Imagina, fico feliz em poder ajudar a esclarecer o conteúdo para você!

Se precisar conte com o fórum!

Continue praticando e consolidando esses conhecimentos. Se precisar de ajuda em algo específico, conte com o fórum!

Abraços e bons estudos!