Dropstone Support

Instala y ejecuta tu primera sesión

Instala el SDK de Dropstone, haz una llamada API sin interfaz con una clave de API y ejecuta una sesión de agente local que lleva la memoria de tu cuenta. Incluye streaming, salida estructurada y el uso del SDK de OpenAI con Dropstone.

Dos clientes, dos primeras llamadas. Elige el que coincida con dónde se ejecuta tu código; la descripción general del SDK explica la diferencia.


Sin interfaz: una llamada desde cualquier lugar

  1. Crea una clave de API en Configuración, en Claves de API, en tu panel de control. Se ve como dsk_live_... y se muestra una sola vez.
  2. Instala el SDK: npm install @blankline/dropstone-sdk.
  3. Coloca la clave en el entorno, como DROPSTONE_API_KEY. Trátala como una contraseña: nunca la subas a un repositorio y nunca la incluyas en un paquete de navegador.
  4. Haz la llamada. El cliente lee la variable de entorno por sí solo.
import { createDropstoneApi } from "@blankline/dropstone-sdk"

const dropstone = createDropstoneApi()

const resp = await dropstone.chat.completions.create({
  model: "dropstone-fast",
  messages: [{ role: "user", content: "Resume esta entrada del registro de cambios." }],
})

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

Añade stream: true y la misma llamada devuelve un iterador asíncrono de fragmentos, que es lo que quieres en una interfaz de usuario o en una respuesta larga:

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

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

El endpoint es compatible con OpenAI, por lo que un cliente existente funciona apuntando a Dropstone:

import OpenAI from "openai"

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

Las solicitudes con clave de API se facturan por uso desde tu saldo de créditos, no desde la asignación de tu plan, y una clave con saldo vacío se rechaza con un enlace para recargar. Consulta Usar la API con tu plan.


Local: el agente, en tu proceso

El cliente local inicia un proceso dropstone serve, te entrega un cliente tipado apuntando a él y lo cierra cuando terminas. Como se ejecuta como tu cuenta, las sesiones llevan tu memoria.

  1. Instala la CLI de Dropstone e inicia sesión con dropstone login. El SDK lee el mismo inicio de sesión.
  2. Crea una sesión y luego envíale un mensaje.
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: "Hola, ¿quién eres?" }] },
})

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

Si ya hay un servidor en ejecución, omite el lanzamiento:

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

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

Consejos

  • Fija el rango de versión. El SDK se publica con un ritmo rápido, así que depende de un rango que hayas probado en lugar de la última etiqueta.
  • Usa v2 para código nuevo. @blankline/dropstone-sdk/v2 es la superficie donde aterrizan los nuevos endpoints; v1 se mantiene para integraciones existentes.
  • Mantén el aprendizaje de un pipeline fuera de tu propia memoria. Una llamada sin interfaz no tiene memoria adjunta, y una sesión local usa la cuenta con la que iniciaste sesión. Si una integración debe tener su propia memoria, dale su propia cuenta. Consulta Una memoria en cada superficie.

Limitaciones

  • El cliente local necesita la CLI en la misma máquina; un host sin ella debe usar el cliente sin interfaz.
  • El endpoint sin interfaz es de chat completions. El bucle del agente, las operaciones de archivos y las herramientas del espacio de trabajo están en el cliente local.

Related articles

Ctrl+I