BREEBS

Building a GPT linked to a Breeb (for ChatGPT+ users)

It is now possible to simply create a ChatGPT 'GPT' connected to your Breeb or one of those available in the Breebs catalog.
This way, you can access the knowledge of the Breeb directly, without going through the Breebs GPT which by definition is a generalist assistant (since it allows discussion with all the Breebs in the catalog).
By acting on the instructions of your GPT, you can give it a different personality or capabilities, while still benefiting from the knowledge of the Breeb.

Here is the procedure to follow to create a GPT connected to a Breeb (nothing complicated, just a few copy/pastes😅)

Step 1: Creating your GPT

(you can skip this step if your GPT already exists)

  1. Click on the Explore option located on the left of the ChatGPT interface, then on "Create a GPT"
    myGpt
  2. Let the assistant guide you through setting up the basic parameters of your GPT (name, description, image, behavior, etc.), without mentioning Breebs at this stage.

Step 2: Customization of GPT Instructions

  1. Inform your GPT about the existence and purpose of your Breeb:

    At the beginning of the instructions, you must explicitly mention that the GPT can access a specialized knowledge base using the Breebs service, including the key of the concerned Breeb.

    The key is available on the card detailing each Breeb on the website. Here is the prompt to integrate, just after defining the general objective of your GPT:

    For this you have access to a wide range of documents useful to craft perfect answers on this topic, interacting with a service called Breebs using 'Put here the breeb_key of the breeb' breeb_key. This makes all your answers more precise and impactful.
  2. Give your GPT the directives for interaction with Breebs

    Simply add the following prompt at the end of your GPT's instructions, without modifying them :

    To interact with Breebs you use the following actions :
    1. Query: Use the /query function with information related to the user's prompt.
      Breebs retrieves relevant information chunks to help you crafting answers.
      Complex questions can be break into several queries to improve answers.
      An important feature for user is to get a summary of all sources used for your answer, with url links. So instead of citing sources within conversation body, add a recap section of all sources you used at the end, with a title and using the markdown format `[Topic of the source](source_url)` for each source.
    2. Review: During conversations, you use the /review function whenever the user comments, likes or dislikes the provided answer.
    3. Report: You call the /report endpoint each time technical problems, harmful content, or copyright issues occur.
    You have limited knowledge concerning Breebs service details (Breebs size, Breeb creation, Breeb catalog ...). So you don't invent answers in this field, simply inform user you don't know precisly and engage him to visit www.breebs.com or to use the `[Breebs GPT](chat.openai.com/g/g-lObyD60FY-breebs)`.
Note: When you write instructions for your GPT, use the second person ("You are an assistant...") rather than the third person ("This assistant..."). This ensures consistency with the Breebs instructions, which are in the second person.
Here is, as an example, the complete prompt of the GPT "1 Quote a Day 🌟". In light grey background, what has been added to the instructions without modification, and in red, the key of the Breeb to be queried
You are an assistant that always provide advice and responses using a single quote.
For this you have access to a wide range of documents useful to craft perfect answers on this topic, interacting with a service called Breebs using 'Quotations' breeb_key. This makes all your answers more precise and impactful.

You offer guidance or answers through relevant quotes for various situations like personal motivation, philosophical questions, or specific themes such as love, success, or resilience. Each time, you select a single quotation (the most appropriate), use the tone and style of the quote/quote author to answer in a concise manner, and in source citation links section only print the one that you selected. You mention the Quote author in your answer.
You can also handle specific quote-related requests, including searching for particular citations.

To interact with Breebs you use the following actions :
  1. Query: Use the /query function with information related to the user's prompt.
    Breebs retrieves relevant information chunks to help you crafting answers.
    Complex questions can be break into several queries to improve answers.
    An important feature for user is to get a summary of all sources used for your answer, with url links. So instead of citing sources within conversation body, add a recap section of all sources you used at the end, with a title and using the markdown format `[Topic of the source](source_url)` for each source.
  2. Review: During conversations, you use the /review function whenever the user comments, likes or dislikes the provided answer.
  3. Report: You call the /report endpoint each time technical problems, harmful content, or copyright issues occur.
You have limited knowledge concerning Breebs service details (Breebs size, Breeb creation, Breeb catalog ...). So you don't invent answers in this field, simply inform user you don't know precisly and engage him to visit www.breebs.com or to use the `[Breebs GPT](chat.openai.com/g/g-lObyD60FY-breebs)`.

Step 3: Recording the Breebs API Specifications

These are the technical details that ChatGPT needs to communicate with the Breebs APIs.

  1. For this, at the very bottom of your GPT's configuration screen, click on "Create New Action"
    browsing
  2. Copy the following specifications, without modifying them, into the window that opens (in the "Schema" area)
    addAction

    Schema to copy/paste without any modification :

    {
        "openapi": "3.0.1",
        "info": {
          "title": "GPT functions/actions",
          "description": "GPT functions/actions used by AI Assistant",
          "version": "v1"
        },
        "servers": [
          {
            "url": "https://breebs.promptbreeders.com"
          }
        ],
        "paths": {
          "/breeb/query": {
            "post": {
              "summary": "Based on user prompt, you query the Breeb to retrieve text snippets to improve your answer, together with some instructions.",
              "operationId": "query",
              "x-openai-isConsequential": false,
              "requestBody": {
                "description": "infos passed by to query the Breeb.",
                "required": true,
                "content": {
                  "application/json": {
                    "schema": {
                      "type": "object",
                      "properties": {
                        "assistant_name":{
                            "type": "string",
                            "description": "The name of AI Assistant/GPT"
                          },
                        "llm_name":{
                          "type": "string",
                          "description": "The name of Langage Model in use"
                        },
                        "breeb_key": {
                          "type": "string",
                          "description": "The breeb_key you have in your instructions"
                        },
                        "prompt": {
                          "type": "string",
                          "description": "The prompt which triggered the query, as typed by user, truncated after 20 words."
                        },
                        "query": {
                          "type": "string",
                          "description": "Based on user prompt, the information you need to get from the Breeb to improve your answer."
                        },
                        "search_keywords": {
                          "type": "string",
                          "description": "Based on query, a string made of a list of 5 keywords or keywords combination, comma separated, you expect to find in the text snippets retrieved from the Breeb."
                        },
                        "hypothetical_answer": {
                          "type": "string",
                          "description": "Invent an hypothetical phrase (truncate after 15 words) that could come back from the Breeb to help you answer."
                        },
                        "stepback_query": {
                            "type": "string",
                            "description": "You step-back and, based on 'query', you write 'stepback_query' a more generic step-back information useful to answer user prompt. For example, 'What is XYZ birth date' query can be transformed in 'XYZ full bio' stepback_query."
                        },
                        "query_prompt_category": {
                          "type": "string",
                          "description": "Best category to qualify the user prompt : 'Informational' (seeking detailed infos), 'Instructional' (request for instructions), 'Analytical' (analysis on complex topics), 'Summarization' (condensing extensive information), 'Recommendations' (Seeking suggestions, tips), 'Creative' (seeking creative ideas), 'Exploratory' (queries requiring a broad exploration of the Breeb)",
                          "enum": [
                            "Informational",
                            "Instructional",
                            "Analytical",
                            "Summarization",
                            "Recommendations",
                            "Creative",
                            "Exploratory"
                          ]
                        }
                      },
                      "required": [
                        "assistant_name",
                        "llm_name",
                        "breeb_key",
                        "prompt",
                        "query",
                        "search_keywords",
                        "hypothetical_answer",
                        "stepback_query",
                        "query_prompt_category"
                      ]
                    }
                  }
                }
              },
              "responses": {
                "200": {
                  "description": "Data returned from Breeb, with additional instructions for you"
                },
                "400": {
                  "description": "Issue with Breeb Query. You inform user about the issue and follow instructions of the response if any."
                }
              }
            }
          },
    
          "/breeb/review": {
            "post": {
              "summary": "Called to record user review message (such as a like or dislike or comment), linked to its last question made to the Breeb.",
              "operationId": "review",
              "x-openai-isConsequential": false,
              "requestBody": {
                "description": "infos passed to function to record a review.",
                "required": true,
                "content": {
                  "application/json": {
                    "schema": {
                      "type": "object",
                      "properties": {
                        "last_answer_ref": {
                          "type": "string",
                          "description": "The 'last_answer_ref' value of the last answer you made."
                        },
                        "review_message": {
                          "type": "string",
                          "description": "The user review message."
                        },
                        "review_mood": {
                          "type": "string",
                          "description": "The mood of the 'review_message' (positive, negative, neutral)",
                          "enum": [
                            "positive",
                            "negative",
                            "neutral"
                          ]
                        },
                        "review_category": {
                          "type": "string",
                          "description": "The category of 'review_message', must be one of the enum",
                          "enum": [
                            "relevant_content",
                            "uptodate_content",
                            "insightful_answer",
                            "other_like_category",
                            "irrelevant_content",
                            "misinformation_content",
                            "outdated_content",
                            "other_dislike_category"
                          ]
                        },
                        "is_sensitive": {
                          "type": "string",
                          "description": "Set to true if content of 'review_message' is sensitive (ie contains harmful, NSFW, personal or confidential informations). Set to false otherwise. Value must be one of the enum",
                          "enum": [
                            true,
                            false
                          ]
                        }
                      },
                      "required": [
                        "last_answer_ref",
                        "review_message",
                        "review_mood",
                        "review_category",
                        "is_sensitive"
                      ]
                    }
                  }
                }
              },
              "responses": {
                "200": {
                  "description": "Review succesfully recorded"
                },
                "400": {
                  "description": "Issue while recording review message. You inform user about the issue and follow instructions of the response if any."
                }
              }
            }
          },
          "/breeb/report": {
            "post": {
              "summary": "Called by user or you to report an issue (technical problems, harmful content, or copyright issues)",
              "operationId": "report",
              "x-openai-isConsequential": false,
              "requestBody": {
                "description": "infos passed to function to record a report.",
                "required": true,
                "content": {
                  "application/json": {
                    "schema": {
                      "type": "object",
                      "properties": {
                        "last_answer_ref": {
                          "type": "string",
                          "description": "The 'last_answer_ref' value of the last answer you made."
                        },
                        "report_description": {
                          "type": "string",
                          "description": "Explanation of the report."
                        },
                        "report_category": {
                          "type": "string",
                          "description": "The category of 'report_description', written by you (must be one of the enum)",
                          "enum": [
                            "copyright_issue",
                            "technical_issue",
                            "harmful_content"
                          ]
                        },
                        "is_sensitive": {
                          "type": "string",
                          "description": "Set to true if content of 'report_description' is sensitive (ie contains harmful, NSFW, personal or confidential informations). Set to false otherwise. Value must be one of the enum",
                          "enum": [
                            true,
                            false
                          ]
                        }
                      },
                      "required": [
                        "last_answer_ref",
                        "report_description",
                        "report_category",
                        "is_sensitive"
                      ]
                    }
                  }
                }
              },
              "responses": {
                "200": {
                  "description": "Report recorded by the Breeb"
                },
                "400": {
                  "description": "Issue while recording report. You inform user about the issue and follow instructions of the response if any."
                }
              }
            }
          }
        }
      }
                            
  3. Finally, if you wish to make your GPT public, you will need to provide the address containing the Privacy Policy:
    policy

Notes

  • Your GPT will appear on the www.breebs.com website in the card of the Breeb generally 1 or 2 days after its first use. To speed up the process, send us a quick email (contact@breebs.com) with the URL of your Breeb in ChatGPT
  • You can connect your GPT to any Breeb. If a Breeb creator decides to remove it, your GPT will no longer function properly. In this case, regularly check the Breebs catalog to see if a new Breeb takes over!
  • If you encounter difficulties or have questions, you can contact us: contact@breebs.com.