Athenadb ist eine einfache, serverlose, verteilte Vektor -Datenbank, die als API verwendet werden kann. Es ist mit Cloudflare Workers AI, D1, Vectorize geschrieben.
wrangler login . Athenadb benötigt ein Arbeitnehmerabonnement von 5 USD/Monat, um zu funktionieren.git clone https://github.com/TimeSurgeLabs/athenadb.git
cd athenadb
npm run create-vector
npm run create-db Kopieren Sie die Ausgabedatenbank -ID und fügen Sie sie in wrangler.toml unter database_id ein. Führen Sie dann die folgenden zwei Befehle aus:
npm run init-db
npm run deploySie sollten eine Ausgabe mit Ihrer API -URL erhalten. Sie können jetzt die API -Endpunkte verwenden.
POST /:namespace/insertFügt Textdaten in die Datenbank ein. Der Text wird unter Verwendung von Cloudflare AI in Einbettungen umgewandelt und zusammen mit einer eindeutigen Kennung gespeichert.
input : Eine einzelne Zeichenfolge (max 1024 Zeichen).inputs : Eine Reihe von Strings (jeweils max. 1024 Zeichen).POST /:namespace/query Fragt die Datenbank für ähnliche Texteinbettungen ab. Geben Sie in der URL ?limit=number Der Standard ist 5, das Maximum beträgt 20.
input : Eine einzelne Zeichenfolge zum Abfragen. (max. 1024 Zeichen)inputs : Eine Reihe von Zeichenfolgen für die Stapelabfrage. (Jede max. 1024 Zeichen)GET /:namespace/:uuid Ruft einen bestimmten Eintrag aus der Datenbank mithilfe seiner eindeutigen Bezeichnung (UUID) ab. Fügen Sie Abfrageparameter hinzu ?vector=true , um den Vektor zusammen mit dem Eintrag abzurufen. Fügen Sie Abfrageparameter hinzu ?db_id=true
GET /:namespace?limit=10&offset=0 Ruft alle Einträge aus dem gegebenen Namespace ab. Die Grenze kann auf maximal 100 Einträge eingestellt werden. Fügen Sie Abfrageparameter hinzu ?vector=true um die Vektoren zusammen mit den Einträgen abzurufen. Fügen Sie Abfrageparameter hinzu ?db_id=true
DELETE /:namespace/:uuidLöscht einen bestimmten Eintrag aus der Datenbank mithilfe seiner eindeutigen Bezeichnung (UUID). Warnung : Diese Aktion ist irreversibel.
DELETE /:namespaceLöscht alle Einträge aus dem gegebenen Namespace. Warnung : Diese Aktion ist irreversibel.
POST /embeddingsGeneriert Einbettungen für einen bestimmten Text, ohne ihn in der Datenbank zu speichern.
text : Eine Zeichenfolge, deren Einbettung generiert werden soll.GET /Ein Testendpunkt, der 'Hallo Welt!' Zurückgibt. als Antwort.
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' } )
} )