Aprendizagem pessoal com IA
e orientação prática
Beanbag Marscode1

Ferramenta de código aberto para controlar operações do macOS com voz e texto

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.

Ferramenta de código aberto para controlar operações do macOS com voz e texto-1


 

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 npmO 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 pipO 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 flaskeflask-corserequestsepyobjc responder cantando llama-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

  1. 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.
  2. 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.
  3. 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.
  4. 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

  1. 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.
  2. 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 servidor http://localhost:5001. Ver server.py Erro de posicionamento do registro.
  3. 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.
  4. 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.
  5. 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.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Ferramenta de código aberto para controlar operações do macOS com voz e texto
pt_BRPortuguês do Brasil