- 博客(324)
- 资源 (9)
- 收藏
- 关注
原创 大模型应用中的意图识别和槽位抽取
会给模型带来巨大的处理负担,使模型难以准确地捕捉和理解其中的关键内容,容易出现混淆和错误的关联,进而影响其对意图和槽位的准确识别和抽取。通过提示词设计,无需添加复杂的额外算法或模型架构,就可使 AI 智能体快速具备意图识别和槽位抽取能力。目的是需要智能体能够理解准确各种各样、形式各异但意思相近的问题,(比如方言类、反问语气、情绪化语气等),这就要求 LLM 节点得有很强的泛化和识别能力。但比较贵,而且难以控制。意图识别和槽位抽取是自然语言理解(NLU)的两个关键部分,会直接影响智能体的交互质量和用户体验。
2025-12-12 10:34:03
395
原创 langchain基础教程(8)---使用LangGraph的搭建混合型的RAG
按照流程图, 使用add_edge 连接节点和节点, 并行节点也使用add_edge, 条件分支要使用add_conditional_edges。状态是一个类型化字典(TypedDict),用于存储各个节点的结果,加上输入问题 一共9个。全局的 “数据容器”, 用于在节点间传递信息(如上下文、工具结果、中间节点的结果数据)节点间的 “流转规则”, 决定了 “执行完当前节点后,下一步该去哪里”(节点0 A是输入问题,没有任何功能不能算个节点)(节点9 输出回答,这里是直接输出,也不能算节点)
2025-12-11 17:01:32
278
原创 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
296
原创 langchain基础教程(6)---构建知识库--①向量数据库-chromadb
①向量(Vector):将非结构化数据(文本、图像、音频、视频等)通过 Embedding 模型转换后的高维数值数组(例如 768 维、1536 维),每个维度代表数据的一个语义 / 特征属性。更通俗的说法,向量就是一个数字列表,例如:[12, 13, 19, 8, 9]。②向量的数据表示: 由ID(唯一标识)、向量(数值表示)、有效负载(元数据)组成。向量数据库是专门用于存储、管理和检索高维向量数据的数据库系统。③ 将向量和元数据(内容,标题,页码等)一块存到向量数据库中。
2025-11-30 15:21:52
239
原创 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
238
原创 langchain基础教程(4)---短期记忆和长期记忆
在langchain官方文档中,store是在工具中使用,但是我个人认为,store放在中间件(before_model,after_model)中使用更方便。然而随着聊天轮数越来越多, 聊天记录越来越长,然后送入模型的数据会越来越长,终究会超过大模型的上下文长度;但上述都有缺点,随着聊天轮数的增多,聊天记录总归会超过大模型上下文窗口上限, 无论是截断/精简/摘要都会丢失一些消息或者细节;长期记忆(历史对话)放入外部存储环境中(如向量数据库,数据库,文档,redis),然后根据需要加载 相关的对话历史;
2025-11-26 17:25:58
169
原创 使用Uvicorn和Gunicorn部署FastApi
是一个WSGI 服务器兼进程管理器,本身主要用于同步框架(如 Flask),但在生产环境中,常被用来管理 Uvicorn 进程,充分利用多核 CPU 提升并发能力。同步框架: 当服务器(如 Gunicorn)收到请求时,会分配一个线程 / 进程处理该请求,线程会全程阻塞直到请求处理完成(包括等待 I/O 操作,如数据库查询)异步框架: 请求处理过程中遇到 I/O 等待时,不会阻塞线程,而是主动让出资源,让线程处理其他请求,从而用更少的资源(线程)实现更高的并发。先说一下什么是同步框架,什么是异步框架。
2025-11-25 14:35:17
350
原创 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
154
原创 AutoGen入门(2)---AutoGen高级功能简介
Graph Flow是 AutoGen 中用于结构化多智能体协作的核心工具,通过 “节点 - 边 - 上下文” 模型,将复杂任务拆解为可预测的步骤序列。GraphFlow 是 AutoGen AgentChat 中用于定义有向图工作流的框架,旨在通过可视化节点与边的关系,实现多智能体协作的结构化、可预测执行。③支持跨回合协作(如长对话、多步骤任务),确保逻辑连贯性(例如:数据分析任务中,智能体需记住前期清洗的数据结果,才能继续建模)。Swarm 实现了一个团队,其中代理可以根据其能力将任务移交给其他代理。
2025-11-12 17:59:03
479
原创 AutoGen入门(1)---AutoGen基础简介
AutoGen 是微软于 2023 年开源的前沿多智能体协作框架,AutoGen 的核心理念是让多个智能体通过对话(conversation)相互协作,共同完成任务,支持 LLMs、人类输入和工具的灵活组合。此方法在与团队和应用程序/用户之间的异步通信的持久会话中很有用:一旦团队完成一次运行,应用程序会保存团队的状态,将其放入持久存储中,并在反馈到达时恢复团队。②保存和加载团队: 在团队上调用 save_state 方法来获取团队的状态,并通过在团队上调用 load_state 方法来加载它。
2025-11-12 15:14:49
774
原创 LangGraph基础教程(4)---LangGraph的核心能力
LangGraph 的中断(Interrupt) 功能允许在图执行的任意点动态暂停流程,等待外部输入(如人工审批、内容编辑)后再恢复,核心依赖检查点(持久化状态) 和thread_id(定位待恢复状态);① 检查点(Checkpointer):必须启用(如InMemorySaver、SqliteSaver),用于持久化暂停时的图状态,确保恢复时不丢失进度。定义:关联特定执行实例的检查点集合,通过 thread_id 标识(可自定义为会话 ID、用户 ID 等)。
2025-11-11 15:03:17
976
原创 LangGraph基础教程(3)---LangGraph的工作流程
② 定义步骤类型与上下文:按功能将节点分为 LLM 步骤(分析 / 生成文本)、数据步骤(检索外部信息)、操作步骤(执行外部动作)、用户输入步骤(人工干预),明确每个节点的上下文需求和预期结果。④ 构建节点和错误处理:节点以函数形式实现,针对 4 类错误(瞬态错误、LLM 可恢复错误、用户可修复错误、意外错误)设计专属处理策略(重试、循环返回、暂停、冒泡)。③循环机制:通过条件边实现 “LLM 决策→工具执行→反馈给 LLM” 的循环,直至完成任务(如算术运算:判断需调用加法工具→执行加法→返回结果)。
2025-11-10 11:57:29
384
原创 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
285
原创 LangGraph基础教程(1)---LangGraph的简介
图结构: 图结构是最灵活的数据结构,元素(节点)之间可以是 “多对多” 的任意关联 ,甚至可以直接与自身关联(自环),节点之间的关系不受层级或顺序约束,可自由连接;根据边的 “方向性” 和 “约束条件”,图结构可分为多种类型: 有向图,无向图,简单图,多重图,完全图等,与 LangGraph 关联最紧密的是有向图和有向循环图。树形结构: 存在一个唯一的 “根节点”(首节点),其他节点有且仅有一个父节点,但可有多个子节点(最底层节点称为 “叶子节点”,无子节点)节点分属不同层级,体现 “上下级” 关系。
2025-11-07 15:29:14
809
原创 langchain基础教程(3)---langchain一些高级用法
内存存储 (Memory storage): LangGraph 将长期记忆作为 JSON 文档存储在存储 (store) 中。LangChain 的 create_agent 实际上是在 LangGraph 的运行时环境下运行的。活动的智能体发生变化,用户可以继续直接与新的智能体交互。你可以在工具 (tools) 和中间件 (middleware) 中访问运行时信息。当主智能体决定任务与子智能体的描述匹配时,它会调用 call_subagent1。如果子智能体不需要与用户对话,可以使用工具调用。
2025-11-06 14:46:13
246
原创 langchain基础教程(2)---langchain的核心组件
context_schema 用于定义 跨节点共享的运行时上下文结构,确保代理的不同节点(如模型调用节点、工具调用节点、中间件钩子等)能安全、一致地访问和修改全局共享信息(如用户会话 ID、权限标识、全局配置等)。智能体遵循 ReAct(“推理 + 行动”)模式,在简短的推理步骤与针对性的工具调用之间交替,并将结果观察反馈到后续决策中,直到能够提供最终。持久化代理的单线程执行状态(如对话历史、工具调用记录、中间结果等),以便在会话中断(如服务重启、网络中断)后,能恢复到之前的状态继续交互。
2025-11-05 18:57:15
920
原创 langchain基础教程(1)--快速搭建一个简单的应用(基于BaseChatModel自定义chatModel)
参考: https://langchain-doc.cn/v1/python/langchain/quickstart.html。
2025-11-04 19:11:06
118
原创 大模型应用中统计token数量
流式输出需在stream_options中设置include_usage: true以获取完整统计。但并不是所有模型 都在这个库里面。2.使用tiktoken库。所以指定一下编码比较好。
2025-11-03 16:52:48
208
原创 Agent简介
它突破了传统大模型 “单次问答” 的局限,能像 “助手” 一样主动完成复杂、多步骤的任务(比如写报告、做旅行规划、数据分析等),核心特征是自主性(无需人类步步干预)、动态性(根据环境 / 反馈调整行为)和目标导向(聚焦最终任务结果)在大模型语境下,Agent(智能体) 是指基于大模型驱动,具备自主理解目标、规划步骤、调用工具、执行任务,并能根据反馈持续优化的智能系统。接收工具返回的结果,通过大模型理解并整合。Agent 的工作逻辑可概括为 “感知 - 规划(决策) - 执行 - 反思” 的循环;
2025-10-30 17:26:10
412
原创 大模型的记忆与管理及长期记忆实现方式
实现框架:目前有多种创新框架,如 TIM 框架,它使 LLMs 能够维护一个随对话流不断演进的记忆库,用于存储历史思考痕迹,包含响应生成前的检索相关思考和响应生成后的事后反思并更新记忆库两个关键阶段;基本概念:长期记忆是指大模型能够存储历史交互、用户偏好等信息,类似于人类的长期记忆,使模型能够在后续的交互中利用这些信息,实现自我进化和更个性化的服务。重要性:长上下文处理能力使大模型能够处理更复杂的任务,如长篇文档分析、多轮对话中的长期上下文理解等,拓展了大模型的应用场景和能力边界。
2025-10-29 22:31:44
1180
原创 大规模数据处理技术指南
大规模数据” 通常指 TB/PB 级、多源异构、高实时性 的数据(如百万级图像库、亿级文本语料、PB 级视频流)。大规模数据处理技术的核心目标是解决 “高效存储、并行计算、精准筛选、低延迟响应” 四大痛点,以下从技术架构、核心模块、工具选型、实践案例四个维度展开解析。核心是 “分治思想”:将大规模任务拆分为小任务,分配到多节点并行计算,再聚合结果。分布式计算:解决 “数据算得快、算得准”主要围绕: 存 查 算 快。存: 存的快, 存的下。查: 查的快, 查的准。算: 算的快, 算的准。
2025-10-29 16:52:02
530
原创 AI 大模型应用中的图像,视频,音频的处理
批量处理工具替代循环, 避免用 for 循环单文件处理,频繁启动 FFmpeg 进程耗时,Linux/macOS用xargs ,Python 脚本结合 subprocess 模块多进程处理。预处理:提前解码与缓存(若处理视频抽帧后的图片,可先将视频一次性解码为原始帧序列(如 BMP),再批量处理(避免重复解码视频))图像: 格式/尺寸统一(常用PNG/JPEG/WebP格式)音频: 格式/音频编码/采样率/深度位/声道数等(常用WAV)需要统一,格式,解码标准,分辨率,帧率,时长,音视频同步与分离。
2025-10-29 12:02:49
242
原创 RAG项目中知识库的检索优化
NDCG@K(归一化折损累积增益): 考虑 “片段相关性程度”(如 “非常相关”“一般相关”)和 “排名位置”,衡量排序的整体质量。召回率和精确率需要基于“标注数据集”—— 即提前为每个查询标注出 “所有相关的文档片段”,然后再对比检索结果和标注的匹配情况。单次检索耗时: 从 “接收查询” 到 “返回 Top-K 片段” 的总时间;MRR(平均倒数排名): 对多个查询,计算 “第一个相关片段的排名倒数” 的平均值,衡量 “相关片段是否靠前”。评价指标3 : 效率指标 , 检索耗时(衡量 “快不快”)
2025-10-28 22:27:28
672
原创 RAG项目如何构建可检索的结构化知识库
(原始文本)+ {“source”: “animal.pdf”, “page”: 5}(元数据)。① 文档加载器, 将各种格式的非机构化文档(pdf,word,markdown,html等)转化为程序可以处理的结构化数据;不仅存储文档片段的嵌入向量,还关联原始文本、元数据(如来源、页码、时间戳)等信息,便于检索时返回完整的上下文。根据文本的天然结构(如段落、标题、章节、列表)拆分,优先保留完整的语义单元。① 冗余信息处理: 文档页眉页脚,水印, HTML标签,空格,重复内容等。
2025-10-28 17:03:47
730
原创 使用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
256
原创 使用docker安装向量数据库milvus
图形化管理工具: Milvus WebUI (Milvus v2.5.0之后有)milvus-minio : 对象存储服务容器,负责所有原始数据的持久化存储。milvus-standalone: Milvus 核心服务容器。milvus-etcd: 元数据管理服务容器。使用docker compose安装。启动完成之后可以使用。
2025-10-24 16:17:44
260
原创 dify应用教程---创建一个简单的RAG项目
网上说, 这个可以做成一个agent更简单,我还不会,下一篇就学一下怎么弄agent。先 安装模型插件,然后在设置中配置密钥和api;密钥需要去平台申请,要花钱的;本地模型安装Ollama和vllm, 还是花钱省事,安装大模型特别费劲。模型最好使用通义千问, 比较全,如果配置有问题,切换一下插件版本。主页面面板有四个table: 探索,工作室,知识库,工具。: 可以创建自己的应用,包括聊天助手, 智能体,工作流。: 使用这些模板或根据模板自定义您自己的应用程序。上传自己的数据作为上下文,构建RAG应用。
2025-10-23 14:32:29
330
原创 使用docker本地部署dify
如果你发现某个容器反复重启,就是用docker logs 容器id 看一下具体原因,然后将日志丢给豆包之类的大模型,然后一步步解决问题;前置条件 docker, docker-compose。最后登录 在浏览器中输入 http://服务器ip。首次登录是要设置账号密码的。docker 换国内源。
2025-10-14 12:25:06
346
原创 prompt构建技巧
我们可以通过prompt获取大量的结果,提示词可以包含你传递到模型的指令或问题等信息,也可以包含其他详细信息,如上下文、输入或示例等。可以通过这些元素来更好地指导模型,并因此获得更好的结果。为 AI 设定一个具体的 “角色或身份”,让 AI 基于该角色的专业视角、语言风格输出内容。【角色】+【目标】+【上下文】+【约束】+【格式】+【示例(可选)】简单来说就是: 怎么写好提示词,让模型输出我们想要的结果。: 应对简单任务,确保 “输出不跑偏”:想要模型执行的特定任务或指令。:指定输出的类型或格式。
2025-10-10 16:41:23
293
原创 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
135
原创 大模型量化技术简介
大模型量化 是一种模型压缩技术,其核心思想是使用更低精度的数据类型(如8位整数INT8)来表示和计算原本更高精度的数据类型(如32位浮点数FP32或16位浮点数BF16/FP16)的模型参数和激活值。目前发现不使用4字节FP32精度转而使用2字节FP16半精度可以获得几乎相同的推理结果,这样就可以部署在存储空间不大,计算速度不快的设备上了(如手机,嵌入式设备,边缘计算);如果每个参数占的字节数少点的话,那么模型的大小就能小点了;量化后的模型,存储空间上变小, 计算速度能加快。现在讲一下为什么要量化,
2025-09-19 15:27:19
373
原创 EasyOrc初识
支持多语言文本识别包括中文(简体 / 繁体)、英文、日文、韩文、阿拉伯文、印地文等,甚至能处理混合语言场景(如中英文混杂的图片)。文本检测:使用 CRAFT(Character-Region Awareness For Text detection)模型,定位图像中文字的位置(生成文本框坐标)。第一个元素是文本框的四点坐标(左上、右上、右下、左下),第二个是识别出的文字,第三个是置信度(0~1)直接手动下载: https://www.jaided.ai/easyocr/modelhub/
2025-09-17 15:23:47
532
原创 langchain的简单应用案例---(2)使用Memory实现一个带记忆的对话机器人
继承BaseLanguageModel是为了后续更好使用chain链。这是一个比较旧的版本 用来练手。
2025-08-25 15:49:49
326
原创 langchain的简单应用案例---(1)使用langchain构建本地知识库
自定义LLM需要继承 from langchain.llms.base import LLM。(我windows系统,本地chromadb无法执行下去,连报错都没有就结束了)直接调用豆包的API, 本地部署大模型太费电。文档向量化后 存入数据库。整个demo工两个文件。
2025-08-19 15:01:30
358
原创 使用LLaMA-Factory对大模型进行微调-详解
参考: https://docs.coreshub.cn/console/compute_platform/help/llama_factory/损失曲线: 分为 Underfit(欠拟合) ,Overfit(过拟合),Good fit (完美拟合)可以看到,各个指标得分都比较低,说明本次微调效果比较差,重新调参训练吧。浏览器访问 http://127.0.0.1:7860/点击开始,他就运行了,等最后就出现训练完成;点击预览命令,可以看到,和上篇中的指令类似。(第一次使用有几个依赖 需要安装一下)
2025-08-18 09:50:23
391
原创 LangChain简介
LangChain 是一个用于构建基于大语言模型(LLM)的应用程序的开源框架,它提供了一套工具、组件和接口, 可以将 LLM 模型、向量数据库、交互层 Prompt、外部知识、外部工具整合到一起,进而可以自由构建 LLM 应用。Indexes(索引)是处理和组织外部数据(如文档、文本)的核心模块,其主要作用是将原始数据转换为可高效检索的格式,为后续的检索增强生成(RAG)等功能提供支持。模型(Models):封装各类 LLM(如 GPT、Claude)和嵌入模型(用于数据向量化);
2025-08-15 17:34:13
381
原创 使用chroma和LlamaIndex做RAG增强
RAG 原理:通过 “检索(从知识库获取相关信息)→ 增强(将信息作为上下文输入模型)→ 生成(模型基于上下文回答)” 三步,解决大模型知识时效性、领域局限性问题。代码参考: https://blog.csdn.net/lucassu/article/details/146897774。其实不需要那么麻烦,只需要写一个类能调用api接口就行,这个为了使用llama_index中的LLM搞得很麻烦。参考: https://zhuanlan.zhihu.com/p/1895505027537298602。
2025-08-13 17:26:45
283
原创 安装向量数据库chromadb
demo验证: 参考: https://blog.csdn.net/ShuaiQIXiaoLuo/article/details/145134626 (可以看看)使用浏览器访问http://ip地址:8000/api/v2/version 显示版本号 即启动成功。创建虚拟环境: python -m venv llama-env python 3.10 以上。激活: source llama-env/bin/activate。启动 Chroma 服务(服务器模式)像数据库一样远程连接使用。
2025-08-08 15:18:01
726
java与蓝牙模块实现通信.rar
2019-05-16
java调用C++dll
2018-11-16
springCloud学习代码(真正用的时候方便找)
2019-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅