Documentation Index
Fetch the complete documentation index at: https://docs.sunra.ai/llms.txt
Use this file to discover all available pages before exploring further.
はじめに
JavaScript/TypeScript 用のクライアントライブラリは、Sunra のサービスと対話するための使いやすいインターフェースを提供します。
インストール
プロジェクトにクライアントを統合するには、npm を使用してインストールします。
npm install @sunra/client
エンドポイントの呼び出し
Sunra はキューシステムを介してエンドポイントリクエストを管理し、信頼性とスケーラビリティを確保します。リクエストを送信して結果を待つには subscribe メソッドを使用します。
例:
import { sunra } from "@sunra/client";
const result = await sunra.subscribe("black-forest-labs/flux-kontext-pro/text-to-image", {
input: {
prompt: "花が咲いているお茶が入ったガラスのティーポットが、太陽の光が差し込む窓際の木製のテーブルに置かれ、穏やかな朝の光が差し込んでいます。",
"aspect_ratio": "16:9",
"output_format": "jpeg",
},
logs: true,
onQueueUpdate: (update) => {
if (update.status === "IN_PROGRESS") {
console.log(update.logs)
}
},
});
console.log(result.data);
console.log(result.requestId);
キュー管理
これらのメソッドでリクエストを管理します。
リクエストの送信
リクエストを送信し、後で使用するために request_id を取得します。
例:
import { sunra } from "@sunra/client";
const { request_id } = await sunra.queue.submit("black-forest-labs/flux-kontext-max", {
input: {
prompt: "花が咲いているお茶が入ったガラスのティーポットが、太陽の光が差し込む窓際の木製のテーブルに置かれ、穏やかな朝の光が差し込んでいます。",
"aspect_ratio": "16:9",
"output_format": "jpeg",
},
});
リクエストステータスの確認
リクエストのステータスを取得します。
例:
import { sunra } from "@sunra/client";
const status = await sunra.queue.status({
requestId: "pd_eTYYuw4EqYLzRBHgnAMHA8zH",
logs: true,
});
リクエスト結果の取得
完了したリクエストの結果を取得します。
例:
import { sunra } from "@sunra/client";
const result = await sunra.queue.result({
requestId: "pd_eTYYuw4EqYLzRBHgnAMHA8zH",
});
console.log(result.data);
console.log(result.requestId);
ストレージ
storage API を使用すると、ファイルをアップロードして URL を受け取ることができ、その URL をモデルエンドポイントリクエストで使用できます。これは、画像から動画へ、または音声からテキストへなど、ファイル入力を必要とするモデルに特に便利です。
ブラウザでのファイルのアップロード
ユーザーがブラウザから直接ファイルをアップロードできるようにすることができます。次の例は、<input type="file"> 要素を使用してファイルを選択し、アップロードする方法を示しています。
import { sunra } from "@sunra/client";
const fileInput = document.getElementById('file-input');
fileInput.addEventListener('change', async (event) => {
const file = event.target.files[0];
if (file) {
try {
const url = await sunra.storage.upload(file);
console.log('ファイルが正常にアップロードされました:', url);
// これで、この URL をモデルエンドポイントで使用できます
} catch (error) {
console.error('アップロードに失敗しました:', error);
}
}
});
Node.js でのファイルのアップロード
Node.js を使用したサーバー側では、ローカルファイルシステムからファイルを読み込んでアップロードできます。
import { sunra } from "@sunra/client";
import { readFile } from "node:fs/promises";
import { basename } from "node:path";
async function uploadLocalFile(filePath) {
try {
const buffer = await readFile(filePath);
// クライアントには File オブジェクトが必要ですが、バッファから作成できます
const file = new File([buffer], basename(filePath));
const url = await sunra.storage.upload(file);
console.log('ファイルが正常にアップロードされました:', url);
return url;
} catch (error) {
console.error('アップロードに失敗しました:', error);
}
}
uploadLocalFile("./path/to/your/image.png");
モデルエンドポイントによる自動アップロード
JavaScript SDK は、ファイルアップロードを自動的に処理できます。モデルエンドポイントの入力に File オブジェクト、Blob、または base64 データ URI を渡すと、SDK は最初にそれをストレージにアップロードし、リクエストで結果の URL を使用します。
これにより、別のアップロード手順を実行する必要がなくなるため、プロセスが簡素化されます。
import { sunra } from "@sunra/client";
// ブラウザのファイル入力からの File オブジェクトは自動的にアップロードされます
const fileInput = document.getElementById('file-input');
const file = fileInput.files[0];
const result = await sunra.subscribe("some-model-that-takes-images", {
input: {
image: file, // SDK はこのファイルを自動的にアップロードします
prompt: "画像で何をするかを説明するプロンプト"
}
});
// base64 データ URI も自動的にアップロードされます
const base64Image = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQ...";
const result2 = await sunra.subscribe("some-model-that-takes-images", {
input: {
image: base64Image, // SDK はこれを自動的に Blob に変換してアップロードします
prompt: "画像で何をするかを説明するプロンプト"
}
});
サポート
ヘルプやディスカッションについては、コミュニティにご参加ください。
サポートさせていただきます!