O AI Coding Assistant Lingma é uma ferramenta de assistência inteligente ao desenvolvimento integrada aos ambientes de desenvolvimento integrado (IDE) JetBrains ou VSCode. Seu objetivo é simplificar o processo de desenvolvimento de software por meio de inteligência artificial e aumentar a eficiência das equipes. Este tópico descreve como utilizar os diferentes recursos do AI Coding Assistant durante o desenvolvimento, incluindo perguntas e respostas baseadas em modelos de linguagem grandes (LLMs), geração de testes unitários, otimização de código para cenários específicos, escrita de documentação e geração de código de alta qualidade orientado por IA com base no código existente. Esses recursos tornam o desenvolvimento mais prático e eficiente.
AI Coding Assistant
Uso de teclas de atalho
Teclas de atalho padrão
O Lingma oferece teclas de atalho prontas para uso em diversas operações. A tabela a seguir lista algumas das teclas de atalho mais utilizadas.
|
Recurso |
Tecla de atalho no Windows |
Tecla de atalho no macOS |
|
Acionar a conclusão em qualquer posição |
Alt + P |
Option + P |
|
Substituir resultados gerados |
Alt + ] |
Option + ] |
|
Aceitar todo o código gerado |
Tab |
Tab |
|
Aceitar código gerado linha por linha |
Ctrl + ↓ |
Cmd + ↓ |
|
Fechar ou abrir o painel de Perguntas e Respostas |
Ctrl + Shift + L |
Cmd + Shift + L |
Além disso, no painel de Perguntas e Respostas do Lingma, use Cmd+Enter (no macOS/Linux) ou Ctrl+Enter (no Windows) para inserir uma quebra de linha. Se você pressionar diretamente a tecla Enter, sua pergunta será enviada ao modelo em uso.
Ao usar a tecla de atalho para substituir resultados gerados, o parâmetro temperature, que define a diversidade da geração, aumenta. Isso pode resultar em conteúdos mais longos ou divergentes.
Teclas de atalho personalizadas
JetBrains IDE
Acesse a página Settings.
No painel à esquerda, selecione "Keymap" e localize "TONGYI Lingma" em "Plugins". Expanda o item para visualizar e editar as teclas de atalho relacionadas.

VSCode
Clique em no ícone de configurações no canto inferior esquerdo do IDE e selecione o menu Keyboard Shortcuts.

-
Pesquise por "Lingma" na página para visualizar e editar todas as teclas de atalho.
NotaPara facilitar a identificação, a maioria das teclas de atalho do Lingma no VSCode possui o prefixo TONGYI Lingma. No entanto, as teclas para acionar sugestões em linha e exibir sugestões anteriores/próximas reutilizam funções existentes no nível do sistema, por isso seus nomes seguem um estilo ligeiramente diferente.
Uso de configurações
Painel de configuração
JetBrains IDE
O painel de configuração do JetBrains IDE está localizado na seção de nível superior "Lingma", dentro da página Settings. Para acessá-lo rapidamente, clique em no ícone do Lingma na barra de status e selecione "Advanced Settings".

VSCode
No VSCode, também é possível acessar o painel de configuração clicando em no ícone do Lingma no canto inferior direito da barra de status e selecionando "Advanced Settings".
Itens de configuração comuns
-
Desative a conclusão automática por tipo de arquivo.
-
Caso a conclusão automática cause interferência em tipos específicos de arquivos, adicione as extensões desses arquivos a uma lista. Separe múltiplas extensões por vírgula (,). Exemplo: txt,md.
IDE
Configuração
JetBrains IDE

VSCode
NotaÉ possível desativar a conclusão automática para tipos de arquivos específicos e evitar seu acionamento automático. Mesmo assim, ao usar a tecla de atalho Alt+P para acionar manualmente a conclusão nesses arquivos, você ainda poderá utilizar a geração e conclusão de código baseada em LLM.
-
-
Mantenha os resultados de conclusão quando sugestões suspensas aparecerem.
Por padrão, quando o IDE exibe sugestões de conclusão suspensas baseadas em sintaxe, o Lingma interrompe automaticamente a exibição do conteúdo de conclusão do LLM para evitar conflitos visuais.

-
Se preferir que o Lingma sempre gere conclusões via LLM, selecione este item de configuração. O efeito é mostrado na figura a seguir. Nesse caso, pressione a tecla Tab para aceitar o resultado gerado pelo LLM.

IDE
Configuração
JetBrains IDE

VSCode

-
Controle o comprimento máximo do código gerado.
-
O Lingma permite definir parâmetros de comprimento máximo distintos para conclusões de código acionadas automática e manualmente. Recomendamos especificar um comprimento maior para conclusões acionadas manualmente, cujo atalho padrão é Alt+P.
IDE
Configuração
JetBrains IDE

VSCode
NotaCada item de configuração define o comprimento máximo de código que pode ser gerado. Se o modelo gerar um código menor que esse limite durante a conclusão, ele não aumentará o tamanho do código mesmo que você altere o valor máximo posteriormente.
-
Uso de comentários de código
Oriente a geração de conclusões por meio de comentários
Sem comentários, o modelo prevê o código a ser gerado baseando-se apenas no código existente, além de referências e códigos similares no projeto atual. Caso a previsão não atenda às suas expectativas, adicione comentários de código para fornecer mais referências ao modelo.
Por exemplo, no código abaixo, o modelo inicialmente prevê um campo
CHAT_CONTEXT, o que não corresponde ao esperado.
Nessa situação, adicione um comentário instruindo o modelo a gerar um campo de histórico. Assim, o modelo gera o campo desejado juntamente com o código correspondente para preenchimento dos dados.

Gere métodos usando descrições
É possível gerar um método inteiro com base em comentários, seja "orientando a conclusão por meio de comentários de código no editor" ou "usando o painel de Perguntas e Respostas do Lingma". Como o LLM utilizado no cenário inteligente de Perguntas e Respostas do Lingma geralmente possui mais parâmetros que o modelo de conclusão de código, recomendamos fazer a pergunta diretamente no painel de Perguntas e Respostas para esse tipo de cenário.

Caso tenha requisitos específicos quanto à linguagem ou assinatura do método (incluindo nome do método, tipo de parâmetro e tipo de retorno) do código gerado, descreva a assinatura do método em detalhes ao formular a pergunta.

Uso de índices entre arquivos
Salve arquivos e atualize índices oportunamente
A indexação entre arquivos no Lingma é um mecanismo essencial para reduzir alucinações de código. Os modelos identificam automaticamente tipos de arquivos e definições de métodos envolvidos no contexto atual, reconhecendo membros de outros tipos de arquivos no projeto e parâmetros de métodos relacionados. Ao abrir um novo projeto pela primeira vez, o Lingma cria automaticamente índices de arquivos para o projeto. Posteriormente, cada vez que um arquivo é salvo, uma atualização incremental do índice é acionada. Na maioria dos casos, os IDEs armazenam arquivos em cache na memória. Após editar um arquivo e alternar para outro, o modelo pode não identificar o conteúdo novo ou modificado porque os índices locais não foram atualizados a tempo, continuando a realizar previsões com base na estrutura de tipos existente. Por exemplo, em um projeto de código, adicionamos uma propriedade "saleable" ao objeto Pet.

Em seguida, ao alternarmos para outro arquivo e tentarmos deixar o LLM completar o código, o modelo infere a lógica usando outro campo menos relevante.

Para eliminar essa discrepância de informações, recomendamos pressionar ativamente a tecla de salvamento de arquivo
tecla de atalho Ctrl+Sapós editar o arquivo anterior, antes de continuar editando outros arquivos. Dessa forma, o conteúdo gerado referenciará corretamente a estrutura modificada do objeto.
Solução de otimização para cenários MyBatis
Além das funções de referência entre arquivos para projetos em linguagens de programação convencionais como Java, Python e JavaScript, o Lingma também identifica automaticamente os tipos de estrutura de tabela referenciados por objetos Mapper ao escrever arquivos XML do MyBatis. Por exemplo, ao escrever a seguinte instrução insert, ele usará as informações de tipo TaxiOrder no projeto atual para garantir que cada campo gerado esteja correto.

Limpeza oportuna de informações de contexto
Limpe o contexto nos momentos adequados
Na mesma sessão de conversa, o conteúdo do diálogo anterior é fornecido automaticamente ao modelo como contexto para uma nova pergunta. Quando a pergunta real não tem relação com o conteúdo anterior, essas informações adicionais podem interferir na resposta do modelo.
Nesse caso, clique em no botão de nova sessão na parte superior do painel de Perguntas e Respostas para fazer perguntas em uma nova sessão, ou use o comando /clear context para limpar o contexto e reduzir a interferência do conteúdo anterior nas perguntas e respostas subsequentes.
Visualize registros históricos de conversas
Após criar uma nova sessão, se precisar encontrar conteúdo perguntado anteriormente, use a função de histórico para retornar a tópicos anteriores e continuar fazendo perguntas complementares.
Perguntas e respostas baseadas em código
Perguntas e respostas gerais
Para fazer perguntas com base em segmentos específicos de código, além de colar diretamente o conteúdo na área de Perguntas e Respostas, você também pode selecionar um trecho de código no editor e então fazer perguntas sobre o código selecionado na área de Perguntas e Respostas, por exemplo.
Tarefas de código integradas
O Lingma possui quatro tarefas de código integradas: explicar código, gerar testes unitários, gerar comentários de código e gerar sugestões de otimização. O LLM do Lingma foi especialmente treinado para essas tarefas. Para geração de testes unitários, recomendamos usar a tarefa integrada apropriada em vez de selecionar o código e digitar um método de geração.
-
O AI Coding Assistant oferece três formas de usar as tarefas de código integradas. A mais comum é clicar em no ícone do Lingma no início da definição de um método e selecionar diretamente a tarefa a ser executada nas opções suspensas.
-
Método 1: Use um menu suspenso no IDE.
IDE
Configuração
JetBrains IDE

VSCode

Método 2: Selecione o código, clique em com o botão direito e escolha a opção "AI Coding Assistant" no menu de contexto.

Método 3: Selecione o código e digite uma barra (/) no painel de Perguntas e Respostas para ativar o menu de tarefas integradas e, em seguida, selecione a tarefa correspondente.

-
Dicas de uso de prompts
Referencie código selecionado nas perguntas
Se você selecionar texto ou um trecho de código no editor ao fazer uma pergunta, o conteúdo selecionado será anexado automaticamente à pergunta no formato de citação Markdown. Para referenciar o conteúdo selecionado nos prompts, recomendamos usar "código abaixo" ou "conteúdo a seguir".
Exemplo recomendado: Verifique se o código abaixo apresenta risco de erro de índice fora dos limites.
Exemplo inadequado: Verifique se o código selecionado apresenta risco de erro de índice fora dos limites. (Neste exemplo, o modelo não consegue identificar o código selecionado.)
Anexe informações relevantes ao usar comandos
Ao adicionar informações auxiliares após um comando, você fornece um contexto mais rico para as Perguntas e Respostas, obtendo respostas mais alinhadas às suas expectativas.

Gere código eficaz por meio de conversas em várias rodadas
Em conversas baseadas em LLM, a qualidade dos resultados gerados melhora quando informações de contexto mais detalhadas são fornecidas, ajudando a atender melhor às suas expectativas. Continue as Perguntas e Respostas com base em conversas anteriores para adicionar mais informações de contexto às perguntas subsequentes. Assim, os resultados gerados refletirão melhor o histórico completo da conversa. No entanto, às vezes as informações históricas de rodadas anteriores podem causar interferência. Nesse caso, limpe o contexto nos momentos adequados.
Com base na rodada anterior, faça perguntas complementares mais aprofundadas.
Forneça exemplos de referência para o modelo
Se desejar que o modelo gere saídas em um formato específico ou em conformidade com regras predefinidas, recomendamos fornecer um exemplo de referência em vez de descrições textuais. Por exemplo, o arquivo de resultados de execução de um programa pode ser organizado pelo Lingma em um documento com estrutura JSON específica. Primeiro, abra o arquivo, selecione o conteúdo problemático e insira sua pergunta no painel de Perguntas e Respostas. Entre os prompts a seguir, o segundo prompt resulta no formato de dados esperado.
Prompt 1: Organize o arquivo em um relatório de teste no formato JSON. Certifique-se de que os resultados de cada caso de teste sejam organizados em uma estrutura JSON. Preencha o campo name com o nome do caso de teste, o campo success com o status do caso de teste, o campo duration com a duração da execução em milissegundos e o campo coverage com a taxa de cobertura de teste. Garanta que o campo detail esteja no formato JSON e inclua os campos input e output para cada caso de teste.
-
Prompt 2: Organize o arquivo em um relatório de teste no formato JSON. Consulte o relatório de entrada para detalhes do formato.
...Report content omitted...O exemplo a seguir fornece o relatório de entrada. Organize o arquivo em um relatório de teste no formato JSON com base no seguinte exemplo:
[ { "name": "If the page number exceeds the valid value range, the system is expected to return an empty list or prompt no-more-data", "duration": 3434, "coverage": 80, "detail": [ { "input": "…", "output": "…" } ] } ]