DEV-AI
← Retour au blog

Créer son propre ChatGPT local avec FastAPI et un modèle open-source

Publié le 2 mai 2025 - Par l'équipe DEV-AI

Illustration ChatGPT avec FastAPI
Déploiement local de ChatGPT avec FastAPI

De plus en plus d'organisations cherchent à intégrer un assistant IA local, indépendant des services cloud comme OpenAI. Dans cet article, nous allons vous montrer comment créer un chatbot IA en local, en utilisant un modèle open-source tel que LLaMA 3, Phi-2 ou Mistral, et le servir via une API FastAPI moderne.

Pourquoi héberger son propre chatbot IA ?

Étape 1 - Choisir un modèle local open-source

Parmi les modèles populaires :

Nous utiliserons ici transformers de Hugging Face et un modèle GGUF pour performance optimale.

Étape 2 - Installation des dépendances

pip install fastapi uvicorn python-multipart
pip install llama-cpp-python transformers huggingface_hub

Étape 3 - Charger le modèle avec llama-cpp

from llama_cpp import Llama

llm = Llama(model_path="./models/phi-2.gguf", n_ctx=2048, n_threads=4)

response = llm("Qui est Alan Turing ?", max_tokens=300)
print(response["choices"][0]["text"])

Étape 4 - Créer une API FastAPI pour interagir avec le modèle

from fastapi import FastAPI, Request
from pydantic import BaseModel
from llama_cpp import Llama

app = FastAPI()
llm = Llama(model_path="./models/phi-2.gguf", n_ctx=2048, n_threads=4)

class Query(BaseModel):
    question: str

@app.post("/ask")
async def ask(query: Query):
    output = llm(query.question, max_tokens=300)
    return {"response": output["choices"][0]["text"].strip() }

Étape 5 - Tester avec curl ou Postman

curl -X POST http://localhost:8000/ask \
     -H "Content-Type: application/json" \
     -d '{"question": "Quelle est la capitale de l'Italie ?"}'

Bonus - Ajouter une interface web simple

Vous pouvez créer un petit formulaire HTML/JS pour interroger votre API via fetch().

<form onsubmit="ask(); return false">
  <input id="question" type="text">
  <button type="submit">Demander</button>
</form>
<pre id="response"></pre>

<script>
function ask() {
  fetch('/ask', {
    method: 'POST',
    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify({question: document.getElementById('question').value})
  })
  .then(res => res.json())
  .then(data => document.getElementById('response').textContent = data.response);
}
</script>

Conclusion

Vous venez de créer votre propre ChatGPT local, avec une API FastAPI et un modèle open-source. Cet assistant IA peut être déployé dans des outils internes, sur un intranet ou même embarqué dans une app mobile. Pour aller plus loin, vous pouvez :

Retrouvez le code complet sur notre GitHub et partagez votre version personnalisée avec la communauté !

← Retour au blog