SpringBoot 接入 豆包 火山方舟大模型

火山方舟控制台 开通模型推理、知识库 应用入口;

文档中心 各类接口说明及SDK 获取;

向量数据库VikingDB 文档 下翻找到有java操作案例;

实现目标功能效果:

  1. 通过SDK调用 豆包大模型,在代码内实现问答的效果
    官方示例

  2. 通过使用知识库,自己上传文档。让豆包大模型可以回答 你文档中的内容数据(即自定义属于你自己(自身业务领域)的大模型);

前置步骤:

  • 点击右上角头像处去创建 API 访问密钥;
  • 控制台内 模型推理 - 在线推理 创建一个推理接入点(按提示操作即可);
  • 控制台内 知识库 - 创建知识库;

代码

package com.example.demo.service.doubao;import com.volcengine.ark.runtime.model.completion.chat.ChatCompletionRequest;
import com.volcengine.ark.runtime.model.completion.chat.ChatMessage;
import com.volcengine.ark.runtime.model.completion.chat.ChatMessageRole;
import com.volcengine.ark.runtime.service.ArkService;
import com.volcengine.auth.ISignerV4;
import com.volcengine.auth.impl.SignerV4Impl;
import com.volcengine.model.Credentials;
import com.volcengine.service.SignableRequest;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;import java.util.ArrayList;
import java.util.List;/*** @Author:wwf* @Package:com.example.demo.service* @Project:demo* @name:CreateArkClientExample* @Date:2024/11/28 15:32* @Filename:CreateArkClientExample*/
public class CreateArkClientExample {//模型推理 - 在线推理 - API 调用 内查看获取private static final String API_KEY = "ea9fxxxxxxxxx49c";//这里获取 https://console.volcengine.com/iam/keymanageprivate static final String AK = "AKLTZDI2Yxxxxxxxxx2U2NGZmMzA";private static final String SK = "Tnpjd0xxxxxxxxxOa1pXRQ";public static void main(String[] args) throws Exception {// 以华北 2 (北京) 为例,<ARK_DOMAIN> 处应改为 ark.cn-beijing.volces.comArkService service = ArkService.builder().apiKey(API_KEY).baseUrl("https://ark.cn-beijing.volces.com/api/v3").build();System.out.println("\n----- standard request -----");String host = "api-knowledgebase.mlp.cn-beijing.volces.com";String path = "/api/knowledge/collection/search_knowledge";String method = "POST";String body = "{\"name\":\"wwfTest\",\"query\":\"总结介绍下王清\"}";SignableRequest request = prepareRequest(host, path, method, null, body, AK, SK);System.out.println(request.getURI());HttpClient client = HttpClients.createDefault();HttpResponse response = client.execute(request);int statusCode = response.getStatusLine().getStatusCode();String content = EntityUtils.toString(response.getEntity());System.out.println(statusCode);System.out.println(content);final List<ChatMessage> streamMessages = new ArrayList<>();final ChatMessage streamSystemMessage = ChatMessage.builder().role(ChatMessageRole.SYSTEM).content("你是豆包,是由字节跳动开发的 AI 人工智能助手").content(content).build();final ChatMessage streamUserMessage = ChatMessage.builder().role(ChatMessageRole.USER).content("总结介绍下王清").build();streamMessages.add(streamSystemMessage);streamMessages.add(streamUserMessage);ChatCompletionRequest streamChatCompletionRequest = ChatCompletionRequest.builder().model("ep-20241128155250-zlbd8")//回调函数
//                .tools().messages(streamMessages).build();service.streamChatCompletion(streamChatCompletionRequest).doOnError(Throwable::printStackTrace).blockingForEach(choice -> {if (choice.getChoices().size() > 0) {System.out.print(choice.getChoices().get(0).getMessage().getContent());}});// shutdown serviceservice.shutdownExecutor();}/*** 构建请求** @param host* @param path* @param method* @param params* @param body* @param ak* @param sk* @return* @throws Exception*/public static SignableRequest prepareRequest(String host, String path, String method, List<NameValuePair> params, String body, String ak, String sk) throws Exception {SignableRequest request = new SignableRequest();request.setMethod(method);request.setHeader("Accept", "application/json");request.setHeader("Content-Type", "application/json");request.setHeader("Host", "api-knowledgebase.mlp.cn-beijing.volces.com");request.setEntity(new StringEntity(body, "utf-8"));URIBuilder builder = request.getUriBuilder();builder.setScheme("https");builder.setHost(host);builder.setPath(path);if (params != null) {builder.setParameters(params);}RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(5000).setConnectTimeout(2000).build();request.setConfig(requestConfig);Credentials credentials = new Credentials("cn-north-1", "air");credentials.setAccessKeyID(ak);credentials.setSecretAccessKey(sk);// 签名ISignerV4 ISigner = new SignerV4Impl();ISigner.sign(request, credentials);return request;}
}

示例代码说明:

本人随意使用gpt 编写了一篇短片小说,通过平台内知识库,以文档形式上传进去。小说内有个人物叫 王清,于是问 豆包模型 介绍下王清的信息,此时 模型可以准确快速的响应 关于王清的信息;

,,,,,,,,,
本文为个人操作接入记录,官方文档示例还是比较全的。仅记录大致接入流程;

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

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

相关文章

VR云展让企业实现产品的多样展示

随着科技的飞速进步&#xff0c;各行各业的企业正经历着前所未有的快速发展&#xff0c;企业形象的升级变得尤为重要。在此背景下&#xff0c;VR线上展厅以其独特的沉浸式3D体验脱颖而出&#xff0c;近年来赢得了广泛关注与认可。该模式已广泛应用于企业、展会机构、市政单位等…

强化安全责任意识,传音开展第四届信息及隐私安全文化宣传周活动

为了让信息及隐私安全责任意识深入每一位员工心中&#xff0c;传音连续多年开展信息及隐私安全文化宣传活动。11月4日至15日&#xff0c;传音控股第四届信息及隐私安全文化宣传周活动&#xff08;以下简称“传音安全周”&#xff09;在重庆、深圳、上海、南昌及海外多个国家地区…

人工智能的微积分基础

目录 ​编辑 引言 微积分的基本概念 1. 导数 2. 积分 3. 微分方程 微积分在人工智能中的应用 1. 机器学习中的优化 2. 反向传播算法 3. 概率与统计 4. 控制理论 5. 自然语言处理中的梯度 6. 计算机视觉中的积分 7. 优化算法中的微积分 8. 微分几何在深度学习中的…

canal同步数据教程

canal简介 官网&#xff1a;https://github.com/alibaba/canal 主要是基于 MySQL 数据库增量日志解析&#xff0c;提供增量数据订阅和消费&#xff0c;是一个实时同步的方案。 基于日志增量订阅和消费的业务包括 数据库镜像数据库实时备份索引构建和实时维护(拆分异构索引、…

《Learn Three.js》学习(3)光源

前言&#xff1a; WebGL本身不支持光源&#xff0c;不使用three.js,则需使用着色程序来模拟光源。 学习大纲&#xff1a; Three.js中的光源 特定光源的使用时机 如何调整和配置所有光源的行为 如何创建镜头光晕 光源表 基础光源&#xff1a;THRER.AmbientLight、THERE.Point…

shell(9)

声明&#xff01; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&…

【头歌实训:递归实现斐波那契数列】

头歌实训&#xff1a;递归实现斐波那契数列 文章目录 任务描述相关知识递归相关知识递归举例何时使用递归定义是递归的数据结构是递归的问题的求解方法是递归的 编程要求测试说明源代码&#xff1a; 任务描述 本关任务&#xff1a;递归求解斐波那契数列。 相关知识 为了完成…

回声消除延时估计的一些方法

在音频信号处理&#xff0c;尤其是在回声消除和语音通信中&#xff0c;延时估计是一个至关重要的任务。回声消除技术旨在减少或消除在语音通信中由于信号反射而产生的回声。为了有效地实现这一点&#xff0c;系统需要准确估计发送信号和接收信号之间的延迟。通过了解延迟&#…

我们来学mysql -- 事务之概念(原理篇)

事务的概念 题记一个例子一致性隔离性原子性持久性 题记 在漫长的编程岁月中&#xff0c;存在一如既往地贯穿着工作&#xff0c;面试的概念这类知识点&#xff0c;事不关己当然高高挂起&#xff0c;精准踩坑时那心情也的却是日了&#x1f436;请原谅我的粗俗&#xff0c;遇到B…

剪映自动批量替换视频、图片素材教程,视频批量复刻、混剪裂变等功能介绍

一、三种批量替换模式的区别 二、混剪裂变替换素材 三、分区混剪裂变替换素材 四、按组精确替换素材 五、绿色按钮教程 &#xff08;一&#xff09;如何附加音频和srt字幕 &#xff08;二&#xff09;如何替换固定文本的内容和样式 &#xff08;三&#xff09;如何附加…

【力扣】389.找不同

问题描述 思路解析 只有小写字母&#xff0c;这种设计参数小的&#xff0c;直接桶排序我最开始的想法是使用两个不同的数组&#xff0c;分别存入他们单个字符转换后的值&#xff0c;然后比较是否相同。也确实通过了 看了题解后&#xff0c;发现可以优化&#xff0c;首先因为t相…

HarmonyOS Next 模拟器安装与探索

HarmonyOS 5 也发布了有一段时间了&#xff0c;不知道大家实际使用的时候有没有发现一些惊喜。当然随着HarmonyOS 5的更新也带来了很多新特性&#xff0c;尤其是 HarmonyOS Next 模拟器。今天&#xff0c;我们就来探索一下这个模拟器&#xff0c;看看它能给我们的开发过程带来什…

net9 abp vnext 多语言通过数据库动态管理

通过数据库加载实现动态管理&#xff0c;用户可以自己修改界面显示的文本&#xff0c;满足国际化需求 如图所示,前端使用tdesign vnext 新建表TSYS_Localization与TSYS_LocalizationDetail 国旗图标下载网址flag-icons: Free Country Flags in SVG 在Shared下创建下图3个文件 …

ceph的用户管理和cephx认证

用户权限概述 用户格式 参考链接&#xff1a; 权限&#xff1a;https://docs.ceph.com/en/latest/rados/operations/user-management/#authorization-capabilities 用户&#xff1a;https://docs.ceph.com/en/reef/rados/operations/user-management/ ceph的用户格式TYPEID…

springboot340“共享书角”图书借还管理系统(论文+源码)_kaic

摘 要 随着社会的发展&#xff0c;图书借还的管理形势越来越严峻。越来越多的借阅者利用互联网获得信息&#xff0c;但图书借还信息量大。为了方便借阅者更好的获得本图书借还信息&#xff0c;因此&#xff0c;设计一种安全高效的“共享书角”图书借还管理系统极为重要。 为…

爬虫笔记24——纷玩岛自动抢票脚本笔记

纷玩岛自动抢票&#xff0c;协议抢票思路实现 一、获取Authorization凭证二、几个关键的参数三、几个关键的接口获取参数v&#xff0c;这个参数其实可以写死&#xff0c;可忽略通过价位获取演出的参数信息获取观演人信息&#xff0c;账号提前录入即可提交订单接口 先看实现图&a…

配置泛微e9后端开发环境

配置泛微e9的后端开发环境 1.安装jdk1.8&#xff08;请自行安装并设置环境变量&#xff09; 2.将服务器上的WEARVER文件夹拷贝到开发环境下(其中要包含ecology和Resin目录) 3.通过idea创建一个基础Java项目,将jdk设置为1.8 4.添加依赖,需要将3个文件夹的所有jar包添加到项目中…

52-基于单片机的超声波、温湿度、光照检测分阶段报警

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 1.通过DHT11模块读取环境温度和湿度: 2.将湿度、障碍物距显示在lcd1602上面&#xff0c;第一行显示温度和湿度,格式为:xxCyy%&#xff0c;第二行显示超声波传感器测得的距离&#xff0c;格式为:Di…

C++类的自动转换和强制类型转换

目录 一、类型转换 二、转换函数 一、类型转换 C⽀持内置类型隐式类型转换为类类型对象&#xff0c;需要有相关内置类型为参数的构造函数 简单说就是可以将内置类型转化为自定义类型 示例&#xff1a; class Test { public:Test(int n1 0):num1(n1){}void pr…

w~视觉~合集26

我自己的原文哦~ https://blog.51cto.com/whaosoft/12663170 #InternVL 本文设计了一个大规模的视觉-语言基础模型&#xff08;InternVL&#xff09;&#xff0c;将视觉基础模型的参数扩展到60亿&#xff0c;并逐步与LLM对齐&#xff0c;利用来自不同来源的网络规模的图像-文…