- 博客(56)
- 收藏
- 关注
原创 【大模型开发】Langchain:为大模型应用提供通用接口,简化应用程序的开发流程
摘要:LangChain是一个开源框架,旨在简化基于大型语言模型(LLM)的应用程序开发。其核心组件包括模型交互接口、数据连接、处理链、记忆存储、代理工具和回调机制,支持Python和JavaScript。最新v0.3版本改进了架构设计,增强了可观察性和流式处理能力,提供700+技术集成。LangChain生态系统包含核心库、CLI工具、部署服务和开发者平台,支持从开发到部署的全流程。该框架特别适合构建检索增强生成(RAG)等复杂应用,通过模块化设计简化了LLM与外部数据和工具的集成。
2026-01-13 16:45:44
630
原创 云服务器ECS 2GB内存太小总是爆满崩溃解决办法
【摘要】在低内存服务器(1-2GB)使用VSCode打开.py文件时,Pylance插件的内存消耗会触发Linux的OOMKiller机制导致连接中断。通过free-h或top命令可验证内存不足问题。解决方案是创建2GB的Swap虚拟内存:依次执行dd创建交换文件、设置权限、格式化并启用Swap,最后配置开机自动挂载。该方法能有效解决内存不足导致的连接中断问题,使小内存服务器稳定运行VSCode。
2026-01-13 14:42:51
258
原创 Streamlit:快速创建应用界面,无需了解 Web 开发
Streamlit是一个开源Python库,用于快速构建交互式数据应用,无需前端开发知识。它提供简洁API(如st.write()、st.dataframe())来展示文本、图表和表格,并通过st.slider()等组件实现交互功能。安装只需pip install streamlit,运行应用使用streamlit run app.py命令。特色包括实时重载、侧边栏布局和缓存优化(@st.cache_data)。相比传统Web框架,Streamlit能以纯Python脚本快速创建可视化应用,适合数据分析和机
2026-01-12 20:10:48
675
原创 【大模型】向量数据库:Chroma、Weaviate、Qdrant
本文分析了三种主流向量数据库的特点与适用场景。向量数据库专为高维向量数据设计,支持高效存储、索引和相似度检索。Chroma定位轻量级Python优先,适合原型开发和教学;Weaviate强调混合搜索功能,适用于高质量语义检索;Qdrant以性能优先,适合高并发生产环境。选型建议:快速原型选Chroma,复杂搜索选Weaviate,高性能需求选Qdrant。不同场景下各系统在搜索范式、并发能力和运维复杂度等方面各有侧重。
2026-01-08 16:34:15
733
原创 【大模型】RAG&向量数据库
这张图最精髓的地方在于中间那个圆柱体——向量数据库。它左边连着用户的查询。它右边连着知识库的存储。它是连接“用户需求”和“私有知识”的桥梁,通过向量化(Embedder)让两者在数学空间中相遇,最后由 LLM 完成漂亮的各种语言输出。
2026-01-08 15:42:38
468
原创 从零开始安装到精通的 Jupyter Notebook 完整教程
摘要:Jupyter Notebook是基于Web的交互式计算环境,支持实时代码、可视化和文档编写。安装步骤包括通过pip安装和启动服务。核心功能包括代码单元格(运行Python代码)和Markdown单元格(编写文档),通过快捷键高效操作。常用快捷键分为代码执行、单元格管理和导航控制三类,如Shift+Enter运行代码、Esc切换模式等。建议通过创建Notebook、转换单元格类型等实战练习巩固操作。
2026-01-08 11:38:55
890
原创 【GNN】图神经网络入门笔记:核心、架构、应用
本文系统阐述了图神经网络(GNN)的核心原理与实现方法。首先介绍了图数据的两个核心矩阵:特征矩阵X表示节点属性,邻接矩阵A描述拓扑结构。重点讲解了消息传递范式,包括邻居信息聚合与更新机制。随后详细分析了GCN的数学实现,将其分解为特征变换和结构传播两个步骤,并指出其全图依赖的局限性。针对这一问题,GraphSAGE采用邻居采样和特征拼接策略,通过固定采样数量实现可扩展性。最后探讨了mini-batch训练中的邻居加载器和层级计算图,解释了如何通过分层依赖实现高效计算。全文从理论基础到工程实现,完整呈现了GN
2025-11-25 16:39:24
600
原创 【机器学习】线性回归
线性回归模型由三大核心组件构成:1) 模型表达式Y=XW,假设输入输出为线性关系;2) 均方误差(MSE)损失函数,最小化预测误差平方和;3) 最小二乘法求解,通过伪逆矩阵X^+直接计算最优参数W。实际应用中,特征矩阵X需添加常数项以包含截距。Python实现可通过numpy手动计算(X^TX)^(-1)X^TY,或调用sklearn的LinearRegression自动拟合。该模型通过寻找最佳线性超平面,使预测值与真实值的垂直距离最小化。
2025-08-21 15:26:01
544
原创 MDP(马尔可夫决策过程)与 RL(强化学习)
你可以把 MDP 想成一个游戏规则系统。状态 State (s):游戏当前的局面。动作 Action (a):玩家能做的选择。状态转移 Transition (P):当你做了动作 a,游戏会以一定概率转移到新的状态 s′。奖励 Reward (r):这一步动作会给你一个分数,可能正可能负。公式上记作:这里的t就是时间步。👉 举个生活例子:你玩“迷宫逃脱”——状态 s= 你现在的位置。动作 a= 向上/下/左/右走。转移 P= 如果墙挡住了,你就原地不动;否则走到新格子。奖励 r。
2025-08-20 16:01:02
485
1
原创 【后端】struct.pack()
I就是 4 字节无符号整型(uint32)Q就是 8 字节无符号整型(uint64)H是 2 字节无符号整型(uint16)加是小端,加是大端packunpack。
2025-08-11 15:52:15
560
原创 【后端】FastAPI的Pydantic 模型
你可以把 Pydantic 理解成“接口数据说明书”。当别人调用你的接口时,FastAPI 用它来帮你检查数据合法性 ✅当你返回数据给别人时,FastAPI 用它来帮你自动生成标准 JSON 📦。
2025-07-23 16:56:13
382
原创 【后端】 FastAPI
API 就是别人(客户端)通过URL 请求,你(服务器)给他数据的接口。FastAPI 会帮你处理这段请求,然后你写代码告诉它怎么响应(比如生成一个 JWT 令牌,返回给客户端)。
2025-07-23 16:53:40
688
原创 【vscode】vscode中python虚拟环境的创建
运行了activate后,最前面有(.venv)的标识,意思是激活成功,接下来的操作都在该虚拟环境中运行。②新建一个终端,注意不是默认的powershell,①打开vscode,进入你的工作文件夹。
2025-07-22 16:51:43
388
原创 【扩散模型】正向扩散过程(Forward Diffusion)
这说明我们对上一步的图像进行缩放(<1),意思是“保留一部分原图内容”。就像你用 Photoshop 滤镜一点点“模糊”一张照片。这就是实际 PyTorch 实现中最核心的一行代码。Diffusion Model(扩散模型)是一类。学会从噪声中一步步“去噪”还原出原始数据。的经典形式:当前状态只依赖于上一个状态。),再撒一层噪声粉末(加高斯噪声)”。是一个正态分布随机变量”。把数据逐步加噪变成纯噪声,的基础上加噪声得到的。这中间的每一步,都是基于。“在给定上一时刻图像。得到的,而公式就是在。
2025-06-23 16:25:11
629
原创 【深度学习】深度学习中的张量:从多维数组到智能计算单元
项目内容张量定义通用的n维数组与NumPy区别支持GPU & 自动微分关键能力高效计算 + 梯度追踪应用场景模型输入/输出/参数的基础单位。
2025-06-11 20:04:43
656
原创 【js】JavaScript的变量提升、函数声明提升
JavaScript中的变量提升(Hoisting)是指在代码执行前,变量和函数的声明会被提升到当前作用域的顶部。对于var声明的变量,只有声明会被提升,赋值不会,因此访问未赋值的变量会返回undefined。函数声明会被整体提升,而函数表达式则不会。let和const虽然也会被提升,但在初始化前访问会触发暂时性死区(TDZ),导致报错。建议在新项目中使用let和const,避免使用var,并将变量声明放在使用之前,以提高代码的清晰度和可维护性。函数提升是JavaScript特有的行为,其他语言如Pytho
2025-05-15 17:18:42
1068
原创 【verilog】Verilog 工程规范编码模板
多个 if-else 控制一个变量时,一定要确保是互斥的,或统一组合后赋值。状态机推荐三段式写法(状态跳转 + 状态寄存器 + 输出逻辑分离)尽量避免推测 latch(即组合逻辑中没有默认值)<='(非阻塞赋值)
2025-04-17 10:38:00
654
原创 【verilog】多个 if 控制同一个变量 是否不是标准的语言规范,标准的语言规范应该如何写?
在 RTL 中,同一个变量最好只赋值一次,并通过互斥的结构(if-else / case)来清晰表达优先级和行为。
2025-04-17 09:57:29
547
原创 【verilog】多个 if 控制同一个变量(后面会覆盖前面)非阻塞赋值真的并行吗?
即使两个赋值语句都在非阻塞、在行为上并行,它们还是描述了两个竞争的硬件连接,Verilog 编译器不可能自动帮你“合并”这两个赋值。所以。
2025-04-17 09:53:31
815
1
原创 【verilog】在同一个 always 块中写了多个“看起来独立”的 if / if-else,到底谁先谁后,怎么执行?会不会冲突?
情况行为说明多个 if 控制不同变量并行谁条件满足谁执行,互不干扰多个 if 控制同一个变量顺序后面赋值覆盖前面if/else + case 控制同一变量顺序+可能冲突后面的 case 会覆盖前面 if 的赋值插入打拍语句合法不影响并行结构,但要注意覆盖风险多个嵌套 if按照语句顺序但并不表示电路是串行运行,是条件表达上的判断顺序。
2025-04-17 09:51:48
1536
原创 【verilog】always @(*) 是Verilog 中写组合逻辑
写法意义说明自动组合逻辑块推荐写法手动列出敏感变量容易出错,不推荐时序逻辑(有寄存器)用于时钟驱动逻辑。
2025-04-17 09:48:34
2097
原创 【计算机系统概论】冯·诺依曼瓶颈现在是怎么解决的?现在用的计算机架构是什么样的?
(让 CPU 并行处理不同阶段)(多个计算单元并行处理指令)(多个 CPU 并行计算)(指令和数据分开存储)(提前猜测执行路径)
2025-03-19 19:57:51
1676
原创 【计算机系统概论】计算机框架是什么?冯诺依曼架构为什么重要?我们要记住冯·诺依曼架构的什么?
冯·诺依曼架构就是计算机最基础的一种“工厂运作方式”,今天大多数计算机仍然在这个基础上运行。如果没有冯·诺依曼架构,我们今天可能没有智能手机、个人电脑,也不会有灵活的软件开发。虽然现代计算机有很多优化(比如缓存、流水线、并行处理),但本质上还是基于这个架构。你可以把冯·诺依曼架构想象成计算机的“基础设计图”,它定义了计算机。可以理解成是计算机的大脑结构,它决定了一台计算机的工作方式。:程序像数据一样存储在内存中,计算机可以执行不同的任务。在学习计算机时,你需要掌握冯·诺依曼架构的。如果把计算机比作一个。
2025-03-19 19:56:34
818
原创 【linux】用SSH连接服务器进行通信
SSH(Secure Shell)是一个用于安全远程登录的协议,它允许用户通过加密的连接远程访问和管理计算机。它通常用于Linux、macOS和其他类Unix操作系统中的远程管理。:这个是命令的基础部分,表示你希望使用SSH协议进行连接。:这是你在远程计算机上的用户名。你需要提供一个有效的用户名才能登录到目标服务器。例如,如果远程计算机上你的用户名是user1,那么就用user1替换这个部分。:这是你希望连接的远程服务器的名称或IP地址。如果你知道服务器的IP地址(例如),可以直接使用它;
2025-03-18 16:34:33
597
原创 【linux】获取内核kernel镜像文件(Image)
这样,你就得到了一个 QEMU 可用的 Image。如果你想运行完整的 Linux 发行版(如。是专门用于查看和提取虚拟机磁盘内容的工具。运行 QEMU 虚拟机!目录中的内核和设备树。首先,下载官方提供的。如果你的模拟目标需要。
2025-03-18 15:48:37
1541
原创 【qemu虚拟机】让 firefly 通过 WSL 上网
通过firefly和wsl的网段查询到ip地址。是 Windows 主机的 IP(用。出现下图就是打开firefly虚拟机了。再win+R,输入cmd打开。输入命令wsl,打开wsl。
2025-03-18 15:37:18
288
原创 【WSL】创建新的用户
如果你希望 WSL 启动时默认使用新创建的用户,而不是 root,可以编辑。如果你已经是 root 用户,可以直接执行命令;系统会提示你设置该用户的密码,并填写一些信息(可以按回车跳过)。这样,你就成功创建了一个新用户,并可以在 WSL 中使用它了!切换到 root 用户。然后,重新启动 WSL。
2025-03-17 16:05:35
1244
原创 【WEB开发】Flask的request对象获取HTTP请求的数据
方法功能常见fetchHeaders 和 Bodyget_data()获取原始请求体(bytesget_json()获取 JSON 数据并解析为字典form获取表单数据args获取查询字符串参数URL?key=valuefiles获取上传文件对象json获取 JSON 数据同get_json()values获取表单和查询参数的组合混合 GET/POST 请求headers获取请求头cookies获取客户端 Cookiestream流式读取请求体。
2024-12-05 15:24:23
1978
原创 【WEB开发.js】获取文件名后缀filetype = file.name.slice(-3);
file.namefileFilefile.namephoto.jpgslice(-3)slice()-3filetype =filetypefiletype.html.pngREADME使用更可靠的方式来获取扩展名,比如通过分隔符。
2024-12-05 14:57:58
601
原创 【WEB开发.js】addEventListener事件监听器的绑定和执行次数的问题(小心踩坑)
假设我们有一个按钮,用户点击该按钮后,会选择一个文件,且我们希望每次点击按钮时只触发一次文件处理。下面我会给你一个简单的例子,展示放在函数内部和放在函数外部的区别。
2024-12-03 17:33:38
646
原创 【WEB开发.js】HTTP请求和相应报文的头字段:Content-Type (巨巨巨巨详细好懂的举例详解)
是 HTTP 请求和响应报文中的头字段之一,用于指定发送的数据类型(MIME 类型)。它告诉服务器或客户端数据的格式,方便接收方正确解析和处理内容。例如,在发送 JSON 数据时,会指定;而发送 HTML 页面时,则会指定。
2024-12-03 16:02:13
1323
原创 【WEB开发】表单处理 — HTML:<form> + js:FormData fetch + python flask: @app.route(..)
的配合可以极大简化前端数据发送的代码,后端可以通过 Flask 提取数据,完成实际的业务逻辑处理。通过以上示例,可以看到。
2024-12-02 13:38:11
577
原创 【WEB开发.js】JavaScript 的文件处理 API
是一个内置的 JavaScript 对象,用于异步读取文件内容,常用于读取用户通过。的一个事件,用于指定读取文件完成后应该执行的操作。读取,读取的结果会是一个字符串。或拖放方式选择的文件。
2024-11-28 11:59:26
508
原创 【WEB开发.js】getElementById :通过元素id属性获取HTML元素
是 JavaScript 中常用的一个 DOM 方法,用于通过元素的id属性获取文档中对应的 HTML 元素。这个方法返回的是一个包含该元素的引用,如果没有找到指定的元素,则返回null。
2024-11-25 14:54:54
2469
原创 【WEB开发.js】FileReader对象的常用事件
常用的FileReaderonload:文件读取成功。onerror:文件读取失败。onprogress:文件读取进度。onabort:文件读取被中止。:文件读取开始。onloadend:文件读取结束(不论成功或失败)。这些事件可以根据不同的需求来监听,确保你能够处理各种文件读取情况。
2024-11-25 14:41:26
556
原创 【WEB开发.js】function(e) :事件处理函数
这个对象包含了关于事件的详细信息,比如哪个元素触发了事件、事件的类型等。作为事件对象,提供了关于该事件的相关信息。这行代码设置了一个事件监听器,它会在。获取了文件输入框中选择的第一个文件。,包含了触发事件时的文件相关信息。是一个回调函数,用来处理。
2024-11-25 14:30:50
528
原创 【WEB开发.js】addEventListener(‘change‘, ...)监听文件选择事件详解
是处理文件输入的关键,用于响应用户选择文件的操作。),可以轻松实现文件读取、类型验证、大小过滤等功能。指向触发事件的元素,即。
2024-11-25 13:55:04
1178
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅