عميل لا يعتمد على الجلب غير الرسمي لقاعدة بيانات ناقل Pinecone.io مع دعم TypeScript الممتاز.
أصدر Pinecone مؤخرًا عميلًا مشابهًا. إنه خيار رائع إذا لم تكن صعب الإرضاء حول البيانات الوصفية التي كتبت بالكامل.
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;
// }[]; تحذير: هذه الحزمة هي ESM الأصلية ولم تعد توفر تصديرًا شائعًا. إذا كان مشروعك يستخدم CommonJs ، فسيتعين عليك التحويل إلى ESM أو استخدام وظيفة import() . من فضلك لا تفتح مشكلات للأسئلة المتعلقة بـ CommonJS / ESM.
أوقات التشغيل
npm install pinecone-client import { PineconeClient } from 'pinecone-client' ;
const pinecone = new PineconeClient ( { /* ... */ } ) ; بمجرد التثبيت ، تحتاج إلى إنشاء مثيل لفئة PineconeClient لإجراء مكالمات 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 و baseurl اختياريان وسيتم قراءته من متغيرات البيئة التالية:
process.env.PINECONE_API_KEYprocess.env.PINECONE_BASE_URLيدعم العميل جميع عمليات المتجه من API Pinecone باستخدام نفس الأسماء والمعلمات. كما يدعم إنشاء وحذف الفهارس.
للحصول على وثائق مفصلة مع روابط لمستندات Pinecone ، راجع رمز المصدر.
pinecone.delete()pinecone.describeIndexStats()pinecone.fetch()pinecone.query()pinecone.update()pinecone.upsert()pinecone.createIndex()pinecone.deleteIndex()يمكنك أيضًا العثور على مزيد من الاستخدام في اختبارات E2E.