- 博客(73)
- 收藏
- 关注
原创 harness-实例
根指令文件。agent 每次开工会先读这个文件。它定义了工作规则:写代码前要做什么、工作过程中怎么守规矩、收尾时要检查什么。用AGENTS.md给 Codex 或其他 agent。用CLAUDE.md给 Claude Code——内容一样,格式按 Claude 的指令风格来的。
2026-08-19 14:02:44
214
原创 all in rag 检索优化 03
在前面我们就提到根据实际应用,需要自己进行一些功能的实现。这里以 ColBERT 为例,展示如何集成未被官方支持的功能。从官方文档出发:首先,通过 LangChain 官方文档,了解到可以通过来组合多个压缩器和文档转换器。需求缺口:希望使用 ColBERT 模型进行重排,但发现 LangChain 并没有内置的ColBERT重排器。分析示例与源码:回头分析的用法和源码。我们发现,其处理逻辑分为两步:首先使用获取原始文档,然后将这些文档交给进行压缩或重排。
2026-08-10 15:27:07
242
原创 all in rag 检索优化 02
,它只能生成,不能生成。在前面的章节中,我们探讨了如何通过向量嵌入和相似度搜索来从非结构化数据中检索信息。然而,在实际应用中,我们常常需要处理更加复杂和多样化的数据,包括结构化数据(如SQL数据库)、半结构化数据(如带有元数据的文档)以及图数据。用户的查询也可能不仅仅是简单的语义匹配,而是包含复杂的过滤条件、聚合操作或关系查询。正是应对这一挑战的关键技术。它利用大语言模型(LLM)的强大理解能力,将用户的自然语言查询“翻译”成针对特定数据源的结构化查询语言或带有过滤条件的请求。
2026-08-07 11:21:27
322
原创 al in rag - 索引构建 - 02
在RAG系统中,常常面临一个权衡问题:使用小块文本进行检索可以获得更高的精确度,但小块文本缺乏足够的上下文,可能导致大语言模型(LLM)无法生成高质量的答案;当一个查询可能只与其中一两个文档相关时,在整个文档库中进行无差别的向量搜索,不仅效率低下,还容易被不相关的文本块干扰,导致检索结果不精确。该技术巧妙地结合了两种方法的优点:它在检索时聚焦于高度精确的单个句子,在送入LLM生成答案前,又智能地将上下文扩展回一个更宽的“窗口”,从而同时保证检索的准确性和生成的质量。,即该句子原文中的前N个和后N个句子。
2026-07-31 17:38:53
244
原创 all in rag - 索引构建-01
向量嵌入(Embedding)是一种将真实世界中复杂、高维的数据对象(如文本、图像、音频、视频等)转换为数学上易于处理的、低维、稠密的连续数值向量的技术。Embedding 的真正意义在于,它产生的向量不是随机数值的堆砌,而是对数据的数学编码。RAG 的“检索”环节通常以基于 Embedding 的语义搜索为核心。通用流程如下:(1):将知识库内文档切分后,使用 Embedding 模型将每个文档块(Chunk)转换为向量,存入专门的向量数据库中。(2):当用户提出问题时,使用。
2026-07-31 11:00:30
163
原创 all in rag - 数据准备
最后,根据识别出的所有断点位置,将原始的句子序列进行切分,并将每个切分后的部分内的所有句子合并起来,形成一个最终的、语义连贯的文本块。: 这种两阶段的分块方法,既保留了文档的宏观逻辑结构(通过元数据),又确保了每个块的大小适中,是处理结构化文档进行RAG的理想方案。)来确定一个动态阈值。这种元数据为每个块提供了精确的“地址”,极大地增强了上下文的准确性,让大模型能更好地理解信息片段的来源和背景。2,当LLM处理非常长的、充满大量信息的上下文时,它倾向于更好地记住开头和结尾的信息,而忽略中间部分的内容。
2026-07-29 16:47:31
293
原创 mondoDB安全认证
默认情况下,MongoDB实例启动运行时是没有启用用户访问权限控制的,也就是说,在实例本机服务器上都可以随意连接到实例进行各种操作,MongoDB不会对连接客户端进行用户验证,这是非常危险的。mongodb官网上说,为了能保障mongodb的安全可以做以下几个步骤:1)使用新的端口,默认的27017端口如果一旦知道了ip就能连接上,不太安全。2)设置mongodb的网络环境,最好将mongodb部署到公司服务器内网,这样外网是访问不到的。公司内部访问使用vpn等。3)开启安全认证。
2025-07-17 17:53:03
922
原创 mongoDB分片集群
分片(sharding)是一种跨多台机器分布数据的方法, MongoDB使用分片来支持具有非常大的数据集和高吞吐量操作的部署。换句话说:分片(sharding)是指将数据拆分,将其分散存在不同的机器上的过程。有时也用分区(partitioning)来表示这个概念。将数据分散到不同的机器上,不需要功能强大的大型计算机就可以储存更多的数据,处理更多的负载。具有大型数据集或高吞吐量应用程序的数据库系统可以会挑战单个服务器的容量。例如,高查询率会耗尽服务器的CPU容量。
2025-07-17 16:55:39
1217
原创 mondoDB副本集的选举和故障处理
MongoDB在副本集中,会自动进行主节点的选举,主节点选举的触发条件:1) 主节点故障2) 主节点网络不可达(默认心跳信息为10秒)3) 人工干预(rs.stepDown(600))一旦触发选举,就要根据一定规则来选主节点。选举规则是根据票数来决定谁获胜:票数最高,且获得了“大多数”成员的投票支持的节点获胜。“大多数”的定义为:假设复制集内投票成员数量为N,则大多数为 N/2 + 1。例如:3个投票成员,则大多数的值是2。
2025-07-17 11:18:52
1034
原创 mongoDB集群
副本集有两种类型三种角色两种类型:主节点(Primary)类型:数据操作的主要连接点,可读写。次要(辅助、从)节点(Secondaries)类型:数据冗余备份节点,可以读或选举。三种角色:主要成员(Primary):主要接收所有写操作。就是主节点。副本成员(Replicate):从主节点通过复制操作以维护相同的数据集,即备份数据,不可写操作,但可以读操作(但需要配置)。是默认的一种从节点类型。仲裁者(Arbiter):不保留任何数据的副本,只具有投票选举作用。
2025-07-16 20:06:15
743
原创 mongodb索引
索引支持在MongoDB中高效地执行查询。如果没有索引,MongoDB必须执行全集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的文档。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。如果查询存在适当的索引,MongoDB可以使用该索引限制必须检查的文档数。索引是特殊的数据结构,它以易于遍历的形式存储集合数据集的一小部分。索引存储特定字段或一组字段的值,按字段值排序。索引项的排序支持有效的相等匹配和基于范围的查询操作。
2025-07-15 19:47:00
692
原创 mongoDB安装初始化及简单介绍
MongoDB的最小存储单位就是文档(document)对象。文档(document)对象对应于关系型数据库的行。数据在MongoDB中以BSON(Binary-JSON)文档的格式存储在磁盘上。BSON(Binary Serialized Document Format)是一种类json的一种二进制形式的存储格式,简称Binary JSON。BSON和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。
2025-07-15 16:16:18
364
原创 mysql工具 pt-table安装及使用
pt-table-sync 是一个命令行工具,可以同步主从库上的数据,使它们保持一致。它有两种模式:检查模式和执行模式。检查模式只是显示需要执行的 SQL 语句,但不实际执行。执行模式则会真正地执行 SQL 语句,来修复数据不一致的问题。检查配置好的主从的库的表中有数据差异。
2025-04-21 15:09:36
574
原创 k8s--安全认证
Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对Kubernetes的各种客户端进行认证和鉴权操作。客户端:一般是独立于kubernetes之外的其他服务管理的用户账号。:kubernetes管理的账号,用于为Pod中的服务进程在访问Kubernetes时提供身份标识。认证、授权与准入控制ApiServer是访问及管理资源对象的唯一入口。Authentication(认证):身份鉴别,只有正确的账号才能够通过认证。
2024-09-13 21:43:54
1298
原创 k8s--数据存储
在前面已经提到,容器的生命周期可能很短,会被频繁地创建和销毁。那么容器在销毁时,保存在容器中的数据也会被清除。这种结果对用户来说,在某些情况下是不乐意看到的。为了持久化保存容器的数据,kubernetes引入了Volume的概念。Volume是Pod中能够被多个容器访问的共享目录,它被定义在Pod上,然后被一个Pod里的多个容器挂载到具体的文件目录下,kubernetes通过Volume实现同一个Pod中不同容器之间的数据共享以及数据的持久化存储。
2024-09-13 20:42:50
1008
原创 k8s--Ingress
在前面课程中已经提到,Service对集群之外暴露服务的主要方式有两种:NotePort和LoadBalancer,但是这两种方式,都有一定的缺点:- NodePort方式的缺点是会占用很多集群机器的端口,那么当集群服务变多的时候,这个缺点就愈发明显- LB方式的缺点是每个service需要一个LB,浪费、麻烦,并且需要kubernetes之外设备的支持。
2024-09-12 15:08:03
601
原创 k8s--service
在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,这也就意味着不方便直接采用pod的ip对服务进行访问。 为了解决这个问题,kubernetes提供了Service资源,Service会对提供同一个服务的多个pod进行聚合,并且提供一个统一的入口地址。通过访问Service的入口地址就能访问到后面的pod服务。
2024-09-12 13:39:42
830
原创 k8s--pod控制器--2
在前面的课程中,我们已经可以实现通过手工执行命令实现Pod扩容或缩容,但是这显然不符合Kubernetes的定位目标--自动化、智能化。Kubernetes期望可以实现通过监测Pod的使用情况,实现pod数量的自动调整,于是就产生了Horizontal Pod Autoscaler(HPA)这种控制器。HPA可以获取每个Pod利用率,然后和HPA中定义的指标进行对比,同时计算出需要伸缩的具体值,最后实现Pod的数量的调整。
2024-09-11 18:23:37
1499
原创 k8s--pod控制器--1
Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类:自主式pod:kubernetes直接创建出来的Pod,这种pod删除后就没有了,也不会重建控制器创建的pod:kubernetes通过控制器创建的pod,这种pod删除了之后还会自动重建什么是Pod控制器Pod控制器是管理pod的中间层,使用Pod控制器之后,只需要告诉Pod控制器,想要多少个什么样的Pod就可以了,它会创建出满足条件的Pod并确保每一个Pod资源处于用户期望的目标状态。
2024-09-11 13:32:00
1438
原创 k8s--pod--2
我们一般将pod对象从创建至终的这段时间范围称为pod的生命周期,它主要包含下面的过程:- pod创建过程- 运行初始化容器(init container)过程- 运行主容器(main container) - 容器启动后钩子(post start)、容器终止前钩子(pre stop) - 容器的存活性探测(liveness probe)、就绪性探测(readiness probe)- pod终止过程在整个生命周期中,Pod会出现5种**状态**(**相位**),分别如下:- 挂起(Pending):a
2024-09-10 23:29:14
1261
原创 k8s--Pod--1
每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类:用户程序所在的容器,数量可多可少Pause容器,这是每个Pod都会有的一个,它的作用有两个:可以以它为依据,评估整个Pod的健康状态可以在根容器上设置Ip地址,其它容器都此Ip(Pod IP),以实现Pod内部的网路通信这里是Pod内部的通讯,Pod的之间的通讯采用虚拟二层网络技术来实现,我们当前环境用的是Flannel。
2024-09-09 22:26:11
1384
原创 k8s--实战入门
Namespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现或者。默认情况下,kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中,可能不想让两个Pod之间进行互相的访问,那此时就可以将两个Pod划分到不同的namespace下。kubernetes通过将集群内部的资源分配到不同的Namespace中,可以形成逻辑上的"组",以方便不同的组的资源进行隔离使用和管理。
2024-09-09 16:25:17
1227
原创 k8s--资源管理
YAML是一个类似 XML、JSON 的标记性语言。它强调以数据为中心,并不是以标识语言为重点。因而YAML本身的定义比较简单,号称"一种人性化的数据格式语言"。<heima></heima>heima:age: 15YAML的语法比较简单,主要有下面几个:大小写敏感使用缩进表示层级关系缩进不允许使用tab,只允许空格( 低版本限制 )缩进的空格数不重要,只要相同层级的元素左对齐即可'#'表示注释YAML支持以下几种数据类型:纯量:单个的、不可再分的值。
2024-09-09 08:48:19
1411
原创 ansible--role
roles是ansible,playbooks的目录的组织结构,将代码或文件进行模块化,成为roles的文件目录组织结构。易读,代码可冲哟美好,层次清晰。
2024-09-07 13:02:50
555
原创 Ansible
ansible连接主机主要是通过ssh,如果配置免密,就不需要输入密码或在/etc/ansible/hosts 中加入密码,在这个配置文件中,也可以直接写server2,server3。如果不在/etc/ansible/hosts中的ip,使用ansible是没有用的。ansible内部变量可以帮助我们简化主机清单的设置,可以简化配置时有相同的配置。帮助 ansible-doc steup。帮助 ansible-doc fetch。帮助 ansible-doc yum。把主机中的某个文件发送到其他主机。
2024-09-05 20:01:13
822
原创 shell编程--函数
Shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回,return只能用来返回整数值。$*:函数的全部参数,参数之间使用变量$IFS值的第一个字符分隔,默认为空格,但是可以自定义。Shell 函数的变量不像其它语言中需要在变量前定义变量类型什么的,更没有结果符号等。函数的参数变量,与脚本参数变量是一致的。如果函数的参数多于9个,那么第10个参数可以用${10}的形式引用,以此类推。$@:函数的全部参数,参数之间使用空格分隔。$1~$9:函数的第一个到第9个的参数。
2024-09-03 15:36:08
506
原创 expect--免交互式语言
我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如ssh服务器等进行交互的功能。而Expect就使用来实现这种功能的工具。Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。Expect的作者Don Libes在1990年开始编写Expect时对Expect做有如下定义:E。
2024-09-01 23:57:48
265
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅