# Using Make
make up
# Or using docker-compose directly
docker-compose up --build
The first startup will take several minutes as it downloads and initializes the CroissantLLM model (~2-3 GB).
Check the logs to monitor the initialization:
make logs
# or
docker-compose logs -f backend
Wait until you see “RAG system initialized successfully” in the backend logs.
You can add documents to enhance the chatbot’s knowledge:
Since CroissantLLM is optimized for French:
When the chatbot responds using RAG, you’ll see a “Sources” dropdown showing the document chunks used to generate the response.
curl -X POST http://localhost:8000/chat \
-H "Content-Type: application/json" \
-d '{
"message": "Parle-moi de Paris",
"conversation_history": []
}'
curl -X POST http://localhost:8000/documents \
-H "Content-Type: application/json" \
-d '{
"content": "Your document content here",
"metadata": {"title": "Example"}
}'
curl http://localhost:8000/health
make logs
make down
make clean
make init-data
Edit backend/.env:
# Model settings
MODEL_NAME=croissantllm/CroissantLLMChat-v0.1
EMBEDDING_MODEL=sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2
# RAG settings
CHUNK_SIZE=512
CHUNK_OVERLAP=50
TOP_K=3
Edit frontend/.env:
VITE_API_URL=http://localhost:8000
The first time you run the application, it needs to download the CroissantLLM model. This can take 10-15 minutes depending on your internet connection.
CroissantLLM requires at least 8GB of RAM. If you’re running out of memory:
If ports 5173 or 8000 are already in use, edit docker-compose.yml:
services:
backend:
ports:
- "8001:8000" # Changed from 8000:8000
frontend:
ports:
- "5174:5173" # Changed from 5173:5173
Make sure both containers are running:
docker-compose ps
Check backend logs:
docker-compose logs backend
cd backend
poetry install
poetry run uvicorn app.main:app --reload
cd frontend
npm install
npm run dev
# Backend
cd backend
poetry run pytest
# Frontend
cd frontend
npm test
For production deployment:
backend/app/main.py