12 KiB
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-pagedotranslate.py). Isso criará a tradução emdocs/{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
//// tab | Teste
Este é um trecho de código: foo. E este é outro trecho de código: bar. E mais um: baz quux.
////
//// tab | Informações
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
//// tab | Teste
Ontem, meu amigo escreveu: "Se você soletrar incorretamente corretamente, você a soletrou incorretamente". Ao que respondi: "Correto, mas 'incorrectly' está incorretamente não '"incorrectly"'".
/// note | Nota
O LLM provavelmente vai traduzir isso errado. O interessante é apenas se ele mantém a tradução corrigida ao retraduzir.
///
////
//// tab | Informações
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
//// tab | Teste
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"'"
////
//// tab | Informações
... No entanto, as aspas dentro de trechos de código devem permanecer como estão.
////
Blocos de código
//// tab | Teste
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.
////
//// tab | Informações
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
//// tab | Teste
/// info | Informação Algum texto ///
/// note | Nota Algum texto ///
/// note | Detalhes Técnicos Algum texto ///
/// check | Verifique Algum texto ///
/// tip | Dica Algum texto ///
/// warning | Atenção Algum texto ///
/// danger | Cuidado Algum texto ///
////
//// tab | Informações
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.
////
Links da Web e internos
//// tab | Teste
O texto do link deve ser traduzido, o endereço do link deve permanecer inalterado:
- Link para o título acima
- Link interno{.internal-link target=_blank}
- Link externo
- Link para um estilo
- Link para um script
- Link para uma imagem
O texto do link deve ser traduzido, o endereço do link deve apontar para a tradução:
////
//// tab | Informações
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"
//// tab | Teste
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
- Aprendizado Profundo
O abbr fornece uma frase completa e uma explicação
- MDN
- I/O.
////
//// tab | Informações
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
//// tab | Teste
Desenvolver uma aplicação web - um tutorial
Olá.
Anotações de tipo e -anotações
Olá novamente.
Super- e subclasses
Olá novamente.
////
//// tab | Informações
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
//// tab | Teste
-
você
-
seu
-
por exemplo
-
etc.
-
foocomo umint -
barcomo umastr -
bazcomo umalist -
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
-
Aprendizado Profundo
-
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
////
//// tab | Informações
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.
////