如何申请文心一言文心千帆大模型API调用资格、获取access_token,并使用SpringBoot接入文心一言API

前段时间,百度文心一言&文心千帆大模型开放了API调用的测试,接下来,教大家申请测试资格并接入文心千帆大模型的API。

一、文心一言&文心千帆的测试资格申请

1. 确保拥有一个百度智能云的账号

右上角点击注册,内容如实填写并完成实名认证。

 注册与认证详细内容不再赘述。

2. 文心千帆大模型资格申请

进入文心一言&文心千帆大模型介绍页,点击申请体验

会进入填写问卷页,没有什么技巧,如实填写问卷信息即可,记得每一项要尽量详细,然后点击提交,接下来等待即可。

已经申请通过的会显示我这个页面。

 不出意外的话,接下来一天两天内你会收到如下短信

收到信息代表你申请通过,并且会赠送一张20的券,可根据文档自行使用。

3.(可选,非必要)文心千帆控制台

 

在这里你可以进行模型的体验与参数调节,具体功能请各位自行摸索。

二、获取文心千帆的access_token

众所都周知,百度的文心千帆大模型是通过access_key进行鉴权的,所以我们要调用API必须要申请一个access_key。

1.创建应用,获取API Key与Secret Key

 进入文心千帆大模型控制台,点击创建应用。

填写你要创建的应用信息,最下面还有个应用介绍,如实填写就好。

 创建成功后,左侧选择应用列表,里面可以看到刚刚创建的应用,里面包含了AppID、API Key、Secret Key(需点击显示),这些请务必不要泄露。

 我们需要API Key、Secret Key

2. 获取access_token

方法一:浏览器发送请求

复制这两个Key,并替换下面链接的 [API Key] 与 [Secret Key] 

https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[API Key]&client_secret=[Secret Key]

例如:

https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=ad456sa4d5fhr5kfh&client_secret=df45d14g5xsdtsc

浏览器访问这个链接,你会得到一个json报文

我们需要关心的是这两个键值对, expires_in 与 access_token 

expires_in:Access Token的有效期(秒为单位,默认有效期30天)

access_token:要获取的Access Token;

方法二:百度在线调试工具

在线调试工具

左侧输入 API Key 与 Secret Key ,点击调试即可,参数与方法一一致。

方法三:编写发送请求

在线调试工具

这里面有每种语言的例程,可以直接复制修改。

三、接入文心一言API

官方文档

官方文档提供了四个模型,其中ErnieBot就是我们熟悉的文心一言,我们以这个为例,其他的与之类似或相同。

作为Java程序员,我就分别以一个 Java 程序和 SpringBoot 应用为例介绍怎么接入。

方法一:原生接入(不推荐)

按照官方文档,使用Hutool的HttpUtils工具类或者是其他的Http客户端接入,这样可以获得最大的自由度,但是即为麻烦,并且流式返回处理较为复杂,需使用Flux响应式来做,比较麻烦,我用一个原生Java程序演示一下:

public static void main(String[] args) {String url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions";String accessToken = "你的access_token";HashMap<String, String> msg = new HashMap<>();msg.put("role", "user");msg.put("content", "请介绍一下你自己");ArrayList<HashMap> messages = new ArrayList<>();messages.add(msg);HashMap<String, Object> requestBody = new HashMap<>();requestBody.put("messages", messages);String response = HttpUtil.post(url + "?access_token=" + accessToken, JSONUtil.toJsonStr(requestBody));System.out.println(response);}

输出内容:

{"id": "as-mibg24yygj","object": "chat.completion","created": 1690270732,"result": "您好,我是文心一言,英文名是ERNIE Bot。我能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。","is_truncated": false,"need_clear_history": false,"usage": {"prompt_tokens": 8,"completion_tokens": 49,"total_tokens": 57}
}

 方法二:使用现成的spring-boot-starter

项目开源地址:https://github.com/gemingjia/gear-wenxinworkshop-starter

1. 创建一个 SpringBoot 应用程序(建议选择JDK17)。 

2. 引入maven坐标:

<dependency><groupId>io.github.gemingjia</groupId><artifactId>gear-wenxinworkshop-starter</artifactId><version>0.0.6</version>
</dependency>

3. 新建一个Controller

@RestController
public class ChatController {// 要调用的模型的客户端@Resourceprivate ErnieBotClient ernieBotClient;// 单次对话@PostMapping("/chat")public BaseResponse<String> chatSingle(String msg) {ChatResponse response = ernieBotClient.chatSingle(msg);return BaseResponse.success(response.getResult());}// 连续对话@PostMapping("/chats")public BaseResponse<String> chatCont(String msg) {String chatUID = "test-user-1001";ChatResponse response = ernieBotClient.chatCont(msg, chatUID);return BaseResponse.success(response.getResult());}// 流式返回,单次对话@PostMapping(value = "/stream/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)public Flux<ChatResponse> chatSingleStream(String msg) {Flux<ChatResponse> chatResponseFlux = ernieBotClient.chatSingleOfStream(msg);return chatResponseFlux;}// 流式返回,连续对话@PostMapping(value = "/stream/chats", produces = MediaType.TEXT_EVENT_STREAM_VALUE)public Flux<ChatResponse> chatContStream(String msg, String msgUid) {Flux<ChatResponse> chatResponseFlux = ernieBotClient.chatContOfStream(msg, msgUid);return chatResponseFlux;}}
@Data
public class BaseResponse<T> implements Serializable {private int code;private T data;private String message;public static <T> BaseResponse<T> success(T data) {BaseResponse<T> resp = new BaseResponse<>();resp.setData(data);resp.setCode(HttpStatus.OK.value());return resp;}public static <T> BaseResponse<T> error(int errorCode, String message) {BaseResponse<T> resp = new BaseResponse<>();resp.setCode(errorCode);resp.setMessage(message);return resp;}}

4. 运行起来,发送请求试一下

这是ErnieBot模型的演示,此外starter还提供了ErnieBotClient、ErnieBotTurboClient、Bloomz7BClient 三中模型的客户端,可自行选择使用。

如果这个starter帮助您节省了一部分的时间,还请点个star哦~

 项目开源地址&文档:https://github.com/gemingjia/gear-wenxinworkshop-starter

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

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

相关文章

【知网稳定检索】第九届社会科学与经济发展国际学术会议 (ICSSED 2024)

第九届社会科学与经济发展国际学术会议 (ICSSED 2024) 2024 9th International Conference on Social Sciences and Economic Development 第九届社会科学与经济发展国际学术会议(ICSSED 2024)定于2024年3月22-24日在中国北京隆重举行。会议主要围绕社会科学与经济发展等研究…

postgresql从入门到精通 - 第35讲:中间件PgBouncer部署|PostgreSQL教程

PostgreSQL从小白到专家&#xff0c;是从入门逐渐能力提升的一个系列教程&#xff0c;内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容&#xff0c;希望对热爱PG、学习PG的同学们有帮助&#xff0c;欢迎持续关注CUUG PG技术大讲堂。 第35讲&#…

荆涛《春节回家》:歌声中的年味与乡愁

荆涛《春节回家》&#xff1a;歌声中的年味与乡愁春节&#xff0c;对于每一个中国人来说&#xff0c;都是一年中最为重要的时刻。它不仅仅是一个节日&#xff0c;更是团圆、乡愁、回忆与希望的象征。歌手荆涛的歌曲《春节回家》恰恰捕捉到了这些情感&#xff0c;用音乐为人们绘…

hdlbits系列verilog解答(Exams/m2014 q4e)-46

文章目录 一、问题描述二、verilog源码三、仿真结果 一、问题描述 实现以下电路&#xff1a; 二、verilog源码 module top_module (input in1,input in2,output out);assign out ~(in1 | in2);endmodule三、仿真结果 转载请注明出处&#xff01;

【SpringBoot系列】SpringBoot日志配置

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

hdlbits系列verilog解答(exams/m2014_q4i)-45

文章目录 一、问题描述二、verilog源码三、仿真结果 一、问题描述 实现以下电路&#xff1a; 二、verilog源码 module top_module (output out);assign out 1b0;endmodule三、仿真结果 转载请注明出处&#xff01;

【C++】哈希(位图、布隆过滤器)

一、哈希的应用&#xff08;位图和布隆过滤器&#xff09; 1、位图&#xff08;bitset&#xff09; &#xff08;1&#xff09;位图概念 【题目】 给 40亿 个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这 40亿 个数中。…

mysql 行转列 GROUP_CONCAT 试验

1.概要 很多时候需要用到行专列的方式做数据分析。比如对通讯数据的采集 数据采集结果如下&#xff1a; 变量值采集周期131251132272 我想要看的结果 变量1变量2采集周期351372 就是我想看到相关数据的周期变化情况。 2.试验 2.1创建数据如下&#xff08;表名 tb5&…

发现有一个会Python的男友魅力值杠杠的!!!

Python能做什么&#xff1f; 可以做日常任务&#xff0c;比如自动备份你的MP3&#xff0c;可以做网站&#xff0c;很多著名的网站像知乎、YouTube就是Python写的&#xff0c; 可以做网络游戏的后台&#xff0c;很多在线游戏的后台都是Python开发的。 上面说的这些本人并没有实…

第98步 深度学习图像目标检测:SSD建模

基于WIN10的64位系统演示 一、写在前面 本期开始&#xff0c;我们继续学习深度学习图像目标检测系列&#xff0c;SSD&#xff08;Single Shot MultiBox Detector&#xff09;模型。 二、SSD简介 SSD&#xff08;Single Shot MultiBox Detector&#xff09;是一种流行的目标检…

.netcore 获取appsettings

我的开发环境是abpvnext net6.0 。 因为业务需要&#xff0c;从原来老项目net4.5工程里复制了一个报表导出的业务类到net6项目里面&#xff0c;但是他的获取appsettings的代码其实不用想都知道会报错。因为原来framwork时代获取appsettings的方法常见的是 System.Configura…

Dubbo配置注册中心设置application的name使用驼峰命名法可能存在的隐藏启动异常问题

原创/朱季谦 首先&#xff0c;先提一个建议&#xff0c;在SpringBootDubbo项目中&#xff0c;Dubbo配置注册中心设置的application命名name的值&#xff0c;最好使用xxx-xxx-xxx这样格式的&#xff0c;避免随便使用驼峰命名。因为使用驼峰命名法&#xff0c;在Spring的IOC容器…

Java核心知识点整理大全13-笔记

Java核心知识点整理大全-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全2-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全3-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全4-笔记-CSDN博客 Java核心知识点整理大全5-笔记-CSDN博客 Java核心知识点整理大全6…

激光雷达报告:单月上车提前突破5万台关口!车企真实搭载「去伪存真」

高工智能汽车研究院监测数据显示&#xff0c;截至2023年9月&#xff0c;激光雷达已经连续2个月交付破5万台关口。 这也意味着&#xff0c;这一交付关口早于预期被突破。回溯来看&#xff0c;2023年6月&#xff0c;高工智能汽车研究院在第十四届智驾开发者大会上释放预测&#…

战地5无限序章(无法保存)的解决办法

启动游戏后&#xff0c;目录就会自动变成这样了&#xff0c;也不会无限循环了&#xff01;

C++类与对象(5)—流运算符重载、const、取地址

目录 一、流输出 1、实现单个输出 2、实现连续输出 二、流输入 总结&#xff1a; 三、const修饰 四、取地址 .取地址及const取地址操作符重载 五、[ ]运算符重载 一、流输出 1、实现单个输出 创建一个日期类。 class Date { public:Date(int year 1, int month 1,…

践行“互联网+中药服务”理念,华润煎配中心打造智能代煎新模式

移动互联网时代&#xff0c;“互联网&#xff0b;”浪潮迭起&#xff0c;中药企业开始探索“互联网&#xff0b;中药服务”模式。 华润湖南医药有限公司&#xff08;以下简称“华润湖南医药”&#xff09;作为华润集团旗下华润湖南医药商业集团全资控股的大型医药企业&#xff…

你听过斯大林病毒吗?

相信不少小伙伴看过这种红眼特效&#xff0c;那么你知道这个特效最早出自哪里吗&#xff1f; 其实这个红眼病毒最早出于俄罗斯的电脑病毒斯大林&#xff0c;一旦电脑感染这个病毒&#xff0c;屏幕上就会出现自带一个红眼特效的斯大林人像&#xff0c;同时不断播放苏联国歌。 …

基于侏儒猫鼬算法优化概率神经网络PNN的分类预测 - 附代码

基于侏儒猫鼬算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于侏儒猫鼬算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于侏儒猫鼬优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

关于提示SLF4J: Class path contains multiple SLF4J bindings的问题解决

今天搭建hbase的时候启动hbase的时候shell面板输入了一大堆日志&#xff0c;如下&#xff1a; stopping hbase.....................SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/opt/software/hadoop-3.1.3/share/hadoop/common/l…