Unity+百度文心大模型驱动AI小姐姐数字人

news2024/12/26 22:48:32

1.简述

        最近看到新闻,说是百度、字节、商汤、百川、智普等几家企业及机构所发布的生成式大语言模型,通过了《生成式人工智能服务管理暂行办法》,成为首批获得官方备案的大语言模型服务提供商。虽然一直在使用包括文心一言、chatglm这些大语言模型的,但这次好像用着合法合规,有了保障的感觉。

        关于百度的文心一言,也是继chatgpt发布以来国内首发跟进,发布的大语言模型了。从文心一言的官方应用上,并没有找到api的使用入口,让我一度以为百度没有开放相关的接口服务。文心一言官方传送门:

https://yiyan.baidu.com/icon-default.png?t=N7T8https://yiyan.baidu.com/        直到有一天下午接到百度AI开放平台的客户回访,顺便咨询了一下文心一言的API相关的问题,才了解到,在百度的千帆大模型平台上,是有提供针对百度自研模型的API服务的。所以简单看了一下千帆大模型平台,果然是有大语言模型的API入口,不止提供有百度的文心一言大模型,也提供了几个主流大语言模型的公共服务。所以,就将百度文心大模型的API服务集成到我的AI二次元姐姐项目里,这样大家又多了一个国内合法的选择了,百度智能云平台传送门:

https://cloud.baidu.com/icon-default.png?t=N7T8https://cloud.baidu.com/        接下来,我将介绍一下如何在百度智能云平台上,开通大语言模型服务,以及如何使用我的AI工具包,在Unity上部署实现AI二次元小姐姐聊天应用。

2.开通大语言模型应用

       2.1 千帆大模型平台

        使用百度文心大模型应用,首先我们需要注册一个百度账号,这里就不再赘述了。注册账号后,根据上节内容中提到的百度智能云平台,点击链接进入到官方站点。

        进入到官方平台页面后,我们可以在顶部的菜单栏里找到【产品->AI开发平台->文心千帆大模型】,从这个入口就可以找到我们需要的文心大模型服务了。

        点击文心千帆大模型平台,进入到大模型平台页面,这里我们可以查看文心千帆大模型所提供的各种能力。

        能够提供的大语言模型,根据官方文档我们可以了解到,千帆大语言模型平台支持的生成式AI模型包括百度自研的文心一言、文心一格,也包含了多个第三方大模型,如chatGLM、Llama、RWKV,也支持stable diffusion图片生成模型,总体上看还是很强大的。

        这里,我们需要的是利用文本生成模型来驱动我们的AI数字人的,所以只需要使用文本生成模型就可以满足我们的需求。百度智能云平台提供了若干种大语言模型的公共服务,我们可以直接使用,包括文心大模型以及一些第三方模型。可支持的大语言模型可详细查看官方文档。

       2.2 创建大模型应用

        在使用文心大模型之前,我们首先需要创建一个大模型应用,只需要点击文心大模型主页上的【立即使用】按钮,就可以跳转到控制台界面(请先登录账号),在控制台页面中,找到“应用接入”,点击进入到应用创建的页面。

        在应用创建视图下,点击“创建应用”,进入到应用创建页面。根据平台的提示,填写应用名称和描述信息,可用的大模型公共服务,平台默认全部勾选了,可以不用管,直接提交创建,这样我们就完成了应用的创建操作。

        应用创建成功之后,就可以在控制台界面中找到应用的api key以及secret key这两个密钥,妥善保管好,后面我们会用到。

        2.3 开通模型付费

        平台所提供大语言模型公共服务,需要我们开通付费后,才能使用。百度千帆大模型平台的模型服务采用的是,按量计费模式,我们先开通模型服务付费之后,再根据使用的token数量,计算费用。我们可以在控制台界面的上方,找到计费管理按钮,点击就可以进入到计费开通界面了。

        平台提供的公共模型服务的价格,可以在视图中查看,100万token的价格在几块钱至十几块钱不等,可以根据自己的需求,选择模型进行开通即可。

        开通模型付费后,咱们就可以使用相应的模型服务了,接下来,咱们就可以在unity端,进行API对接的代码实现了。

3.API服务对接

        千帆大模型平台的API对接流程,和百度AI开放平台的其他服务对接的流程是类似,首先,需要使用应用创建后,拿到的api key以及secret key,通过百度的鉴权api,拿到授权token,这个access token的有效期是30天,可以根据需要更新即可。获取到token后,在大语言模型API对接流程中,我们需要根据所选择的语言模型的访问地址,将token拼接到url中,再进行服务的访问。

        接下来,我们来看看详细的对接过程的代码实现吧。

3.1 鉴权接口

        百度应用服务的鉴权接口访问,需要提供应用的api key以及secret key,这两个密钥在我们创建应用后,可以在控制台找到。获取access token的api地址如下:

https://aip.baidubce.com/oauth/2.0/tokenicon-default.png?t=N7T8https://aip.baidubce.com/oauth/2.0/token

        代码示例:

using Newtonsoft.Json.Linq;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;

public class BaiduSettings : MonoBehaviour
{
    #region 参数定义
    /// <summary>
    /// API Key
    /// </summary>
    [Header("填写应用的API Key")] public string m_API_key = string.Empty;
    /// <summary>
    /// Secret Key
    /// </summary>
    [Header("填写应用的Secret Key")] public string m_Client_secret = string.Empty;
    /// <summary>
    /// 是否从服务器获取token
    /// </summary>
    [SerializeField] private bool m_GetTokenFromServer = true;
    /// <summary>
    /// token值
    /// </summary>
    public string m_Token = string.Empty;
    /// <summary>
    /// 获取Token的地址
    /// </summary>
    [SerializeField] private string m_AuthorizeURL = "https://aip.baidubce.com/oauth/2.0/token";
    #endregion


    private void Awake()
    {
        if (m_GetTokenFromServer)
        {
            StartCoroutine(GetToken(GetTokenAction));
        }
      
    }


    /// <summary>
    /// 获取到token
    /// </summary>
    /// <param name="_token"></param>
    private void GetTokenAction(string _token)
    {
        m_Token = _token;
    }

    /// <summary>
    /// 获取token的方法
    /// </summary>
    /// <param name="_callback"></param>
    /// <returns></returns>
    private IEnumerator GetToken(System.Action<string> _callback)
    {
        //获取token的api地址
        string _token_url = string.Format(m_AuthorizeURL + "?client_id={0}&client_secret={1}&grant_type=client_credentials"
            , m_API_key, m_Client_secret);

        using (UnityWebRequest request = new UnityWebRequest(_token_url, "GET"))
        {
            request.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
            yield return request.SendWebRequest();
            if (request.isDone)
            {
                string _msg = request.downloadHandler.text;
                TokenInfo _textback = JsonUtility.FromJson<TokenInfo>(_msg);
                string _token = _textback.access_token;
                _callback(_token);

            }
        }
    }


    /// <summary>
    /// 返回的token
    /// </summary>
    [System.Serializable]
    public class TokenInfo
    {
        public string access_token = string.Empty;
    }
}

3.2 大语言模型API对接

       3.2.1 请求参数说明

        获取到access token之后,我们就可以根据文心大模型的api文档,进行接口对接了。不同模型的接口地址略有差异,我们可以通过查阅API文档,获取到各个模型的访问地址,API文档地址如下:

https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Nlks5zkzuicon-default.png?t=N7T8https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Nlks5zkzu        通过文档查阅,我们可以发现,千帆大模型平台提供的公共模型服务的访问地址,前面的地址是一样,只有模型名称的差异,注意这点就可以了,我们具体看一下接口的要求。

请求地址(示例):

 https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/根据模型而定
名称
Content-Typeapplication/json

        关于access token,我们将token拼接在url里即可,以下是url示例:

 https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/根据模型而定?access_token=token值

        需要发送的报文结构

名称类型必填描述
messagesList(message)聊天上下文信息。说明:
(1)messages成员不能为空,1个成员表示单轮对话,多个成员表示多轮对话
(2)最后一个message为当前请求的信息,前面的message为历史对话信息
(3)必须为奇数个成员,成员中message的role必须依次为user、assistant
(4)最后一个message的content长度(即此轮对话的问题)不能超过2000个字符;如果messages中content总长度大于2000字符,系统会依次遗忘最早的历史会话,直到content的总长度不超过2000个字符
temperaturefloat说明:
(1)较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定
(2)默认0.95,范围 (0, 1.0],不能为0
(3)建议该参数和top_p只设置1个
(4)建议top_p和temperature不要同时更改
top_pfloat说明:
(1)影响输出文本的多样性,取值越大,生成文本的多样性越强
(2)默认0.8,取值范围 [0, 1.0]
(3)建议该参数和temperature只设置1个
(4)建议top_p和temperature不要同时更改
penalty_scorefloat通过对已生成的token增加惩罚,减少重复生成的现象。说明:
(1)值越大表示惩罚越大
(2)默认1.0,取值范围:[1.0, 2.0]
streambool是否以流式接口的形式返回数据,默认false
user_idstring表示最终用户的唯一标识符,可以监视和检测滥用行为,防止接口恶意调用

message说明

名称类型描述
rolestring当前支持以下:
user: 表示用户
assistant: 表示对话助手
contentstring对话内容,不能为空

 3.2.2 响应参数说明

        以下是后台响应的报文结构

名称类型描述
idstring本轮对话的id
objectstring回包类型
chat.completion:多轮对话返回
createdint时间戳
sentence_idint表示当前子句的序号。只有在流式接口模式下会返回该字段
is_endbool表示当前子句是否是最后一句。只有在流式接口模式下会返回该字段
is_truncatedbool当前生成的结果是否被截断
resultstring对话返回结果
need_clear_historybool表示用户输入是否存在安全,是否关闭当前会话,清理历史会话信息
true:是,表示用户输入存在安全风险,建议关闭当前会话,清理历史会话信息
false:否,表示用户输入无安全风险
ban_roundint当need_clear_history为true时,此字段会告知第几轮对话有敏感信息,如果是当前问题,ban_round=-1
usageusagetoken统计信息,token数 = 汉字数+单词数*1.3 (仅为估算逻辑)

usage说明

名称类型描述
prompt_tokensint问题tokens数
completion_tokensint回答tokens数
total_tokensinttokens总数

注意 :同步模式和流式模式,响应参数返回不同,详细内容参考示例描述。

  • 同步模式下,响应参数为以上字段的完整json包。
  • 流式模式下,各字段的响应参数为 data: {响应参数}。

3.2.3 代码示例

        以下是访问大语言模型API服务的完整代码示例

 /// <summary>
    /// token脚本
    /// </summary>
    [SerializeField] private BaiduSettings m_Settings;
    /// <summary>
    /// 历史对话
    /// </summary>
    private List<message> m_History = new List<message>();
    /// <summary>
    /// 选择的模型类型
    /// </summary>
    [Header("设置模型名称")]
    public ModelType m_ModelType = ModelType.ERNIE_Bot_turbo;

    /// <summary>
    /// 初始化
    /// </summary>
    private void OnInit()
    {
        m_Settings = this.GetComponent<BaiduSettings>();
        GetEndPointUrl();
    }




    /// <summary>
    /// 发送消息
    /// </summary>
    /// <returns></returns>
    public override void PostMsg(string _msg, Action<string> _callback)
    {
        base.PostMsg(_msg, _callback);
    }


    /// <summary>
    /// 发送数据
    /// </summary> 
    /// <param name="_postWord"></param>
    /// <param name="_callback"></param>
    /// <returns></returns>
    public override IEnumerator Request(string _postWord, System.Action<string> _callback)
    {
        stopwatch.Restart();

        string _postUrl = url + "?access_token=" + m_Settings.m_Token;
        m_History.Add(new message("user", _postWord));
        RequestData _postData = new RequestData
        {
            messages = m_History
        };

        using (UnityWebRequest request = new UnityWebRequest(_postUrl, "POST"))
        {
            string _jsonData = JsonUtility.ToJson(_postData);
            byte[] data = System.Text.Encoding.UTF8.GetBytes(_jsonData);
            request.uploadHandler = (UploadHandler)new UploadHandlerRaw(data);
            request.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();

            request.SetRequestHeader("Content-Type", "application/json");

            yield return request.SendWebRequest();

            if (request.responseCode == 200)
            {
                string _msg = request.downloadHandler.text;
                ResponseData response = JsonConvert.DeserializeObject<ResponseData>(_msg);

                //历史记录
                string _responseText = response.result;
                m_History.Add(new message("assistant", response.result));

                //添加记录
                m_DataList.Add(new SendData("assistant", response.result));
                //回调
                _callback(response.result);

            }

        }


        stopwatch.Stop();
        Debug.Log("chat百度-耗时:" + stopwatch.Elapsed.TotalSeconds);
    }


    /// <summary>
    /// 获取资源路径
    /// </summary>
    private void GetEndPointUrl()
    {
        url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/" + CheckModelType(m_ModelType);
    }

    /// <summary>
    /// 获取资源
    /// </summary>
    /// <param name="_type"></param>
    /// <returns></returns>
    private string CheckModelType(ModelType _type)
    {
        if (_type == ModelType.ERNIE_Bot){
            return "completions";
        }
        if (_type == ModelType.ERNIE_Bot_turbo)
        {
            return "eb-instant";
        }
        if (_type == ModelType.BLOOMZ_7B)
        {
            return "bloomz_7b1";
        }
        if (_type == ModelType.Qianfan_BLOOMZ_7B_compressed)
        {
            return "qianfan_bloomz_7b_compressed";
        }
        if (_type == ModelType.ChatGLM2_6B_32K)
        {
            return "chatglm2_6b_32k";
        }
        if (_type == ModelType.Llama_2_7B_Chat)
        {
            return "llama_2_7b";
        }
        if (_type == ModelType.Llama_2_13B_Chat)
        {
            return "llama_2_13b";
        }
        if (_type == ModelType.Llama_2_70B_Chat)
        {
            return "llama_2_70b";
        }
        if (_type == ModelType.Qianfan_Chinese_Llama_2_7B)
        {
            return "qianfan_chinese_llama_2_7b";
        }
        if (_type == ModelType.AquilaChat_7B)
        {
            return "aquilachat_7b";
        }
        return "";
    }


    #region 数据定义
    //发送的数据
    [Serializable]
    private class RequestData
    {
        public List<message> messages = new List<message>();//发送的消息
        public bool stream = false;//是否流式输出
        public string user_id=string.Empty;
    }
    [Serializable]
    private class message
    {
        public string role=string.Empty;//角色
        public string content = string.Empty;//对话内容
        public message() { }
        public message(string _role,string _content)
        {
            role = _role;
            content = _content;
        }
    }

    //接收的数据
    [Serializable]
    private class ResponseData
    {
        public string id = string.Empty;//本轮对话的id
        public int created;
        public int sentence_id;//表示当前子句的序号。只有在流式接口模式下会返回该字段
        public bool is_end;//表示当前子句是否是最后一句。只有在流式接口模式下会返回该字段
        public bool is_truncated;//表示当前子句是否是最后一句。只有在流式接口模式下会返回该字段
        public string result = string.Empty;//返回的文本
        public bool need_clear_history;//表示用户输入是否存在安全
        public int ban_round;//当need_clear_history为true时,此字段会告知第几轮对话有敏感信息,如果是当前问题,ban_round=-1
        public Usage usage = new Usage();//token统计信息,token数 = 汉字数+单词数*1.3 
    }
    [Serializable]
    private class Usage
    {
        public int prompt_tokens;//问题tokens数
        public int completion_tokens;//回答tokens数
        public int total_tokens;//tokens总数
    }

    #endregion

    /// <summary>
    /// 模型名称
    /// </summary>
    public enum ModelType
    {
        ERNIE_Bot,
        ERNIE_Bot_turbo,
        BLOOMZ_7B,
        Qianfan_BLOOMZ_7B_compressed,
        ChatGLM2_6B_32K,
        Llama_2_7B_Chat,
        Llama_2_13B_Chat,
        Llama_2_70B_Chat,
        Qianfan_Chinese_Llama_2_7B,
        AquilaChat_7B,
    }

4. Unity端数字人配置

        项目的源码已经发布到Github了,我们可以直接下载,并导入到unity中使用,要求unity版本在2020.3.44及以上。导入工具包之后,可以在Scene文件夹下,找到示例场景,在场景中找到LLM->chatBaidu对象,这里就维护了百度文心大模型的驱动脚本。

        在unity编辑器端,选择chatBaidu对象之后,在属性面板里填写前面创建的应用密钥,并且选择好已经开通付费的大语言模型。

        配置一下聊天服务脚本,将AI驱动的脚本改成百度文心大模型的脚本。如果不需要使用语音服务的话,可以在配置栏里,关掉语音服务,这样就可以填写语音服务相关的东西了。

        上述配置完成,我们就可以使用百度文心大模型来驱动AI二次元小姐姐了。

5.结束语
       

        这次的文章简单介绍了百度文心大模型平台API的对接流程,并针对接口对接的流程进行了介绍,包括接口的鉴权、以及发送报文、响应报文的结构说明,并提供了针对全流程在unity端的实现代码示例。通过上述的代码实现,我们就可以在unity引擎中,使用百度文心大模型的api来驱动AI二次元小姐姐的对话交互。完整的代码工程可以从我的开源项目下载使用,项目包含了针对多种GPT应用的集成工具,以及语音服务的集成,对我这个项目感兴趣的朋友,可以上我的B站号查看,我也做有详细的教程,相关源码可以在的哔哩哔哩主站找到相关视频,在视频介绍以及评论区获取。

【Unity+文心一言】文心大模型API驱动AI小姐姐,Unity开源工具包,打造AI二次元小姐姐~


项目地址传送门:

AI二次元老婆开源项目(unity-AI-Chat-Toolkit):

Github地址:https://github.com/zhangliwei7758/unity-AI-Chat-Toolkit

Gitee地址:https://gitee.com/DammonSpace/unity-ai-chat-toolkit
 

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

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

相关文章

怒赞了,阿里P8面试官推荐的Java高并发核心编程文档

前言 学完阿里P8面试官推荐的Java高并发核心编程文档后&#xff0c;终于拿到了蚂蚁p6的offer&#xff0c;这份文档包含的内容有点多。 Java高并发核心编程文档《尼恩Java高并发三部曲》获读者怒赞&#xff01;获取方式见文末 文章目录 前言尼恩Java高并发三部曲卷1&#xff1…

适合引流的运动步数打卡抽奖小程序源码开发

要健康也要瘦&#xff1f;那么有一个可以让你悄悄改变还可以获取奖品的小程序简直不要太入心。用运动步数兑换奖品&#xff0c;每天运动一下&#xff0c;换点小礼品&#xff0c;简直不要太惬意。 运动步数兑换小程序核心亮点&#xff1a; 小程序与微信运动做了关联&#xff…

Android环境配置笔记

文章目录 一、各环境文档二、参考 一、各环境文档 Gradle官方的兼容性文档&#xff1a;Java Compatibility 更新日期&#xff1a;2023.9.12 Android Gradle插件版本&#xff1a;Android Gradle Plugin 二、参考 参考文章&#xff1a;Android问题记录

SS928搭建NNN环境

环境要求&#xff1a;ubuntu18.04 参考文件&#xff1a; 《ATC工具使用指南》《应用开发指南》《驱动和开发环境安装指南》 《昇腾模型压缩工具使用指南&#xff08;ONNX&#xff09;》 交叉编译器的安装-----------------------------------------------------------------…

C语言“牵手”淘宝商品评论数据方法,淘宝商品评论接口,淘宝商品评价接口,淘宝API接口申请指南

淘宝商品评论API是淘宝开放平台为开发者提供的一套应用程序编程接口&#xff0c;通过该接口&#xff0c;开发者可以获取到店铺所有商品的评价数据。 淘宝商品评论API包含以下接口&#xff1a; taobao.item.reviews.get&#xff1a;用于获取指定商品的评价数据&#xff0c;输入…

凯迪正大— 氧化锌避雷器检测仪

一、概述 RBZ-3B氧化锌避雷器直流参数测试仪是专门用于检测10kV及6KV电力系统用无间隙氧化锌避雷器MOA阀电间接触不良的内部缺陷&#xff0c;根据《电力设备预防性试验规程》DL/T596-1996中14.2的规定&#xff0c;发电厂、变电所在每年雷雨季前和必要时应该对金属氧化物避雷器…

基于ssm的商场管理信息系统的设计与实现

基于ssm的商场管理信息系统的设计与实现 前言 这个项目适合初学者熟悉框架的项目系统&#xff0c;前端框架采用layui全新回归版本2.8&#xff0c;界面更加丝滑。需要的记得扣我发源码哦&#xff01; 项目脑图 项目技术 前端技术&#xff1a;layui框架&#xff0c;JavaScrip…

USB适配器应用芯片 国产GP232RL软硬件兼容替代FT232RL DPU02直接替代CP2102

USB适配器&#xff0c;是英文Universal Serial Bus(通用串行总线)的缩写&#xff0c;而其中文简称为“通串线”&#xff0c;是一个外部总线标准&#xff0c;用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术&#xff0c; 移动PC由于没有电池&#xff0c;电源适配…

如何在群晖中,正确配置 docker 的 ipv6 地址

参考 2023年9月12日 https://synocommunity.com/ https://github.com/wangliangliang2/fix_synology_docker_ipv6 https://post.smzdm.com/p/an3np8m7/ 正文 关于这个话题&#xff0c;国内搜索引擎得到的结果出奇的一致&#xff0c;且过时。 &#xff08;看的我脑壳痛&#…

神经反馈设备使用感受2:采集Muse的EEG原始数据(转自知乎)

神经反馈设备使用感受2&#xff1a;采集Muse的EEG原始数据 转自知乎&#xff0c;内容很好&#xff0c;怕之后找不到 想了一下&#xff0c;单写一部分来介绍一下Muse在数据采集方面的操作。同时也解释一下我自己的EEG数据是从哪里采集的。 关于Muse EEG数据的精度&#xff0c;在…

避免90%以上IT故障,医院运维效率狂飙

一、故障发现到解决&#xff0c;仅用15分钟 一、问题描述 上午11点半左右&#xff0c;平台接到医院某软件PACS数据库离线和CPU使用率异常告警。 &#xff08;告警信息&#xff09; &#xff08;告警详情&#xff09; 二、查找问题的原因 cpu使用率时序图 从CPU使用率时序图中…

2022年全国研究生数学建模竞赛华为杯E题草原放牧策略研究求解全过程文档及程序

2022年全国研究生数学建模竞赛华为杯 E题 草原放牧策略研究 原题再现&#xff1a; 一、背景介绍   草原作为世界上分布最广的重要的陆地植被类型之一&#xff0c;分布面积广泛。中国的草原面积为3.55亿公顷&#xff0c;是世界草原总面积的6%~8%&#xff0c;居世界第二。此外…

Windows安装Neo4j

图数据库概述 图数据库是基于图论实现的一种NoSQL数据库&#xff0c;其数据存储结构和数据查询方式都是以图论&#xff08;它以图为研究对象图论中的图是由若干给定的点及连接两点的线所构成的图形&#xff09;为基础的&#xff0c; 图数据库主要用于存储更多的连接数据。 Neo…

1.Zigbee开发,环境搭建

一。环境搭建 1.开发环境 1.IAR开发环境搭建 2.TI官方必备软件安装 &#xff08;安装此文件&#xff0c;类似Cubemx不同型号stm32的固件库&#xff09;&#xff08;这是协议栈&#xff09; 3.仿真器及USB串口驱动安装 &#xff08;就是使用串口烧录到板子上所需要的软件&#…

PyTorch实现注意力机制及使用方法汇总,附30篇attention论文

还记得鼎鼎大名的《Attention is All You Need》吗&#xff1f;不过我们今天要聊的重点不是transformer&#xff0c;而是注意力机制。 注意力机制最早应用于计算机视觉领域&#xff0c;后来也逐渐在NLP领域广泛应用&#xff0c;它克服了传统的神经网络的的一些局限&#xff0c…

【IBMMQ】搭建测试队列

一、安装IBMMQ 网上有教程&#xff0c;可以学习 我用的IBMMQ7.5&#xff0c;安装教程 二、创建测试队列 进入工作台&#xff1a; 右击队列管理器&#xff0c;新建队列管理器 写队列管理器名称 点击下一步 点击下一步 点击下一步 端口默认为1414&#xff0c;建议换一个 注…

短视频引爆销售:TikTok如何改变跨境电商游戏规则

随着数字时代的到来&#xff0c;跨境电商行业正经历着前所未有的变革。在这个变革的浪潮中&#xff0c;TikTok&#xff08;抖音国际版&#xff09;作为一款全球短视频社交应用&#xff0c;正逐渐成为跨境电商领域的巨大推动力。它不仅改变了品牌的推广方式&#xff0c;还提供了…

ATFX汇市:离岸人民币大幅升值,昨日盘中跌破7.3关口

ATFX汇市&#xff1a;美国CPI数据即将公布之际&#xff0c;周一美元指数大跌&#xff0c;带动离岸人民币升值0.85%&#xff0c;实现3月14日以来的最大单日升值幅度&#xff0c;当日汇率&#xff08;USDCNH&#xff09;最低触及7.292&#xff0c;突破7.3000关口。消息面上&#…

【云原生进阶之PaaS中间件】第二章Zookeeper-2-安装部署

1 Zookeeper安装配置 环境准备&#xff1a; 一台安装有jdk的虚拟机&#xff1a;192.168.152.130 1.1 安装 1.1.1 下载 cd /softwarewget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz 1.1.2 解压 tar -zxvf zookeeper-3.4.6.tar.g…

火山引擎 ByteHouse:两个关键技术,揭秘 OLAP 引擎中的数据导入技术

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 数据导入是衡量 OLAP 引擎性能及易用性的重要标准之一&#xff0c;高效的数据导入能力能够加速数据实时处理和分析的效率。 作为一款 OLAP 引擎&#xff0c;火山引…