DeepSeek 助力 Vue 开发:打造丝滑的颜色选择器(Color Picker)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕
目录
- DeepSeek 助力 Vue 开发:打造丝滑的颜色选择器(Color Picker)
- 📚前言
- 📚进入安装好的DeepSeek
- 📚页面效果
- 📚指令输入
- 属性
- 事件
- 其他功能
- 📚think
- 📘定义组件 src\components\ColorPicker\ColorPicker.vue
- 📘使用组件 src\views\ColorPickerView.vue
- 📚代码测试
- 📚测试代码正常跑通,附其他基本代码
- 📘编写路由 src\router\index.js
- 📘编写展示入口 src\App.vue
- 📚页面效果
- 📚自己部署 DeepSeek 安装地址
- 📚相关文章
📚📗📕📘📖🕮💡📝🗂️✍️🛠️💻🚀🎉🏗️🌐🖼️🔗📊👉🔖⚠️🌟🔐⬇️·正文开始
⬇️·🎥😊🎓📩😺🌈🤝🤖📜📋🔍✅🧰❓📄📢📈 🙋0️⃣1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣9️⃣🔟🆗*️⃣#️⃣
DeepSeek 助力 Vue 开发:打造丝滑的颜色选择器(Color Picker)
📚前言
公募基金行业也在积极拥抱 DeepSeek,以提升投资研究、产品销售等业务的效率和质量。
汇添富基金率先宣布,已完成 DeepSeek 系列开源模型的私有化部署,并将应用于投资研究、产品销售、风控合规、客户服务等核心业务场景。相较于传统模型,DeepSeek 系列模型具备更强的语言理解、逻辑推理及多轮对话能力,不仅保障了数据安全性与响应效率,更可针对金融场景需求进行定向优化,将显著提升金融数据分析的深度与广度,全面赋能公司各项业务。以电商为例,公司互金部门已组建代号为 “deepfund” 的 AI 团队,利用 AI 大模型全面提升基金电商的运营效率和用户体验,推动电商销售业务的智能化发展 。
📚进入安装好的DeepSeek
0基础3步部署自己的DeepSeek安装步骤
打开搭建好的DeepSeek应用。
进入应用。
📚页面效果
📚指令输入
已经创建好了一个基于Vue3的组合式API的项目(Composition API),并能正常运行起来,请帮我用 Vue3的组合式API(Composition API) 生成一个 颜色选择器(Color Picker) 的功能组件,所有代码都保存在components/ColorPicker 下的文件夹中。功能组件的script标签中只有setup属性,使用普通 JavaScript 实现,不使用TypeScript。
功能要有,如下属性:
属性
-
modelValue (String/Object)
- 支持多种格式:HEX、RGB/RGBA、HSL/HSLA 等
- 可考虑使用
v-model
双向绑定
-
defaultColor (String)
- 初始默认颜色值(当 modelValue 为空时使用)
-
showAlpha (Boolean)
- 是否显示透明度控制条
-
presetColors (Array)
- 预设颜色数组,可支持自定义格式
- 示例:[“#FF0000”, “rgba(0,255,0,0.5)”]
-
colorMode (String)
- 显示的颜色模式选择:‘hex’ | ‘rgb’ | ‘hsl’
- 或允许同时显示多种输入模式
-
disabled (Boolean)
- 是否禁用组件
事件
-
update:modelValue
- 颜色值变更时触发(用于 v-model 绑定)
-
change
- 当用户完成颜色选择时触发(比 input 更确定的操作)
-
invalid
- 当输入非法颜色值时触发
其他功能
-
交互设计
- 色相环 + 饱和度/明度平面选择器
- 直接输入颜色值的文本输入框
- 颜色预览区域
- 透明度控制条(当 showAlpha=true 时)
-
无障碍访问
- 支持键盘导航操作
- 添加 ARIA 标签
- 高对比度模式支持
-
扩展功能
- 颜色历史记录功能
- 支持吸管取色(需要浏览器支持)
- 颜色格式自动识别与转换
-
性能优化
- 高频操作(如拖动选择时)使用 debounce
- 复杂计算使用 Web Worker
-
样式建议
- 提供 CSS 变量供主题定制
- 支持插槽(slots)自定义部分区域
- 移动端触摸优化
-
开发建议
- 使用 TypeScript 定义颜色类型
- 提供颜色转换工具函数(如 hexToRgb)
- 编写单元测试覆盖各种颜色格式转换
-
兼容性
- 提供不同颜色格式间的自动转换
- 处理浏览器前缀和兼容性问题
- 响应式布局支持
-
文档建议
- 提供不同使用场景的示例
- 说明支持的颜色格式规范
- 添加交互演示示例
建议先实现核心功能(色盘选择 + HEX 输入),再逐步扩展高级功能。可参考成熟颜色选择器(如 Photoshop、Chrome 开发者工具)的交互模式,同时保持 Vue3 组件的声明式特性。
你有更好的建议也可以添加,要注明。组件定义好后给出3个及以上的调用示例。
下面是现有目录
vueAndDeepseek/
├── src/ # 源代码目录
│ ├── assets/ # 静态资源
│ │ ├── base.css
│ │ ├── main.css
│ │ └── logo.svg
│ ├── components/ # 组件目录
│ │ ├── HelloWorld.vue
│ │ ├── TheWelcome.vue
│ │ ├── WelcomeItem.vue
│ │ ├── Progress/
│ │ │ └── Progress.vue
│ │ ├── Accordion/
│ │ ├── BackToTop/
│ │ ├── Card/
│ │ ├── InfiniteScroll/
│ │ ├── Notification/
│ │ ├── Timeline/
│ │ ├── Switch/
│ │ ├── Tabs/
│ │ ├── Sidebar/
│ │ ├── Breadcrumbs/
│ │ ├── MasonryLayout/
│ │ ├── Rating/
│ │ ├── ColorPicker/
│ │ ├── DatePicker/
│ │ └── icons/
│ ├── router/ # 路由配置
│ │ └── index.js
│ ├── stores/ # Pinia 状态管理
│ │ └── counter.js
│ ├── views/ # 页面组件
│ │ ├── ProgressView.vue
│ │ ├── TabsView.vue
│ │ ├── SwitchView.vue
│ │ ├── TimelineView.vue
│ │ ├── NotificationView.vue
│ │ ├── CardView.vue
│ │ ├── InfiniteScrollView.vue
│ │ ├── BackToTopView.vue
│ │ ├── AccordionView.vue
│ │ ├── SidebarView.vue
│ │ ├── BreadcrumbsView.vue
│ │ ├── MasonryLayoutView.vue
│ │ ├── RatingView.vue
│ │ ├── ColorPickerView.vue
│ │ ├── DatePickerView.vue
│ │ └── AboutView.vue
│ ├── App.vue # 根组件
│ └── main.js # 应用入口
├── public/ # 公共资源目录
├── index.html # HTML 模板
├── package.json # 项目配置
├── vite.config.js # Vite 配置
└── node_modules/ # 依赖包目录
📚think
嗯,我现在需要帮用户生成一个基于Vue3组合式API的颜色选择器组件。用户已经有一个Vue3项目,使用的是Composition API,并且要求所有代码放在components/ColorPicker文件夹下。组件的script标签中只有setup属性,用普通JavaScript实现,不使用TypeScript。
首先,我得理解用户的需求。他们需要一个功能丰富的颜色选择器,支持多种颜色格式,如HEX、RGB、RGBA、HSL等,并且能够通过v-model双向绑定。还有其他属性如defaultColor、showAlpha、presetColors、colorMode、disabled等等。同时,事件包括update:modelValue、change和invalid。
接下来,我得考虑核心功能的实现。用户建议先实现色盘选择和HEX输入,再逐步扩展高级功能。所以,我应该先专注于这两个部分,确保它们能正常工作。
在组件结构方面,需要一个色相环和饱和度/明度平面选择器,以及文本输入框、颜色预览区域,还有可选的透明度控制条。交互设计要支持键盘导航,添加ARIA标签,高对比度模式等无障碍访问特性。
考虑到性能优化,高频操作如拖动时需要使用 debounce,复杂计算可能用Web Worker,但目前核心功能可能不需要。
样式方面,要提供CSS变量供主题定制,支持插槽,移动端触摸优化。开发建议包括颜色转换工具函数和单元测试,这些可能后续再处理。
兼容性方面,不同浏览器的支持和响应式布局需要考虑,但当前版本可以先实现基本功能,后续再做兼容性调整。
现在,我得开始编写组件代码。首先,在components/ColorPicker下创建一个ColorPicker.vue文件。script部分使用setup函数,导入vue的ref、computed等组合式API。
处理modelValue:由于v-model需要双向绑定,内部会管理一个colorValue的状态,当外部传入modelValue时,初始化这个状态,并在更新时触发update:modelValue事件。
defaultColor属性用于在modelValue为空时设置初始值。showAlpha控制透明度滑块的显示与否。presetColors是一个数组,用户可以自定义颜色列表,可能需要渲染成小色块供选择。
colorMode允许用户切换显示的颜色格式模式,如hex、rgb、hsl等。这会影响输入框和显示的内容,所以需要根据colorMode来处理颜色值的转换。
disabled属性控制组件是否禁用,影响交互元素的可用性。
事件部分,update:modelValue在颜色变化时触发,change事件在用户完成选择后触发,invalid在非法输入时触发。
接下来是核心功能:色盘选择和HEX输入。我需要一个色相环,允许用户选择色相,以及一个平面来调整饱和度和明度。这可能涉及到计算颜色坐标,并根据拖拽位置更新颜色值。
文本输入框用于直接输入颜色值,如#FF0000或rgb(255,0,0)等格式。需要处理输入的变化,解析为正确的颜色值,并在无效时触发invalid事件。
颜色预览区域显示当前选择的颜色,并可能作为点击目标来打开色盘或其他操作。
透明度控制条是一个滑块,允许调整alpha通道的值,这在showAlpha为true时显示。
现在,我得考虑如何实现这些功能。首先,设置组件的状态变量:
colorValue:存储当前颜色值,可能是对象形式,包含h、s、l或r、g、b、a等属性。
hsv:用于色相环和饱和度明度平面的坐标。
inputText:用户输入的颜色字符串,可能与colorValue不同步,需要解析。
在setup函数中,初始化这些状态变量,并处理props。例如,当modelValue变化时,更新colorValue;当showAlpha变化时,调整滑块的显示。
接下来是事件处理。比如,点击色盘时,计算新的hsv值并更新颜色。拖拽鼠标时,同样需要计算新的坐标,并使用debounce来防止频繁更新。
文本输入的变化需要解析为颜色对象,如果解析失败,则触发invalid事件。可能需要一个函数parseColor来处理不同的格式。
组件的模板部分需要布局各个元素:色盘、滑块、输入框、预览区域等。同时,根据colorMode显示相应的信息,如HEX或RGB值。
最后,测试组件是否能正确响应用户交互,颜色值是否更新,事件是否触发,以及状态是否保持一致。
在编写代码时,可能会遇到一些问题,比如如何将鼠标位置映射到色相环和饱和度平面,或者处理不同颜色格式的转换。可能需要引入一些数学计算或查找现成的算法。
📘定义组件 src\components\ColorPicker\ColorPicker.vue
<script setup>
import { ref, computed, watch, onMounted } from 'vue';
import { hexToRgb, rgbToHex, hslToRgb } from './utils';const props = defineProps({modelValue: {type: [String, Object],default: ''},defaultColor: {type: String,default: '#000000'},showAlpha: {type: Boolean,default: false},presetColors: {type: Array,default: () => ['#ff0000', '#00ff00', '#0000ff', '#ffff00', '#00ffff', '#ff00ff']},colorMode: {type: String,default: 'hex'},disabled: {type: Boolean,default: false}
});const emit = defineEmits(['update:modelValue', 'change', 'invalid']);const currentColor = ref(props.modelValue || props.defaultColor);
const hue = ref(0);
const saturation = ref(100);
const lightness = ref(50);
const alpha = ref(100);const colorPanelRef = ref(null);
const hueSliderRef = ref(null);const updateColor = (h, s, l, a = 100) => {hue.value = h;saturation.value = s;lightness.value = l;alpha.value = a;const rgb = hslToRgb(h/360, s/100, l/100);const hex = rgbToHex(rgb.r, rgb.g, rgb.b);currentColor.value = hex;emit('update:modelValue', hex);emit('change', hex);
};const handleColorPanelClick = (event) => {if (props.disabled) return;const rect = event.target.getBoundingClientRect();const x = event.clientX - rect.left;const y = event.clientY - rect.top;const s = Math.round((x / rect.width) * 100);const l = Math.round(100 - (y / rect.height) * 100);updateColor(hue.value, s, l);
};const handleHueSliderChange = (event) => {if (props.disabled) return;const rect = event.target.getBoundingClientRect();const x = event.clientX - rect.left;const h = Math.round((x / rect.width) * 360);updateColor(h, saturation.value, lightness.value);
};const handlePresetColorClick = (color) => {if (props.disabled) return;currentColor.value = color;emit('update:modelValue', color);emit('change', color);
};onMounted(() => {if (!props.modelValue && props.defaultColor) {currentColor.value = props.defaultColor;emit('update:modelValue', props.defaultColor);}
});watch(() => props.modelValue, (newVal) => {if (newVal !== currentColor.value) {currentColor.value = newVal;}
});
</script><template><div class="color-picker" :class="{ 'is-disabled': disabled }"><div class="color-display"><div class="current-color" :style="{ backgroundColor: currentColor }"></div></div><div class="color-panel" ref="colorPanelRef"@click="handleColorPanelClick"><div class="saturation-lightness-panel":style="{ backgroundColor: `hsl(${hue}, 100%, 50%)` }"></div></div><div class="hue-slider" ref="hueSliderRef"@click="handleHueSliderChange"><div class="hue-track"></div><div class="hue-thumb" :style="{ left: `${(hue/360)*100}%` }"></div></div><div v-if="showAlpha" class="alpha-slider"><input type="range" v-model="alpha" min="0" max="100":disabled="disabled"></div><div class="preset-colors"><div v-for="color in presetColors" :key="color"class="preset-color":style="{ backgroundColor: color }"@click="handlePresetColorClick(color)"></div></div><div class="color-inputs"><input type="text" v-model="currentColor":disabled="disabled"@input="$emit('update:modelValue', $event.target.value)"></div></div>
</template><style scoped>
.color-picker {width: 280px;padding: 15px;background: #fff;border: 1px solid #ddd;border-radius: 4px;box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}.color-display {margin-bottom: 10px;
}.current-color {width: 100%;height: 30px;border-radius: 4px;border: 1px solid #ddd;
}.color-panel {width: 100%;height: 150px;position: relative;margin-bottom: 10px;border: 1px solid #ddd;cursor: pointer;
}.saturation-lightness-panel {width: 100%;height: 100%;background-image: linear-gradient(to right, #fff, transparent),linear-gradient(to top, #000, transparent);
}.hue-slider {width: 100%;height: 20px;position: relative;margin-bottom: 10px;cursor: pointer;
}.hue-track {width: 100%;height: 100%;background: linear-gradient(to right, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);border-radius: 4px;
}.hue-thumb {position: absolute;width: 4px;height: 100%;background: #fff;border: 1px solid #999;top: 0;transform: translateX(-50%);
}.preset-colors {display: flex;flex-wrap: wrap;gap: 5px;margin-bottom: 10px;
}.preset-color {width: 20px;height: 20px;border-radius: 4px;border: 1px solid #ddd;cursor: pointer;
}.color-inputs input {width: 100%;padding: 5px;border: 1px solid #ddd;border-radius: 4px;
}.is-disabled {opacity: 0.6;pointer-events: none;
}.alpha-slider {width: 100%;margin-bottom: 10px;
}.alpha-slider input {width: 100%;
}
</style>
📘使用组件 src\views\ColorPickerView.vue
<script setup>
import { ref } from 'vue';
import ColorPicker from '../components/ColorPicker/ColorPicker.vue';const color1 = ref('#ff0000');
const color2 = ref('#00ff00');
const color3 = ref('#0000ff');const handleColorChange = (color) => {console.log('颜色已更改:', color);
};
</script><template><div class="color-picker-demo"><h2>颜色选择器示例</h2><div class="demo-item"><h3>基础用法</h3><ColorPicker v-model="color1" @change="handleColorChange" /><p>选中的颜色: {{ color1 }}</p></div><div class="demo-item"><h3>带透明度</h3><ColorPicker v-model="color2":show-alpha="true":preset-colors="['#ff0000', '#00ff00', '#0000ff', '#ffff00']"/><p>选中的颜色: {{ color2 }}</p></div><div class="demo-item"><h3>禁用状态</h3><ColorPicker v-model="color3":disabled="true"default-color="#666666"/><p>选中的颜色: {{ color3 }}</p></div></div>
</template><style scoped>
.color-picker-demo {padding: 20px;
}.demo-item {margin-bottom: 30px;
}h2 {margin-bottom: 20px;
}h3 {margin-bottom: 15px;
}
</style>
📚代码测试
正常
📚测试代码正常跑通,附其他基本代码
- 添加路由
- 页面展示入口
📘编写路由 src\router\index.js
import { createRouter, createWebHistory } from 'vue-router'const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [{path: '/',name: 'progress',component: () => import('../views/ProgressView.vue'),},{path: '/tabs',name: 'tabs',// route level code-splitting// this generates a separate chunk (About.[hash].js) for this route// which is lazy-loaded when the route is visited.// 标签页(Tabs)component: () => import('../views/TabsView.vue'),},{path: '/accordion',name: 'accordion',// 折叠面板(Accordion)component: () => import('../views/AccordionView.vue'),},{path: '/timeline',name: 'timeline',// 时间线(Timeline)component: () => import('../views/TimelineView.vue'),},{path: '/backToTop',name: 'backToTop',component: () => import('../views/BackToTopView.vue')},{path: '/notification',name: 'notification',component: () => import('../views/NotificationView.vue')},{path: '/card',name: 'card',component: () => import('../views/CardView.vue')},{path: '/infiniteScroll',name: 'infiniteScroll',component: () => import('../views/InfiniteScrollView.vue')},{path: '/switch',name: 'switch',component: () => import('../views/SwitchView.vue')},{path: '/sidebar',name: 'sidebar',component: () => import('../views/SidebarView.vue')},{path: '/breadcrumbs',name: 'breadcrumbs',component: () => import('../views/BreadcrumbsView.vue')},{path: '/masonryLayout',name: 'masonryLayout',component: () => import('../views/masonryLayoutView.vue')},{path: '/rating',name: 'rating',component: () => import('../views/RatingView.vue')},{path: '/datePicker',name: 'datePicker',component: () => import('../views/DatePickerView.vue')},{path: '/colorPicker',name: 'colorPicker',component: () => import('../views/ColorPickerView.vue')}],
})export default router
📘编写展示入口 src\App.vue
<script setup>
import { RouterLink, RouterView } from 'vue-router'
import HelloWorld from './components/HelloWorld.vue'
</script><template><header><img alt="Vue logo" class="logo" src="@/assets/logo.svg" width="125" height="125" /><div class="wrapper"><HelloWorld msg="You did it!" /><nav><RouterLink to="/">Progress</RouterLink><RouterLink to="/tabs">Tabs</RouterLink><RouterLink to="/accordion">Accordion</RouterLink><RouterLink to="/timeline">Timeline</RouterLink><RouterLink to="/backToTop">BackToTop</RouterLink><RouterLink to="/notification">Notification</RouterLink><RouterLink to="/card">Card</RouterLink><RouterLink to="/infiniteScroll">InfiniteScroll</RouterLink><RouterLink to="/switch">Switch</RouterLink><RouterLink to="/sidebar">Sidebar</RouterLink><RouterLink to="/breadcrumbs">Breadcrumbs</RouterLink><RouterLink to="/masonryLayout">MasonryLayout</RouterLink><RouterLink to="/rating">Rating</RouterLink><RouterLink to="/datePicker">DatePicker</RouterLink><RouterLink to="/colorPicker">ColorPicker</RouterLink></nav></div></header><RouterView />
</template><style scoped>
header {line-height: 1.5;max-height: 100vh;
}.logo {display: block;margin: 0 auto 2rem;
}nav {width: 100%;font-size: 12px;text-align: center;margin-top: 2rem;
}nav a.router-link-exact-active {color: var(--color-text);
}nav a.router-link-exact-active:hover {background-color: transparent;
}nav a {display: inline-block;padding: 0 1rem;border-left: 1px solid var(--color-border);
}nav a:first-of-type {border: 0;
}@media (min-width: 1024px) {header {display: flex;place-items: center;padding-right: calc(var(--section-gap) / 2);}.logo {margin: 0 2rem 0 0;}header .wrapper {display: flex;place-items: flex-start;flex-wrap: wrap;}nav {text-align: left;margin-left: -1rem;font-size: 1rem;padding: 1rem 0;margin-top: 1rem;}
}
</style>
📚页面效果
📚自己部署 DeepSeek 安装地址
蓝耘元生代智算云平台地址:https://cloud.lanyun.net/#/registerPage?promoterCode=07100c37a0
📚相关文章
-
0基础3步部署自己的DeepSeek安装步骤
-
DeepSeek 助力 Vue 开发:打造丝滑的步骤条(Step bar)
-
DeepSeek 助力 Vue 开发:打造丝滑的进度条(Progress Bar)
-
自己部署 DeepSeek 助力 Vue 开发:打造丝滑的标签页(Tabs)
-
自己部署 DeepSeek 助力 Vue 开发:打造丝滑的折叠面板(Accordion)
-
自己部署 DeepSeek 助力 Vue 开发:打造丝滑的时间线(Timeline )
-
DeepSeek 助力 Vue 开发:打造丝滑的返回顶部按钮(Back to Top)
-
DeepSeek 助力 Vue 开发:打造丝滑的通知栏(Notification Bar)
-
DeepSeek 助力 Vue 开发:打造丝滑的卡片(Card)
-
DeepSeek 助力 Vue 开发:打造丝滑的无限滚动(Infinite Scroll)
-
DeepSeek 助力 Vue 开发:打造丝滑的开关切换(Switch)
-
DeepSeek 助力 Vue 开发:打造丝滑的侧边栏(Sidebar)
-
DeepSeek 助力 Vue 开发:打造丝滑的面包屑导航(Breadcrumbs)
-
DeepSeek 助力 Vue 开发:打造丝滑的瀑布流布局(Masonry Layout)
-
DeepSeek 助力 Vue 开发:打造丝滑的评分组件(Rating)
-
DeepSeek 助力 Vue 开发:打造丝滑的日期选择器(Date Picker),未使用第三方插件
到此这篇文章就介绍到这了,更多精彩内容请关注本人以前的文章或继续浏览下面的文章,创作不易,如果能帮助到大家,希望大家多多支持宝码香车~💕,若转载本文,一定注明本文链接。
更多专栏订阅推荐:
👍 html+css+js 绚丽效果
💕 vue
✈️ Electron
⭐️ js
📝 字符串
✍️ 时间对象(Date())操作
相关文章:
DeepSeek 助力 Vue 开发:打造丝滑的颜色选择器(Color Picker)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...
【ArcGIS Pro二次开发】(87):样式_Style的用法
.Stylx类型的文件即为样式库文件,保存了符号样式。 1、根据名字获取当前工程中的style //获取当前工程中的所有style var ProjectStyles Project.Current.GetItems<StyleProjectItem>();//根据名字找出指定的style StyleProjectItem style ProjectStyles.F…...
Jetson Agx Orin平台JP6.0-r36.3版本修复了vi模式下的原始图像损坏(线条伪影)
1.问题描述 这是JP-6.0 GA/ l4t-r36.3.0的一个已知问题 通过vi模式捕获的图像会导致异常线条 参考下面的快照来演示这些线伪影 这个问题只能通过VI模式进行修复,不应该通过LibArgus看到。 此外,这是由于内存问题。 由于upstream已经将属性名称更改为“dma-noncoherent”…...
nlp|微调大语言模型初探索(2),训练自己的聊天机器人
前言 上篇文章记录了具体的微调语言大模型步骤,以及在微调过程中可能遇见的各种报错,美中不足的是只是基于开源数据集的微调,今天来记录一下怎么基于自己的数据集去微调大语言模型,训练自己的智能机器人!!&…...
如何搭建Wi-Fi CVE漏洞测试环境:详细步骤与设备配置
引言 随着Wi-Fi技术的普及,Wi-Fi网络成为了现代通信的重要组成部分。然而,Wi-Fi网络的安全性始终是一个备受关注的话题。通过漏洞扫描和安全测试,网络管理员可以及早发现并修复Wi-Fi设备中存在的安全隐患。本篇文章将详细介绍如何搭建Wi-Fi …...
【三维重建】FeatureGS:特征值优化的几何精度和伪影减少3DGS的重构
文章:https://arxiv.org/pdf/2501.17655 标题:FeatureGS: Eigenvalue-Feature Optimization in 3D Gaussian Splatting for Geometrically Accurate and Artifact-Reduced Reconstruction 文章目录 摘要一、引言二、相关工作:3D特征三、算法3…...
请解释一下Standford Alpaca格式、sharegpt数据格式-------deepseek问答记录
1 Standford Alpaca格式 json格式数据。Stanford Alpaca 格式是一种用于训练和评估自然语言处理(NLP)模型的数据格式,特别是在指令跟随任务中。它由斯坦福大学的研究团队开发,旨在帮助模型理解和执行自然语言指令。以下是该格式的…...
WPS的AI助手进化跟踪(灵犀+插件)
Ver V0.0 250216: 如何给WPS安装插件用以支持其他大模型LLM V0.1 250217: WPS的灵犀AI现在是DeepSeek R1(可能是全参数671B) 前言 WPS也有内置的AI,叫灵犀,之前应是自已的LLM模型,只能说是属于“能用,有好过无”,所…...
本地事务简介
本地事务简介 1 事务基本性质 数据库事务的几个特性:原子性(Automicity)、一致性(Consistency)、隔离性或独立性(islation)和持久性(Durability),简称ACID。 原子性:一系列的操作,其整体不可拆分,要么同时成功&#…...
Python入门全攻略(七)
面向对象-基础 类和对象 类是一个抽象的概念,对象是一个具体的概念。类是对象的模板和蓝图,用来定义对象的属性和方法,对象是类的实例,具有具体的属性和行为。 类的定义 使用class关键字加上类名来定义类,在类的代码块中,我们可以写一些函数,这些函数是对一类对象共…...
SpringBoot 统一功能处理之拦截器、数据返回格式、异常处理
目录 拦截器 一、什么是拦截器 二 拦截器的使用 三 拦截路径配置 四 拦截器的执行流程 统一数据返回格式 统一异常处理 拦截器 一、什么是拦截器 拦截器是Spring框架提供的核心功能之一,主要用来拦截用户的请求,在指定方法前后,根据业务…...
Javascript网页设计案例:通过PDF.js实现一款PDF阅读器,包括预览、页面旋转、页面切换、放大缩小、黑夜模式等功能
前言 目前功能包括: 切换到首页。切换到尾页。上一页。下一页。添加标签。标签管理页面旋转页面随意拖动双击后还原位置 其实按照自己的预期来说,有很多功能还没有开发完,配色也没有全都搞完,先发出来吧,后期有需要…...
js考核第三题
题三:随机点名 要求: 分为上下两个部分,上方为显示区域,下方为控制区域。显示区域显示五十位群成员的学号和姓名,控制区域由开始和结束两个按钮 组成。点击开始按钮,显示区域里的内容开始滚动,…...
新型基于Go语言的恶意软件利用Telegram作为C2通信渠道
研究人员发现了一种新型后门恶意软件,使用Go语言编写,并利用Telegram作为其命令与控制(C2)通信渠道。尽管该恶意软件似乎仍处于开发阶段,但它已经具备完整的功能,能够执行多种恶意活动。这种创新的C2通信方…...
【Python 语法】Python 正则表达式(regular expressions, regex)
1. 基本语法1.1 字符匹配1.2 元字符1.3 特殊字符1.4 分组和捕获1.5 断言2. 常用函数2.1 `re.match()`2.2 `re.search()`2.3 `re.findall()`2.4 `re.sub()`2.5 `re.split()`3. 进阶用法3.1 捕获组3.2 非捕获组3.3 预查Python 中的**正则表达式(regular expressions, regex)**是…...
STM32 如何使用DMA和获取ADC
目录 背景 摇杆的原理 程序 端口配置 ADC 配置 DMA配置 背景 DMA是一种计算机技术,允许某些硬件子系统直接访问系统内存,而不需要中央处理器(CPU)的介入,从而减轻CPU的负担。我们可以通过DMA来从外设…...
【原创】vue-element-admin-plus完成编辑页面中嵌套列表功能
前言 vue-element-admin-plus对于复杂业务的支持程度确实不怎么样,我这里就遇到了编辑页面中还要嵌套列表的真实案例,比如字典,主字典嵌套子信息,类似于一个树状结构。目前vue-element-admin-plus给出的例子是无法满足这个需求的…...
Java零基础入门笔记:(3)程序控制
前言 本笔记是学习狂神的java教程,建议配合视频,学习体验更佳。 【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili Scanner对象 之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类&…...
拷打,数据库面经!
数据库必会面试题 1. 请解释数据库中的MVCC(多版本并发控制)机制,并说明其在MySQL InnoDB中的具体实现方式? 答案: MVCC是一种通过维护数据的历史版本实现高并发的技术,允许读操作不阻塞写操作࿰…...
Docker+DockerCompose+Harbor安装
安装docker # 安装yum工具 yum install yum-utils -y# 配置yum源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 安装docker yum install -y docker-ce-25.0.3 docker-ce-cli-25.0.3 containerd.io# 加载镜像 systemctl d…...
论文笔记(七十二)Reward Centering(一)
Reward Centering(一) 文章概括摘要1 奖励中心化理论 文章概括 引用: article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan, Yi and Tomar, Manan and Sutton, Richard S},journal{arXiv preprint arXiv:2405.0…...
在springboot加vue项目中加入图形验证码
后端 首先先要创建一个CaptchaController的类,可以在下面的代码中看到 在getCaptcha的方法里面写好了生成随机的4位小写字母或数字的验证码,然后通过BufferedImage类变为图片,顺便加上了干扰线。之后把图片转为Base64编码方便传给前端 为了…...
【系列专栏】银行IT的云原生架构-存储架构-数据库部署 10
银行 IT 的云原生架构:存储架构(数据库部署) 一、引言 在银行 IT 云原生架构的构建中,存储架构作为关键支撑,其性能、可靠性和扩展性直接影响着银行各类业务系统的运行效率与数据安全。而数据库作为数据存储与管理的…...
OpenGL ES -> 投影变换矩阵完美解决绘制GLSurfaceView绘制图形拉伸问题
GLSurfaceView绘制图形拉伸问题 假如在XML文件中声明GLSurfaceView的宽高为 android:layout_width"match_parent"android:layout_height"match_parent GLSurfaceView绘制的图形在Open GL ES坐标系中,而Open GL ES坐标系会根据GLSurfaceView的宽高将…...
【Three.js】JS 3D library(一个月进化史)
#春节过完了,该继续投入学习了~ 作为一个平面开发者,想要增进更多的技能,掌握web3D开发# 前置知识与技能 1. JavaScript 基础 - 掌握ES6语法(类、模块、箭头函数、解构等) - 熟悉异步编程(Promise、…...
在 debian 12 上安装 mysqlclient 报错
报错如下 Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Collecting mysqlclientUsing cached https://pypi.tuna.tsinghua.edu.cn/packages/61/68/810093cb579daae426794bbd9d88aa830fae296e85172d18cb0f0e5dd4bc/mysqlclient-2.2.7.tar.gz (91 kB)Installi…...
wordpress主题插件开发中高频使用的38个函数
核心模板函数 get_header()/get_footer()/get_sidebar() – 加载模板部件 the_title()/the_content()/the_excerpt() – 显示文章标题、内容、摘要 the_post() – 循环中获取文章数据 bloginfo(‘url’) – 获取站点URL wp_head()/wp_footer() – 输出头部/尾部代码 wp_n…...
BMS项目-面试及答疑整理
1. SOC计算用的什么原理实现的? bms目前计算SOC使用的安时积分+开路电压首先得对电池有一个抽象得概念,把电池比作游泳池,电量比作游泳池里面的水,电流比作流入和流出得水流,那么充电也就是往游泳池里面灌入水流安时积分:对水流进行一个实时监测,比如1S一次监测,那么每…...
js第十二题
题十二:轮播图 要求: 1.鼠标不在图片上方时,进行自动轮播,并且左右箭头不会显示;当鼠标放在图片上方时,停止轮播,并且左右箭头会显示; 2.图片切换之后,图片中下方的小…...
LeetCode-76.最小覆盖子串
1、题目描述: 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须…...
CAS单点登录(第7版)20.用户界面
如有疑问,请看视频:CAS单点登录(第7版) 用户界面 概述 概述 对 CAS 用户界面 (UI) 进行品牌化涉及编辑 CSS 样式表以及一小部分相对简单的 HTML 包含文件,也称为视图。(可选&…...
【强化学习的数学原理】第08课-值函数近似-笔记
学习资料:bilibili 西湖大学赵世钰老师的【强化学习的数学原理】课程。链接:强化学习的数学原理 西湖大学 赵世钰 文章目录 一、例子:曲线拟合二、原理-目标函数介绍三、原理-优化算法和函数选择四、原理-示例与分析五、Sarsa和Q-learning六、…...
基于css实现正六边形的三种方案
方案一:通过旋转三个长方形生成正六边形 分析: 如下图所示,我们可以通过旋转三个长方形来得到一个正六边形。疑问: 1. 长方形的宽高分别是多少? 设正六边形的边长是100,基于一些数学常识,可以…...
React VS Vue
React 和 Vue 是目前最流行的两个前端框架,它们在设计理念、生态系统和开发体验上各有特点。以下是对 React 和 Vue 的全方位对比: 1. 核心设计理念 React 库而非框架:React 是一个用于构建 UI 的库,专注于视图层,其…...
CMake 编译工具
在使用 CMake 时,你可以通过指定工具链文件来设置编译器(如 GCC、G 或 Clang)。以下是具体步骤: 1. 创建工具链文件 首先,创建一个工具链文件(例如 toolchain.cmake),并在其中指定…...
el-tree选中数据重组成树
vueelement-ui 实现el-tree选择重新生成一个已选中的值组成新的数据树,效果如下 <template><div class"flex"><el-tree class"tree-row" :data"list" ref"tree" :props"{children: children, label: …...
IO、NIO解读和不同点,以及常用的文件流操作方法
java高级——IO、NIO解读和不同点,以及常用的文件流操作方法 前情提要文章介绍1. 什么是IO1.1 节点的分类1.2 传输方式 2. 七大传输方式解读2.1 File类解读2.1.1 创建文件的三种方式2.2.2 File的常用方法2.2.3 如何正确认识FileUtils 2.2 字节流(核心&am…...
51单片机-按键
1、独立按键 1.1、按键介绍 轻触开关是一种电子开关,使用时,轻轻按开关按钮就可使开关接通,当松开手时,开关断开。 1.2、独立按键原理 按键在闭合和断开时,触点会存在抖动现象。P2\P3\P1都是准双向IO口,…...
Spring Boot Actuator 监控✨
Spring Boot Actuator 是 Spring Boot 提供的一个强大的监控和管理工具,它可以帮助你深入了解和监控你的应用程序的运行状态。通过 Actuator,你可以获取应用程序的健康状况、内存使用情况、线程信息、HTTP 请求跟踪等。🚀 核心知识点 &#…...
SpringBoot论坛网站 – 功能详解与部署教程
项目概述 《SpringBoot的论坛网站》是一个基于SpringBoot框架开发的现代化论坛平台,旨在为用户提供一个便捷的交流空间。该项目不仅功能丰富,还具备良好的扩展性和易用性,适合用于学习、分享和讨论各类话题。以下是项目的核心功能模块和部署…...
俄罗斯方块游戏完整代码示例
以下是一个基于Cocos Creator引擎开发的俄罗斯方块游戏的完整代码示例。该游戏实现了俄罗斯方块的基本功能,并且代码整合在单个文件中,无需任何外部依赖,可以直接在浏览器中运行。 1. 创建Cocos Creator项目 首先,确保你已经安装了…...
【设计模式】【结构型模式】组合模式(Composite)
👋hi,我不是一名外包公司的员工,也不会偷吃茶水间的零食,我的梦想是能写高端CRUD 🔥 2025本人正在沉淀中… 博客更新速度 👍 欢迎点赞、收藏、关注,跟上我的更新节奏 🎵 当你的天空突…...
【设计模式】03-理解常见设计模式-行为型模式(专栏完结)
前言 前面我们介绍完创建型模式和创建型模式,这篇介绍最后的行为型模式,也是【设计模式】专栏的最后一篇。 一、概述 行为型模式主要用于处理对象之间的交互和职责分配,以实现更灵活的行为和更好的协作。 二、常见的行为型模式 1、观察者模…...
Qt 6.8版本 自制windows下运行软件<一>——串口调试助手
自制串口调试助手 哔哩哔哩效果展示 一、 说明 本人在读学生,跟随哔哩哔哩网站北京迅为公司的教学视频,进行学习qt,由于视频中的实现过程是利用ui界面的实现,本人在学习过程中,通过完全敲代码的形式,实现同…...
Qt——静态函数中发送信号方法总结(不需要通过类内部信号与槽实现,关键是清楚你发送的信号源自哪个对象)
【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《项目案例分享》 《极客DIY开源分享》 《嵌入式通用开发实战》 《C++语言开发基础总结》 《从0到1学习嵌入式Linux开发》 《QT开发实战》 《Android开发实战》...
深入解析 vLLM:高性能 LLM 服务框架的架构之美(一)原理与解析
修改内容时间2.4.1处理请求的流程,引用更好的流程图2025.02.11首发2025.02.08 深入解析 vLLM:高性能 LLM 服务框架的架构之美(一)原理与解析 深入解析 vLLM:高性能 LLM 服务框架的架构之美(二)…...
关于视频去水印的一点尝试
一. 视频去水印的几种方法 1. 使用ffmpeg delogo滤镜 delogo 滤镜的原理是通过插值算法,用水印周围的像素填充水印的位置。 示例: ffmpeg -i input.mp4 -filter_complex "[0:v]delogox420:y920:w1070:h60" output.mp4 该命令表示通过滤镜…...
前端常见面试题-2025
vue4.0 Vue.js 4.0 是在 2021 年 9 月发布。Vue.js 4.0 是 Vue.js 的一个重要版本,引入了许多新特性和改进,旨在提升开发者的体验和性能。以下是一些关键的更新和新特性: Composition API 重构:Vue 3 引入了 Composition API 作为…...
JavaEE-SpringBoot快速入门
文章目录 本节目标Maven什么是Maven创建一个Maven项目maven项目功能maven的依赖管理全球仓库, 私服, 本地服务器, 配置国内镜像 第一个SpringBoot项目创建项目运行SpringBoot程序 SpringBoot原理初步Web服务器 总结 本节目标 了解什么是maven, 配置国内源使用Springboot创建项…...
盛铂科技 SMF106 低相位噪声贴片式频率综合器模块
在现代通信和电子设备领域,频率综合器作为关键组件,其性能优劣直接影响系统的整体表现。盛铂科技的 SMF106 低相位噪声贴片式频率综合器,以其卓越的性能和独特设计,成为众多高性能系统的选择。 一、频率覆盖范围广,步进…...