Consultas Avanzadas en Pinecone: De Texto a Vector y Filtros
Clase 22 de 26 • Curso de Embeddings y Bases de Datos Vectoriales para NLP
Contenido del curso
- 9

Uso práctico de Sentence Transformers en procesamiento de textos
11:16 - 10

Análisis Semántico: Buscar Textos con Sentence Transformers
04:42 - 11

Manejo de Embeddings con OpenAI: API, Instalación y Datasets
10:28 - 12

Manejo y Visualización de Embeddings con OpenAI: Guía Práctica
07:24 - 13

Creación de un Motor de Búsqueda Semántico con Python
12:20 - 14

Transformación de Texto a Embeddings con Sentence Transformer
03:53 Quiz_Usando embeddings preentrenados
- 15

Qué es y cómo usar una base de datos vectorial
05:36 - 16

Gestión de Bases de Datos Vectoriales con ChromaDB: Instalación y Uso
11:45 - 17

Generación y manejo de embeddings en Chroma con Sentence Transformer
04:20 - 18

Consultas avanzadas y filtrado en bases de datos con Chroma
09:24 - 19
Cargar colección de Chroma previamente creada
00:40 - 20

Configuración y Uso de Pinecone: Desde la Instalación hasta la Inserción de Datos
05:08 - 21

Optimización de Ingesta de Datos en Pinecone: Procesos y Estrategias
07:48 - 22

Consultas Avanzadas en Pinecone: De Texto a Vector y Filtros
05:57 - 23

Carga de índices en Pinecone: Gestión eficiente en la nube
02:35 - 24

Carga de embeddings en Pinecone para búsqueda semántica
09:22 - 25

Creación de buscador semántico con Gradio y Sentence Transformer
16:22 Quiz_Bases de datos vectoriales
¿Cómo consultar el índice y realizar búsquedas en Pinecone?
Para trabajar eficazmente con el índice creado en Pinecone, es necesario saber cómo realizar consultas. En este contexto, el objetivo es utilizar un query para buscar películas con una trama de viajes en el tiempo. El dataset de películas sirve como base, y conviene recordar que no podemos enviar el texto directamente a Pinecone.
Primero debemos convertir el texto en un vector de embeddings con Sentence Transformer, una herramienta de código abierto que transforma el texto en un formato que Pinecone puede procesar:
query_vector = model.encode(query).tolist()
Una vez obtenido el query_vector, estemos listos para enviarlo a Pinecone y obtener resultados basados en la similitud del coseno, que es la métrica de distancia implementada al crear el índice.
¿Cómo enviar la consulta a Pinecone?
Procedamos a hacer la consulta utilizando el índice creado, especificando que queremos los mejores tres resultados y que incluyan metadatos:
responses = index.query(
vector=query_vector,
top_k=3,
include_metadata=True
)
Podemos visualizar las respuestas, que mostrarán las coincidencias más relevantes. Identificaremos trayectorias de personaje y elementos narrativos comunes.
¿Cómo aplicar filtros avanzados a las consultas?
En Pinecone, podemos utilizar filtros sobre la metada para refinar más las búsquedas. Los filtros son similares a consultas en las bases de datos, y utilizan sintaxis JSON para identificar las especificaciones. Por ejemplo, si deseamos filtrar por el género o el año, podemos hacerlo como sigue:
filter = {
"genre": {"$eq": "Documentary"},
"year": 2019
}
responses = index.query(
vector=query_vector,
top_k=3,
include_metadata=True,
filter=filter
)
En este ejemplo, únicamente se obtendrán resultadps donde el género es documental y el año es 2019.
Ejemplo de consulta con exclusión de géneros
Supongamos que queremos excluir ciertos géneros del resultado de nuestra búsqueda. Podemos utilizar operadores de filtrado como $ne (no igual) para indicar que no deseamos incluir películas de géneros como "Animation", "Adventure", o "Comedy":
filter = {
"genre": {"$ne": ["Animation", "Adventure", "Comedy"]}
}
responses = index.query(
vector=query_vector,
top_k=3,
include_metadata=True,
filter=filter
)
Este código excluye géneros específicos del resultado. Comparando con una consulta sin filtros, podemos ver cómo los resultados cambian, refinando las opciones disponibles.
¿Cómo utilizar operadores y tipos de datos correctamente?
Al manejar operadores como $gt (mayor que), es crucial identificar el tipo de dato correcto: numéricos sí, texto no. Por ejemplo, no podríamos evaluar si un texto es mayor a otro, ya que no es un valor medible cuantitativamente. Los operadores adecuados aseguran resultados lógicos y consistentes. Entiende qué operadores soporta cada tipo de dato que gestionas en tus consultas.
En resumen, familiarizarse con la transformación de datos a vectores, el uso de filtros, y la correcta aplicación de operadores asegurarán que tus consultas Pinecone sean eficientes y precisas. Experimenta con otras características del dataset, y explora diferentes campos que puedan brindar más descubrimiento y entendimiento de los datos. Con cada consulta, mejorarás tus habilidades, permitiéndote manejar datos complejos de manera más efectiva. ¡Continúa aprendiendo!