Skip to content

Instantly share code, notes, and snippets.

@Squix
Last active February 19, 2025 10:44
Show Gist options
  • Select an option

  • Save Squix/43d19f51e3179983ab05d42906aa1e69 to your computer and use it in GitHub Desktop.

Select an option

Save Squix/43d19f51e3179983ab05d42906aa1e69 to your computer and use it in GitHub Desktop.
Json schema to setup an OpenAI Custom GPT. Helps archiving and deploying.
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "OPENAI CustomGPT",
"description": "Setup config for OPENAI visual CustomGPT platform.",
"type": "object",
"properties": {
"name": {
"description": "The name of the CustomGPT.",
"type": "string"
},
"description": {
"description": "The description of the CustomGPT.",
"type": "string"
},
"author": {
"description": "The author of the CustomGPT.",
"type": "string"
},
"publish_option": {
"description": "The publish option of the CustomGPT.",
"type": "string",
"enum": ["only_me", "anyone_with_link", "gpt_store"]
},
"instructions": {
"description": "The system instructions of the CustomGPT.",
"type": "string"
},
"conversation_starters": {
"description": "Sentences to start the conversation with the CustomGPT.",
"type": "array",
"items": [{ "type": "string" }]
},
"knowledge": {
"description": "Knowledge files to help the CustomGPT answers.",
"type": "array",
"items": [
{
"type": "object",
"description": "A file used as knowledge for the CustomGPT.",
"properties": {
"name": {
"description": "The name of the file.",
"type": "string"
},
"type": {
"description": "The MIME-type of the file.",
"type": "string"
}
},
"required": ["name", "type"]
}
]
},
"capabilities": {
"description": "Capabilities of the CustomGPT.",
"type": "array",
"items": [
{
"type": "string",
"enum": [
"web_search",
"canvas",
"dalle",
"code_interpreter_and_data_analysis"
]
}
]
},
"actions": {
"description": "Actions of the CustomGPT.",
"type": "array",
"items": [
{
"type": "object",
"description": "An action for the CustomGPT.",
"properties": {
"authentication": {
"description": "The type of authentication, if required by the API.",
"type": "string",
"enum": ["API Key", "OAuth"]
},
"authentication_parameters": {
"description": "If required (for API Key and OAuth), parameters to authenticate the API.",
"type": "array",
"items": [
{
"type": "object",
"description": "A parameter to authenticate the API.",
"properties": {
"name": {
"description": "The name of the parameter.",
"type": "string"
},
"type": {
"description": "The type of the parameter.",
"type": "string"
},
"value": {
"description": "The value of the parameter.",
"type": "string"
}
},
"required": ["name", "type", "value"]
}
]
},
"openapi_schema": {
"description": "The OpenAPI schema of the API.",
"type": "object"
},
"privacy_policy": {
"description": "The privacy policy of the API.",
"type": "string"
}
},
"required": ["openapi_schema"]
}
]
},
"use_data_for_training": {
"description": "Should OPENAI use conversation data from this CustomGPT for training their models ? (Note: sometimes, the checkbox isn't showing in the UI)",
"type": "boolean"
}
},
"required": ["name", "description", "instructions"]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment