No description
  • JavaScript 30.4%
  • Go 29.9%
  • CSS 27.5%
  • HTML 12.2%
Find a file
2026-06-22 20:06:59 +02:00
img finalisation de l'ui + responsive 2026-06-18 22:35:48 +02:00
server load env keys + ajout du model+provider dans les settings 2026-06-22 19:50:25 +02:00
static bouton de copie + régénération de la réponse 2026-06-22 20:06:59 +02:00
templates modification de l'onglet provider dans les settings 2026-06-22 18:51:34 +02:00
.env.example auth + https + cors + split du css 2026-06-22 00:13:27 +02:00
.gitignore gestion des conversations 2026-06-19 22:57:34 +02:00
go.mod initial commit 2026-06-15 23:18:32 +02:00
main.go Refactoring du projet 2026-06-21 23:31:13 +02:00
README.md MAJ du README 2026-06-22 19:19:14 +02:00

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 :

  1. Interface Settings (onglet Providers) — persisté dans server-settings.json
  2. 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