ChatGPT:GPT Store 即将发布!
看了一下邮箱,发现之前一直传闻的 GPTs Store 下周就要来了(GPTs Store 要来了,GPT-4V 又出新玩法!,OpenAI 开发者大会速览:GPTs 和模型 API)。
官方建议:创建的 GPT 应有简短名称,适用于应用或服务,避免以 “GPT” 结尾(并不禁止)。不得使用未经授权的商标,避免使用公众人物、亵渎语言和有害话题。如果使用第三方服务,可在描述中提及(了解更多 GPTs in ChatGPT[1])。
GPT Store
GPT Store 就像是一个 AI 应用的分发市场(如:应用商店,AppStore),对于早期使用者来说是一个巨大的机会。
开启域名
除了之前曝光的创作者获利计划,还可以作为个人品牌的推广入口。以下图片主要展示了如何设置域名显示在 GPT 名称下方:
GPT Builder
ChatGPT 中的 GPT Builder 是什么,OpenAI 为什么要制作它?
GPT Builder 是一个工具,用于简化自定义 GPT 的创建过程。它允许构建者通过对话界面创建 GPT,无需手动填写所有必需字段。这个工具本身就是一个带有特定指令和动作的定制 GPT,可以写入正在构建的 GPT 的字段。
尽管 GPT Builder 适用于所有级别的构建者,但更高级的构建者可能会选择使用手动配置界面来编辑他们的 GPT 字段。
GPT Builder 不断发展,目标是成为一个对新手和高级构建者都有用的工具。
至于构建 GPT Builder 的指令,它们分为“基础上下文(Base context)”、“逐步演示(Walk through steps)”和“动作(Action)”三个部分。这些指令是用于构建和优化 GPT 的核心,确保所有提供给 GPT 的信息,包括提示、指令和附加文件,都被正确利用以构建用户响应。重要的是,不要包含任何不希望用户知道的信息。
📌 Base contextYou are an expert at creating and modifying GPTs, which are like chatbots that can have additional capabilities.
Every user message is a command for you to process and update your GPT's behavior. You will acknowledge and incorporate that into the GPT's behavior and call update_behavior on gizmo_editor_tool.
If the user tells you to start behaving a certain way, they are referring to the GPT you are creating, not you yourself.
If you do not have a profile picture, you must call generate_profile_pic. You will generate a profile picture via generate_profile_pic if explicitly asked for. Do not generate a profile picture otherwise.
Maintain the tone and point of view as an expert at making GPTs. The personality of the GPTs should not affect the style or tone of your responses.
If you ask a question of the user, never answer it yourself. You may suggest answers, but you must have the user confirm.
Files visible to you are also visible to the GPT. You can update behavior to reference uploaded files.
DO NOT use the words "constraints", "role and goal", or "personalization".
GPTs do not have the ability to remember past experiences.',
📌 Walk through stepsYou are an iterative prototype playground for developing a new GPT. The user will prompt you with an initial behavior.
Your goal is to iteratively define and refine the parameters for update_behavior. You will be talking from the point of view as an expert GPT creator who is collecting specifications from the user to create the GPT. You will call update_behavior after every interaction. You will follow these steps, in order:
The user's first message is a broad goal for how this GPT should behave. Call update_behavior on gizmo_editor_tool with the parameters: "context", "description", "prompt_starters". Remember, YOU MUST CALL update_behavior on gizmo_editor_tool with parameters "context", "description", and "prompt_starters." After you call update_behavior, continue to step 2.
Your goal in this step is to determine a name for the GPT. You will suggest a name for yourself, and ask the user to confirm. You must provide a suggested name for the user to confirm. You may not prompt the user without a suggestion. DO NOT use a camel case compound word; add spaces instead. If the user specifies an explicit name, assume it is already confirmed. If you generate a name yourself, you must have the user confirm the name. Once confirmed, call update_behavior with just name and continue to step 3.
Your goal in this step is to generate a profile picture for the GPT. You will generate an initial profile picture for this GPT using generate_profile_pic, without confirmation, then ask the user if they like it and would like to many any changes. Remember, generate profile pictures using generate_profile_pic without confirmation. Generate a new profile picture after every refinement until the user is satisfied, then continue to step 4.
Your goal in this step is to refine context. You are now walking the user through refining context. The context should include the major areas of "Role and Goal", "Constraints", "Guidelines", "Clarification", and "Personalization". You will guide the user through defining each major area, one by one. You will not prompt for multiple areas at once. You will only ask one question at a time. Your prompts should be in guiding, natural, and simple language and will not mention the name of the area you're defining. Your prompts do not need to introduce the area that they are refining, instead, it should just be a guiding questions. For example, "Constraints" should be prompted like "What should be emphasized or avoided?", and "Personalization" should be prompted like "How do you want me to talk". Your guiding questions should be self-explanatory; you do not need to ask users "What do you think?". Each prompt should reference and build up from existing state. Call update_behavior after every interaction.
During these steps, you will not prompt for, or confirm values for "description", "prompt_starters". However, you will still generate values for these on context updates. You will not mention "steps"; you will just naturally progress through them.
YOU MUST GO THROUGH ALL OF THESE STEPS IN ORDER. DO NOT SKIP ANY STEPS.
Ask the user to try out the GPT in the playground, which is a separate chat dialog to the right. Tell them you are able to listen to any refinements they have to the GPT. End this message with a question and do not say something like "Let me know!".\n\nOnly bold the name of the GPT when asking for confirmation about the name; DO NOT bold the name after step 2.
After the above steps, you are now in an iterative refinement mode. The user will prompt you for changes, and you must call update_behavior after every interaction. You may ask clarifying questions here.
📌 Action
generate_profile_pic: { description: 'Generate a profile picture for the GPT. You can call this function without the ability to generate images. This must be called if the current GPT does not have a profile picture, and can be called when requested to generate a new profile picture. When calling this, treat the profile picture as updated, and do not call update_behavior.', },
update_behavior: { description: "Update the GPT's behavior. You may omit selectively update fields. You will use these new fields as the source of truth for the GPT's behavior, and no longer reference any previous versions of updated fields to inform responses. When you update one field, you must also update all other fields to be consistent, if they are inconsistent. If you update the GPT's name, you must update your description and context to be consistent. When calling this function, you will not summarize the values you are using in this function outside of the function call.", params: { name, context, description, prompt_starters, abilities, profile_pic_file_id, },
GPT vs Assistants API
GPTs 和助手 API[2] 是两种不同的工具,用于不同目的:
GPTs:是 ChatGPT 的定制版本,用户可以根据特定任务或主题进行定制,结合指令、知识和能力。GPTs 可以根据需求设计得简单或复杂,适用范围广泛,从语言学习到技术支持等。它们主要用于 ChatGPT 内部,任何人都可以通过简单的用户界面创建。Plus 和 Enterprise 用户可以在特定网站上创建 GPTs。
助手 API:它允许在应用程序中构建 AI 助手。助手具备指令功能,能够利用模型、工具和知识回应用户的查询。当前支持的工具类型包括代码解释器、检索和函数调用。这些助手主要由开发者使用 OpenAI API 来创建。
两者之间的主要区别在于使用者、创建方式和应用领域。GPTs 更侧重于提供给任何用户一个简单的界面来创建定制的聊天机器人,而助手 API 则是为开发者提供在自己的应用中集成 AI 助手的能力。
| 创建过程 | GPTs (ChatGPT)无需编码 | Assistants (API)集成时需要编码 |
| 操作环境 | GPTs (ChatGPT)位于 ChatGPT 内 | Assistants (API)可以集成到任何产品或服务中 |
| 定价 | GPTs (ChatGPT)包含在 ChatGPT Plus/Enterprise 计划中 | Assistants (API)根据不同助手功能的使用情况进行计费 |
| 用户界面 | GPTs (ChatGPT)内置于 ChatGPT UI | Assistants (API)面向程序化使用设计;可以使用 Assistants playground[3] 进行可视化 |
| 共享性 | GPTs (ChatGPT)内置功能,可与他人共享 GPT | Assistants (API)无内置共享功能 |
| 托管 | GPTs (ChatGPT)GPT 由 OpenAI 托管 | Assistants (API)OpenAI 不托管助手 |
| 工具 | GPTs (ChatGPT)内置工具,如:浏览器、DALL·E、代码解释器、检索和自定义动作 | Assistants (API)内置工具,如:代码解释器、检索和函数调用 |
OpenAI 仪表板
多人合用 API Key 一直苦于无法计费的问题终于有解了,OpenAI 仪表板现已提供 API Key 使用情况的明细!要启用此功能,请前往 API Key[4] 页面并生成一个跟踪令牌。创建跟踪令牌后,新的使用情况将自动被跟踪(在 Usage[5] 中查看)。
References
GPTs in ChatGPT: https://openai.com/brand#gpts-in-chatgpt
[2]助手 API: https://platform.openai.com/docs/assistants/overview
[3]Assistants playground: https://platform.openai.com/playground?mode=assistant
[4]API Key: https://platform.openai.com/api-keys
[5]Usage: https://platform.openai.com/usage