@dialt/sdk

中文文档
0.66.0发布于 2026/11/04Apache-2.0TypeScriptES Module近 30 天下载 3155

用于 Dialt 实时和 HTTP API 的 TypeScript 和 JavaScript SDK

中文使用文档
文档目录5 节
  1. 安装
  2. 实时浏览器
  3. 实时节点.js
  4. HTTP API 密码
  5. 政策指导

@ 拨号/ sdk

预算选择语音会话;文本会话使用快或智能.

公共级别是预算、快速(默认)和智能。 设定 mode: { kind: 'dialt', instructions: 'Help callers.', brain: 'budget' } 在浏览器或预算节点中以3.33分/分(2分/小时)进行快速推理. 它唯一的分级限制是6个符合条件的股票声音,由服务器执行. 见 预算. 遗产 capacity: 'spot' 财务报告和审定财务报表 spot_fallback 的兼容性字段; 新呼叫从不使用已付回扣.

0.50.0版本增加了一等的TypeScript声明,一个无头的Node.js实时进入点和一个生成的HTTP客户端. 0.49.0版本制作 mode.instructions 需要:代理的角色只来自您的指示。 读取 移徙指南 升级前.

用于Dialt的TypeScript和JavaScript SDK. 一个软件包提供浏览器实时,无头节点.js实时和生成的HTTP API客户端.

安装

npm install @dialt/sdk

通过您的应用程序构建使用已安装软件包 。 不要在其中显示一个持续的 API 密钥 浏览器 JavaScript.

峡谷 脚本 SDK 指南 覆盖后端证书 路由, AudioWorklet 资产, 麦克风寿命周期, 输入选择, 事件, 工具, 再连接, 文本模式,节点.js和HTTP操作. 这个 WebSocket 指南 记录电线协议.

实时浏览器

根导出和 @dialt/sdk/browser 等同起来。 他们拥有浏览器麦克风捕获,回声取消和回放.

实验助理中断使用 mode.assistant_interruptions: 'off' | 'pauses' | 'speech',默认为 'off'。在新的单语语音会话上启用一个模式,并提供说明助手应何时中断的指示。 见 助理中断 用于同口生后继限制,声学驳船保护和恢复行为. Node.js使用相同的模式字段.

每届会议 mode.instructions:客户授权的开发者关于应用角色,目标,知识,政策和任务行为的指示. Dialt的平台迅速结合了平台规则,选择了语音指导,并调用事实. new DialtClient() 当指令缺失或空白时丢出, 服务器拒绝这样开始 missing_instructions。 。 。 .

mode.voice 选择带有默认发音/发音和相接语音指导的合成身份; 3; mode.multilingual 选择试验性多语言指导。 既不选择应用程序角色 。 今天没有独立的客户风格,口音,交付或微调控制. 通过生成的文本,快速引导措辞和交付;综合接收该文本和语音/设置,而不是集合的系统即时发送。 开发者指令与平台内容共享已组装的系统信息,因此意向性所有权并不能保证模型服从. 见 即时所有权和控制权限制。 。 。 .

const client = new DialtClient({
  apiKey: credential.api_key,
  sessionId: credential.session_id,
  mode: {
    kind: 'dialt',
    instructions: 'You are a helpful voice assistant on a phone call. If a request is missing a key detail, ask one concise clarifying question.',
  },
});

实时节点.js

Node.js会话是无头的: 您的应用程序发送 16 kHz 单声道并消耗助理 PCM audio 事件。 设定 outputSampleRate 至 8000, 16,000( 默认值) 或 24000; 每个音频事件报告速度为 detail.sr。它只支持WebSocket的实时操作,不主张麦克风、扬声器、回声取消器或WebRTC的执行.

import { DialtSession } from '@dialt/sdk/node';

const session = new DialtSession({
  apiKey: credential.api_key,
  sessionId: credential.session_id,
  outputSampleRate: 24000,
  mode: { kind: 'dialt', instructions: 'Help callers with their orders.' },
});

session.addEventListener('audio', ({ detail }) => {
  if (detail.samples) play(detail.samples);
});
await session.connect();
await session.streamAudio(inputPcm, { chunkMs: 20 });

session.nowMs() 返回会话的单音节时钟。 对于客户拥有的回合边界,设置 mode.turn_detection 改为 client发送声音,然后呼叫 session.finishInputTurn()。 。 。 . session.sendClientEvent() 发送其他文件 client_event 控制系统.

HTTP API 密码

@dialt/sdk/http 由 Dialt 的 OpenAPI 合同生成。 仅在信任的后端使用持续的 API 密钥 .

import { createClient, listSessions } from '@dialt/sdk/http';

const http = createClient({ auth: process.env.DIALT_API_KEY });
const { data, error } = await listSessions({ client: http, query: { limit: 50 } });

对于确认的同期代理互换,呼叫 await client.handoffAgent({instructions, tools, voice?, context?, operationId?}). SDK 软件 生成 operationId 省略时; 它只与此活请求相关, 而不是重试 符号 。 它解决最终应用或拒绝的确认(可选队列保存) ),并仅在应用程序之后更新再连接重播状态。 在别人面前等待 模式设置器。 在超时或断开时,结果不确定,SDK不重试.

对于主机更新, await client.injectContext(text, { role: 'context', reply: true }) 忙碌时立即附加上下文 。 致谢 accepted: true, (中文(简体) ), reply_started: false,以及 queued: true 表示回复等待下一个闲置边界. 等待更新将合并为一个回复 。 保持不变 messageId 重试时的有效载荷 丢失的确认; 重放的收据描述原始接受。 重置、 转移 拆分和会话结束取消等待的答复 。 用户角色输入保留其繁忙的拒绝.

client.setMicEnabled(false) 打开当前和未来SDK拥有的麦克风音轨而不重启设备. 设置默认启用并持续到 startMic() 财务报告和审定财务报表 stopMic(),输入-设备倒置,获取已经在进行中的获取并重新连接到 setMicEnabled(true) 名为.

在Apache -2.0的许可.

政策指导

定义每条规则一次 mode.policy 与 id, (中文(简体) ), when,以及 do数字 :

{"include_instructions": true, "background_guidance": true,
 "rules": [{"id": "supervisor", "when": "The caller requests a supervisor.",
            "do": "Call request_supervisor and explain the tool result to the caller."}]}

两种开关都默认为真并独立工作. 通常申报和处理该工具; 现有许可检查仍然适用。 背景检查悄悄地输入关于 被审查的呼叫者或助理转身时没有要求其他答复或执行工具. 源码修订、旗帜更新/检索、出错和完成事件均通过 普通事件界面。 交货不是代理人遵守规定的证据.

政策规则的使用 id, (中文(简体) ), when 财务报告和审定财务报表 do; 遗留动作配置被拒绝. 见 政策合同。 。 。 .

语音选择是可选的,并使用来自 GET /v1/voices明确的声音优先于节省下来的偏好,然后是美国女性(us_female)是共享默认值。 语音线路独立于Dialt Fast或Dialt Smart. 爱尔兰男性保持稳定的钥匙 classic,和电路(circuit仍可选择. 区域关键是 us_female, (中文(简体) ), us_male, (中文(简体) ), british_male, (中文(简体) ), british_female, (中文(简体) ), mexican_female 财务报告和审定财务报表 brazilian_female英国女性和墨西哥女性西班牙女性保留了带有新语言身份的钥匙. southern_us_female 被接受的别名是: us_female将口音从美国南部改为美国通用英语. brazilian_male 被接受的别名是: brazilian_female包括女性自我参考。 异名作为重复的拾取选项不存在;在新集成中使用犬形键. 客户语音调节和语音创建/删除被移除. 以 stock 键替换已保存的有条件的语音密钥 GET /v1/voices,通过 listVoices 内 @dialt/sdk/http续会除非明确改变,否则保留其确认的股票语音身份。 爱尔兰人Male,Chime,Servo,Circuit,阿拉伯语声音和临时Hinglish Male保留了自己的身份. 见 目录和移徙指南。 。 。 . 本地拒绝空密钥; 未知、 已退休或无法使用的密钥返回服务器的 不可重试 invalid_voice 错误。 一个被拒绝的会中开关离开确认 语音不变,包括重新连接。 必须明确更换已退休的密钥.

版本与发布记录

@dialt/sdk 共发布 46 个版本,首次发布于 2026/09/02;过去 12 个月发布了 46 个版本。

版本发布日期距今
0.66.0latest2026/11/047 天前
0.65.02026/11/048 天前
0.63.02026/10/2716 天前
0.62.12026/10/2617 天前
0.62.02026/10/2320 天前
0.61.02026/10/2220 天前

关于 @dialt/sdk 的常见问题

@dialt/sdk 是什么?

用于 Dialt 实时和 HTTP API 的 TypeScript 和 JavaScript SDK

如何安装 @dialt/sdk?

在项目目录运行 npm install @dialt/sdk,或使用 pnpm add / yarn add / bun add。

@dialt/sdk 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@dialt/sdk 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@dialt/sdk 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@dialt/sdk 可以商用吗?

@dialt/sdk 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@dialt/sdk 的下载量有多少?

根据 npm 官方下载统计,@dialt/sdk 在 2026/10/12 – 2026/11/10 这 30 天内被下载 3,155 次,日均约 105 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dialt/sdk 还在维护吗?

最新版本 0.66.0 发布于 2026/11/04(7 天前);至今共发布 46 个版本,其中过去 12 个月发布了 46 个;首次发布于 2026/09/02。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。