GPTs 应用开发:使用 GPT Builder 创建自己的 GPTs 应用

在这里插入图片描述

前言

GPTs 是 OpenAI 在 2023 年11月6日 推出的一项新功能,它让我们可以用自然语言对话的形式,轻松创建属于我们自己的 GPTs 应用。GPTs 应用可以利用 GPT-4 的强大的自然语言处理和生成能力,以及其他的多模态功能,如在线检索、图像生成、数据分析等,实现各种复杂的任务。本篇博客中,我将介绍如何使用 GPT Builder 这个工具,来自定义和优化 GPT 模型,以适应特定的应用场景。展示 GPTs 应用开发的步骤和方法,以及 GPT Builder 的各种选项和功能。后续的文章我会考虑将提供完整实操例子。

2023/11/13补充概念区分:

GPTs = GPT应用商店的概念
GPT Builder = GPT应用的构建工具
GPT应用的构建能力 = 多模态(GPT4 +DALL·E + Browsing + Analysis )+ 微调 +Actions 调用第三方API。
以上并不包括Plugin插件开发和调用。

GPT4 Chat = 多模态(GPT4 +DALL·E + Browsing + Analysis )
GPT4 Plugin = 最多支持3个插件同时使用,已经独立了。
GPT3.5 Chat = 这个不用解释了老东西。
GPT Plugin 插件开发是个单独的权限 和 GPTs 不是一个东西。

1,GPTs 应用开发步骤:

  1. 登录OpenAI账户
    访问 OpenAI 网站,登录访问https://chat.openai.com/gpts/discovery。该功能需要GPT4 Plus。

  2. 通过GPT Builder构建应用
    在OpenAI控制台中,寻找 GPT Builder 的入口。点击以进入 GPT Builder 界面。
    在这里插入图片描述

  3. 定义项目需求
    确定想要模型执行的具体任务或解决的问题。明确目标和期望的输出。根据不同的需求可以配置不同的选项和功能,如数据上传、模型训练和测试等。

  4. 准备训练微调和知识数据
    如果需要,可以收集和整理将用于训练模型的数据。这些数据应与项目相关。目的是为了专业确保数据的质量。
    在这里插入图片描述

  5. 上传数据
    在 GPT Builder 中,按照指示上传的训练数据。遵循格式和大小要求,目前只测试PDF,MD后缀的效果差一些(MD有bug,可以把MD后缀改TXT),TXT,DOC等没啥问题。

  6. 配置训练参数
    根据项目需求配置模型训练的各种参数,可以从默认设置,然后根据需要进行调整设置。

  7. 调试和迭代
    根据Preview节目的测试结果,可能需要回到Create或Configure选项中准备或参数配置阶段进行调整和优化。

  8. 应用发布
    当应用构建和调试的差不多就可以将其部署和发布使用了。

2,GPT Builder概念

GPT Builder是一个工具,允许用户自定义和优化GPT模型以适应特定的用例。它提供了对模型训练数据的更精细控制,允许根据特定需求微调模型。

OpenAI 是在北京时间 2023/11/07 凌晨2点的首届OPENAI DEVDAY 开发者大会上,推出了一项很吊的新功能:GPTs。它让我们可以用自然语言对话的形式,轻松创建属于我们自己的 GPTs应用。

GPTs应用可以利用 ChatGPT 的强大的自然语言处理和生成能力外还集成了 比如在线检索 / 图像生成 / 数据分析等功能,之前每个功能都是独立的存在,现在意味着GPT4原本的大语言模型功能基础上把之前独立的功能都集成了,解决一个复杂的问题不需要再多开很多chat窗口,而只需要在一个chat窗口就拥有这4项能力,根据需求自动选择大模型,简称:多模态大语言模型


好了,前面铺垫了一些概念内容,那么GPT Builder到底是个啥东西?和之前的GPT4大语言模型有什么区别?

我个人理解:
GPTs 可以简单理解为移动端的App store,就是OpenAI的大语言模型的应用商店,但是在没发布GPTs之前,我们很早之前就可以通过复杂的Prompt(提示词),去影响GPT3.5/GPT4 去实现某个功能,比如文档总结,代码生成,会根据我们前置的Prompt提示词去完成复杂的功能。其实这个已经可以当成一个应用了。

区别:

  • GPT-4 写 Prompt

    • 使用现有的 GPT-4 通用模型。
    • 我们通过撰写特定的提示(prompt)来引导模型生成所需的回答或内容。
    • 不能修改或调整模型本身,只能通过精心设计的提示(prompt)来尝试影响输出结果。
  • GPT Builder

    • 允许定制和优化 GPT 模型以适应特定的应用场景。
    • 可以上传自己的训练数据,以影响模型的学习和输出。
    • 不仅限于通过提示影响输出,用户可以直接影响模型的训练和行为。
    • 例子:如果正在运行一个在线风水咨询服务,并希望创建一个专门针对风水咨询的 GPT 模型,可以使用 GPT Builder 上传与风水相关的对话和信息,从而训练一个在风水咨询方面表现更好的专门模型。

但之前的GPT4 通过在某个新开的chat窗口输入Prompt实现的“应用” 有很多局限性,比如不能很精准的权限控制,个人使用,只允许链接访问的人使用,公开到GPTs给所有人使用,以及不能设置Instructions和Conversation starters前置引导词,不能设置Actions访问第三方API,不能上传Knowledge微调数据。

GPT4=通用大模型,Prompt仅影响已训练大模型输出内容。
GPT4s=通用大模型+傻瓜式专业的Prompt引导+可微调训练数据+可访问第三方API。

如果不理解的话,就把之前的GPT4 通过Prompt实现的“应用”理解为自己创建的Demo App,不能发布到应用市场 不是商用的。如果要发布到应用市场需要实现满足很多复杂的需求和步骤。


个人粗略的理解为,GPTs=App Store,GPT Builder=Xcode。

GPT Builder可以上传自己的文档,让应用更加贴合的需求和场景。还可以通过 Actions 调用第三方 API,应用更加强大和灵活。

GPTs 功能目前只对 所有的ChatGPT Plus 用户开放,可以在 GPTs 管理和查看你的 GPTs应用。

OpenAI 有着宏大的愿景(野心),想要把 GPTs Store 打造成 AI 时代的 Apple Store。
对于我们普通用户而言,这是一个难得的机会,我们应该尽早学习 GPTs 应用开发。

再过几年往回看,万一这就是个机会呢?别时代给你机会你不中用!


3, GPT Builder详解

  • 花时间浏览和了解 GPT Builder 的界面。
  • 查看不同的选项和功能,如数据上传、模型训练和测试等。

3.1,GPT Builder 的 Create 选项详解

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

GPT Builder 的 Create选项

  • Create 选项允许用户开始一个新的模型创建过程。
  • 在这一部分,可以配置新模型的各种参数和设置,包括命名模型、设定训练目标等。
  • 这是定制和优化模型的起点,从这里开始输入我们的特定需求和数据。
  • 例如:我创建过的一个例子举例,输入下面的内容,GPTs会引导你一步步的完善应用。

1.需要创建一个名字为“在线文章摘要助手”的应用。
2.需要所有的交互、提示和指示都会使用中文进行。
3.需要使用Dalle3创建一个应用Logo,Logo为和阅读相关需要科技感。
4.需要当用户输入url链接的时候通过actions的配置去请求API,返回API结果。
5.需要当用户输入非url的内容,只提供文本内容的时候,请把文章内容总结提炼成一段内容,用列表方式列出文本的5个关键信息内容。

GPT Builder 中的文件上传

  • 文件上传是指可以上传自己的数据文件,这些文件将被用来训练或微调模型。
  • 可以上传的文件类型:我目前只测过 .txt.json 格式。
  • 文件大小限制:具体大小限制可能因 OpenAI 的政策和技术限制而有所不同 日新月异,暂时不清楚。
  • 文件内容格式要求
    • 格式需整洁,便于解析。
    • 应该包含希望模型学习的任务相关的数据。
    • 例子:如果我们正在创建一个用于风水的模型,可能会上传包含专业风水相关的知识的 .txt 文件。

左边的内容已经详细的讲解完,很简单。最复杂的就是右边的Configure


Create中的文件上传与Configure中的知识更新文件的区别

  • Create中的文件上传:通常用于在创建新模型或训练一个全新模型时上传训练数据。这些数据将用于从头开始构建模型的知识基础,比如我就上传一些风水相关的资料。
  • Configure中的知识更新文件:这通常涉及在一个已经存在的模型上进行微调或更新,作。在这里上传的文件通常用于扩展或更新模型的现有知识库,如果找不到相关内容,会从Knowledge 上传的数据查找,而不是完全重建它。
    • 例如,如果我有一个已经训练好的模型《平行世界!我被美女包围了!》GPTs应用,但想让它了解个人主人公的详细数据。
      在这里插入图片描述
      在这里插入图片描述

这里的概念有点复杂,需要深入学习理解一下:

  1. 训练目标的意义是啥 ?

    • 训练目标指的是希望通过训练定制化模型达到的具体需求结果。这些目标定义了模型训练的方向和重点。
    • 例如,如果我正在创建一个用于风水的聊天机器人,训练目标可能包括提高对特定行业术语的理解、优化回答的准确性,或者增强对客户情绪的识别能力。
  2. 训练和微调模型的解释

    • 训练模型:指的是从头开始构建一个新的模型,通常需要大量的数据资源和成本。在这个过程中,模型学习如何理解和生成文本。
      • 比如OpenAI就训练了GPT4这个通用大模型,有xxx参数,训练一次耗资多少,这就是为什么之前的GPT4知识库停留在2021年,最近才更新到2023年,因为训练一次,耗资巨大。
    • 微调模型:指的是在一个已经训练好的模型基础上进行进一步的优化。通过微调,模型可以更好地适应特定的应用场景或需求。
      • 例如OpenAI 提供了一个基本的 GPT4的通用大模型,可以通过在该模型上添加特定行业的对话例子来进行微调,使其更适合在该行业内使用。

什么!还不理解?玩过github吧,知道抄代码吗?
比如github上有个成熟项目,这个项目人家耗费很多时间去构建完善,过程多复杂只有作者知道。
这个成熟项目=训练模型。

如果这个项目80%需求是符合你的,但是不完全符合你,这个时候你clone代码到本地,进行添加自己的业务代码,进行微调,理解了吗?

简单的总结下:训练目标是指导模型训练方向的具体目标,训练模型是从头开始建立模型的过程,微调模型则是在现有模型基础上进行调整。在Create中上传文件是为了建立新模型的基础,而在Configure中上传更新文件是为了在现有模型上添加新知识。

  1. GPT Builder 的基础模型

    • GPT Builder 提供的是一个基础的 GPT4 通用大模型。
    • 这个基础模型是一个通用的、未经特定训练的 GPT 模型,用户可以通过上传自己的数据来训练或微调它,使其适应特定的应用场景。
  2. 在 ‘Create’ 中上传文件的影响

    • 创建全新模型:在 Create’中上传文件,是为了训练一个全新的模型。这个过程不会影响原有的 GPT-4 的通用大模型,而是创建一个基于特定数据训练的新模型。
    • 上传新文件的影响:如果我先上传一个文件进行训练,然后再上传另一个文件,这将是两个独立的训练过程,生成两个不同的模型,除非在第二次上传时明确选择对原模型进行更新或微调。
  3. GPT-4、Create 文件上传训练数据与 Configure的Knowledge知识更新文件之间的区别和优先级

项目 GPT-4 模型 Create 文件上传 Configure的Knowledge知识更新
定义 未经特定训练的通用模型 用于训练全新模型的数据上传 用于在现有模型基础上进行微调或更新的数据上传
用途 适用于广泛的通用场景 创建针对特定任务或场景定制的模型 改进或更新已有模型的特定知识或性能
优先级 作为基础模型,适用于没有特定需求的情况 当需要针对特定需求创建新模型时使用 当需要在现有模型基础上添加新知识或进行微调时使用

举例:如果我正在运行一个风水咨询平台,并希望创建一个专门的风水咨询聊天机器人,我会通过 Create 上传与风水咨询相关的训练数据来训练一个新模型。

如果我的平台新增了一些新的风水专业名词吧,那么怎么更新才能让已有的风水聊天机器人也能处理与这些新冒出来的行业名词呢?,我可以在 ‘Configure’ 中上传包含这些新的专业名词的Knowledge知识更新文件,对现有模型进行微调。


我们开始右边的Configure详细讲解

3.2,GPT Builder 的 Configure 选项详解

Photo

  1. 应用图标设置

    • 使用 Upload

      • 当你点击图标的时候,这个的作用就可以让你自己上传一个图片,作为该应用的Logo,应该是有些限制,自己点击可以看到支持上传的文件格式。
    • 使用 DALL·E 生成应用图标

      • 这个可以通过描述想要的图标样式来使用 DALL·E 生成应用图标。例如,可以输入指令:“生成一个阅读主题风格含有科技感的应用图标”。
      • 如果不喜欢也可以再次通过描述微调生成的图标。
  2. Name, Description, Instructions, Conversation Starters 的设定影响

    • Name:应用的名称,比如《平行世界!我被美女包围了!》。
    • Description:对应用的简述,帮助别的使用者了解这个应用的主要功能和用途。
    • Instructions:这是向别的使用者提供如何使用应用的指导。
    • Conversation Starters:这些是预设的对话启动器,可以帮助其他使用者开始与应用的交互。它只存在于第一次使用该应用的引导应用的功能或启动特定类型的对话。
      在这里插入图片描述
  3. Capabilities 的 Web Browsing, DALL·E Image Generation, Code Interpreter 选择

    • Web Browsing:允许该应用在互联网上浏览和检索信息。
    • DALL·E Image Generation:允许该应用使用 DALL·E 生成图像的能力。
    • Code Interpreter:允许该应用能够理解和执行编程代码。
    • 如果勾选这些选项,代表应用将拥有这项功能。如果不勾选,应用则没有这些功能。
    • 与 GPT-4 通用大模型相比,GPT Builder 允许我们根据应用的特定需求来选择需要的能力。这样可以更精确地控制应用的功能,而不是使用一个具有所有这些功能的通用模型(以前是GPT4通用大模型,后面的更新把All Tools集成到GPT4里了。)。

这些选项和设置可以专业的创建一个功能齐全的应用挺重要的,不然得像以前写很复杂的Prompt去实现。影响使用者的初步印象,还决定了应用交互的方式和体验。通过精准配置这些选项,可以让应用符合特定的需求用途。


又到了很复杂的东西了 ,这个鸟东西让我研究了大半天,搞明白之后 我只能说牛x。

GPT Builder 中的 “Actions” 功能是一个很牛x的功能,它允许我们的 GPT 应用执行超出在之前我们谈到的所有能力之外的功能,例如检索信息或执行特定的URL请求。下面详细介绍这个功能:

3.3,GPT Builder 的 Configure 中的Actions选项详解

  1. Actions 的作用

    • 扩展功能:Actions 允许我们的的 GPTs 应用与外部服务和第三方API进行交互,实现更复杂的操作,如查询数据、执行在线搜索、与其他应用程序交互等。这里的交互就看你API的功能了,比如可以查询天气,总结文章内容 几乎所有的URL请求。。
  2. 设置与不设置 Actions 的影响

    • 设置 Actions:当我为应用配置 Actions 时, GPT 应用将能够执行更多复杂的任务,使得它不仅仅是一个‘聊天机器人’,而是一个更为无敌多功能的应用 其实这个功能才是最惊艳我的,具体多好玩 可以有无限畅想。
    • 不设置 Actions:如果我们不配置 Actions,应用将限于之前谈到的功能,无法与外部服务器API接口进行交互或执行复杂的URL请求。
  3. Actions 的配置元素
    在这里插入图片描述

    • Schema:这里定义了我的应用可以执行的动作类型和所需的参数。这是告诉 GPT 模型如何理解和处理特定请求。
    • 在GPT Builder的Actions配置页面,Schema通常是基于OpenAPI规范进行定义的。OpenAPI规范是一种广泛使用的接口描述语言,用于描述RESTful API。这个规范支持JSON和YAML两种格式。举个例子

这里是一个完整的配置示例,我使用第三方聚合数据API的天气请求接口,使用固定的API密钥查询动态指定城市的天气。这个配置是YAML格式。

openapi: 3.1.0
info:
  title: SimpleWeatherAPI
  description: API for querying weather information
  version: 1.0.0
servers:
  - url: https://apis.juhe.cn/simpleWeather
paths:
  /query:
    post:
      summary: Query Weather
      description: Query weather information for a specific city
      operationId: queryWeather
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                city:
                  type: string
                key:
                  type: string
                  default: '19ba4f0***********4a238a35c'
              required:
                - city
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WeatherResponse'
components:
  schemas:
    WeatherResponse:
      type: object
      properties:
        resultcode:
          type: string
        reason:
          type: string
        result:
          type: object
          # 在这里添加更多关于result对象内部结构的细节

这里是一个完整的配置示例,我使用第三方OpenSum OpenSum的获取摘要文本请求接口,使用固定的API密钥,根据传递的文章链接,生成文章的摘要内容,以文本的形式输出。。这个配置是JSON格式。这个API也使用Bearer token进行认证,需要在中相应地配置Authentication Type为API Key选择Auth Type为Bearer,如果使用的是其他类型的认证(比如API密钥作为请求参数),则需要相应调整。
在这里插入图片描述

securitySchemes

{
    
    
    "openapi": "3.1.0",
    "info": {
    
    
      "title": "OpenSum",
      "description": "Get summaries for links",
      "version": "v1.0.0"
    },
    "servers": [
      {
    
    
        "url": "https://read.thinkwx.com/api"
      }
    ],
    "paths": {
    
    
      "/v1/article/summary": {
    
    
        "post": {
    
    
          "description": "Get article summary for given link.",
          "operationId": "GetArticleSummary",
          "parameters": [],
          "requestBody": {
    
    
            "content": {
    
    
              "application/json": {
    
    
                "schema": {
    
    
                  "$ref": "#/components/schemas/GetArticleSummaryRequestSchema"
                }
              }
            },
            "required": true
          },
          "deprecated": false,
          "security": [
            {
    
    
              "apiKey": []
            }
          ]
        }
      }
    },
    "components": {
    
    
      "schemas": {
    
    
        "GetArticleSummaryRequestSchema": {
    
    
          "properties": {
    
    
            "link": {
    
    
              "type": "string",
              "title": "link",
              "description": "link of an article"
            }
          },
          "type": "object",
          "required": [
            "link"
          ],
          "title": "GetArticleSummaryRequestSchema"
        }
      },
      "securitySchemes": {
    
    
        "apiKey": {
    
    
          "type": "apiKey"
        }
      }
    }
}
  • Authentication:用于控制和管理应用如何安全地访问和交互外部服务,一些安全认证KEY的配置。
    • None:表示这个actions请求不需要认证KEY。
    • API Key:使用 API 密钥进行身份验证,适用于需要API密钥访问的服务。
    • OAuth一种更复杂的认证方式,适用于需要用户登录或授权的服务,我暂时也不理解没用到。

在这里插入图片描述

  • Privacy Policy:这是应用如何处理和保护用户数据的政策。在发布应用的时候会提示需要填写。我不理解这个咋写 我随便填了个地址。

总结, 通过配置和使用 Actions,可以大幅增强GPTs 应用的功能性,使其能够执行更多种类的任务,更好地实现特定需求。

3.4,GPT Builder 的 Preview 详解

在这里插入图片描述
GPT Builder 的 ‘Preview’ 功能,它可以在实际部署之前测试和预览 GPTs 应用。提供了一个方便的环境来进行调试和优化。就和我们平常用的idea工具的预览一样的功能,比如Android Studio 手机系统镜像 可以运行调试应用

  1. 实时测试:‘Preview’ 提供了一个实时的环境,可以在其中输入文本,并查看 GPT 应用的响应。

  2. 调试:通过观察 GPT 应用对特定提示的反应,可以更好地理解模型的行为,在正式发布前,并对其进行调整。

  3. 参数调整:可以尝试不同的配置和参数设置,看看它们如何影响模型的输出。这包括调整提示、改变模型的行为等。

总结

GPTs 应用开发可以创建出各种有用和有趣的 GPTs 应用。通过使用 GPT Builder,可以更方便地配置和调整 GPT 模型,使其符合我们的特定需求。GPT Builder 提供了一个傻瓜式的界面,让我们可以通过数据上传、模型训练、参数设置、功能选择等方式,来定制和优化我们的 GPTs 应用。我们还可以通过 Actions 功能,让我们的 GPTs 应用与外部服务和第三方 API 进行交互,实现更多的功能。我们可以通过 Preview 功能,来测试和预览我们的 GPTs 应用,进行调试和优化,直到符合实际需求为止。GPTs 应用开发是一个值得尝试的机会,它可以让我们在 AI 时代,拥有自己的 GPTs 应用。


学习+实操+文章 耗时20+小时 ,求点个赞,有任何问题欢迎交流~

猜你喜欢

转载自blog.csdn.net/SHH_1064994894/article/details/134351284