自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(227)
  • 收藏
  • 关注

原创 如何实现一个DNS

域名系统(英语:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。开始时,域名的字符仅限于ASCII字符的一个子集。2008年,ICANN通过一项决议,允许使用其它语言作为互联网顶级域名的字符。使用基于Punycode码的IDNA系统,可以将Unicode字符串映射为有效的DNS字符集。

2025-03-19 23:01:15 999

原创 langChainv0.3学习笔记(初级篇)

LangChain自0.1版本发布以来,已经历了显著的进化,特别是向AI时代的适应性提升。在0.1版本中,LangChain主要聚焦于提供基本的链式操作和工具集成,帮助开发者构建简单的语言模型应用。该版本适用于处理简单任务,但在应对更复杂的AI需求时显得有些局限。相比之下,LangChain 0.3版本展现了更为全面和强大的功能,进一步优化了其模块化架构,增强了与现代AI工具和框架的兼容性。这一版本加入了更多针对AI时代的特性,包括增强的多模态支持、自动化的推理链处理、以及更强的上下文管理能力。LangCh

2025-03-09 20:50:18 874

原创 Ollama学习参考笔记

Ollama 是一个开源的大型语言模型(LLM)平台,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。Ollama 提供了一个简单的方式来加载和使用各种预训练的语言模型,支持文本生成、翻译、代码编写、问答等多种自然语言处理任务。Ollama 的特点在于它不仅仅提供了现成的模型和工具集,还提供了方便的界面和 API,使得从文本生成、对话系统到语义分析等任务都能快速实现。与其他 NLP 框架不同,Ollama 旨在简化用户的工作流程,使得机器学习不再是只有深度技术背景的开发者才能触及的领域。

2025-02-11 12:40:09 720

原创 transformers学习笔记——初级篇

Transformers 是由 Hugging Face 开发的一个 NLP 包,支持加载目前绝大部分的预训练模型。随着 BERT、GPT 等大规模语言模型的兴起,越来越多的公司和研究者采用 Transformers 库来构建 NLP 应用。我们可以使用 Transformers 库提供的 API 轻松下载和训练最先进的预训练模型。使用预训练模型可以降低计算成本,以及节省从头开始训练模型的时间。文本:文本分类、信息抽取、问答系统、文本摘要、机器翻译和文本生成。图像:图像分类、目标检测和图像分割。

2025-02-09 20:03:38 873

原创 保姆级AI开发环境搭建

随着 DeepSeek 模型的发布,它在全球范围内引起了极大的关注。为了让更多开发者能够迅速进入AI领域并参与到这一革新性技术的应用中,本文将提供一份详尽的“保姆级”开发环境搭建指南。针对 Windows 和 Linux 两大操作系统,文章将逐步介绍如何搭建适用于 DeepSeek 模型的 AI 开发环境。内容涵盖了从基础工具安装到高级配置,包括 Python、PyTorch、TensorFlow 等 AI 框架的安装方法,CUDA 与 GPU 配置步骤,以及如何通过优化开发工具提高开发效率。

2025-02-08 23:33:06 1200

原创 linux下的NFS和FTP部署

是一个用于设置/var/ftp目录及其内容的所有者和所属组的命令,以确保FTP服务能够正确访问和操作这些目录。通过查看和/etc/group文件,你可以获取系统中所有用户和组的详细信息。如果只需要用户或组名称,可以使用cut命令进行筛选。使用id和groups命令可以查看当前用户的详细信息及其所属的组。这行记录表示ftp用户名ftp用户ID(UID)14组ID(GID)50,通常与组名ftp关联描述FTPUser主目录/var/ftp登录Shell。

2025-01-17 22:56:29 1524

原创 HTTP2/3强势来袭

本文详细分析了HTTP协议的演进历程,逐步阐述了HTTP/1、HTTP/1.1、HTTP/2和HTTP/3的主要特性、优势以及它们在实际应用中的支持情况。通过对比各个版本的设计思想和技术实现,本文帮助读者更好地理解不同版本协议之间的差异,并为实际开发中如何选择适合的HTTP协议版本提供指导。首先,文章介绍了HTTP/1.0和HTTP/1.1的基础内容。HTTP/1.0的简单设计和无状态性使其成为早期网络通信的主力协议,而HTTP/1.1则引入了持久连接、管道化请求等重要特性,从而在性能和扩展性上有所提升。

2025-01-05 22:13:00 1200

原创 pytorch学习笔记《待续》

人工神经网络靠的是正向和反向传播来更新神经元,从而形成一个好的神经系统,本质上,这是一个能让计算机处理和优化的数学模型。而生物神经网络是通过刺激, 产生新的联结, 让信号能够通过新的联结传递而形成反馈。虽然现在的计算机技术越来越高超,不过我们身体里的神经系统经过了数千万年的进化,还是独一无二的, 迄今为止,再复杂,再庞大的人工神经网络系统也不能替代我们的脑袋。——引子。

2024-12-18 23:26:36 994

原创 机器学习《西瓜书》学习笔记《待续》

如果说,计算机科学是研究关于“算法”的学问,那么机器学习就是研究关于“学习算法”的学问。

2024-12-18 23:26:09 809

原创 多因子认证 (Multi-factor authentication, MFA)

多因子认证(Multi-Factor Authentication, MFA)是一种安全措施,要求用户在登录时提供多个验证因素来确认其身份,从而增强账户的安全性。知识因素(Something you know):例如密码或PIN码。持有因素(Something you have):例如手机、硬件令牌、智能卡等。固有因素(Something you are):例如指纹、面部识别、虹膜扫描等生物特征。在进行MFA时,用户必须至少提供两种或更多的验证因素,才能成功访问账户或系统。

2024-12-18 23:24:03 3210

原创 golang操作sqlite3加速本地结构化数据查询

在没有网络支持且仅能使用 Go 语言包的开发环境中,如果需要频繁查询一个较大的 CSV 文件,有几种优化方案可以考虑。传统的遍历方法使用 Go 的csv库,针对每次查询都遍历整个 CSV 文件。这种方法简单易懂,但性能较差,尤其在数据量较大时,每次查询都需要重新读取整个文件,效率低下。将数据加载到内存(Map 存储)通过一次性读取 CSV 文件并将其存储在内存中的map结构中,可以大幅提高查询性能。利用map提供的 O(1) 查找时间,查询操作会变得非常迅速。

2024-12-15 23:33:27 1707 4

原创 python代码加密执行(如何保护你的Python源码)

在软件开发中,代码安全是一个重要的课题。Python 代码由于以源码形式直接部署到服务器并通过解释器执行,容易暴露其中的敏感信息,如 API 密钥、加密盐等。为了解决这一问题,开发者需要采取有效的措施对代码进行加密或保护。本文将详细探讨几种常见的方案,包括编译为可执行文件、生成字节码文件、代码混淆以及基于动态解密的自定义解释器等。这些方法各有特点,可根据实际需求选择适合的方案。第一种方法是编译为可执行文件。

2024-11-16 20:48:15 1750

原创 详解python那些强大的NLP库

参考spaCy官方文档的训练自定义模型指南。开发者可以指定自己自定义的词典,以便包含 jieba 词库里没有的词。虽然 jieba 有新词识别能力,但是自行添加新词可以保证更高的正确率。用法:为文件类对象或自定义词典的路径词典格式和dict.txt一样,一个词占一行;词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。file_name 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码。词频省略时使用自动计算的能保证分出该词的词频。云计算 5 李小福 2 nr。

2024-11-03 18:49:39 916

原创 读懂RAG理论到实践(待续)

你可以根据具体的任务场景自定义停用词列表,以满足不同领域的需求。例如,在某些场景下,特定的高频词(如 “data”, “model”)可能需要被去除。

2024-10-10 00:07:24 1045

原创 AI名词扫盲

本篇章主要介绍一些AI研究方向的名词以及解释,后续会持续补充,名词解释与时间顺序无关,欢迎各位大佬们在评论区查漏补缺。

2024-09-28 15:24:55 1665

原创 LRU go cache的实现

一致性哈希算法是Cache 从单节点走向分布式节点的一个重要的环节。对于分布式缓存来说,当一个节点接收到请求,如果该节点并没有存储缓存值,那么它面临的难题是,从谁那获取数据?自己,还是节点1, 2, 3, 4…。假设包括自己在内一共有 10 个节点,当一个节点接收到请求时,随机选择一个节点,由该节点从数据源获取数据。假设第一次随机选取了节点 1 ,节点 1 从数据源获取到数据的同时缓存该数据;

2024-09-08 20:05:53 1379

原创 Windows配置开机直达桌面并跳过锁屏登录界面&在 Windows 10 中添加在启动时自动运行的应用

scsystemctl启动时机: 系统服务在系统启动时或更早阶段启动,而开机自启动服务则在用户登录后启动。运行环境: 系统服务通常在系统级别运行,不依赖于用户登录,开机自启动服务则依赖于用户会话,并在用户的权限下运行。管理方式: 系统服务由系统服务管理工具(如systemctl)管理,而开机自启动服务通常由用户级工具或桌面环境来管理。用途: 系统服务适用于提供系统级服务(如网络、数据库),而开机自启动服务通常用于为用户提供应用程序或环境初始化。

2024-08-12 23:59:12 3678

原创 golang 解压带密码的zip包

时候(即二进制:00000000 00000100),表示有数据描述部分,本地文件头中的 CRC-32、压缩大小和未压缩大小字段都被设置为0(虽然zip规范是这么定义,但是发现有些压缩包即使声明有数据描述部分,但是本地文件头的CRC-32、压缩大小和未压缩大小依然还是设置为真实值) , 正确的值被放在紧跟在压缩数据之后的数据描述部分,apk的通用标志位默认传0即可,也有传2048、2056,目前第15位是PKWARE保留位。通过ZIP文件的结构我们发现,ZIP文件的中央目录区保存了所有的文件信息。

2024-07-20 15:16:46 1246 3

原创 还在为临时构造测试数据苦恼吗——快来看看faker库吧

Faker库主要用来创建非真实数据,使用Faker包,无需再手动生成或者手写随机数来生成数据,只需要调用Faker提供的方法,即可完成数据的生成。

2024-07-05 21:48:55 454

原创 C++语言基础光速入门笔记

C++ 读作“C加加”,是“C Plus Plus”的简称。顾名思义,C++ 是在C语言的基础上增加新特性,玩出了新花样,所以叫“C Plus Plus”。从语法上看,C语言是 C++ 的一部分,C语言代码几乎不用修改就能够以 C++ 的方式编译。可以明确地说:学了C语言就相当于学了 C++ 的一半,从C语言转向 C++ 时,不需要再从头开始,接着C语言往下学就可以。很难说 C++ 拥有独立的编译器,例如 Windows 下的微软编译器(cl.exe)、Linux 下的 GCC 编译器、Mac 下的 Cla

2024-05-19 23:42:43 1046

原创 langChain学习笔记v0.1版本(建议转v0.3)

举一个小例子,我以前特别喜欢玩一款叫作《梦幻西游》的游戏。弃坑之后,游戏方的客服经理总给我打电话,说 “Y哥能不能回来接着玩耍(充值)呀,帮派的小伙伴都十分想念你……”。这时候我就想:他们为什么会给我打电话呢?这款游戏每天都有用户流失,不可能给每个用户都打电话吧,那么肯定是挑重点用户来沟通了。其后台肯定有玩家的各种数据,例如游戏时长、充值金额、战斗力等,通过这些数据就可以建立一个模型, 用来预测哪些用户最有可能返回来接着玩(充钱)!

2024-02-27 23:46:16 1939

原创 AI入门系列——数据分析

人工智能(Artificial Intelligence,AI)之研究目的是通过探索智慧的实质,扩展人类智能——促使智能主体会听(语音识别、机器翻译等)、会看(图像识别、文字识别等)、会说(语音合成、人机对话等)、会思考(人机对弈、专家系统等)、会学习(知识表示,机器学习等)、会行动(机器人、自动驾驶汽车等)。一个经典的AI定义是:“ 智能主体可以理解数据及从中学习,并利用知识实现特定目标和任务的能力。”从技术层面来看,现在所说的人工智能技术基本上就是机器学习方面的(也就是,机器学习技术是入门AI的核心技术

2024-02-27 23:00:07 3193

原创 光速入门spark(待续)

官网的定义是:Apache Spark™是一个用于在单节点机器或集群上执行数据工程、数据科学和机器学习的多语言引擎。Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。Spark 最早源于一篇论文Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing,该论文是由加州大学柏克莱分校的Matei Zaharia 等人发表的。

2024-02-27 22:59:26 920

原创 23种计模式之Python/Go实现

设计模式是面对各种问题进行提炼和抽象而形成的解决方案。这些设计方案是前人不断试验,考虑了封装性、复用性、效率、可修改、可移植等各种因素的高度总结。它不限于一种特定的语言,它是一种解决问题的思想和方法。由于高级语言的出现,让机器读懂你的意图已经不是最主要的“矛盾”,而让人读懂你的意图才是最重要。按照设计模式编写的代码,其可读性也会大大提升,利于团队项目的继承和扩展。设计模式可以分为三个大类:创建类设计模式、结构类设计模式、行为类设计模式下面用一个图片来整体描述一下设计模式之间的关系:单例模式、工厂模式(简单工

2024-02-13 20:16:50 2428 2

原创 typing python 类型标注学习笔记

typing模块为Python带来了类型提示和类型检查的能力。它允许开发者在代码中添加类型注解,提高代码的可读性和可维护性。尽管Python是一种动态类型语言,但类型注解能让开发者更清晰地了解函数和变量的预期类型。备注:Python 运行时不强制要求函数与变量类型标注。它们可被 类型检查器、IDE、语法检查器等第三方工具使用。Type hints 即类型提示,是 Python 在 3.5 版本中加入的语法,并在 Python 3.6 基本可用。

2024-01-20 22:07:17 2504

原创 C语言基础光速入门笔记

C语言是一门面向过程的编译型语言,它的运行速度极快,仅次于汇编语言。C语言是计算机产业的核心语言,操作系统、硬件驱动、关键组件、数据库等都离不开C语言;不学习C语言,就不能了解计算机底层。C 语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。当前最新的 C 语言标准为 C18 ,在它之前的 C 语言标准有 C17、C11…C99 等。C语言出现的时候,已经度过了编程语言的拓荒年代,具备了现代编程语言的特性,但

2024-01-07 21:54:08 5515 2

原创 容器技术——Cgroup

物理机利用率上去了;服务器宕机了,所有应用都会宕机;需求:1. 把单台物理机的利用率提高;2. 把应用分散到逻辑上不同的主机中,应该做到不同应用的环境隔离,分离出不同职能的应用,如负责负载均衡,负责数据库…的应用虚拟化技术:为了同时满足上述两个需求,于是诞生了虚拟化技术,例如win下的vmware workstation,linux下的kvm,还有esxi、xen等;

2023-11-26 17:54:09 2116

原创 filebeat配置解析(待续)

每当队列中的数据缓存到一定的大小或者超过了定时的时间(默认1s),会被注册的client从队列中消费,发送至配置的后端。正常启动filebeat,一般确实只会占用3、40MB内存,但是偶发性的也会发现某些节点上的filebeat容器内存占用超过配置的pod limit限制(一般设置为200MB),并且不停的触发的OOM。所以,合理的配置日志文件的匹配规则,限制单行日志大小,根据实际情况配置memqueue缓存的个数,才能在实际使用中规避filebeat的内存占用过大的问题。

2023-11-22 23:52:03 4135

原创 GitHub项目监控——gitpython&go-git5操作git

对于常用Github的用户来说,经常有一些自动化的需求。比如监控某些项目的更新情况并实时拉取,比如监控github全网上传的代码是否携带了公司的APIKEY,SECRETKEY等…

2023-11-01 22:11:41 905 3

原创 faster python之ctypes调用so/dll

ctypes提供cast()方法将一个ctypes实例转换为指向另一个ctypes数据类型的指针,cast()接受两个参数,一个是ctypes对象,它是或可以转换成某种类型的指针,另一个是ctypes指针类型。Go编译器支持将Go代码编译成可执行文件,静态库(.a文件)和共享对象文件(.so文件或.dll文件),这使得Go可以用于构建独立的应用程序,也可以用于构建共享库,供其他程序使用。是一个动态的Python库,所以在性能要求严格的情况下,可能需要考虑使用更高级的工具,如Cython或SWIG。

2023-10-14 13:54:39 1015

原创 python项目2to3方案预研

总的来说,2to3是一个很有用的工具,可以帮助自动化大部分的Python 2到Python 3的迁移工作,但需要谨慎使用,同时在转换后进行仔细的代码审查以确保正确性。是一个非常实用的库,可以帮助你在 Python 2 中逐步采用 Python 3 的特性,从而为将来迁移到 Python 3 打下基础。是Python官方提供的用于将Python 2代码转换为Python 3代码的工具。不要添加将来的模块。库提供的一个命令行工具,可以帮助你批量地将 Python 2 代码转换为兼容 Python 3 的代码。

2023-09-20 22:15:39 1255

原创 用go实现一个循环队列

在入队和出队的操作中,头尾指针只增加不减小,致使被删除元素的空间永远无法重新利用,因此,尽管队列中实际的元素个数远远小于向量空间的规模,但也可能由于尾指针巳超出向量空间的上界而不能做入队操作,该现象称为假溢出。队列有很多种,按照存储结构划分,有链式队列,循环队列,单向队列,双端队列。在队列的顺序存储结构中,除了用一组地址连续的存储单元依次存放从队列头到队列尾的元素之外,还需要设置头尾两个指针front和rear,分别指示队列头元素及队尾元素的位置。从队列中删除队头元素称为出队,其后继元素成为新的队头元素。

2023-09-09 12:12:52 556 1

原创 faster python——dataclass&cache

数据类(data class)已经预先实现了基本功能。'Q'True将其与普通类进行比较。尽管要编写的代码不多,但您已经可以看到样板痛苦的迹象:为了初始化对象,等级(rank)和花色(suit)都被重复了三次。'Q'False看起来数据类在幕后帮助我们。默认情况下,数据类实现了方法以提供漂亮的字符串表示,以及一个.__eq__()方法,可以进行基本的对象比较。为了使return (f'!r!

2023-09-06 22:01:25 555

原创 验证go循环删除slice,map的操作和map delete操作不会释放底层内存的问题

循环删除切片元素可能会引发意外的结果,因为切片的长度在循环过程中可能会发生变化,导致索引越界或不正确的元素被删除。在这个示例中,我们首先记录了需要删除的元素的索引,然后在第二个循环中进行了删除操作。可以看到,新版本的 Golang 难道真的会回收 map 的多余空间,难道哈希表会随着 map 里面的元素变少,然后缩小了?也就是说,在迭代期间创建的key,有的可能会被输出,也的就可能会被跳过。正确的做法是,可以首先记录需要删除的元素的索引,然后再循环外面执行删除操作,避免在循环中修改切片。

2023-08-29 00:11:26 2709 1

原创 ELK日志监控系统搭建

⼀个⽇志系统应该包含以下⼏点:(1) 收集[collect]:能够采集多种来源的⽇志数据(2) 传输[transform]:能够稳定的把⽇志数据解析过滤并传输到存储系统(3) 存储[store]:存储⽇志数据(4) 分析[analyze]:⽀持 UI 分析(5) 警告[warning]:能够提供错误报告,监控机制elasticsearch是⼀个分布式、⾼扩展、⾼实时的搜索与数据分析引擎,作为存储系统是整个ELK架构的 核⼼。⽤于全⽂检索、结构化搜索、分析。

2023-08-20 15:29:54 763

原创 golang操作excel的高性能库——excelize/v2

Excelize是一个纯Go编写的库,提供了一组功能,允许你向XLAM / XLSM / XLSX / XLTM / XLTX文件写入和读取。支持读取和写入由Microsoft Excel™ 2007及更高版本生成的电子表格文档。通过高度兼容性支持复杂组件,并提供了流式API,用于生成或从包含大量数据的工作表中读取数据。此库需要Go版本1.16或更高版本。可以使用Go的内置文档工具查看完整文档,也可以在go.dev和文档引用中在线查阅。

2023-08-16 21:04:10 15492 2

原创 计算文本相似度

需要注意的是,这只是一个简单的示例,实际上在 NLP 中,还有更复杂和高级的向量化方法,例如 TF-IDF、Word2Vec、BERT 等,它们能更好地捕捉单词和文本之间的语义关系。对每个文本进行向量化:对于每个文本,统计词汇表中每个单词在文本中出现的次数,或者使用其他权重(如 TF-IDF),得到一个向量,向量的维度等于词汇表中的单词数量。词袋模型的基本思想是将文本中的单词提取出来,然后统计每个单词在文本中的出现频率,最终将每个单词的频率作为向量的一个维度,从而得到一个数值化的表示。

2023-08-12 12:19:43 576

原创 python版puppeteer——pyppeteer&selenium的加强版——seleniumwire

代理供应商# 创建代理对象# 设置Chrome浏览器驱动程序使用代理这样加没问题,但访问页面就会出现"ERR_NO_SUPPORTED_PROXIES"代理提供商通常会提供白名单校验:将你的主机ip加入白名单就可以替换username,password校验了。

2023-08-02 23:37:14 2917

原创 Docker续集+Docker Compose

Docker 的⼝号是 Build,Ship,and Run Any App,Anywhere,在我们使⽤ Docker 的⼤部分时候,的确能感觉到其优越性,但是往往在我们 Build ⼀个应⽤的时候,是将我们的源代码也构建进去的,这对于类似于 golang 这样的编译型语⾔肯定是不⾏的,因为实际运⾏的时候我只需要把最终构建的⼆进制包给你就⾏,把源码也⼀起打包在镜像中,需要承担很多⻛险,即使是脚本语⾔,在构建的时候也可能需要使⽤到⼀些上线的⼯具,这样⽆疑也增⼤了我们的镜像体积。

2023-07-29 20:27:02 2115 1

原创 VMware虚拟机中配置静态IP

在这一步,路由器会将数据包的源 IP 地址(也就是你的主机的私有 IP 地址)转换为路由器在公共互联网上拥有的公共 IP 地址。总的来说,VMnet8 在虚拟化环境中是一个重要的虚拟网络设备,它通过网络地址转换、DHCP 和 DNS 代理等功能,为虚拟机提供了网络连接和访问外部网络的能力,并确保虚拟机之间和主机系统之间的网络隔离和安全性。私有地址范围的引入是为了在局域网、企业内部网络等私有网络环境中,通过重复使用一组特定的 IP 地址,实现了更有效的 IP 地址管理。

2023-07-29 11:30:17 2387 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除