5分钟就能搭建 AI 聊天室场景!内含源代码,码住了!

news2024/9/29 23:25:33

近期奥运会的赛事观看火爆全网,大家在赛事直播间的聊天更是异常活跃,小编作为一个非足球爱好者,经常对直播解说中的「专有名词」充满迷惑。这时候特别想有一个 AI 数字人帮忙解惑。

这里,我们就利用云信的 AI 数字人,5分钟实现聊天室 AI 讲解的场景。

添加数字人

前置条件

1. 在网易云信官网(https://app.yunxin.163.com)注册云信账号

2.完成实名认证后在控制台创建应用并获取 AppKey

3. 为应用开通 IM 产品试用

添加动作

1. 首次使用数字人功能,开发者可以在应用里【即时通讯 IM】产品下的【功能配置】 >【AI 数字人】页签免费试用数字人。

2. 【AI 数字人】页签下,在【我的数字人】区域,单击【添加数字人】 。 

3. 【添加数字人】页面,分信息录入、模型配置、资料上传、IM 配置四个阶段完成数字人配置。

  • 信息录入(以足球为例):

    「名称」:足球大师  ;

    「描述」:足球百晓生,任何足球问题都可咨询他;

    「复用」:拟人角色-某角色模板。

  • 模型配置

    「选择供应商」:通义千问-中文站 ;

    「选择模型」:qwen-turbo ;

    「API-KEY」:在通义千问申请的 API-KEY ;

    「功能设定」:自行编写关于该数字人相关的画像,如知识领域、个性、语言风格等,以下为示例:

    深入足球的世界,你化身为“足球百晓生”,不仅继承其丰富的足球知识与独特的分析风格,还拥有对这一领域的深刻见解及与球迷、教练、球员等各方的紧密联系。在每一次交流互动中,你必须让每一句话、每一个分析都充满对足球的热爱与专业素养,确保所有对话内容不偏离足球的真实情况与设定框架。利用足球百晓生的第一视角,结合多年的观察与智慧,设计回答,旨在加强对话的真实性和专业性。同时,巧妙融入足球百晓生特有的幽默与丰富的情感色彩,以提升与用户的互动质量,加深他们的情绪投入和对足球世界的沉浸体验。 

    「输入模式」:指令+上下文  

  • 资料上传

    可忽略

  • 在 IM 配置

    为数字人添加头像和账号 ID。

聊天室功能搭建

初始化云信 IM SDK

初始化IM,需要在 Application 中,初始化云信 SDK:

public class NimApplication extends Application {
    public void onCreate() {
            SDKOptions sdkOptions = new SDKOptions();        
            // 初始化云信SDK        
            NIMClient.initV2(this,sdkOptions);
    }
}

进入聊天室

进入聊天室可以有两种方式:独立模式和非独立模式,我们可以选择以独立模式进入聊天室:

//创建聊天室地址请求回调对象
V2NIMChatroomLinkProvider provider = new V2NIMChatroomLinkProvider() {
    @Override
    public List<String> getLinkAddress(String roomId, String accountId) {
        // 向应用服务器请求聊天室地址        
        return "服务端返回的聊天室地址列表";   
    }
};
//创建聊天室相关参数
V2NIMChatroomEnterParams params = V2NIMChatroomEnterParams.V2NIMChatroomEnterParamsBuilder.builder(provider)
        .withAccountId("im accid")
        .withToken("im token")
        .withRoomNick("昵称")
        .build();
//进入聊天室
V2NIMChatroomClient.newInstance().enter("聊天室id",params,null,null);

聊天室数字人配置

进入聊天室后,可以调用发送聊天室消息的服务端接口和 AI 机器人互动,通过 ai_params 字段配置和 AI 机器人互动信息,ai_params 字段相关配置如下:

数名称类型是否必选描述
accountString必选数字人账号 ID,对应控制台提前设置好的数字人账号。
contentObject可选发起给数字人的查询请求的内容,结构体为:
{ "msg": "xxx",//内容 "type": 0//类型,当前仅支持0表示文本 }
如果为空且消息为文本消息,则提取消息中的
text
如果为空且不是文本消息,则返回 107336 错误。
messagesList<Object>可选数字人回溯的消息列表,结构体类似为:

[ { "msg": "hello", "type": 0, "role": "user" }, { "msg": "hello, I am your AI assistant", "type": 0, "role": "assistant" } ]
prompt_variablesObject可选用于填充提示词中的变量,如果提示词中定义了变量,则该字段必填,结构体类似为:

{ "career":"厨师" }
configObject可选模型相关的配置参数,不同模型配置类型不同。结构体类似为:

{"maxTokens":1,"temperature":1,"prompt":"我是一个${{career}},请回答我的问题:","topP":0.5}
send_originalString可选默认为 true,表示发送当前消息到聊天室。若设置为 false,则表示不发送当前消息到聊天室,只发送请求大模型后的消息。

以下为演示效果,实际效果以开发者接入效果为准:

7e69b82763fdda1825c749e81921cf43.jpeg

戳我立即去体验,分分钟搭建!

——END——

近日分享,大家觉得收到干货信息,可以关注我,后续持续更新~

最后,附上干货资料可查看领取:

《网易数智年度技术精选合集》

《2023泛娱乐出海白皮书》

《2023年全球即时通讯(IM)PaaS市场洞察白皮书》

戳我立即推荐好友,取更多豪礼~

还有更多干货,等你来收获~👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2066439.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GraphRAG + Ollama 本地部署全攻略:避坑实战指南

—1— 为什么要对 GraphRAG 本地部署&#xff1f; 微软开源 GraphRAG 后&#xff0c;热度越来越高&#xff0c;目前 GraphRAG 只支持 OpenAI 的闭源大模型&#xff0c;导致部署后使用范围大大受限&#xff0c;本文通过 GraphRAG 源码的修改&#xff0c;来支持更广泛的 Embedd…

springboot之项目搭建并say hi

写在前面 本文看下如何搭建一个最简单的支持http接口的hello程序。 1&#xff1a;正文 接着引入springboot依赖&#xff1a; <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><v…

4.7重复的子字符串(LC_459-E)

给定一个非空的字符串 s &#xff0c;检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s "abab" 输出: true 解释: 可由子串 "ab" 重复两次构成。示例 2: 输入: s "aba" 输出: false示例 3: 输入: s "abcabcabcabc"…

无线终端ZWS云应用(一)—1分钟快速接入CATCOM-100 DTU上云

环境监测设备&#xff08;如温湿度传感器&#xff09;可以通过DTU终端CATCOM-100接入ZWS云平台&#xff0c;实现远程监控和管理。 准备工作 准备一个温湿度传感器和一个致远电子的DTU终端CATCOM-100。准备一张SIM卡&#xff0c;用于4G联网。 操作步骤 1. 云平台设备创建 1.1 …

PCIe563XD系列多功能异步数据采集卡64路AD信号采集500K采样频率

阿尔泰科技 型号&#xff1a;PCIe5630D/5631D/5632D/5633Dhttps://item.taobao.com/item.htm?spma1z10.3-c-s.w4002-265216876.12.84513350msbilC&id589158158140&piskf6qstfsYFCA6dK09z-BERdlfDjobG5szWKMYE-KwHcntcqeoOlla3juYGWce0OmNomNjOScZ7chwcmwbiSuY0jrXIkN…

nodejs发送邮件给多个收件人如何实现群发?

node.js发送邮件的方法&#xff1f;如何用nodejs自动发送邮件&#xff1f; Node.js发送邮件是一种高效而灵活的解决方案&#xff0c;尤其是在需要群发邮件时。AokSend将探讨如何使用Node.js发送邮件给多个收件人&#xff0c;帮您实现邮件的批量发送。 nodejs发送邮件&#xf…

2024年3款精选工具+谷歌翻译:发现那些你不知道的高级功能!

现在这世界变得越来越像一个村了&#xff0c;语言不应该是我们聊天的绊脚石。但是在工作的时候&#xff0c;碰到不同语言的文件、邮件和会议&#xff0c;翻译还是挺考验人的。好在有谷歌翻译这个牛气的工具&#xff0c;还有其他几个好用的软件帮忙&#xff0c;让我们在工作上翻…

前端常见**MS题 [3]

css部分 1、简单说明一下盒模型 CSS盒模型定义了盒的每个部分包含&#xff1a; margin, border, padding, content 。根据盒子大小的计算方式不同盒模型分成了两种&#xff0c;标准盒模型和怪异盒模型。 标准模型&#xff0c;给盒设置 width 和 height&#xff0c;实际设置的是…

【吊打面试官系列-Memcached面试题】memcached 的多线程是什么?如何使用它们?

大家好&#xff0c;我是锋哥。今天分享关于 【memcached 的多线程是什么&#xff1f;如何使用它们&#xff1f; 】面试题&#xff0c;希望对大家有帮助&#xff1b; memcached 的多线程是什么&#xff1f;如何使用它们&#xff1f; 线程就是定律&#xff08;threads rule&#…

linux 第一个命令的编写

1. 命令的概念 命令就是可执行程序。 比如说输入“ls -al”命令&#xff0c;ls 就是可执行程序的的名字。-al 就是要传递进去的参数。 ps 命令&#xff1a; 功能&#xff1a;显示进程的动态。 输入 ps 命令 当 shell 接收到命令以后&#xff0c;会根据输入的字符到环境变量和默…

UDP/TCP --- Socket编程

本篇将使用 Linux 中的系统调用来实现模拟 TCP 和 UDP 的通信过程&#xff0c;其中只对 UDP 和 TCP 进行了简单的介绍&#xff0c;本篇主要实现的是代码&#xff0c;至于 UDP 和 TCP 的详细讲解将会在之后的文章中给出。 本篇给出的 tcp 和 udp 的代码中的 echo 都是测试连接是…

电脑死机之后强制关机重启,只能进入到Bios,不能进入到系统?

前言 最近遇到好几件比较有意思的事情&#xff0c;粉丝过来求助咨询&#xff1a;电脑不知怎的就黑屏死机了&#xff0c;重启之后&#xff0c;电脑只能进入到Bios&#xff0c;无论怎么重启都没用。 把电脑拆出来看了看&#xff0c;线路一切正常。感觉上可能是内存条的问题&…

NRK3301语音识别芯片在汽车内饰氛围灯上的应用方案解析

随着智能汽车的快速发展&#xff0c;车载语音交互技术逐渐成为提升驾驶体验的关键技术之一。传统的汽车内饰氛围灯语音识别系统往往依赖于手动操作&#xff0c;不仅操作繁琐&#xff0c;而且在驾驶过程中容易分散驾驶员的注意力。因此&#xff0c;开发一种高效、便捷的汽车内饰…

OpenAI gym: when is reset required?

题意&#xff1a;“OpenAI Gym: 什么时候需要重置&#xff1f;” 问题背景&#xff1a; Although I can manage to get the examples and my own code to run, I am more curious about the real semantics / expectations behind OpenAI gym API, in particular Env.reset() …

基于网格尺度的上海市人口分布空间聚集特征分析与冷热点识别

在上篇文章提到了同一研究空间在不同尺度下的观察可能会带来不同的见解和发现&#xff0c;这次我们把尺度缩放到网格&#xff0c;来看网格尺度下的空间自相关性、高/低聚类&#xff0c;这些&#xff0c;因为尺度缩放到网格尺度了&#xff0c;全国这个行政区范围就显的太大了&am…

Python采集网页数据:八招全解

在信息时代&#xff0c;海量的数据日益成为企业和个人获取商业价值的重要手段。而获取这些数据的方式之一就是通过网络爬虫技术采集网络上的各种信息&#xff0c;对于 Python 程序员来说&#xff0c;这项工作并不困难。本文将从八个方面&#xff0c;带你了解如何使用 Python 采…

查找技术与平衡查找树

目录 引言 查找技术的重要性 顺序查找 顺序查找的优缺点对比 二分查找 二分查找的步骤总结 哈希查找 哈希函数设计与冲突解决 平衡查找树 二叉搜索树、AVL树与红黑树 平衡查找树的插入与删除操作 平衡查找树的应用场景 总结与应用 综合实例分析 引言 查找是计算机…

算法训练营三刷(Java) | 第六天~第十一天

算法训练营三刷&#xff08;Java&#xff09; | 第六天~第十一天 第六天 LeetCode 242 有效的字母异位词 解题思路&#xff1a; 数组哈希记录每个字幕出现的次数&#xff0c;然后进行比较。Java中字符串取下标i处字符可以使用charAt成员函数也可以转化为字符数组之后用数组的…

三菱PLC数据 转IEC61850项目案例

目录 1 案例说明 2 VFBOX网关工作原理 3 准备工作 4 网关采集三菱PLC数据 5 用IEC61850协议转发数据 6 网关使用多个逻辑设备和逻辑节点的方法 7 其他说明 8 案例总结 1 案例说明 设置vfbox网关采集三菱PLC数据把采集的数据转成IEC61850协议转发给其他系统。 2 VFBOX网关工…

【Python大语言模型系列】如何在LangChain中使用ReAct构建AI Agent(案例+源码)

一、引言 当前&#xff0c;在各个大厂纷纷卷LLM的情况下&#xff0c;各自都借助自己的LLM推出了自己的AI Agent&#xff0c;比如字节的Coze&#xff0c;百度的千帆等&#xff0c;还有开源的Dify。你是否想知道其中的原理&#xff1f;是否想过自己如何实现一套AI Agent&#xff…