- 博客(1311)
- 资源 (11)
- 收藏
- 关注
原创 PaddleOCR项目实战(1):Python脚本中使⽤PaddleOCR
本文介绍了一个基于PaddleOCR的Android应用开发项目。系统采用三层架构:前端(APP/Web/小程序)调用OCR接口,Nginx实现反向代理和负载均衡,SpringBoot构建OCR服务并通过Docker部署。重点讲解了Python开发PaddleOCR内部接口的过程,包括Flask框架的安装、接口测试以及集成PaddleOCR实现文字识别功能。代码示例展示了如何通过POST请求接收图片路径,使用PaddleOCR进行识别并返回JSON格式结果,同时添加了日志记录和异常处理。项目采用Docker
2025-06-06 02:37:44
622
原创 PaddleOCR(3):PaddleOCR命令讲解
本文详细介绍了PaddleOCR命令的使用方法。主要内容包括:1) 检测+方向分类+识别的完整流程,输出包含文本框坐标、文字内容和置信度;2) 单独使用文本检测功能;3) 单独使用文本识别功能;4) 指定语言参数优化识别效果;5) 支持PDF文件输入及页码控制功能。通过具体示例展示了不同参数组合下的输出格式,包括文本框的四角坐标、识别文本及其置信度等信息,帮助用户灵活使用PaddleOCR进行文字检测与识别。
2025-06-05 16:39:33
279
原创 PaddleOCR(2):PaddleOCR环境搭建
在Windows系统安装PaddlePaddle及PaddleOCR的简要步骤:1)通过pip安装PaddlePaddle 2.6.2版本,可使用官方或清华镜像源;2)验证安装成功;3)参照官方文档安装PaddleOCR。该流程涵盖了从深度学习框架安装到OCR工具集成的完整过程。
2025-06-04 17:37:21
402
原创 PaddleOCR(1):PaddleOCR介绍
PaddleOCR是由百度开发的开源OCR工具库,提供超轻量模型和通用识别大模型,支持多种行业应用场景。其特点包括丰富的算法、自定义训练、C++预测及端侧部署等。PP-OCRv4模型是其最新通用识别模型,在多语言文字识别上兼具速度与精度优势。使用时只需下载推理模型并解压至指定目录即可快速部署应用。该工具库广泛应用于表单识别、票据识别、车牌识别等多种场景,为开发者提供了便捷的OCR解决方案。
2025-06-04 16:38:14
368
原创 AGI大模型(35):Advanced RAG之Pre-Retrieval(预检索)优化——查询优化
文章摘要:本文探讨了查询优化的核心方法,主要包括三种技术:1)问题完善(Enrich)通过大模型与用户交互补全需求参数;2)多路召回(Multi-Query)生成多个相关问题并行检索;3)问题分解(Decomposition)将复杂问题拆解为子问题逐步解决。此外还提及StepBack摘要和HyDE假设答案等方法。这些技术的共同目标是提升系统对用户意图的理解准确性和检索效率。(99字)
2025-06-01 16:31:04
117
原创 Cursor系列(1):Cursor安装、虚拟环境
本文简要介绍了Cursor代码编辑器的安装与配置流程:首先获取Cursor编辑器安装包,接着在扩展中安装所需插件(包括中文汉化包和Python环境插件),安装后需重启生效。最后指导用户在终端通过python -m venv venv命令创建Python虚拟环境,并提示在PowerShell中查看运行结果。全文提供了Cursor编辑器从安装到基础环境配置的完整指引。
2025-05-29 14:13:17
377
原创 AGI大模型(34):Advanced RAG之Pre-Retrieval(预检索)优化——索引优化
本文分析了NaiveRAG的三大缺陷:检索效率低、处理模糊概念能力弱、生成结果质量差。针对这些问题,提出了四种索引优化方案:摘要索引、父子索引、假设性问题索引和元数据索引。在查询优化方面,重点介绍了Enrich问题完善、Multi-Query多路召回和问题分解三种技术手段。这些方法共同构成了提升RAG系统性能的综合解决方案,有效改善了检索准确性和生成质量。文章最后对各优化策略进行了小结,为RAG系统的性能提升提供了系统性的改进思路。
2025-05-27 20:54:52
230
原创 AGI大模型(33):LangChain之Memory
文章摘要:LLM应用通过会话接口实现多轮对话,但模型本身不具备记忆功能,需依赖额外模块保存上下文。Memory系统通过读取历史信息和写入当前对话数据来维护对话连续性。基础记忆管理采用ChatMessages存储对话轮次,而更高级的MemoryClasses则提供长期/短期记忆等灵活管理功能,确保对话上下文的有效传递和状态维护。(149字)
2025-05-24 16:50:59
231
原创 AGI大模型(32):LangChain实现RAG
Vector stores可以用作检索器的主干,但也有其他类型的检索器。可能会遇到的问题:ImportError: DLL load failed while importing onnx_cpp2py_export :动态链接库(DLL)初始化历程失败需要将高版本的onnx卸载,在pip install onnx==1.16.1。向量化模型的封装提供了两种接口,一种针对文档的向量化embed_documents,一种针对句子的向量化embed_query。展示的都是向量化以后的结果。
2025-05-22 19:22:02
112
原创 AGI大模型(31):LangChain链的调用方式
在 LangChain 里,链式调用构建完成后有多种调用方式,invoke 方法就是其中之一,下面为你详细介绍常见的调用方法。将输入键指定为关键字参数结果如下:可以看到输出的结果就是一串字符串,而invoke返回的是字典。
2025-05-21 17:45:04
417
原创 AGI大模型(30):LangChain链的基本使用
为开发更复杂的应用程序,需要使用Chain来链接LangChain中的各个组件和功能,包括模型之间的链接以及模型与其他组件之间的链接。链在内部把一系列的功能进行封装,而链的外部则又可以组合串联。 链其实可以被视为LangChain中的一种基本功能单元。
2025-05-21 17:30:04
418
原创 AGI大模型(29):LangChain Model模型
LangChain支持三类模型:大语言模型(LLM)、聊天模型(ChatModel)和文本嵌入模型(EmbeddingModel)。LLM以文本字符串为输入并返回文本字符串,提供标准化接口与不同供应商的LLM交互,如OpenAI和HuggingFace。聊天模型如ChatGPT,以聊天消息列表为输入并返回聊天消息,API更结构化。文本嵌入模型将文本转换为浮点数列表(Embedding)。代码示例展示了如何使用OpenAI的LLM进行文本补全。
2025-05-20 20:34:36
259
原创 AGI大模型(28):LangChain提示模板
可以把对模型的使用过程拆解成三块: 输入提示(Format)、调用模型(Predict)、输出解析(Parse)提示模板: LangChain的模板允许动态选择输入,根据实际需求调整输入内容,适用于各种特定任务和应用。语言模型: LangChain 提供通用接口调用不同类型的语言模型,提升了灵活性和使用便利性。输出解析: 利用 LangChain 的输出解析功能,精准提取模型输出中所需信息,避免处理冗余数据,同时将非结构化文本转换为可处理的结构化数据,提高信息处理效率。
2025-05-19 17:26:04
263
原创 AGI大模型(27):LangChain向量存储
本文介绍了如何使用FAISS进行本地向量存储,并结合LangChain实现RAG(检索增强生成)的流程。首先,通过pip安装所需的依赖库,包括FAISS、LangChain社区版、BeautifulSoup和DashScope。接着,编写爬虫代码,使用WebBaseLoader从指定网页抓取数据,并通过BeautifulSoup解析特定标签内容。然后,利用DashScope的嵌入模型将文档转换为向量,并使用FAISS进行向量化存储。最后,通过LangChain的RAG功能,结合检索器和文档组合链,实现从向量
2025-05-19 16:39:14
670
原创 AGI大模型(26):LangChain输出解析器
输出解析器负责获取 LLM 的输出并将其转换为更合适的格式。借助LangChain的输出解析器重构程序,使模型能够生成结构化回应,并可以直接解析这些回应。CSV解析器:CommaSeparatedListOutputParser,模型的输出以逗号分隔,以列表形式返回输出日期时间解析器:DatetimeOutputParser,可用于将 LLM 输出解析为日期时间格式JSON解析器:JsonOutputParser,确保输出符合特定JSON对象格式。
2025-05-19 03:22:38
318
原创 AGI大模型(25):LangChain提示词模版
我们也可以创建prompt template, 并引入一些变量到prompt template中,这样在应用的时候更加灵活。
2025-05-18 18:19:59
98
原创 AGI大模型(24):通过LangChain的接口来调用OpenAI对话
本文介绍了如何使用LangChain库中的ChatOpenAI类创建对话模型,并展示了单轮和多轮对话的实现。首先,通过加载环境变量和导入必要的库,初始化ChatOpenAI实例,并调用invoke方法进行单轮对话,询问“什么是大模型?”,并打印结果。接着,通过定义SystemMessage、HumanMessage等消息类型,构建多轮对话场景,模拟用户与助理的交互,最终输出对话结果。代码示例展示了如何利用LangChain与DeepSeek API进行对话生成。
2025-05-18 15:04:43
227
原创 AGI大模型(23):LangChain框架快速入门之LangChain介绍
LangChain是一个基于大语言模型的框架,旨在简化端到端语言模型应用的开发。它提供了一系列工具和接口,支持文本生成、文档问答、聊天机器人等复杂任务。LangChain的生命周期包括开发、生产化和部署三个阶段,开发者可以利用其开源组件快速构建应用,并通过LangSmith进行监控和优化,最后使用LangServe将应用转化为API。核心组件包括模型、提示模板、数据检索、记忆、链和代理,这些组件共同工作以实现灵活的任务自动化。此外,LangChain还封装了模型I/O和数据连接与向量检索等模块,便于开发者进
2025-05-18 13:42:24
77
原创 AGI大模型(22):基于向量检索的RAG实现公司HR制度智能问答系统
请假流程要求所有请假原则上需通过钉钉系统申请并获得批准后方可执行,紧急情况可电话获得部门经理同意,但需在24小时内补钉钉申请,否则视为旷工。审批流程根据员工职位和请假天数不同,涉及直属领导、事业部总监、人事行政主管、总经理等不同层级的审批,并需抄送相关部门和人员。常规请假需提前1个工作日申请。此流程旨在确保请假程序的规范性和透明度,同时保障公司运营的连续性。
2025-05-18 13:25:15
23
原创 AGI大模型(21):混合检索之混合搜索
本文介绍了如何结合BM25和密集检索技术进行混合搜索。首先,通过BM25Okapi对中文文档进行分词和检索,获取相关度分数。接着,使用OpenAI的嵌入模型生成文档和查询的向量表示,并通过向量数据库进行密集检索,计算相似度分数。为了优化结果,对BM25和密集检索的分数进行标准化处理,并按权重(各占50%)合并。最终,根据综合分数排序,输出混合检索结果。该方法结合了传统检索和现代向量检索的优势,提升了搜索效果。
2025-05-17 21:44:36
290
原创 AGI大模型(20):混合检索之rank_bm25库来实现词法搜索
混合检索结合了词法搜索(BM25)和基于嵌入的搜索(密集检索)两种方法,以互补各自的优势。BM25擅长精确匹配关键词,而基于嵌入的检索则能理解深层语义,捕捉查询意图。实现混合检索的步骤包括安装相关依赖库(如rank-bm25、NLTK、jieba),对文档和查询进行分词,初始化BM25模型,计算相关性得分,并根据得分排序输出最相关的文档。通过这种方法,可以更高效地检索到符合用户需求的信息。
2025-05-17 17:56:03
143
原创 AGI大模型(19):下载模型到本地之ModelScope(魔搭社区)
本文介绍了如何安装、下载和使用Meta-Llama-3-8B模型。首先,通过pip命令从清华镜像源安装modelscope模块。接着,使用snapshot_download函数从ModelScope下载模型,并指定缓存目录。最后,通过SentenceTransformer加载本地模型路径,以便在本地环境中使用该模型。整个过程涵盖了从安装到本地部署的关键步骤,适合需要快速上手模型使用的开发者。
2025-05-16 21:34:41
195
原创 AGI大模型(18):各大平台RAG实现之智普RAG
本文简要介绍了如何在智普平台上创建知识库和应用。首先,用户需访问智普地址并进入应用中心,选择创建知识库并上传相关文档。上传后,可查看文档的切片信息。接着,创建智能体应用,选择知识问答型,并添加已创建的知识库进行测试。测试完成后,应用可发布,并查看集成文档以便后续集成使用。整个过程旨在帮助用户快速搭建和部署基于知识库的智能问答系统。
2025-05-16 12:26:12
75
原创 AGI大模型(17):各大平台RAG实现之阿里云-百炼RAG
本文介绍了如何在百炼平台上创建RAG(检索增强生成)应用。首先,用户需要上传应用数据并为其创建知识索引。接着,通过选择模型和知识库文件,用户可以创建RAG应用并进行测试,例如提问“入职培训的流程是什么?”系统会从知识库中检索相关信息并生成答案。测试完成后,用户可以发布应用,并通过钉钉、微信公众号或API进行调用。这一流程展示了如何利用百炼平台快速构建和部署智能问答应用。
2025-05-16 03:41:22
63
原创 AGI大模型(16):向量检索之基于向量检索的RAG实现
本文介绍了如何通过RAG(Retrieval-Augmented Generation)方法构建一个问答机器人。首先,定义了一个RAG_Bot类,该类通过向量数据库检索与用户查询相关的信息,并利用大语言模型(LLM)生成回答。具体步骤包括:1)从向量数据库中检索与用户查询最相关的文档;2)构建包含检索结果的Prompt;3)调用LLM生成回答。此外,文章还展示了完整的代码实现,包括向量数据库的初始化、文档的添加与检索,以及RAG机器人的创建与使用。通过这种方式,机器人能够根据已知信息提供准确的回答,若信息不
2025-05-14 17:24:46
362
原创 AGI大模型(15):向量检索之调用ollama向量数据库
本文介绍了如何将向量模型下载到本地,并使用ollama工具进行向量化处理。首先,通过命令行工具下载所需的bge-large模型。接着,安装ollama依赖库,并使用清华同方的镜像源以加速下载。随后,编写Python代码实现向量化功能,包括将字符串和数组作为输入参数生成嵌入向量。代码示例展示了如何使用ollama库生成嵌入向量,并打印前10维结果。通过这种方式,用户可以根据需求自定义模型和输入参数,实现高效的向量化处理。
2025-05-14 14:27:57
408
原创 AGI大模型(14):向量检索之使用缓存
为了提高语义搜索的效率,减少重复的向量化操作,本文介绍了一种通过缓存机制优化get_embeddings方法的技术。该方法通过为输入文本生成唯一标识,并将生成的向量存储在本地缓存文件中(使用.pkl格式),从而避免了对相同文本的重复处理。具体实现包括:创建缓存目录、检查缓存是否存在、分批处理文本、处理异常情况以及保存结果到缓存。此外,还展示了如何将这种缓存机制集成到向量数据库的搜索功能中,通过为查询生成唯一标识并缓存查询结果,进一步提升了搜索性能。实验结果表明,首次查询时进行向量化操作并生成缓存文件,而后续
2025-05-14 01:01:02
426
原创 AGI大模型(12):向量检索之关键字搜索
在人工智能时代,向量数据库已成为数据管理和AI模型不可或缺的一部分。向量数据库是一种专门设计用来存储和查询向量嵌入数据的数据库。这些向量嵌入是AI模型用于识别模式、关联和潜在结构的关键数据表示。在选择适合项目的向量数据库时,需要根据项目的具体需求、团队的技术背景和资源情况来综合评估。不会redis的去看我的redis专题。先看一个最基础的实现。
2025-04-22 19:16:32
159
原创 Cesium.js(8):建筑体添加和使用
在实际的应用中光有地图和地形肯定是不够的,还需要加载城市中的建筑模型信息。使用Asset Depot提供的建筑体模型。默认是放在My Assets中。
2025-04-16 01:36:29
231
原创 Cesium.js(7):地图、地形的加载
在为加载地形数据是,会发现地图上的山峰没有山势起伏的样子。用户可以通过加载cesium在线资源,加载新的地图模型。当然也可以加载其他的地图,后面会有专门的印象专题。其中My Assets是已经添加的资产。当然想看的清晰一点可以开启光照。看水面会发现波涛汹涌的效果。这里我添加了一个新的资产。加载模型之前样式如下。加载地图之后样式如下。
2025-04-14 15:45:27
328
转载 java面试题:Redis 6为什么引入了多线程
在Redis 6.0之前,Redis采用单线程模型,虽然命令执行效率极高,但网络I/O操作(如数据包的解析、读写等)会占用大量时间,尤其是在高并发场景下。通过并行处理网络请求,Redis能够更好地利用多核CPU资源,提升吞吐量和响应速度,同时保持命令执行的顺序性和原子性。这种设计既解决了网络I/O瓶颈问题,又规避了多线程可能对数据一致性和命令原子性产生的影响,同时成功提升了网络处理的效率。并行处理网络请求可以减少请求排队等待的时间,从而降低请求的平均延迟,提升Redis在高并发场景下的响应速度。
2025-04-12 18:54:11
54
原创 Cesium.js(5):坐标转换
通过 viewer.scene.camera.pickEllipsoid(movement.position, ellipsoid)获取,可以获取当前点击视线与椭球面相交处的坐标,其中ellipsoid是当前地球使用的椭球对象:viewer.scene.globe.ellipsoid,默认为Ellipsoid.WGS84。通过viewer.scene.globe.pick(ray, scene)获取,其中ray=viewer.camera.getPickRay(movement.position)。
2025-04-12 13:39:19
456
原创 Cesium.js(4):Cesium坐标系
坐标原点为地球质心,其地心空间直角坐标系的Z轴指向BIH (国际时间服务机构)1984.0定义的协议地球极(CTP)方向,X轴指向BIH 1984.0的零子午面和CTP赤道的交点,Y轴与Z轴、X轴垂直构成右手坐标系,称为1984年世界大地坐标系统。以空间中O点为原点,建立三条两两垂直的数轴,X轴(横坐标),Y轴(纵坐标),Z轴(竖坐标),建立了空间直角坐标系O-XYZ。平面坐标系也就是平面直角坐标系,是一个二维笛卡尔坐标系,与Cartesian3相比少了一个z的分量。平面坐标系(Cartesian2)
2025-04-12 01:12:28
450
原创 Spring Boot(九十):集成SSE (Server-Sent Events) 服务器实时推送
Server-sent Events(SSE) 是一种基于 HTTP 协议的服务器推送技术,它允许服务器主动向客户端发送数据。与 WebSocket 不同,SSE 是单向通信,即服务器可以主动向客户端推送数据,而客户端只能接收数据。
2025-04-11 19:48:56
396
原创 LangChain4j(8):Chain多个ServiceAl
这里我们利用langchain4j的chain特性你让你得到更多的灵感。例如,当用户只是向LLM打招呼或说再见时,让 LLM访问数十或数百个tools的成本很高,有时甚至很危险(LLM 调用中包含的每个tools都会消耗大量token),并且可能会导致意想不到的结果(LLM 可能会产生幻觉或被操纵以使用非预期的输入来调用tools)。关于 RAG:同样,有时需要为 LLM 提供一些上下文,但并非总是如此,因为它会产生额外的成本(更多上下文=更多token)并增加响应时间(更多上下文=更高的延迟)。
2025-04-10 14:18:43
373
原创 LangChain4j(7):Springboot集成LangChain4j实现知识库RAG
【代码】LangChain4j(7):Springboot集成LangChain4j实现知识库RAG。
2025-04-09 20:25:17
273
2
原创 LangChain4j(6):LangChain4j实现知识库RAG演练
(2)在进行合并时,如果块的大小小于或等于chunk overlap,并且和前后两个相邻块合并后,两个合并后的块均不超过chunk size,则两个合并后的块允许有重叠在RAG系统中,文本分块的粒度需要平衡语义完整性与计算效率,并非越细越好。chunk overlap(块间重叠大小)就是下图中加深的部分,上一个字符块和下一个字符块重叠的部分,即上一个字符块的未尾是下一个字符块的开始。首先按照指定的分割符进行切分,切分过之后,如果块的长度小于chunk size 的大小,则进行块之间的合并。
2025-04-09 13:56:47
623
原创 LangChain4j(5):LangChain4j实现RAG之RAG简介
RAG:检索增强生成(Retrieval-augmented Generation)对于基础大模型来说,他只具备通用信息,他的参数都是拿公网进行训练,并且有一定的时间延迟,无法得知一些具体业务数据和实时数据,这些数据往往在各种文件中(比如txt、word、htm1、数据库..)虽然function-cal、SystemMessage可以用来解决一部分问题但是它只能少量,如果你要提供大量的业务领域信息,就需要给他外接一个知识库比如:(1)我问他退订要多少费用(2)这些资料可能都由产品或者需求编写在了文档中:
2025-04-08 00:56:35
450
springboot基于redis防止接口恶意刷新和暴力请求
2023-01-17
javawebuploader分片上传
2023-01-02
AT模式seate测试代码
2022-12-26
drools代码示例包
2022-08-12
mysql读写分离演示
2022-05-29
skywalkingRPC
2022-05-10
skywalkingspringboot
2022-05-10
Intellij Idea 创建JavaWeb项目入门(二)demo
2020-01-23
java实现简单的单点登录
2020-03-03
webapi基于Owin中间件的oauth2.0身份认证
2018-10-07
Spring Boot(六十四):SpringBoot集成Gzip压缩数据
2023-08-16
Hbase项目实例相关资料
2023-07-08
Disruptor专题简单案例资料
2023-06-17
lucene入门数据库资料
2023-05-21
sentinel-feign-parent
2023-05-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人