<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[aflylong的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/aflylong</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; aflylong]]></copyright><item><title><![CDATA[桌面端完整的智能体对话UI构建]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/155934905</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/155934905</guid><author>aflylong</author><pubDate>Mon, 15 Dec 2025 10:50:47 +0800</pubDate><description><![CDATA[本文介绍了一个基于Electron+Vue3+TypeScript构建的本地智能体对话系统实现方案。系统通过Ollama提供本地模型服务，采用工程化架构设计，包含清晰的目录结构和核心代码实现。关键点包括：1) Electron主进程管理窗口创建；2) 预加载脚本安全暴露Ollama API；3) Vue3前端实现交互界面；4) TypeScript确保类型安全。该系统支持本地模型对话功能，并具备良好的扩展性，可方便集成Python脚本等功能扩展。开发流程涵盖环境配置、前后端联调等环节，为构建桌面端AI应用提]]></description><category></category></item><item><title><![CDATA[桌面智能体环境从零到可用的流程整理]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/155932922</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/155932922</guid><author>aflylong</author><pubDate>Mon, 15 Dec 2025 10:11:31 +0800</pubDate><description><![CDATA[本文介绍了从零搭建桌面智能体环境的完整流程，主要包含：1）安装Ollama本地服务并下载Qwen3:8b模型；2）将模型从C盘迁移至D盘并配置环境变量；3）安装Python及必要库（RVC/TTS/Agent）；4）搭建Electron桌面端实现聊天界面；5）通过API调用Ollama模型。重点说明了模型迁移方法、Electron项目初始化、以及Python环境配置，最后提供了文件存放建议和功能扩展方向。整个流程实现了本地化AI智能体的基础搭建与简单对话功能。]]></description><category></category></item><item><title><![CDATA[RVC WebUI 从零安装与问题解决记录（完整稳妥方案）]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/155880463</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/155880463</guid><author>aflylong</author><pubDate>Sat, 13 Dec 2025 11:00:51 +0800</pubDate><description><![CDATA[本文详细记录了在Windows 10/11系统下从零安装RVC WebUI的完整流程及问题解决方案。主要内容包括：1) 环境准备(Git/Python安装)；2) 项目克隆与虚拟环境配置；3) PyTorch(CUDA版)及依赖安装；4) MSVC编译问题的解决；5) Gradio版本冲突处理。针对安装过程中可能出现的常见问题如依赖下载超时、GPU识别失败等提供了具体解决方案，特别强调了国内用户使用清华源加速下载的重要性。通过逐步执行这些标准化操作，可确保RVC WebUI顺利启动并支持GPU加速功能。]]></description><category></category></item><item><title><![CDATA[基于elementui封装一个页脚插件]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/128776037</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/128776037</guid><author>aflylong</author><pubDate>Sat, 28 Jan 2023 11:09:00 +0800</pubDate><description><![CDATA[基于elementui封装一个简单页脚组件]]></description><category></category></item><item><title><![CDATA[自定义快速获取开始时间结束时间函数]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/128775981</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/128775981</guid><author>aflylong</author><pubDate>Sat, 28 Jan 2023 10:59:06 +0800</pubDate><description><![CDATA[基本工作场景自定义获取时间段中开始时间结束时间函数]]></description><category></category></item><item><title><![CDATA[node命令操作git版本工具]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/126284672</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/126284672</guid><author>aflylong</author><pubDate>Thu, 11 Aug 2022 14:27:56 +0800</pubDate><description><![CDATA[node命令操作git]]></description><category></category></item><item><title><![CDATA[node执行cmd命令使用介绍]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/126139431</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/126139431</guid><author>aflylong</author><pubDate>Wed, 03 Aug 2022 14:19:07 +0800</pubDate><description><![CDATA[node执行cmd命令使用介绍]]></description><category></category></item><item><title><![CDATA[双指针求和以及二分查找]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/120165495</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/120165495</guid><author>aflylong</author><pubDate>Tue, 07 Sep 2021 20:02:51 +0800</pubDate><description><![CDATA[双指针求和
let arr = [1,2,3,4,5,6,7,8,9,10];
let fn=(arr,num)=&gt;{
	let left = 0;
	let right = arr.length-1;
	while(left&lt;right){
	if(arr[left]+arr[rigth]&gt;num){
		right--;
	}else if(arr[left]+arr[right]&lt;num){
		left++;
	}else if(arr[left]+arr[rigth]==n]]></description><category></category></item><item><title><![CDATA[Promise学习笔记]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/119426165</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/119426165</guid><author>aflylong</author><pubDate>Sat, 07 Aug 2021 10:52:16 +0800</pubDate><description><![CDATA[Promise基本使用
promise是js中进行异步编程的新解决方法
Promise是一个构造函数
功能：promise对象用来封装一个异步操作并可以获得其结果
在这里插入代码片


]]></description><category></category></item><item><title><![CDATA[数组扁平化处理与去重]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/119356997</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/119356997</guid><author>aflylong</author><pubDate>Tue, 03 Aug 2021 19:39:12 +0800</pubDate><description><![CDATA[数组扁平化
数组扁平化是指将一个多维数组变为一维数组
数组扁平化处理的最核心方法就是递归，判断每一项是否是数组，以此做处理
1.用循环去判断每一项再做处理
let arr = [1, [2, [3, [4, [5, [6, [7, [8, [9]]]]]]]]]
let newarr = []
function flatten(arr) {
   for (let i = 0; i &lt; arr.length; i++) {
      if (Array.isArray(arr[i])) {
    ]]></description><category></category></item><item><title><![CDATA[移动端开发常见布局]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/118943223</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/118943223</guid><author>aflylong</author><pubDate>Tue, 20 Jul 2021 20:08:36 +0800</pubDate><description><![CDATA[移动端常见开发布局
单独制作移动端
1，流式布局（百分比布局）像京东
2，flex弹性布局 例如淘宝
3，less+rem+媒体查询布局 有苏宁
4，混合布局
响应式制作
媒体查询+bootstrap
移动端特殊样式
  /*CSS3盒子模型*/
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    /*点击高亮我们需要清除清除  设置为transparent 完成透明*/
    -webkit-tap-highlight-]]></description><category></category></item><item><title><![CDATA[jquery中的ajax基本使用以及文件上传]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/118809484</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/118809484</guid><author>aflylong</author><pubDate>Fri, 16 Jul 2021 17:22:32 +0800</pubDate><description><![CDATA[jquery中的ajax
$.ajax({
	url:'/',//请求访问的地址
    type:'get/post/put/delet',//访问方式
    data:{},//如果是提交数据就需要填写data
    async:false/true,//true为异步，false为同步
    beforeSend:function(){},//请求数据发送之前执行的方法
    success:function(res){//请求成功之后，返回success成功之后的数据，会自动处理成json格]]></description><category></category></item><item><title><![CDATA[Axios基本了解与使用]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/118809278</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/118809278</guid><author>aflylong</author><pubDate>Fri, 16 Jul 2021 17:06:08 +0800</pubDate><description><![CDATA[Axios
Axios是一个基于promise网络请求库，作用于node.js和浏览器中，它是isomorphic的（即同一套代码可以运行在浏览器和node.js中）。
特性
从浏览器创建XMLHttpRequests
从node.js创建http请求
支持PromiseAPI
拦截请求和响应
转换请求和显影数据
取消请求
自动转换JSON数据
客户端支持防御XSRF
使用cdn：
 &lt;script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.]]></description><category></category></item><item><title><![CDATA[原生fetch()，Es6中的promise]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/118809186</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/118809186</guid><author>aflylong</author><pubDate>Fri, 16 Jul 2021 17:05:16 +0800</pubDate><description><![CDATA[es6新方法fetch
fetch（）方法与XMLHttpRequest类似，fetch也可以发起ajax请求，但是与XMLHttpRequest不同的是，fetch方式使用promise，相比较XMLHttpRequest更加简洁。
Promise
promise是进行异步操作的一种解决方案，比传统的处理方法(回调函数/处理事件)更加合理，ES6将其加入语言标准，统一语法，原生提供了Promise，promise可以想象成一个装有各种结果的容器，里面装有某个时间返回的结构，可以在需要的时候拿取它并进行一些]]></description><category></category></item><item><title><![CDATA[封装原生ajax]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/118805076</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/118805076</guid><author>aflylong</author><pubDate>Fri, 16 Jul 2021 16:35:44 +0800</pubDate><description><![CDATA[对原生ajax进行封装，使我们如下所示传递数据过去能被处理，并返回处理结果
myAjax({
            url: 'url地址api接口',
            type: 'get',//请求方式
            timeOut: 1000,//响应超时事件
            success: function (res) {//成功执行
                console.log(res)
            },
            fail: fu]]></description><category></category></item><item><title><![CDATA[js原生Ajax如何使用，以及状态码所代表的意思]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/118725421</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/118725421</guid><author>aflylong</author><pubDate>Wed, 14 Jul 2021 20:55:08 +0800</pubDate><description><![CDATA[jquery

]]></description><category></category></item><item><title><![CDATA[2021-07-11bootstrap框架基本了解]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/118662056</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/118662056</guid><author>aflylong</author><pubDate>Sun, 11 Jul 2021 23:27:19 +0800</pubDate><description><![CDATA[Bootstrap栅格布局
####栅格布局简介
Bootstrap内置了一套响应式，移动设备优先的流式栅格系统，随着屏幕设备或视口(viewport)尺寸的增加，系统会自动分为最多12列，它包含了易于使用的预定义class，还有强大的mixin用于生成更具语义的布局。
容器：行(row)必须包含在.container(固定宽度)或.container-fluid(100%宽度)中，以便为其赋予合适的排列(aligment)和内补(padding)。
rem：实际上是设置列的高度的属性，rem的值是整数，代]]></description><category></category></item><item><title><![CDATA[使用canvas构建一个简单的飞机大战]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/118527331</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/118527331</guid><author>aflylong</author><pubDate>Tue, 06 Jul 2021 19:30:27 +0800</pubDate><description><![CDATA[gitee仓库地址：https://gitee.com/aflylong/canvas-the-plane-war.git
包括完整代码以及图片素材
&lt;html&gt;
&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;

&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"]]></description><category></category></item><item><title><![CDATA[2021-06-28学习canvas简单的做一个吃豆人]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/118309410</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/118309410</guid><author>aflylong</author><pubDate>Mon, 28 Jun 2021 18:11:35 +0800</pubDate><description><![CDATA[使用canvas画出一个简单的吃豆人
首先 先创建一个画布
 &lt;canvas id="cavs" width="1900" height="900"&gt;&lt;/canvas&gt;

&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;

&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt;
  ]]></description><category></category></item><item><title><![CDATA[2021-06-27函数节流防抖与柯里化]]></title><link>https://blog.youkuaiyun.com/aflylong/article/details/118279461</link><guid>https://blog.youkuaiyun.com/aflylong/article/details/118279461</guid><author>aflylong</author><pubDate>Sun, 27 Jun 2021 20:37:06 +0800</pubDate><description><![CDATA[函数节流防抖
函数节流(throttle) 、函数防抖(debounce)就是为了去解决用户频繁触发事件的行为。
函数节流
函数节流预定一个函数只在一定周期内只执行一次。
  // 函数节流封装
        function throttle(handler, wait) {
            var lastTime = 0;
            return function A() {
                var nowTime = +new Date();
        ]]></description><category></category></item></channel></rss>