SmartTravel项目实现
P02-项目实现一、项目架构与代码架构图【掌握】1 项目架构图SmartVoyage 是基于A2A与MCP协议实现是一个多agent系统。系统包括 LLM 路由服务器(意图识别)、天气代理服务器(查询天气数据库)、票务代理服务器(查询票务数据库)、票务预定服务器(API接口)、MCP 工具服务器(数据库接口)、数据采集脚本和 Streamlit 前端客户端。 2 代码架构图以下是代码层面的架构图。 代码结构如下: 二、项目实现1 整体流程【熟悉】 配置基础环境(config.py 和 create_logger.py) 初始化数据库(SQL 脚本) 采集数据(spider_weather.py) 完成 MCP 服务器(mcp_weather_server.py 、mcp_ticket_server.py 和 mcp_order_server.py) 完成A2A代理服务器(weather_server.py 、ticket_server.py 和 order_server.py) 完成客户端(main.py) 启动服务进行联调 启动MCP 服务器(mcp_weather...
SmartTravel项目技术
P01_项目技术一、Function Call 函数调用 1 什么是Function Call【理解】概念:大模型基于具体任务,智能决策何时需要调用某个函数,同时返回符合函数参数的 JSON对象。 能力获得的方式:基于训练来得到的,所以并不是所有大模型都具有Function Call能力。 优势:信息实时性、数据局限性、功能扩展性。 2 Function Call 工作原理【理解】主要步骤: 用户(client)发请求提示词,chat server将提示词和可以调用的函数发送给大模型 GPT模型根据用户的提示词,判断是用普通文本还是函数调用的格式回复我们的服务(chat server) 如果是函数调用格式,那么chat server就会执行这个函数,并且将结果返回给GPT 然后模型使用提供的数据,用连贯的文本响应。 3 Function Call 使用方式3.1 自定义tool结构【熟悉】代码: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950...
基于LangGraph的垂直领域智能体实战
基于LangGraph的垂直领域智能体实战 实现步骤: 环境搭建:能够独立配置LangGraph开发环境。 掌握工具:掌握LangGraph的核心概念(图、节点、边、状态、流程控制等) 基础开发:完成基本的对话系统/工作流的搭建。 设计模式:理解和实践六种主流的智能体设计模式。 完成项目:使用LangGraph,完成新车型设计方案,具备构建智能体的实战能力。 1. LangGraph介绍 a. 需要达到的目标 做到了解基于大模型的智能体 了解LangGraph和LangChain的区别 能够独立安装LangGraph环境 能够快速上手第一个LangGraph程序 b. 智能体 智能体(Agent)是指能够感知环境并采取行动以实现特定目标的代理体。它可以是软件、硬件或一个系统,具备自主性、适应性和交互能力。智能体通过感知环境中的变化(如通过传感器或数据输入),根据自身学习到的知识和算法进行判断和决策,进而执行动作以影响环境或达到预定的目标。智能体在人工智能领域广泛应用,常见于自动化系统、机器人、虚拟助手和游戏角色等,其核心在于能够自主学习和持续进化,以更好地完成任务和适应...
借助MCP搭建AI数据分析智能体
借助MCP搭建AI数据分析智能体进行MCP智能体快速发开发,来搭建一个能够进行SQL查询和Python自动编写的入门级数据分析智能体。 1、创建项目使用Pycharm创建一个项目 2、配置MySQL安装好mysql后,创建表并插入数据 12345678910111213141516171819202122CREATE DATABASE school;USE school;-- 然后创建一个虚拟表格,里面包含了10位同学各自3门课程的分数:CREATE TABLE students_scores ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), course1 INT, course2 INT, course3 INT );INSERT INTO students_scores (name, course1, co...
Langchain
langchain介绍概念什么是LangChainLangChain由 Harrison Chase 创建于2022年10月,它是围绕大模型应用的开发建立的一个框架。 LLMs使用机器学习算法和海量数据来分析和理解自然语言。GPT3.5、GPT4是LLMs最先进的代表,国内百度的文心一言、阿里的通义千问也属于LLMs。 LangChain自身并不开发LLMs,它的核心理念是为各种LLMs实现通用的接口,把LLMs相关的组件“链接”在一起,简化LLMs应用的开发难度,方便开发者快速地开发复杂的LLMs应用。 官网链接https://python.langchain.com/docs/integrations/text_embedding/huggingfacehub langchain组件LLM、Prompts、Memory、Index、Chains、Agent 核心组件LLM、Prompts、Memory 可以参考deepseek对话网页的主要组成部分:右上方的大模型对象、右下方的聊天框、左边的会话记录 一个大模型的应用部署,实际只需要一个大模型(调用api key、本地部署大模...
MCP协议
MCP协议 MCP模型上下文协议 1、什么是MCP协议 MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 在2024年1月提出的一套开放协议,旨在实现大型语言模型(LLM)与外部数据源和工具的无缝集成,用来在大模型和数据源之间建立安全双向的链接。 Anthropic的愿景,希望把MCP协议打造成AI世界的“Type-C”接口,可以通过MCP协议工具、数据链接起来,达类似HTTP协议的那种通用程度。 1.1核心概念 协议的定义: 协议(Protocol)是一种约定或标准,用于定义不同系统、设备或软件之间如何通信和交换数据。它确保各方使用相同的“语言”和规则,避免混乱。例如,HTTP协议定义了浏览器与服务器的交互方式,USB协议标准化了设备连接。 协议在AI中的作用: 在大型语言模型(LLM)和AI代理系统中,协议用于标准化模型与外部工具、数据源或其它代理的交互。AI系统越来越复杂,需要模型访问外部资源(如数据库、API)或与其他AI协作,而协议就是“桥梁”,确保高效、安全的通信。 以下是MCP vs. 传统API (Flask/...
milvus索引算法-IVF-PQ的原理解释
给我解释一下milvus数据库索引方法的IVF-PQ的原理 好的,我们来详细解释一下 Milvus 中 IVF-PQ 索引的原理。我会用循序渐进的方式,从核心概念到整体工作流程来讲解。 核心思想:先粗筛,再细算IVF-PQ 不是一个单一的算法,而是两个经典技术的结合: IVF - 倒排文件:用于“粗筛”,快速缩小搜索范围。 PQ - 乘积量化:用于“细算”,在缩小后的范围内高效且近似地计算距离。 把它们组合起来,IVF-PQ 的工作方式就像图书馆找书: IVF:先根据书的类别(比如“计算机科学”、“文学”),找到可能存放目标书籍的几个书架(粗筛)。 PQ:然后在这几个书架上,不是一本一本地仔细看书名,而是通过书脊的颜色、厚度等特征快速排除大部分无关的书,最后只对剩下的几本进行精确比对(细算)。 这样避免了在整个图书馆(全库)进行地毯式搜索,极大地提升了效率。 1. IVF - 倒排文件目标: 将整个向量空间分割成 nlist 个小单元,缩小搜索范围。 工作原理: 聚类:在构建索引时,使用 K-Means 等聚类算法对所有原始向量进行训练,得到 nlist 个聚类中心(...
基于ChatGLM微调多任务
项目整体介绍:项目背景LLM拥有庞大的知识库,但是博而不精。在RAG项目中ChatModel,主要是用来回答用户的通用型知识和陪着聊天,但是LLM完成一些任务会存在一些答案解析上的困难,比如输出答案的格式:生成json格式、给生成的答案加水印等等。一般可以通过提示词完成,但是提示词有缺点,比如用户问:把上一代产品和现在的芯片做一个对比图,大模型私有化部署后,不知道上一代产品是什么,你需要告诉它上一代产品是G250芯片,现在是G260芯片,RAG只能给大模型提供什么是B260芯片,以及相关参数知识。但不能解决大模型理解用户的习惯问题。微调能更懂用户(企业)的偏好。 微调和提示词的优缺点: 维度 🛠️ 微调 🎩 提示词工程 核心比喻 量身定制的专属司机 熟知你的习惯、路线和偏好,无需多言。 使用通用地图APP 功能强大,但每次都要重新输入目的地和设置偏好。 工作原理 改变模型“大脑”结构 通过训练数据更新模型权重,内化知识和规则。 给模型“临时指令” 通过精心设计的文字引导模型,不改变其底层参数。 优点 ✅ 高可靠性 & 一致性:形成“肌肉记忆”,输出稳...
RAG项目梳理
目前代码用到的包pymilvus、logging 模块一、听课笔记项目背景能解决大模型幻觉、过时、安全、专业知识的弊端的解决方法就是:RAG+微调。RAG和微调本质上都是为了,让大模型更好地基于企业私有知识来回答问题,RAG提供外部知识库,提供数据来源。微调基于知识库,告诉大模型怎么生成答案。例如提示词微调Prompt 微调。基于企业私有知识的垂直领域微调:拿企业的知识做微调训练比如PEFT中lora拿少量数据集,去给大模型做一个微调。基于企业私有知识的RAG问答系统:给企业的私有知识创建一个数据库,让大模型去做意图识别,从而进行专有领域的一个问答。微调的弊端:需要微调人才+需要显卡资源 通用模型和垂直领域模型的区别:能做所有任务,通晓所有领域常识的模型就是通用型或者说通用领域的大模型,专精于某个领域(e.g.法律)的就是垂直领域大模型。 项目流程不进入RAG:用户输入query,先经过mysql检索阈值>=0.85的高频回答对。存在直接返回,无需进入RAG流程。 进入RAG:找到本地文档–文档切分,切分的文档做embedding,存入milvus。 query也...
图像分类
图像分类_overview图像分类分类模型给图像分配多个标签,每个标签的概率值不同,如dog:1%,cat:4%,panda:95%,根据概率值的大小将该图片分类为panda,那就完成了图像分类的任务。 常用数据集CIFAR-10和CIFAR-100数据集解释CIFAR-100 = Canadian Institute For Advanced Research - 100 classes CIFAR:加拿大高等研究院 100: 代表这个数据集中包含的 100个细粒度的类别(classes)。这与它的前身CIFAR-10(包含10个类别)形成了直接对比。 细粒度解释“细粒度”是相对于“粗粒度”而言的,它描述的是一种更精细、更具体、更关注细微差别的分类或分析级别。 您可以把它想象成观察事物的“放大镜倍数”: 粗粒度:低倍数放大镜,看大致的轮廓和类别。 例如:识别一辆“车”、一只“鸟”、一条“狗”。 细粒度:高倍数放大镜,看具体的型号、品种或子类型。 例如:识别这辆车是“2012款奥迪A6”还是“2020款特斯拉Model 3”;这只鸟是“北美红雀”还是“美洲知更鸟...