@ elevenlabs/ 类型
11Labs API的TypeScript类型定义,由AsyncAPI规格自动生成.
概览
这个软件包为"11Labs"客户端和各种API(Agents,Scribe)之间交换的所有消息提供强烈的类型界面. 类型由AsyncAPI规格自动生成,以确保它们与API合同保持一致.
使用量
基本导入
import { Incoming, Outgoing } from "@elevenlabs/types";
// Handle incoming messages from the server
const handleAudio = (message: Incoming.AudioClientEvent) => {
console.log("Received audio:", message.audioEvent.audioBase_64);
};
// Send outgoing messages to the server
const userMessage: Outgoing.UserMessage = {
reservedType: "user_message",
reservedText: "Hello, agent!",
};
直接类型导入
// Import specific types directly
import {
Audio,
UserTranscript,
AgentResponse,
ConversationInitiation,
} from "@elevenlabs/types";
// Use types in your application
const audio: Audio = {
reservedType: "audio",
audioEvent: {
audioBase_64: "base64_encoded_audio",
eventId: 123,
},
};
类型
这些类型主要分为两类:
-
Incoming- 从11Labs服务器收到的消息- 探员 API:
AudioClientEvent- 经纪人提供的音频数据AudioAlignmentEvent- 字符级计时数据嵌入音频事件,用于文本对语音同步AgentResponseClientEvent- 代理人的文本回复UserTranscriptionClientEvent- 用户语音译名InterruptionEvent- 中断通知
- 扫描 API :
SessionStartedMessage- 开始记录会话PartialTranscriptMessage- 临时记录结果CommittedTranscriptMessage- 记录记录结果CommittedTranscriptWithTimestampsMessage- 以文字时间戳表示的结果ScribeErrorMessage- 错误事件ScribeAuthErrorMessage- 认证错误
- 探员 API:
-
Outgoing- 发送给 11Labs 服务器的信件- 探员 API:
UserMessage- 用户发来的短信UserFeedback- 用户反馈(类似/偏差)ConversationInitiation- 会议初始化ClientToolResult- 客户端工具执行的结果
- 扫描 API :
InputAudioChunk- 录音数据供抄录
- 探员 API:
发展
生成类型
类型由 AsyncAPI 规格自动生成 :
# Generate types from AsyncAPI spec
pnpm generate
# Build the package
pnpm build
# Type check without building
pnpm check-types
项目结构
packages/types/
├── schemas/
│ ├── agent.asyncapi.yaml # Agent API AsyncAPI specification
│ └── scribe.asyncapi.yaml # Scribe API AsyncAPI specification
├── scripts/
│ └── generate-all-types.ts # Generation script (processes all schemas)
├── generated/
│ └── types/
│ ├── asyncapi-types.ts # All generated types
│ ├── incoming.ts # Barrel export for incoming messages
│ └── outgoing.ts # Barrel export for outgoing messages
└── src/
└── index.ts # Main entry point with organized exports
添加新类型
- 更新相应文件中的 AsyncAPI 规格( 例如 ),
schemas/agent.asyncapi.yaml或者说schemas/scribe.asyncapi.yaml(中文(简体) ) - 运行
pnpm generate以从所有方案重生类型Script - 这些类型将在相应的命名空间自动可用
添加新 API Schemas 选项
- 在其中创建新的 AsyncAPI 规格
schemas/带有命名模式*.asyncapi.yaml - 运行
pnpm generate- 脚本将自动发现和处理所有计划文件 - 生成的类型将合并到现有的类型输出中