定义函数, 演示: Indexes - 索引向量数据库.# 完整RAG前置4步逻辑: Load(加载各类知识库文件) - Split(长文本切小块) - EmbedStore(小块转向量,存到向量数据库) - Retrieval(用户问题向量化,召回最匹配的知识库片段给大模型做参考)def dm03_index_vector_db():# 回顾: 完整RAG知识库构建流程: 加载txt文档 - 文本分块 - 向量化存入Chroma本地向量库 - 相似度检索查询from langchain_text_splitters import CharacterTextSplitter # 导入文本分割器from langchain_chroma import Chroma # 轻量级本地向量数据库from langchain_community.document_loaders import TextLoader # 导入纯文本加载器from langchain_ollama import OllamaEmbeddings # 本地嵌入向量模型# ---------------------------------- 步骤1: 加载本地txt知识库文档 ----------------------------------# 1. 实例化txt加载器, 指定文件路径 和 编码.loader TextLoader(./data/pku.txt, encodingutf8)# 2. 读取文件, 返回包裹全文的Document对象列表docs loader.load()print(fdocs: {docs})# ---------------------------------- 步骤2: 长文档切割分块 ----------------------------------# 1. 初始化字符文本分割器.# 参1: 分割符. 参2: 每块最大字符长度. 参3: 重叠字符长度.text_splitter CharacterTextSplitter(separator\n\n, chunk_size200, chunk_overlap30)# 2. 使用分割器, 对Document对象列表进行文本块切割, 生成多份小块Document对象.split_docs text_splitter.split_documents(docs)print(fsplit_docs: {split_docs})# ---------------------------------- 步骤3: 向量化并持久化存入Chroma向量库 ----------------------------------# 1. 加载本地专用向量化模型mxbai-embed-large, 负责把文本转为数值向量.embeddings OllamaEmbeddings(modelmxbai-embed-large)# 2. 新建/写入向量库: 自动对split_docs每一块文本生成向量, 存入本地向量数据库.chromaDB Chroma.from_documents(documentssplit_docs, # 分块后的文档列表embeddingembeddings, # 向量化模型persist_directory./chromaDB # 持久化文件夹, 向量, 元数据都会存在这里.)# 3.扩展说明: 如果向量库已经提前建好,数据已存入, 后续程序可直接加载使用, 无需重复向量化.# chromaDB Chroma(persist_directory./chromaDB, embedding_functionembeddings)# ---------------------------------- 步骤4: 相似度检索查询 ----------------------------------# 1. 定义变量, 记录: 用户提问.query 1937年北京大学发生了什么?# 2. 获取与用户提问最相似的2个文本块.# similarity_search(): 将问句向量化, 匹配库中距离最近的k条文本块.result chromaDB.similarity_search(query, k2)# 3. 打印结果.print(fresult: {result})agentsAgent 概念Agent智能体是一种能够感知环境、进行决策和执行动作的智能实体。不同于传统的人工智能Agent 具备通过主动思考、调用工具去逐步完成给定目标的能力。为什么要调用工具因为大模型虽然非常强大但是也具备一定的局限性比如不能回答实时信息、处理数学逻辑问题仍然非常的初级等等。因此可以借助第三方工具来辅助大模型的应用。从大模型的角度来看Agent其实就是基于大模型的语义理解和推理能力让大模型拥有解决复杂问题时的任务规划能力并调用外部工具来执行各种任务利用向量数据库保留“记忆”的一个智能体。负责思考, 理解 安排做事步骤 记前事Agent 大模型 任务规划 (Planning) 使用外部工具执行任务 (ToolsAction) 记忆(Memory) Agent 聪明的小助手, 能感知周围, 拿主意, 还能动手做事儿.和传统AI不同 - 它会自己琢磨, 用工具一步步把目标完成.把Agent比作一个人的话, 他应该有大脑 (语义理解、存储记忆、推理规划、专业知识)、五官(接收文本、视觉输入、听觉输入等)、四肢 (使用工具完成各种具体任务) 等主要部件Agent 人. 大脑 - 大模型, 负责理解话, 记东西, 推理规则, 懂专业知识.五官 - 接收信息, 看文字, 图片, 听声音...四肢 - 用工具干活, 用外卖软件找吃的, 用地图找路案例:演示如何使用LangChain的Agent(代理)功能, 结合工具(例如: 维基百科查询, 数学计算...)完成复杂任务.细节: 需要安装的包 - 无需安装, 因为之前已经装过了.pip install wikipediapip install numexprAgent相关解释:概述:Agent就是1个聪明的小助手, 能感知周围, 拿主意, 动手做事儿, 和传统AI不同, 它会自己琢磨, 用工具一步步把目标完成.问: 为啥要用工具呢?大模型存在一些弊端, 例如: 无法回答实时的事儿, 处理数学题或者逻辑题也很初级...问: Agent到底是啥?从大模型的角度看, Agent靠的是语言理解 推理能力Agent 大模型(负责思考,理解) 任务规划(安排做事儿步骤) 用外部工具干活 记忆(记忆之前的事儿)Agent的工作流程:1. 用户提出任务.2. Agent启动.3. 大模型思考和决策(循环) - 先思考, 然后判断要不要用工具.4. 用户输出.大白话解释:你派活 - 小助手整理需求给AI大模型 - AI大模型判断用不用工具, 反复折腾直到把事儿做完 - 小助手把结果给你Agent的组成部分:工具(Tools) 长短期记忆(Memory) 任务规划(Planning) 执行(Action)总结:Agent就像个会规划, 有记忆, 会用工具的助手, 把复杂的事儿办好.# ------------------------------------ step1: 查看LangChain全部内置工具名称 ------------------------------------# 导包from langchain_community.agent_toolkits.load_tools import get_all_tool_names# 1. 调用函数, 获取所有官方封装好的工具名字列表.results get_all_tool_names()# 2. 打印完整工具列表.print(fLangChain所有内置可加载工具名称: \n {results})# 3. 分割线.print(♥️ * 30)# ------------------------------------ step2: 构建带记忆, 双工具的LangChain Agent ------------------------------------# 导包from langchain_core.messages import HumanMessage # 用户消息封装类from langgraph.checkpoint.memory import MemorySaver # 记忆检查点: 内存级存储对话历史, 实现多轮上下文记忆from langchain.agents import create_agent # 创建Agentfrom langchain_community.agent_toolkits.load_tools import load_tools # 加载工具from langchain_openai import ChatOpenAI # 通用对话模型类, 兼容所有遵循OpenAI接口格式的大模型服务商.import os # 读取系统环境变量, 存放密钥, 接口地址等敏感信息.# 1. 初始化大模型实例.model ChatOpenAI(# 大模型服务商兼容OpenAI的接口地址base_url os.environ.get(base_url, https://dashscope.aliyuncs.com/compatible-mode/v1),modelqwen-plus, # 模型名称openai_api_keyos.environ.get(DASHSCOPE_API_KEY), # 从环境变量中获取密钥max_tokens1000, # 限制单词模型回复最大Token数量temperature0 # 温度系数, 控制模型生成的随机性(越大越随机))# 2. 初始化内存记忆存储对象 - 内存检查点.# 作用: 保存同1个thread_id下所有历史对话消息, 实现多轮上下文连贯回答.# 缺点: 程序进程关闭后内存数据全部清空, 生产环境中可以换成 RedisCheckPointer 或者 PostgreCheckPointer...memory MemorySaver()# 3. 批量加载业务所需工具.# 工具1 wikipedia 联网访问维基百科, 查询客观百科知识 - 默认: 需要搭梯子.# 工具2 llm-math 独立数学计算工具...tools load_tools([wikipedia, llm-math], llmmodel)# 4. 创建Agent执行器核心对象.# 参1 model: 决策大模型, 负责判断什么时候调用哪个工具, 解析工具返回结果, 整理最终回答.# 参2 tools: 可供Agent调用的全部工具集合.# 参3 checkpointer: 内存检查点, 存储对话历史, 实现多轮上下文连贯回答.agent_executor create_agent(model, tools, checkpointermemory)# 5. 会话管理配置参数, 相同thread_id - 共享同一份对话记忆. 不同thread_id - 完全隔离两套对话上下文.config {configurable: {thread_id: abc123}}# 6. 流式执行(第1轮)用户提问.for chunk in agent_executor.stream({messages: [HumanMessage(content计算一下300的25%是多少?)]}, config):# 打印当前分片完整结构(可看到思考, 工具调用, 返回结果, 输出回答等不同节点数据. )print(chunk)# 打印分割线, 可读性更强.print(- * 30)
企业数字化 ERP 产品动态
相关推荐
pi0代码解析-examples-simple_client-2 这是一个无机器人的策略服务器压测/延迟基准工具。它连上一个已经跑起来的 WebSocket 策略服务器,按环境格式生成随机假观测反复请求推理,统计端到端延迟与各分段耗时,最后打印表格或存成 parquet。
serve_policy.py 启动的服务器 ◄──WebSocket── simple_client/mai… · 2026/11/6 7:48:32
pi0代码解析-examples/aloha_real-4 openpi(π₀ / π₀.₅ / π₀-FAST 机器人策略模型)在 ALOHA 真机平台上的完整示例工程,覆盖“训练数据准备 → 真机推理部署 → 数据采集辅助”三个环节。
它把 ALOHA 双臂机器人真机接入 openpi 的 远程 WebSocket 策略服务,实现“观测采集 → 网络推理 → 动作执行”的… · 2026/11/6 7:48:32
pi0代码解析-examples/aloha_sim-3 openpi(π₀ / π₀.₅ 机器人策略模型)在 ALOHA 仿真环境中的闭环评测脚本。它的目的是:在没有真机的情况下,用 MuJoCo 仿真验证策略能否完成任务,并录制视频供定性检查。
启动一个 Gym ALOHA 仿真环境,通过 WebSocket 连接远程策略服务器,形成“观测 → 推理 → 动作… · 2026/11/6 7:48:32
大模型实操指南:从本地部署到PPT级可控生成 1. 这不是“学大模型”,而是重建你和信息世界的关系“大模型相关内容的研究学习”——看到这个标题,我第一反应是笑。不是嘲笑,是那种在实验室熬了三个通宵、刚调通一个LoRA微调任务后,盯着终端里跳出来的loss曲线突然失语的笑。因… · 2026/11/6 15:59:18
高效查找第K大元素:排序、堆与快速选择算法对比 1. 问题描述与核心挑战 给定整数数组 nums 和整数 k,我们需要找到数组中第 k 个最大的元素。请注意,这里要求的是排序后的第 k 个最大元素,而不是第 k 个不同的元素。 这个问题看似简单,但隐藏着几个关键挑战: 当数组… · 2026/11/6 15:05:13
企业设备数字化管理:易点易动系统实践指南 1. 设备管理在企业数字化转型中的核心价值 设备管理作为企业资产管理的重要组成部分,正在经历从传统人工记录向数字化、智能化管理的转变。在制造业、医疗、教育等行业,设备资产往往占据企业总资产的60%以上,其管理效率直接影响企业运营成本和… · 2026/11/6 15:05:13
企业元宇宙治理框架:技术实现与合规路径 1. 企业元宇宙治理框架的核心逻辑 企业元宇宙作为数字化转型的新阶段,其治理框架需要兼顾技术创新与合规要求。从技术架构角度看,企业元宇宙本质上是一个由数字孪生、区块链、人工智能等技术构成的复杂系统。这个系统需要解决三个核心问题:如… · 2026/11/6 14:59:51
基于CDC的MySQL实时数据同步方案实践 1. 项目背景与核心价值 在数据驱动的业务场景中,数据库表间数据同步是个高频需求。我最近在电商订单系统中就遇到了这个问题:订单主表数据变更后,需要实时同步到统计分析表和风控表。传统的手动同步或定时任务方式存在延迟高、易出错的问题&a… · 2026/11/6 14:00:34
JSP农贸交易系统开发与智能撮合算法实践 ## 1. 项目概述与核心价值农贸产品交易系统是连接农产品生产端与消费端的重要数字化桥梁。这个基于JSP技术的交易平台(项目编号g3608)完整包含了程序源码、数据库设计、部署指南和开发环境配置,是一套开箱即用的农产品B2B解决方案。我在参与某… · 2026/11/6 14:00:34
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23
三菱PLC数据采集到数据库的时序设计:Python+MC协议实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11
ASIC主模式RTL设计:状态机与三态驱动的流片级实现 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11
STM32嵌入式C++开发:GDB调试与Renode仿真实战指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23