Athenadb هي قاعدة بيانات متجه بسيطة ، بدون خادم وموزعة يمكن استخدامها كواجهة برمجة تطبيقات. إنه مكتوب مع CloudFlare Commore AI ، D1 ، Vectorize.
wrangler login . يتطلب AthenadB اشتراك عمال بقيمة 5 دولارات في الشهر.git clone https://github.com/TimeSurgeLabs/athenadb.git
cd athenadb
npm run create-vector
npm run create-db انسخ معرف قاعدة بيانات الإخراج والصقه في wrangler.toml ضمن database_id . ثم ، قم بتشغيل الأوامر التالية:
npm run init-db
npm run deployيجب أن تحصل على إخراج مع عنوان URL الخاص بك API. يمكنك الآن استخدام نقاط نهاية API.
POST /:namespace/insertإدراج بيانات النص في قاعدة البيانات. يتم تحويل النص إلى تضمينات باستخدام CloudFlare AI وتخزينها مع معرف فريد.
input : سلسلة واحدة (بحد أقصى 1024 أحرف).inputs : مجموعة من السلاسل (كل أحرف كحد أقصى 1024).POST /:namespace/query الاستعلامات قاعدة البيانات لتضمينات النص مماثلة. حدد ?limit=number في عنوان URL لتحديد عدد النتائج المراد إرجاعها. الافتراضي هو 5 ، الحد الأقصى هو 20.
input : سلسلة واحدة للاستعلام. (أقصى 1024 حرفًا)inputs : مجموعة من السلاسل للاستعلام الدُفعات. (كل أحرف 1024 كحد أقصى)GET /:namespace/:uuid يسترجع إدخال محدد من قاعدة البيانات باستخدام معرفه الفريد (UUID). أضف معلمات الاستعلام ?vector=true لاسترداد المتجه مع الإدخال. أضف معلمات الاستعلام ?db_id=true لاسترداد معرف جدول SQL مع الإدخال.
GET /:namespace?limit=10&offset=0 يسترجع جميع الإدخالات من مساحة الاسم المحددة. يمكن ضبط الحد على 100 إدخالات كحد أقصى. أضف معلمات الاستعلام ?vector=true لاسترداد المتجهات جنبا إلى جنب مع الإدخالات. أضف معلمات الاستعلام ?db_id=true لاسترداد معرف جدول SQL مع الإدخالات.
DELETE /:namespace/:uuidيحذف إدخال محدد من قاعدة البيانات باستخدام معرفه الفريد (UUID). تحذير : هذا الإجراء لا رجعة فيه.
DELETE /:namespaceيحذف جميع الإدخالات من مساحة الاسم المحددة. تحذير : هذا الإجراء لا رجعة فيه.
POST /embeddingsيولد التضمين للنص المعطى دون تخزينه في قاعدة البيانات.
text : سلسلة تضمها لتوليدها.GET /نقطة نهاية الاختبار التي تعود "Hello World!" كرد.
fetch ( 'https://athenadb.yourusername.workers.dev/your-namespace/insert' , {
method : 'POST' ,
headers : { 'Content-Type' : 'application/json' } ,
body : JSON . stringify ( { input : 'Your text here' } )
} ) fetch ( 'https://athenadb.yourusername.workers.dev/your-namespace/query' , {
method : 'POST' ,
headers : { 'Content-Type' : 'application/json' } ,
body : JSON . stringify ( { input : 'Query text' } )
} ) fetch ( 'https://athenadb.yourusername.workers.dev/your-namespace/your-uuid' , {
method : 'GET'
} ) fetch ( 'https://athenadb.yourusername.workers.dev/your-namespace/your-uuid' , {
method : 'DELETE'
} ) fetch ( 'https://athenadb.yourusername.workers.dev/embeddings' , {
method : 'POST' ,
headers : { 'Content-Type' : 'application/json' } ,
body : JSON . stringify ( { text : 'Your text here' } )
} )