Athenadb adalah basis data vektor sederhana, tanpa server, terdistribusi yang dapat digunakan sebagai API. Ini ditulis dengan CloudFlare Workers AI, D1, Vectorize.
wrangler login . Athenadb membutuhkan langganan pekerja $ 5/bulan untuk berfungsi.git clone https://github.com/TimeSurgeLabs/athenadb.git
cd athenadb
npm run create-vector
npm run create-db Salin ID database output dan tempel di wrangler.toml di bawah database_id . Kemudian, jalankan dua perintah berikut:
npm run init-db
npm run deployAnda harus mendapatkan output dengan URL API Anda. Anda sekarang dapat menggunakan titik akhir API.
POST /:namespace/insertMenyisipkan data teks ke dalam database. Teks diubah menjadi embeddings menggunakan CloudFlare AI dan disimpan bersama dengan pengidentifikasi yang unik.
input : satu string (maks 1024 karakter).inputs : Array string (masing -masing karakter maks 1024).POST /:namespace/query Menanyakan database untuk embeddings teks yang serupa. Tentukan ?limit=number dalam URL untuk menentukan jumlah hasil yang akan dikembalikan. Standarnya adalah 5, maksimum adalah 20.
input : satu string untuk kueri. (Maks 1024 karakter)inputs : Array string untuk permintaan batch. (masing -masing karakter maks 1024)GET /:namespace/:uuid Mengambil entri spesifik dari database menggunakan Identifier Uniknya (UUID). Tambahkan parameter kueri ?vector=true untuk mengambil vektor bersama dengan entri. Tambahkan parameter kueri ?db_id=true untuk mengambil ID tabel SQL bersama dengan entri.
GET /:namespace?limit=10&offset=0 Mengambil semua entri dari namespace yang diberikan. Batas dapat diatur ke maksimum 100 entri. Tambahkan parameter kueri ?vector=true untuk mengambil vektor bersama dengan entri. Tambahkan parameter kueri ?db_id=true untuk mengambil ID tabel SQL bersama dengan entri.
DELETE /:namespace/:uuidMenghapus entri tertentu dari database menggunakan Identifier Uniknya (UUID). Peringatan : Tindakan ini tidak dapat diubah.
DELETE /:namespaceMenghapus semua entri dari namespace yang diberikan. Peringatan : Tindakan ini tidak dapat diubah.
POST /embeddingsMenghasilkan embeddings untuk teks yang diberikan tanpa menyimpannya di database.
text : Sebuah string yang embeddingnya akan dihasilkan.GET /Titik akhir tes yang mengembalikan 'Hello World!' sebagai tanggapan.
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' } )
} )