Use Memory Bank on ChatGPT

GPT Description

Extend GPT's memory for more personalized conversations.

GPT Action OpenAPI Spec

{
  "openapi": "3.0.2",
  "info": {
    "title": "Memory Bank API",
    "description": "A retrieval API for querying and filtering documents based on natural language queries and metadata",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://plugin.memorybank.app"
    }
  ],
  "paths": {
    "/upsert-action": {
      "post": {
        "x-openai-isConsequential: false": null,
        "summary": "Upsert",
        "description": "Save chat information. Accepts an array of documents with text (potential questions + conversation text), metadata (source 'chat' and timestamp, no ID as this will be generated). Confirm with the user before saving, ask for more details/context.",
        "operationId": "upsert_upsert_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpsertResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "write:documents"
            ]
          }
        ]
      }
    },
    "/query-action": {
      "post": {
        "x-openai-isConsequential: false": null,
        "summary": "Query",
        "description": "Accepts search query objects array each with query and optional filter. Break down complex questions into sub-questions. Refine results by criteria, e.g. time / source, don't do this often. Split queries if ResponseTooLargeError occurs.",
        "operationId": "query_query_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QueryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "write:documents"
            ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "Document": {
        "title": "Document",
        "required": [
          "text",
          "user_id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "text": {
            "title": "Text",
            "type": "string"
          },
          "user_id": {
            "title": "User Id",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/DocumentMetadata"
          }
        }
      },
      "DocumentChunkMetadata": {
        "title": "DocumentChunkMetadata",
        "type": "object",
        "properties": {
          "source": {
            "$ref": "#/components/schemas/Source"
          },
          "source_id": {
            "title": "Source Id",
            "type": "string"
          },
          "url": {
            "title": "Url",
            "type": "string"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "author": {
            "title": "Author",
            "type": "string"
          },
          "document_id": {
            "title": "Document Id",
            "type": "string"
          }
        }
      },
      "DocumentChunkWithScore": {
        "title": "DocumentChunkWithScore",
        "required": [
          "text",
          "metadata",
          "score"
        ],
        "type": "object",
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "text": {
            "title": "Text",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/DocumentChunkMetadata"
          },
          "embedding": {
            "title": "Embedding",
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "score": {
            "title": "Score",
            "type": "number"
          }
        }
      },
      "DocumentMetadata": {
        "title": "DocumentMetadata",
        "type": "object",
        "properties": {
          "source": {
            "$ref": "#/components/schemas/Source"
          },
          "source_id": {
            "title": "Source Id",
            "type": "string"
          },
          "url": {
            "title": "Url",
            "type": "string"
          },
          "created_at": {
            "title": "Created At",
            "type": "string"
          },
          "author": {
            "title": "Author",
            "type": "string"
          }
        }
      },
      "DocumentMetadataFilter": {
        "title": "DocumentMetadataFilter",
        "type": "object",
        "properties": {
          "document_id": {
            "title": "Document Id",
            "type": "string"
          },
          "source": {
            "$ref": "#/components/schemas/Source"
          },
          "source_id": {
            "title": "Source Id",
            "type": "string"
          },
          "author": {
            "title": "Author",
            "type": "string"
          },
          "start_date": {
            "title": "Start Date",
            "type": "string"
          },
          "end_date": {
            "title": "End Date",
            "type": "string"
          }
        }
      },
      "HTTPValidationError": {
        "title": "HTTPValidationError",
        "type": "object",
        "properties": {
          "detail": {
            "title": "Detail",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            }
          }
        }
      },
      "Query": {
        "title": "Query",
        "required": [
          "query",
          "user_id"
        ],
        "type": "object",
        "properties": {
          "query": {
            "title": "Query",
            "type": "string"
          },
          "user_id": {
            "title": "User Id",
            "type": "string"
          },
          "filter": {
            "$ref": "#/components/schemas/DocumentMetadataFilter"
          },
          "top_k": {
            "title": "Top K",
            "type": "integer",
            "default": 3
          }
        }
      },
      "QueryRequest": {
        "title": "QueryRequest",
        "required": [
          "queries"
        ],
        "type": "object",
        "properties": {
          "queries": {
            "title": "Queries",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Query"
            }
          }
        }
      },
      "QueryResponse": {
        "title": "QueryResponse",
        "required": [
          "results"
        ],
        "type": "object",
        "properties": {
          "results": {
            "title": "Results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QueryResult"
            }
          }
        }
      },
      "QueryResult": {
        "title": "QueryResult",
        "required": [
          "query",
          "results"
        ],
        "type": "object",
        "properties": {
          "query": {
            "title": "Query",
            "type": "string"
          },
          "results": {
            "title": "Results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentChunkWithScore"
            }
          }
        }
      },
      "Source": {
        "title": "Source",
        "enum": [
          "email",
          "file",
          "chat"
        ],
        "type": "string",
        "description": "An enumeration."
      },
      "UpsertRequest": {
        "title": "UpsertRequest",
        "required": [
          "documents"
        ],
        "type": "object",
        "properties": {
          "documents": {
            "title": "Documents",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Document"
            }
          }
        }
      },
      "UpsertResponse": {
        "title": "UpsertResponse",
        "required": [
          "ids"
        ],
        "type": "object",
        "properties": {
          "ids": {
            "title": "Ids",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ValidationError": {
        "title": "ValidationError",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "type": "object",
        "properties": {
          "loc": {
            "title": "Location",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            }
          },
          "msg": {
            "title": "Message",
            "type": "string"
          },
          "type": {
            "title": "Error Type",
            "type": "string"
          }
        }
      }
    },
    "securitySchemes": {
      "OAuth2": {
        "type": "oauth2",
        "flows": {
          "implicit": {
            "authorizationUrl": "https://memorybank.app/login",
            "scopes": {
              "read:documents": "Read documents",
              "write:documents": "Write documents"
            }
          },
          "password": {
            "tokenUrl": "https://plugin.memorybank.app/exchange",
            "scopes": {
              "read:documents": "Read documents",
              "write:documents": "Write documents"
            }
          },
          "clientCredentials": {
            "tokenUrl": "https://plugin.memorybank.app/exchange",
            "scopes": {
              "read:documents": "Read documents",
              "write:documents": "Write documents"
            }
          },
          "authorizationCode": {
            "authorizationUrl": "https://memorybank.app/login",
            "tokenUrl": "https://plugin.memorybank.app/exchange",
            "scopes": {
              "read:documents": "Read documents",
              "write:documents": "Write documents"
            }
          }
        }
      }
    }
  }
}

Memory Bank GPT FAQs

Currently, access to this GPT requires a ChatGPT Plus subscription.
Visit the largest GPT directory GPTsHunter.com, search to find the current GPT: "Memory Bank", click the button on the GPT detail page to navigate to the GPT Store. Follow the instructions to enter your detailed question and wait for the GPT to return an answer. Enjoy!
We are currently calculating its ranking on the GPT Store. Please check back later for updates.