- O Emacs Copilot usa um LLM (Large Language Model) executado localmente para gerar conclusão de código dentro do buffer do Emacs
- O LLM é executado como um subcomando que lembra o histórico local de edição por arquivo, e pode ser interrompido a qualquer momento com
C-g
- Ao apagar código, esse histórico também pode ser removido do contexto do LLM, e a linguagem de programação é determinada pela extensão do arquivo, independentemente da linguagem em si
Modelo WizardCoder 34b
- O WizardCoder 34b é um excelente LLM que obteve a mesma pontuação no HumanEval que o GPT-4.
- Para usar esse modelo, é necessário um computador potente, como um Mac Studio M2 Ultra; usuários de Macbook Pro podem considerar a versão Q3, e usuários de PCs comuns podem considerar o modelo WizardCoder-Python-13b.
- Usuários com menor poder computacional, como um Raspberry Pi, podem usar o modelo Phi-2.
Como começar
- Após escrever a primeira linha da função, pressione
C-c C-k para passar o controle ao LLM, que então gerará o restante da implementação da função.
- O LLM é ajustado para parar quando a função estiver completa, evitando explicações ou comentários ELI5 (explicações simplificadas).
Implementação de referência
- Depois de baixar o LLM, copie o código abaixo para um buffer do Emacs e execute
M-x eval-buffer.
- Você pode ajustar o código de acordo com suas preferências pessoais.
Link para baixar o Emacs
- Caso o Emacs não esteja instalado ou você use uma plataforma em que ele seja difícil de obter, como o Windows, há um link para uma build em arquivo único executável, sem necessidade de instalação.
Link para baixar o LLM
- São fornecidos links para baixar gratuitamente alguns LLMs conhecidos por funcionarem bem com o Emacs Copilot.
- O tamanho do modelo pode ser escolhido de acordo com o hardware disponível.
Arquivos de cache
- Se você decidir mudar de modelo, deve excluir todos os arquivos
FILE.cache criados no sistema de arquivos local.
Observações
- No macOS com Apple Silicon, é necessário ter o Xcode instalado.
- Ao usar zsh, talvez seja necessário executar com
sh -c ./llamafile.
- Em alguns sistemas Linux, podem ocorrer erros relacionados ao registro de
binfmt_misc.
Sistemas operacionais e CPUs compatíveis
- O llamafile oferece suporte a vários sistemas operacionais com requisitos mínimos de instalação.
- O llamafile oferece suporte a CPUs específicas e requer um microprocessador AMD64 com conjunto de instruções SSSE3 ou superior, ou um microprocessador ARM64 com ARMv8a+.
Observação sobre os modelos
- Os exemplos de llamafile fornecidos acima não devem ser interpretados como endosso ou recomendação da Mozilla a qualquer modelo, licença ou conjunto de dados específicos.
Opinião do GN⁺
- Experiência de edição inovadora: o Emacs Copilot oferece aos desenvolvedores um novo nível de assistência à programação, com potencial para aumentar significativamente a eficiência e a produtividade.
- Acessibilidade e personalização: os usuários podem escolher o LLM e ajustar o ambiente do Emacs de acordo com suas necessidades e preferências, tornando possível montar um ambiente de desenvolvimento personalizado.
- Compatibilidade técnica: ao oferecer suporte a diversos sistemas operacionais e CPUs, o Emacs Copilot pode ser usado por um público amplo, promovendo inclusão e acessibilidade dentro da comunidade de desenvolvedores.
1 comentários
Comentários do Hacker News
Dúvida sobre a utilidade da integração de LLM/IDE
Agradecimento pelo desenvolvimento de ferramentas de LLM self-hosted
Compartilhamento de experiência com integração de LLM usando Emacs
Experiência executando LLM em um MacBook Pro M1 Max
Crítica à função is_prime na demonstração em vídeo
Pergunta sobre build de llamafile que não pode ser executada no NixOS
Demanda por uma integração de LLM mais geral
Compartilhamento de comando customizado de integração com LLM por um usuário de Vim
Pergunta sobre o caminho de upgrade do Llamafile
Expressão de interesse e intenção de testar a integração com LLM