Athenadb est une base de données vectorielle simple, sans serveur et distribuée qui peut être utilisée comme API. Il est écrit avec CloudFlare Workers AI, D1, Vectorize.
wrangler login . Athenadb nécessite un abonnement des travailleurs de 5 $ / mois pour fonctionner.git clone https://github.com/TimeSurgeLabs/athenadb.git
cd athenadb
npm run create-vector
npm run create-db Copiez l'ID de base de données de sortie et collez-le dans wrangler.toml sous database_id . Ensuite, exécutez les deux commandes suivantes:
npm run init-db
npm run deployVous devriez obtenir une sortie avec votre URL de l'API. Vous pouvez désormais utiliser les points de terminaison de l'API.
POST /:namespace/insertInsère des données de texte dans la base de données. Le texte est converti en intégres à l'aide de CloudFlare AI et stocké avec un identifiant unique.
input : une seule chaîne (caractères max 1024).inputs : un tableau de chaînes (chaque caractères max 1024).POST /:namespace/query Interroge la base de données pour des intérêts de texte similaires. Spécifiez ?limit=number dans l'URL pour spécifier le nombre de résultats à retourner. La valeur par défaut est 5, le maximum est de 20.
input : une seule chaîne pour la requête. (MAX 1024 caractères)inputs : un tableau de chaînes pour le requête par lots. (chaque caractères max 1024)GET /:namespace/:uuid Récupère une entrée spécifique de la base de données à l'aide de son identifiant unique (UUID). Ajoutez des paramètres de requête ?vector=true pour récupérer le vecteur avec l'entrée. Ajoutez des paramètres de requête ?db_id=true pour récupérer l'ID de table SQL avec l'entrée.
GET /:namespace?limit=10&offset=0 Récupère toutes les entrées de l'espace de noms donné. La limite peut être définie sur un maximum de 100 entrées. Ajoutez des paramètres de requête ?vector=true pour récupérer les vecteurs avec les entrées. Ajoutez des paramètres de requête ?db_id=true pour récupérer l'ID de table SQL avec les entrées.
DELETE /:namespace/:uuidSupprime une entrée spécifique de la base de données à l'aide de son identifiant unique (UUID). Avertissement : cette action est irréversible.
DELETE /:namespaceSupprime toutes les entrées de l'espace de noms donné. Avertissement : cette action est irréversible.
POST /embeddingsGénère des intégres pour un texte donné sans le stocker dans la base de données.
text : une chaîne dont l'incorporation doit être générée.GET /Un point de terminaison de test qui retourne «Hello World! comme réponse.
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' } )
} )