Bases de datos vectoriales para incrustaciones con Pinecone
James Chapman
Curriculum Manager, DataCamp

from openai import OpenAI from pinecone import Pinecone, ServerlessSpec client = OpenAI(api_key="OPENAI_API_KEY") pc = Pinecone(api_key="PINECONE_API_KEY")pc.create_index( name="semantic-search-datacamp",dimension=1536,spec=ServerlessSpec(cloud='aws', region='us-east-1') )index = pc.Index("semantic-search-datacamp")
import pandas as pd
import numpy as np
from uuid import uuid4
df = pd.read_csv('squad_dataset.csv')
| id | text | title |
|----|---------------------------------------------------|-------------------|
| 1 | Arquitectónicamente, la escuela tiene un carác... | Universidad de... |
| 2 | La Facultad de Ingeniería se estableció en... | Universidad de... |
| 3 | Tras la disolución de Destiny's Child en... | Beyoncé |
| 4 | Arquitectónicamente, la escuela tiene un carác... | Universidad de... |
batch_limit = 100for batch in np.array_split(df, len(df) / batch_limit):metadatas = [{"text_id": row['id'], "text": row['text'], "title": row['title']} for _, row in batch.iterrows()]texts = batch['text'].tolist()ids = [str(uuid4()) for _ in range(len(texts))]response = client.embeddings.create(input=texts, model="text-embedding-3-small") embeds = [np.array(x.embedding) for x in response.data]index.upsert(vectors=zip(ids, embeds, metadatas), namespace="squad_dataset")
index.describe_index_stats()
{'dimension': 1536, 'index_fullness': 0.02,
'namespaces': {'squad_dataset': {'vector_count': 2000}},
'total_vector_count': 2000}
query = "To whom did the Virgin Mary allegedly appear in 1858 in Lourdes France?"query_response = client.embeddings.create( input=query, model="text-embedding-3-small") query_emb = query_response.data[0].embeddingretrieved_docs = index.query(vector=query_emb, top_k=3, namespace=namespace, include_metadata=True)
for result in retrieved_docs['matches']:
print(f"{round(result['score'], 2)}: {result['metadata']['text']}")
0.41: Arquitectónicamente, la escuela tiene carácter católico. En lo alto de la
cúpula dorada del Edificio Principal hay una estatua de la Virgen María...
0.3: Por su identidad católica, en el campus hay varios edificios religiosos.
El edificio Old College se ha convertido en uno de los dos seminarios...
0.29: Dentro del escudete blanco, las cinco quinas (pequeños escudos azules)
con sus cinco bezantes blancos que representan las cinco llagas...
Bases de datos vectoriales para incrustaciones con Pinecone