Créer et déployer une recherche sémantique avec FastAPI et pgvector
Crée un moteur de recherche dans une base de connaissances personnelle, où les utilisateurs collent des paragraphes et recherchent par le sens plutôt que seulement par des mots exacts.
La stack
- Python avec FastAPI
- Postgres avec
pgvectorpour l’extension - API Gemini pour les embeddings
- Environnement d’exécution Adios avec secrets et connexions aux bases de données gérées
Pourquoi cette architecture convient à la recherche sémantique
Les backends IA importent souvent de lourdes bibliothèques Python et initialisent des clients API au démarrage. Sur Adios, votre application FastAPI fonctionne comme un service persistant ordinaire : le backend peut rester initialisé au lieu de recréer son état à chaque requête.
1. Créer l’API
Demandez à l’agent IA Adios :
Build a FastAPI semantic search API. Add endpoints to insert documents and
search them using embeddings. Use Gemini for embeddings, Postgres pgvector for
similarity search, and /healthz for health checks.
2. Ajouter adios.yaml
name: semantic-search
region: de
replicas: 1
build_cmd: python -m pip install -r requirements.txt
start_cmd: python -m uvicorn app.main:app --host 0.0.0.0 --port $PORT
runtime:
name: python@3.13
port: 8000
health_path: /healthz
memory_mb: 1024
env:
DATABASE_URL: secret://DATABASE_URL
GEMINI_API_KEY: secret://GEMINI_API_KEY
requires:
- vector-db
Créez une ressource Postgres pgvector nommée vector-db, ou définissez DATABASE_URL manuellement si vous en avez déjà une.
3. Déployer
adios secrets set GEMINI_API_KEY
adios up
Votre application reçoit une route Adios générée avec TLS, des journaux d’exécution et les paramètres de connexion à la base de données gérée, sans Dockerfile ni configuration de console cloud.
Consultez la Parcours de déploiement FastAPI, le Vérifications de déploiement pgvector, et le Modèle pgvector avant d'adapter cet exemple à un corpus de documents de production.