- 博客(394)
- 资源 (19)
- 收藏
- 关注
原创 从马斯洛需求层次理论谈职场激励
我认为从员工个体的需求出发做管理来达成组织或者公司的目标,才是公司和员工双赢的方式。如果公司只是为了单纯达成自己的盈利目标,利用大家的职场“生理需求”或则“安全需求”去压迫员工,比如通过不断试探员工的需求下限来克扣员工的福利待遇、个人时间,这种行为本质上和奴隶主没啥区别,如果你遇到这种公司能跑则跑。反过来,如果公司在利用“归属需求” “尊重需求” “自我实现” 这些高层层次的需求来激励你,那么说明你在一个比较好的公司,这两年能苟则苟。
2024-09-01 21:04:30 632
原创 知识与智慧
自从我上大学以来,知识的获取就很方便了,只要你掌握一些互联网信息检索的技巧,刹那间就可以获取海量的知识,而这两年AI大模型的诞生,你甚至不需要技巧就可以获取海量知识,我们比以往任何时候都更容易获取知识。然而,正如我们在程序员的世界里所看到的,仅仅拥有知识是远远不够的。真正的挑战在于如何将这些知识转化为智慧,并在复杂多变的职场环境中灵活运用。知识就像是我们手中的工具箱,里面装满了各种编程语言、框架和技术;而智慧则是知道何时、如何使用这些工具来解决实际问题的能力。它是在无数次的实践、思考和反思中逐渐积累而成的。
2024-08-12 23:37:27 534
原创 如何使用大语言模型绘制专业图表
Mermaid.js 是一个强大的基于文本的图表生成工具,它通过使用类似Markdown的语法,可以通过简单的文本描述来生成复杂的图表,完全不依赖于繁琐的图形编辑软件。这极大地简化了图表的创建过程,尤其是很多Markdown渲染软件已经完全集成了Mermaid,完全可以做到仅使用一个Markdown编辑器完成写作和绘图的工作。流程图(Flowcharts):用于展示过程或系统的操作流程。序列图(Sequence diagrams):适合描述对象或参与者之间的交互序列。
2024-07-22 20:07:41 1462
原创 两个开源项目打造自己的大模型聚合平台
以上就是我目前自建大模型平台的方案了,两个开源软件的安装方式在各自项目里都有,可以自行查阅,我这里就不再赘述了。我自己其实是购买了阿里云5年的2c4g的服务器(一次性投入2.6k),然后用docker的方式安装了上面这两个软件,不过后续也不需要每年花1.5k买poe或者gpt的会员服务了,只需要按token使用量付费给大模型服务商即可,我自己估算如果日常使用国内高性价比模型的话,偶尔特殊任务用下贵的模型,每个月花费最多也就几块钱,相当之划算了。
2024-06-09 23:51:19 1606
原创 我让gpt4o给我推荐了一千多次书 得到了这些数据
事情是这样的,我们公司不是有个读书小组嘛,但是今年大家都忙于工作,忽视了读书这件事,所以我就想着搞个群机器人,让它明天定时向群里推荐一本书,用来唤起大家对读书的兴趣。但在调试的过程中就发现gpt4o老喜欢推荐同样的几本书,这可就勾起我的好奇心了,是不是gpt4o就只知道推荐那几本,正好周末有空,我就斥巨资调用gpt4o的接口让它给我推荐书,调用1000次+,发现gpt4o最喜欢的书是…… 具体让我们来看下推荐结果的简单分析。
2024-05-26 22:25:43 930
原创 当下性价比最高的大语言模型DeepSeek-V2-Chat
前一段时间,DeepSeek宣布1M的token只需要1块钱(人民币),率先打响了LLM价格战的第一枪,紧随其后,智谱宣布其旗下的GLM-3-Turbo也只需要1块钱(批处理只需要5毛),然后前两天字节开发布会,宣布豆包只需要8毛钱/M,国内几家公司纷纷卷大模型的价格,要知道现在OpenAI的gpt-4o需要36¥(5$),而gpt-3.5-turbo还需要3.6¥(0.5$),同水平的模型OpenAI算比较便宜的。这三者里当前是豆包价格最低,性能的话我们就参考CompassRank的评分榜。
2024-05-19 20:38:43 576
原创 如何在LangChain的agent中记录对话历史
LangChain在早期曾推迟过Memory模块,但Memory模块目前被官方标记为beta版本,说是并为这边好投入生产,而且也不支持最新的LCEL语法,但是ChatMessageHistory这个功能是个例外,它已经支持LCEL并且基本可以用在生产上了,所以我们今天说下如何使用ChatMessageHistory让我们的agent记录下对话历史,实现多轮对话。首先还是来创建基本的agent,这里我们就创建一个简单的对话agent,如果你想创建具备某些功能的复杂agent,可以参考我之前两篇实践文章。
2024-05-12 21:55:26 1767 1
原创 用LangChain打造一个可以管理日程的智能助手
那么接下来的问题就是如何让GPT能够查询和操作这个表了。这里我们直接使用了LangChain的@tool装饰器,讲schedules表的基本操作设置为GPT可以识别的接口,当然使用OpenAI的纯原始接口也是可以实现的(参加我之前的文章OpenAI的多函数调用),就是代码量相对会多很多。具体的代码如下,这里我定义了对schedules表的增、删、查的功能。""" 连接到数据库 """@tool""" 新增日程,比如2024-05-03 20:00:00, 周会 """@tool。
2024-05-04 20:25:25 1164
原创 用Langchain创建一个可以总结网页内容的Agent
我们首先就是要定义个可以加载到网页内容的工具,这次我们直接使用LangChain提供好的WebBaseLoader。另外借助LangChain的装饰器@tool,我也仅需要正常写一个函数并表明出入参类型和功能即可,不用提供像之前那样复杂的函数定义schema。@tool"""抓取url对应网页的内容"""
2024-05-02 21:59:44 763
原创 推荐一个好用的命令行工具ShellGPT
由于文章篇幅的原因,我挑选了大部内容做了介绍,当然ShellGPT还有一些其他的细节需要大家自行去探索。其所有的参数都可以通过分类参数类型描述默认值基本选项prompt[PROMPT]用于生成完成的提示。--modelTEXT使用的大型语言模型。生成输出的随机性。0.0--top-p限制最高可能的token。1.0--md美化markdown输出。md--editor打开$EDITOR来提供提示。no-editor--cache缓存完成结果。cache--version显示版本。
2024-04-30 22:05:33 1815
原创 我的CSDN 4096创作纪念日
我高中时候语文都是属于偏差的那种,作文也是很普通的水平,而且我性格偏内向,很长一段时间都不怎么会表达(高考的时候800字的作文都不知道怎么写)。但坚持写博客10年多,给我一个主题(前提是我熟悉的),我坐下来很容易写几千字,而且还能保证质量部那么水,反思10年前和现在的变化,我总结是有两方面的因素让我改变这么多,一是疯狂阅读,二就是持续写作。阅读主要是输入,看到别人如何总结和表达,以及汲取更多的信息。
2024-04-01 07:54:59 2558 4
原创 关于ffmpeg height not divisible by 2的错误
例如,如果有一个奇数宽度的视频帧,最右边会有一个无法形成完整块的列像素。的特殊之处在于,它会确保计算出的宽度或高度是偶数,这是为了满足某些视频编码器的要求,它们需要偶数的分辨率尺寸。这对于编码像H.264这样的视频时特别重要,因为(如前所述)这些编码器使用基于块的编码算法,其要求块的尺寸(通常是16×16像素或其它偶数尺寸)能够完全适应视频帧的尺寸。解决方案当然很简单,那就是将分辨率强行指定成偶数即可,在当我思索难道要放弃-1这个好用的自适应参数,在指定宽为1280时,自己去计算出一个高来的时候。
2024-03-17 16:40:50 763
原创 使用Certbot解决https证书自动更新的问题
实际上确实就这么简单,这一步中certbot会解析你的nginx配置,然后申请相应域名的证书,并修改nginx配置文件将证书配置写入,然后还会触发nginx的reload让证书生效,这时候你的网站https就已经在使用新的https证书了,打开chrome浏览器你就可以看到类似的证书声明。,还有几个其他的域名用做小工具之类的,之前一直使用阿里云免费https证书,一次申请可以用一年,但现在阿里云免费证书缩短到3个月了,而我又有好几个域名,导致我每隔几周就必须重新申请配置一次https证书,很麻烦。
2024-03-10 12:32:08 1354
原创 XINDOO的2023年总结
这篇文章是我的第十年年终总结,本来想很正式的写,由于元旦偷懒,春节又特种式狂奔四个城市给自己和妹妹订婚,横跨几千公里,几乎一半的假期都在路上。我23年的年终总结难产至今,最后赶在2月结束前开始动笔。
2024-02-27 21:56:24 1505 8
原创 Spring Cache简明教程
Spring Cache是Spring框架提供的一个抽象层,专注于提供一种透明的方式来添加缓存功能到Spring应用程序中。它不是一个具体的缓存实现,而是提供了一套创建和管理缓存的标准,并能够与多种缓存实现无缝集成,例如Ehcache、Caffeine、Redisson等。本文详细介绍了Spring Cache的使用和注意事项。Spring Cache作为Spring框架提供的缓存抽象,允许通过声明式注解轻松地在应用中集成缓存,以此提升性能和减少开发时间。Spring Cache不是缓存实现。
2024-01-29 22:34:51 1555
原创 如何正确使用缓存来提升系统性能
本文讨论了使用缓存提升系统性能的实践,包括确定数据是否适合缓存、优化缓存配置以及缓存命中率的重要性。同时,文章还探讨了处理缓存引起的数据一致性问题的策略,旨在帮助读者有效地管理缓存,以提升系统效率并降低相关风险。
2023-12-14 08:22:28 1786 1
原创 Java CompletableFuture使用示例
总结下本文,Future尽管有用,但在功能上还是相对简单。不仅提供了获取执行结果的能力,它还增添了异常处理、手动完成、链式操作、结果组合和回调等强大功能。异常处理: 利用和handle方法,可以简化异常处理流程,使其更加直观和易于管理。手动设置结果允许我们在任意时间点手动设置结果,增加了灵活性。链式操作: 通过链式操作,我们可以将不同的异步操作以流水线的方式串联起来,编写复杂的并发逻辑变得更加简单。结果组合和allOf方法能够将多个的结果合并,为我们提供了更多处理异步操作结果的方式。
2023-12-03 20:50:45 1222
原创 软件开发中的抓大放小vs极致细节思维
而反观支付宝替换Oracle数据库的事,他们处理的是金融相关的数据,也就是和钱相关的数据,比如给你少算一分钱,这不是一分钱的问题,而是信任的问题,一旦出问题公司可能就黄了,所以他们出问题的成本是非常高的。首先,我作为研发,大部分情况下的决策都是“不做”,因为做了会显著增加我的工作量,软件开发过程中也存在二八定律,80%的功能只占开发时间的20%,而剩余20%的功能需要额外投入80%工作量。这仿佛是个无解的哲学问题,下面我给出我对这个问题的答案,仅仅是一份我自己的观点,大家也可以在评论区探讨下。
2023-11-25 22:21:18 7729 4
原创 OpenAI Assistants-API简明教程
以上就是Assistants-API整体的开发流程,了解了这些流程后,大家可以很容易构建出像ChatGPT-Plus的私人助理。当然Assistants-API目前还是在beta阶段,有很多功能不完善,比如不支持流式返回、不支持图片生成、不支持插件调用……,甚至run的状态还需要轮询来获取……。另外我在写本文demo的时候,发现Retrivel的文本内容召回成功率非常低,导致账单计算成功率很低(也可能是我给的文本格式的问题)。
2023-11-19 22:36:49 3455 2
原创 OpenAI的多函数调用(Multiple Function Calling)简介
就在上周,OpenAI在开发者大会上,升级了函数调用的功能,在新的gpt-3.5和gpt-4模型中,可以在单轮对话中调用多个函数了,而且在python SDK中也提供了并发函数调用相关的接口,无疑这将大幅减少大语言模型和现实世界之间交互的开发复杂度,接下来就让我用一个具体的示例,带你了解下OpenAI的新特性。这里额外说下,上面的三个函数调用是串行调用,如果每个函数都比较耗时的话,会增加整体的调用时长,而在最新的assistant api中增加了并行执行函数的api,这个我们放到下篇文章中讲解。
2023-11-18 22:22:27 3261 1
原创 ffmpeg视频截取时DTS乱序导致无法截取的问题
因为原始视频不是连续录制,所以就有一定的概率出现A视频的末尾和B视频的开始拼接在同一个m3u8中的可能。在这种情况下,A视频末尾一帧的DTS和B视频首帧的DTS肯定是不连续的,截取时就会报"DTS 0 < 1986554 out of order",最终截取失败。开始以为是hls中的视频片段有问题,后来和同事一起排查发现,所有失败的情况下,执行ffmpeg命令截取时都会报。,顺着这个信息我们发现但凡失败的,都是我们在m3u8里拼接了另外一个视频的部分片段导致的。
2023-11-04 18:02:19 883
原创 如何使用ffmpeg制作透明背景的视频
数字人的视频我是使用的腾讯智影生成带绿幕的视频,要实现透明背景,有个很关键的信息需要知道,不是所有的视频格式(视频编码)都支持透明背景,首先我们最常用的mp4就是不支持(不管是h264还是h265)都不支持,目前支持透明背景的只有少部分视频编码,比如google的vp9(webm)格式,上图中我用就是webm+vp9编码的视频。另外一个问题是webm的格式也并不普及,比如腾讯智影导出只支持mp4,像剪映甚至final cut pro这样专业的剪辑软件都无法编辑导出透明背景的webm格式。
2023-10-28 22:08:12 4149 13
原创 Java21虚拟线程实践
虚拟线程是一种轻量化的线程封装,由jvm直接调度和管理。反之普通的线程其实是调用的操作系统的能力,对应的是操作系统级的线程。相对虚拟线程来说操作系统级的线程持有成本很高,而且受操作系统调度和管理的。实际在普通多线程情况下,如果出现IO阻塞,这个线程就必须得跟着阻塞,这个线程对应的操作系统就被阻塞,而他却持有大量的内存。另外,要处理大量的IO就得新建更多线程,而大量的线程会在操作系统切换时因上下文切换导致大量的CPU被浪费。
2023-09-24 20:14:15 7338 7
原创 spring-kafka中ContainerProperties.AckMode详解
本文是一个深入讨论如何通过优化 Kafka 的消费者确认模式来提升 I/O 密集型系统性能的案例研究。首先分享了一个实际的性能问题,通过改变一行代码中的 Kafka 消费者确认模式配置,系统性能提升了几十倍。这引出了文章的主题:Spring-Kafka 中的七种确认模式(包括两种手动确认模式和五种自动确认模式)的详细介绍和比较。作者不仅解释了每种确认模式的工作原理,还提供了关于何时以及如何选择适合的确认模式的实用建议。这篇文章是那些需要处理大量 I/O 操作,特别是使用 Kafka 的开发人员、架构师的
2023-09-15 23:17:22 1134 3
原创 如何在地图上寻找最密集点的位置?
举个简单例子,给定一个点,如果其他某个点距这个点距离近,密度值就高,反之就远,这个点到其他所有点的密度和求平均就是这个点最终的密度值,这里我们可以直接选用距离的倒数来当成核函数,不过这个核函数是线性的,最终结果和我求平均值差异不大。但我们实际在线上使用的时候,遇到了两个特殊的case。前人也是这么想的,于是就有了很多非线性核函数,而我最终使用了高斯核,调整好核函数的带宽后,其他点带来的密度值也会随着距离,以正态分布的方式衰减如下图,举例越远纵轴的坐标值越低,图中的sigma就是我们核函数的里的带宽。
2023-08-26 21:36:44 921
原创 IO密集型服务提升性能的三种方法
在面对IO密集型系统性能优化时,我们可以通过三种主要的方式来进行:批处理、缓存和多线程。这三种方式各有其优点和适用场景。批处理可以通过减少网络IO次数,显著减少网络传输的延迟时间,从而提升系统性能。但是,它需要我们仔细分析和设计我们的数据处理流程,才能找到合适的批处理策略。缓存则是通过存储频繁访问的数据,减少了对慢速存储(如磁盘或网络)的访问,从而提升性能。但是,使用缓存时需要考虑数据的一致性问题,以及如何选择合适的缓存淘汰策略。
2023-08-12 20:26:17 752
原创 职场中的基本归因错误和自利归因
在评价他人时,避免陷入基本归因错误有个简单的方法,就是换位思考,把自己带入ta的位置,看是否依旧取得同样的结果,如果结果相同那大概可以确定其实是外部环境导致的,而不是其能力和动机的问题。不过换位思考也是一件很难的事,有些事你曾经没有做过或者经历过情况下,会低估事情的复杂度和难度,这也是很多时候一件事自上而下说很简单,自下而上说很难的原因。避免自利归因对个人来说其实更难,因为这是一种思维误区,光靠自身是很难跳出来的,还得依靠外部的帮助,只能说遇到事情首先要压制住自己反驳的欲望,寻求其他人的意见。
2023-07-23 20:08:31 426
原创 使用javax.validation.constraints校验参数合法性
尽管提供了丰富的基础注解,但有时我们还需要进行一些特定的校验操作。这时,我们可以通过自定义注解和校验器来实现这些需求。以下是一个示例,展示了如何创建一个自定义注解@Password首先,创建自定义注解@PasswordString message() default "密码必须包含至少一个大写字母、一个小写字母和一个数字";Class <?Class <?然后,创建自定义校验器=.*[a-z])(?=.*[A-Z])(?} }最后,在需要校验的字段上添加自定义注解@Password。
2023-07-02 20:53:51 4021
原创 Java Optional:让你的代码更优雅
Optional 是一个简单的容器类,用于封装可能为空的值。它可以帮助我们避免使用显式的 null 检查,并提供一种更声明式的方法来处理可能为空的值。通过使用 Optional,我们可以更容易地编写可读、可维护的代码,并减少潜在的 NullPointerException。
2023-06-24 16:28:26 559
原创 如何使用ChatGPT提升自己的“码”力?
ChatGPT是功能强大的工具,用于代码评审、优化、释义、解决方案、生成、设计模式和架构建议,以及学习新知识。虽无法完全替代人类,但可提高工作效率。注意其局限性,结合其他工具和人工审查使用。对初级工程师有用,优化代码和学习工具,提供广泛知识和指导。掌握ChatGPT的使用方法,更好应对技术挑战,不被取代。
2023-05-28 21:18:46 11059
原创 使用ffmpeg拼接两张图片
通过本篇文章的介绍,我们了解了使用FFmpeg拼接两张图片的方法。可以看到出来,使用ffmpeg将两张图片拼接在一起还是相当简单的。希望这篇文章能够对大家有所帮助,如果您有任何疑问或者建议,欢迎在评论区留言。
2023-05-03 21:45:25 2937 1
原创 ThreadPoolExecutor——高效处理并发任务的必备良器
ThreadPoolExecutor是Java中用于管理线程池的一个类,它能够创建和管理线程池,以提高应用程序的性能和可靠性。它具有灵活的线程池管理、高效的任务处理和可靠的异常处理等特点。尤其适用于任务量大、执行时间长、任务类型多样的应用场景,例如Web服务器、数据库连接池、文件处理等。通过合理地设置线程池参数、处理任务和异常、监控和调优线程池,可以提高应用程序的性能和可靠性,避免任务丢失或线程池崩溃的问题。
2023-05-01 16:36:05 2742
原创 从CPU的视角看 多线程代码为什么那么难写!
本文从CPU和内存的发展历程出发,分析了多线程编程中数据一致性和线程安全问题的产生原因。为了解决这些问题,编程语言中引入了各种关键词和工具,合理使用这些工具能在关键操作上保证线程安全,提高代码运行速度。
2023-04-29 10:29:17 1797
原创 使用ffmpeg缩小视频体积的几种方式
随着视频制作的普及,视频文件的体积也越来越大,给存储和传输带来了很大的困扰。为了解决这个问题,我们可以使用FFmpeg这个强大的工具来缩小视频的体积。本文将介绍三种常用的方法:调整视频的分辨率、调整视频的码率和使用更高效的视频编码格式。
2023-04-16 19:46:37 10182
原创 Linux parallel 命令使用手册
GNU Parallel是一个强大的并行计算工具,可以帮助您加速命令行作业的执行,提高系统资源利用率,以及处理大量的数据和作业。总之,GNU Parallel是一个非常有用的工具,可以帮助您更好地管理和处理数据,提高工作效率和准确性。如果您需要处理大量的数据和作业,或者需要利用多个CPU核心和计算机节点来执行作业,那么GNU Parallel是一个非常好的选择。GNU Parallel是一个强大的并行计算工具,可以帮助您加速命令行作业的执行,提高系统资源利用率,以及处理大量的数据和作业。
2023-04-09 22:43:44 5695
原创 为什么说过早优化是万恶之源?
作为一名在IT领域摸爬滚打多年的工程师,我深有体会地认识到过早优化是软件开发中的一大陷阱。在软件开发的初期,我们可能会过于关注代码的性能问题,而忽略了代码的可读性、可维护性和可扩展性。这种做法可能会导致代码的复杂性增加,降低代码的可读性和可维护性,甚至可能会浪费大量的开发时间和资源。在软件开发过程中,我们应该避免过早优化,而是优先考虑代码的可读性、可维护性和可扩展性。当需要进行性能优化时,应该在代码的基础上进行优化,通过分析性能瓶颈、优化算法和数据结构等方法来提高代码的性能和效率。
2023-04-02 17:11:15 19436 8
原创 人工智能未来是否会取代人类程序员?
当然,换个视角思考,人工智能的进步也在推动程序员工作的变化。人工智能可以帮助程序员完成一些重复和耗时的任务,从而提高工作效率和产出,比如像Github推出的CoPilot,据说在某些场景下可以提升60%的编码速度。但是,程序员的工作内容并不仅仅是编写代码。这个话题在近期来引起了很大讨论,尤其是当GPT4发布后,其展现出来的能力让很多岗位的从业者战战兢兢,比如像程序员,甚至有大佬跳出说三年 AI一定会取代程序员。综上,尽管人工智能在某些方面具有威胁,但作为一个整体,人工智能很难完全替代人类程序员。
2023-03-19 21:27:33 1304
原创 深入理解Spring的事件通知机制
Spring的事件通知机制是一种灵活方便的组件通讯方式,在不同的业务场景中都有广泛的应用。通过本文的介绍,我们可以了解到Spring事件通知机制的原理、使用方法和代码示例,以及将其与其他Spring组件集成的一些技巧。希望这篇文章能够帮助大家更深入地理解Spring框架。
2023-03-19 08:34:46 660
原创 Linux xargs命令介绍
Linux 中的 `xargs` 命令是一个非常有用的命令行工具,可以将一些参数集合传递给其他命令作为参数,并利用指定的命令进行处理。它可以帮助我们批量处理文件,执行一些需要多个参数的命令,并且支持并发操作。
2023-03-18 21:28:13 3285
workflow.zip
2019-08-19
《OpenCL异构计算》全书所有插图及实现代码
2013-04-19
红黑树 red-black
2013-04-19
acm Hdoj 离线版 1000-3000题 可搜索查找
2012-10-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人