Actualizar y eliminar vectores
Mantenga el índice sincronizado con la fuente: haga upsert cuando cambie un documento, elimínelo cuando se retire y gestione los nuevos embeddings.
Actualizar y eliminar vectores es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
El índice no está congelado
Los documentos reales cambian. El índice debe mantenerse actualizado:
- Se añaden documentos nuevos
- Se editan documentos existentes
- Se eliminan o archivan documentos antiguos
Upsert (inserción o actualización)
La mayoría de las bases de datos vectoriales admiten upsert: escriba el vector con un ID determinado y sustituirá al anterior si existe:
index.upsert([
('doc-42', new_vector, {'source': 'a.pdf', 'updated_at': now})
])
# If doc-42 already exists, it is overwritten.IDs deterministas
Si utiliza IDs basados en el hash del contenido, la «actualización» ocurre automáticamente: mismo contenido = mismo ID = misma posición.
Si utiliza UUID, debe realizar un seguimiento de qué UUID corresponde a cada documento de origen.
Detección de cambios
Para comparar un corpus, almacene un hash de cada fragmento:
old_chunks = load_existing_chunks(source)
new_chunks = chunk_doc(source)
old_hashes = {c.id for c in old_chunks}
new_hashes = {c.id for c in new_chunks}
to_delete = old_hashes - new_hashes
to_add = new_hashes - old_hashes
# Skip unchanged — saves re-embeddingEliminar mediante filtro
La mayoría de las bases de datos admiten la eliminación mediante filtros, lo que resulta útil para «eliminar todo lo procedente de este origen»:
index.delete(filter={'source': '/old/file.pdf'})Delete by ID
index.delete(ids=['doc-1', 'doc-2', 'doc-3'])Eliminación lógica
A veces querrá «ocultar» algo sin eliminarlo: establezca una marca deleted_at y exclúyalo en el momento de la consulta:
index.upsert([('doc-42', vec, {'deleted_at': now})])
# At query time:
results = index.query(vector=query_vec, top_k=5, filter={'deleted_at': {'$exists': False}})Compactación
Las eliminaciones frecuentes dejan el índice disperso. Reconstrúyalo periódicamente para mejorar el rendimiento; la mayoría de las bases de datos lo hacen automáticamente. Consulte la documentación de su proveedor.
Regeneración de embeddings al cambiar el modelo
Si actualiza el modelo de embeddings, todos los vectores existentes dejan de ser compatibles. Estrategias:
- Escribir simultáneamente en las colecciones antigua y nueva durante la migración
- Cambiar el tráfico de lectura a la colección nueva cuando termine
- Eliminar la colección antigua
Pipeline incremental
Un pipeline de ingesta robusto:
def sync_doc(source_path):
new_chunks = chunk_and_hash(load(source_path))
existing_ids = index.fetch_ids_by_source(source_path)
new_ids = {c.id for c in new_chunks}
to_add = [c for c in new_chunks if c.id not in existing_ids]
to_remove = existing_ids - new_ids
if to_remove:
index.delete(ids=list(to_remove))
if to_add:
index.upsert([(c.id, embed(c.text), c.metadata) for c in to_add])Auditoría de la divergencia
Verifique periódicamente que el índice coincide con la fuente de verdad. Cuente las filas por origen tanto en su base de datos como en el índice vectorial y genere una alerta si no coinciden.
Actualizaciones activadas por webhooks
Para sistemas de gestión documental (Notion, Confluence, GDrive), utilice webhooks para activar una sincronización incremental cuando haya cambios; es mucho más barato que volver a rastrearlo todo.
Tombstones para eliminaciones distribuidas
En los índices distribuidos, «eliminar» suele escribir una marca de tombstone. Hasta que se ejecuta la compactación, las consultas aún pueden ver esa marca; mantenga sus filtros activos.
Actualizaciones idempotentes
¿Cuál es la forma más sencilla de hacer que la ingesta pueda ejecutarse de nuevo sin riesgos?
Resumen
Planifique las actualizaciones desde el primer día: IDs basados en hashes, ingesta basada en diferencias y una forma de cambiar los modelos de embeddings sin tiempo de inactividad.
Aprende AI Agents con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 60
- Lecciones
- 239
Preguntas frecuentes
¿La lección «Actualizar y eliminar vectores» es gratis?
Sí — el texto completo de «Actualizar y eliminar vectores» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.
¿Qué aprenderé en «Actualizar y eliminar vectores»?
Mantenga el índice sincronizado con la fuente: haga upsert cuando cambie un documento, elimínelo cuando se retire y gestione los nuevos embeddings. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar AI Agents?
No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Actualizar y eliminar vectores»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de AI Agents?
Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Pinecone, Weaviate y Qdrant: comparación
- Filtrado de metadatos para búsqueda híbrida
- Actualizar y eliminar vectores
- Elegir métricas de distancia (coseno, L2 y producto escalar)