- 博客(66)
- 收藏
- 关注
原创 基于AI大模型的复杂扫描件PDF信息提取与规整
场景大致是会上传一个几十页的扫描件PDF,让AI在当中找出我需要的字段,本文会隐去具体行业信息和具体的AI提示词内容,只分享技术相关内容,请见谅。
2024-11-01 16:56:08
3470
3
原创 Dify工作流 上传图片并进行识别的实现方式
最近刚开始研究Dify的工作流使用,遇到一个头大的问题,希望上传图片并识别出图片上的文字,但是即时Dify的开始,提供了sys.files进行文件上传功能,可是我无法再LLM的上下文当中增加这个变量的识别。经过我多天的研究之后,发现个很奇怪的解决办法,创建一个工作流编排的聊天助手,这个结束里面选择到sys.files是在一个文本框里面,然后可以直接复制…查了半天也不知道怎么处理…真的是个又傻逼又偏门的解决办法,虽说能用就行,但如果有大佬路过,希望能告诉我还有什么其他正常的解决办法TuT。
2024-10-14 12:22:46
8677
13
原创 基于Python的相片批量添加边框水印程序
对象买了新相机,发现用的加边框水印App,居然要充值88块,才能导出原图清晰度的照片。我一听这个这么简单的需求,居然还要88块,咱俩都是学CS的,这韭菜可不兴做。反正批量处理照片的时候,还是电脑方便,一不做二不休,在万能的github上找了个别人的代码,按照我们的需求改了改。
2024-04-29 17:52:19
1352
1
原创 一周通过Professional Scrum Master(PSM1/PSM2)考试准备分享
我是使用了翻译插件的,不过部分题目,有的时候翻译会很怪,遇到这种情况,适时切回英文查看。如果之前没有相关经验的朋友,时间比较充裕,想真的学到点什么,而不是简单的刷题通过考试的话,其实是可以参考官方给的那套Scrum Master学习路径来学习的。Scrum Open的题目,基本上是最基础最基础的那种,题库里面的会比Scrum Open的题目难一些。在官网上进行购买,可以使用信用卡、PayPal,我是使用PayPal购买的,记得不要直接支付rmb,那会使用PayPal的汇率。按照我那套流程的话在一周左右。
2023-10-30 00:43:13
2454
1
原创 一个月通过PMP的考试准备分享
做两套题就能开始摸出套路了,把自己错过的套路整理一下,避免下次再犯。我报的机构最后也有1、2节刷题套路讲解课,估计大部分机构都有。这里的刷题套路务必都记下来。考前最后2、3天,每天过下刷题套路,确保熟记。再把错题复习一下,看看结合刷题套路之后是否还会做错,套路题快速过,套路解不了的就混个眼熟记一下。
2023-10-24 15:44:32
265
原创 如何做好用户画像(Persona)(toB和toC的区别)
一、前言这是我通过各种资料学习做Persona的过程中留下的一篇笔记,在文章内也附有我参考的各个资料的原地址。二、基本介绍1.什么是PersonaPersona是建立在对真实用户深刻理解,及高精准相关数据的概括之上,虚构的包含典型用户/客户特征的人物形象。我们可以通过以下这些定性、定量研究手段收集的真实用户数据用户访谈 焦点小组 文化探寻 问卷调查 等2.Persona有什么作用1.建立「同理心」Persona帮助项目过程中的不同角色摆脱自己的思维模...
2022-02-05 23:51:25
2383
原创 《麦肯锡方法》阅读笔记2——探索分析问题的方法
一、前言该文章为是个人的阅读笔记与理解,与原著有出入。我尽可能简洁的提炼出书中涉及到的方法论,为了日后翻阅。至于方法形成的原因、重要性等等,书中有着更详尽的描述,推荐大家有机会还是阅读一下原著。该文章为第二章内容的笔记。二、笔记1.在开展行动前,需要先做的事情:通过深入探究,即获取事实、提出问题、四处试探,去判断我们接到的问题是否是对的,是我们需要去解决的那个问题。如果不是,需要以事实为依据,和客户解释为何改变了对问题的定义。2.解决问题的方法附加值分析 业务流程再造 产品市
2022-02-05 03:04:01
459
原创 《麦肯锡方法》阅读笔记1——建立解决方案的流程与方法
一、前言该文章为是个人的阅读笔记与理解,与原著有出入。我尽可能简洁的提炼出书中涉及到的方法论,为了日后翻阅。至于方法形成的原因、重要性等等,书中有着更详尽的描述,推荐大家有机会还是阅读一下原著。二、笔记1.建立解决方案的关键词以事实为基础的 系统化的 大胆假设、小心求证2.建立解决方案的流程 对成堆的外部资料和内部文献详查搜遍,收集充分信息(1*) 列出问题清单,在公司第一次团队会议中阐述讨论,并根据讨论,可能会对问题清单重新修改 通过MECE原则(2*)分解问
2022-01-18 00:18:38
701
转载 UML图学习笔记(二)状态图
一、介绍1.状态机介绍状态机是一种记录下给定时刻状态的设备,它可以根据各种不同的输入对每个给定的变化改变其状态或引发一个动作。在状态机的语境中,一个事件就是一次激发的产生,每个激发都可以触发一个状态转换。2.状态图介绍状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action)。一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机(StateM.
2021-11-16 22:46:55
2386
转载 UML图学习笔记
一、UML图介绍1.什么是UMLUML-Unified Modeling Language统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。2.什么是UML图UML的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的是建立软件系统的模型,可以对任何具有静态结构和动态行为的系统进行建模,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。3.UML图三个主要模型.
2021-11-16 22:28:26
159
原创 Uni-app 微信小程序 页面组件轮询 定时刷新
踩坑前言我的代码结构是一个页面用了个组件,具体需要轮询的东西是展示在组件里面的。开始憨憨的把onShow写在组件里面,试了半天怎么都没用。终于想起来翻官方文档了,onShow一种是写在App.vue里面的应用生命周期,一种是页面生命周期。……页面QAQ,所以写在组件里是没有用的啊。代码:<checkPage :msg="newMsgOrNot"></checkPage>onShow: function(){ let that = this .
2021-08-11 23:25:06
3043
原创 前端工程化1——概念、项目中的体现、如何规划工程化项目
一、概念前端工程化是指遵循一定的标准和规范,通过工具去提高效率降低成本的一种手段。现在不断被探讨,主要是前端应用现在功能要求不断提高,应用逻辑日益复杂。目前来说,web业务日益复杂化和多元化,前端开发从WebPage模式为主转变为WebApp模式为主了。前端的开发工作在一些场景下被认为只是日常的一项简单工作,或只是某个项目的"附属品",并没有被当做一个"软件"而认真对待(无论是产品负责人还是开发者)。在模式的转变下,前端都已经不是过去的拼几个页面和搞几个jq插件就能完成。当工程复杂就会产生许多问
2021-06-12 14:29:36
563
1
原创 JavaScript性能优化10——字面量与构造式
这里来讨论一下不同数据声明方式和性能之间的关系。构造shilet test = () => { let obj = new Object() obj.name = 'zce' obj.age = 38 obj.slogan = 'SLOGAN!' return obj}console.log(test())
2021-06-07 00:16:54
384
1
原创 JavaScript性能优化9——减少判断层级、减少循环体活动
减少判断层级对我们的代码的性能影响,主要在当我们编写代码的时候有可能会出现判断条件嵌套的场景,往往出现多层if…else…嵌套的时候,我们都能通过提前return
2021-06-06 23:42:50
849
2
原创 JavaScript性能优化8——防抖与节流
一、概念我们现在JS主要是在浏览器下运行,涉及到很多人机交互的操作。假设一个场景,我们打开的网页有一个轮播图,我们对左右切换的按钮duan'shi'jian'nei
2021-06-06 21:05:47
563
2
原创 JavaScript性能优化7——缓存数据、减少访问层级
用一个例子来了解一下,如何通过处理缓存数据来提高JavaScript的执行速度。用缓存数据提高JS执行速度,主要说的就是对于需要多次使用的数据进行提前保存,后续进行使用。
2021-06-06 17:09:46
518
2
原创 JavaScript性能优化6——变量局部化
一、什么是变量局部化我们的变量分为全局变量和局部的变量,这里的变量局部化是指,我们在写代码的过程中,涉及到变量定义的时候,能够把变量放在局部就把变量放在局部的作用域当中。这样可以ti'gao...
2021-06-06 03:53:31
350
原创 JavaScript性能优化5——JSBench工具的使用
一、JSBench是什么根据官方的Jsbench.me 是 JavaScript 的性能基准测试平台,深受 jsperf.com 和 jsfiddle.net 的启发和影响。 它使用 Benchmarkjs.com 来执行测试套件。执行并比较不同 JavaScript 代码片段的执行速度。 通过简单而简短的 URL 与他人在线共享和协作。...
2021-06-06 03:27:29
1278
原创 JavaScript性能优化4——循环添加事件实现
一、需求现在我们的页面上有3个按钮,我们需要用循环来给按钮添加事件,实现按按钮1的时候打印出当前索引值为0,按按钮2的时候打印出当前索引值为1,按按钮3的时候打印出当前索引值为2.二、实现方式1.闭包和自定义属性方式代码看下面代码,最开始的时候写了个普通的循环,但是发现并不能满足我们的需求。于是后面我们倚靠闭包的机制写了另外3段代码和自定义属性写了1段代码,执行过后发现都能够完成我们需要的功能。<!DOCTYPE html><html> &..
2021-06-06 02:56:47
427
1
原创 JavaScript性能优化3——浏览器执行JavaScript时底层的堆栈操作
一、堆栈准备JS执行环境(比如现在常见的就是V8):代码最终是会被转为能够运行的机器码 执行环境栈(ECStack,execution context stack):在这里执行机器码。浏览器在渲染过程中,会在我们的内存当中去开辟一片内存空间,专门用来执行代码,这个栈内存说的就是执行环境栈。 执行上下文:管理代码执行,让不同代码之间保持独立,不能相互影响。 VO(G),全局变量对象:所有变量声明都是存放在这个对象占据的空间当中。最初的时候,浏览器从我们计算机的内存当中申请或者开辟一个空间,我们把这
2021-06-05 16:53:24
488
原创 JavaScript性能优化2——浅谈JavaScriptV8引擎工作流程
一、过程V8引擎本身也是一个应用程序,就是JS的执行环境,我们这边只考虑浏览器平台的。Node.js用的也是V8,但是这里就不做研究。V8是浏览器的一个组成部分,用来解析和编译JS代码,内部存在很多子模块,可以看下面的图片了解。V8引擎其实只是浏览器渲染引擎里面JS执行代码的组成部分。我们直接从Scanner开始看。Scanner是一个扫描器,对纯文本的JS代码进行词法分析,把代码分析成不同的tokens。这会得到一个的单元,是语法上面无法再进行分割的最小单位。有可能是单个的字符,也有可能就
2021-06-03 01:33:03
283
原创 JavaScript性能优化1——内存管理(JS垃圾回收机制、引用计数、标记清除、标记整理、V8分代回收、Performance使用)
一、导入随着我们JavaScript代码需要实现的功能越来越复杂,性能优化变得重要了起来。那么哪些内容可以被看做是性能优化呢?本质上来说,任何一种提高运行效率,降低运行开销的行为都可以看做是优化操作。前端优化无处不在,例如请求资源时候用到的网络、数据的传输方式、开发过程中使用的框架等。本阶段讨论的核心是JavaScript语言本身的优化,也就是从认知内存空间的实用到垃圾回收的方式介绍。从而让我们编写出高效的JavaScript代码。在这篇文章里,主要讨论内存管理相关的内容。随着这些年来的硬件
2021-06-02 00:06:29
1984
7
原创 进阶学习12:Flow——JavaScript的类型检查器(安装&使用、Flow详解)
目录一、概述二、安装三、使用1.运行方式2.编译移除注解1.官方的 flow-remove-types2.使用Bable配合插件3.开发工具插件四、Flow特性1.类型推断2.类型注释3.Flow支持的数据类型1.原始类型2.数组类型3.对象类型4.函数类型5.特殊类型6.Mixed 与 Any7.类型小结4.运行环境API一、概述Flow是一款JavaScript的静态类型检查器,是2014年Facebook推出的一.
2021-05-30 17:04:55
1183
2
原创 进阶学习10:ECMAScript——ES2016、ES2017新特性
目录一、ES20161.数组实例对象的includes方法2.指数运算符二、ES20171.Object.values2.Object.entries3.Object.getOwnPropertyDescriptors4.String.prototype.padStart / String.prototype.padEnd5.允许函数参数中添加尾逗号6.Async / Await一、ES2016这是一个小版本,仅包含2个小功能1.数组实例对象的includ
2021-05-27 21:28:17
528
1
原创 进阶学习9:ECMAScript——概述、ES2015 / ES6新特性详解
一、ECMAScript概述ECMAScript也是一门脚本语言,一般缩写为ES,通常我们把他看作为JavaScript的标准化规范。但实际上,JavaScript是ECMAScript的扩展语言,因为ES只提供了最基本的语法。总的来说,在浏览器环境当中JavaScript = ECMAScript +BOM + DOM。在Node.js环境呢JavaScript = ECMAScript + fs + net + etc.从2015年开始,ES保持着每年一个大版本的迭代。其实从ES2015开.
2021-05-27 01:03:15
1502
1
原创 CSS/JS 图片高度固定宽度按比例显示 (纯CSS方法和CSS+JS方法)
目录介绍思路样例代码介绍我这边用的是Vue+Vant,在手机端显示一张图片,高度固定为屏幕的60%,宽度按照比例缩放,超出屏幕宽度部分不显示。思路css中吧高度和其他样式都写好,通过js计算应该设置的宽度。我们获得到屏幕的高度*60%,在查看原图长宽比按照比例获得宽度的像素。样例代码<van-image class="login_pic" :style="getWidth()" :src="require('../../asse
2021-05-26 13:20:34
1653
原创 CSS 上/下边倾斜的梯形绘制
思路里面其实就是一个普通的矩形div,但是将它设置的比外面的div长宽都要大,然后做旋转处理。外面的div把超出的部分做hidden处理,中间那个只显示部分看起来就是一个梯形了。样例代码因为提取修改的是项目代码里面部分,我需要画的是贴底的梯形,所以那部分的样式也保留了,主要关注下面rotate那部分代码就是了<div class="title_box"> <div class="lighter_box"></div>.title_b.
2021-05-26 12:10:46
1133
原创 手机端(安卓) 微信内浏览器 / 微信公众号 网页调试
本人手机型号是华为Mate20Pro,下面这个办法好像只有Android 可以使用。IOS可以直接跳过了。将下面网址黏贴到微信对话框中,点击打开debugx5.qq.com点击信息,勾选下面两项然后再在微信中打开网页,就会发现右下角出现vConsole图标点击打开,就是熟悉的调试页面了。...
2021-05-26 10:15:31
1631
原创 Mac环境 Sublime安装使用Markdown插件
输入command+shift+p之后如下图,选择第一个稍微等一会,会显示如下图,搜索并安装markdown editing、markdown preview插件安装成功后,增加 markdown preview 的快捷键,让它在浏览器上显示,使用起来更加简便。如下图,点击Key Bindings在右侧的输入下面这行代码,也就是把快捷键绑定到command+shift+o上{"keys": ["super+shift+o"], "command": "markdown_p.
2021-05-24 15:48:09
1653
1
原创 CSS 盒子模型详解 IE盒子模型实际应用——把Border设置成不改变宽度高度的内边框
一.实际应用项目里面遇到一个问题,就是选中某个颜色之后,需要显示一圈颜色更深的边框表示选中状态。但是加上之后,明显框框变大了,一点也不美观。于是想找找能不能把border改成内边框的方法。在css中加了一行box-sizing: border-box;完美解决问题这里涉及到了一个我以前一直没有深入了解过的知识,就是CSS的盒模型。二.盒模型先来简单说一下,什么是盒模型。1.盒模型基本元素盒模型从外到里由以下几个元素组成:外边框(margin) 边框(b..
2021-05-24 14:55:11
1099
1
原创 Vue web IOS显示正常安卓颜色不显示问题解决
之前有个设计稿上没有的颜色,我直接偷懒,在vscode里面写css的时候选了,大概类似下面这个样子。电脑上看的时候是没问题的,chrome显示正常,我们测试手机是苹果,IOS也显示正常。结果隔了一段时间,我自己想要尝试一下的时候,在我的安卓机上发现这个颜色就是不显示。我自己的手机是华为的mate 20 pro,我手头上也没有别的安卓机,不知道是华为的问题还是安卓的问题。最后解决方案是,改成rgba格式正常显示,带透明度的颜色还是乖乖先用着rgba吧泪目…...
2021-05-24 13:00:42
533
1
原创 JavaScript获取某个颜色更亮或更暗的颜色
业务需求是,有一堆颜色可以供我选择,选了之后加一个边框表示已经被选择上了。边框颜色要比原本颜色更深一些。开始是参考了下面这篇文章,来获得边框拿圈更深的颜色。javascript对任意颜色获取更亮或更暗的颜色值https://segmentfault.com/a/1190000010284529但是遇到一点问题,大部分颜色看起来效果都挺好的。但是个别颜色,明显获得到的颜色是有差异的我打印了一下中间值,发现几个明显颜色不对的,都是r=0,然后转回16进制的时候发生了问题少了2
2021-05-24 12:51:47
1403
1
原创 进阶学习7:JavaScript异步编程——Generator异步方案、Async/ Await
目录六、Generator异步方案1.前言2.了解Generator的特点和基本使用3.使用Generator去实现异步4.Async / Await语法糖六、Generator异步方案1.前言前面学习到的链式调用Promise呢还是和我们同步模式不太一样,我们希望能够代码更加扁平化,而ES2015中提供的Generator就能解决这个问题2.了解Generator的特点和基本使用想解释的都写在下面代码的注释里拉。//DEMO9// 生成器函数回顾// 比.
2021-05-23 22:31:55
1042
8
原创 进阶学习6:JavaScript异步编程——Promise、链式调用、异常处理、静态方法、并行执行、执行时序、宏任务微任务理解
五、Promise1.前言回调函数是异步模式的根基,但是如果我们直接使用传统的回调方式去完成复杂的异步流程,就无法避免大量回调函数嵌套,就会变成回调地域的问题。于是最早CommonJS社区提出了Promise的规范,后来ES2015中杯标准化,成为一种语言规范,2.概念所谓Promise就是一个对象,用来去表示一个异步任务最终在结束过后是成功还是失败。在状态明确过后(就是成功或者失败后)都会有对应的任务自动被执行。一旦明确结果之后,再也不会改变。3.基本用法//DEMO1//
2021-05-23 17:16:40
1826
12
原创 进阶学习5:JavaScript异步编程——同步模式、异步模式、调用栈、工作线程、消息队列、事件循环、回调函数
目录一、背景介绍二、同步模式1.概念2.运行方式三、异步模式1.概念2.运行方式四、回调函数一、背景介绍JavaScript是单线程模式工作,这是因为最早JavaScript设计初衷就是用于浏览器端的语言,主要任务是处理用户的交互,响应DOM的操作,避免线程重复造成迷惑的问题。JS执行环境中负责执行代码的线程只有一个,有多个任务的话只能排队依次完成。这带来的优点就是会让我们的程序更安全更简单,但是缺点也很明显,如果当中某个任务十分耗时,那么后面的任务需要等待前面的
2021-05-23 02:58:03
344
原创 进阶学习4:函数式编程FP——函子Functor、MayBe函子、Either函子、IO函子、Folktale、Pointer函子、Monad
六、函子Functor1.函子的概念学习函子是为了在函数式编程中把副作用控制在可控的范围内、异常处理、异步操作等。什么是 Functor容器:包含值和值的变形关系(这个变形关系就是函数)函子:是一个特殊的容器,通过一个普通的对象来实现,该对象具有 map 方法,map 方法可以运行一个函数对值进行处理(变形关系)2.使用代码演示函子我们可以通过.map进行链式调用//DEMO23//函子//函子:是一个特殊的容器,通过一个普通的对象来实现,该对象具有 map 方法,ma
2021-05-23 01:27:00
762
1
原创 Vue禁止页面缩放
做了个Vue+Vant的mobile端web项目,整个设计原本是小程序的,现在临时改成web,发现不需要缩放,于是把缩放给禁用掉。找到这个项目的index.html文件添加一行<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">content里面几个参数意思是宽度设置为设备宽度,initial-scale属性控制初始
2021-05-22 16:36:53
1871
2
原创 进阶学习3:函数式编程FP——函数的组合、组合函数模拟、Lodash fp模块、PointFree
目录五、函数的组合1.函数组合的概念管道:函数组合 (compose)2.Lodash中的组合函数3.组合函数原理模拟4.函数组合——结合律5.函数组合——调试6.Lodash——FP模块Lodash FP模块介绍Lodash和Lodash/fp模块中map方法的区别7.Point Free五、函数的组合1.函数组合的概念纯函数和柯里化很容易写出洋葱代码 h(g(f(x)))管道:函数组合 (compose)如果一个函数要经过多..
2021-05-22 16:24:05
517
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人