- 博客(92)
- 收藏
- 关注
原创 Linux systemd服务获取不到用户环境变量
在CLI中root下,执行java -jar xxx 正常。判定是环境变量导致的问题。在CLI中打印环境变量含有/usr/lib/jvm/java/bin。但是通过打印python程序获取到的环境变量没有java路径,导致执行失败。Linux上,root账户通过systemctl start 启动python服务,执行subprocess.run([‘java’, ‘-jar’, ‘xxx’])执行失败。愿你我都能在各自的领域里不断成长,勇敢追求梦想,同时也保持对世界的好奇与善意!
2026-03-26 08:09:03
190
原创 《领域驱动设计:软件核心复杂性应对之道》读后总结与思考
核心内容核心基础:协作与语言战略设计:应对复杂系统的架构战术设计:构建模型的基本构建块建模过程:重构与探索深入谈谈 聚合什么是聚合结合具体例子[电商订单]错误的设计(无聚合概念)正确的聚合设计聚合的核心原则(1)事务一致性边界:一个事务只修改一个聚合实例(2)通过标识引用,避免对象引用(3)聚合要小而精聚合 vs. 包/组件/模块总结。
2026-03-26 07:50:57
442
原创 vllm 多卡部署推理接口无响应(hanging ),后台GPU使用率一直100%
Ubuntu24.04.2物理机器 ,配置是两张A100 pcie接口(无nvlink),使用vllm0.17版本进行双卡部署32b模型,运行时出现推理接口无响应,后台GPU使用率一直100%,因此我用调小显存使用率和使用14b和1.5b小模型进行了实验,在单卡模式都可以正常运行并使用(分别指定了gpu0和1),但是加了参数–tensor-parallel-size 2后就会出现这个情况。已将共享内存调到高也不起作用。笔者这里不支持,设置NCCL_P2P_DISABLE=1,强制NCCL禁用P2P通信。
2026-03-19 11:58:38
429
原创 谈整洁架构的实践
整洁架构中,内外通信全靠接口,这是最具实践性的技术点。Input Port(入站接口): 定义在用例层。例如。实践: 外部的 Controller 不直接依赖 Service 实现类,而是依赖这个接口。这确保了 Controller 不知道业务逻辑是如何实现的。Output Port(出站接口): 也定义在用例层。例如。实践: 业务逻辑层(Service)不直接调用数据库 Repository 的具体方法,而是调用这个接口。数据库层的 Repository 实现类去实现这个接口。
2026-03-15 14:09:31
358
原创 FastAPI静态资源的挂载
性能:对于生产环境,通常建议使用专门的 Web 服务器(如 Nginx)或 CDN 来提供静态文件,而不是直接通过 FastAPI。路径优先级:FastAPI 按照路由注册的顺序匹配请求,因此静态文件路由应该在 API 路由之后注册,以免干扰 API 请求。通过合理配置这些参数,您可以有效地在 FastAPI 应用中提供静态文件服务,无论是传统的多页面应用还是现代的单页面应用。安全性:确保静态文件目录不包含敏感文件,或者通过适当的权限控制保护敏感文件。检查路由顺序:确保静态文件路由是最后注册的。
2026-02-25 14:47:32
763
原创 Faiss的学习和基本使用
FAISS(cpu,gpu)[Facebook AI Similarity Search]是针对海量稠密向量进行相似性搜索和聚类的一个高效类库。该开源库针对高维空间中的海量数据(稠密向量),提供了高效且可靠的相似性聚类和检索方法,可支持十亿级别向量的搜索,是目前最为成熟的近似近邻搜索库:官方资源地址https://github.com/facebookresearch/faiss1.它包含可搜索任意大小的向量集的算法,这些向量集的大小甚至都不适合RAM。2.它还包含用于评估和参数调整的支持代码。
2026-02-25 14:38:05
435
原创 Keepalived 实现 VIP的实践
快速故障检测:1-2秒内完成故障检测和转移业务感知:基于实际业务健康状态而非网络连通性精准控制:可以基于复杂的业务逻辑决定是否触发故障转移减少服务中断:大幅缩短故障恢复时间。
2026-02-25 14:36:34
918
原创 统信UOS V20离线安装二进制版MySQL
离线情况下,在统信V20系统上,安装Mysql。其最大的优势,完全绕过了系统的包管理器(无论是dpkg还是rpm),因此没有任何依赖问题。可以将它理解为一个“绿色版”或“便携版”的MySQL。只需要将其解压到合适的系统位置(如/usr/local),并进行一些初始化和配置即可使用。Mysql官网下载地址为:https://dev.mysql.com/downloads/mysql/愿你我都能在各自的领域里不断成长,勇敢追求梦想,同时也保持对世界的好奇与善意!在新的控制台执行以下命令。授权任意主机皆可访问。
2026-02-08 14:13:56
982
原创 软件工程结构型设计模式
软件工程中,设计模式提供了相关问题的解决方案,使得工程人员可以更加简单方便的复用成功的设计和体系结构。设计模式分为创建型,结构型,和行为型三大类。本文主要讲结构性设计模式。结构设型设计模式涉及如何组合类和对象以获得更大的结构。结构型设计模式分为适配器(Adapter),桥接(Bridge),组合(Composite),装饰(Decorator),外观(Facade),享元(Flyweight),代理(Proxy)。这里可以按照ABCD FFP。来进行简单顺序记忆。以下进行详细讲述。想象需要给手机充电,但的充
2026-01-31 15:01:26
704
原创 UML构造块中的关系梳理
实现是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。依赖是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义。泛化是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。多重度是关联上的一个重要约束,描述关联对象的数量关系。这是比聚合更强的关联。:公司 ◇—————员工。表示:扩展用例 -------------------------> 基用例。表示:基用例 -------------------------> 包含用例。
2026-01-27 14:02:45
637
原创 软件模块的内聚性
内聚性就是让一个软件模块“一心一意做好一件事”。这与面向对象设计原则的“单一职责”相呼应。低内聚:一个模块打几份工,混乱、脆弱。高内聚:每个模块都是专家,专注、稳定、可靠。“一个类(或函数)应该有且只有一个改变的理由。这就是高内聚在实践中的黄金准则。当发现一个模块因为各种不同的原因需要被修改时,就是时候考虑把它拆分成几个高内聚的模块了。愿你我都能在各自的领域里不断成长,勇敢追求梦想,同时也保持对世界的好奇与善意!
2026-01-15 09:52:26
607
原创 软件模块的耦合
在耦合谱系中的位置无直接耦合-> 2.数据耦合-> 3.标记耦合-> 4.控制耦合-> 5.外部耦合-> 6.公共耦合-> 7.内容耦合标记耦合处于中低水平。在现代面向对象编程中,它非常普遍(例如,传递一个对象作为参数),通常被认为是一种 “可接受的妥协” ,尤其是在模块边界清晰、且数据结构相对稳定的情况下。但它仍然是代码设计中需要警惕的信号,思考接口是否可以进一步精简。优秀的软件设计应致力于向数据耦合靠拢,使模块间的连接尽可能简洁、明确。控制耦合应该遵循单一职责原则进行分离。外部耦合。
2026-01-09 22:36:29
610
原创 利用NextCloud + OnlyOffice 内网搭建协作文档系统
为了便于公司内部多人文档的协作需求,现在需要搭建协作文档系统。采用NextCloud + OnlyOffice。其中NextCloud是文档,用户,权限的管理系统。OnlyOffice是文档(如word,excel)在线编辑的工具。系统使用Docker快速安装。其中需要nextcloud,onlyoffice/documentserver两个image。另外还需要数据库,可以使用sqllite,也可以使用mysql,本文不介绍数据库的安装。
2025-12-18 09:08:40
1268
原创 ROS2中用Python开发服务接口(二)
本文介绍了在ROS2中使用Python开发服务接口的最佳实践方法。主要内容包括: 自定义服务接口(srv)和消息(msg)的最佳实践是单独使用ament_cmake构建功能包,然后在业务功能包中引入。 详细说明了如何创建自定义srv/msg功能包: 创建工作目录和功能包 创建srv和msg目录结构 定义服务接口文件(.srv)和消息文件(.msg) 配置CMakeLists.txt和package.xml 编译构建 在其他功能包中引用自定义接口的方法,包括Python和C++两种方式。
2025-11-27 09:14:18
535
原创 ROS2中用Python开发服务接口(一)
WeatherQuery.srv:将的服务定义放在文件中。# 请求消息(客户端发送给服务端的参数)string city_name # 城市名称(必填,如 "Beijing")string country_code # 国家代码(可选,如 "CN",用于区分同名城市)---# 响应消息(服务端返回给客户端的结果)bool success # 查询是否成功(true=成功,false=失败)string message # 状态提示(如 "查询成功" 或 "未找到城市")
2025-11-27 09:11:38
778
原创 JAVA中JSch远程服务器访问实践
JSch 为 Java 开发者提供了强大而灵活的 SSH 连接能力。对于大多数自动化任务,是简单直接的选择。而当需要模拟复杂的手工操作流程时,则提供了必要的交互能力。同时,通过可以轻松实现安全的文件传输。愿你我都能在各自的领域里不断成长,勇敢追求梦想,同时也保持对世界的好奇与善意!
2025-11-17 09:26:12
769
原创 Vue 3 中 ref 和 reactive 的区别与使用场景
Vue 3 中 ref 和 reactive 是两种响应式处理方式,主要区别如下: ref 适用于所有数据类型,访问需要.value,支持重新赋值;reactive 仅适用于对象类型,直接访问属性,不支持重新赋值 在模板中,ref自动解包不需.value,reactive直接使用属性 使用场景: ref:基本类型、需要重新赋值的数组/对象 reactive:表单对象、相关联的配置组 解构时都需要使用toRefs保持响应式。
2025-11-06 16:18:12
552
原创 VUE3项目的创建
本文系统介绍了Vue 3项目的创建方法和工程化实践。详细对比了四种创建方式的特点和适用场景,包括官方推荐的create-vue、基于Vite的模板创建、传统Vue CLI以及在线工具。文章深入分析了Vite、Webpack和Rspack三大主流打包工具的核心差异,提供了项目结构对比和配置验证方法。针对不同项目需求,给出了打包工具选型建议:新项目推荐Vite以获得极致开发体验,大型现有项目可继续使用Webpack,对性能有极致追求的则可考虑Rspack。全文兼顾理论指导和实践参考,帮助开发者快速掌握Vue 3
2025-11-03 07:00:00
688
原创 稠密向量和稀疏向量
Milvus提供内置的全文搜索功能,使用BM25方法自动将文本转换为稀疏向量,无需手动预处理。BM25是传统统计技术的一种,它根据词在语料库中的频率和重要性为词分配权重。密集向量通常表示为连续数组,每个位置都有值(如[0.3,0.8,0.2,0.3,0.1]),而稀疏向量仅存储非零元素及其维度索引,通常表示为键值对。传统统计技术如TF-IDF(词频-逆文档频率)和BM25(最佳匹配25),根据词在语料库中的频率和重要性为词分配权重。稀疏向量是一种特殊的高维向量,其中大部分元素为零,只有少数维度具有非零值。
2025-10-24 16:06:42
373
原创 RAG向量数据库的选型与使用实践
RAG(Retrieval-Augmented Generation,检索增强生成)是一种将信息检索与大型语言模型相结合的技术,它通过从外部知识库中检索相关信息,然后让LLM基于这些信息生成回答,显著提高了回答的准确性和时效性。数据规模:小规模数据优先考虑Chroma,超大规模选择Milvus部署复杂度:快速原型开发选择Chroma或LanceDB,生产环境考虑Qdrant或Milvus功能需求。
2025-10-17 17:06:09
1004
原创 RAG的优化思路
优化一个RAG系统,是一个系统工程,绝非一蹴而就。分块策略确保了“原料”的精细度。Query优化确保了“问对问题”。多路召回重排确保了“找全且找准答案”。多模态则极大地扩展了系统的“知识边界和应用场景”。在生产环境中,这些策略往往是组合使用的。一个强大的RAG系统可能会采用“优化后的Query”进行“多路召回”,对包含“大小块”的候选集进行“重排”,并最终将文本、图表等多模态信息一并交给LLM生成最终答案。愿你我都能在各自的领域里不断成长,勇敢追求梦想,同时也保持对世界的好奇与善意!
2025-10-10 16:58:25
639
原创 代码设计之实现压缩文件的统一处理
摘要:本文介绍了一种通过接口多态实现不同压缩格式统一处理的代码设计方法。首先定义ArchiveEntry公共接口,然后为ZipEntry和TarArchiveEntry创建包装类实现该接口,最后通过List<ArchiveEntry>进行统一处理。这种设计具有解耦、易扩展、类型安全等优点,特别适用于需要处理多种压缩格式的场景。文章还提出了进一步优化的方向,如结合工厂模式和Stream API,并强调这种面向接口的编程思想是解决异构系统统一处理的通用范式。
2025-10-09 16:53:26
642
原创 LangChain框架中Agent类型的总体认识
追求与 OpenAI 模型的最佳集成和工具调用的准确性:create_openai_functions_agent或 create_tool_calling_agent是首选,尤其是 create_tool_calling_agent,它代表了更新的设计思路。需要模型推理透明化、使用非 OpenAI 模型或处理复杂推理任务:create_react_agent非常合适,它能提供清晰的决策链条。
2025-09-25 17:56:17
978
原创 解决 Vue SPA 刷新导致 404 的问题
这是一个非常常见的问题,当使用 Vue.js 等前端框架构建单页面应用(SPA)并在浏览器中刷新时,由于前端路由路径被直接发送到后端服务器,而服务器没有对应的路由处理,导致返回 404 错误。通过vue展示页面,在地址栏中会出现前端的地址导航栏,而用户点击浏览器中的刷新按钮时,浏览器会将地址栏中前端的导航路径发送get请求到后台,导致404。最常用的解决方案是在后端服务器配置中,将所有非 API 和非静态资源的请求都重定向到 Vue 应用的入口文件(通常是。
2025-09-18 16:53:05
442
原创 GPT与BERT BGE
它通过大规模无监督预训练学习语言统计规律,并能生成连贯、自然的文本,广泛应用于文本创作、对话系统、问答、翻译、摘要生成等多个领域。:BERT 在预训练时,会随机遮盖输入文本中的一些词元(Token),然后让模型根据上下文来预测这些被遮盖的词。这个过程迫使模型学习词汇深层的双向上下文表示,而不仅仅是单向的(像之前的 GPT)。它在许多权威的嵌入模型评测榜单(如 MTEB)上,尤其是在中文任务中,表现非常出色。,使得语义相似的文本在向量空间中的距离更近,从而提升检索、聚类、语义相似度计算等任务的性能。
2025-09-11 09:46:13
829
原创 AI中的“预训练”是什么意思
总而言之,Transformer中的“预训练”是一个让模型在大规模数据上预先学习通用知识和特征表示的基础阶段。它为模型后续高效地适应各种下游任务奠定了坚实的基础,是现代AI领域一项非常核心和强大的技术范式。愿你我都能在各自的领域里不断成长,勇敢追求梦想,同时也保持对世界的好奇与善意!
2025-09-09 17:27:27
420
原创 量化模型部署工具llama.cpp
llama.cpp 是一个强大而高效的工具,它极大地降低了大语言模型的使用门槛。它的核心优势在于量化和纯C++实现,使得在消费级硬件上进行推理成为现实。下载 GGUF 格式的量化模型(如从 TheBloke 处)。获取 预编译 的main可执行文件。通过命令行或 Python API 进行推理。对于任何想在本地运行大模型的人来说,llama.cpp几乎都是首选方案。
2025-08-28 13:28:24
1209
原创 AI生态中的常用名词学习整理
适应模型输入:大多数深度学习模型要求输入数据是数值型的向量形式。Model Hub (模型中心):一个像 GitHub 一样的仓库,托管了超过几十万个由社区共享的预训练模型(包括 Transformers 格式和 很多其他格式的模型)。功能:它的核心任务是将人类熟悉的、连续的自然语言文本,拆分成模型能够处理的、离散的基本单元(tokens),并将其转换为数值ID。影响模型性能:Tokenizer的选择直接影响模型的词汇量、处理未登录词的能力和输入序列的长度,进而影响模型的表达能力、泛化能力和计算效率。
2025-08-21 13:05:59
763
原创 Infinity Embeddings容器化多模型服务部署
Infinity Embeddings是一个开源的企业级嵌入模型服务框架,提供OpenAI兼容API、多模型并行支持和硬件优化功能,特别适合需要兼顾性能与隐私的RAG应用场景。本文详细介绍了其容器化部署方案,包括Docker原生部署和Compose编排两种方式,并提供了多模型管理、性能调优以及LangChain集成的实践指南。相比SaaS服务,Infinity在数据隐私、延迟和成本方面具有显著优势,尤其适合金融、医疗等合规要求高的领域。
2025-08-19 13:39:24
1164
原创 大模型级部署方案
本文系统解析了大模型(LLM、Embedding、Rerank)的标准化部署方案,涵盖从本地轻量化到云原生的全场景实践。重点对比了Ollama本地部署与vLLM集群方案的技术特点,详细介绍了Embedding模型的容器化实践和Rerank模型在RAG中的关键作用。针对不同规模企业,提供了云平台选型指南和部署决策树,并给出量化压缩、缓存策略等优化技巧。文章指出,未来混合部署模式(关键业务本地化+通用能力上云)仍是平衡安全与成本的最优解,随着技术进步,消费级设备运行百亿模型将成为可能。
2025-08-19 13:36:35
1429
原创 Streamlit:快速构建数据应用的 Python 框架
摘要: Streamlit 是一个开源的 Python 框架,专为快速构建交互式数据应用而设计。它允许数据科学家无需前端知识,仅用 Python 代码就能创建 Web 应用,支持实时预览和丰富的数据可视化组件。
2025-08-07 13:21:17
787
原创 基于规则架构风格对业务的重构
本文探讨了基于规则的架构风格在业务系统中的应用,通过将业务逻辑从代码中抽离为独立规则文件,提高系统可维护性。文章介绍了Java和Python生态中的主流规则引擎,重点分析了ZEN Engine这一跨平台开源规则引擎的特点。ZEN Engine采用JSON格式定义规则,支持Python/Go/NodeJS集成,通过案例演示了如何实现电商折扣规则管理。文章指出这种方案相比硬编码方式更符合开闭原则,能有效应对频繁变化的业务需求,同时提供了ZEN Engine的实践指南和官方资源参考。
2025-07-24 16:43:24
801
原创 MCP Server构建方式
MCP是一种开发协议,皆在标准化LLM大模型与外部工具,数据源之间的通信。它如同“AI界的USB-C接口”, 统一了智能体与外部资源的交互方式,是智能体的“万能工具手”。Higress是一款云原生 API 网关,其内核基于Istio和Envoy。它可以使用 Go、Rust、JS 等编写 Wasm 插件,并提供了数十个现成的通用插件以及开箱即用的控制台。对于简单小型的项目,可以直接采用相关兼容技术栈实现MCP服务,避免在架构中引入Higress,增加管理复杂度。
2025-07-17 06:45:38
849
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2