自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RAG与微调:企业AI知识注入实战---一文带你详细了解RAG工作原理,通过ragflow底层源码分析rag实现流程

文章摘要:本文系统分析了企业应用大模型的三种知识注入方法——RAG、微调和提示词工程。通过对比表显示,RAG在知识时效性和抗幻觉方面表现最优,成为当前70%新项目的首选方案。文章深入解析了RAG的双模块架构(检索器+生成器)和三阶段工作流程,并提供了Excel文档处理的代码实现示例,展示如何将表格数据转化为问答对并向量化存储。RAG技术通过动态融合外部知识,有效解决了大模型的知识静态性和专业领域适应性问题,在客服、法律、医疗等场景具有广泛应用前景。

2025-05-30 18:09:06 695

原创 想要了解大模型,看懂这一篇就够了!大模型工作流程及核心参数介绍!

以下是vLLM参数的详细解释。

2025-05-20 11:15:30 1403

原创 汉化langfuse踩坑记录--docker卷挂载未生效问题修复及langfuse启动

Next.js 应用在生产环境中运行时,它提供的是编译和打包后的静态文件和服务器端渲染的页面。后面尝试的 volumes: - ./web/src:/app/web/src 挂载,确实让容器内部的 /app/web/src 目录与宿主机上的源代码目录实时同步了。所以,容器内 /app/web/src 目录的源代码是更新后的代码,但 langfuse-web 容器中运行的 Next.js 应用程序实例,实际上加载和展示的是位于它**自身内部(在构建时就已打包进去)**的旧的、未汉化的编译产物。

2025-06-12 13:11:33 371

原创 Docke启动Ktransformers部署Qwen3MOE模型实战与性能测试

本文介绍了使用Docker部署Qwen3MOE大模型并测试性能的过程。由于CPU不支持AVX512指令集,改用AVX2版本的ktransformers镜像。通过Docker容器运行模型,详细说明了启动命令和参数配置,包括模型路径、优化配置等。重点测试了模型响应性能,结果显示预填充阶段速度为58.34 tokens/s,解码阶段为19.09 tokens/s,揭示了模型在不同处理阶段的性能特征,为优化推理速度提供了参考依据。

2025-06-07 16:19:44 789

原创 突破DIFY沙箱限制,高效处理大文件

绕过Dify代码沙箱限制处理文件数据的方法 针对Dify代码沙箱无法直接读写系统文件的问题,本文提出了三种解决方案:1)修改沙箱镜像配置,放开系统调用权限;2)将本地文件挂载到容器;3)通过Python代码获取文件路径。实验证明,这些方法可以有效绕过沙箱限制,直接处理Excel等文件数据,避免了官方插件导致的30MB数据膨胀问题。修改后的配置允许系统文件操作,而文件挂载方案则实现了临时文件的直接访问。最终实现了Excel数据的正常读取和处理。

2025-05-30 20:10:06 374

原创 Linux命令大全:高效管道的实战技巧,一文带你全面了解linux命令使用方法!

Linux系统常用命令分类汇总及管道符使用指南 本文梳理了Linux系统的核心操作命令,分为七大类功能:1)文件目录操作;2)文本处理;3)系统管理;4)网络通信;5)压缩备份;6)权限管理;7)实用工具。重点介绍了管道符"|"的高级用法,通过命令组合实现数据过滤、统计分析、进程监控等复杂操作,如日志实时跟踪(tail -f | grep)、多条件搜索(ps aux | grep | awk)等。文中包含典型应用场景和注意事项,帮助用户高效完成系统管理任务,避免手动处理中间数据。(148

2025-05-28 17:34:20 636

原创 Langfuse:开源LLM应用调试神器,手把手带你部署并实现langfuse跟踪监控本地LLM系统

Langfuse是一个开源的LLM工程平台,旨在帮助团队协作调试、分析和优化LLM应用程序。它支持任何模型和框架,提供嵌套跟踪功能,能有效定位问题根源。平台特点包括完全开源、生产级优化、多语言SDK支持、主流框架集成以及多模态数据跟踪能力。 部署流程包括:1)通过Docker本地部署服务;2)创建项目获取API密钥;3)配置环境变量;4)安装依赖包;5)使用@observe装饰器自动跟踪应用。测试结果显示平台能成功捕获LLM应用的输入输出数据,为开发调试提供可视化支持。整个方案实现了对本地LLM应用的性能监

2025-05-28 17:06:04 1135

原创 docker部署并测试翻译模型-CSANMT连续语义增强机器翻译

机器翻译模型部署详细步骤及api调用测试。

2025-05-23 17:15:17 1044

原创 揭秘模型上下文:AI如何理解长文本?

摘要: 模型上下文(Context Length)指语言模型单次推理可处理的最大文本长度(以token计),包含输入提示和生成内容。上下文窗口决定模型生成时参考的文本范围,影响输出的连贯性。上下文长度是硬性限制,如GPT-4支持8192 tokens,超出部分会被截断。Token是分词后的最小单位,不同模型的分词方式各异。较长的上下文能提升问答、文档总结等任务的表现,但需注意不同模型的默认限制(如LLaMA2为2048 tokens,Mistral/Qwen支持32768 tokens)。合理控制提示词长度

2025-05-21 18:11:19 725

原创 预训练模型:深度学习的通用特征引擎

预训练模型是深度学习中的关键技术,通过在大规模数据上预先学习通用特征,再迁移到具体任务中进行微调。其核心原理包括特征迁移和自监督学习,典型架构如Transformer和卷积神经网络。与用户自训练模型、传统机器学习模型及无预训练深度模型相比,预训练模型在数据需求、训练成本、特征通用性和任务扩展性等方面具有显著优势。然而,它也存在领域偏差、计算成本高和可解释性差等局限性。预训练模型广泛应用于自然语言处理、计算机视觉和多模态任务,未来将向多模态、轻量化和知识增强等方向发展。

2025-05-20 15:48:17 853

原创 通过vllm部署qwen3大模型以及基于 vLLM 的 OpenAI 兼容 API 接口调用方法总结

第一句是关于春节,中国家庭做饺子,长辈讲关于年兽的故事。这里要注意“make dumplings”翻译成“包饺子”比较合适,而“Nian”是年兽,应该音译为“年兽”或者“年兽”,但通常用“年兽”更常见。model="/home/xugq/qwen3-1.7b/", # 使用模型路径,如通过--served-model-name指定名称需与 vLLM 服务启动时指定的名称一致。:指定使用的推理解析器,如 deepseek_r1,用于解析推理过程中的逻辑结构,使模型的输出更符合逻辑和预期的格式。

2025-05-20 15:30:30 1102

原创 如何在一台环境中同时安装ragflow和ragflow-plus

进入根目录和management/server/中执行。原因是宿主机和容器映射端口都被改成了6333。在已激活的 conda 环境中。

2025-05-16 14:24:57 485

原创 系统盘满了?一文教你docker如何迁移数据并更换存储路径!

要将 Docker 数据迁移到指定目录并永久更改存储路径,需修改 Docker 的数据根目录(data-root)。首先停止 Docker 服务,然后使用 rsync 命令将现有数据迁移到新路径(如 /home/docker-data),并备份旧数据。接着,编辑 Docker 配置文件 /etc/docker/daemon.json,添加 data-root 字段指向新路径。若系统启用了 SELinux 或 AppArmor,需进行相应配置。重启 Docker 服务后,使用 docker info 验证新路

2025-05-15 17:19:17 265

原创 如何调用dify工作流api,代码格式如下

本文展示了如何使用Python的requests库与一个本地API进行交互。首先,配置了API的URL和认证密钥,并设置了请求头,包括授权信息和内容类型。请求体包含输入文本和响应模式等参数。通过requests.post方法发送请求,并设置了超时时间。如果响应状态码为200,且返回的数据状态为“succeeded”,则解析并打印输出数据。此过程展示了如何通过API进行数据交互并处理响应结果。

2025-05-14 18:28:49 729

原创 通过vllm部署qwen3大模型以及基于 vLLM 的 OpenAI 兼容 API 接口调用方法总结

该报错说明KV缓存所需的内存超过了可用的显存,KV缓存的计算涉及模型层数、序列长度和批次大小等因素,模型默认设置的max_seq_len是40960,这大大超过了服务器的负载上限,应该降低通过调整–max_model_len参数以减少KV缓存需求。接口必须确认实际加载的模型名称,避免因名称不匹配导致404错误。适用场景:非对话式文本生成(如问答、续写)适用场景:多轮对话(如聊天机器人)

2025-05-07 15:16:19 2846

原创 垂直分表和水平分表涉及的不同场景?如何决定使用水平分表还是垂直分表?

水平分表适用场景:数据量大、查询和写入性能要求高、数据可以均匀分布。优点:减少单表数据量,提高查询和写入性能,适合处理高并发场景。缺点:查询时可能需要聚合多个表的数据,增加查询复杂性。垂直分表适用场景:表字段过多、字段使用频率差异大。优点:减少查询时的数据量,优化表结构,提高查询性能。缺点:可能增加写入复杂性,不适合处理高并发写入场景。在实际应用中,可以根据具体场景选择单一的分表策略,也可以结合使用水平分表和垂直分表,以达到更好的效果。

2025-04-24 16:06:54 458

原创 java项目中分库分表使用场景?具体应该如何实现?

在应用层实现分片逻辑,应用程序根据分片策略决定数据存储的库或表。使用中间件(如 ShardingSphere、MyCat)实现分片逻辑,应用程序无需关心分片细节。分库分表可能涉及跨库事务问题,需要使用分布式事务管理方案,如 Seata。:不同业务模块的数据可以独立管理,例如用户信息、订单信息、商品信息等。:将高频访问的“热数据”与低频访问的“冷数据”分开存储。:系统面临高并发读写操作,单库单表难以满足性能需求。:按用户ID哈希取模分库,按时间或业务范围分表。:按字段切分,将不同字段存储到不同表。

2025-04-24 16:01:08 336

原创 rag向量知识库不同检索方式如何区分?

向量化用户输入的问题并生成查询文本的数学向量,比较查询向量与知识库内对应的文本向量间的距离,寻找相邻的分段内容。

2025-04-11 13:57:07 835

原创 一文带你掌握如何区分agent智能体的对话流和工作流!

智能体的

2025-04-05 21:18:14 534

原创 java基础及多线程面试题总结

多线程是指一个程序中可以同时运行多个线程(线程是程序执行的最小单位),每个线程都有自己的任务和执行流程。多线程的目的是提高程序的执行效率和响应速度,特别是在多核处理器的环境中,可以充分利用硬件资源,实现真正的并行执行。工作原理:多线程的工作原理主要依赖于操作系统的线程调度机制。操作系统会根据一定的策略(如时间片轮转、优先级调度等),在多个线程之间分配CPU时间,使得每个线程都能得到执行的机会。线程在执行过程中,可以共享进程的资源(如内存、文件等),但每个线程有自己的程序计数器、寄存器和栈空间。

2025-04-02 17:53:43 970

原创 spring八股文面试知识点汇总!重点是在质不在量。

Spring是一款全面的一站式轻量级的Java开发框架,其核心特性为IOC(Inversion of Control)和AOP(Aspect Oriented programing)即控制反转和面向切面编程思想。其中IOC是通过DI(依赖注入)来实现,AOP是通过动态代理和预编译来实现动态的增加程序的功能。AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,它通过将横切关注点(如日志记录、事务管理、安全检查等)从业务逻辑代码中分离出来,实现代码的解耦和复用。

2025-03-24 20:27:54 1018

原创 SpringBoot的启动流程

Spring Boot 的启动流程包括创建实例、加载配置文件、初始化 Spring 容器、自动配置、刷新容器、启动嵌入式服务器等步骤。这个流程使得 Spring Boot 应用程序能够快速启动并运行,同时提供高度的自动化配置和灵活性。

2025-03-24 20:13:21 629

原创 详细介绍Spring MVC的执行流程是怎么样的?

Spring MVC 是 Spring 框架的一部分,用于构建 Web 应用程序。:用户通过浏览器发送 HTTP 请求到服务器,请求首先被前端控制器 DispatcherServlet 接收。:DispatcherServlet 根据请求的 URL 和其他信息,通过 HandlerMapping 查找合适的处理器(Handler)。:找到处理器后,DispatcherServlet 使用处理器适配器 HandlerAdapter 来执行该处理器。

2025-03-24 18:44:03 461

原创 java中的动态代理核心原理及代码实现

首先定义一个接口,该接口将被目标对象和代理对象共同实现。

2025-03-24 14:38:18 271

原创 在spring中如何创建和使用bean以及xml配置文件的具体含义

创建 Bean:在 XML 配置文件中使用<bean>元素定义 Bean,指定其类和属性。使用 Bean:通过 Spring 容器的getBean方法获取 Bean 实例,并在代码中使用。XML 配置文件:包含 Bean 的定义、依赖注入和配置信息,是 Spring 容器管理 Bean 的基础。通过这种方式,可以在 Spring 中灵活地创建和使用 Bean,实现松耦合和可维护性。

2025-03-23 16:20:09 507

原创 如何在spring中创建bean

注解,Spring会自动扫描并创建Bean。通过在类或方法上添加注解来定义Bean。通过配置类中的方法返回Bean实例。在Spring的XML配置文件(如。注解启用组件扫描,自动检测带有。注解,手动定义Bean。注解的类并创建Bean。通过工厂类创建Bean。定义一个普通工厂类,通过。标签来定义Bean。在配置类的方法上添加。方法来创建Bean。

2025-03-23 16:05:22 323

原创 详细了解Spring,Springmvc,以及Springboot的区别

• Spring Boot是简化 Spring 开发的框架,提供自动化配置和快速开发能力,适用于基于 Spring 技术栈的应用开发,能快速构建独立运行的 Spring 应用。• 核心功能:提供快速开发模板,自动配置 Spring 及相关技术,减少配置,内置 Tomcat 等服务器,简化部署。• 应用场景:适用于各种 Java 应用开发,包括 Web 应用、企业级应用等,提供基础架构支持。• 开发效率:简化 Web 开发,但配置较繁琐,开发简单应用时效率不高,开发复杂应用时效率尚可。

2025-03-19 19:07:28 365

原创 有关Volatile的底层实现原理

volatile`关键字通过内存屏障和`lock`前缀指令确保了变量的内存可见性和操作的有序性,但不保证操作的原子性。在 Java 中,`volatile`关键字用于确保变量的内存可见性和操作的有序性,其底层实现主要依赖于内存屏障(Memory Barrier)和`lock`前缀指令。• 写操作:当线程写入`volatile`变量时,JVM 会在写操作后插入一个写内存屏障(Store Barrier),确保所有之前的操作都已完成,并且该写操作的结果会立即刷新到主内存。

2025-03-16 14:12:41 180

原创 序列化和反序列化是什么?

序列化(Serialization)和反序列化(Deserialization)是计算机科学中用于处理数据存储和传输的两个重要概念。它们主要用于将数据结构或对象转换为可存储或可传输的格式,以及将这些格式还原为原始数据结构或对象。

2025-03-14 10:21:18 365

原创 如何在消息队列(MQ)中保证消息的一致性

事务消息允许将消息发送与本地事务操作绑定,确保本地事务和消息发送能够一起成功或失败,从而保证数据的强一致性。:生产者在收到MQ的确认响应后,才认为消息发送成功;:MQ定时轮询准备消息的状态,如果生产者挂掉或网络异常,会通过回调接口确认事务状态。:通过独立的消息服务子系统,预存消息并管理消息状态,确保消息的可靠传递。:根据本地事务的执行结果,生产者向MQ发送确认消息(提交)或回滚消息。:消费者在处理失败时,MQ会根据预设策略重试消息,直到成功。:将消息存储到持久化介质(如磁盘),确保消息在故障后可恢复。

2025-03-14 10:18:32 583

原创 数据库以及java线程中的乐观锁与悲观锁

适合写操作频繁、冲突概率高的场景,优点是能有效防止冲突,缺点是并发性能较差。

2025-03-13 17:34:08 938

原创 对AQS(AbstractQueuedSynchronizer)的理解

AQS 本身并不直接提供锁或其他同步工具的具体实现,而是通过继承 AQS 并实现其提供的方法来创建具体的同步器。例如,Semaphore等都是基于 AQS 实现的。AQS 是 Java 并发编程中一个非常重要的抽象类,它通过一个同步状态和一个 FIFO 等待队列来管理线程对共享资源的访问。通过独占式和共享式两种获取资源的方式,AQS 提供了灵活的同步机制,使得开发者可以根据实际需求自定义同步器。理解 AQS 的工作原理和机制对于编写高效、可靠的并发代码至关重要。

2025-03-11 16:12:21 329

原创 线程安全的原子性、可见性和有序性详细解释

原子性:保证操作的不可分割性,防止操作被中断。可见性:确保一个线程对共享变量的修改能够被其他线程看到。有序性:保证代码的执行顺序与预期一致,防止指令重排序。这三者是并发编程中线程安全问题的核心,需要通过适当的机制(如锁、volatile、原子类等)来保证。

2025-03-10 22:56:13 613

原创 Hashmap的底层原理

HashMap 的底层原理基于哈希表,其核心是通过哈希函数将键映射到哈希桶数组中的特定位置,并通过链表或红黑树处理哈希冲突。扩容机制和红黑树优化确保了 HashMap 在大多数情况下具有较高的查询和插入性能。

2025-03-07 11:32:53 875

原创 java如何保证线程的安全性?

原子类:通过CAS算法实现无锁的原子性操作,适用于对单个变量的原子性更新。volatile:保证变量的可见性和禁止指令重排序,适用于需要保证变量修改的可见性但不需要原子性操作的场景。锁:通过互斥机制保证同一时刻只有一个线程能够访问共享资源,适用于需要对代码块或方法进行同步的场景。在实际开发中,选择哪种方式取决于具体的业务场景和性能要求。如果只是对单个变量的原子性更新,原子类可能是更好的选择;如果需要保证变量的可见性,volatile可能更合适;如果需要对代码块或方法进行同步,锁可能是更好的选择。

2025-03-04 23:15:36 706

原创 springboot的自动注入原理

通过注解扫描、Bean 的注册和依赖注入,Spring 容器能够自动管理 Bean 的生命周期和依赖关系,并在需要时将 Bean 注入到其他组件中,从而简化了开发者的开发工作。依赖注入的核心思想是将对象的创建和依赖关系的管理交给框架(容器)来处理,而不是让开发者手动创建对象和管理依赖。Spring Boot 的自动注入原理是基于 Spring 框架的核心特性,即依赖注入(DI)和控制反转(IoC)。:Spring 会根据字段的类型在容器中查找匹配的 Bean,并将其注入。当 Spring 扫描到一个带有。

2025-03-04 14:44:06 397

原创 微服务OpenFeign服务@FeignClient、@EnableDiscoveryClient 和 @EnableFeignClients 注解的含义、用法和使用顺序的详细说明

提供了服务发现的基础环境,使得应用可以注册到服务注册中心,并发现其他服务。在服务发现的基础上,启用了 Feign 客户端功能,方便地进行远程服务的调用。用于定义具体的 Feign 客户端接口,指定目标服务的名称、URL、降级处理等信息。通过以上注解的合理使用,可以实现微服务架构中服务之间的高效通信和调用。

2025-02-17 23:50:08 787

原创 java常见集合类及其用法

如果方法接受一个 Collection<> 类型的参数 ,这意味着它可以接受任何实现了 Collection 接口的集合类,如 List、Set 等。Collection 类是Java集合框架中的一个接口,它是所有集合类的根接口。Collection 接口定义了一些通用的方法,用于操作集合中的元素,如添加、删除、遍历等。> c):判断集合中是否包含指定集合中的所有元素。这些集合类提供了丰富的方法来操作和处理数据,可以根据具体的需求选择合适的集合类来使用。概念:List是一个有序的集合,可以包含重复的元素。

2025-02-11 00:04:34 338

原创 @FeignClient注解

Feign会生成一个代理类,当你调用getQuestionById方法时,代理类会生成一个HTTP GET请求,路径为/api/question/inner/get/id,并将questionId作为请求参数传递。这个代理类会实现接口中定义的所有方法,并在方法被调用时,根据方法上的注解(如@GetMapping、@PostMapping等)生成相应的HTTP请求,然后将请求发送到远程服务,并将响应转换为方法的返回类型。这个代理类会在运行时动态生成,它负责处理与远程服务的通信。

2025-02-10 16:04:15 160

原创 如何理解非关系型数据库的‘非关系’特点

例如,在键值(Key - Value)存储类型的非关系型数据库(如 Redis)中,数据是以键值对的形式存储,键是唯一的标识,值可以是各种类型的数据,如字符串、数字、对象等。例如,要查询某个公司所有员工的姓名和他们所在部门的名称,可能需要连接 “员工” 表和 “部门” 表,通过 SQL 的 JOIN 语句来实现复杂的查询逻辑,这在非关系型数据库中通常是难以实现或者需要通过其他方式来间接完成的。:关系型数据库的数据存储在固定的表格结构中,每个表都有明确的列(字段)定义,数据必须按照这些列的格式进行存储。

2025-02-08 19:40:12 463

【Redis持久化机制】基于RDB的配置与优化:实验报告及实践结果分析

内容概要:关于Redis持久化机制之RDB的实验报告。实验基于unbuntu系统环境,详细记录了RDB配置触发设置、RDB文件创建、测试验证等步骤。实验重点探讨了RDB的优缺点,如恢复速度快但可能导致部分数据丢失;介绍了RDB文件检查修复方法,如使用`redis-check-rdb`命令;讲解了如何禁用RDB以及RDB参数优化,包括`stop-writes-on-bgsave-error`、`rdbcompression`、`rdbchecksum`等参数的作用和配置方式。 适合人群:适用于有一定Linux和Redis基础知识的软件工程专业学生或相关技术人员,特别是对Redis持久化机制感兴趣的读者。 使用场景及目标:①帮助读者理解RDB持久化的工作原理及其应用场景;②掌握RDB配置方法,包括自动保存规则、文件路径及名称修改等;③学习RDB文件的检查修复技巧;④了解如何根据实际需求调整RDB相关参数以优化性能。 阅读建议:由于文档内容涉及较多的实际操作步骤和技术细节,建议读者在阅读过程中结合实际环境进行实验操作,同时注意对比AOF持久化方式,以便更全面地理解Redis持久化机制。此外,对于参数优化部分,应根据具体业务场景和个人需求选择合适的配置选项。

2025-04-13

空空如也

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

TA关注的人

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