高火力 DOKはさくらインターネットの提供するGPUコンテナサービスです。DockerイメージをGPUを使って実行します。
高火力 DOKではAPIが公開されているので、操作しやすくするためのSDKを「野良」で作成し始めました。Pythonでも良いのですが、せっかくなら別言語ということで、JavaScript/TypeScriptで作成しています。
現在はデータ取得系の一部ができた段階ですが、使い方を解説します。
必要な情報
SDKを利用する際には、さくらのクラウドのアクセストークンとシークレットアクセストークンが必要です。どちらもさくらのクラウドのAPIキーの中で作成できます。
インストール
SDKのインストールは npm
で行います。
npm install @goofmint/dok-sdk
初期化
先ほど作成したアクセストークンとシークレットアクセストークンで初期化します。
import DOK from '@goofmint/dok-sdk';
const dok = new DOK({
accessToken: 'your_access_token',
accessTokenSecret: 'your_access_token_secret',
});
タスクの取得
タスクというのは、DOKの実行単位です。過去に実行したタスクの一覧が取得できます。
const { tasks, meta } = await dok.tasks();
meta
はページネーションの情報が入っています。 tasks
は Task
クラスのインスタンスの配列です。
タスクの取得(1件)
特定のタスク情報だけを得る場合には、タスクIDを引数に指定します。
const task = await dok.task(taskId);
アーティファクトの取得
アーティファクトというのは、タスクの実行結果として得られる成果物です。たとえば画像生成した結果の画像だったり、動画などです。
const { artifacts, meta } = await dok.artifacts();
こちらも meta
はページネーションデータ、 artifacts
はアーティファクトの配列です。
コード
コードはGitHubで公開しています。ライセンスはMIT Licenseです。
まとめ
高火力 DOKのAPIでは、タスクの作成やキャンセルなども行えます。Webサービスの中でタスクを作成したり、その完了を監視するようなこともできるでしょう。
高火力 DOK自体はバッチ処理など、非同期処理に向いたサービスになります。都度管理画面をチェックしたりするのは面倒なので、APIを使うのが便利そうです。