No description
- JavaScript 30.4%
- Go 29.9%
- CSS 27.5%
- HTML 12.2%
| img | ||
| server | ||
| static | ||
| templates | ||
| .env.example | ||
| .gitignore | ||
| go.mod | ||
| main.go | ||
| README.md | ||
AI WebUI
Interface web pour discuter avec des modèles d'IA multi-providers (OpenAI, Anthropic Claude, Google Gemini, NVIDIA, Ollama, OpenRouter).
Fonctionnalités
- Chat streaming (SSE) avec historique
- Multi-providers : OpenAI, Anthropic, Gemini, NVIDIA, Ollama (cloud + local), OpenRouter
- Gestion des conversations (création, suppression, recherche)
- Paramètres persistants (system prompt, clés API, URLs)
- Rendu Markdown avec coloration syntaxique
- Raccourcis clavier (Ctrl+N, Ctrl+Shift+N, Ctrl+L)
Prérequis
- Go 1.26.4+
Utilisation
git clone <repo>
cd ai-webui
go run .
Puis ouvrir http://127.0.0.1:8080
Configuration
Les clés API peuvent être définies via :
- Interface Settings (onglet Providers) — persisté dans
server-settings.json - Fichier
.env(recommandé) — voir.env.example
Variables d'environnement
AI_PROVIDER_OPENAI_KEY=sk-...
AI_PROVIDER_ANTHROPIC_KEY=sk-ant-...
AI_PROVIDER_GEMINI_KEY=...
AI_PROVIDER_NVIDIA_KEY=nvapi-...
AI_PROVIDER_OLLAMA_CLOUD_KEY=...
Structure
ai-webui/
├── main.go # Point d'entrée
├── .env.example # Exemple de configuration
├── server/
│ ├── app/
│ │ ├── chat.go # Chat streaming, parseurs SSE
│ │ ├── middleware.go # CORS, auth, helpers
│ │ ├── models_handler.go # Handler /api/models
│ │ ├── provider_util.go # Résolution de provider
│ │ └── server.go # Serveur HTTP, routes, graceful shutdown
│ ├── client/
│ │ └── client.go # Client HTTP
│ ├── conversation/
│ │ ├── handler.go # Handlers API conversations
│ │ └── store.go # Modèle et persistance conversations
│ ├── httputil/
│ │ └── httputil.go # Helpers HTTP (JSON, erreurs)
│ ├── providers/
│ │ ├── anthropic.go
│ │ ├── gemini.go
│ │ ├── nvidia.go
│ │ ├── ollama.go
│ │ ├── openai.go
│ │ ├── provider.go # Interface Provider + types
│ │ └── registry.go # Factory des providers
│ ├── routes/
│ │ └── routes.go # Constantes de routes API
│ └── settings/
│ ├── env.go # Variables d'environnement (.env)
│ └── settings.go # Configuration providers
├── static/
│ ├── css/chat.css
│ └── js/ (chat.js, conversations.js, providers.js, settings.js, shortcuts.js, utils.js)
├── templates/
│ └── chat.html
└── img/
└── pp.png
Providers supportés
| Provider | Type | URL par défaut |
|---|---|---|
| Ollama Cloud | ollama | https://ollama.com |
| Ollama Local | ollama | http://localhost:11434 |
| OpenRouter | openai | https://openrouter.ai/api/v1 |
| OpenAI | openai | https://api.openai.com/v1 |
| Anthropic | anthropic | https://api.anthropic.com |
| Gemini | gemini | https://generativelanguage.googleapis.com |
| NVIDIA | nvidia | https://integrate.api.nvidia.com |
Limites configurables
- Taille max des requêtes (bytes)
- Tokens max en réponse