Un cliente basado en una búsqueda no oficial para la base de datos Pinecone.io Vector con excelente soporte de mecanografiado.
Pinecone lanzó recientemente un cliente similar. Es una excelente opción si no eres exigente con metadatos completamente escritos.
import { PineconeClient } from 'pinecone-client' ;
// Specify the type of your metadata
type Metadata = { size : number , tags ?: string [ ] | null } ;
// Instantiate a client
const pinecone = new PineconeClient < Metadata > ( { namespace : 'test' } ) ;
// Upsert vectors with metadata.
await pinecone . upsert ( {
vectors : [
{ id : '1' , values : [ 1 , 2 , 3 ] , metadata : { size : 3 , tags : [ 'a' , 'b' , 'c' ] } } ,
{ id : '2' , values : [ 4 , 5 , 6 ] , metadata : { size : 10 , tags : null } } ,
] ,
} ) ;
// Query vectors with metadata filters.
const { matches } = await pinecone . query ( {
topK : 2 ,
id : '2' ,
filter : { size : { $lt : 20 } } ,
includeMetadata : true ,
} ) ;
// typeof matches = {
// id: string;
// score: number;
// metadata: Metadata;
// }[]; ADVERTENCIA: Este paquete es ESM nativo y ya no proporciona una exportación común de JS. Si su proyecto usa CommonJS, deberá convertir a ESM o usar la función Dynamic import() . No abra problemas para preguntas sobre CommonJS / ESM.
Tiempos de ejecución
npm install pinecone-client import { PineconeClient } from 'pinecone-client' ;
const pinecone = new PineconeClient ( { /* ... */ } ) ; Una vez instalado, debe crear una instancia de la clase PineconeClient para realizar llamadas API.
import { PineconeClient } from 'pinecone-client' ;
// A type representing your metadata
type Metadata = { } ;
const pinecone = new PineconeClient < Metadata > ( {
apiKey : '<your api key>' ,
baseUrl : '<your index url>' ,
namespace : 'testing' ,
} ) ;Tanto Apikey como BaseUrl son opcionales y se leerán de las siguientes variables de entorno:
process.env.PINECONE_API_KEYprocess.env.PINECONE_BASE_URLEl cliente admite todas las operaciones vectoriales de la API de Pinecone utilizando los mismos nombres y parámetros de métodos. También admite la creación y eliminación de índices.
Para una documentación detallada con enlaces a los documentos de Pinecone, consulte el código fuente.
pinecone.delete()pinecone.describeIndexStats()pinecone.fetch()pinecone.query()pinecone.update()pinecone.upsert()pinecone.createIndex()pinecone.deleteIndex()También puede encontrar más uso de ejemplo en las pruebas E2E.