Dropstone Support

Dropstone SDK クイックスタート

Dropstone SDK をインストールし、API キーを使ってヘッドレス API 呼び出しを行い、アカウントのメモリを保持するローカルエージェントセッションを実行します。ストリーミング、構造化出力、OpenAI SDK を Dropstone に対して使用する方法も含みます。

2つのクライアント、2つの最初の呼び出し。コードが実行される場所に合う方を選んでください。SDK 概要で違いを説明しています。


ヘッドレス: どこからでも呼び出せる

  1. ダッシュボードの Settings にある API keys で API キーを作成します。dsk_live_... のような形式で、一度だけ表示されます。
  2. SDK をインストールします: npm install @blankline/dropstone-sdk。
  3. キーを環境変数 DROPSTONE_API_KEY として設定します。パスワードと同じように扱ってください。コミットしたり、ブラウザバンドルに含めたりしないでください。
  4. 呼び出します。クライアントは環境変数を自動的に読み取ります。
import { createDropstoneApi } from "@blankline/dropstone-sdk"

const dropstone = createDropstoneApi()

const resp = await dropstone.chat.completions.create({
  model: "dropstone-fast",
  messages: [{ role: "user", content: "Summarise this changelog entry." }],
})

console.log(resp.choices[0].message.content)

stream: true を追加すると、同じ呼び出しがチャンクの非同期イテレータを返します。これは UI や長い回答で必要になるものです:

const stream = await dropstone.chat.completions.create({
  model: "dropstone-fast",
  stream: true,
  messages: [{ role: "user", content: "Count to five." }],
})

for await (const chunk of stream) {
  process.stdout.write(chunk.choices?.[0]?.delta?.content ?? "")
}

エンドポイントは OpenAI 互換なので、既存のクライアントを Dropstone に向けるだけで動作します:

import OpenAI from "openai"

const openai = new OpenAI({
  baseURL: "https://api.dropstone.io/api/v1",
  apiKey: process.env.DROPSTONE_API_KEY,
})

API キーによるリクエストは、プランの利用枠ではなく、クレジット残高から従量課金されます。残高がゼロのキーは、チャージ用リンク付きで拒否されます。プランでの API 利用を参照してください。


ローカル: プロセス内のエージェント

ローカルクライアントは dropstone serve プロセスを起動し、それを指す型付きクライアントを渡し、完了時に閉じます。アカウントとして実行されるため、セッションにはあなたのメモリが保持されます。

  1. Dropstone CLI をインストールし、dropstone login でサインインします。SDK は同じサインインを読み取ります。
  2. セッションを作成し、プロンプトを送信します。
import { createDropstone } from "@blankline/dropstone-sdk"

const { client, server } = await createDropstone()

const session = await client.session.create({
  body: { agent: "build", model: { providerID: "dropstone", modelID: "dropstone-pro" } },
})

const reply = await client.session.prompt({
  path: { id: session.data.id },
  body: { parts: [{ type: "text", text: "Hello, who are you?" }] },
})

console.log(reply.data)
await server.close()

サーバーがすでに実行中の場合は、起動をスキップします:

import { createDropstoneClient } from "@blankline/dropstone-sdk"

const client = createDropstoneClient({ baseUrl: "http://127.0.0.1:4096" })

ヒント

  • バージョン範囲を固定する。 SDK は速いペースでリリースされるため、最新タグではなく、テスト済みの範囲に依存してください。
  • 新しいコードには v2 を使用する。 @blankline/dropstone-sdk/v2 は新しいエンドポイントが追加されるサーフェスです。v1 は既存の統合用に残ります。
  • パイプラインの学習内容を自分のメモリに混ぜない。 ヘッドレス呼び出しにはメモリが関連付けられておらず、ローカルセッションはサインインしたアカウントを使用します。統合に独自のメモリを持たせたい場合は、専用のアカウントを与えてください。すべてのサーフェスで1つのメモリを参照してください。

制限事項

  • ローカルクライアントは同じマシンに CLI が必要です。CLI がないホストではヘッドレスクライアントを使用してください。
  • ヘッドレスエンドポイントはチャット補完です。エージェントループ、ファイル操作、ワークスペースツールはローカルクライアントにあります。

Related articles

Ctrl+I