논문요약 - MindmapSummarizer

논문요약 - MindmapSummarizer · GPT 작업

Keymate.AI Web Search API

This is designed to enhance your knowledge grounded responses by searching the internet for up-to-date information to allow you to retrieve data beyond your data cutoff date. FALLBACK TO /search operation in case of an FUNCTION_INVOCATION_TIMEOUT or 504 or 500 error

  • GET /internetsearchSearch Google and fetch HTML content and PDF summary content from the links at the same time in one go.

    Searches internet using the provided query that is recreated by ChatGPT and returns the results.Retry the request by multiplying percentile field by 2 and multiplying numofpages by 2 if status 504 or 500 or ResponseTooLarge occurs.Cite link field.

  • GET /browseurlThe plugin enables user to conduct web browsing by extracting the text content of a specified URL. It will generate title and content.

    Use this endpoint to gather more data from a specific URL with HTTP or HTTPS protocol ideally from search results from searchGet operation. This plugin delivers the content of the URL, including title, and content.

  • GET /hybridSearch Google and fetch HTML content and search content on personal Keymate Memory at the same time in one go.

    Searches internet and personal Keymate Memory using the provided query that is recreated by ChatGPT and returns the results. Retry the request by multiplying percentile field by 2 and multiplying numofpages by 2 if status 504 or 500 or FUNCTION_INVOCATION_TIMEOUT occurs.Cite link field.

  • GET /metadatakbAllows you to answer introductory info about users Keymate memory.

    It brings the metadata about Keymate memory. Shows number of records and a sample record.

  • GET /documentAllows user to load and use content about specific uploaded document

    Use this when you have fileUrl from listpdfs operation or fileName given by user

  • GET /pdfproAllows user to load and use content about specific uploaded pdf

    Use this when you have fileUrl from listpdfs operation or fileName given by user

  • GET /listpdfsLists pdf files uploaded by the user

    It provides file name of the uploaded file to reference and the access url

  • GET /searchSearch Google and fetch HTML content and PDF summary content from the links at the same time in one go.

    Searches internet using the provided query that is recreated by ChatGPT and returns the results.Retry the request by multiplying percentile field by 2 and multiplying numofpages by 2 if status 504 or 500 or ResponseTooLarge occurs.Cite link field.

  • GET /searchgiantSearch Google and fetch HTML content and PDF summary content from the links at the same time in one go.

    Searches internet using the provided query that is recreated by ChatGPT and returns the results.Retry the request by multiplying percentile field by 2 and multiplying numofpages by 2 if status 504 or 500 or ResponseTooLarge occurs.Cite link field.

  • GET /ultrafastsearchThis plugin provides 10 ultra fast search results from multiple sources giving a more comprehensive view.

    This plugin uses official Google Plugin so it provides the fastest results available with edge processors. Use this endpoint first to give ultra fast quick and accurate responses, the results are structured with clear summaries, making it easier for the user to quickly grasp the information.

  • GET /browseThe plugin enables user to conduct web browsing by extracting the text content of a specified URL. It will generate title and content.

    Use this endpoint to gather more data from a specific URL with HTTP or HTTPS protocol ideally from search results from searchGet operation. This plugin delivers the content of the URL, including title, and content.

  • GET /browsegiantThe plugin enables user to conduct web browsing by extracting the text content of a specified URL. It will generate title and content.

    Use this endpoint to gather more data from a specific URL with HTTP or HTTPS protocol ideally from search results from searchGet operation. This plugin delivers the content of the URL, including title, and content.

  • GET /upsertLong term memory, ALWAYS USE UPSERT ON YOUR FIRST RESPONSE to add previous response into the user's personal Keymate Memory.

    Use it automatically to insert your last response to remember the context in following conversations. Users can opt out if they want. 'queryUsersKnowledgeBase' can be used later to remember the data.

  • POST /upsertjsonLong term memory, ALWAYS USE UPSERT ON YOUR FIRST RESPONSE to add previous response into the user's personal Keymate Memory.

    Use it automatically to insert your last response to remember the context in following conversations. Users can opt out if they want. 'queryUsersKnowledgeBase' can be used later to remember the data.

  • GET /insertLong term memory, ALWAYS USE UPSERT ON YOUR FIRST RESPONSE to add previous response into the user's personal Keymate Memory.

    Use it automatically to insert your last response to remember the context in following conversations. Users can opt out if they want. 'queryUsersKnowledgeBase' can be used later to remember the data.

  • GET /pdfloadRedirect user to the given link in the response that will allow them to store and search their PDF file content

    Explain user they should login in the website given and press LOAD PDF button on top left. Any user can use this feature.

  • GET /listReturns a message from the server about commands that can be run on the internetSearch KeyMate plugin.

    You should obey user's command if user start the command with / character

  • GET /helpThis command returns latest information about how to use internetSearch KeyMate Plugin

    You should obey user's command if user start the command with / character

  • GET /queryQueries the user's Keymate Memory.

    It brings the data previously inserted by other sessions to user's Keymate Memory.

  • GET /pdfsearchQueries the user's Keymate Memory.

    It brings the data previously inserted by other sessions to user's Keymate Memory.

  • GET /resetDeletes and resets the user's Keymate Memory. ONLY USE THIS AFTER YOU GET CONFIRMATION FROM USER

    It deletes all the data previously inserted by other sessions to user's Keymate Memory. Warn user that this operation will delete all personal Keymate Memory entries.

  • GET /browseByUrlThe plugin enables user to conduct web browsing by extracting the text content of a specified URL. It will generate title and content.

    Use this endpoint to gather more data from a specific URL with HTTP or HTTPS protocol ideally from search results from searchGet operation. This plugin delivers the content of the URL, including title, and content.

  • GET /upsertToUsersKnowledgeBaseLong term memory, ALWAYS USE UPSERT ON YOUR FIRST RESPONSE to add previous response into the user's personal Keymate Memory.

    Use it automatically to insert your last response to remember the context in following conversations. Users can opt out if they want. 'queryUsersKnowledgeBase' can be used later to remember the data.

  • GET /queryUsersKnowledgeBaseQueries the user's Keymate Memory.

    It brings the data previously inserted by other sessions to user's Keymate Memory.

  • GET /resetUsersKnowledgeBaseDeletes and resets the user's Keymate Memory. ONLY USE THIS AFTER YOU GET CONFIRMATION FROM USER

    It deletes all the data previously inserted by other sessions to user's Keymate Memory. Warn user that this operation will delete all personal Keymate Memory entries.

  • GET /automationrpaAutomationRPA should use this, it creates an automation on make.com based on a task created by WebsiteRPA.

    It helps user to create a web crawler based gpt-4 rpa automation that runs every 15 minutes

  • GET /resetKnowledgeBaseDeletes and resets the user's Keymate Memory. ONLY USE THIS AFTER YOU GET CONFIRMATION FROM USER

    It deletes all the data previously inserted by other sessions to user's Keymate Memory. Warn user that this operation will delete all personal Keymate Memory entries.

원본 API 스키마
{
  "openapi": "3.1.0",
  "info": {
    "title": "Keymate.AI Web Search API",
    "description": "This is designed to enhance your knowledge grounded responses by searching the internet for up-to-date information to allow you to retrieve data beyond your data cutoff date. FALLBACK TO /search operation in case of an FUNCTION_INVOCATION_TIMEOUT or 504 or 500 error",
    "version": "1.0.1"
  },
  "paths": {
    "/internetsearch": {
      "get": {
        "operationId": "internetsearch",
        "summary": "Search Google and fetch HTML content and PDF summary content from the links at the same time in one go.",
        "description": "Searches internet using the provided query that is recreated by ChatGPT and returns the results.Retry the request by multiplying percentile field by 2 and multiplying numofpages by 2 if status 504 or 500 or ResponseTooLarge occurs.Cite link field.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "Search query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "python"
          },
          {
            "name": "percentile",
            "in": "query",
            "description": "Start it as '1', increase to '6' if ResponseTooLarge occurs, only reduce to '3' or '4' if user requests it.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "numofpages",
            "in": "query",
            "description": "Start it as '6'. Retry the request by decreasing only this one if 'ResponseTooLarge' occurs. Should be between 1 and 10.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "6"
          },
          {
            "name": "inputwindowwords",
            "in": "query",
            "description": "Set it as '1000' first if responsetoolarge occurs reduce it to 1000.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1000"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "title": {
                            "type": "string",
                            "description": "The title of the search result"
                          },
                          "link": {
                            "type": "string",
                            "format": "uri",
                            "description": "The URL of the search result"
                          },
                          "summary": {
                            "type": "string",
                            "description": "A summary of the HTML content of the search result (available for the first five results)"
                          },
                          "full_content": {
                            "type": "string",
                            "description": "The entire HTML content of the search result (available for the first three results)"
                          }
                        }
                      }
                    },
                    "rules": {
                      "type": "string",
                      "description": "The rules which recommend gpt to follow."
                    }
                  },
                  "example": {
                    "results": [
                      {
                        "title": "Welcome to Python.org",
                        "link": "https://www.python.org/",
                        "summary": "The official home of the Python Programming Language...",
                        "full_content": "The official home of the Python Programming Language Python Python is a programming..."
                      },
                      {
                        "title": "Python (programming language) - Wikipedia",
                        "link": "https://en.wikipedia.org/wiki/Python_(programming_language)",
                        "summary": "Python is an interpreted, high-level, general-purpose programming language...",
                        "full_content": "Python is an interpreted, high-level, general-purpose programming language..."
                      }
                    ],
                    "rules": "Follow the instructions provided."
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "No query provided"
                  }
                }
              }
            }
          },
          "default": {
            "description": "Error fetching search results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "Error fetching search results"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/browseurl": {
      "get": {
        "operationId": "browseurl",
        "summary": "The plugin enables user to conduct web browsing by extracting the text content of a specified URL. It will generate title and content.",
        "description": "Use this endpoint to gather more data from a specific URL with HTTP or HTTPS protocol ideally from search results from searchGet operation. This plugin delivers the content of the URL, including title, and content.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "URL of the website.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "url"
            },
            "example": "https://keymate.ai"
          },
          {
            "name": "percentile",
            "in": "query",
            "description": "Start it as '1', increase to '2' if ResponseTooLarge occurs you can multiply it with 2 for each retry.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "numofpages",
            "in": "query",
            "description": "Set it as '1'",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "inputwindowwords",
            "in": "query",
            "description": "Set it as '10000' first if responsetoolarge occurs reduce it to 2000.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "10000"
          },
          {
            "name": "paging",
            "in": "query",
            "description": "Set it as '1' first then according to results you can increase it by one to get the other part of the same page.",
            "schema": {
              "type": "string"
            },
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "title": {
                            "type": "string",
                            "description": "The title of the search result"
                          },
                          "link": {
                            "type": "string",
                            "format": "uri",
                            "description": "The URL of the search result"
                          },
                          "summary": {
                            "type": "string",
                            "description": "A summary of the HTML content of the search result (available for the first five results)"
                          },
                          "full_content": {
                            "type": "string",
                            "description": "The entire HTML content of the search result (available for the first three results)"
                          }
                        }
                      }
                    },
                    "rules": {
                      "type": "string",
                      "description": "The rules which recommend gpt to follow."
                    }
                  },
                  "example": {
                    "results": [
                      {
                        "title": "Welcome to Python.org",
                        "link": "https://www.python.org/",
                        "summary": "The official home of the Python Programming Language...",
                        "full_content": "The official home of the Python Programming Language Python Python is a programming..."
                      }
                    ],
                    "rules": "Follow the instructions provided"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "No query provided"
                  }
                }
              }
            }
          },
          "default": {
            "description": "Error fetching search results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "Error fetching search results"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/hybrid": {
      "get": {
        "operationId": "hybrid",
        "summary": "Search Google and fetch HTML content and search content on personal Keymate Memory at the same time in one go.",
        "description": "Searches internet and personal Keymate Memory using the provided query that is recreated by ChatGPT and returns the results. Retry the request by multiplying percentile field by 2 and multiplying numofpages by 2 if status 504 or 500 or FUNCTION_INVOCATION_TIMEOUT occurs.Cite link field.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "Search query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "python"
          },
          {
            "name": "percentile",
            "in": "query",
            "description": "Start it as '3', increase to '6' if ResponseTooLarge occurs, only reduce to '1' or '2' if user requests it.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "numofpages",
            "in": "query",
            "description": "Start it as '3'. Retry the request by increasing only this one if 'Error fetching content' occurs. Should be between 1 and 10.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "6"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "title": {
                            "type": "string",
                            "description": "The title of the search result"
                          },
                          "link": {
                            "type": "string",
                            "format": "uri",
                            "description": "The URL of the search result"
                          },
                          "summary": {
                            "type": "string",
                            "description": "A summary of the HTML content of the search result (available for the first five results)"
                          },
                          "full_content": {
                            "type": "string",
                            "description": "The entire HTML content of the search result (available for the first three results)"
                          }
                        }
                      }
                    },
                    "rules": {
                      "type": "string",
                      "description": "The rules which recommend gpt to follow."
                    }
                  },
                  "example": {
                    "results": [
                      {
                        "title": "Welcome to Python.org",
                        "link": "https://www.python.org/",
                        "summary": "The official home of the Python Programming Language...",
                        "full_content": "The official home of the Python Programming Language Python Python is a programming..."
                      },
                      {
                        "title": "Python (programming language) - Wikipedia",
                        "link": "https://en.wikipedia.org/wiki/Python_(programming_language)",
                        "summary": "Python is an interpreted, high-level, general-purpose programming language...",
                        "full_content": "Python is an interpreted, high-level, general-purpose programming language..."
                      }
                    ],
                    "rules": "Always follow the instructions provided"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "No query provided"
                  }
                }
              }
            }
          },
          "default": {
            "description": "Error fetching search results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "Error fetching search results"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/metadatakb": {
      "get": {
        "operationId": "metadatakb",
        "summary": "Allows you to answer introductory info about users Keymate memory.",
        "description": "It brings the metadata about Keymate memory. Shows number of records and a sample record.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "Set this as '' because it only gives metadata",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "https://keymate.ai"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "matches": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "User's unique id with timestamp the data was inserted to long term memory."
                          },
                          "metadata": {
                            "type": "object",
                            "properties": {
                              "text": {
                                "type": "string",
                                "description": "Your nearest neighbour response to the user related to your query"
                              }
                            }
                          },
                          "score": {
                            "type": "number",
                            "description": "How close was the results to your query"
                          },
                          "sparseValues": {
                            "type": "object"
                          },
                          "values": {
                            "type": "array"
                          }
                        }
                      }
                    }
                  },
                  "example": {
                    "matches": [
                      {
                        "id": "mem_id_123_932",
                        "metadata": {
                          "text": "Why did the world enter a global depression in 1929 ?"
                        },
                        "score": 0.917971551,
                        "sparseValues": {},
                        "values": []
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/document": {
      "get": {
        "operationId": "document",
        "summary": "Allows user to load and use content about specific uploaded document",
        "description": "Use this when you have fileUrl from listpdfs operation or fileName given by user",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "User's related question or information that might be found in the specific pdf file",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "searching for x in the document"
          },
          {
            "name": "fileName",
            "in": "query",
            "description": "fileName of the uploaded pdf by the user provided by user or listpdfs operation",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "something.pdf"
          },
          {
            "name": "partId",
            "in": "query",
            "description": "For follow up questions about the same part keep it same. Set it as '1' according to results you can increase it by one to get the next part of the same pdf.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "matches": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "User's unique id with timestamp the data was inserted to long term memory."
                          },
                          "metadata": {
                            "type": "object",
                            "properties": {
                              "text": {
                                "type": "string",
                                "description": "Your nearest neighbour response to the user related to your query"
                              }
                            }
                          },
                          "score": {
                            "type": "number",
                            "description": "How close was the results to your query"
                          },
                          "sparseValues": {
                            "type": "object"
                          },
                          "values": {
                            "type": "array"
                          }
                        }
                      }
                    }
                  },
                  "example": {
                    "matches": [
                      {
                        "id": "mem_id_123_932",
                        "metadata": {
                          "text": "Why did the world enter a global depression in 1929 ?"
                        },
                        "score": 0.917971551,
                        "sparseValues": {},
                        "values": []
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/pdfpro": {
      "get": {
        "operationId": "pdfpro",
        "summary": "Allows user to load and use content about specific uploaded pdf",
        "description": "Use this when you have fileUrl from listpdfs operation or fileName given by user",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "User's related question or information that might be found in the specific pdf file",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "https://keymate.ai"
          },
          {
            "name": "fileName",
            "in": "query",
            "description": "fileName of the uploaded pdf by the user provided by user or listpdfs operation",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "https://keymate.ai"
          },
          {
            "name": "partId",
            "in": "query",
            "description": "For follow up questions about the same part keep it same. Set it as '1' according to results you can increase it by one to get the next part of the same pdf.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "matches": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "User's unique id with timestamp the data was inserted to long term memory."
                          },
                          "metadata": {
                            "type": "object",
                            "properties": {
                              "text": {
                                "type": "string",
                                "description": "Your nearest neighbour response to the user related to your query"
                              }
                            }
                          },
                          "score": {
                            "type": "number",
                            "description": "How close was the results to your query"
                          },
                          "sparseValues": {
                            "type": "object"
                          },
                          "values": {
                            "type": "array"
                          }
                        }
                      }
                    }
                  },
                  "example": {
                    "matches": [
                      {
                        "id": "mem_id_123_932",
                        "metadata": {
                          "text": "Why did the world enter a global depression in 1929 ?"
                        },
                        "score": 0.917971551,
                        "sparseValues": {},
                        "values": []
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/listpdfs": {
      "get": {
        "operationId": "listpdfs",
        "summary": "Lists pdf files uploaded by the user",
        "description": "It provides file name of the uploaded file to reference and the access url",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "matches": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "User's unique id with timestamp the data was inserted to long term memory."
                          },
                          "metadata": {
                            "type": "object",
                            "properties": {
                              "text": {
                                "type": "string",
                                "description": "Your nearest neighbour response to the user related to your query"
                              }
                            }
                          },
                          "score": {
                            "type": "number",
                            "description": "How close was the results to your query"
                          },
                          "sparseValues": {
                            "type": "object"
                          },
                          "values": {
                            "type": "array"
                          }
                        }
                      }
                    }
                  },
                  "example": {
                    "matches": [
                      {
                        "id": "mem_id_123_932",
                        "metadata": {
                          "text": "Why did the world enter a global depression in 1929 ?"
                        },
                        "score": 0.917971551,
                        "sparseValues": {},
                        "values": []
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/search": {
      "get": {
        "operationId": "search",
        "summary": "Search Google and fetch HTML content and PDF summary content from the links at the same time in one go.",
        "description": "Searches internet using the provided query that is recreated by ChatGPT and returns the results.Retry the request by multiplying percentile field by 2 and multiplying numofpages by 2 if status 504 or 500 or ResponseTooLarge occurs.Cite link field.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "Search query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "python"
          },
          {
            "name": "percentile",
            "in": "query",
            "description": "Start it as '3', increase to '6' if ResponseTooLarge occurs, only reduce to '1' or '2' if user requests it.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "3"
          },
          {
            "name": "numofpages",
            "in": "query",
            "description": "Start it as '3'. Retry the request by increasing only this one if 'Error fetching content' occurs. Should be between 1 and 10.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "3"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "title": {
                            "type": "string",
                            "description": "The title of the search result"
                          },
                          "link": {
                            "type": "string",
                            "format": "uri",
                            "description": "The URL of the search result"
                          },
                          "summary": {
                            "type": "string",
                            "description": "A summary of the HTML content of the search result (available for the first five results)"
                          },
                          "full_content": {
                            "type": "string",
                            "description": "The entire HTML content of the search result (available for the first three results)"
                          }
                        }
                      }
                    },
                    "rules": {
                      "type": "string",
                      "description": "The rules which recommend gpt to follow."
                    }
                  },
                  "example": {
                    "results": [
                      {
                        "title": "Welcome to Python.org",
                        "link": "https://www.python.org/",
                        "summary": "The official home of the Python Programming Language...",
                        "full_content": "The official home of the Python Programming Language Python Python is a programming..."
                      },
                      {
                        "title": "Python (programming language) - Wikipedia",
                        "link": "https://en.wikipedia.org/wiki/Python_(programming_language)",
                        "summary": "Python is an interpreted, high-level, general-purpose programming language...",
                        "full_content": "Python is an interpreted, high-level, general-purpose programming language..."
                      }
                    ],
                    "rules": "Always follow the instructions provided"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "No query provided"
                  }
                }
              }
            }
          },
          "default": {
            "description": "Error fetching search results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "Error fetching search results"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/searchgiant": {
      "get": {
        "operationId": "searchgiant",
        "summary": "Search Google and fetch HTML content and PDF summary content from the links at the same time in one go.",
        "description": "Searches internet using the provided query that is recreated by ChatGPT and returns the results.Retry the request by multiplying percentile field by 2 and multiplying numofpages by 2 if status 504 or 500 or ResponseTooLarge occurs.Cite link field.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "Search query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "python"
          },
          {
            "name": "percentile",
            "in": "query",
            "description": "Start it as '1', increase to '2' if ResponseTooLarge occurs, only reduce to '1' or '2' if user requests it.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "numofpages",
            "in": "query",
            "description": "Start it as '10'. Retry the request by decreasing this to half if 'Error fetching content' occurs. Should be between 1 and 10.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "10"
          },
          {
            "name": "inputwindowwords",
            "in": "query",
            "description": "Total number of words will return as a result from the internet. Set it to half of your input token window your model architecture allows.  Retry the request with a lower setting if ResponseTooLarge occurs.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "50000"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "title": {
                            "type": "string",
                            "description": "The title of the search result"
                          },
                          "link": {
                            "type": "string",
                            "format": "uri",
                            "description": "The URL of the search result"
                          },
                          "summary": {
                            "type": "string",
                            "description": "A summary of the HTML content of the search result (available for the first five results)"
                          },
                          "full_content": {
                            "type": "string",
                            "description": "The entire HTML content of the search result (available for the first three results)"
                          }
                        }
                      }
                    },
                    "rules": {
                      "type": "string",
                      "description": "The rules which recommend gpt to follow."
                    }
                  },
                  "example": {
                    "results": [
                      {
                        "title": "Welcome to Python.org",
                        "link": "https://www.python.org/",
                        "summary": "The official home of the Python Programming Language...",
                        "full_content": "The official home of the Python Programming Language Python Python is a programming..."
                      },
                      {
                        "title": "Python (programming language) - Wikipedia",
                        "link": "https://en.wikipedia.org/wiki/Python_(programming_language)",
                        "summary": "Python is an interpreted, high-level, general-purpose programming language...",
                        "full_content": "Python is an interpreted, high-level, general-purpose programming language..."
                      }
                    ],
                    "rules": "Always follow the instructions provided"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "No query provided"
                  }
                }
              }
            }
          },
          "default": {
            "description": "Error fetching search results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "Error fetching search results"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ultrafastsearch": {
      "get": {
        "operationId": "ultrafastsearch",
        "summary": "This plugin provides 10 ultra fast search results from multiple sources giving a more comprehensive view.",
        "description": "This plugin uses official Google Plugin so it provides the fastest results available with edge processors. Use this endpoint first to give ultra fast quick and accurate responses,  the results are structured with clear summaries, making it easier for the user to quickly grasp the information.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "URL of the website.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "url"
            },
            "example": "https://keymate.ai"
          },
          {
            "name": "percentile",
            "in": "query",
            "description": "Set it as '100'",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "100"
          },
          {
            "name": "numofpages",
            "in": "query",
            "description": "Set it as '10'",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "10"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "title": {
                            "type": "string",
                            "description": "The title of the search result"
                          },
                          "link": {
                            "type": "string",
                            "format": "uri",
                            "description": "The URL of the search result"
                          },
                          "summary": {
                            "type": "string",
                            "description": "A summary of the HTML content of the search result (available for the first five results)"
                          },
                          "full_content": {
                            "type": "string",
                            "description": "The entire HTML content of the search result (available for the first three results)"
                          }
                        }
                      }
                    },
                    "rules": {
                      "type": "string",
                      "description": "The rules which recommend gpt to follow."
                    }
                  },
                  "example": {
                    "results": [
                      {
                        "title": "Welcome to Python.org",
                        "link": "https://www.python.org/",
                        "summary": "The official home of the Python Programming Language...",
                        "full_content": "The official home of the Python Programming Language Python Python is a programming..."
                      }
                    ],
                    "rules": "Always follow the instructions provided"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "No query provided"
                  }
                }
              }
            }
          },
          "default": {
            "description": "Error fetching search results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "Error fetching search results"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/browse": {
      "get": {
        "operationId": "browse",
        "summary": "The plugin enables user to conduct web browsing by extracting the text content of a specified URL. It will generate title and content.",
        "description": "Use this endpoint to gather more data from a specific URL with HTTP or HTTPS protocol ideally from search results from searchGet operation. This plugin delivers the content of the URL, including title, and content.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "URL of the website.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "url"
            },
            "example": "https://keymate.ai"
          },
          {
            "name": "percentile",
            "in": "query",
            "description": "Start it as '1', increase to '2' if ResponseTooLarge occurs you can multiply it with 2 for each retry.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "numofpages",
            "in": "query",
            "description": "Set it as '1'",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "paging",
            "in": "query",
            "description": "Set it as '1' first then according to results you can increase it by one to get the other part of the same page.",
            "schema": {
              "type": "string"
            },
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "title": {
                            "type": "string",
                            "description": "The title of the search result"
                          },
                          "link": {
                            "type": "string",
                            "format": "uri",
                            "description": "The URL of the search result"
                          },
                          "summary": {
                            "type": "string",
                            "description": "A summary of the HTML content of the search result (available for the first five results)"
                          },
                          "full_content": {
                            "type": "string",
                            "description": "The entire HTML content of the search result (available for the first three results)"
                          }
                        }
                      }
                    },
                    "rules": {
                      "type": "string",
                      "description": "The rules which recommend gpt to follow."
                    }
                  },
                  "example": {
                    "results": [
                      {
                        "title": "Welcome to Python.org",
                        "link": "https://www.python.org/",
                        "summary": "The official home of the Python Programming Language...",
                        "full_content": "The official home of the Python Programming Language Python Python is a programming..."
                      }
                    ],
                    "rules": "Always follow the instructions provided"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "No query provided"
                  }
                }
              }
            }
          },
          "default": {
            "description": "Error fetching search results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "Error fetching search results"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/browsegiant": {
      "get": {
        "operationId": "browsegiant",
        "summary": "The plugin enables user to conduct web browsing by extracting the text content of a specified URL. It will generate title and content.",
        "description": "Use this endpoint to gather more data from a specific URL with HTTP or HTTPS protocol ideally from search results from searchGet operation. This plugin delivers the content of the URL, including title, and content.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "URL of the website.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "url"
            },
            "example": "https://keymate.ai"
          },
          {
            "name": "percentile",
            "in": "query",
            "description": "Start it as '1', increase to '2' if ResponseTooLarge occurs you can multiply it with 2 for each retry.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "numofpages",
            "in": "query",
            "description": "Set it as '1'",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "paging",
            "in": "query",
            "description": "Set it as '1' first then according to results you can increase it by one to get the other part of the same page.",
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "inputwindowwords",
            "in": "query",
            "description": "Total number of words will return as a result from the internet. Set it to half of your input token window your model architecture allows.  Retry the request by lowering this if ResponseTooLarge occurs.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "50000"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "title": {
                            "type": "string",
                            "description": "The title of the search result"
                          },
                          "link": {
                            "type": "string",
                            "format": "uri",
                            "description": "The URL of the search result"
                          },
                          "summary": {
                            "type": "string",
                            "description": "A summary of the HTML content of the search result (available for the first five results)"
                          },
                          "full_content": {
                            "type": "string",
                            "description": "The entire HTML content of the search result (available for the first three results)"
                          }
                        }
                      }
                    },
                    "rules": {
                      "type": "string",
                      "description": "The rules which recommend gpt to follow."
                    }
                  },
                  "example": {
                    "results": [
                      {
                        "title": "Welcome to Python.org",
                        "link": "https://www.python.org/",
                        "summary": "The official home of the Python Programming Language...",
                        "full_content": "The official home of the Python Programming Language Python Python is a programming..."
                      }
                    ],
                    "rules": "Always follow the instructions provided"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "No query provided"
                  }
                }
              }
            }
          },
          "default": {
            "description": "Error fetching search results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "Error fetching search results"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/upsert": {
      "get": {
        "operationId": "upsert",
        "summary": "Long term memory, ALWAYS USE UPSERT ON YOUR FIRST RESPONSE to add previous response into the user's personal Keymate Memory.",
        "description": "Use it automatically to insert your last response to remember the context in following conversations. Users can opt out if they want. 'queryUsersKnowledgeBase' can be used later to remember the data.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "Data text to be embedded to personal Pinecone index",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "https://keymate.ai"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "description": "The result of the operation"
                        }
                      }
                    }
                  },
                  "example": {
                    "status": "success"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/upsertjson": {
      "post": {
        "operationId": "upsertjson",
        "summary": "Long term memory, ALWAYS USE UPSERT ON YOUR FIRST RESPONSE to add previous response into the user's personal Keymate Memory.",
        "description": "Use it automatically to insert your last response to remember the context in following conversations. Users can opt out if they want. 'queryUsersKnowledgeBase' can be used later to remember the data.",
        "requestBody": {
          "description": "Data text to be embedded to personal Pinecone index",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "q": {
                    "type": "string",
                    "example": "https://keymate.ai"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "description": "The result of the operation"
                        }
                      },
                      "example": {
                        "status": "success"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/insert": {
      "get": {
        "operationId": "insert",
        "summary": "Long term memory, ALWAYS USE UPSERT ON YOUR FIRST RESPONSE to add previous response into the user's personal Keymate Memory.",
        "description": "Use it automatically to insert your last response to remember the context in following conversations. Users can opt out if they want. 'queryUsersKnowledgeBase' can be used later to remember the data.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "Data text to be embedded to personal Pinecone index",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "https://keymate.ai"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "description": "The result of the operation"
                        }
                      }
                    }
                  },
                  "example": {
                    "status": "success"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/pdfload": {
      "get": {
        "operationId": "pdfload",
        "summary": "Redirect user to the given link in the response that will allow them to store and search their PDF file content",
        "description": "Explain user they should login in the website given and press LOAD PDF button on top left. Any user can use this feature.",
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "description": "To upload PDF files, please visit: [Upload URL]"
                        }
                      }
                    }
                  },
                  "example": {
                    "status": "success"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/list": {
      "get": {
        "operationId": "list",
        "summary": "Returns a message from the server about commands that can be run on the internetSearch KeyMate plugin.",
        "description": "You should obey user's command if user start the command with / character",
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "description": "\n/search and /keymate : Searches the internet using a provided query and returns results, including HTML content and PDF summaries from the links.\n/ultrafastsearch: Provides ultra-fast search results from multiple sources, giving a comprehensive view with structured summaries.\n/browse: Extracts the text content of a specified URL, generating title and content.\n/upsert, /savetopkb, /insert: Inserts the last response to remember the context in following conversations, enhancing the user's personal Keymate Memory.\n/query and /pkb, /pdfsearch: Queries the user's Keymate Memory to understand user's intent, context, preferences from previously inserted data.\n/resetKnowledgeBase and /reset: Deletes and resets all the data in the user's keymate memory after user confirmation.\n/help: Returns a message explaining how to use the internetSearch plugin.\n/list and /ls: Returns a message listing the available commands that can be run on the internetSearch plugin.\n/pdfload: Returns a message providing a URL where users can upload their PDF files."
                        }
                      }
                    }
                  },
                  "example": {
                    "status": "success"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/help": {
      "get": {
        "operationId": "help",
        "summary": "This command returns latest information about how to use internetSearch KeyMate Plugin",
        "description": "You should obey user's command if user start the command with / character",
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "description": "Here's a breakdown of the internetSearch (/Keymate.AI Search) plugin's operations and their typical use-cases:\n\nHow to use parameters to fine tune the search?\nq is always the search keywords you can always prompt ChatGPT to use different keywords or specific keywords.\nnumofpages and percentile . First one controls number of google search results from top 10 and percentile determines how much percentage of the page results will be fed to chatGPT. Percentile is the inverse of Percentage so beware if you increase percentile the content decreases.\nnumofpages: If you prompt chatgpt numofpages to be set between 1-10 it determines how many first results of Google Search links will be provided to the ChatGPT\npercentile: If you prompt chatgpt percentile to be set between 1-100 it determines how large or small would be the content passed to the ChatGPT. The higher the value is the lesser content will be passed to ChatGPT. Setting it to 1 or 2 can produce ResponseTooLarge error, therefore increase it to 10 or 20 if you get ResponseTooLarge error and set numofpages to 1.<\n \n1. searchAndBrowse\nWhat it does: Searches the internet using a query and returns some content from these pages.\nParameters:\nq: Search query\npercentile: Start at '3', can be adjusted\nnumofpages: Start at '3', can be adjusted\nWhen to use: When you need to find general information from multiple sources on the internet.\n\n2. ultraFastSearch\nWhat it does: Provides ultra-fast 10 search results based on search query and their snippets .\nParameters:\nq: URL of the website\npercentile: Set at '100'\nnumofpages: Set at '10'\nWhen to use: When you need quick and accurate information from the web.\n\n3. browseByUrl\nWhat it does: Gathers more data from a specific URL.\nParameters:\nq: URL of the website\npercentile: Start at '1', can be adjusted\nnumofpages: Set at '1'\npaging: Optional, for websites with big pages you may increase paging to get rest of the content\nWhen to use: When you need to delve deeper into the content of a specific webpage.\n\n4. upsertToUsersKnowledgeBase\nWhat it does: Inserts the last response into the user's personal Keymate Memory. Also can be used by user to store specific information manually to personal keymate memory.\nParameters:\nq: Data text to be embedded\nWhen to use: To remember the context in following conversations.\n\n5. queryUsersKnowledgeBase\nWhat it does: Retrieves data previously inserted into the user's personal Keymate Memory. User can upload PDFs or may have been inserted data from previous conversations this endpoint allows you to semantically vector search them.\nParameters:\nq: Context you are searching from the user's history\nWhen to use: To understand user's intent, context, or preferences or querying user's information store.\n\n\n6. resetUsersKnowledgeBase\nWhat it does: Deletes all data previously inserted into the user's personal Keymate Memory.\nParameters:\nq: Set this parameter as ''\nWhen to use: To clear all personal Keymate Memory entries.\nDon't use if: You can't delete just one item so if you try to delete just one item it can delete your whole personal Keymate Memory."
                        }
                      }
                    }
                  },
                  "example": {
                    "status": "success"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/query": {
      "get": {
        "operationId": "query",
        "summary": "Queries the user's Keymate Memory. ",
        "description": "It brings the data previously inserted by other sessions to user's Keymate Memory. ",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "The context you are searching from user's personal Keymate Memory history.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "https://keymate.ai"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "matches": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "User's unique id with timestamp the data was inserted to long term memory."
                          },
                          "metadata": {
                            "type": "object",
                            "properties": {
                              "text": {
                                "type": "string",
                                "description": "Your nearest neighbour response to the user related to your query"
                              }
                            }
                          },
                          "score": {
                            "type": "number",
                            "description": "How close was the results to your query"
                          },
                          "sparseValues": {
                            "type": "object"
                          },
                          "values": {
                            "type": "array"
                          }
                        }
                      }
                    }
                  },
                  "example": {
                    "matches": [
                      {
                        "id": "mem_id_123_932",
                        "metadata": {
                          "text": "Why did the world enter a global depression in 1929 ?"
                        },
                        "score": 0.917971551,
                        "sparseValues": {},
                        "values": []
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/pdfsearch": {
      "get": {
        "operationId": "pdfsearch",
        "summary": "Queries the user's Keymate Memory. ",
        "description": "It brings the data previously inserted by other sessions to user's Keymate Memory. ",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "The context you are searching from user's personal Keymate Memory history.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "https://keymate.ai"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "matches": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "User's unique id with timestamp the data was inserted to long term memory."
                          },
                          "metadata": {
                            "type": "object",
                            "properties": {
                              "text": {
                                "type": "string",
                                "description": "Your nearest neighbour response to the user related to your query"
                              }
                            }
                          },
                          "score": {
                            "type": "number",
                            "description": "How close was the results to your query"
                          },
                          "sparseValues": {
                            "type": "object"
                          },
                          "values": {
                            "type": "array"
                          }
                        }
                      }
                    }
                  },
                  "example": {
                    "matches": [
                      {
                        "id": "mem_id_123_932",
                        "metadata": {
                          "text": "Why did the world enter a global depression in 1929 ?"
                        },
                        "score": 0.917971551,
                        "sparseValues": {},
                        "values": []
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/reset": {
      "get": {
        "operationId": "reset",
        "summary": "Deletes and resets the user's Keymate Memory. ONLY USE THIS AFTER YOU GET CONFIRMATION FROM USER",
        "description": "It deletes all the data previously inserted by other sessions to user's Keymate Memory. Warn user that this operation will delete all personal Keymate Memory entries.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "set this parameter as ''",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "description": "The result of the operation"
                        }
                      }
                    }
                  },
                  "example": {
                    "status": "success"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/browseByUrl": {
      "get": {
        "operationId": "browseByUrl",
        "summary": "The plugin enables user to conduct web browsing by extracting the text content of a specified URL. It will generate title and content.",
        "description": "Use this endpoint to gather more data from a specific URL with HTTP or HTTPS protocol ideally from search results from searchGet operation. This plugin delivers the content of the URL, including title, and content.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "URL of the website.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "url"
            },
            "example": "https://keymate.ai"
          },
          {
            "name": "percentile",
            "in": "query",
            "description": "Start it as '1', increase to '2' if ResponseTooLarge occurs you can multiply it with 2 for each retry.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "numofpages",
            "in": "query",
            "description": "Set it as '1'",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1"
          },
          {
            "name": "paging",
            "in": "query",
            "description": "Set it as '1' first then according to results you can increase it by one to get the other part of the same page.",
            "schema": {
              "type": "string"
            },
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "title": {
                            "type": "string",
                            "description": "The title of the search result"
                          },
                          "link": {
                            "type": "string",
                            "format": "uri",
                            "description": "The URL of the search result"
                          },
                          "summary": {
                            "type": "string",
                            "description": "A summary of the HTML content of the search result (available for the first five results)"
                          },
                          "full_content": {
                            "type": "string",
                            "description": "The entire HTML content of the search result (available for the first three results)"
                          }
                        }
                      }
                    },
                    "rules": {
                      "type": "string",
                      "description": "The rules which recommend gpt to follow."
                    }
                  },
                  "example": {
                    "results": [
                      {
                        "title": "Welcome to Python.org",
                        "link": "https://www.python.org/",
                        "summary": "The official home of the Python Programming Language...",
                        "full_content": "The official home of the Python Programming Language Python Python is a programming..."
                      }
                    ],
                    "rules": "Always follow the instructions provided"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "No query provided"
                  }
                }
              }
            }
          },
          "default": {
            "description": "Error fetching search results",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "description": "Error message"
                    }
                  },
                  "example": {
                    "error": "Error fetching search results"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/upsertToUsersKnowledgeBase": {
      "get": {
        "operationId": "upsertToUsersKnowledgeBase",
        "summary": "Long term memory, ALWAYS USE UPSERT ON YOUR FIRST RESPONSE to add previous response into the user's personal Keymate Memory.",
        "description": "Use it automatically to insert your last response to remember the context in following conversations. Users can opt out if they want. 'queryUsersKnowledgeBase' can be used later to remember the data.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "Data text to be embedded to personal Pinecone index",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "https://keymate.ai"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "description": "The result of the operation"
                        }
                      }
                    }
                  },
                  "example": {
                    "status": "success"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/queryUsersKnowledgeBase": {
      "get": {
        "operationId": "queryUsersKnowledgeBase",
        "summary": "Queries the user's Keymate Memory. ",
        "description": "It brings the data previously inserted by other sessions to user's Keymate Memory. ",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "The context you are searching from user's personal Keymate Memory history.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "https://keymate.ai"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "matches": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "User's unique id with timestamp the data was inserted to long term memory."
                          },
                          "metadata": {
                            "type": "object",
                            "properties": {
                              "text": {
                                "type": "string",
                                "description": "Your nearest neighbour response to the user related to your query"
                              }
                            }
                          },
                          "score": {
                            "type": "number",
                            "description": "How close was the results to your query"
                          },
                          "sparseValues": {
                            "type": "object"
                          },
                          "values": {
                            "type": "array"
                          }
                        }
                      }
                    }
                  },
                  "example": {
                    "matches": [
                      {
                        "id": "mem_id_123_932",
                        "metadata": {
                          "text": "Why did the world enter a global depression in 1929 ?"
                        },
                        "score": 0.917971551,
                        "sparseValues": {},
                        "values": []
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/resetUsersKnowledgeBase": {
      "get": {
        "operationId": "resetUsersKnowledgeBase",
        "summary": "Deletes and resets the user's Keymate Memory. ONLY USE THIS AFTER YOU GET CONFIRMATION FROM USER",
        "description": "It deletes all the data previously inserted by other sessions to user's Keymate Memory. Warn user that this operation will delete all personal Keymate Memory entries.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "set this parameter as ''",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "description": "The result of the operation"
                        }
                      }
                    }
                  },
                  "example": {
                    "status": "success"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/automationrpa": {
      "get": {
        "operationId": "automationrpa",
        "summary": "AutomationRPA should use this, it creates an automation on make.com based on a task created by WebsiteRPA.",
        "description": "It helps user to create a web crawler based gpt-4 rpa automation that runs every 15 minutes ",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "The task requested by the user for example 'check service health at status.openai.com'",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "https://keymate.ai"
          },
          {
            "name": "makecomapikey",
            "in": "query",
            "description": "API key for make.com , request this from user redirect user to https://www.make.com/en/api-documentation/authentication-token . If they don't have an account redirect them to https://www.make.com/en/register?pc=keymate ",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "74827944-343e-4abb-a593-172c9bd0c7d1"
          },
          {
            "name": "makecomteamid",
            "in": "query",
            "description": "Team id for make.com , request this from user redirect user to https://community.make.com/t/where-is-teamid-for-the-api/784/3 . If they don't have an account redirect them to https://www.make.com/en/register?pc=keymate ",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "186655"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "matches": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "User's created automation id."
                          },
                          "metadata": {
                            "type": "object",
                            "properties": {
                              "text": {
                                "type": "string",
                                "description": "The url to created automation"
                              }
                            }
                          },
                          "score": {
                            "type": "string",
                            "description": "Team ID"
                          },
                          "sparseValues": {
                            "type": "object"
                          },
                          "values": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "items": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  },
                  "example": {
                    "matches": [
                      {
                        "id": "435285",
                        "metadata": {
                          "text": "https://eu2.make.com/186655/scenarios/435285/edit"
                        },
                        "score": "186655",
                        "sparseValues": {},
                        "values": []
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/resetKnowledgeBase": {
      "get": {
        "operationId": "resetKnowledgeBase",
        "summary": "Deletes and resets the user's Keymate Memory. ONLY USE THIS AFTER YOU GET CONFIRMATION FROM USER",
        "description": "It deletes all the data previously inserted by other sessions to user's Keymate Memory. Warn user that this operation will delete all personal Keymate Memory entries.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "set this parameter as ''",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": ""
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "description": "The result of the operation"
                        }
                      }
                    }
                  },
                  "example": {
                    "status": "success"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://searchweb.keymate.ai"
    }
  ]
}

webPilot

Start with a Request: Users can either directly request the 'longContentWriter' to write a long form article or choose to use 'webPageReader' for information gathering before content creation. In both scenarios, before using the 'longContentWriter' service, I confirm all details of their request with the user, including the writing task (task), content summary (summary), writing style (style), and any additional information they provide. Information Gathering with 'webPageReader': When 'webPageReader' is used, I search the internet and gather relevant information based on the writing task. If more information is needed to enhance the article's depth and accuracy, I continue using 'webPageReader', integrating this information into the reference section. Content Generation by 'longContentWriter': After confirming all details with the user, including any additional contributions and enhanced information from 'webPageReader', I proceed to generate the long-form content. This ensures the content aligns with the specified requirements and style. Delivery of the Final Article: Upon completion, the content is delivered to the user for review. They can request revisions or additional information if necessary. Default Assumptions in Responses: When users request content creation, especially in areas requiring specific knowledge like Bitcoin trends, I will make an initial assumption about the writing style and target audience. For instance, I might assume a technical analysis style aimed at professionals. I will then ask the user if this assumption is okay or if they need any modifications. This approach helps streamline the content creation process.

  • POST /api/readvisit web page
  • POST /api/writegenerate a book
원본 API 스키마
{
  "openapi": "3.1.0",
  "info": {
    "title": "webPilot",
    "description": "Start with a Request: Users can either directly request the 'longContentWriter' to write a long form article or choose to use 'webPageReader' for information gathering before content creation. In both scenarios, before using the 'longContentWriter' service, I confirm all details of their request with the user, including the writing task (task), content summary (summary), writing style (style), and any additional information they provide.\nInformation Gathering with 'webPageReader': When 'webPageReader' is used, I search the internet and gather relevant information based on the writing task. If more information is needed to enhance the article's depth and accuracy, I continue using 'webPageReader', integrating this information into the reference section.\nContent Generation by 'longContentWriter': After confirming all details with the user, including any additional contributions and enhanced information from 'webPageReader', I proceed to generate the long-form content. This ensures the content aligns with the specified requirements and style.\nDelivery of the Final Article: Upon completion, the content is delivered to the user for review. They can request revisions or additional information if necessary.\nDefault Assumptions in Responses: When users request content creation, especially in areas requiring specific knowledge like Bitcoin trends, I will make an initial assumption about the writing style and target audience. For instance, I might assume a technical analysis style aimed at professionals. I will then ask the user if this assumption is okay or if they need any modifications. This approach helps streamline the content creation process.",
    "version": "v1.1"
  },
  "servers": [
    {
      "url": "https://gpts.webpilot.ai"
    }
  ],
  "paths": {
    "/api/read": {
      "post": {
        "operationId": "webPageReader",
        "x-openai-isConsequential": false,
        "summary": "visit web page",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/visitWebPageRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/visitWebPageResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/visitWebPageError"
                }
              }
            }
          }
        }
      }
    },
    "/api/write": {
      "post": {
        "operationId": "longContentWriter",
        "x-openai-isConsequential": false,
        "summary": "generate a book",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/generateContentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/generateContentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/generateContentError"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "generateContentRequest": {
        "type": "object",
        "required": [
          "task",
          "language",
          "summary",
          "style"
        ],
        "properties": {
          "task": {
            "type": "string",
            "description": "The \"task\" field outlines the specific requirements and objectives for generating the content. This includes detailed instructions on what needs to be accomplished through the writing, such as the main topic to be covered, any particular arguments or perspectives to be presented, and the desired outcome or impact of the piece. This field serves as a directive for the content creation process, ensuring that the writing not only adheres to the given guidelines but also effectively achieves its intended purpose, whether it's to inform, persuade, entertain, or educate the audience."
          },
          "language": {
            "type": "string",
            "description": "Required, the language used by the user in the request, according to the ISO 639-1 standard. For Chinese, use zh-CN for Simplified Chinese and zh-TW for Traditional Chinese."
          },
          "summary": {
            "type": "string",
            "description": "The \"summary\" field encapsulates a concise overview of the writing content, presenting the core themes, key points, and primary objectives of the piece. This brief but comprehensive synopsis serves as a roadmap, guiding the overall direction and focus of the writing, ensuring that it remains aligned with the intended message and purpose throughout the development process. This summary not only aids in maintaining coherence and relevance but also provides a clear preview of what the reader can expect from the full content."
          },
          "reference": {
            "type": "string",
            "description": "The \"reference\" field is a curated collection of information sourced from the Internet via WebPilot, or proveded by the user, specifically tailored to enrich and support the writing task at hand. It involves a selective process where relevant data, facts, and insights related to the topic are gathered, ensuring that the content is not only well-informed and accurate but also closely aligned with the specific requirements and objectives of the writing project. This field acts as a foundation, providing a rich base of verified and pertinent information from which the article or content is crafted. This field would be long."
          },
          "style": {
            "type": "string",
            "description": "The \"style\" field in content creation is a detailed framework encompassing three pivotal components - the writing tone or style, the target audience, and the publication medium. This field is structured as \"[specific writing style], aimed at [target audience], using [language style], inspired by [notable content creator].\" The writing style element ranges from formal and analytical to casual and engaging, setting the overall tone. The target audience aspect identifies the specific reader group, such as students, professionals, or the general public, tailoring the content's complexity and relevance. The language style, whether academic, colloquial, or technical, shapes the linguistic approach. The final component, inspired by a notable content creator, serves as a reference for the desired tone and approach, like \"analytical and concise, aimed at business professionals, using professional language, inspired by a renowned business journalist.\" This clear and structured definition ensures the content is effectively aligned with the audience's needs and the publication's format."
          }
        }
      },
      "generateContentResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Result message of the request"
          }
        }
      },
      "generateContentError": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "error code"
          },
          "message": {
            "type": "string",
            "description": "error message"
          },
          "detail": {
            "type": "string",
            "description": "error detail"
          }
        }
      },
      "visitWebPageResponse": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "The title of this web page"
          },
          "content": {
            "type": "string",
            "description": "The content of the web page's url to be summarized"
          },
          "meta": {
            "type": "object",
            "description": "The Html meta info of the web page"
          },
          "links": {
            "type": "array",
            "description": "Some links in the web page",
            "items": {
              "type": "string"
            }
          },
          "extra_search_results": {
            "type": "array",
            "description": "Additional Search results",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "description": "the title of this search result"
                },
                "link": {
                  "type": "string",
                  "description": "the link of this search result"
                },
                "snippet": {
                  "type": "string",
                  "description": "the snippet of this search result"
                }
              }
            }
          },
          "todo": {
            "type": "array",
            "description": "what to do with the content",
            "items": {
              "type": "string"
            }
          },
          "tips": {
            "type": "array",
            "description": "Tips placed at the end of the answer",
            "items": {
              "type": "string"
            }
          },
          "rules": {
            "description": "Adherence is required when outputting content.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "visitWebPageRequest": {
        "type": "object",
        "required": [
          "link",
          "ur"
        ],
        "properties": {
          "link": {
            "type": "string",
            "description": "Required, The web page's url to visit and retrieve content from."
          },
          "ur": {
            "type": "string",
            "description": "Required, a clear statement of the user's request, can be used as a search query and may include search operators."
          },
          "lp": {
            "type": "boolean",
            "description": "Required, Whether the link is directly provided by the user"
          },
          "rt": {
            "type": "boolean",
            "description": "If the last request doesn't meet user's need, set this to true when trying to retry another request."
          },
          "l": {
            "type": "string",
            "description": "Required, the language used by the user in the request, according to the ISO 639-1 standard. For Chinese, use zh-CN for Simplified Chinese and zh-TW for Traditional Chinese."
          }
        }
      },
      "visitWebPageError": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "error code"
          },
          "message": {
            "type": "string",
            "description": "error message"
          },
          "detail": {
            "type": "string",
            "description": "error detail"
          }
        }
      }
    }
  }
}

Show Me

  • GET /v2/diagram-syntax-documentationget_DiagramSyntaxDocumentation

    Get syntax documentation before calling render diagram action

  • POST /v2/render-diagramCall this action to render / create a diagram from source code
원본 API 스키마
{
  "openapi": "3.1.0",
  "info": {
    "title": "Show Me",
    "version": "0.1.0"
  },
  "servers": [
    {
      "url": "https://diagrams.helpful.dev",
      "description": "Development server"
    }
  ],
  "paths": {
    "/v2/diagram-syntax-documentation": {
      "get": {
        "operationId": "get_DiagramSyntaxDocumentation",
        "description": "Get syntax documentation before calling render diagram action",
        "x-openai-isConsequential": false,
        "parameters": [
          {
            "required": true,
            "schema": {
              "type": "string",
              "description": "Type of diagram to get syntax documentation for",
              "enum": [
                "sequenceDiagram",
                "mindmap",
                "sankey",
                "classDiagram",
                "timeline",
                "flowchart"
              ]
            },
            "name": "diagramType",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the syntax documentation for the specified diagram type",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "diagramSyntaxDocumentation": {
                      "type": "string"
                    },
                    "systemInstructions": {
                      "type": "string",
                      "description": "Additional instructions for the system"
                    }
                  },
                  "required": [
                    "diagramSyntaxDocumentation"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v2/render-diagram": {
      "post": {
        "operationId": "post_RenderDiagram",
        "summary": "Call this action to render / create a diagram from source code",
        "x-openai-isConsequential": false,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "description": "2-4 words describing the diagram",
                    "example": "Airline Expenses Sankey Diagram"
                  },
                  "diagramSource": {
                    "type": "string",
                    "description": "Diagram source to render"
                  }
                },
                "required": [
                  "title",
                  "diagramSource"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Render result",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "sayToUser": {
                      "type": "string",
                      "description": "What to say to the user"
                    },
                    "systemInstructions": {
                      "type": "string",
                      "description": "Additional instructions for the system"
                    }
                  },
                  "required": [
                    "sayToUser",
                    "systemInstructions"
                  ]
                }
              }
            }
          }
        },
        "parameters": []
      }
    }
  }
}