Ir para o conteúdo

Arquivo de teste de LLM

Este documento testa se o LLM, que traduz a documentação, entende o general_prompt em scripts/translate.py e o prompt específico do idioma em docs/{language code}/llm-prompt.md. O prompt específico do idioma é anexado ao general_prompt.

Os testes adicionados aqui serão vistos por todos os autores dos prompts específicos de idioma.

Use da seguinte forma:

  • Tenha um prompt específico do idioma – docs/{language code}/llm-prompt.md.
  • Faça uma tradução nova deste documento para o seu idioma de destino (veja, por exemplo, o comando translate-page do translate.py). Isso criará a tradução em docs/{language code}/docs/_llm-test.md.
  • Verifique se está tudo certo na tradução.
  • Se necessário, melhore seu prompt específico do idioma, o prompt geral ou o documento em inglês.
  • Em seguida, corrija manualmente os problemas restantes na tradução, para que fique uma boa tradução.
  • Retraduzir, tendo a boa tradução no lugar. O resultado ideal seria que o LLM não fizesse mais mudanças na tradução. Isso significa que o prompt geral e o seu prompt específico do idioma estão tão bons quanto possível (às vezes fará algumas mudanças aparentemente aleatórias, a razão é que LLMs não são algoritmos determinísticos).

Os testes:

Trechos de código

Este é um trecho de código: foo. E este é outro trecho de código: bar. E mais um: baz quux.

O conteúdo dos trechos de código deve ser deixado como está.

Veja a seção ### Content of code snippets no prompt geral em scripts/translate.py.

Citações

Ontem, meu amigo escreveu: "Se você soletrar incorretamente corretamente, você a soletrou incorretamente". Ao que respondi: "Correto, mas 'incorrectly' está incorretamente não '"incorrectly"'".

Nota

O LLM provavelmente vai traduzir isso errado. O interessante é apenas se ele mantém a tradução corrigida ao retraduzir.

O autor do prompt pode escolher se deseja converter aspas neutras em aspas tipográficas. Também é aceitável deixá-las como estão.

Veja, por exemplo, a seção ### Quotes em docs/de/llm-prompt.md.

Citações em trechos de código

pip install "foo[bar]"

Exemplos de literais de string em trechos de código: "this", 'that'.

Um exemplo difícil de literais de string em trechos de código: f"I like {'oranges' if orange else "apples"}"

Pesado: Yesterday, my friend wrote: "If you spell incorrectly correctly, you have spelled it incorrectly". To which I answered: "Correct, but 'incorrectly' is incorrectly not '"incorrectly"'"

... No entanto, as aspas dentro de trechos de código devem permanecer como estão.

Blocos de código

Um exemplo de código Bash...

# Imprimir uma saudação ao universo
echo "Hello universe"

...e um exemplo de código de console...

$ <font color="#4E9A06">fastapi</font> run <u style="text-decoration-style:solid">main.py</u>
<span style="background-color:#009485"><font color="#D3D7CF"> FastAPI </font></span>  Starting server
        Searching for package file structure

...e outro exemplo de código de console...

// Crie um diretório "Code"
$ mkdir code
// Entre nesse diretório
$ cd code

...e um exemplo de código Python...

wont_work()  # Isto não vai funcionar 😱
works(foo="bar")  # Isto funciona 🎉

...e é isso.

O código em blocos de código não deve ser modificado, com exceção dos comentários.

Veja a seção ### Content of code blocks no prompt geral em scripts/translate.py.

Abas e caixas coloridas

Informação

Algum texto

Nota

Algum texto

Detalhes Técnicos

Algum texto

Verifique

Algum texto

Dica

Algum texto

Atenção

Algum texto

Cuidado

Algum texto

Abas e blocos Info/Note/Warning/etc. devem ter a tradução do seu título adicionada após uma barra vertical (|).

Veja as seções ### Special blocks e ### Tab blocks no prompt geral em scripts/translate.py.

O texto do link deve ser traduzido, o endereço do link deve permanecer inalterado:

O texto do link deve ser traduzido, o endereço do link deve apontar para a tradução:

Os links devem ser traduzidos, mas seus endereços devem permanecer inalterados. Uma exceção são links absolutos para páginas da documentação do FastAPI. Nesse caso, devem apontar para a tradução.

Veja a seção ### Links no prompt geral em scripts/translate.py.

Elementos HTML "abbr"

Aqui estão algumas coisas envolvidas em elementos HTML "abbr" (algumas são inventadas):

O abbr fornece uma frase completa

  • GTD
  • lt
  • XWT
  • PSGI

O abbr fornece uma explicação

  • cluster
  • Deep Learning

O abbr fornece uma frase completa e uma explicação

  • MDN
  • I/O.

Os atributos "title" dos elementos "abbr" são traduzidos seguindo algumas instruções específicas.

As traduções podem adicionar seus próprios elementos "abbr" que o LLM não deve remover. Por exemplo, para explicar palavras em inglês.

Veja a seção ### HTML abbr elements no prompt geral em scripts/translate.py.

Títulos

Desenvolver uma aplicação web - um tutorial

Olá.

Anotações de tipo e -anotações

Olá novamente.

Super- e subclasses

Olá novamente.

A única regra rígida para títulos é que o LLM deixe a parte do hash dentro de chaves inalterada, o que garante que os links não quebrem.

Veja a seção ### Headings no prompt geral em scripts/translate.py.

Para algumas instruções específicas do idioma, veja, por exemplo, a seção ### Headings em docs/de/llm-prompt.md.

Termos usados na documentação

  • você
  • seu

  • por exemplo

  • etc.

  • foo como um int

  • bar como uma str
  • baz como uma list

  • o Tutorial - Guia do Usuário

  • o Guia do Usuário Avançado
  • a documentação do SQLModel
  • a documentação da API
  • a documentação automática

  • Ciência de Dados

  • Deep Learning
  • Aprendizado de Máquina
  • Injeção de Dependências
  • autenticação HTTP Basic
  • HTTP Digest
  • formato ISO
  • o padrão JSON Schema
  • o JSON schema
  • a definição do schema
  • Fluxo de Senha
  • Mobile

  • descontinuado

  • projetado
  • inválido
  • dinamicamente
  • padrão
  • padrão predefinido
  • sensível a maiúsculas e minúsculas
  • não sensível a maiúsculas e minúsculas

  • servir a aplicação

  • servir a página

  • o app

  • a aplicação

  • a requisição

  • a resposta
  • a resposta de erro

  • a operação de rota

  • o decorador de operação de rota
  • a função de operação de rota

  • o corpo

  • o corpo da requisição
  • o corpo da resposta
  • o corpo JSON
  • o corpo do formulário
  • o corpo do arquivo
  • o corpo da função

  • o parâmetro

  • o parâmetro de corpo
  • o parâmetro de path
  • o parâmetro de query
  • o parâmetro de cookie
  • o parâmetro de header
  • o parâmetro de formulário
  • o parâmetro da função

  • o evento

  • o evento de inicialização
  • a inicialização do servidor
  • o evento de encerramento
  • o evento de lifespan

  • o manipulador

  • o manipulador de eventos
  • o manipulador de exceções
  • tratar

  • o modelo

  • o modelo Pydantic
  • o modelo de dados
  • o modelo de banco de dados
  • o modelo de formulário
  • o objeto de modelo

  • a classe

  • a classe base
  • a classe pai
  • a subclasse
  • a classe filha
  • a classe irmã
  • o método de classe

  • o cabeçalho

  • os cabeçalhos
  • o cabeçalho de autorização
  • o cabeçalho Authorization
  • o cabeçalho encaminhado

  • o sistema de injeção de dependências

  • a dependência
  • o dependable
  • o dependant

  • limitado por I/O

  • limitado por CPU
  • concorrência
  • paralelismo
  • multiprocessamento

  • a env var

  • a variável de ambiente
  • o PATH
  • a variável PATH

  • a autenticação

  • o provedor de autenticação
  • a autorização
  • o formulário de autorização
  • o provedor de autorização
  • o usuário se autentica
  • o sistema autentica o usuário

  • a CLI

  • a interface de linha de comando

  • o servidor

  • o cliente

  • o provedor de nuvem

  • o serviço de nuvem

  • o desenvolvimento

  • as etapas de desenvolvimento

  • o dict

  • o dicionário
  • a enumeração
  • o enum
  • o membro do enum

  • o codificador

  • o decodificador
  • codificar
  • decodificar

  • a exceção

  • lançar

  • a expressão

  • a instrução

  • o frontend

  • o backend

  • a discussão do GitHub

  • a issue do GitHub

  • o desempenho

  • a otimização de desempenho

  • o tipo de retorno

  • o valor de retorno

  • a segurança

  • o esquema de segurança

  • a tarefa

  • a tarefa em segundo plano
  • a função da tarefa

  • o template

  • o mecanismo de template

  • a anotação de tipo

  • a anotação de tipo

  • o worker de servidor

  • o worker do Uvicorn
  • o Worker do Gunicorn
  • o processo worker
  • a classe de worker
  • a carga de trabalho

  • a implantação

  • implantar

  • o SDK

  • o kit de desenvolvimento de software

  • o APIRouter

  • o requirements.txt
  • o Bearer Token
  • a alteração com quebra de compatibilidade
  • o bug
  • o botão
  • o chamável
  • o código
  • o commit
  • o gerenciador de contexto
  • a corrotina
  • a sessão do banco de dados
  • o disco
  • o domínio
  • o mecanismo
  • o X falso
  • o método HTTP GET
  • o item
  • a biblioteca
  • o lifespan
  • o bloqueio
  • o middleware
  • a aplicação mobile
  • o módulo
  • a montagem
  • a rede
  • a origem
  • a sobrescrita
  • a carga útil
  • o processador
  • a propriedade
  • o proxy
  • o pull request
  • a consulta
  • a RAM
  • a máquina remota
  • o código de status
  • a string
  • a tag
  • o framework web
  • o curinga
  • retornar
  • validar

Esta é uma lista não completa e não normativa de termos (principalmente) técnicos vistos na documentação. Pode ser útil para o autor do prompt descobrir para quais termos o LLM precisa de uma ajudinha. Por exemplo, quando ele continua revertendo uma boa tradução para uma tradução subótima. Ou quando tem problemas para conjugar/declinar um termo no seu idioma.

Veja, por exemplo, a seção ### List of English terms and their preferred German translations em docs/de/llm-prompt.md.