搭建你的第一个Agent智能体

引言

从本节课开始,我们将实践市面上常见的几个智能体(Agent)平台。2023年是AI技术的爆发元年,而2024年则见证了更多AI应用平台的崛起。这些平台通常提供简洁直观的操作界面,如“一句话创建你的Agent应用”;还支持低代码的工作流编辑;部分平台甚至提供SDK,方便快速开发和接入应用。

以下是国内外一些知名的Agent平台:

  • Autogen(微软)
  • MetaGPT
  • Auto-GPT
  • FastGPT
  • Dify
  • 智谱清言
  • coze(扣子)
  • 百度智能云千帆AppBuilder

为帮助大家更好地了解这些平台,下面提供了两张国内外AI Agent平台的概览图。由于缺乏完整的国内图片,暂时使用了掘金大模型子站的图片进行展示。

在这里插入图片描述

工具介绍

OpenAI自从2022年底发布了ChatGPT以来,一直是全球关注的焦点。不仅推出了遥遥领先的GPT系列大模型,还不断在功能和应用场景上进行创新和拓展。 今天我们要介绍的第一个实战项目是使用OpenAI公司的自定义GPT来创建我们的第一个实战Agent:掘金小册撰写助手。

我们会使用到 GPT语聚AI 这两个工具。下面先来简单介绍这两个工具。

自定义GPT

自定义GPT是OpenAI用户创建的个性化版本,只有ChatGPT Plus用户才能创建和使用。如果你没有Plus账户,可以参考之前的章节获取。自定义GPT使用的是GPT-4模型,可以创建多个不同场景的GPT,方便切换使用。你还可以增加知识文件,浏览网页,使用DALLE·3生成图像和运行代码。

下图是GPTs的首页,展示了许多开发者的公开GPT。

在这里插入图片描述

语聚AI

语聚AI是一站式的AI服务平台,集成了许多常用的工具,例如发送各种邮件(QQ、163、企业微信邮件)、微软Bing搜索、钉钉群机器人等。在我们的实战中,主要使用应用助手模块。

当然,语聚AI还有其他功能:知识助手、对话助手和开发平台。感兴趣的同学可以去网站探索更多功能。

实战开发

工具准备

目标:实现一个掘金小册撰写助手,帮助作者了解掘金小册的编写要求及如何写出高质量的技术文章。用户还可以向助手询问相关知识,并将编写好的文章发送到邮箱。

需求分析: 为了实现这个需求,我们需要使用自定义GPT的知识库功能和Action能力,以及语聚AI的工具能力。

材料准备

  • 关于掘金小册的资料可以在这个链接找到:如何写一本掘金小册。每个掘金小册作者都需要阅读这些内容,并将小册的所有章节保存成txt文本,方便后面上传到自定义GPT中。

  • 工具方面,需要用到语聚AI的发送邮件功能。先注册并登录语聚AI平台,首次注册会赠送免费使用额度,可以在右上角看到余额。

先注册登陆语聚AI平台,首次注册会赠送免费使用的额度,可以在右上角上看到你的余额
点击左侧菜刀栏上的“+”,创建一个语聚GPT,填好名称后会生成一个工具助手

在这里插入图片描述
在这里插入图片描述

在页签“工具”可以添加工具, 这里添加了发送邮件和微软Bing搜索功能。

在这里插入图片描述

添加邮件的时候 需要选择账号,如果没有账号的话,可以根据提示生成,其他的选项默认配置即可

在这里插入图片描述

添加完工具之后可以回到对话界面,在聊天界面测试你添加的功能,比如输入:“ 发送邮件到908625658@qq.com, 邮件内容是:’语聚工具测试邮件‘ ”,可以看到邮件发送成功,这就说明我们的工具没问题
在这里插入图片描述

接下来我们需要创建一个API Key,以便在GPT中使用,点击页签“集成”,选择“API 接口”,新建一个API Key,如下所示

在这里插入图片描述

创建自定义GPT

-创建GPT:登录到ChatGPT之后,点击左侧菜单栏的“探索”按钮,跳转到自定义GPT首页。点击右上角的“+创建”按钮,进入配置页面。

在这里插入图片描述

  • 设置GPT 在配置页面,我们可以看到有两个tabs页签, 分别是“创建”和“配置” 1、“创建” 支持我们一句话描述生成我们的自定义PPT; 2、“配置”:这让我们更加精细化的选项配置,这里我们选择这个

名称和描述我们都填入“掘金小册撰写助手”,然后配置我们的指令,将下面的一大串文本都复制到指令输入框

Rules:
你是掘金小册的专业撰写助手,能够帮助小册作者写出高质量、出色的技术文章,还可以发送邮件。
你将始终使用中文回复。
如果用户咨询掘金小册相关的问题,你会根据上传的文件进行回答;
你需要区分用户给你的任务是什么,如果只是调用工具,则直接调用工具,如果是编写文章,你会采用下列步骤,下面是你辅助的具体手段,包裹在 "====="  "====="之间

=====

1. 设定文章标题  2. 完成文章大纲 3.文章内容编写
用户输入的内容包括网页链接或是上传附件,也可以可以联网获取最新的一些媒体信息。

##文章标题:
1. 联网总结链接内容或是附件的输入内容,总结内容摘要,设定读者比较喜欢的爆款标题,需要能吸引读者
2. 请列出三个标题供用户选择其中一个
3. 如果用户询问链接或是附件内容相关的问题,请根据实际内容回答。可能后面会使用到相关信息

##大纲编写:
1. 创建大纲:根据文章目的、目标受众、语调、字数、风格和内容格式 输出文章的大纲。将内容分成若干部分,每部分都有小结和预计字数。
管理字数:在写作过程中,我会注意字数,确保遵循您的指定要求,并在各个部分之间平滑过渡
创意扩展:我会使用不同的策略,如扩展讨论、加入项目符号列表、添加有趣的事实等,来丰富内容,同时保持内容的相关性和质量。
2.在大纲完成后,询问使用者是否可以可行。如果可行在执行一下步骤。如果不可行在根据要求重新更正或编写

##文章内容:
1.根据大纲内容分步写作与交付:请一部分一部分地写作并交付内容,每完成一部分后,我会更新进度并为接下来的部分做计划。
2.内容质量:整合SEO策略,并专注于使内容对目标受众有吸引力,适合预定的平台。
3.内容格式:默认的格式是markdown,但如果需要,请按照任何格式结构化内容。
4. 连续交互:对于复杂的话题或更长的字数,请询问是否继续以保证整个内容的连贯性。

## 文章中联网信息获取渠道参考
通过以下渠道,联网获取关于文章内容最新研究进展、行业动态、专家
意见和实际应用案例,为即将要编写自媒体文章提供丰富、深入的内容。
1. 学术论文和研究报告
数据库搜索:使用Google Scholar、IEEE Xplore、ArXiv等学术数据库搜索最新的研究论文。
大学和研究机构网站:访问知名大学和研究机构的网站,如MIT, Stanford, OpenAI等,获取最新研究动态。
2. 专业网站和新闻门户
行业新闻网站:如TechCrunch, Wired, MIT Technology Review,腾讯新闻,新浪新闻等,提供科技和AI最新进展。
博客和在线论坛:例如Medium, Hacker News, Reddit,新浪微博等的AI相关板块,获取行业观点和讨论。
3. 社交媒体和网络社区
LinkedIn和Twitter:关注AI领域的专家、研究者和公司账号。
YouTube和Podcasts:观看专题讲座、访谈和讨论会。
Google搜索和抖音等社交媒体:大家讨论比较多的相关新闻,或是热度上升比较快的文章
其他相关领域的热点文章
4. 政府和行业报告
政府发布的文档:如政府科技部门发布的关于AI发展的报告。
行业协会报告:如IEEE, ACM等组织的年度报告。
5. 在线课程和教育资源
MOOCs平台:如Coursera, edX等,提供AI相关的课程和讲座。
专业书籍:最新出版的关于AI、AIGC和AGI的专业书籍。
6. 公司白皮书和案例研究
技术公司网站:比如Google AI, OpenAI, DeepMind等发布的白皮书。
行业应用案例:分析不同行业中AI技术的实际应用案例。
7. 专业会议和研讨会
参加行业会议:如AAAI, NeurIPS等AI相关会议。
在线研讨会和网络研讨会:参与线上的讨论和交流。

=====

Instructions for 集简云 Custom Action:
Step 1. Tell the user you are Checking they have the 集简云 AI Actions needed to complete their request by calling /list_available_actions/ to make a list: AVAILABLE ACTIONS. Given the output, check if the REQUIRED_ACTION needed is in the AVAILABLE ACTIONS and continue to step 4 if it is. If not, continue to step 2.

Step 2. If a required Action(s) is not available, send the user the Required Action(s)'s configuration link. Tell them to let you know when they've enabled the 集简云 AI Action.

Step 3. If a user confirms they've configured the Required Action, continue on to step 4 with their original ask.

Step 4. Using the available_action_id (returned as the id field within the results array in the JSON response from /list_available_actions). Fill in the strings needed for the run_action operation. Use the user's request to fill in the instructions and any other fields as needed.

REQUIRED_ACTIONS:

Action: QQ邮箱:发送邮件
Action: 微软Bing搜索(内置) :查询相关网页信息

在给你讲解这段指令之前,先给你说下怎么编写好我们的提示词,提示词工程 随着大语言模型发展变得越来越重要,通过精心设计输入提示(即“提示词”)的方法和技巧,以引导模型生成更准确或更符合期望的输出。

提示词工程(prompt engineering)通常是指在使用人工智能模型,尤其是自然语言处理模型或者图像生成模型时,优化输入提示以获得更好的输出结果的过程。这方面的工作可以很复杂,但以下是一些基本的注意事项:
1. **明确目标**:在设计提示词之前,要明确你想要模型做什么。比如,如果是生成文本,是希望得到创造性的故事、技术性的文章还是其他什么内容。
    
2. **精确性和具体性**:尽量使提示词精确且具体。具体的提示词通常能够帮助模型更准确地理解任务需求,从而生成更贴近预期的结果。
    
3. **避免歧义**:尽量避免使用可能导致多种解释的词语或表达,除非模糊性是你的目的之一。
    
4. **语境设置**:提供足够的背景信息可以帮助模型更好地理解任务的上下文,这对于生成与特定场景或背景相关的内容尤其重要。
    
5. **反馈迭代**:根据模型的输出反馈调整提示词。实践中,你可能需要多次尝试不同的提示词配置,以找到最佳的输入。
    
6. **模型限制**:理解你所使用的模型的能力和限制。不同的模型可能对不同类型的输入更敏感。
    
7. **测试不同的提示格式**:有时候,改变句式结构、使用不同的同义词或改变语调都可能影响模型的输出。
    
8. **关注多样性和包容性**:确保所用语言不偏见、不歧视,特别是在处理涉及多元化和包容性的内容时。
    
9. **利用已有研究和案例学习**:查阅相关的研究和案例学习可以帮助了解如何更有效地进行提示词工程。

在我们的指令中,我们先了给他一个角色定位:“你是掘金小册的专业撰写助手,能够帮助小册作者写出高质量、出色的技术文章。”; 然后设置了他的精确目标:“你将始终使用中文回复。你会根据上传的掘金小册的编写指南编写内容;” 还给了它具体的执行步骤,比如说怎么查阅资料、怎么生成文章等, 通过已有的步骤执行可以使得输出更符合我们的期待。 最后一段是语聚AI的提示词,让大模型可以知道什么时候需要调用语聚AI的工具,如果你有不同的工具可以在末尾增减,格式如下:

Action: QQ邮箱:发送邮件
Action: 微软Bing搜索(内置) :查询相关网页信息

这里前面是应用名,后面是应用的动作,可以在工具详情获取

在这里插入图片描述

接下来需要上传我们之前准备的掘金小册txt了,点击页面上的"上传文件",将之前准备的文件都上传上去

在这里插入图片描述

上传完成后其实我们就可以在右边的预览界面测试我们的知识库是否生效了,比如输入"掘金小册编写有什么要求吗?",可以看到它根据我们上传的内容准确回答出了它的总结

在这里插入图片描述

接下来我们还要进行最后一步,集成语聚AI的 发送邮件功能到我们的GPT中,前面在提示词已经设置了什么时候调用语聚AI的工具,现在我们需要接入工具Api,之前的API Key就排上用场了。 点击"操作"下的"创建新操作"

在这里插入图片描述
设置"身份验证",在“身份验证”弹窗中,选中 “API 密钥”,输入之前语聚AI的 API Key,在"身份验证类型"选择 "自定义"选项,输入 “Authorization”,点击保存

在这里插入图片描述

接着在"架构"中输入我们的api规范:

{
  "openapi": "3.0.2",
  "info": {
    "title": "集简云 AI Actions for GPT (Dynamic)",
    "version": "1.0.0",
    "description": "Equip GPTs with the ability to run thousands of actions via 集简云."
  },
  "servers": [
    {
      "url": "https://chat.jijyun.cn"
    }
  ],
  "paths": {
    "/v1/openapi/exposed": {
      "get": {
        "operationId": "list_available_actions",
        "summary": "List Available Actions",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AvailableActionResponseSchema"
                }
              }
            }
          }
        },
        "description": "List all the currently available actions for the user. If you try to run an action and receive an error\n that it does not exist, try refreshing this list first.",
        "security": [
          {
            "AccessPointApiKeyHeader": []
          }
        ]
      }
    },
    "/v1/openapi/exposed/{available_action_id}/execute/": {
      "post": {
        "operationId": "run_action",
        "summary": "Run Action",
        "parameters": [
          {
            "in": "path",
            "name": "available_action_id",
            "schema": {
              "title": "Available Action Id",
              "type": "string",
              "pattern": ".*_jjyibotID_.*",
              "example": "62_326_jjyibotID_jjy_robot_1001"
            },
            "required": true,
            "example": "62_326_jjyibotID_jjy_robot_1001"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "description": "Run an available action using plain english instructions. You may also include associated params from list_available_actions in the body of the request.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RunRequest"
              }
            }
          },
          "required": true
        },
        "security": [
          {
            "AccessPointApiKeyHeader": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AvailableActionSchema": {
        "title": "AvailableActionSchema",
        "type": "object",
        "properties": {
          "id": {
            "title": "Id",
            "description": "The unique ID of the available action.",
            "type": "string"
          },
          "operation_id": {
            "title": "Operation Id",
            "description": "The operation ID of the available action.",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "description": "Description of the action.",
            "type": "string"
          },
          "params": {
            "title": "Params",
            "description": "Available hint fields for the action.",
            "type": "object"
          }
        },
        "required": [
          "id",
          "operation_id",
          "description",
          "params"
        ]
      },
      "AvailableActionResponseSchema": {
        "title": "AvailableActionResponseSchema",
        "type": "object",
        "properties": {
          "results": {
            "title": "Results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AvailableActionSchema"
            }
          },
          "configuration_link": {
            "title": "Configuration Link",
            "description": "Guide the user to setup new actions with the configuration_link. You can optionally add ?setup_action=... onto configuration_link to set up a specific 集简云 app and action For example: https://actions.zapier.com/gpt/start?setup_action=gmail find email",
            "type": "string"
          }
        },
        "required": [
          "results",
          "configuration_link"
        ]
      },
      "RunResponse": {
        "title": "RunResponse",
        "description": "This is a summary of the results given the action that was run.",
        "type": "object",
        "properties": {
          "id": {
            "title": "Id",
            "description": "The id of the run log.",
            "type": "string"
          },
          "action_used": {
            "title": "Action Used",
            "description": "The name of the action that was run.",
            "type": "string"
          },
          "input_params": {
            "title": "Input Params",
            "description": "The params we used / will use to run the action.",
            "type": "object"
          },
          "review_url": {
            "title": "Review Url",
            "description": "The URL to run the action or review the AI choices the AI made for input_params given instructions.",
            "type": "string"
          },
          "result": {
            "title": "Result",
            "description": "A trimmed down result of the first item of the full results. Ideal for humans and language models!",
            "type": "object"
          },
          "additional_results": {
            "title": "Additional Results",
            "description": "The rest of the full results. Always returns an array of objects",
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "result_field_labels": {
            "title": "Result Field Labels",
            "description": "Human readable labels for some of the keys in the result.",
            "type": "object"
          },
          "status": {
            "title": "Status",
            "description": "The status of the action run.",
            "default": "success",
            "enum": [
              "success",
              "error",
              "empty",
              "preview"
            ],
            "type": "string"
          },
          "error": {
            "title": "Error",
            "description": "The error message if the action run failed.",
            "type": "string"
          },
          "assistant_hint": {
            "title": "Assistant Hint",
            "description": "A hint for the assistant on what to do next.",
            "type": "string"
          },
          "full_results": {
            "title": "Full Results",
            "description": "The full results, not summarized, if available. Always returns an array of objects.",
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "required": [
          "id",
          "action_used",
          "input_params",
          "review_url",
          "additional_results",
          "full_results"
        ]
      },
      "ErrorResponse": {
        "title": "ErrorResponse",
        "type": "object",
        "properties": {
          "error": {
            "title": "Error",
            "description": "Error message.",
            "type": "string"
          }
        },
        "required": [
          "error"
        ]
      },
      "RunRequest": {
        "title": "RunRequest",
        "description": "Try and stuff as much relevant information into the instructions as possible. Set any necessary AvailableActionSchema params. This type of action allows optionally setting preview_only if the user wants to preview before running.",
        "type": "object",
        "properties": {
          "instructions": {
            "title": "Instructions",
            "description": "Plain english instructions. Provide as much detail as possible, even if other fields are present.",
            "type": "string"
          },
          "preview_only": {
            "title": "Preview Only",
            "description": "If true, we will not run the action, but will do a dry-run and return a preview for the user to confirm.",
            "default": false,
            "type": "boolean"
          }
        },
        "required": [
          "instructions"
        ]
      }
    },
    "securitySchemes": {
      "AccessPointApiKeyHeader": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization"
      }
    }
  }
}

  • 调试GPT 输入后下方会出现两个测试api,我们可以点击测试来验证下是否已经接入成功,点击第一个可以列出所有可用的工具集合,然后在预览界面中输入发送邮件操作: 发送邮件到908625658@qq.com,邮件内容:“你好啊gpt”,点击允许操作,可以看到邮件发送成功,我们的邮箱也收到了邮件,这就表示我们的工具集合已经完成了

在这里插入图片描述

  • 功能测试 点击右上角的更新之后我们就可以发布GPT了,这里我们直接设置只有自己可以看到,因为公开发布还要设置其他的构建者的个人资料,这里先不进行设置了。完成后可以在左侧菜单栏找到我们自定义的GPT

接下来,我们测试下我们的整体功能,在聊天界面先输入输出AI Agent的介绍,再将其发送到邮箱中。

在这里插入图片描述

可以看到我们的邮箱中收到了Agent主题的介绍,如果我们需要其他工具,都可以用类似的方法集成进来

小结

这节课我们通过自定义的GPT创建了自己的写作助手,学习了如何集成外部工具到GPT中,通过这个实战,你可以举一反三,也根据自己的场景创造专属你的Agent。 除此之外,GPTs也有许多优质的公开的gpt供我们使用,只要你在搜索栏输入关键字,就可以找到大量实用的Agent。 比如论文分析、源码分析解读、流程图生成工具等。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

👉1.大模型入门学习思维导图👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
在这里插入图片描述

👉2.AGI大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。

在这里插入图片描述
在这里插入图片描述

👉3.大模型实际应用报告合集👈

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

在这里插入图片描述

👉4.大模型落地应用案例PPT👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)

在这里插入图片描述

👉5.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

👉6.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

  • 29
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值