Skip to content

actus7/modelhub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

119 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

English

🚀 ModelHub

ModelHub Logo

Hub unificado para múltiplos modelos de IA com API compatível OpenAI

CI License: MIT Node.js Version TypeScript Next.js PRs Welcome GitHub Stars

FuncionalidadesDemoInstalaçãoDocumentaçãoContribuirLicença


📋 Sobre

ModelHub é uma plataforma open-source que unifica o acesso a múltiplos provedores de IA (OpenAI, Anthropic, Google, Groq, Mistral e outros) através de uma única API compatível com OpenAI. Inclui interface de chat integrada, gerenciamento seguro de credenciais e sistema de autenticação robusto.

✨ Funcionalidades

  • 🔌 API Gateway Unificada - Interface compatível com OpenAI para múltiplos provedores
  • 💬 Chat Integrado - Interface web moderna para interagir com modelos de IA
  • 🔐 Autenticação Segura - Sistema completo com Neon Auth
  • 🔑 Gerenciamento de Credenciais - Armazenamento criptografado de API keys
  • 📊 Dashboard de Uso - Monitore consumo e custos em tempo real
  • 📎 Suporte a Anexos - Upload de imagens, PDFs e documentos
  • 🌐 Multi-tenant - Suporte para múltiplos usuários e organizações
  • 🚀 Deploy Fácil - Pronto para Vercel, Docker e outras plataformas
  • 📝 TypeScript - Totalmente tipado para melhor DX
  • 🧪 Testado - Cobertura de testes com Vitest

🎯 Provedores Suportados

  • OpenAI (GPT-4, GPT-3.5, etc.)
  • Anthropic (Claude 3.5, Claude 3, etc.)
  • Google AI (Gemini Pro, Gemini Flash)
  • Groq (Llama, Mixtral)
  • Mistral AI
  • Cohere
  • HuggingFace
  • OpenRouter
  • Vercel AI Gateway

🎬 Demo

Demo ao vivo: em breve

Screenshots

Chat Dashboard Configuracoes
Chat Dashboard Settings

Para gerar screenshots reais, execute pnpm dev e capture as telas da aplicacao.

🚀 Instalação

Pré-requisitos

  • Node.js >= 22.0.0
  • pnpm >= 10.0.0
  • Conta no Neon (PostgreSQL serverless)
  • API keys dos provedores que deseja usar

Instalação Rápida

# Clone o repositório
git clone https://github.com/Geeks-Zone/modelhub.git
cd modelhub

# Instale as dependências
pnpm install

# Configure as variáveis de ambiente
cp .env.example .env
# Edite .env com suas credenciais

# Execute as migrações do banco de dados
pnpm prisma:migrate

# Inicie o servidor de desenvolvimento
pnpm dev

Acesse http://localhost:3000

🐳 Docker

# Build da imagem
docker build -t modelhub .

# Execute o container
docker run -p 3000:3000 --env-file .env modelhub

☁️ Deploy na Vercel

Deploy with Vercel

  1. Clique no botão acima
  2. Configure as variáveis de ambiente
  3. Deploy!

📖 Documentação

Configuração

Variáveis de Ambiente

Veja .env.example para todas as opções disponíveis.

Obrigatórias:

DATABASE_URL="postgresql://..."
DIRECT_URL="postgresql://..."
NEON_AUTH_BASE_URL="https://..."
NEON_AUTH_COOKIE_SECRET="..."
ENCRYPTION_KEY="..."

Opcionais:

OPENAI_API_KEY="sk-..."
ANTHROPIC_API_KEY="sk-ant-..."
GOOGLE_AI_STUDIO_API_KEY="..."

Banco de Dados

O projeto usa Prisma com PostgreSQL (Neon):

# Gerar cliente Prisma
pnpm prisma:generate

# Executar migrações
pnpm prisma:migrate

# Push schema (desenvolvimento)
pnpm prisma:push

Uso da API

Endpoint de Chat

curl -X POST http://localhost:3000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "openrouter/openai/gpt-oss-20b:free",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

Listar Modelos

curl http://localhost:3000/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

Desenvolvimento

# Desenvolvimento
pnpm dev

# Build
pnpm build

# Testes
pnpm test

# Lint
pnpm lint

# Type check
pnpm typecheck

🏗️ Arquitetura

modelhub/
├── app/                    # Next.js App Router
│   ├── (app)/             # Rotas autenticadas
│   ├── api/               # API routes
│   └── auth/              # Autenticação
├── components/            # Componentes React
│   ├── chat/             # Interface de chat
│   ├── dashboard/        # Dashboard
│   └── ui/               # Componentes UI (shadcn)
├── lib/                   # Utilitários e lógica
│   ├── auth/             # Autenticação
│   └── chat-stream.ts    # Streaming de chat
├── prisma/               # Schema e migrações
├── server/               # Lógica do servidor (Hono)
└── scripts/              # Scripts de build e deploy

🤝 Contribuindo

Contribuições são muito bem-vindas! Veja CONTRIBUTING.md para detalhes.

Como Contribuir

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

Código de Conduta

Este projeto adota o Contributor Covenant. Ao participar, você concorda em seguir seus termos.

🐛 Reportar Bugs

Encontrou um bug? Por favor, abra uma issue com:

  • Descrição clara do problema
  • Passos para reproduzir
  • Comportamento esperado vs atual
  • Screenshots (se aplicável)
  • Ambiente (OS, Node version, etc.)

🔒 Segurança

Para reportar vulnerabilidades de segurança, veja SECURITY.md.

📝 Licença

Este projeto está licenciado sob a Licença MIT - veja LICENSE para detalhes.

🙏 Agradecimentos

📞 Suporte

🗺️ Roadmap

  • Suporte a mais provedores (Perplexity, Together AI)
  • Sistema de plugins
  • Análise de custos avançada
  • Suporte a embeddings
  • API de fine-tuning
  • Mobile app
  • Integração com Langchain/LlamaIndex

⬆ Voltar ao topo

Feito com ❤️ pela comunidade ModelHub

About

Hub unificado para múltiplos modelos de IA com API compatível OpenAI, chat integrado e gerenciamento de credenciais

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors