Dropstone Support

Установка и запуск первой сессии

Установите Dropstone SDK, выполните headless API-вызов с помощью API-ключа и запустите локальную сессию агента, которая хранит память вашей учётной записи. Включает стриминг, структурированный вывод и использование OpenAI SDK с Dropstone.

Два клиента, два первых вызова. Выберите тот, который соответствует месту выполнения вашего кода; обзор SDK объясняет разницу.


Headless: вызов из любого места

  1. Создайте API-ключ в Настройках, в разделе API keys, в вашей панели управления. Он выглядит как 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, и тот же вызов вернёт асинхронный итератор фрагментов — это то, что нужно для интерфейса или длинного ответа:

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 остаётся для существующих интеграций.
  • Не смешивайте знания пайплайна с собственной памятью. Headless-вызов не имеет привязанной памяти, а локальная сессия использует учётную запись, под которой вы вошли. Если интеграция должна иметь собственную память, дайте ей отдельную учётную запись. См. Одна память на всех поверхностях.

Ограничения

  • Локальному клиенту нужен CLI на той же машине; хост без него должен использовать headless-клиент.
  • Headless-эндпоинт — это chat completions. Цикл агента, файловые операции и инструменты рабочей области доступны в локальном клиенте.

Related articles

Ctrl+I