AthenAdb เป็นฐานข้อมูลเวกเตอร์แบบกระจายที่ง่ายไม่มีเซิร์ฟเวอร์ที่สามารถใช้เป็น API ได้ มันถูกเขียนขึ้นโดยคนงาน CloudFlare 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แทรกข้อมูลข้อความลงในฐานข้อมูล ข้อความจะถูกแปลงเป็น embeddings โดยใช้ 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สร้าง 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' } )
} )