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出力データベースIDをコピーし、 database_idの下のwrangler.tomlに貼り付けます。次に、次の2つのコマンドを実行します。
npm run init-db
npm run deployAPI URLで出力を取得する必要があります。これで、APIエンドポイントを使用できます。
POST /:namespace/insertテキストデータをデータベースに挿入します。テキストは、CloudFlare AIを使用して埋め込みに変換され、一意の識別子とともに保存されます。
input :単一の文字列(最大1024文字)。inputs :文字列の配列(各最大1024文字)。POST /:namespace/query同様のテキスト埋め込みのデータベースをクエリします。 specify ?limit=numberを返す結果の数を指定します。デフォルトは5、最大は20です。
input :クエリ用の単一の文字列。 (最大1024文字)inputs :バッチクエリ用の文字列の配列。 (各最大1024文字)GET /:namespace/:uuid一意の識別子(UUID)を使用して、データベースから特定のエントリを取得します。クエリパラメーターを追加しますか?vector=trueとエントリとともにベクトルを取得します。クエリパラメーターを追加しますか?db_id=trueには、エントリとともにSQLテーブルIDを取得します。
GET /:namespace?limit=10&offset=0指定された名前空間からすべてのエントリを取得します。制限は、最大100エントリに設定できます。クエリパラメーターを追加しますか?vector=trueとエントリとともにベクターを取得します。クエリパラメーターを追加しますか?db_id=true sqlテーブルIDとエントリを取得します。
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' } )
} )