Pinecone es una base de datos vectorial que se destaca por su versatilidad, facilidad de escalado y uso intuitivo en la nube. Aunque no es de código abierto, ofrece una versión gratuita que es lo suficientemente generosa como para ser utilizada en proyectos de producción. Pinecone es ideal para quienes necesitan gestionar índices vectoriales con facilidad, permitiendo optimizar la búsqueda y el manejo de datos.
¿Cómo se instala Pinecone?
Para comenzar a utilizar Pinecone, es necesario registrarse en su página web y obtener una API key. Esto se hace visitando la landing page de Pinecone y siguiendo los pasos indicados para obtener la API key. Después de esto, puedes trabajar con Pinecone en un entorno Python instalando su cliente con el siguiente comando en la terminal:
pip install pinecone-client
Una vez instalado, es necesario importar las librerías necesarias en tu código, que en este caso son Pinecone y get-paths. La implementación de get-paths es útil para proteger la información sensible, como la API key, de ser expuesta.
¿Cómo se configura la conexión?
Para configurar la conexión a Pinecone, debemos utilizar la API key y el entorno específico que estemos utilizando. Aquí, se utiliza la versión gratuita. Importe las librerías y ejecute el siguiente código para configurar la API:
# Supongamos que pinecone_client y get_paths están correctamente importadosapi_key = get_paths('PINECONE_API_KEY')environment ='free'# Entorno gratuito# Instanciar el cliente de Pineconepinecone_client.init(api_key=api_key, environment=environment)
¿Cómo crear un índice en Pinecone?
Crear un índice en Pinecone requiere conocer la dimensión de los embeddings con los que trabajarás. Este número se obtiene de la longitud de los embeddings en tu dataset o DataFrame. Aquí hay un ejemplo de cómo se obtiene y se utiliza esa información:
Paso para obtener dimensiones de los embeddings
Supón que tienes un DataFrame llamado dataframe con un campo embeddings, así es como obtienes la dimensión:
Este comando asegura que tu índice se cree con el nombre dado, la dimensión correcta de los embeddings y usando la métrica de distancia coseno.
¿Cómo gestionar y verificar el índice?
Después de crear el índice, es posible gestionarlo y verificarlo a través del panel de Pinecone. El índice contendrá toda la configuración especificada, como el nombre, la métrica utilizada y la dimensión de los embeddings. La revisión y carga de datos puede realizarse directamente desde código, optimizando la eficiencia y facilidad de uso.
¿Cómo cargar datos a Pinecone?
Con el índice previamente creado, el siguiente paso es cargar los datos. Esta operación puede llevarse a cabo a través de código Python, refiriéndose al índice creado:
# Seleccionar el índice creadoindex = pinecone_client.index('MOVIES_EMBEDDINGS')# Asegúrate de usar mayúsculas para el nombre# Ahora, puedes continuar con la carga de datos o ejecución de consultas en el índice
Con esta configuración, tienes todas las herramientas necesarias para gestionar tus datos en Pinecone, optimizando la búsqueda y utilización de información vectorial. ¡Atrévete a explorar más funcionalidades y lleva tus proyectos al siguiente nivel con Pinecone!
Para los que tengan problemas con el init, o no encuentren el eviroment, usen el siguiente codigo:
import os
from pinecone import Pinecone, ServerlessSpec
pc = Pinecone( api_key=pinecone_api
if 'my-index' not in pc.list_indexes().names(): pc.create_index( name='my-index', dimension=1536, metric='euclidean', spec=ServerlessSpec( cloud='aws', region='us-east-1' ) )
Muy ml experiencia desactualizad el curso.Muy mal Platzi
Hola vengo actualizar la forma en la que se crea el indece a pinecone.
Cuando creo en Pinecone m cuenta gratuita no me genera ppara el proyecto en "Environment" como aparee en la clase sino que aparece "gcp-starter " y con ese environment no he podido avanzar. Me aparece un mensaje que indica: "Check that the correct environment is specified"
Debes colocar ese environment que te sale a ti. Si te aparece como gcp-starter, debes poner ese, ya que al profe le aparece uno diferente.
Resumen
■■■■■■
Pinecone , es una base de datos vectorial no gratuita que tiene versión gratuita muy poderosa, incluso en podría usarse en producción dado a su generosidad, actualmente "Limited to one index and one project. No credit card required." en la capa de free tier, pero no irrumpe el uso en ninguna manera.
Precisaremos instalar y configurar:
1. Access Keys con la API key
2. Inicializar el ambiente
3. Crear el índice, junto con las dimensiones del array y con las métricas que se usarán para la búsqueda por similitud vectorial.
________
En Pinecone tendremos dos tipos de operaciones:
- Vectoriales: Aquí van todas las operaciones de consulta, creación, actualización, borrado.
- Operaciones de índice: Son operaciones asociadas a listar colecciones, describirlas, configurar, borrar, crear.
Una buena práctica después de crear el índice es usar upsert en lotes para reducir llamadas, por ejemplo convertir el DataFrame de embeddings en una lista de tuplas id y vector y pasarla a index.upsert vectors lista
Hola vengo actualizar la forma de crear el indice desde pinecone.
No me aparece en Pinecone en el menu apy keys, la columna: Environment. ¿Alguien sabe qué dato copio para completar el valor del parámetro enviroment, de la funciíon pinecone.init()?
Para los que tienen problemas con el método init, o no les aparece el eviroment, tienen que usar el siguiente codigo:
import osfrom pinecone
mport Pinecone, ServerlessSpec
pc = Pinecone( api_key=pinecone_api #os.environ.get() este edstaba antes )
# Now do stuffif 'my-index' not in pc.list_indexes().names(): pc.create_index( name='my-index', dimension=1536, metric='euclidean', spec=ServerlessSpec( cloud='aws', region='us-east-1' ) )