大模型“男友”很能“撩”?我用10分钟证实了!

最近AI圈的大事可谓是一件接一件,前有国产黑马 DeepSeek,现在又有一夜刷屏的 Manus,科技圈的故事可谓是一浪接一浪!

大模型对话式语音 AI 智能体结合,会擦出什么样的火花?

网易云信对话式语音 AI 智能体带给你答案!

Ta 可以成为应用内专治午夜“孤独症”的赛博知己,情绪价值拉满

当用户说【今天好累】,Ta能陪用户一起吐槽、给用户加油打气!

当用户说【这个事儿没做好】,Ta能冷静分析,给用户力量与安全!

Ta 既可以是用户的“满级社交搭子”,更可以是随用户需求 72 变的理想“男友”

当然,Ta 还可以出现在多种互动场景中,比如 AI 口语教练、企业会议智能助手、电商咨询导购、心理咨询诊前助理等。

本文将通过简单的几行代码实现 AI 智能体在虚拟角色互动情感陪伴场景下的 Web 端接入示例。

前期准备

  • 网易云信后台创建账号应用,获取 appkey。

  • 通过网易云信服务端接口获取加入RTC 房间的 token。

项目集成

1. NPM 引入需要的库

创建一个新项目,在终端 cd 到项目目录下,执行 npm install 下载 RTC SDK 到本地。

 "dependencies": {    ...    "nertc-web-sdk": "^5.6.50",    ...  }

2.引入依赖,进行 SDK 初始化和事件监听。

import NERTC from "nertc-web-sdk/NERTC"
const client = NERTC.createClient({  appkey: "4727023efa9******3b32e819bd5b",})// 监听 stream-added 事件,订阅 AI 数字人的远端流client.on("stream-added", e => {    const remoteStream = e.stream    client.subscribe(remoteStream, { audio: true, video: false })    client.startAsrCaptions("AUTO")})// 监听 stream-subscribed,订阅到 AI 数字人后调用 play()client.on("stream-subscribed", e => {    const remoteStream = e.stream    if (e.mediaType === "audio") {      const div = document.getElementById("remote-container")      remoteStream.play(div, { audio: true, video: false })    }})// 字幕回调client.on("asr-captions", (data) => {    data.forEach(item => {      const { srcUid, text, isFinal } = item;      ...    })})

3. 用户加入房间

初始化之后,调用 join 和 initLocalStream 方法加入到房间初始化本地流。​​​​​​​

await client.join({    channelName: this.channelName,    uid: this.uid,    // 调试模式下可设置为 null。正式上线前设置为相应的 token    token: null  })await this.initLocalStream()...async initLocalStream() {  const localStream = NERTC.createStream({    audio: true,    video: false,  })  localStream.setAudioProfile("music_standard")  await localStream.init()  await client.publish(localStream)}

4.开启实时字幕

调用 startAsrCaptions 方法开启实时字幕

await client.startAsrCaptions("AUTO")

5.关闭实时字幕

调用 stopAsrCaptions 方法关闭实时字幕

await client.stopAsrCaptions()

6.AI 数字人加入房间

通过请求服务端接口:https://doc.yunxin.163.com/nertc/server-apis/jQzOTE2NTc?platform=server 让数字人加入到当前 RTC 房间,cname 传用户加入房间时候传的 cname。

​​​​​​​

try {    const result = await axios.post(      "https://rtc-ai.netease.im/ai/task/create",      {        cname: this.channelName,        appkey: this.appkey,        taskType: 7,        data: {          asr: {            asrVendor: 1,          },          llm: {            llmVendor: 5,            role: 14,          },          tts: {            ttsVendor: 6          }        },      },      {        headers: {          AppKey: this.appkey,          Cname: this.channelName,          Uid: 10000,          Token: "",        },      },    )    // 这里缓存下加入房间之后的房间 cid taskId,后续调用接口让 AI 虚拟人离开房间要用到这个参数    this.cid = result.data.cid    this.taskId = result.data.result.taskId  } catch (error) {    console.log(error)  }

7. AI 数字人离开房间

通过请求服务端接口:https://doc.yunxin.163.com/nertc/server-apis/jQzOTE2NTc?platform=server 让数字人离开当前 RTC 房间,cid taskId 传之前加入房间时缓存的值。

  • ​​​​​​​
try {    await axios.post(      "https://rtc-ai.netease.im/ai/task/close",      {        cname: this.channelName,        appkey: this.appkey,        taskType: 7,        taskId: this.taskId,        cid: this.cid,      },      {        headers: {          AppKey: this.appkey,          Cname: this.channelName,          Uid: 10000,          Token: "",        },      },)} catch (error) {    console.log(error)}

8.用户离开房间

调用 leave 方法离开房间

await client.leave()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值