SpringBoot 接入 豆包 火山方舟大模型
火山方舟控制台 开通模型推理、知识库 应用入口;
文档中心 各类接口说明及SDK 获取;
向量数据库VikingDB 文档 下翻找到有java操作案例;
实现目标功能效果:
-
通过SDK调用 豆包大模型,在代码内实现问答的效果;
官方示例 -
通过使用知识库,自己上传文档。让豆包大模型可以回答 你文档中的内容数据(即自定义属于你自己(自身业务领域)的大模型);
前置步骤:
- 点击右上角头像处去创建 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("
----- 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 编写了一篇短片小说,通过平台内知识库,以文档形式上传进去。小说内有个人物叫 王清,于是问 豆包模型 介绍下王清的信息,此时 模型可以准确快速的响应 关于王清的信息;
,,,,,,,,,
本文为个人操作接入记录,官方文档示例还是比较全的。仅记录大致接入流程;
相关文章:

SpringBoot 接入 豆包 火山方舟大模型
火山方舟控制台 开通模型推理、知识库 应用入口; 文档中心 各类接口说明及SDK 获取; 向量数据库VikingDB 文档 下翻找到有java操作案例; 实现目标功能效果: 通过SDK调用 豆包大模型,在代码内实现问答的效果…...

IDEA接入阿里云百炼中免费的通义千问[2025版]
安装deepseek 上一篇文章IDEA安装deepseek最新教程2025中说明了怎么用idea安装codeGPT插件,并接入DeepSeek,无奈接入的官方api已经不能使用了,所以我们尝试从其他地方接入 阿里云百炼https://bailian.console.aliyun.com/ 阿里云百炼是阿…...

下载kali linux遇到的一些问题
kali官网:kali官网跳转 问题一:未启动VM Service VMware Workstation 未能启动 VMware Authorization Service。您可以尝试手动启动VMware Authorization Service。如果此问题仍然存在,请联系VMware 支持部门。 解决办法: 步骤1…...

常见排序算法深度评测:从原理到10万级数据实战
常见排序算法深度评测:从原理到10万级数据实战 摘要 本文系统解析冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序和基数排序8种经典算法,通过C语言实现10万随机数排序并统计耗时。测试显示:快速排序综合性能最优&…...

Scaled_dot_product_attention(SDPA)使用详解
在学习huggingFace的Transformer库时,我们不可避免会遇到scaled_dot_product_attention(SDPA)这个函数,它被用来加速大模型的Attention计算,本文就详细介绍一下它的使用方法,核心内容主要参考了torch.nn.functional中该函数的注释…...

Linux练级宝典->Linux进程概念介绍
目录 进程基本概念 PCB概念 task_struct tack_struct内容分类 PID和PPID fork函数创建子进程 进程优先级概念 4个名词 进程地址空间 进程地址空间的意义 内核进程调度队列 优先级 活动队列 过期队列 进程基本概念 一个正在执行的程序。担当分配系统资源的实体&#…...

OpenHarmony 5.0 mpegts封装的H265视频播放失败的解决方案
问题现象 OpenHarmony 5.0版本使用AVPlayer播放mpegts封装格式的H.265(HEVC)编码格式的视频时出现报错导致播放失败 问题原因 OpenHarmony 5.0版本AVPlayer播放器使用histreamer引擎,因为 libav_codec_hevc_parser.z.so 动态库未开源导致H265编码格式视频解析不到…...

Qt从入门到入土(九) -model/view(模型/视图)框架
简介 Qt的模型/视图(Model/View)架构是一种用于分离数据处理和用户界面展示的设计模式。它允许开发者将数据存储和管理(模型)与数据的显示和交互(视图)解耦,从而提高代码的可维护性和可扩展性。…...

缓存之美:Guava Cache 相比于 Caffeine 差在哪里?
大家好,我是 方圆。本文将结合 Guava Cache 的源码来分析它的实现原理,并阐述它相比于 Caffeine Cache 在性能上的劣势。为了让大家对 Guava Cache 理解起来更容易,我们还是在开篇介绍它的原理: Guava Cache 通过分段(…...

[漏洞篇]XSS漏洞详解
[漏洞篇]XSS漏洞 一、 介绍 概念 XSS:通过JS达到攻击效果 XSS全称跨站脚本(Cross Site Scripting),为避免与层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故缩写为XSS。这是一种将任意 Javascript 代码插入到其他Web用户页面里执行以…...

【Leetcode 每日一题】2269. 找到一个数字的 K 美丽值
问题背景 一个整数 n u m num num 的 k k k 美丽值定义为 n u m num num 中符合以下条件的 子字符串 数目: 子字符串长度为 k k k。子字符串能整除 n u m num num。 给你整数 n u m num num 和 k k k,请你返回 n u m num num 的 k k k 美丽值…...

IO进程线程(线程)
作业 1.创建两个线程,分支线程1拷贝文件的前一部分,分支线程2拷贝文件的后一部分 2.创建三个线程,实现线程A打印A,线程B打印B,线程C打印C;重复打印顺序ABC。 信号量实现: 条件变量实现&#x…...

1-002:MySQL InnoDB引擎中的聚簇索引和非聚簇索引有什么区别?
在 MySQL InnoDB 存储引擎 中,索引主要分为 聚簇索引(Clustered Index) 和 非聚簇索引(Secondary Index)。它们的主要区别如下: 1. 聚簇索引(Clustered Index) 定义 聚簇索引是表数…...

tomcat单机多实例部署
一、部署方法 多实例可以运行多个不同的应用,也可以运行相同的应用,类似于虚拟主机,但是他可以做负载均衡。 方式一: 把tomcat的主目录挨个复制,然后把每台主机的端口给改掉就行了。 优点是最简单最直接,…...

论文阅读分享——UMDF(AAAI-24)
概述 题目:A Unified Self-Distillation Framework for Multimodal Sentiment Analysis with Uncertain Missing Modalities 发表:The Thirty-Eighth AAAI Conference on Artificial Intelligence (AAAI-24) 年份:2024 Github:暂…...

解决asp.net mvc发布到iis下安全问题
解决asp.net mvc发布到iis下安全问题 环境信息1.The web/application server is leaking version information via the "Server" HTTP response2.确保您的Web服务器、应用程序服务器、负载均衡器等已配置为强制执行Strict-Transport-Security。3.在HTML提交表单中找不…...

概念|RabbitMQ 消息生命周期 待消费的消息和待应答的消息有什么区别
目录 消息生命周期 一、消息创建与发布阶段 二、消息路由与存储阶段 三、消息存活与过期阶段 四、消息投递与消费阶段 五、消息生命周期终止 关键配置建议 待消费的消息和待应答的消息 一、待消费的消息(Unconsumed Messages) 二、待应答的消息…...

springboot三层架构详细讲解
目录 springBoot三层架构 0.简介1.各层架构 1.1 Controller层1.2 Service层1.3 ServiceImpl1.4 Mapper1.5 Entity1.6 Mapper.xml 2.各层之间的联系 2.1 Controller 与 Service2.2 Service 与 ServiceImpl2.3 Service 与 Mapper2.4 Mapper 与 Mapper.xml2.5 Service 与 Entity2…...

2025最新群智能优化算法:云漂移优化(Cloud Drift Optimization,CDO)算法求解23个经典函数测试集,MATLAB
一、云漂移优化算法 云漂移优化(Cloud Drift Optimization,CDO)算法是2025年提出的一种受自然现象启发的元启发式算法,它模拟云在大气中漂移的动态行为来解决复杂的优化问题。云在大气中受到各种大气力的影响,其粒子的…...

2025年Draw.io最新版本下载安装教程,附详细图文
2025年Draw.io最新版本下载安装教程,附详细图文 大家好,今天给大家介绍一款非常实用的流程图绘制软件——Draw.io。不管你是平时需要设计流程图、绘制思维导图,还是制作架构图,甚至是简单的草图,它都能帮你轻松搞定。…...

记录--洛谷 P1451 求细胞数量
如果想查看完整题目,请前往洛谷 P1451 求细胞数量 P1451 求细胞数量 题目描述 一矩形阵列由数字 0 0 0 到 9 9 9 组成,数字 1 1 1 到 9 9 9 代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形…...

Android Studio 配置国内镜像源
Android Studio版本号:2022.1.1 Patch 2 1、配置gradle国内镜像,用腾讯云 镜像源地址:https\://mirrors.cloud.tencent.com/gradle 2、配置Android SDK国内镜像 地址:Index of /AndroidSDK/...

做到哪一步才算精通SQL
做到哪一步才算精通SQL-Structured Query Language 数据定义语言 DDL for StructCREATE:用来创建数据库、表、索引等对象ALTER:用来修改已存在的数据库对象DROP:用来删除整个数据库或者数据库中的表TRUNCATE:用来删除表中所有的行…...

Manus演示案例: 英伟达财务估值建模 解锁投资洞察的深度剖析
在当今瞬息万变的金融投资领域,精准剖析企业价值是投资者决胜市场的关键。英伟达(NVIDIA),作为科技行业的耀眼明星,其在人工智能和半导体领域的卓越表现备受瞩目。Manus 凭借专业的财务估值建模能力,深入挖…...

postman接口请求中的 Raw是什么
前言 在现代的网络开发中,API 的使用已经成为数据交换的核心方式之一。然而,在与 API 打交道时,关于如何发送请求体(body)内容类型的问题常常困扰着开发者们,尤其是“raw”和“json”这两个术语之间的区别…...

DeepSeek大语言模型下几个常用术语
昨天刷B站看到复旦赵斌老师说的一句话“科幻电影里在人脑中植入芯片或许在当下无法实现,但当下可以借助AI人工智能实现人类第二脑”(大概是这个意思) 💞更多内容,可关注公众号“ 一名程序媛 ”,我们一起从 …...

ctf-WEB: 关于 GHCTF Message in a Bottle plus 与 Message in a Bottle 的非官方wp解法
Message in a Bottle from bottle import Bottle, request, template, runapp Bottle()# 存储留言的列表 messages [] def handle_message(message):message_items "".join([f"""<div class"message-card"><div class"me…...

测试用例详解
一、通用测试用例八要素 1、用例编号; 2、测试项目; 3、测试标题; 4、重要级别; 5、预置条件; 6、测试输入; 7、操作步骤; 8、预期输出 二、具体分析通…...

c#面试题整理7
1.UDP和TCP的区别 UDP是只要能连上终端就发送,至于终端是否收到,不管。 TCP则是会存在交换,即发送失败或成功,是可知的。 2.进程和线程的区别 双击一个程序的exe文件,程序执行了,这就是一个进程。 这个…...

OpenManus-通过源码方式本地运行OpenManus,含踩坑及处理方案,chrome.exe位置修改
前言:最近 Manus 火得一塌糊涂啊,OpenManus 也一夜之间爆火,那么作为程序员应该来尝尝鲜 1、前期准备 FastGithub:如果有科学上网且能正常访问 github 则不需要下载此软件,此软件是提供国内直接访问 githubGit&#…...