2023-2024年AI Agent平台概览及实战项目介绍

释放双眼,带上耳机,听听看~!
本文介绍了2023-2024年AI Agent平台的发展概况,包括国内外知名平台的介绍和实战项目的详细步骤。同时涵盖了自定义GPT和语聚AI等工具的使用方法,帮助读者了解并应用AI技术在实践中的应用。

引言

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

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

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

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

2023-2024年AI Agent平台概览及实战项目介绍

2023-2024年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。

2023-2024年AI Agent平台概览及实战项目介绍

语聚AI

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

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

实战开发

工具准备

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

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

材料准备

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

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

先注册登陆语聚AI平台,首次注册会赠送免费使用的额度,可以在右上角上看到你的余额

2023-2024年AI Agent平台概览及实战项目介绍
点击左侧菜刀栏上的“+”,创建一个语聚GPT,填好名称后会生成一个工具助手

2023-2024年AI Agent平台概览及实战项目介绍

2023-2024年AI Agent平台概览及实战项目介绍
在页签“工具”可以添加工具, 这里添加了发送邮件和微软Bing搜索功能。

2023-2024年AI Agent平台概览及实战项目介绍

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

2023-2024年AI Agent平台概览及实战项目介绍

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

2023-2024年AI Agent平台概览及实战项目介绍
接下来我们需要创建一个API Key,以便在GPT中使用,点击页签“集成”,选择“API 接口”,新建一个API Key,如下所示

2023-2024年AI Agent平台概览及实战项目介绍

2023-2024年AI Agent平台概览及实战项目介绍

创建自定义GPT

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

2023-2024年AI Agent平台概览及实战项目介绍

  • 设置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搜索(内置) :查询相关网页信息

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

2023-2024年AI Agent平台概览及实战项目介绍

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

2023-2024年AI Agent平台概览及实战项目介绍

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

2023-2024年AI Agent平台概览及实战项目介绍

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

2023-2024年AI Agent平台概览及实战项目介绍
设置”身份验证”,在“身份验证”弹窗中,选中 “API 密钥”,输入之前语聚AI的 API Key,在”身份验证类型”选择 “自定义”选项,输入 “Authorization”,点击保存

2023-2024年AI Agent平台概览及实战项目介绍

接着在”架构”中输入我们的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 errorn 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”,点击允许操作,可以看到邮件发送成功,我们的邮箱也收到了邮件,这就表示我们的工具集合已经完成了

2023-2024年AI Agent平台概览及实战项目介绍

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

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

2023-2024年AI Agent平台概览及实战项目介绍

2023-2024年AI Agent平台概览及实战项目介绍

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

小结

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

章节内容虽然不复杂,但是需要动手实践才能有更深体会,如果你遇到了某些坑,欢迎在评论区或群里留言探讨。

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

Flux AI绘画模型介绍及使用方法

2024-8-21 19:19:00

AI资讯

快手开源AI技术新星Kolors:性能卓越,开放态度引领未来

2024-7-16 16:45:09

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索