Un client non officiel basé sur Fetch pour la base de données vectorielle pinecone.io avec une excellente prise en charge de TypeScript.
PineCone a récemment publié un client similaire. C'est une excellente option si vous n'êtes pas pointilleux sur les métadonnées entièrement typées.
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;
// }[]; AVERTISSEMENT: Ce package est natif ESM et ne fournit plus d'exportation CommonJS. Si votre projet utilise CommonJS, vous devrez vous convertir en ESM ou utiliser la fonction dynamique import() . Veuillez ne pas ouvrir de problèmes pour des questions concernant CommonJS / ESM.
Temps de course
npm install pinecone-client import { PineconeClient } from 'pinecone-client' ;
const pinecone = new PineconeClient ( { /* ... */ } ) ; Une fois installé, vous devez créer une instance de la classe PineconeClient pour passer des appels 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' ,
} ) ;Apikey et BounseUrl sont facultatifs et seront lus à partir des variables d'environnement suivantes:
process.env.PINECONE_API_KEYprocess.env.PINECONE_BASE_URLLe client prend en charge toutes les opérations vectorielles de l'API PineCone en utilisant les mêmes noms et paramètres de méthode. Il prend également en charge la création et la suppression des index.
Pour une documentation détaillée avec des liens vers les documents Pinecone, consultez le code source.
pinecone.delete()pinecone.describeIndexStats()pinecone.fetch()pinecone.query()pinecone.update()pinecone.upsert()pinecone.createIndex()pinecone.deleteIndex()Vous pouvez également trouver plus d'exemples d'utilisation dans les tests E2E.