- 博客(235)
- 收藏
- 关注
原创 学习!FastAPI
FastAPI 是一个现代、高性能的 Python Web 框架,专注于构建 API。它基于 Starlette 和 Pydantic,支持异步编程,提供自动文档生成、数据验证、类型提示和安全认证等功能。与 Django 和 Flask 相比,FastAPI 在性能、异步支持和开发效率上具有显著优势,尤其适合高并发场景。FastAPI 的部署通常使用 Uvicorn 或 Gunicorn + UvicornWorker,性能表现优于 Flask。随着 AI 和 Python 生态的发展,FastAPI 在机
2025-05-18 21:45:30
695
原创 vllm笔记
vLLM 是一款由加州大学伯克利分校团队开发的大语言模型推理加速框架,通过创新的 PagedAttention 算法有效解决了大语言模型推理中的内存管理瓶颈问题。PagedAttention 借鉴操作系统的分页机制,将键值(KV)缓存划分为固定大小的块,显著减少内存碎片化,提升内存利用率。vLLM 还通过 KV 缓存共享机制和细粒度批处理技术,进一步优化了并行采样、束搜索和批处理请求中的内存使用效率。与 Hugging Face Transformers 相比,vLLM 的吞吐量提升了 24 倍,且无需修改
2025-05-10 21:58:32
1151
原创 高效Python开发:uv包管理器全面解析
uv 是由 Astral 公司开发的 Rust 编写的快速 Python 包管理器,旨在取代 pip 和其他相关工具,提供端到端的 Python 项目管理解决方案。其主要功能包括包管理、虚拟环境管理、Python 版本控制、CLI 工具管理以及单文件脚本支持。uv 具有高性能,依赖解析和安装速度显著优于传统工具,且支持跨平台操作(macOS、Linux、Windows)。它兼容 pip 接口,同时提供类似 Cargo 的现代化工作流,适合从初学者到专家的各类开发者。安装方式灵活,支持通过独立安装器或 PyP
2025-05-10 17:42:20
1266
原创 Model Context Protocol (MCP)笔记
Model Context Protocol(MCP,模型上下文协议)是由 Anthropic 于 2024 年 11 月推出的一项开放标准,旨在解决大型语言模型(LLMs)与外部工具和数据源集成的复杂性问题。在 MCP 出现之前,开发者通常需要为每个数据源或工具编写定制的连接器,导致集成工作繁琐且难以维护。维基百科,自由的百科全书WikipediaMCP 的核心理念是提供一个统一的通信协议,使得 LLMs 能够通过标准化的方式访问外部资源、调用工具函数,并利用预设提示模板来增强其功能。
2025-05-05 20:27:01
929
原创 SSE协议
ChatGPT 是一个基于深度学习的大型语言模型,处理自然语言需要大量的计算资源和时间,响应速度肯定比普通的读数据库要慢的多,普通 http 接口等待时间过长,显然并不合适。在使用 ChatGPT 时,发现输入 prompt 后,页面是逐步给出回复的,起初以为使用了 WebSckets 持久化连接协议,查看其网络请求,发现这个接口的通信方式并非传统的 http 接口或者 WebSockets,而是基于 EventStream 的事件流,像打字机一样,一段一段的返回答案。该属性只读,可以取以下值。
2025-04-26 17:43:33
758
原创 数据过滤器
通过数据签名,我们可以将奇形怪状的数据转换为长度固定的格式!而数据处理常用到的一些概念有:一种将任意长度输入映射为固定长度输出的函数,通常用于快速查找、去重、数据校验等。特点:用途:示例算法:常见哈希算法及对比:用法场景:下面给出摘录出来的牛逼的工业级 Hash 算法(适合高性能/大规模系统):🔸 MurmurHash3🔸 Blake2b🔸 CityHash / FarmHash / HighwayHash 是一种高性能、非加密型哈希算法,由 Yann Collet(@Cyan4973)在 2012
2025-04-26 15:58:27
1147
原创 CSDN markdown编辑器README文档
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S
2025-04-16 19:47:00
274
原创 如何实现一个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
1067
原创 langChainv0.3学习笔记(初级篇)
LangChain自0.1版本发布以来,已经历了显著的进化,特别是向AI时代的适应性提升。在0.1版本中,LangChain主要聚焦于提供基本的链式操作和工具集成,帮助开发者构建简单的语言模型应用。该版本适用于处理简单任务,但在应对更复杂的AI需求时显得有些局限。相比之下,LangChain 0.3版本展现了更为全面和强大的功能,进一步优化了其模块化架构,增强了与现代AI工具和框架的兼容性。这一版本加入了更多针对AI时代的特性,包括增强的多模态支持、自动化的推理链处理、以及更强的上下文管理能力。LangCh
2025-03-09 20:50:18
1085
原创 Ollama学习参考笔记
Ollama 是一个开源的大型语言模型(LLM)平台,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。Ollama 提供了一个简单的方式来加载和使用各种预训练的语言模型,支持文本生成、翻译、代码编写、问答等多种自然语言处理任务。Ollama 的特点在于它不仅仅提供了现成的模型和工具集,还提供了方便的界面和 API,使得从文本生成、对话系统到语义分析等任务都能快速实现。与其他 NLP 框架不同,Ollama 旨在简化用户的工作流程,使得机器学习不再是只有深度技术背景的开发者才能触及的领域。
2025-02-11 12:40:09
812
原创 transformers学习笔记——初级篇
Transformers 是由 Hugging Face 开发的一个 NLP 包,支持加载目前绝大部分的预训练模型。随着 BERT、GPT 等大规模语言模型的兴起,越来越多的公司和研究者采用 Transformers 库来构建 NLP 应用。我们可以使用 Transformers 库提供的 API 轻松下载和训练最先进的预训练模型。使用预训练模型可以降低计算成本,以及节省从头开始训练模型的时间。文本:文本分类、信息抽取、问答系统、文本摘要、机器翻译和文本生成。图像:图像分类、目标检测和图像分割。
2025-02-09 20:03:38
960
原创 保姆级AI开发环境搭建
随着 DeepSeek 模型的发布,它在全球范围内引起了极大的关注。为了让更多开发者能够迅速进入AI领域并参与到这一革新性技术的应用中,本文将提供一份详尽的“保姆级”开发环境搭建指南。针对 Windows 和 Linux 两大操作系统,文章将逐步介绍如何搭建适用于 DeepSeek 模型的 AI 开发环境。内容涵盖了从基础工具安装到高级配置,包括 Python、PyTorch、TensorFlow 等 AI 框架的安装方法,CUDA 与 GPU 配置步骤,以及如何通过优化开发工具提高开发效率。
2025-02-08 23:33:06
1306
原创 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
1588
原创 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
1264
原创 pytorch学习笔记《待续》
人工神经网络靠的是正向和反向传播来更新神经元,从而形成一个好的神经系统,本质上,这是一个能让计算机处理和优化的数学模型。而生物神经网络是通过刺激, 产生新的联结, 让信号能够通过新的联结传递而形成反馈。虽然现在的计算机技术越来越高超,不过我们身体里的神经系统经过了数千万年的进化,还是独一无二的, 迄今为止,再复杂,再庞大的人工神经网络系统也不能替代我们的脑袋。——引子。
2024-12-18 23:26:36
1006
原创 多因子认证 (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
3824
原创 golang操作sqlite3加速本地结构化数据查询
在没有网络支持且仅能使用 Go 语言包的开发环境中,如果需要频繁查询一个较大的 CSV 文件,有几种优化方案可以考虑。传统的遍历方法使用 Go 的csv库,针对每次查询都遍历整个 CSV 文件。这种方法简单易懂,但性能较差,尤其在数据量较大时,每次查询都需要重新读取整个文件,效率低下。将数据加载到内存(Map 存储)通过一次性读取 CSV 文件并将其存储在内存中的map结构中,可以大幅提高查询性能。利用map提供的 O(1) 查找时间,查询操作会变得非常迅速。
2024-12-15 23:33:27
1850
4
原创 python代码加密执行(如何保护你的Python源码)
在软件开发中,代码安全是一个重要的课题。Python 代码由于以源码形式直接部署到服务器并通过解释器执行,容易暴露其中的敏感信息,如 API 密钥、加密盐等。为了解决这一问题,开发者需要采取有效的措施对代码进行加密或保护。本文将详细探讨几种常见的方案,包括编译为可执行文件、生成字节码文件、代码混淆以及基于动态解密的自定义解释器等。这些方法各有特点,可根据实际需求选择适合的方案。第一种方法是编译为可执行文件。
2024-11-16 20:48:15
2051
原创 详解python那些强大的NLP库
参考spaCy官方文档的训练自定义模型指南。开发者可以指定自己自定义的词典,以便包含 jieba 词库里没有的词。虽然 jieba 有新词识别能力,但是自行添加新词可以保证更高的正确率。用法:为文件类对象或自定义词典的路径词典格式和dict.txt一样,一个词占一行;词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。file_name 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码。词频省略时使用自动计算的能保证分出该词的词频。云计算 5 李小福 2 nr。
2024-11-03 18:49:39
1032
原创 读懂RAG理论到实践(待续)
你可以根据具体的任务场景自定义停用词列表,以满足不同领域的需求。例如,在某些场景下,特定的高频词(如 “data”, “model”)可能需要被去除。
2024-10-10 00:07:24
1086
原创 LRU go cache的实现
一致性哈希算法是Cache 从单节点走向分布式节点的一个重要的环节。对于分布式缓存来说,当一个节点接收到请求,如果该节点并没有存储缓存值,那么它面临的难题是,从谁那获取数据?自己,还是节点1, 2, 3, 4…。假设包括自己在内一共有 10 个节点,当一个节点接收到请求时,随机选择一个节点,由该节点从数据源获取数据。假设第一次随机选取了节点 1 ,节点 1 从数据源获取到数据的同时缓存该数据;
2024-09-08 20:05:53
1452
原创 Windows配置开机直达桌面并跳过锁屏登录界面&在 Windows 10 中添加在启动时自动运行的应用
scsystemctl启动时机: 系统服务在系统启动时或更早阶段启动,而开机自启动服务则在用户登录后启动。运行环境: 系统服务通常在系统级别运行,不依赖于用户登录,开机自启动服务则依赖于用户会话,并在用户的权限下运行。管理方式: 系统服务由系统服务管理工具(如systemctl)管理,而开机自启动服务通常由用户级工具或桌面环境来管理。用途: 系统服务适用于提供系统级服务(如网络、数据库),而开机自启动服务通常用于为用户提供应用程序或环境初始化。
2024-08-12 23:59:12
4840
原创 golang 解压带密码的zip包
时候(即二进制:00000000 00000100),表示有数据描述部分,本地文件头中的 CRC-32、压缩大小和未压缩大小字段都被设置为0(虽然zip规范是这么定义,但是发现有些压缩包即使声明有数据描述部分,但是本地文件头的CRC-32、压缩大小和未压缩大小依然还是设置为真实值) , 正确的值被放在紧跟在压缩数据之后的数据描述部分,apk的通用标志位默认传0即可,也有传2048、2056,目前第15位是PKWARE保留位。通过ZIP文件的结构我们发现,ZIP文件的中央目录区保存了所有的文件信息。
2024-07-20 15:16:46
1318
3
原创 还在为临时构造测试数据苦恼吗——快来看看faker库吧
Faker库主要用来创建非真实数据,使用Faker包,无需再手动生成或者手写随机数来生成数据,只需要调用Faker提供的方法,即可完成数据的生成。
2024-07-05 21:48:55
488
原创 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
1093
原创 langChain学习笔记v0.1版本(建议转v0.3)
举一个小例子,我以前特别喜欢玩一款叫作《梦幻西游》的游戏。弃坑之后,游戏方的客服经理总给我打电话,说 “Y哥能不能回来接着玩耍(充值)呀,帮派的小伙伴都十分想念你……”。这时候我就想:他们为什么会给我打电话呢?这款游戏每天都有用户流失,不可能给每个用户都打电话吧,那么肯定是挑重点用户来沟通了。其后台肯定有玩家的各种数据,例如游戏时长、充值金额、战斗力等,通过这些数据就可以建立一个模型, 用来预测哪些用户最有可能返回来接着玩(充钱)!
2024-02-27 23:46:16
2075
原创 AI入门系列——数据分析
人工智能(Artificial Intelligence,AI)之研究目的是通过探索智慧的实质,扩展人类智能——促使智能主体会听(语音识别、机器翻译等)、会看(图像识别、文字识别等)、会说(语音合成、人机对话等)、会思考(人机对弈、专家系统等)、会学习(知识表示,机器学习等)、会行动(机器人、自动驾驶汽车等)。一个经典的AI定义是:“ 智能主体可以理解数据及从中学习,并利用知识实现特定目标和任务的能力。”从技术层面来看,现在所说的人工智能技术基本上就是机器学习方面的(也就是,机器学习技术是入门AI的核心技术
2024-02-27 23:00:07
3376
原创 光速入门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
964
原创 23种计模式之Python/Go实现
设计模式是面对各种问题进行提炼和抽象而形成的解决方案。这些设计方案是前人不断试验,考虑了封装性、复用性、效率、可修改、可移植等各种因素的高度总结。它不限于一种特定的语言,它是一种解决问题的思想和方法。由于高级语言的出现,让机器读懂你的意图已经不是最主要的“矛盾”,而让人读懂你的意图才是最重要。按照设计模式编写的代码,其可读性也会大大提升,利于团队项目的继承和扩展。设计模式可以分为三个大类:创建类设计模式、结构类设计模式、行为类设计模式下面用一个图片来整体描述一下设计模式之间的关系:单例模式、工厂模式(简单工
2024-02-13 20:16:50
2510
2
原创 typing python 类型标注学习笔记
typing模块为Python带来了类型提示和类型检查的能力。它允许开发者在代码中添加类型注解,提高代码的可读性和可维护性。尽管Python是一种动态类型语言,但类型注解能让开发者更清晰地了解函数和变量的预期类型。备注:Python 运行时不强制要求函数与变量类型标注。它们可被 类型检查器、IDE、语法检查器等第三方工具使用。Type hints 即类型提示,是 Python 在 3.5 版本中加入的语法,并在 Python 3.6 基本可用。
2024-01-20 22:07:17
2594
原创 C语言基础光速入门笔记
C语言是一门面向过程的编译型语言,它的运行速度极快,仅次于汇编语言。C语言是计算机产业的核心语言,操作系统、硬件驱动、关键组件、数据库等都离不开C语言;不学习C语言,就不能了解计算机底层。C 语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。当前最新的 C 语言标准为 C18 ,在它之前的 C 语言标准有 C17、C11…C99 等。C语言出现的时候,已经度过了编程语言的拓荒年代,具备了现代编程语言的特性,但
2024-01-07 21:54:08
5573
2
原创 容器技术——Cgroup
物理机利用率上去了;服务器宕机了,所有应用都会宕机;需求:1. 把单台物理机的利用率提高;2. 把应用分散到逻辑上不同的主机中,应该做到不同应用的环境隔离,分离出不同职能的应用,如负责负载均衡,负责数据库…的应用虚拟化技术:为了同时满足上述两个需求,于是诞生了虚拟化技术,例如win下的vmware workstation,linux下的kvm,还有esxi、xen等;
2023-11-26 17:54:09
2221
原创 filebeat配置解析(待续)
每当队列中的数据缓存到一定的大小或者超过了定时的时间(默认1s),会被注册的client从队列中消费,发送至配置的后端。正常启动filebeat,一般确实只会占用3、40MB内存,但是偶发性的也会发现某些节点上的filebeat容器内存占用超过配置的pod limit限制(一般设置为200MB),并且不停的触发的OOM。所以,合理的配置日志文件的匹配规则,限制单行日志大小,根据实际情况配置memqueue缓存的个数,才能在实际使用中规避filebeat的内存占用过大的问题。
2023-11-22 23:52:03
4542
原创 GitHub项目监控——gitpython&go-git5操作git
对于常用Github的用户来说,经常有一些自动化的需求。比如监控某些项目的更新情况并实时拉取,比如监控github全网上传的代码是否携带了公司的APIKEY,SECRETKEY等…
2023-11-01 22:11:41
954
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
1065
原创 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
1300
原创 用go实现一个循环队列
在入队和出队的操作中,头尾指针只增加不减小,致使被删除元素的空间永远无法重新利用,因此,尽管队列中实际的元素个数远远小于向量空间的规模,但也可能由于尾指针巳超出向量空间的上界而不能做入队操作,该现象称为假溢出。队列有很多种,按照存储结构划分,有链式队列,循环队列,单向队列,双端队列。在队列的顺序存储结构中,除了用一组地址连续的存储单元依次存放从队列头到队列尾的元素之外,还需要设置头尾两个指针front和rear,分别指示队列头元素及队尾元素的位置。从队列中删除队头元素称为出队,其后继元素成为新的队头元素。
2023-09-09 12:12:52
589
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人