Skip to content

avilaops/middas-copilot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Midda Copilot

O que faz

Midda Copilot é um servidor API REST que expõe funcionalidades de codificação assistidas por IA. Utiliza a SDK do Groq para processar solicitações de código e retornar análises, correções, refatorações e testes gerados automaticamente.

Funcionalidades principais:

  • 💬 Chat - Conversa em tempo real com streaming de respostas
  • 📖 Explain - Explica código complexo
  • 🔧 Fix - Identifica e corrige erros em código
  • 🎨 Refactor - Melhora qualidade e legibilidade do código
  • Generate Tests - Cria testes unitários automaticamente

Para quem faz

  • Desenvolvedores que precisam de assistência em codificação
  • Equipes de desenvolvimento que usam Windsurf ou clientes HTTP
  • Integrações que precisam de um backend de IA para processamento de código

Como executa

O servidor roda como um serviço Node.js/Express que:

  1. Recebe requisições HTTP POST em rotas específicas (/chat, /explain, /fix, /refactor, /generate-tests)
  2. Envia a solicitação para a API Groq usando a chave de API fornecida
  3. Processa a resposta da IA e a retorna ao cliente

Streaming de respostas:

  • Endpoint /chat suporta Server-Sent Events (SSE) para streaming em tempo real
  • Demais endpoints retornam respostas JSON padrão

Do que precisa para executar

Requisitos de Sistema

  • Node.js ≥ 16.x
  • npm ou yarn
  • Conexão com internet (para acessar API Groq)

Dependências do Projeto

  • express - Framework web
  • cors - Suporte a Cross-Origin Resource Sharing
  • body-parser - Parsing de corpos de requisição
  • groq-sdk - SDK oficial do Groq

Chaves de APIs necessárias

Groq API Key

O que é: Token de autenticação para acessar a API Groq

Como obter:

  1. Acesse https://console.groq.com
  2. Faça login ou crie uma conta
  3. Navegue até "API Keys" no dashboard
  4. Clique em "Create New Secret Key"
  5. Copie a chave gerada (formato: gsk_...)

Modelos disponíveis:

  • llama-3.3-70b-versatile (recomendado)
  • llama-3.1-405b-reasoning
  • mixtral-8x7b-32768
  • gemma-2-9b-it

Procedimento de instalação

1️⃣ Clonar o repositório

git clone <seu-repo>
cd midda-copilot

2️⃣ Instalar dependências

npm install
# ou
yarn install

3️⃣ Configurar variáveis de ambiente

# Criar arquivo .env
cp .env.example .env  # se existir, ou criar manualmente

# Editar .env e adicionar:
GROQ_API_KEY=gsk_sua_chave_aqui
PORT=3001  # opcional, padrão é 3001

4️⃣ Iniciar o servidor

npm start
# ou modo desenvolvimento com nodemon
npm run dev

Saída esperada:

🤖 Midda Copilot running on port 3001
📡 API available at http://localhost:3001

Uso da API

Endpoint: /chat (POST)

Conversa com streaming de respostas em tempo real.

Request:

curl -X POST http://localhost:3001/chat \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {"role": "user", "content": "Oi, como você está?"}
    ],
    "model": "llama-3.3-70b-versatile",
    "temperature": 0.7
  }'

Response (SSE):

data: {"content":"Olá! Estou funcionando bem."}

data: {"content":" Como posso ajudar?"}

data: [DONE]

Endpoint: /explain (POST)

Explica código fornecido.

Request:

curl -X POST http://localhost:3001/explain \
  -H "Content-Type: application/json" \
  -d '{
    "code": "const sum = (a, b) => a + b;"
  }'

Response:

{
  "explanation": "Este é uma função seta que soma dois números..."
}

Endpoint: /fix (POST)

Corrige erros em código.

Request:

curl -X POST http://localhost:3001/fix \
  -H "Content-Type: application/json" \
  -d '{
    "code": "const x = 10\nconst y = x * 2",
    "error": "Missing semicolon"
  }'

Response:

{
  "fixedCode": "const x = 10;\nconst y = x * 2;"
}

Endpoint: /refactor (POST)

Melhora a qualidade do código.

Request:

curl -X POST http://localhost:3001/refactor \
  -H "Content-Type: application/json" \
  -d '{
    "code": "var x = 1; var y = 2; console.log(x + y);"
  }'

Response:

{
  "refactoredCode": "const sum = (a, b) => a + b;\nconsole.log(sum(1, 2));"
}

Endpoint: /generate-tests (POST)

Gera testes automaticamente.

Request:

curl -X POST http://localhost:3001/generate-tests \
  -H "Content-Type: application/json" \
  -d '{
    "code": "const add = (a, b) => a + b;"
  }'

Response:

{
  "tests": "describe('add', () => {\n  test('should sum two numbers', () => {\n    expect(add(1, 2)).toBe(3);\n  });\n});"
}

Integração com Windsurf

Veja ../midda-windsurf-extension para usar Midda Copilot como backend da extensão VS Code/Windsurf.


Variáveis de Ambiente

Variável Descrição Padrão Obrigatório
GROQ_API_KEY Chave de API do Groq - ✅ Sim
PORT Porta do servidor 3001 ❌ Não
NODE_ENV Ambiente (development/production) development ❌ Não

Troubleshooting

❌ Erro: GROQ_API_KEY is required

Solução: Verifique se a chave está definida em .env e o arquivo está sendo carregado corretamente.

❌ Erro: 503 Service Unavailable

Solução: A API Groq pode estar temporariamente indisponível. Tente novamente em alguns segundos.

❌ Respostas lentas

Solução: Modelos maiores (como llama-3.3-70b-versatile) podem ser mais lentos. Considere usar modelos menores como gemma-2-9b-it.


Estrutura do Projeto

midda-copilot/
├── index.js              # Servidor principal
├── package.json          # Dependências e scripts
├── .env.example          # Modelo de variáveis de ambiente
├── .env                  # Variáveis de ambiente (local, não commitado)
└── README.md             # Este arquivo

Roadmap

  • Autenticação de requisições
  • Rate limiting
  • Logging avançado
  • Suporte a múltiplos modelos
  • Cache de respostas
  • Métricas e analytics

Contribuindo

  1. Fork o repositório
  2. Crie uma branch (git checkout -b feature/minha-feature)
  3. Commit suas mudanças (git commit -m 'Add nova feature')
  4. Push para a branch (git push origin feature/minha-feature)
  5. Abra um Pull Request

Licença

Proprietário - Midda Inc.


Suporte

Para dúvidas ou problemas:

  • 📧 Email: support@midda.com
  • 🐛 Issues: GitHub Issues
  • 💬 Discord: [Link do servidor]

Última atualização: Janeiro 2025

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors