springBoot接入文心一言
文章目录
- 效果
- 接入步骤
- 项目接入
- 配置类:WenXinYiYan
- 前端
- vue代码
- js代码
- 后端
- mapper层
- service层
- controller层
- 测试代码
效果
先来看一下最后实现的效果
(1)未点击前的功能页面
(2)点击后的页面
(3)生成的结果
(4)导出为pdf文件
接入步骤
一、注册千帆大模型 点此跳转到千帆大模型首页
记得需要实名认证一下
二、点击立即体验(直接上图)
三、进入了 千帆ModelBuilder页面,找到 应用接入
四、我们点击 切换至旧版
五、切换后我们创建应用
六、记录下应用的API Key 和 Secret Key
七、引入依赖
<dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.12.0</version></dependency>
八、可以选择自己喜欢的模型并找到测试代码进行调试
九、我的测试代码(在文章末尾有,此处不粘贴,只介绍)
十、测试结果
项目接入
配置类:WenXinYiYan
import com.sun.media.jfxmedia.logging.Logger;
import lombok.extern.slf4j.Slf4j;
import okhttp3.*;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;import java.io.IOException;
import java.util.concurrent.TimeUnit;
@Slf4j
public class WenXinYiYan {public static final String API_KEY = "你个人的API_KEY";public static final String SECRET_KEY = "你个人的SECRET_KEY ";// OkHttpClient配置,设置连接超时和读取超时static final OkHttpClient HTTP_CLIENT = new OkHttpClient.Builder().connectTimeout(60, TimeUnit.SECONDS) // 设置连接超时时间为60秒.readTimeout(60, TimeUnit.SECONDS) // 设置读取超时时间为60秒.build();public static String getResult(String askContent){try {JSONObject requestBody = new JSONObject();JSONArray messages = new JSONArray();JSONObject message = new JSONObject();message.put("role", "user");message.put("content", askContent);messages.put(message);requestBody.put("messages", messages);requestBody.put("temperature",0.95);requestBody.put("top_p",0.8);requestBody.put("penalty_score",1);requestBody.put("enable_system_memory",false);requestBody.put("disable_search",false);requestBody.put("model","qwen-max-v1.5-turbo");// 打印请求体,确保格式正确
// System.out.println("Request Body: " + requestBody.toString());// 定义请求的媒体类型MediaType mediaType = MediaType.parse("application/json;charset=utf-8");// 构建请求体,消息内容包含了用户请求RequestBody body = RequestBody.create(mediaType, requestBody.toString());// 构建http请求Request request = new Request.Builder().url("https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=" + getAccessToken()).method("POST", body).addHeader("Content-Type", "application/json;charset=utf-8").build();// 发送请求并获取响应Response response = HTTP_CLIENT.newCall(request).execute();if(!response.isSuccessful()){throw new IOException("Unexpected code " + response);}// 获取相应体ResponseBody responseBody = response.body();if(responseBody == null){throw new IOException("Response body is null");}String responseBodyString = responseBody.string();// 解析json数据JSONObject jsonResponse = new JSONObject(responseBodyString);// 提取”result“字段if (jsonResponse.has("result")) {Object result = jsonResponse.get("result");return result.toString();} else {return "Response does not contain 'result' field.";}} catch (IOException e) {// 捕获 IO 异常(如网络错误、超时等),并打印异常信息return "Error: " + e.getMessage();}}/*** 从用户的AK,SK生成鉴权签名(Access Token)** @return 鉴权签名(Access Token)* @throws IOException IO异常*/static String getAccessToken() throws IOException, JSONException {// 设置请求体的媒体类型为 x-www-form-urlencodedMediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");// 创建请求体,包含 API 的 client_id 和 client_secretRequestBody body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + API_KEY+ "&client_secret=" + SECRET_KEY);// 构建请求,使用 POST 方法获取 Access TokenRequest request = new Request.Builder().url("https://aip.baidubce.com/oauth/2.0/token").method("POST", body).addHeader("Content-Type", "application/x-www-form-urlencoded").build();try(Response response = HTTP_CLIENT.newCall(request).execute();) {// 从响应中解析出Access Tokenreturn new JSONObject(response.body().string()).getString("access_token");}}
}
前端
vue代码
(style设置的代码就不粘贴了,主要是展示功能调用)
<template><div class="container"><!-- 消息输入区域 --><div class="input-button-container"><button @click="fetchStudentSummary">一键优化我的简历</button></div><!-- 消息显示区域 --><div class="message-area"><div class="message-section" style="width: 90%;"><!-- 正式回答文字在内容框的上方,居左显示 --><div class="section-title">正式回答:</div><div class="message-container messages pdf-preview" ref="pdfContent" :style="containerStyle"><!-- 默认内容 --><div v-if="messages.length === 0 && !isLoading" class="default-content">(1)点击按钮可以一键优化简历哦<br>(2)优化后的简历,在这里查看</div><!-- 加载动画 --><div v-if="isLoading" class="loading-container"><div class="loader"></div><div>简历生成中...</div></div><!-- 返回的内容 --><div v-else v-html="formattedContent" class="markdown-content"></div></div></div><div v-if="messages.length > 0" class="export-button-container"><button @click="exportToPDF" class="export-button">导出为PDF</button></div></div></div>
</template><script setup>
import { ref, reactive, onMounted, computed } from 'vue';
import axios from 'axios';
import Cookies from 'js-cookie';
import { enhanceResume } from '@/api/recommend/recommend.js';
import { marked } from 'marked';
import html2pdf from 'html2pdf.js';
import DOMPurify from 'dompurify';const messages = ref([]);
const isLoading = ref(false);
const pdfContent = ref(null);// 动态设置内容框的高度
const containerStyle = computed(() => {return {height: messages.value.length > 0 ? '600px' : '100px',overflowY: 'auto'};
});// 添加markdown转换方法
const formattedContent = computed(() => {if (messages.value.length === 0) return '';const rawMarkdown = messages.value.join('\n');const cleanHtml = DOMPurify.sanitize(marked(rawMarkdown));return cleanHtml;
});// 导出PDF方法
const exportToPDF = () => {const element = pdfContent.value;const opt = {margin: 10,filename: '优化简历.pdf',image: { type: 'jpeg', quality: 0.98 },html2canvas: { scale: 2 },jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' },};html2pdf().from(element).set(opt).save();
};// 获取当前登录账号的username
const getCurrentUsername = () => {return Cookies.get('username');
};// 根据username请求学生信息
const fetchStudentSummary = async () => {try {isLoading.value = true;const username = getCurrentUsername();console.log('当前登录账号的用户名:', username);const response = await enhanceResume(username);console.log('获取到的学生信息:', response.data);messages.value = [response.data]; // 将获取到的内容展示在正式回答区域} catch (error) {console.error('请求失败:', error);alert('请求失败,请稍后再试');} finally {isLoading.value = false;}
};
</script>
js代码
// 简历优化接口
export function enhanceResume(username) {return request({url: `/system/studentSum/enhance/${username}`,method: 'get',})
}
后端
mapper层
@Mapper
public interface StudentSumMapper
{/*** 查询用户信息及简历关联** @param userName 用户名* @return 用户信息及简历关联*/public StudentSum selectStudentSumByUserName(String userName);
}
service层
-
接口
public interface IStudentSumService {/*** 获取简历增强结果* @param username* @return*/public String enhanceResume(String username); }
-
实现类
@Service public class StudentSumServiceImpl implements IStudentSumService {@Autowiredprivate StudentSumMapper studentSumMapper;@Override@Transactionalpublic String enhanceResume(String username) {// 获取简历信息StudentSum studentSum = studentSumMapper.selectStudentSumByUserName(username);// 根据username获取简历信息,然后拼接在一起if (studentSum == null) {return "未找到用户信息";}String askContent = "我叫"+studentSum.getNickName()+",性别"+studentSum.getSex()+"毕业于"+studentSum.getEducation()+",电话号码为"+studentSum.getPhonenumber()+",邮箱为"+studentSum.getEmail()+",求职意向为:"+studentSum.getTitle()+",当前状态为:"+studentSum.getSearchStatus()+",个人简介为:"+studentSum.getSummary()+",个人技能为:"+studentSum.getSkills()+",证书及获奖情况为:"+studentSum.getCertifications()+",工作经历为:"+studentSum.getExperience()+",项目经历为:"+studentSum.getContent()+",/n请帮我写一份优化后的简历,需要对项目经历、个人技能、工作经历进行润色,其他的内容不需要润色,数据需要保留。返回内容按照个人信息、专业技能、教育经历、就业经历、项目经历展示,只展示简历的内容,不要写任何多余的文字,不要写任何多余的文字,不要写任何多余的文字";return WenXinYiYan.getResult(askContent);} }
-
注意需要在发送的时候补充内容:
请帮我写一份优化后的简历,需要对项目经历、个人技能、工作经历进行润色,其他的内容不需要润色,数据需要保留。返回内容按照个人信息、专业技能、教育经历、就业经历、项目经历展示,只展示简历的内容,不要写任何多余的文字,不要写任何多余的文字,不要写任何多余的文字
controller层
@RestController
@RequestMapping("/system/studentSum")
public class StudentSumController extends BaseController
{@Autowiredprivate IStudentSumService studentSumService;@GetMapping(value = "/enhance/{username}")@Transactionalpublic AjaxResult enhanceResume( @PathVariable String username){return AjaxResult.success("上传成功", studentSumService.enhanceResume(username));}
}
测试代码
package com.example.springbootdemo2024;
import okhttp3.*;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.util.concurrent.TimeUnit;public class WenXinYiYan {// 你的apiKeypublic static final String API_KEY = "------";// 你的SECRET_KEYpublic static final String SECRET_KEY = "--------";// OkHttpClient配置,设置连接超时和读取超时static final OkHttpClient HTTP_CLIENT = new OkHttpClient.Builder().connectTimeout(60, TimeUnit.SECONDS) // 设置连接超时时间为60秒.readTimeout(60, TimeUnit.SECONDS) // 设置读取超时时间为60秒.build();public static String getResult(String askContent){try {JSONObject requestBody = new JSONObject();JSONArray messages = new JSONArray();JSONObject message = new JSONObject();message.put("role", "user");message.put("content", askContent);messages.put(message);requestBody.put("messages", messages);requestBody.put("temperature",0.95);requestBody.put("top_p",0.8);requestBody.put("penalty_score",1);requestBody.put("enable_system_memory",false);requestBody.put("disable_search",false);requestBody.put("model","qwen-max-v1.5-turbo");// 打印请求体,确保格式正确
// System.out.println("Request Body: " + requestBody.toString());// 定义请求的媒体类型MediaType mediaType = MediaType.parse("application/json;charset=utf-8");// 构建请求体,消息内容包含了用户请求RequestBody body = RequestBody.create(mediaType, requestBody.toString());// 构建http请求Request request = new Request.Builder().url("https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=" + getAccessToken()).method("POST", body).addHeader("Content-Type", "application/json").build();// 发送请求并获取响应Response response = HTTP_CLIENT.newCall(request).execute();if(!response.isSuccessful()){throw new IOException("Unexpected code " + response);}// 获取相应体ResponseBody responseBody = response.body();if(responseBody == null){throw new IOException("Response body is null");}String responseBodyString = responseBody.string();// 解析json数据JSONObject jsonResponse = new JSONObject(responseBodyString);System.out.println(jsonResponse);// 提取”result“字段if (jsonResponse.has("result")) {Object result = jsonResponse.get("result");// 打印 "result" 字段return result.toString();} else {return "Response does not contain 'result' field.";}} catch (IOException e) {// 捕获 IO 异常(如网络错误、超时等),并打印异常信息return "Error: " + e.getMessage();} catch (JSONException e) {throw new RuntimeException(e);}}/*** 从用户的AK,SK生成鉴权签名(Access Token)** @return 鉴权签名(Access Token)* @throws IOException IO异常*/static String getAccessToken() throws IOException, JSONException {// 设置请求体的媒体类型为 x-www-form-urlencodedMediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");// 创建请求体,包含 API 的 client_id 和 client_secretRequestBody body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + API_KEY+ "&client_secret=" + SECRET_KEY);// 构建请求,使用 POST 方法获取 Access TokenRequest request = new Request.Builder().url("https://aip.baidubce.com/oauth/2.0/token").method("POST", body).addHeader("Content-Type", "application/x-www-form-urlencoded").build();try(Response response = HTTP_CLIENT.newCall(request).execute();) {// 从响应中解析出Access Tokenreturn new JSONObject(response.body().string()).getString("access_token");}}public static void main(String[] args) {String askContent = "我叫张三丰,性别1毕业于2019.9 – 2023.6 XX 大学 |,电话号码为16134864653,邮箱为jpsd@yahoo.com,求职意向为:Java 后端开发AAA,当前状态为:在看机会,个人简介为:毕业于 XX 大学。熟悉各类软件系统的研发流程和技术,主要擅长 java 技术体系的后端技术,个人技能为:• 熟悉互联网项目整体开发流程’技术,架构,项目和人员管理。包括后端设计、开发、测试上线等\n" +"• 具备技术团队管理经验,能够推进技术人员交流和成长,为业务发展提供良好的技术保障\n" +"• 熟悉服务端相关技术或工具,如 linux、tomact、redis、git、maven、Mysql\n" +"• 熟练使用 postman\\charles\\jmeter 等测试工具,了解并使用 shell、libimobidevice 对 app 进行测试\n" +"• 了解并使用 selenium 进行过 web 端自动化测试\n" +"• 了解前端和移动端,如 html/css/js/jQuery/Android/iOS 等;\n" +"• 了解设计模式:工厂模式、单例模式,证书及获奖情况为:PMP 高级项目工程师\n" +"Java 二级,工作经历为:2024.1-2024.12 CCCCCCCC 科技有限公司 java 后端开发\n" +"2022.5-2023.11 AAAAAA(北京)科技有限公司 java 后端开发\n" +"2020.5-2022.5 BBBBBBBB 技术有限公司 java 后端开发,项目经历为:CCCCCCCC 科技有限公司【2024.1-2024.12】\n" +"工作内容:负责风电机预警项目、就业风向标项目、教师大赛等后端技术开发、数据库设计和管理。\n" +"AAAAAA(北京)科技有限公司【2020.5-2023.11】\n" +" BBBBBBBB 技术有限公司【2019.2-2020.】\n" +"负责公司 wap 端和 PC 端的业务软件测试。主要项目有房贷计算器、直播活动、问答日报等\n" +"教育经历\n" +"2019.9 – 2023.6 XX 大学 |,/n请帮我写一份优化后的简历,不要写任何多余的文字,不要写任何多余的文字,不要写任何多余的文字";System.out.println(getResult("优化后的内容:"+askContent));}
}
相关文章:
springBoot接入文心一言
文章目录 效果接入步骤项目接入配置类:WenXinYiYan前端vue代码js代码 后端mapper层service层controller层 测试代码 效果 先来看一下最后实现的效果 (1)未点击前的功能页面 (2)点击后的页面 (3ÿ…...
力扣HOT100——无重复字符的最长子字符串
给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 思路: 滑动窗口。遍历整个字符串,…...
Python高级爬虫之JS逆向+安卓逆向1.4节:数据运算
目录 引言: 1.4.1 赋值运算 1.4.2 算术运算 1.4.3 关系运算 1.4.4 逻辑运算 1.4.5 标识运算 1.4.6 爬虫接单赚了10块钱 引言: 大神薯条老师的高级爬虫安卓逆向教程: 这套爬虫教程会系统讲解爬虫的初级,中级,高…...
微信小程序无缝衔接弹幕效果纯CSS
效果图 主要运用蒙层、动画延迟 .wxml <view wx:for"{{detail}}" wx:key"{{index}}" class"container" style"--s:{{item.s}}s" ><view wx:for"{{2}}" wx:key"{{index}}" class"container-item&q…...
vue3:十一、主页面布局(增加左上角系统名称)
一、实现效果 侧边栏可平滑折叠/展开,带有过渡动画 折叠时隐藏Logo文字,只显示图标 优化滚动区域,避免标题栏随菜单滚动 解决折叠/展开时出现的滚动条闪烁问题 二、 实现 1、可以使用 SCSS(Sass 的一种语法) 首先…...
孟加拉slot游戏出海代投FB脸书广告策略
对于在孟加拉进行游戏出海代投的广告策略,可以考虑以下方面: 定位目标受众:确定目标受众群体,包括他们的年龄、兴趣爱好、消费习惯等信息,以便精准定位广告投放对象。 优质创意设计:设计吸引人眼球的广告素…...
算法题(125):子集
审题: 本题需要我们将题目给定数组的所有子集枚举起来 思路: 方法一:二进制枚举 枚举对象:0到1<<n -1的整形数据 枚举顺序:顺序 枚举方式:二进制枚举 在解释二进制枚举的方法之前,我们先看…...
深度学习中的数值稳定性处理详解:以SimCLR损失为例
文章目录 1. 问题背景SimCLR的原始公式 2. 数值溢出问题为什么会出现数值溢出?浮点数的表示范围 3. 数值稳定性处理方法核心思想数学推导 4. 代码实现分解代码与公式的对应关系 5. 具体数值示例示例:相似度矩阵方法1:直接计算exp(x)方法2&…...
查看linux中是否安装了tiktoken
在 Linux 中检查 tiktoken 是否安装的完整方法 通过 pip 命令检查 查看已安装的 Python 包列表: pip list | grep tiktoken 若输出包含 tiktoken,则表示已安装。 获取包详细信息: pip show tiktoken 若显示包版本、安装路径…...
从源码看无界 1.0.28:为何说它是 qiankun 的 “轻量化替代方案”(二)
我们接着上一节的《从源码看无界 1.0.28:为何说它是 qiankun 的 “轻量化替代方案”》内容继续往下。 生命周期图 sandbox.active 方法 我们找到 packages/wujie-core/src/sandbox.ts 文件的第 275 行: //.../** 激活子应用* 1、同步路由* 2、动态修改iframe的fetch* 3、准…...
SQL注入之时间盲注攻击流程详解
目录 一、时间盲注原理 二、完整攻击流程 1. 注入点确认 2. 基础条件判断 3. 系统信息收集 (1)获取数据库版本 (2)获取当前数据库名 4. 数据提取技术 (1)表名枚举 (2)列名猜…...
【NIO番外篇】之组件 Selector
目录 一、Selector:网络世界的“机场管制塔” / “总机接线员” 📡什么是 Selector?它的作用是什么? 二、Selector 的工作流程:塔台是怎么指挥飞机的?1. 飞机就位 (准备 Channel):2. 向塔台报到…...
对接印度尼西亚股票数据源API
随着对东南亚市场的关注增加,获取印度尼西亚(IDX)股票市场的实时和历史数据变得尤为重要。本文将指导您如何使用Spring Boot框架对接一个假定的印尼股票数据源API(例如,StockTV),以便开发者能够…...
SQL(9):创建数据库,表,简单
1、创建数据库,一句SQL语句搞定 CREATE DATDBASE 数据库名 CREATE DATABASE my_db;2、创建表 CREATE TABLE 表名(字段名 类型) CREATE TABLE Persons ( PersonID int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255)…...
医学成像中的对比语言-图像预训练模型(CLIP):一项综述|文献速递-深度学习医疗AI最新文献
Title 题目 CLIP in medical imaging: A survey 医学成像中的对比语言-图像预训练模型(CLIP):一项综述 01 文献速递介绍 尽管在过去十年中视觉智能领域取得了重大进展(何恺明等人,2016;塔尔瓦宁和瓦尔…...
KEGG注释脚本kofam2kegg.py--脚本010
采用kofam结合kegg官网htxt进行注释 用法: python kofam2kegg.py kofam.out ath00001.keg my_kegg_output code: import sys from collections import defaultdictdef parse_kofam_file(kofam_file):ko_to_genes defaultdict(list)with open(kofam_file) as f:…...
hevc编码芯片学习-VLSI实现
在Fan等工作中,根据特定算法设计了整像素运动估计引擎,最终的BD-Rate损失非常小,但是硬件开销比较大,搜索算法缺少灵活性,本次设计优化了硬件设计架构, 微代码 取像素 压缩 水平参考像素存储器 寻址控制 转…...
选导师原理
总述 一句话总结:是雷一定要避,好的一定要抢。方向契合最好,不契合适当取舍。 首先明确自身需求: 我要学东西!青年导师,好沟通,有冲劲,高压力。 我要摆烂!中老年男性教…...
2.5亿像素卷帘快门CMOS大幅面扫描相机
规格说明书 主要特征 ◎ 卷帘快门CMOS 传感器 ◎ 2.46 亿像素分辨率 ◎ 全分辨率最高帧率达5fps ◎ 高灵敏度及低噪声 ◎ ROI 区域设置 ◎ 曝光时间灵活控制(外触发,自由运行) ◎ 输出像素格式8/10/12bit 可选 ◎ 自动坏像素校正、平场校正…...
CD27.【C++ Dev】类和对象(18)友元和内部类
目录 1.友元 友元函数 几个特点 友元类 格式 代码示例 2.内部类(了解即可) 计算有内部类的类的大小 分析 注意:内部类不能直接定义 内部类是外部类的友元类 3.练习 承接CD21.【C Dev】类和对象(12) 流插入运算符的重载文章 1.友元 友元函数 在CD21.【C Dev】类和…...
企业级硬盘的测试流程
测试硬盘流程 找一个有Linux操作系统的服务器,配置好管理ip的接口,连接上linux服务器,执行lsblk命令来查看设备的情况 使用mkfs命令格式化要测试的硬盘,格式化之前务必把数据进行备份,可以使用blkid命令查看硬盘的文件…...
std::enable_shared_from_this 模板类的作用是什么?
我们以Connection类的shared智能指针为例说明,std::enable_shared_from_this<Connection> 是一个标准库模板类,它的作用是让一个类的对象能够安全地生成指向自身的 std::shared_ptr,即使该对象最初是通过普通指针或其他方式创建的。 作…...
鸿蒙开发-ArkUi控件使用
2.0控件-按钮 2.1.控件-文本框 Text(this.message).fontSize(40) // 设置文本的文字大小.fontWeight(FontWeight.Bolder) // 设置文本的粗细.fontColor(Color.Red) // 设置文本的颜色------------------------------------------------------------------------- //设置边框Tex…...
大数据学习栈记——MongoDB编程
本文介绍NoSQL技术:MongoDB用Java来连接数据库,执行常见的数据库操作,使用环境:IntelliJ IDEA、Ubuntu24.04。 配置Maven 我们需要使用“MongoDB Driver”,所以先打开“MongoDB Java Driver”项目,但是提…...
体系结构论文(六十七):A Machine-Learning-Guided Framework for Fault-Tolerant DNNs
A Machine-Learning-Guided Framework for Fault-Tolerant DNNs DATE 2024 研究动机 深度神经网络(DNN)虽然对某些扰动具有天然的容错性,但在面对硬件故障(如软错误、老化、环境干扰等)时,仍会出现输出错…...
qt designer 创建窗体选择哪种屏幕大小
1. 新建窗体时选择QVGA还是VGA 下面这个图展示了区别 这里我还是选择默认,因为没有特殊需求,只是在PC端使用...
游戏引擎学习第225天
只能说太难了 回顾当前的进度 我们正在进行一个完整游戏的开发,并在直播中同步推进。上周我们刚刚完成了过场动画系统的初步实现,把开场动画基本拼接完成,整体效果非常流畅。看到动画顺利呈现,令人十分满意,整个系统…...
sql工具怎么选最适合自己的?
sql工具怎么选? 为什么大多数主流工具又贵又难用?有没有一款免费好用的sql工具?像大多数朋友经常用的sql工具应该都遇到过这种情况,用着用着收到了来自品牌方的律师函,或者处理数据时经常卡死,再或者不支持…...
css实现一键换肤
实现一键换肤的时候,我们除了动态替换引用的css文件,还可以通过使用css变量的方式,达到所需效果。 首先我们来了解css变量,css变量以--开头,引用时va(--变量名),例 :root{--default-color: #fff; } .box{b…...
波束形成(BF)从算法仿真到工程源码实现-第八节-波束图
一、概述 本节对MVDR、LCMV、LMS等算法的波束图进行仿真。 二、MVDR代码仿真 2.1 mvdr代码 clc; clear; M 18; % 天线数 lambda 10; d lambda / 2; L 100; %快拍数 thetas [10]; % 期望信号入射角度 thetai [-30 30]; % 干扰入射角度 n [0:M-1]; vs exp(-1j * 2…...
静态代码深度扫描详解
静态代码深度扫描是一种通过分析源代码结构、语法、语义及潜在逻辑,在不运行程序的情况下全面检测代码缺陷、安全漏洞和质量问题的技术。它通过结合数据流分析、控制流分析、符号执行等高级技术,实现对代码的深度理解,帮助开发团队在早期发现…...
LC25. K 个一组翻转链表(自己用)
25. K 个一组翻转链表 Java代码: 思路:利用虚拟头节点结合反转链表实现 Code: class Solution {public ListNode reverseKGroup(ListNode head, int k) {ListNode dummy new ListNode(0);if (head null || k 1)return head;ListNode…...
Spring事务同步器在金融系统中的应用:从风控计算到交易投递
一句话总结 通过 TransactionSynchronization 机制,成功将投行交易系统的可靠性提升至金融级要求,并在对公贷款风控中实现高效资源管理。未来,事务管理将不仅仅是“提交”与“回滚”的二元选择,而是向智能化、实时化演进的核心基础设施。 1. 架构设计 1.1 整体架构图 2.…...
sealos跳转到cusor安装出错
第一次打开cursor安装出错怎么办 我出现这个问题的解决方式是重新下载并且切换目录解决...
【CUDA 】第3章 CUDA执行模型——3.5循环展开(1)
CUDA C编程笔记 第三章 CUDA执行模型3.5 循环展开3.5.1 展开的规约 待解决的问题: 第三章 CUDA执行模型 3.5 循环展开 循环展开是一种循环优化的技术,通过减少分支出现频率循环维护指令。 循环主体代码被多次编写,任何封闭的循环可以把迭代…...
AndroidStudio编译报错 Duplicate class kotlin
具体的编译报错信息如下: Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules kotlin-stdlib-1.8.10 (org.jetbrains.kotlin:kotlin-stdlib:1.8.10) and kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21) D…...
LeetCode hot 100—搜索二维矩阵
题目 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 fa…...
栈与队列习题分享(精写)
最小栈 题解 一、题目描述 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素 val 推入堆栈。 void pop() 删除堆栈顶部的元素。 int…...
Kotlin 集合过滤全指南:all、any、filter 及高级用法
在 Kotlin 中,集合过滤是数据处理的核心操作之一。无论是简单的条件筛选,还是复杂的多条件组合,Kotlin 都提供了丰富的 API。本文将详细介绍 filter、all、any、none 等操作符的用法,并展示如何在实际开发中灵活运用它们。 1. 基础…...
【lerobot】3-开源SO-100 主从臂的舵机位置校正、遥控操作(ubuntu系统)
官方从零教程:https://github.com/huggingface/lerobot/blob/main/examples/10_use_so100.md 8-lerobot aloha装配完毕如何进行遥操作 需要先完成的 组装好了so-100 2个机械臂下载安装了lerobot的代码环境:固定好主从臂,通过usb链接到同一个…...
影刀RPA证书题库包含初级、中级、高级和AP初级
影刀rpa初级证书选择题答案,影刀证书答案,影刀rpa考试,影刀初级考试,影刀初级考试选择题 原因 以前的在线题库https://exam.ezrpa.store/是为了方便更新题目和使用的,但经过实际使用发现大部分人“不会用”࿱…...
LR(0)
LR0就是当我处在自动机为红色这些结束状态的时候,这些红色状态就代表我们识别到了一个句柄,那现在的问题就是识别到了句柄,那要不要对他进行归约?LR0就是我不管当前指针指向的终结符是什么,我都拿它做规约 这里的二号状…...
基于 Python 和 OpenCV 技术的疲劳驾驶检测系统(2.0 全新升级,附源码)
大家好,我是徐师兄,一个有着7年大厂经验的程序员,也是一名热衷于分享干货的技术爱好者。平时我在 CSDN、掘金、华为云、阿里云和 InfoQ 等平台分享我的心得体会。 🍅文末获取源码联系🍅 2025年最全的计算机软件毕业设计…...
Matplotlib库详解
Matplotlib 是 Python 里一个特别常用的绘图库,它能帮你创建各种各样的可视化图形,像折线图、柱状图、散点图等。对于数据可视化、数据分析和科学研究而言,它是非常重要的工具。接下来我会以初学者的视角,为你详细介绍 Matplotlib…...
daz dForce to UE 的原理分析
dForce是物理模拟,不是关键帧动画: dForce是一个物理引擎。当你运行模拟时,Daz Studio会根据你设置的物理属性(如裙子的重量、布料的硬度、摩擦力)、环境因素(如重力、风力)以及与角色的碰撞&am…...
速卖通商品详情API接口:功能、应用与开发指南
前言 在全球跨境电商蓬勃发展的背景下,速卖通(AliExpress)作为阿里巴巴旗下的国际电商平台,凭借丰富的商品种类和庞大的用户群体,成为众多商家和开发者拓展海外市场的首选平台。为了满足商家和开发者对商品数据的深度…...
4月14日星期一今日早报简报微语报早读
4月14日星期一,农历三月十七,早报#微语早读。 1、全国田径大奖赛接力摘金,苏炳添的传奇将延续至全运会; 2、中国红基会:2024年全年总收支12.85亿元; 3、我国2025年电影总票房已突破250亿 位居全球第一&a…...
快速排序(非递归版本)
引言 在排序算法的世界里,快速排序以其高效的性能脱颖而出。它采用分治法的思想,通过选择基准元素将数组分为两部分,递归地对左右两部分进行排序。然而,递归实现的快速排序在处理大规模数据时可能会导致栈溢出的问题。为了解决这…...
Ubuntu20.04 设置开机自启
参考: Ubuntu20.04 设置开机自启_ubuntu进bos系统-CSDN博客...
添加登录和注册功能
先写前端再写后端 前提:ideavue3mybatisspringBoot3前后端分离实现对一张表的增删改查(完整代码版)-CSDN博客 项目地址 1.添加一个Login.vue视图 <template><div class"login_container"><div class"login…...