Skip to main content

选择正确入口

项目 Chat DTO 和内容解析器支持 type: input_audio,其中 input_audio.data 为纯 Base64,format 指明实际音频格式。它不是文件路径、URL,也不带 data:audio/...;base64, 前缀。示例选择 WAV;其他格式必须由实际模型与渠道确认,不照搬 OpenRouter 的格式清单。

支持和响应边界

先确认模型支持音频输入与 Chat 文本输出。/v1/models 可见不等于具备此能力。原生 OpenAI 兼容转发可以携带该结构;跨协议转换可能采用不同媒体规则,不能保证支持任意格式。若接口要求 multipart,应换用转写入口,而不是把文件上传参数塞进 Chat JSON。 请求 DTO 还定义了 modalities / audio,但音频输出和只读文本示例不是同一契约。部分原生上游可返回 message.audio 或流式 delta.audio;强制格式化和协议转换可能丢失扩展,当前消息 DTO 也没有声明助手 audio.id 续聊字段,不承诺音频 ID 回放。需要生成文件优先使用已提供的语音接口;音频 Chat 流不能交给纯文本 SSE 解析器处理。 示例只读一个最多 5 MiB 的普通 WAV 文件,检查 RIFF/WAVE 标记。它不完整解码音频,也不验证采样率、时长或上游大小限制;改扩展名不会转码。Base64 会增大请求体。选择获准发送的录音,回答也可能包含录音中的敏感内容。 脚本发送一次请求,不自动重试;只接受一个正常完成、无拒答和工具调用的文本结果,不打印 Base64 或私有推理。本地校验只验证编码和协议,不验证听写、说话人区分或模型识别质量。 源码依据:relaykit/dto/openai_request.go、relay/channel/openai/adaptor.go。参见 Chat API 和 OpenAI 内容块参考。

可运行示例

从文档目录运行。配置见 REST 运行时;复制脚本时保留同目录的 http-client.mjs。
Read in English