- 博客(330)
- 资源 (9)
- 收藏
- 关注
原创 OpenGauss数据库安装和SpringBoot项目使用OpenGauss数据库
虽然引用依赖是opengauss-jdbc,但opengauss-jdbc-3.1.0.jar中的路径依旧是 org.postgresql.Driver。引入OpenGauss的maven依赖(版本太高可能会出现依赖冲突,比如7.0.0会有slf4j的依赖冲突)连接使用navicat等 使用postgreSQL 或者opengauss驱动。所以driverClassName填写 org.postgresql.Driver。opengauss数据库安装。
2025-12-24 10:40:44
45
原创 大模型架构理解与学习
②有些任务只需要 “生成”(比如聊天、写代码),不需要依赖明确的 “输入理解”(开放式生成)—— 于是单独拿出 Decoder,做成了。(比如 GPT 系列(GPT-1~4)、LLaMA 系列(LLaMA 1/2/3)、Qwen(通义千问)、Mistral);①有些任务只需要 “理解”(比如判断评论是好评还是差评),不需要 “生成”—— 于是单独拿出 Encoder,做成了。③有些任务需要 “先理解再生成”(比如翻译、摘要)—— 于是保留了完整的。优化 1:注意力机制 “瘦身”(解决 “慢” 的问题)
2025-12-22 18:07:45
228
原创 MCP协议的简介和简单实现
模型上下文协议(Model Context Protocol,简称 MCP)一种开放的、通用的标准化协议, 旨在标准化大型语言模型(LLM)与外部数据源或工具之间的交互方式。MCP Client 客户端:运行在主机(host)里的客户端,当有需要的时候被激活,与MCP Server 建立连接(客户端和服务器是一对一连接)。②意图解析: 聊天机器人(Host主机)将问题发给大模型,分析可用的工具,并决定用哪一个工具,如查询天气的工具;MCP 的本质是为 AI 模型提供统一的交互标准;
2025-12-18 15:25:59
254
原创 Fastapi离线环境如何使用swagger
离线环境 或者 网络状态不好的情况下swagger-ui.css 和 swagger-ui-bundle.js加载不出来。参考: https://pypi.com.cn/project/fastapi-offline/1.5.0/可以使用 FastAPIOffline。
2025-12-18 10:36:59
168
原创 大模型推理优化方案
① 量化②剪枝(Pruning)③知识蒸馏(Knowledge Distillation)①GPU 加速(NVIDIA/AMD)②CPU 加速(Intel/AMD/x86/ARM)① 通用推理引擎②生成式模型专用引擎① 批处理与动态调度②内存优化③轻量级部署工具推理优化是提升大模型(尤其是小参数模型如 Qwen2-0.5B-Instruct)部署效率的核心环节,除了之前提到的llama.cpp优化手段,还有很多针对不同场景(如低延迟、高吞吐量、跨硬件适配)的方案和工具。
2025-12-16 17:15:09
923
原创 语音交互系统的技术实现简介
流式 ASR: 实时采集音频,按固定时长(200-500ms)切分「音频块」,每处理一个音频块,就输出增量更新的识别文本。FunASR实时输出有个特性 :每次解码后输出「中间结果」(实时更新),静音时输出「最终结果」,完成一句话的识别闭环;非流式 ASR: 麦克风采集到语音生成语音文件(wav/mp3),ASR模型读取语音文件,然后输出识别结果。核心技术是: ASR (语音识别)+ LLM (推理和内容生成)+ TTS(自然语言生成)Whisper(读威斯珀) 伪流式适合快速原型验证,无需复杂配置。
2025-12-16 14:18:48
112
原创 大模型应用中的意图识别和槽位抽取
会给模型带来巨大的处理负担,使模型难以准确地捕捉和理解其中的关键内容,容易出现混淆和错误的关联,进而影响其对意图和槽位的准确识别和抽取。通过提示词设计,无需添加复杂的额外算法或模型架构,就可使 AI 智能体快速具备意图识别和槽位抽取能力。目的是需要智能体能够理解准确各种各样、形式各异但意思相近的问题,(比如方言类、反问语气、情绪化语气等),这就要求 LLM 节点得有很强的泛化和识别能力。但比较贵,而且难以控制。意图识别和槽位抽取是自然语言理解(NLU)的两个关键部分,会直接影响智能体的交互质量和用户体验。
2025-12-12 10:34:03
452
原创 langchain基础教程(8)---使用LangGraph的搭建混合型的RAG
按照流程图, 使用add_edge 连接节点和节点, 并行节点也使用add_edge, 条件分支要使用add_conditional_edges。状态是一个类型化字典(TypedDict),用于存储各个节点的结果,加上输入问题 一共9个。全局的 “数据容器”, 用于在节点间传递信息(如上下文、工具结果、中间节点的结果数据)节点间的 “流转规则”, 决定了 “执行完当前节点后,下一步该去哪里”(节点0 A是输入问题,没有任何功能不能算个节点)(节点9 输出回答,这里是直接输出,也不能算节点)
2025-12-11 17:01:32
289
原创 langchain基础教程(7)---搭建RAG的步骤
LangChain: 企业级 RAG 系统、适用于复杂场景(多数据源、多 LLM、Agent 集成)、二次开发需求高。RAG 原理: 检索(从知识库获取相关信息)→ 增强(将信息作为上下文输入模型)→ 生成(模型基于上下文回答)RAG策略下,Prompt的设计变得尤为重要。简洁性: 在保证明确性的前提下,Prompt应尽可能简洁明了,避免引入不必要的冗余信息。② Agentic RAG(智能体式 RAG):灵活智能,适合复杂场景。① 2 步 RAG(2-step RAG):简单可预测,适合固定场景。
2025-12-08 19:14:51
302
原创 langchain基础教程(6)---构建知识库--①向量数据库-chromadb
①向量(Vector):将非结构化数据(文本、图像、音频、视频等)通过 Embedding 模型转换后的高维数值数组(例如 768 维、1536 维),每个维度代表数据的一个语义 / 特征属性。更通俗的说法,向量就是一个数字列表,例如:[12, 13, 19, 8, 9]。②向量的数据表示: 由ID(唯一标识)、向量(数值表示)、有效负载(元数据)组成。向量数据库是专门用于存储、管理和检索高维向量数据的数据库系统。③ 将向量和元数据(内容,标题,页码等)一块存到向量数据库中。
2025-11-30 15:21:52
248
原创 langchain基础教程(5)---长期记忆实现---使用Mem0
milvus操作参考: https://milvus.io/docs/zh/manage-collections.md。这种记忆库就是利用大模型,将对话提取/总结, 其效果非常依赖大模型的质量和prompt(默认prompt可能效果不佳)基础存储无记忆管理逻辑,仅提供基础增删改查。milvus安装之后可以使用 http://ip:9091/webui 可视化页面查看。git地址: https://github.com/mem0ai/mem0。② 内置智能记忆管理,支持长期记忆,短期记忆,可配置遗忘策略。
2025-11-27 16:21:58
252
原创 langchain基础教程(4)---短期记忆和长期记忆
在langchain官方文档中,store是在工具中使用,但是我个人认为,store放在中间件(before_model,after_model)中使用更方便。然而随着聊天轮数越来越多, 聊天记录越来越长,然后送入模型的数据会越来越长,终究会超过大模型的上下文长度;但上述都有缺点,随着聊天轮数的增多,聊天记录总归会超过大模型上下文窗口上限, 无论是截断/精简/摘要都会丢失一些消息或者细节;长期记忆(历史对话)放入外部存储环境中(如向量数据库,数据库,文档,redis),然后根据需要加载 相关的对话历史;
2025-11-26 17:25:58
178
原创 使用Uvicorn和Gunicorn部署FastApi
是一个WSGI 服务器兼进程管理器,本身主要用于同步框架(如 Flask),但在生产环境中,常被用来管理 Uvicorn 进程,充分利用多核 CPU 提升并发能力。同步框架: 当服务器(如 Gunicorn)收到请求时,会分配一个线程 / 进程处理该请求,线程会全程阻塞直到请求处理完成(包括等待 I/O 操作,如数据库查询)异步框架: 请求处理过程中遇到 I/O 等待时,不会阻塞线程,而是主动让出资源,让线程处理其他请求,从而用更少的资源(线程)实现更高的并发。先说一下什么是同步框架,什么是异步框架。
2025-11-25 14:35:17
370
原创 langchain基础教程(4)---create_agent核心参数详解
这是大模型调用工具的信息, 工具的自定义参数 是大模型产生的, agent信息在ToolRuntime中,ToolRuntime中的信息 包含messages(对话信息),context(上下文信息),config(运行的配置),stream_writer,tool_call_id(当前调用工具id),store。: 系统提示词,信息发送给模型的时候会添加,运行时是看不到的,无论是工具还是中间件,都不会有。: 运行时上下文, 自定义信息, 可在Runtime中获取。langchain 版本 1.0。
2025-11-24 17:18:20
165
原创 AutoGen入门(2)---AutoGen高级功能简介
Graph Flow是 AutoGen 中用于结构化多智能体协作的核心工具,通过 “节点 - 边 - 上下文” 模型,将复杂任务拆解为可预测的步骤序列。GraphFlow 是 AutoGen AgentChat 中用于定义有向图工作流的框架,旨在通过可视化节点与边的关系,实现多智能体协作的结构化、可预测执行。③支持跨回合协作(如长对话、多步骤任务),确保逻辑连贯性(例如:数据分析任务中,智能体需记住前期清洗的数据结果,才能继续建模)。Swarm 实现了一个团队,其中代理可以根据其能力将任务移交给其他代理。
2025-11-12 17:59:03
490
原创 AutoGen入门(1)---AutoGen基础简介
AutoGen 是微软于 2023 年开源的前沿多智能体协作框架,AutoGen 的核心理念是让多个智能体通过对话(conversation)相互协作,共同完成任务,支持 LLMs、人类输入和工具的灵活组合。此方法在与团队和应用程序/用户之间的异步通信的持久会话中很有用:一旦团队完成一次运行,应用程序会保存团队的状态,将其放入持久存储中,并在反馈到达时恢复团队。②保存和加载团队: 在团队上调用 save_state 方法来获取团队的状态,并通过在团队上调用 load_state 方法来加载它。
2025-11-12 15:14:49
797
原创 LangGraph基础教程(4)---LangGraph的核心能力
LangGraph 的中断(Interrupt) 功能允许在图执行的任意点动态暂停流程,等待外部输入(如人工审批、内容编辑)后再恢复,核心依赖检查点(持久化状态) 和thread_id(定位待恢复状态);① 检查点(Checkpointer):必须启用(如InMemorySaver、SqliteSaver),用于持久化暂停时的图状态,确保恢复时不丢失进度。定义:关联特定执行实例的检查点集合,通过 thread_id 标识(可自定义为会话 ID、用户 ID 等)。
2025-11-11 15:03:17
983
原创 LangGraph基础教程(3)---LangGraph的工作流程
② 定义步骤类型与上下文:按功能将节点分为 LLM 步骤(分析 / 生成文本)、数据步骤(检索外部信息)、操作步骤(执行外部动作)、用户输入步骤(人工干预),明确每个节点的上下文需求和预期结果。④ 构建节点和错误处理:节点以函数形式实现,针对 4 类错误(瞬态错误、LLM 可恢复错误、用户可修复错误、意外错误)设计专属处理策略(重试、循环返回、暂停、冒泡)。③循环机制:通过条件边实现 “LLM 决策→工具执行→反馈给 LLM” 的循环,直至完成任务(如算术运算:判断需调用加法工具→执行加法→返回结果)。
2025-11-10 11:57:29
389
原创 LangGraph基础教程(2)---LangGraph简单演示
生成包含工具调用的消息(如tool_calls: [{“name”: “add”, “args”: {“a”:3, “b”:4}, “id”: “call_1”}])。判断要不要调用工具 若需要调用工具, 则进入tool_node节点, 执行工具, messages追加 工具消息ToolMessage , 并更新状态。此时状态更新为 messages追加模型消息(除了用户消息, 系统消息 还有大模型第一次生成的工具调用消息), llm_calls=1。LangGraph版本1.0.2。
2025-11-07 19:42:11
299
原创 LangGraph基础教程(1)---LangGraph的简介
图结构: 图结构是最灵活的数据结构,元素(节点)之间可以是 “多对多” 的任意关联 ,甚至可以直接与自身关联(自环),节点之间的关系不受层级或顺序约束,可自由连接;根据边的 “方向性” 和 “约束条件”,图结构可分为多种类型: 有向图,无向图,简单图,多重图,完全图等,与 LangGraph 关联最紧密的是有向图和有向循环图。树形结构: 存在一个唯一的 “根节点”(首节点),其他节点有且仅有一个父节点,但可有多个子节点(最底层节点称为 “叶子节点”,无子节点)节点分属不同层级,体现 “上下级” 关系。
2025-11-07 15:29:14
820
原创 langchain基础教程(3)---langchain一些高级用法
内存存储 (Memory storage): LangGraph 将长期记忆作为 JSON 文档存储在存储 (store) 中。LangChain 的 create_agent 实际上是在 LangGraph 的运行时环境下运行的。活动的智能体发生变化,用户可以继续直接与新的智能体交互。你可以在工具 (tools) 和中间件 (middleware) 中访问运行时信息。当主智能体决定任务与子智能体的描述匹配时,它会调用 call_subagent1。如果子智能体不需要与用户对话,可以使用工具调用。
2025-11-06 14:46:13
260
原创 langchain基础教程(2)---langchain的核心组件
context_schema 用于定义 跨节点共享的运行时上下文结构,确保代理的不同节点(如模型调用节点、工具调用节点、中间件钩子等)能安全、一致地访问和修改全局共享信息(如用户会话 ID、权限标识、全局配置等)。智能体遵循 ReAct(“推理 + 行动”)模式,在简短的推理步骤与针对性的工具调用之间交替,并将结果观察反馈到后续决策中,直到能够提供最终。持久化代理的单线程执行状态(如对话历史、工具调用记录、中间结果等),以便在会话中断(如服务重启、网络中断)后,能恢复到之前的状态继续交互。
2025-11-05 18:57:15
929
原创 langchain基础教程(1)--快速搭建一个简单的应用(基于BaseChatModel自定义chatModel)
参考: https://langchain-doc.cn/v1/python/langchain/quickstart.html。
2025-11-04 19:11:06
121
原创 大模型应用中统计token数量
流式输出需在stream_options中设置include_usage: true以获取完整统计。但并不是所有模型 都在这个库里面。2.使用tiktoken库。所以指定一下编码比较好。
2025-11-03 16:52:48
227
原创 Agent简介
它突破了传统大模型 “单次问答” 的局限,能像 “助手” 一样主动完成复杂、多步骤的任务(比如写报告、做旅行规划、数据分析等),核心特征是自主性(无需人类步步干预)、动态性(根据环境 / 反馈调整行为)和目标导向(聚焦最终任务结果)在大模型语境下,Agent(智能体) 是指基于大模型驱动,具备自主理解目标、规划步骤、调用工具、执行任务,并能根据反馈持续优化的智能系统。接收工具返回的结果,通过大模型理解并整合。Agent 的工作逻辑可概括为 “感知 - 规划(决策) - 执行 - 反思” 的循环;
2025-10-30 17:26:10
414
原创 大模型的记忆与管理及长期记忆实现方式
实现框架:目前有多种创新框架,如 TIM 框架,它使 LLMs 能够维护一个随对话流不断演进的记忆库,用于存储历史思考痕迹,包含响应生成前的检索相关思考和响应生成后的事后反思并更新记忆库两个关键阶段;基本概念:长期记忆是指大模型能够存储历史交互、用户偏好等信息,类似于人类的长期记忆,使模型能够在后续的交互中利用这些信息,实现自我进化和更个性化的服务。重要性:长上下文处理能力使大模型能够处理更复杂的任务,如长篇文档分析、多轮对话中的长期上下文理解等,拓展了大模型的应用场景和能力边界。
2025-10-29 22:31:44
1207
原创 大规模数据处理技术指南
大规模数据” 通常指 TB/PB 级、多源异构、高实时性 的数据(如百万级图像库、亿级文本语料、PB 级视频流)。大规模数据处理技术的核心目标是解决 “高效存储、并行计算、精准筛选、低延迟响应” 四大痛点,以下从技术架构、核心模块、工具选型、实践案例四个维度展开解析。核心是 “分治思想”:将大规模任务拆分为小任务,分配到多节点并行计算,再聚合结果。分布式计算:解决 “数据算得快、算得准”主要围绕: 存 查 算 快。存: 存的快, 存的下。查: 查的快, 查的准。算: 算的快, 算的准。
2025-10-29 16:52:02
539
原创 AI 大模型应用中的图像,视频,音频的处理
批量处理工具替代循环, 避免用 for 循环单文件处理,频繁启动 FFmpeg 进程耗时,Linux/macOS用xargs ,Python 脚本结合 subprocess 模块多进程处理。预处理:提前解码与缓存(若处理视频抽帧后的图片,可先将视频一次性解码为原始帧序列(如 BMP),再批量处理(避免重复解码视频))图像: 格式/尺寸统一(常用PNG/JPEG/WebP格式)音频: 格式/音频编码/采样率/深度位/声道数等(常用WAV)需要统一,格式,解码标准,分辨率,帧率,时长,音视频同步与分离。
2025-10-29 12:02:49
253
原创 RAG项目中知识库的检索优化
NDCG@K(归一化折损累积增益): 考虑 “片段相关性程度”(如 “非常相关”“一般相关”)和 “排名位置”,衡量排序的整体质量。召回率和精确率需要基于“标注数据集”—— 即提前为每个查询标注出 “所有相关的文档片段”,然后再对比检索结果和标注的匹配情况。单次检索耗时: 从 “接收查询” 到 “返回 Top-K 片段” 的总时间;MRR(平均倒数排名): 对多个查询,计算 “第一个相关片段的排名倒数” 的平均值,衡量 “相关片段是否靠前”。评价指标3 : 效率指标 , 检索耗时(衡量 “快不快”)
2025-10-28 22:27:28
677
原创 RAG项目如何构建可检索的结构化知识库
(原始文本)+ {“source”: “animal.pdf”, “page”: 5}(元数据)。① 文档加载器, 将各种格式的非机构化文档(pdf,word,markdown,html等)转化为程序可以处理的结构化数据;不仅存储文档片段的嵌入向量,还关联原始文本、元数据(如来源、页码、时间戳)等信息,便于检索时返回完整的上下文。根据文本的天然结构(如段落、标题、章节、列表)拆分,优先保留完整的语义单元。① 冗余信息处理: 文档页眉页脚,水印, HTML标签,空格,重复内容等。
2025-10-28 17:03:47
732
原创 使用Milvus作为向量数据库
参考: https://milvus.io/docs/zh/build-rag-with-milvus.md。demo中各个包版本, 当前python3.10(3.10兼容的包版本最多)嵌入式模型: bge-small-zh-v1.5 从魔搭上下载。python 包版本是一个很大的坑。文档: 使用milvus中文文档。
2025-10-27 15:21:09
258
原创 使用docker安装向量数据库milvus
图形化管理工具: Milvus WebUI (Milvus v2.5.0之后有)milvus-minio : 对象存储服务容器,负责所有原始数据的持久化存储。milvus-standalone: Milvus 核心服务容器。milvus-etcd: 元数据管理服务容器。使用docker compose安装。启动完成之后可以使用。
2025-10-24 16:17:44
267
原创 dify应用教程---创建一个简单的RAG项目
网上说, 这个可以做成一个agent更简单,我还不会,下一篇就学一下怎么弄agent。先 安装模型插件,然后在设置中配置密钥和api;密钥需要去平台申请,要花钱的;本地模型安装Ollama和vllm, 还是花钱省事,安装大模型特别费劲。模型最好使用通义千问, 比较全,如果配置有问题,切换一下插件版本。主页面面板有四个table: 探索,工作室,知识库,工具。: 可以创建自己的应用,包括聊天助手, 智能体,工作流。: 使用这些模板或根据模板自定义您自己的应用程序。上传自己的数据作为上下文,构建RAG应用。
2025-10-23 14:32:29
334
原创 使用docker本地部署dify
如果你发现某个容器反复重启,就是用docker logs 容器id 看一下具体原因,然后将日志丢给豆包之类的大模型,然后一步步解决问题;前置条件 docker, docker-compose。最后登录 在浏览器中输入 http://服务器ip。首次登录是要设置账号密码的。docker 换国内源。
2025-10-14 12:25:06
358
原创 prompt构建技巧
我们可以通过prompt获取大量的结果,提示词可以包含你传递到模型的指令或问题等信息,也可以包含其他详细信息,如上下文、输入或示例等。可以通过这些元素来更好地指导模型,并因此获得更好的结果。为 AI 设定一个具体的 “角色或身份”,让 AI 基于该角色的专业视角、语言风格输出内容。【角色】+【目标】+【上下文】+【约束】+【格式】+【示例(可选)】简单来说就是: 怎么写好提示词,让模型输出我们想要的结果。: 应对简单任务,确保 “输出不跑偏”:想要模型执行的特定任务或指令。:指定输出的类型或格式。
2025-10-10 16:41:23
301
原创 nginx中root和alias
访问 /api/img/20250928/1.png → /opt/pic/20250928/1.png。# 访问 /index.html → /opt/web/dist/index.html。# alias 结尾必须加 / 否则会被解析成/opt/pic20250928/1.png。想让 URI 路径与服务器目录 “完全对应”(拼接)→ 用 root;想让 URI 前缀被 “替换” 为实际目录 → 用 alias;
2025-09-28 14:17:07
136
原创 大模型量化技术简介
大模型量化 是一种模型压缩技术,其核心思想是使用更低精度的数据类型(如8位整数INT8)来表示和计算原本更高精度的数据类型(如32位浮点数FP32或16位浮点数BF16/FP16)的模型参数和激活值。目前发现不使用4字节FP32精度转而使用2字节FP16半精度可以获得几乎相同的推理结果,这样就可以部署在存储空间不大,计算速度不快的设备上了(如手机,嵌入式设备,边缘计算);如果每个参数占的字节数少点的话,那么模型的大小就能小点了;量化后的模型,存储空间上变小, 计算速度能加快。现在讲一下为什么要量化,
2025-09-19 15:27:19
391
原创 EasyOrc初识
支持多语言文本识别包括中文(简体 / 繁体)、英文、日文、韩文、阿拉伯文、印地文等,甚至能处理混合语言场景(如中英文混杂的图片)。文本检测:使用 CRAFT(Character-Region Awareness For Text detection)模型,定位图像中文字的位置(生成文本框坐标)。第一个元素是文本框的四点坐标(左上、右上、右下、左下),第二个是识别出的文字,第三个是置信度(0~1)直接手动下载: https://www.jaided.ai/easyocr/modelhub/
2025-09-17 15:23:47
551
原创 langchain的简单应用案例---(2)使用Memory实现一个带记忆的对话机器人
继承BaseLanguageModel是为了后续更好使用chain链。这是一个比较旧的版本 用来练手。
2025-08-25 15:49:49
334
java与蓝牙模块实现通信.rar
2019-05-16
java调用C++dll
2018-11-16
springCloud学习代码(真正用的时候方便找)
2019-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅