AI初探索——通过阿里云百炼低代码体验来理解AI智能体创建相关知识
本文通过阿里云百炼平台低代码开发一个AI智能体,对开发AI智能体所需要的一些基础知识进行了讲解,有助于更好在后续进行代码开发的理解
初准备
下面这篇文章比较清晰地科普了一些AI大模型的知识
AI大模型相关基础知识
Api Key
- 身份验证:API Key 是阿里云百炼平台赋予用户的唯一标识符,用于验证用户身份,确保只有授权用户能访问平台服务。在搭建 AI 智能体调用百炼平台 API 时,需在请求中携带 API Key,平台以此确认访问权限。
- 服务管理与计费标识:百炼平台通过 API Key 追踪用户对服务的使用情况,如调用频率、时长、资源用量等,作为计费依据。不同 API Key 对应不同项目或应用,方便平台统计和管理使用信息。
Token
- 文本处理与计费单位:Token 是百炼平台处理输入和输出文本的基本单元,也是计费关键因素。AI 智能体与平台大模型交互时,输入提示与模型输出均被拆分为 Token。平台依据消耗的 Token 数量计费,不同模型或套餐中,单个 Token 价格有差异。
- 模型交互控制:Token 数量影响模型与 AI 智能体的交互效果及资源分配。输入 Token 量限制提供给模型的信息量,需精准表达需求;输出 Token 上限可控制输出长度与成本,如生成文章时可设定 Token 上限避免费用过高。
API Key、Token 和 AI 智能体的关系
- 协同运作:API Key 和 Token 协同支撑 AI 智能体在百炼平台运行。API Key 保障合法访问,Token 负责模型交互时的文本处理与资源计量。AI 智能体请求携带 API Key 验证身份,输入输出文本以 Token 形式处理,消耗 Token 数量决定交互成本。
- 成本与性能优化:理解二者关系有助于开发者在搭建 AI 智能体时控制成本与优化性能。合理运用 API Key 关联权限,如选合适模型与套餐,优化输入输出 Token 数量,可在满足功能同时降低成本,如优化提示信息节省 Token 用量,提升效率与准确性。
无代码体验构建AI
首先我们通过阿里云百炼大平台来构建一个智能体,可以理解成我们通过阿里云百炼大平台来生成一个我们自己的AI。
阿里云百炼大平台
注册之后点到下图这个界面
基础概念
模型调试
什么是模型调试?大家都玩过捏脸的游戏吧,我现在要制作一个AI旅游向导,就好像游戏里面需要捏脸一样,我需要通过不断调试五官比例、面部细节等参数来达到我想要的人物样貌,这就跟模型调试一样。
system
system可以看做人设,大家都看过小说,小说里面的主角有很多的人物设定,而system就是你所要制作的AI的人设,后续它在对话中的回应风格与内容都基于此设定展开。
top - p(核采样)
top-p是生成文本时的“选择范围”概念。
-
在AI生成文本(比如AI旅游向导回答问题)的过程中,top - p是一种用来决定生成下一个词的策略,也叫核采样(nucleus sampling)。你可以把它想象成一个缩小的“选择圈”,用来从众多可能的词汇里挑出下一个要生成的词。
-
假设AI在生成句子“我想去[下一个词]旅游”时,脑海里可能会有几百个甚至上千个适合放在这里的词,像“北京”“巴黎”“海边”等等。但要是不加以限制,选择就太多太杂了,可能会生成一些很奇怪或者不符合逻辑的内容。这时候top - p就派上用场了。
-
top - p会先把所有可能的下一个词,按照它们出现的概率从高到低排序。然后,它会从概率最高的词开始,一个一个把词加进来,直到这些词的概率总和达到一个设定的值(这个设定值就是top - p的值,通常是0到1之间的一个小数)。这些被加进来的词就构成了一个“候选词集合”。最后,AI就从这个“候选词集合”里随机选择一个词作为下一个要生成的词。
-
比如说,top - p设定为0.9。当AI考虑“我想去[下一个词]旅游”时,概率最高的词是“北京”,概率为0.3;第二个是“巴黎”,概率0.2;第三个“海边”,概率0.2;第四个“东京”,概率0.15。当把“北京”“巴黎”“海边”“东京”这几个词的概率加起来,总和是0.85,还没达到0.9。于是继续往后加词,直到概率总和达到或超过0.9,这时被选中的这些词就组成了“候选词集合”,AI从中随机选一个作为生成的下一个词。
top - p的值设置得比较高(接近1),“候选词集合”就会比较大,AI有更多选择,生成的文本可能更具多样性,但也有可能因为选择太多而变得不那么合理,出现一些比较奇怪的表述。如果top - p值设置得比较低(接近0),“候选词集合”就小,AI的选择受限,生成的文本会更保守、更符合常见逻辑,但可能会显得比较单调,缺乏多样性。
这很好理解,现在有一个圈,圈里面放了不同大小的玻璃珠,我们可以拿到的都是圈里面的玻璃珠。圈越大,能放下的玻璃珠越多,我们的选择更多,圈越小,能放下的玻璃珠越少,我们的选择更少。
stop
“stop” 是一个用于控制模型输出的重要概念。可以将它想象成一个 “终止信号”,用来告诉模型什么时候该停止生成文本。
temperature(温度参数)
temperature是一个对生成结果的多样性和确定性有着关键影响的重要概念。你可以把它想象成一个 “创作风格调节器”,它能够改变模型在生成文本时选择下一个单词的随机性程度。
想象你在指挥一个画家创作以 “美丽的海滨城市” 为主题的画作。如果 “指挥力度” 很大(类似temperature值低),画家会严格按照你心中对海滨城市的典型印象去画,比如蓝色的大海、金色的沙滩、白色的海鸥,画出的画很相似,就像模型生成的文本比较常规、保守,符合大众预期。
但要是 “指挥力度” 很小(类似temperature值高),画家们就有了更多发挥创意的空间,可能会画出粉色沙滩、彩色的海水,或者加入一些奇幻元素,画作的多样性大大增加,对应到模型生成的文本,就是会出现更多新奇、独特甚至偶尔有点怪异的表达。
enable_search
enable_search通常是一个用于控制是否启用搜索功能的设置或参数 ,它在提升 AI 应用的能力和用户体验方面起着重要作用。
-
功能作用:当enable_search开启时,AI 旅游向导不再仅仅依赖其预训练模型中存储的知识来回答问题。它可以实时搜索外部信息源,如网页、旅游数据库等。例如,用户询问 “最近哪个海岛新开放了特色水上项目?”,预训练模型可能无法及时获取最新信息,通过启用搜索功能,AI 旅游向导可以在网络上查找最新的旅游资讯,从而给出准确的回答。
-
实现方式:与搜索引擎集成:通常,AI 应用会与搜索引擎进行集成。当用户提问且enable_search为真时,AI 会将问题转化为适合搜索引擎的查询语句,发送请求并获取搜索结果。
数据筛选与处理:获取到搜索结果后,AI 需要对大量的数据进行筛选和处理。它会分析搜索结果页面,提取与问题相关的关键信息,过滤掉无关的广告、噪声内容等。
thinking_budget(思考预算)
thinking_budget(思考预算)是一个用于管理 AI 处理任务时资源分配的重要概念。 就像是给 AI 思考问题设定的 “花费限制”。
功能作用
- 防止过度消耗:它给 AI 处理问题时能用的时间或计算资源设个上限。不然碰到难题,AI 可能一直算下去,浪费资源还让用户等太久。比如规划复杂旅行线路,限制 AI 在几分钟内完成。
- 平衡快慢与好坏:调这个预算,能平衡 AI 回答得快还是好。预算低,回答快但可能简单粗糙;预算高,回答更周全,但要多等会儿。像简单问景点位置,就设低点快速回复;问深度旅游攻略,就调高保证质量。
实现方式
- 限制时间:最常见是定个时间限制。用户一问问题,就开始计时,时间一到,不管想没想完,AI 都得给出答案。比如给它 10 秒回答 “怎么玩遍杭州著名景点”。
- 限定资源:也能限制 AI 用的计算资源,像能用多少电脑内存、几个处理器核心。这样它处理问题时,不能无节制占用资源,保证电脑其他程序正常运行。
这个时候我们就一个完成了一个AI的人物设定,就相当于小说里面你创造了这个人物一样。
这就是构建一个AI的具体过程,那么我们如果想制作一个AI软件,应该怎么做呢?
AI应用开发
创建智能体应用
智能体应用
- 定义:智能体(Agent)应用是一种让计算机程序能够像具有自主决策和行动能力的 “智能个体” 一样工作的应用。这些智能体可以感知其所处环境(比如用户输入、外部数据等),根据自身的目标和内置规则或学习到的策略,自主地决定采取何种行动来实现目标。
- 示例:以 AI 旅游向导为例,它就是一个智能体应用。它感知用户提出的旅游相关问题(环境输入),根据其对旅游知识的掌握以及为用户规划最佳行程的目标,自主生成回答(采取行动),向用户推荐景点、规划路线等。
工作流应用
- 定义:工作流应用是将一系列任务、活动按照特定顺序和规则组合起来,以实现某个业务目标或流程自动化的应用。它强调任务的流转和协同,明确每个任务由谁执行、何时执行以及如何与其他任务交互。
- 示例:在一家旅行社,从客户咨询旅游产品开始,到销售人员跟进、制定初步行程、与客户确认细节、预订机票酒店、最终生成旅行合同,这一系列环节可以构成一个工作流。工作流应用会自动化这个过程,确保每个步骤按顺序完成,例如当销售人员制定好初步行程后,系统自动通知客户确认,客户确认后又自动触发预订机票酒店的任务等。
高代码应用
- 定义:高代码应用指的是通过传统的、大量编写代码的方式来开发的应用程序。与低代码或无代码开发相对,高代码开发需要开发者具备深厚的编程知识和技能,手动编写详细的代码来实现应用的各种功能。开发者要处理底层的编程逻辑、数据结构、算法以及与各种系统的接口等。
示例:开发一个复杂的电商平台,需要编写大量代码来实现用户注册登录、商品展示与管理、购物车功能、订单处理、支付集成以及与物流系统的对接等。在这个过程中,开发者要使用诸如 Java、Python 等编程语言,精心编写代码来构建各个模块的功能,处理数据的存储和传输,优化系统性能等。每个功能细节都需要通过编写具体的代码来实现,这就是典型的高代码应用开发方式。
工具调度
-
定义:在智能体或AI系统中,工具调度指的是根据任务需求,智能地选择并调用各种工具以完成任务的过程。这些工具可以是不同的软件组件、API(应用程序编程接口)或者外部服务等。
-
工作原理:智能体首先分析接收到的任务,理解任务的性质和要求。例如,对于一个旅游规划任务,可能涉及到地图工具获取地理位置信息、天气API查询当地天气、酒店预订系统进行住宿安排等。
智能体根据对任务的理解,从可用工具集合中挑选最合适的工具,并按照正确的顺序调用它们。比如先调用地图工具确定景点位置,再依据位置信息调用天气API了解当地天气,最后根据天气和行程调用酒店预订系统。
-
应用场景:在开发AI旅游向导时,工具调度非常有用。当用户询问“规划一个下周在杭州的三天旅游行程”,AI旅游向导可能调度地图工具确定景点分布,调用交通查询工具规划路线,调用酒店预订工具安排住宿。
知识问答
- 定义:知识问答是一种人机交互形式,系统接收用户提出的问题,基于自身所掌握的知识储备进行理解、分析,然后生成相应答案反馈给用户。这些知识储备可以是预训练模型中的知识、知识库中的信息,或者是通过网络搜索获取的内容。
- 实现方式:
- 基于深度学习的语言模型。这些模型在大量文本数据上进行训练,学习到语言的模式和语义关系。当接收到问题时,模型将问题进行编码,通过内部的神经网络层进行推理,预测出最适合的答案。
- 基于知识库的问答系统,系统将问题与知识库中的结构化数据进行匹配和查询。例如,一个旅游知识问答系统,知识库中存储着各个景点的信息,当用户问“黄山有多高”,系统在知识库中查找黄山高度的相关记录并返回答案。
知识问答幻觉消除
- 定义:在知识问答过程中,“幻觉”指的是AI系统生成看似合理但实际上与事实不符或无依据的答案的现象。知识问答幻觉消除就是采取一系列方法和技术,避免或减少这种幻觉的产生,确保AI给出的答案真实、准确且有依据。
AI旅游向导构建
规划
可以选择我们的AI所调用的大模型,因为我们是通过阿里云百炼大平台,所以调用的都是阿里云百炼大平台所提供的。
提示词(Prompt)
在与AI交互,尤其是使用像ChatGPT这样的大型语言模型,或者开发AI旅游向导这类应用时,提示词(Prompt)是你提供给AI的输入文本 ,用于引导AI生成特定类型或内容的回复。可以将其看作是给AI下达的“指令”或“引导语”。
提示词的作用
- 引导生成内容方向:通过设计特定的提示词,你能让AI朝着你期望的方向生成内容。比如,你想让AI旅游向导规划一个浪漫的海滨城市三日游,提示词可以是“请为我规划一份适合情侣的三亚三日浪漫海滨游行程,包括特色餐厅和浪漫景点推荐”。这样的提示词明确了旅游地点、行程天数、目标人群及内容要求,AI会据此生成相应的行程规划。
- 限定回复形式:提示词还能规定AI回复的格式。例如,“以列表形式列举出北京五个著名景点,并简要说明每个景点的特色”,这就要求AI以列表形式呈现答案,方便用户阅读和获取信息。
2. 提示词的构成要素
- 问题或任务描述:这是提示词的核心部分,清晰阐述你想要AI完成的任务或回答的问题。如“如何在预算有限的情况下游览巴黎主要景点?”直接点明了任务场景和主题。
- 限定条件:可以添加各种限定条件,使生成的内容更符合需求。比如时间限制(“为我规划一个明天开始的七天欧洲游”)、风格要求(“用幽默风趣的语言介绍一下桂林山水”)、目标受众(“给老年游客推荐一些平缓舒适的登山景点”)等。
- 示例引导:有时在提示词中给出示例,能帮助AI更好地理解你的期望。例如,“给我介绍一些适合亲子游玩的主题公园,就像上海迪士尼乐园那样,说明其特色游乐项目”,通过迪士尼乐园这个示例,AI能更明确要介绍的内容重点。
自定义变量
定义与作用
在与 AI 交互时,特别是在复杂的提示词构造中,自定义变量可以让提示更具动态性和通用性。例如,你想让 AI 旅游向导为不同城市生成旅游攻略,你可以这样构造提示词:
“假设你是一名专业旅游向导,请为 [City] 生成一份为期三天的旅游攻略,包括著名景点、特色美食和推荐住宿。”
这里[City]就是一个自定义变量。通过替换[City]为不同的城市名(如 “北京”“巴黎” 等),可以重复使用这个提示词模板,让 AI 为不同城市生成相应攻略,无需每次都重新编写完整提示词。
实现方式
在一些支持自定义变量的 AI 工具或平台中,你可以在发送请求前先定义变量的值。你在其中定义City = “东京”,然后在提示词中引用[City],平台会自动将[City]替换为 “东京”,再发送给 AI 进行处理,从而得到东京的旅游攻略。
文件处理
对上传到平台用于AI应用的数据文件进行一系列操作,包括解析、切片、向量化等预处理,为后续的智能体应用开发检索等工作做准备。
全文检索
在知识库中查找与输入内容相关的完整文件或数据的操作。就是你上传一些你自己的独家秘笈到AI的知识库里面,平台会对上传的文件内容进行分析并建立索引,当用户输入检索词时,系统会在整个文件集合中查找包含该检索词的文件或数据,帮助快速定位到与需求匹配的完整知识内容。
切片引用
平台会将上传到知识库的文件进行解析后,分割成一个个小的数据片段,这些片段就是切片。然后根据需求引用这些切片,将相关的切片内容提供给你所使用的大模型(比如我们这里的通义千问)作为上下文,让智能体在生成回答时能够更精准地利用知识库中的特定信息,提高回答的准确性和针对性。
自定义处理
用户可以根据自身的业务需求和应用场景,对文件处理的过程或智能体使用文件数据的方式进行个性化设置。
文档/表格/图片
这些可以上传对应的文件,这些文件就构成我们构建的AI特有的知识库,也就是我们的AI和别人的AI不同的地方。
联网搜索
联网搜索是一种能让 AI 应用突破本地数据和模型知识局限,实时获取互联网信息的功能。开启后我们的AI能够通过互联网获取最新的旅游信息。
知识库过滤
知识库过滤指的是根据特定条件对知识库中的内容进行筛选,只保留符合条件的知识数据。
比如我的AI旅游向导,现在我们的知识库里面包含了吃喝玩乐各种旅游相关内容,但是此时用户只问了我们去旅游去吃什么,那么我们要从吃喝玩乐里面筛选出吃的内容,而不是全部返回给用户。
样例库
存储了一系列示例数据,用于引导和优化 AI 应用的行为。
就类似我们小学语文里面的仿写句子给出来的例句。
MCP(Model Context Protocol)服务
MCP 服务旨在搭建起 AI 大模型和外部工具之间的信息传递通道,通过标准化的交互方式,解决 AI 大模型与外部数据源、工具的集成难题,将 AI 模型与数据 / 工具服务的关系从 “硬编码依赖” 转变为 “协议驱动”。
可以这么理解我们AI旅游向导需要地图功能,我们本来需要自己写一个地图功能的实现,但是有了MCP我们就可以调用别人写的地图功能的实现,而不用自己写。
工具
“工具”是一类具有特定功能的软件组件、服务或程序,它们能够辅助AI完成各种任务,拓展AI的能力边界,增强其在不同场景下的实用性 。
工具的类型
- 数据检索与获取工具:这类工具帮助AI从各种数据源中查找和获取相关信息。例如搜索引擎(如百度、谷歌),在开发AI旅游向导时,使用地图API(如高德地图API)可获取景点位置、交通路线等地理信息数据。
- 知识处理工具:用于对知识进行加工、整理和分析。像自然语言处理(NLP)工具包(如NLTK、spaCy),可以帮助AI进行文本的分词、词性标注、命名实体识别等操作,从而更好地理解用户输入的自然语言问题;
- 计算与分析工具:实现复杂的计算和数据分析功能。例如数学计算库(如Python的NumPy、SciPy),可用于数值计算、线性代数运算等;机器学习框架(如TensorFlow、PyTorch),为AI模型的训练、优化提供算法和工具支持,帮助AI从数据中学习模式和规律。
- 内容生成工具:协助AI生成各类内容。比如文本生成工具,像基于Transformer架构的GPT系列模型,能够根据输入生成自然流畅的文本;图像生成工具(如DALL - E、Midjourney)可以根据文本描述生成对应的图像。在AI旅游向导中,文本生成工具可用于撰写景点介绍、旅游攻略等内容。
工具的调用与集成
- API调用:大多数工具通过应用程序编程接口(API)供AI调用。AI向工具的API发送请求,提供必要的参数,工具处理请求后返回结果。例如,AI旅游向导调用酒店预订API,发送入住日期、退房日期、酒店位置等参数,API返回符合条件的酒店列表及相关价格信息。
- 框架集成:在一些情况下,工具会被集成到特定的开发框架中。例如,机器学习框架会集成各种优化算法工具、数据预处理工具等,开发者可以在框架内方便地调用这些工具进行模型开发。在基于Spring AI开发AI应用时,可以集成LangChain4j提供的各种工具来增强AI的功能。
- 智能调度:对于复杂的任务,AI可能需要调用多个工具协同工作。这就需要智能调度机制,根据任务需求和工具的功能特点,合理选择和调用工具,并处理工具之间的交互和数据传递。例如,在处理一个复杂的旅游规划任务时,AI可能先调用搜索引擎获取目的地的热门景点信息,再调用地图工具规划景点之间的路线,最后调用酒店预订工具安排住宿,通过智能调度确保整个流程的顺畅进行。
插件
可以理解成上面说的工具,但是有区别。
智能体
就是在你的智能体里面装了另外一个智能体,这个智能体用来帮助你完成各种任务,我们的智能体就像一个人,然后安装的智能体就像我们给他配的小机器人。
工作流
就像一个计划表,计划接下来需要做的每一步。例如,旅游公司的在线旅游服务业务,使用已发布的旅游服务工作流组件,从用户咨询到最终旅行安排完成,整个复杂的业务流程都能稳定实现自动化处理。
短期记忆
短期记忆就像这个智能体小助手的临时笔记本。当你和它聊天的时候,它会把你们刚刚聊过的内容记在这个本子上。比如说你先问了“北京有啥景点”,接着又问“那这些景点附近有啥好吃的”,它就会根据短期记忆里前面提到的北京景点,来回答后面关于景点附近美食的问题。不过这个本子记的东西很快就会被新的内容覆盖,不会保存太久。
携带上下文轮数
这就像是短期记忆这个临时笔记本的页数限制。比如说携带上下文轮数是3,那就意味着智能体最多能记住你们最近3轮对话的内容。每新说一轮,最早的那一轮就可能被挤出去。这样能保证它在和你交流的时候,不会因为记太多太久之前的内容而混乱,同时又能根据最近的对话,更连贯地回答你的问题。
长期记忆
长期记忆就像是一个大图书馆,智能体把学到的各种重要旅游知识都存放在这里。像每个城市的著名景点、特色美食、风俗习惯,这些不会轻易忘记的信息都在这个图书馆里。当它回答你的问题时,除了参考短期记忆里刚聊过的内容,还会从这个大图书馆里找资料,给出更全面、准确的回答。
干预智能体回复
有时候智能体给出的回答可能不太符合你的心意,干预智能体回复就像是你给它指了一条明路。
增强智能体回复
我们的智能体是底层选用了一个大模型,但是每个大模型的能力倾向都是不一样的,当我们底层的大模型的能力不足的时候,开启增强智能体回复可以自动进行模型切换然后达到增强回复的效果。
展示回答来源
开启后会告诉你这个AI旅游向导给你的回答是来源于网络搜索还是我们的专有秘籍。
拼装长度规划
限制控制输入智能体的长度。
到这里就结束啦~ 恭喜你已经成功了解了创建一个AI智能体应用所需要具备的基础知识!
更多推荐
所有评论(0)