@visiblebase/client
v0.1.2
Published
VisibleBase user and admin client SDK.
Maintainers
Readme
@visiblebase/client
@visiblebase/client 是 VisibleBase 的客户端 SDK。
它提供两类客户端:
UserClient:给终端用户产品调用 Base,也负责公开插件入口,例如登录、注册、webhookAdminClient:给可信后端管理 product、签发user_token、维护 Runtime env
安装
pnpm add @visiblebase/clientUserClient 调公开插件
import { UserClient } from "@visiblebase/client";
const guest = new UserClient({
base_url: "http://127.0.0.1:3001",
});
const session = await guest.plugin("auth").post("login", {
email: "[email protected]",
password: "password123",
product_id: "prod_xxx",
});UserClient
import { UserClient } from "@visiblebase/client";
import type { UIMessageChunk } from "ai";
const client = new UserClient({
base_url: "http://127.0.0.1:3001",
product_id: "prod_xxx",
user_token: "ub_xxx",
});
const models = await client.models();
const message = await client.text({
model: models.primary(),
prompt: "你好",
});
const stream = await client.stream({
model: models.primary(),
prompt: "流式输出一段文案",
});
const reader = stream.getReader();
const firstChunk: UIMessageChunk | undefined = (await reader.read()).value;text() 固定返回 AI SDK UIMessage。stream() 固定返回 ReadableStream<UIMessageChunk>,适配 Base 侧的 createUIMessageStreamResponse() 或 streamText().toUIMessageStreamResponse()。
image() 和 video() 也固定返回 AI SDK UIMessage,建议用 message 的 file part 表达图片或视频文件。
需要调用用户侧插件路由时,使用 plugin(id):
const usage = await client.plugin("usage").get("me");AdminClient
import { AdminClient } from "@visiblebase/client";
const admin = new AdminClient({
base_url: "http://127.0.0.1:3001",
admin_secret_key: "admin_xxx",
});
const product = await admin.products.create({
name: "Demo Product",
});
const token = await admin.tokens.apply({
product_id: product.product_id,
user_id: "user_123",
ttl: "30m",
});需要调用管理侧插件路由时,使用 plugin(id):
const events = await admin.plugin("usage").get("events");文档
- 仓库首页:visiblebase
- 文档目录:homepage/content/docs
