基于 ChatGPT 创建专属 GPTs

文章目录

  • [基于 ChatGPT 创建专属 GPTs](#基于 ChatGPT 创建专属 GPTs)
    • 一、效果展示
      • [1.1 中文命名专家](#1.1 中文命名专家)
      • [1.2 行程小助手](#1.2 行程小助手)
    • 二、核心配置
      • [2.1 Instructions](#2.1 Instructions)
      • [2.3 Actions](#2.3 Actions)
    • [三、Agent 简介](#三、Agent 简介)
      • [3.1 功能框架](#3.1 功能框架)
      • [3.2 工作流程](#3.2 工作流程)
      • [3.3 意图识别](#3.3 意图识别)
    • 四、数据流程

基于 ChatGPT 创建专属 GPTs

ChatGPT 具备定制 GPTs 的能力,能够通过集成第三方 API 和执行定制流程,进一步拓展其本身的功能。这意味着用户可以借助外部 API 来查询天气预报、股票动态、航班详情、酒店预订等多种信息,从而使 ChatGPT 成为个性化助手。


一、效果展示

简单展示如下两个个角色能力:

  • 中文命名专家
  • 行程小助手

1.1 中文命名专家

输入性别和姓氏,返回中文名字。

1.2 行程小助手

查看谷歌日历行程、查看邮件、发送邮件。


二、核心配置

需要开通 ChatGPT 会员,目前该功能仅对会员开放。

2.1 Instructions

Instructions 是预先设置的提示,目的是引导生成的内容或动作的走势。这些提示通常被设计用于确保生成内容符合既定要求。

在某些场景下,提示词可能是固定不变的部分,用户只需在此基础上附加额外信息即可定制最终输出。在其他情况下,提示词可能只是起参考或启发作用。

text 复制代码
You will play the following three roles, please reply in Chinese.
1. Chinese Naming Expert
2. Data Analysis Guide
3. Personal Agenda Manager with Zapier Integration


###Instructions for Chinese Naming Expert
- Objective: Generate Chinese names based on provided surname and gender.
- Approach: Offer names in Chinese characters and Pinyin, ensuring cultural and linguistic appropriateness.
- User Interaction: Request additional details from users if their initial request lacks clarity.


###Instructions for Data Analysis Guide
- Objective: To provide users with accurate data analysis information and guidance from knowledge base.


###Instructions for Zapier Custom Action
Step 1. Tell the user you are Checking they have the Zapier AI Actions needed to complete their request. Then proceed to step 2. 
Step 2. Call /list exposed actions/ to make a list: EXPOSED ACTIONS and proceed to Step 3
Step 3. Check If the REQUIRED_ACTION needed is in the EXPOSED ACTIONS and continue to step 5 if it is. If not, continue to step 3.
Step 3. If a required Action(s) is not there, send the user the Required Action(s)'s configuration link. Tell them to let you know when they've enabled the Zapier AI Action.
Step 5. 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 (example: 01HEGJKS01S4W4QA68NYDNH1GE) 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: Google Calendar Find Event
  Configuration Link: https://actions.zapier.com/gpt/start?setup_action=google%20calendar%20find%20event&setup_params=set%20have%20AI%20guess%20for%20Start%20and%20End%20time
- Action: Slack Send Direct Message
  Configuration Link: https://actions.zapier.com/gpt/start?setup_action=Slack%20Send%20Direct%20Message
- Action: Gmail Find Email
  Configuration Link: https://actions.zapier.com/gpt/start?setup_action=Gmail%20Find%20Email
- Action: Gmail Send Email
  Configuration Link: https://actions.zapier.com/gpt/start?setup_action=Gmail%20Send%20Email

2.3 Actions

每个 Action 代表一个场景所需的接口定义。

GPTs Action 1:Generate Name

text 复制代码
{
  "openapi": "3.1.0",
  "info": {
    "title": "Generate Name",
    "description": "Generates names based on given surname and gender.",
    "version": "v1.0.0"
  },
  "servers": [
    {
      "url": "https://api.pearktrue.cn"
    }
  ],
  "paths": {
    "/api/name/generate/": {
      "get": {
        "description": "Generate a name based on the given surname and gender",
        "operationId": "GenerateName",
        "parameters": [
          {
            "name": "xing",
            "in": "query",
            "description": "The surname for which to generate names",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sex",
            "in": "query",
            "description": "The gender for the name to generate (male/female)",
            "required": true,
            "schema": {
              "type": "string",
              "enum": ["male", "female"]
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "The number of names to generate",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1
            }
          }
        ],
        "deprecated": false
      }
    }
  },
  "components": {
    "schemas": {}
  }
}

GPTs Action 2:Zapier AI Actions for GPT (Dynamic)

text 复制代码
{
  "openapi": "3.0.2",
  "info": {
    "title": "Zapier AI Actions for GPT (Dynamic)",
    "version": "1.0.0",
    "description": "Equip GPTs with the ability to run thousands of actions via Zapier. (703dcca4c2e24c5ea5e2c717eba11029)",
    "x-openai-verification-token": "703dcca4c2e24c5ea5e2c717eba11029"
  },
  "servers": [
    {
      "url": "https://actions.zapier.com"
    }
  ],
  "paths": {
    "/gpt/api/v1/available/": {
      "get": {
        "operationId": "list_available_actions",
        "summary": "List Available Actions",
        "parameters": [
          {
            "in": "query",
            "name": "apps",
            "schema": {
              "title": "Apps",
              "description": "Filter actions to a comma separated list of Zapier app names.",
              "type": "string"
            },
            "required": false,
            "description": "Filter actions to a comma separated list of Zapier app names."
          },
          {
            "in": "query",
            "name": "exact_search",
            "schema": {
              "title": "Exact Search",
              "description": "Filter actions to exact search string of the description (case insensitive).",
              "type": "string"
            },
            "required": false,
            "description": "Filter actions to exact search string of the description (case insensitive)."
          }
        ],
        "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\nthat it does not exist, try refreshing this list first.",
        "security": [
          {
            "AccessPointOAuth": []
          }
        ]
      }
    },
    "/gpt/api/v1/available/{available_action_id}/run/": {
      "post": {
        "operationId": "run_action",
        "summary": "Run Action",
        "parameters": [
          {
            "in": "path",
            "name": "available_action_id",
            "schema": {
              "title": "Available Action Id",
              "type": "string",
              "pattern": "^[A-Z0-9]{26}$",
              "example": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
            },
            "required": true,
            "example": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
          }
        ],
        "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": [
          {
            "AccessPointOAuth": []
          }
        ]
      }
    },
    "/gpt/api/v1/zap-guesser/": {
      "get": {
        "operationId": "zap_guesser",
        "summary": "Zap Guesser",
        "parameters": [
          {
            "in": "query",
            "name": "prompt",
            "schema": {
              "title": "Prompt",
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RunResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "AccessPointOAuth": []
          }
        ]
      }
    }
  },
  "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"
          },
          "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 Zapier app and action. For example: https://actions.zapier.com/gpt/start?setup_action=gmail find email",
            "type": "string"
          }
        },
        "required": [
          "id",
          "operation_id",
          "description",
          "params",
          "configuration_link"
        ]
      },
      "AvailableActionResponseSchema": {
        "title": "AvailableActionResponseSchema",
        "type": "object",
        "properties": {
          "results": {
            "title": "Results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AvailableActionSchema"
            }
          }
        },
        "required": [
          "results"
        ]
      },
      "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": {
      "AccessPointOAuth": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "/oauth/authorize/",
            "tokenUrl": "/oauth/token/",
            "scopes": {
              "nla:exposed_actions:execute": "Run AI Actions"
            }
          }
        }
      }
    }
  }
}

三、Agent 简介

GPTs 是 ChatGPT 中 Agent 思想的一种体现。

万字长文!何谓Agent,为何Agent?

GPTs到底是什么?

3.1 功能框架

3.2 工作流程

3.3 意图识别

  1. Instructions + Actions + 内置模版 + 用户输入 = 新 prompt;

  2. LLM 完成参数填充后生成 API 调用指令;

  3. Agent 接收到调用指令判断必填项是否完整:完整则进行接口调用,不完整则循环到 1;


四、数据流程

相关推荐
DS随心转APP1 小时前
Claude的表格怎么导到word?AI 导出鸭一键高保真还原,批量导出告别格式噩梦
人工智能·chatgpt·word·ai导出鸭
DS随心转APP1 小时前
Grok的表格怎么导到word?AI 导出鸭一键高保真还原,批量导出告别格式噩梦
人工智能·chatgpt·word·ai导出鸭
全栈弄潮儿2 小时前
新手最常见的 5 个 AI 编程误区:避免“复制粘贴就上线”
chatgpt·openai·ai编程
DS随心转小程序3 小时前
巧用 AI 导出鸭攻克各类难题完善 ChatGPT 输出 word 文档转化工作
人工智能·chatgpt·aigc·word·豆包·deepseek·ai导出鸭
武子康4 小时前
实现 GPT-Live-like:两条路线、一个控制面和六阶段验收
人工智能·chatgpt·agent
jianwuhuang824 小时前
平板端 ChatGPT 表格复制转换教程|AI 导出鸭平板版一站式格式无损处理方案
android·人工智能·ai·chatgpt·电脑·ai导出鸭
吨吨ai5 小时前
ChatGPT Plus / Pro 用户的 Codex 进阶实战:从 CLI 配置到 Agent 工作流、多文件重构与用量控制的完整指南
chatgpt·重构
Bifrost20 小时前
使用飞书机器人让 Codex 24 小时在线:随时随地给你的 AI 工程师派活
chatgpt·开源·openai
全栈弄潮儿1 天前
为什么 AI 生成的代码不能直接使用?如何对 AI 代码进行检查和验证?
chatgpt·openai·ai编程
武子康1 天前
GPT-Live 与 GPT-Realtime:产品模型和公开 API 不应混写
人工智能·chatgpt·agent