Sviluppa e distribuisci una ricerca semantica con FastAPI e pgvector
Sviluppa un motore di ricerca per una base di conoscenza personale, in cui gli utenti incollano paragrafi ed eseguono ricerche per significato, oltre che per parole esatte.
Lo stack
- Python con FastAPI
- Postgres con
pgvectorcome estensione - API Gemini per gli embedding
- Ambiente di esecuzione Adios con segreti e collegamento al database gestito
Perché questa architettura si adatta alla ricerca semantica
I backend IA spesso importano librerie Python pesanti e inizializzano client API all’avvio. Su Adios, l’app FastAPI viene eseguita come un normale servizio persistente, così il backend può restare pronto senza ricostruire lo stato a ogni richiesta.
1. Sviluppa l’API
Chiedi all’agente 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. Aggiungi 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
Crea una risorsa Postgres pgvector chiamata vector-db, oppure imposta DATABASE_URL manualmente se ne hai già uno.
3. Distribuisci
adios secrets set GEMINI_API_KEY
adios up
La tua app riceve una route Adios generata con TLS, log di esecuzione e dettagli di connessione al database gestito, senza configurare un Dockerfile o una console cloud.
Consulta percorso di distribuzione FastAPI, il controlli di distribuzione pgvector, e lo specifico modello pgvector prima di adattare questo esempio a una raccolta di documenti in produzione.