从场景设计开始
什么是 Agent
在当今火热的人工智能领域(AI),Agent,即智能体是一个核心概念。Agent 是指一种能够感知所处环境,并依据所感知到的信息自主作出决策并执行相应行动,以实现特定目标的实体。
智能小 Q 的 Agent 定义为,基于数据围绕特定业务场景完成数据解决方案实体,如基于销售订单明细结合销售拜访记录做成销售周报,针对销售异常增长下跌进行销售动作归因分析的 Agent 等。
Agent 能解决我的哪些问题
在智能小 Q 产品中,我们聚焦数据 Agent 领域,主要是基于数据+企业知识库,能结合大模型,智能地生成企业洞察。具体化为能够基于用户问题或者指令,结合企业、用户的数据、知识库进行智能回答,并执行相应行动的实体。如根据用户问题智能获取数据,根据用户分析需求智能生成分析报告,主动帮助用户定期监测数据生成洞察归因报告推送给用户等。
用户可以基于自己的需求,设计和开发自己的智能体。
如何定义我的场景和问题
首先确定要解决的具体问题及目标用户:如企业电销质量管理团队需要基于拜访小记数据进行电销质量跟踪,以评价每个销售人员的拜访是否符合销售规范。这里的目标用户就是电销质量管理团队,解决的目标问题就是通过拜访数据评价拜访质量。
其次明确输入输出和相关标准
Agent 输入:即数据来源,可以是结构化数据或非结构化数据,或者两者兼有。
类型 1: 结构化数据:拜访明细表,客户明细表;数据库或者 Excel 等。
类型 2:非结构化数据:产品及分模块介绍文档;拜访质量标准文档。
Agent 输出:
每次拜访记录的质量评价(优秀、合格、不合格)。
销售人员的拜访质量评价(各层级占比)。
销分团队拜访质量评价。
评价质量标准:
示例:如优质为销售动作有进展有结果且记录内容质量佳;符合为销售进展、结果、记录内容质量三者符合其一;不达标为内容质量差、基本信息缺乏、客户无进展。
素材准备
大模型提示词即 Prompt
根据业务需求设计大模型解读数据的提示词,即 Prompt。如前示例,可以根据评判拜访记录质量的标准作为原型进行 Prompt 编写。一个较为完善、能够提供更好更稳定的输出的 Prompt 编写建议:
Agent 开发与调试
获取数据集 ID
获取用户 ID
使用 Dify 开发智能体
在工作室入口下新增【创建空白应用】,选择进阶用户适用下的【chatflow】。
在【应用名称&图标】中定义 Agent 名称,然后按需添加描述后点击创建,进入编排页面。
在 LLM 节点输入需要大模型解读的 Prompt,Prompt 如何编写可以自学,互联网上有较多材料,搜索即可获得。
在 LLM 之前需要获取相应的 s 数据,则可以在 LLM 节点之前,新增代码(code)节点,代码节点通过 Python 方式访问 OpenAPI 取数方法如下:
内容配置方式:
代码:
from alibabacloud_quickbi_public20220101.client import Client as quickbi_public20220101Client from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_quickbi_public20220101 import models as quickbi_public_20220101_models from alibabacloud_tea_util import models as util_models from alibabacloud_tea_util.client import Client as UtilClient import urllib3 import json def main(userQuestion: str, userId: str, cubeId: str) -> dict: urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) config = open_api_models.Config( access_key_id='your_key', access_key_secret='your_secret' ) config.endpoint = f'quickbi-public.cn-hangzhou.aliyuncs.com' client = quickbi_public20220101Client(config) smartq_query_ability_request = quickbi_public_20220101_models.SmartqQueryAbilityRequest( user_question=userQuestion, cube_id=cubeId, user_id=userId ) runtime = util_models.RuntimeOptions() runtime.ignore_ssl = True response = client.smartq_query_ability_with_options(smartq_query_ability_request, runtime) ret_json = json.dumps(response.body.to_map(),ensure_ascii=False) if len(ret_json) >= 80000: return { "result": "超过80000字符限制" } return { "result": ret_json }
相关内容获取来源:
从开放平台获取 OpenAPI 范围的密钥相关信息。
access_key_id='your_key',
access_key_secret='your_secret'