pinecone
zechenzhangAGI/AI-research-SKILLs
Base de datos vectorial gestionada para aplicaciones de IA en producción. Totalmente gestionada, con escalado automático, búsqueda híbrida (densa + dispersa), filtrado por metadatos y espacios de nombres. Baja latencia (
...Expandir todoAcerca de pinecone
Pinecone es una base de datos vectorial sin servidor y totalmente gestionada, diseñada para aplicaciones de IA en producción. Resuelve el problema del escalado de las bases de datos vectoriales al tiempo que gestiona las complejidades de la gestión de la infraestructura. Pinecone ofrece una plataforma en la que los desarrolladores pueden centrarse en crear aplicaciones de IA sin preocuparse por la arquitectura subyacente de la base de datos, como el aprovisionamiento, el escalado o el mantenimiento. Sus capacidades de baja latencia (<100 ms p95) la hacen ideal para su uso en producción en áreas como los sistemas de recomendación, la búsqueda semántica y las aplicaciones de generación aumentada por recuperación (RAG).
Entre las características clave de Pinecone se incluyen la búsqueda híbrida que combina vectores densos y dispersos, el filtrado de metadatos y la compatibilidad con espacios de nombres. La plataforma está diseñada para ofrecer alta disponibilidad y fiabilidad, con un SLA que garantiza un tiempo de actividad del 99,9 %. Pinecone se escala automáticamente a miles de millones de vectores sin pérdida de rendimiento, lo que la hace adecuada para sistemas de producción a gran escala. Su integración con proveedores de nube como AWS, GCP y Azure ofrece flexibilidad en la implementación, y puede funcionar a la perfección en una configuración sin servidor o basada en pods para adaptarse a las necesidades de rendimiento.
Pinecone Está dirigido a organizaciones y desarrolladores que trabajan en aplicaciones basadas en IA y que necesitan una búsqueda vectorial eficiente y escalable. Entre los casos de uso ideales se incluyen los sistemas RAG, los motores de recomendación y la búsqueda semántica a gran escala, especialmente en aquellos casos en los que la latencia y la gestión de la infraestructura son fundamentales. Gracias a su facilidad de integración y a su modelo de servicio gestionado, Pinecone es una excelente opción para los desarrolladores que necesitan una solución de base de datos vectorial fiable y de bajo mantenimiento para cargas de trabajo de IA.
Preguntas frecuentes
¿Cómo puedo empezar a utilizar Pinecone?
Para empezar a utilizar Pinecone, puedes instalar el paquete de Python `pinecone -client` mediante el comando `pip install pinecone -client`. A continuación, inicializa el cliente Pinecone, crea un índice, inserta o actualiza vectores y realiza consultas. La documentación proporciona código de ejemplo para cada uno de estos pasos.
¿Cuál es la latencia de Pinecone?
Pinecone Ofrece una baja latencia, con una latencia p95 inferior a 100 ms, lo que lo hace adecuado para aplicaciones de producción en las que los tiempos de respuesta rápidos son fundamentales.
¿Admite Pinecone la búsqueda híbrida?
Sí, «Pinecone» admite la búsqueda híbrida, lo que permite utilizar tanto vectores densos como dispersos en las consultas para obtener capacidades de búsqueda más flexibles y eficientes.
¿Puedo filtrar los resultados en función de los metadatos?
Sí, «Pinecone» ofrece filtrado por metadatos, lo que le permite filtrar los resultados de las consultas según diversos criterios, como coincidencias exactas, comparaciones, operadores lógicos o el operador «in» para listas.
¿Pinecone es un servicio sin servidor?
Sí, «Pinecone» no utiliza servidores de forma predeterminada, pero también admite la implementación basada en pods para aquellos que necesiten un rendimiento más constante en un entorno específico.
Pinecone - Managed Vector Database
The vector database for production AI applications.
When to use Pinecone
Use when:
- Need managed, serverless vector database
- Production RAG applications
- Auto-scaling required
- Low latency critical (<100ms)
- Don't want to manage infrastructure
- Need hybrid search (dense + sparse vectors)
Metrics:
- Fully managed SaaS
- Auto-scales to billions of vectors
- p95 latency <100ms
- 99.9% uptime SLA
Use alternatives instead:
- Chroma: Self-hosted, open-source
- FAISS: Offline, pure similarity search
- Weaviate: Self-hosted with more features
Quick start
Installation
pip install pinecone-client
Basic usage
from pinecone import Pinecone, ServerlessSpec# Initializepc = Pinecone(api_key="your-api-key")# Create indexpc.create_index( name="my-index", dimension=1536, # Must match embedding dimension metric="cosine", # or "euclidean", "dotproduct" spec=ServerlessSpec(cloud="aws", region="us-east-1"))# Connect to indexindex = pc.Index("my-index")# Upsert vectorsindex.upsert(vectors=[ {"id": "vec1", "values": [0.1, 0.2, ...], "metadata": {"category": "A"}}, {"id": "vec2", "values": [0.3, 0.4, ...], "metadata": {"category": "B"}}])# Queryresults = index.query( vector=[0.1, 0.2, ...], top_k=5, include_metadata=True)print(results["matches"])
Core operations
Create index
# Serverless (recommended)pc.create_index( name="my-index", dimension=1536, metric="cosine", spec=ServerlessSpec( cloud="aws", # or "gcp", "azure" region="us-east-1" ))# Pod-based (for consistent performance)from pinecone import PodSpecpc.create_index( name="my-index", dimension=1536, metric="cosine", spec=PodSpec( environment="us-east1-gcp", pod_type="p1.x1" ))
Upsert vectors
# Single upsertindex.upsert(vectors=[ { "id": "doc1", "values": [0.1, 0.2, ...], # 1536 dimensions "metadata": { "text": "Document content", "category": "tutorial", "timestamp": "2025-01-01" } }])# Batch upsert (recommended)vectors = [ {"id": f"vec{i}", "values": embedding, "metadata": metadata} for i, (embedding, metadata) in enumerate(zip(embeddings, metadatas))]index.upsert(vectors=vectors, batch_size=100)
Query vectors
# Basic queryresults = index.query( vector=[0.1, 0.2, ...], top_k=10, include_metadata=True, include_values=False)# With metadata filteringresults = index.query( vector=[0.1, 0.2, ...], top_k=5, filter={"category": {"$eq": "tutorial"}})# Namespace queryresults = index.query( vector=[0.1, 0.2, ...], top_k=5, namespace="production")# Access resultsfor match in results["matches"]: print(f"ID: {match['id']}") print(f"Score: {match['score']}") print(f"Metadata: {match['metadata']}")
Metadata filtering
# Exact matchfilter = {"category": "tutorial"}# Comparisonfilter = {"price": {"$gte": 100}} # $gt, $gte, $lt, $lte, $ne# Logical operatorsfilter = { "$and": [ {"category": "tutorial"}, {"difficulty": {"$lte": 3}} ]} # Also: $or# In operatorfilter = {"tags": {"$in": ["python", "ml"]}}
Namespaces
# Partition data by namespaceindex.upsert( vectors=[{"id": "vec1", "values": [...]}], namespace="user-123")# Query specific namespaceresults = index.query( vector=[...], namespace="user-123", top_k=5)# List namespacesstats = index.describe_index_stats()print(stats['namespaces'])
Hybrid search (dense + sparse)
# Upsert with sparse vectorsindex.upsert(vectors=[ { "id": "doc1", "values": [0.1, 0.2, ...], # Dense vector "sparse_values": { "indices": [10, 45, 123], # Token IDs "values": [0.5, 0.3, 0.8] # TF-IDF scores }, "metadata": {"text": "..."} }])# Hybrid queryresults = index.query( vector=[0.1, 0.2, ...], sparse_vector={ "indices": [10, 45], "values": [0.5, 0.3] }, top_k=5, alpha=0.5 # 0=sparse, 1=dense, 0.5=hybrid)
LangChain integration
from langchain_pinecone import PineconeVectorStorefrom langchain_openai import OpenAIEmbeddings# Create vector storevectorstore = PineconeVectorStore.from_documents( documents=docs, embedding=OpenAIEmbeddings(), index_name="my-index")# Queryresults = vectorstore.similarity_search("query", k=5)# With metadata filterresults = vectorstore.similarity_search( "query", k=5, filter={"category": "tutorial"})# As retrieverretriever = vectorstore.as_retriever(search_kwargs={"k": 10})
LlamaIndex integration
from llama_index.vector_stores.pinecone import PineconeVectorStore# Connect to Pineconepc = Pinecone(api_key="your-key")pinecone_index = pc.Index("my-index")# Create vector storevector_store = PineconeVectorStore(pinecone_index=pinecone_index)# Use in LlamaIndexfrom llama_index.core import StorageContext, VectorStoreIndexstorage_context = StorageContext.from_defaults(vector_store=vector_store)index = VectorStoreIndex.from_documents(documents, storage_context=storage_context)
Index management
# List indicesindexes = pc.list_indexes()# Describe indexindex_info = pc.describe_index("my-index")print(index_info)# Get index statsstats = index.describe_index_stats()print(f"Total vectors: {stats['total_vector_count']}")print(f"Namespaces: {stats['namespaces']}")# Delete indexpc.delete_index("my-index")
Delete vectors
# Delete by IDindex.delete(ids=["vec1", "vec2"])# Delete by filterindex.delete(filter={"category": "old"})# Delete all in namespaceindex.delete(delete_all=True, namespace="test")# Delete entire indexindex.delete(delete_all=True)
Best practices
- Use serverless - Auto-scaling, cost-effective
- Batch upserts - More efficient (100-200 per batch)
- Add metadata - Enable filtering
- Use namespaces - Isolate data by user/tenant
- Monitor usage - Check Pinecone dashboard
- Optimize filters - Index frequently filtered fields
- Test with free tier - 1 index, 100K vectors free
- Use hybrid search - Better quality
- Set appropriate dimensions - Match embedding model
- Regular backups - Export important data
Performance
| Operation | Latency | Notes |
|---|---|---|
| Upsert | ~50-100ms | Per batch |
| Query (p50) | ~50ms | Depends on index size |
| Query (p95) | ~100ms | SLA target |
| Metadata filter | ~+10-20ms | Additional overhead |
Pricing (as of 2025)
Serverless:
- $0.096 per million read units
- $0.06 per million write units
- $0.06 per GB storage/month
Free tier:
- 1 serverless index
- 100K vectors (1536 dimensions)
- Great for prototyping
Resources
- Website: https://www.pinecone.io
- Docs: https://docs.pinecone.io
- Console: https://app.pinecone.io
- Pricing: https://www.pinecone.io/pricing
Instalar pinecone
Descarga y descomprime los archivos de habilidades en tu directorio .claude/skills/.
Descargar ZIPClona el repositorio y copia los archivos de la habilidad a tu proyecto.
git clone https://github.com/Orchestra-Research/AI-Research-SKILLs/blob/main/15-rag/pinecone/SKILL.md # Copy SKILL.md to your .claude/skills/ directory
Copiar





Hogar
