Introdução geral
O MacOS LLM Controller é um aplicativo de desktop de código aberto, hospedado no GitHub, que permite aos usuários executar comandos do sistema macOS inserindo comandos de linguagem natural por voz ou texto. Ele é baseado no modelo Llama-3.2-3B-Instruct e usa o LlamaStack para gerar código Python que chama as APIs do sistema macOS para concluir tarefas. Os usuários podem dizer "abrir terminal" ou digitar "nova pasta", e a ferramenta analisará e executará a operação automaticamente. O projeto usa o front-end React e o back-end Flask, suporta feedback de status em tempo real e histórico de comandos e é adequado para usuários do macOS para melhorar a eficiência operacional, especialmente para desenvolvedores ou pessoas com necessidades de acessibilidade. O código está disponível publicamente e a comunidade pode participar da otimização.
Lista de funções
- Reconhecimento de comandos de voz: insira sua voz pelo microfone e traduza-a em comandos do macOS em tempo real.
- Entrada de comando de texto: oferece suporte à linguagem natural de entrada de texto para executar operações do sistema.
- Histórico de comandos: Exibe o status de sucesso ou falha dos comandos executados.
- Feedback de status em tempo real: a interface atualiza dinamicamente o status das conexões de serviço e da execução de comandos.
- Geração de código Python: transforma instruções em código executável de chamada de API do macOS com base no LlamaStack.
- Operação localizada: todo o processamento é feito localmente para proteger a privacidade do usuário.
- Verificação de segurança: executa a validação de segurança básica do código Python gerado.
Usando a Ajuda
Processo de instalação
O MacOS LLM Controller requer a configuração de um ambiente no sistema macOS, incluindo o front-end, o back-end e o modelo LlamaStack. Abaixo estão as etapas detalhadas de instalação para garantir que os usuários possam executá-lo sem problemas:
1. preparação ambiental
Certifique-se de que o sistema atenda aos seguintes requisitos:
- sistema operacionalmacOS: macOS (o projeto foi desenvolvido para o macOS e não oferece suporte explícito a outros sistemas).
- Node.jsVersão 16 ou superior, incluindo
npm
O site do Node.js é uma ótima fonte de informações sobre o Node.js. Ele pode ser baixado do site do Node.js. - PythonVersão 3.8 ou superior, inclui
pip
O Ele pode ser baixado do site do Python. - OllamaPara executar o modelo Llama. Visite o site da Ollama para fazer a instalação.
- DockerPara executar o LlamaStack, instale o Docker Desktop.
- Requisitos de hardwarePara dar suporte à inferência de modelos, recomenda-se 16 GB ou mais de RAM e uma CPU com vários núcleos.
2. clonagem de códigos de projeto
Abra um terminal e execute o seguinte comando para clonar o código:
git clone https://github.com/duduyiq2001/llama-desktop-controller.git
cd llama-desktop-controller
3. configuração do LlamaStack
O LlamaStack é a principal dependência do projeto para gerar código Python. As etapas de configuração são as seguintes:
Definição de variáveis de ambiente::
Execute o seguinte comando no terminal para especificar o modelo de inferência:
export INFERENCE_MODEL="meta-llama/Llama-3.2-3B-Instruct"
export OLLAMA_INFERENCE_MODEL="llama3.2:3b-instruct-fp16"
Iniciando o Ollama Reasoning Server::
Execute o seguinte comando para iniciar o modelo e configurá-lo para permanecer ativo por 60 minutos:
ollama run $OLLAMA_INFERENCE_MODEL --keepalive 60m
Executando o LlamaStack com o Docker::
Defina a porta e inicie o contêiner:
export LLAMA_STACK_PORT=5001
docker run \
-it \
-p $LLAMA_STACK_PORT:$LLAMA_STACK_PORT \
-v ~/.llama:/root/.llama \
llamastack/distribution-ollama \
--port $LLAMA_STACK_PORT \
--env INFERENCE_MODEL=$INFERENCE_MODEL \
--env OLLAMA_URL=http://host.docker.internal:11434
Certifique-se de que o LlamaStack esteja em http://localhost:5001
Está funcionando bem.
4. configuração de back-end
O backend é baseado no Flask e é responsável por lidar com solicitações de API e geração de código. As etapas são as seguintes:
- Vá para o diretório back-end:
cd backend
- Instale as dependências do Python:
pip install -r ../requirements.txt
As dependências incluem
flask
eflask-cors
erequests
epyobjc
responder cantandollama-stack-client
. Se a instalação falhar, use um espelho doméstico:pip install -r ../requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
- Inicie o servidor Flask:
python server.py
- Confirme que o backend está sendo executado em
http://localhost:5066
.
5 Configuração de front-end
O front-end é baseado no React e fornece a interface do usuário. As etapas são as seguintes:
- Vá para o diretório do front-end:
cd .. # 返回项目根目录
- Instale a dependência do Node.js:
npm install
- Inicie o servidor de desenvolvimento:
npm run dev
- Verifique se o front-end está sendo executado em
http://localhost:5173
.
6. acesso a aplicativos
Abra seu navegador e acesse http://localhost:5173
. Certifique-se de que o backend e o LlamaStack estejam funcionando corretamente, caso contrário, a funcionalidade poderá ser limitada.
Guia de operação de funções
1. uso de comandos de voz
A entrada de voz é a função principal do projeto e é adequada para uma operação rápida. As etapas de operação são as seguintes:
- Ativar o modo de vozClique no botão "Voice Input" (Entrada de voz) na interface principal (ou use as teclas de atalho; é necessário consultar a documentação para confirmar).
- Instruções de registroComandos: Diga comandos no microfone, como "Abrir o Finder" ou "Fechar o Safari". Mantenha o ambiente silencioso para melhorar as taxas de reconhecimento.
- processo de implementaçãoA ferramenta converte a fala em texto usando a API SpeechRecognition, que o LlamaStack analisa no código Python que chama a API do macOS para executar a tarefa.
- Exemplos de comandos comuns::
- "Open Terminal": inicia o Terminal.app.
- "New Folder" (Nova pasta): cria uma pasta no diretório atual.
- "Screenshot": aciona o recurso de captura de tela do macOS.
- advertência::
- Os privilégios do microfone precisam ser autorizados para o primeiro uso.
- Se o reconhecimento falhar, verifique as configurações do microfone ou alterne a entrada de texto.
2. uso de instruções textuais
A entrada de texto é adequada para um controle preciso. As etapas de operação são as seguintes:
- Abra a caixa de entradaLocalize a área de entrada de texto na interface.
- entradaDigite em linguagem natural, como "abrir calendário" ou "aumentar o volume para 50%".
- Envio de instruçõesClique no botão Execute (Executar) ou pressione Enter, e a ferramenta gerará e executará o código Python.
- Uso avançadoO LlamaStack suporta comandos complexos, como "Criar uma nova pasta na área de trabalho chamada 'Projetos' e abri-la".
- chamar a atenção para algoClareza das instruções aumenta o sucesso, por exemplo, "Abrir o Chrome" é melhor do que "Abrir o navegador".
3. visualização do histórico de comandos
A interface fornece uma área de histórico de comandos que mostra o status de execução de cada comando:
- estado de sucessoUma marca verde indica que o comando foi executado corretamente.
- estado de erroBandeiras vermelhas com mensagens de erro (por exemplo, "permissões insuficientes").
- equipamentoClique em History (Histórico) para executar novamente o comando ou visualizar o código Python gerado.
4. monitoramento de status em tempo real
O status do serviço é exibido no canto superior direito da interface:
- mais verdeO backend e o LlamaStack estão conectados corretamente.
- rosaFlask: O serviço está desconectado e você precisa verificar se o Flask ou o LlamaStack está em execução.
- equipamentoClique no ícone de status para atualizar manualmente a conexão.
5. inspeções de segurança
realiza a validação de segurança básica do código Python gerado:
- Filtrar comandos de alto risco (por exemplo, excluir arquivos do sistema).
- Verifique se há erros de sintaxe e certifique-se de que o código seja executável.
- tomar nota de: Ainda assim, é preciso ter cuidado para evitar a execução de comandos de fontes desconhecidas.
advertência
- dependência de modelosO projeto foi corrigido para usar o Llama-3.2-3B-Instruct e não pode substituir diretamente outros modelos.
- Requisitos de desempenhoSe a execução do LlamaStack exigir alto poder de computação, é recomendável fechar programas estranhos.
- Método de comissionamentoSe a inicialização falhar, verifique os registros do terminal ou acesse o
http://localhost:5066/status
Verifique o status do backend. - Problemas de competênciaAlguns comandos do macOS exigem autorização (por exemplo, para acessar arquivos ou controlar o volume) e, na primeira vez em que são executados, é exibido um prompt de permissão.
- Suporte à comunidadeProblemas: os problemas podem ser enviados por meio do GitHub Issues com registros de erros para que os desenvolvedores possam solucioná-los.
cenário do aplicativo
- Assistência à acessibilidade
Os usuários com deficiência visual ou de mobilidade reduzida podem usar comandos de voz para operar o macOS, como "Open Mail" para iniciar rapidamente o aplicativo Mail.app, para maior facilidade de uso. - Eficiência do desenvolvedor
Os desenvolvedores podem executar rapidamente comandos como "Abra o Xcode e crie um novo projeto", economizando tempo em tarefas manuais e permitindo que eles se concentrem em suas tarefas de desenvolvimento. - automação de rotina
Os usuários podem realizar tarefas repetitivas, como "Organizar os arquivos da área de trabalho em pastas de arquivo todos os dias", por meio de comandos de texto, o que é adequado para um trabalho de escritório eficiente. - Educação e experimentação
Os entusiastas da programação podem estudar como o LlamaStack transforma a linguagem natural em código e aprender como a IA se integra aos sistemas.
QA
- E quanto ao reconhecimento de voz impreciso?
Verifique se o microfone está funcionando e se o ambiente está livre de ruídos. Se ainda assim falhar, mude para a entrada de texto ou verifique a configuração da API SpeechRecognition. - E se o backend não for iniciado?
Verifique se a dependência do Python está totalmente instalada e se o LlamaStack está sendo executado no servidorhttp://localhost:5001
. Verserver.py
Erro de posicionamento do registro. - Ele é compatível com sistemas não macOS?
Atualmente, apenas o macOS é compatível, pois o código depende da API do macOS e pode ser estendido para outras plataformas por meio da comunidade no futuro. - Como otimizar o desempenho?
Aumente a memória ou use uma CPU/GPU de alto desempenho e feche outros programas que estejam consumindo muitos recursos. Tente também uma configuração mais eficiente do LlamaStack. - Como faço para contribuir com o código?
Faça um fork do repositório e envie uma Pull Request. É recomendável ler a documentação do projeto e seguir as diretrizes de contribuição.