Crear y desplegar búsqueda semántica con FastAPI y pgvector
Crea un buscador de base de conocimiento personal en el que los usuarios peguen párrafos y busquen por significado, no solo por palabras exactas.
El Stack
- Python con FastAPI
- Postgres con el
pgvectorextensión - API de Gemini para embeddings
- Entorno de ejecución de Adios con secretos y conexión a bases de datos gestionadas
Por qué esta arquitectura encaja con la búsqueda semántica
Los backends de IA suelen importar bibliotecas Python más pesadas e inicializar clientes de API al arrancar. En Adios, tu app FastAPI se ejecuta como un servicio persistente normal, por lo que tu backend puede mantenerse preparado en lugar de reconstruir el estado en cada solicitud.
1. Crear la API
Pídele al agente de IA de 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. Añadir 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 un recurso Postgres pgvector llamado vector-db, o establece DATABASE_URL manualmente si ya tienes uno.
3. Desplegar
adios secrets set GEMINI_API_KEY
adios up
Tu app obtiene una ruta generada de Adios con TLS, registros de ejecución y detalles de conexión a bases de datos gestionadas sin configurar un Dockerfile ni una consola de nube.
Revisa la Ruta de despliegue de FastAPI, el Comprobaciones de despliegue de pgvector, y el exacto plantilla de pgvector antes de adaptar este ejemplo a un corpus de documentos de producción.