In this tutorial, you will learn how to create a Rememberizer App and connect with OpenAI GPT, allowing the GPT to have access to Rememberizer API funtionality.
To create a GPT, you will need to set the Authorized request origin of your Rememberizer app tohttps://chat.openai.com.
You need to add an callback URL to register the app but you can only find the callback URL after adding an action to your GPT, for now just leave it as a dummy value (e.g https://chat.openai.com). After you got the callback URL, you need to update the correct one for the app.
Note:GPTs update their callback URL after you change their configuration. Make sure to copy the latest callback URL.
After creating an app, copy the Client ID and Client Secret. We will be using them when creating a GPT.
You can fill in the information as you wish. Here is an example that you can try out:
Field
Example value
Name
Rememberizer
Description
Talk directly to all your pdfs, docs, sheets, slides on Google Drive and Slack channels.
Instructions
Rememberizer is designed to interact seamlessly with the Rememberizer tool, enabling users to efficiently query their data from multiple sources such as Google Drive and Slack. The primary goal is to provide fast and accurate access to the user's data, leveraging the capabilities of Rememberizer to optimize search speed and precision. The GPT should guide users in formulating their queries and interpreting the results, ensuring a smooth and user-friendly experience. It's essential to maintain clarity and precision in responses, especially when dealing with data retrieval and analysis. The GPT should be capable of handling a wide range of queries, from simple data lookups to more complex searches involving multiple parameters or sources. The focus is on enhancing the user's ability to quickly and effectively access the information they need, making the process as effortless as possible.
Create Rememberizer action
From the GPT editor:
Select "Configure"
"Add Action"
Configure authentication type.
Set the Authentication Type to OAuth.
Paste in the Client ID and Client Secret from the steps above.
Fill in Rememberizer's OpenAPI spec. Copy the content in the expandable below and paste it into the Schema field:
Rememberizer_OpenAPI.yaml
openapi: 3.0.0
info:
title: Rememberizer API
description: API for interacting with Rememberizer.
version: v1
servers:
- url: 'https://api.rememberizer.ai/api/v1'
paths:
/account/:
get:
description: Get account information
operationId: account
responses:
'200':
description: User account information.
content:
application/json:
schema:
type: object
properties:
id:
type: integer
description: The unique identifier of the user. Do not show this information anywhere.
email:
type: string
format: email
description: The email address of the user.
name:
type: string
description: The name of the user.
/integrations/:
get:
description: This operation retrieves available data sources.
operationId: integrations_retrieve
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: integer
description: The unique identifier of the data source. Do not show this information anywhere.
integration_type:
type: string
integration_step:
type: string
source:
type: string
document_type:
type: string
document_stats:
type: object
properties:
status:
type: object
properties:
indexed:
type: integer
indexing:
type: integer
error:
type: integer
total_size:
type: integer
document_count:
type: integer
message:
type: string
code:
type: string
/documents/:
get:
description: Use this operation to retrieve metadata about all available documents and Slack channels within the data sources.
operationId: documents_list_file_and_channel
parameters:
- in: query
name: page
description: Page's index
schema:
type: integer
- in: query
name: page_size
description: The maximum number of documents returned in a page
schema:
type: integer
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
properties:
count:
type: integer
next:
type: string
nullable: true
previous:
type: string
nullable: true
results:
type: array
items:
type: object
properties:
document_id:
type: string
description: The unique identifier of the document. Do not show this information anywhere.
name:
type: string
type:
type: string
path:
type: string
url:
type: string
id:
type: integer
integration_type:
type: string
source:
type: string
status:
type: string
indexed_on:
type: string
format: date-time
size:
type: integer
/documents/search/:
get:
description: Initiate a search operation with a query text of up to 400 words and receive the most semantically similar responses from the stored knowledge. For question-answering, convert your question into an ideal answer and submit it to receive similar real answers.
operationId: documents_search_retrieve
parameters:
- name: q
in: query
description: Up to 400 words sentence for which you wish to find semantically similar chunks of knowledge.
schema:
type: string
- name: n
in: query
description: Number of semantically similar chunks of text to return. Use 'n=3' for up to 5, and 'n=10' for more information. If you do not receive enough information, consider trying again with a larger 'n' value.
schema:
type: integer
responses:
'200':
description: Successful retrieval of documents
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: object
properties:
chunk_id:
type: string
document:
type: object
properties:
id:
type: integer
document_id:
type: string
name:
type: string
type:
type: string
path:
type: string
url:
type: string
size:
type: string
created_time:
type: string
modified_time:
type: string
integration:
type: object
properties:
id:
type: integer
integration_type:
type: string
integration_step:
type: string
source:
type: string
document_stats:
type: object
properties:
status:
type: object
properties:
indexed:
type: integer
indexing:
type: integer
error:
type: integer
total_size:
type: integer
description: Total size of the data source in bytes
document_count:
type: integer
matched_content:
type: string
distance:
type: number
description: Cosine similarity
message:
type: string
code:
type: string
nullable: true
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Not found
'500':
description: Internal server error
/documents/{document_id}/contents/:
get:
summary: Retrieve contents of a document by its ID.
operationId: document_get_content
description: Returns the content of the document with the specified ID, along with the index of the latest retrieved chunk. Each call fetches up to 20 chunks. To get more, use the end_chunk value from the response as the start_chunk for the next call.
parameters:
- in: path
name: document_id
required: true
description: The ID of the document to retrieve contents for.
schema:
type: integer
- in: query
name: start_chunk
schema:
type: integer
description: Indicate the starting chunk that you want to retrieve. If not specified, the default value is 0.
- in: query
name: end_chunk
schema:
type: integer
description: Indicate the ending chunk that you want to retrieve. If not specified, the default value is start_chunk + 20.
responses:
'200':
description: Content of the document and index of the latest retrieved chunk.
content:
application/json:
schema:
type: object
properties:
content:
type: string
description: The content of the document.
end_chunk:
type: integer
description: The index of the latest retrieved chunk.
'404':
description: Document not found.
'500':
description: Internal server error.
/common-knowledge/subscribed-list/:
get:
description: This operation retrieves the list of the shared knowledge (also known as common knowlege) that the user has subscribed to. Each shared knowledge includes a list of document ids where user can access.
operationId: common_knowledge_retrieve
responses:
"200":
description: Successful operation
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
description: This is the unique identifier of the shared knowledge. Do not show this information anywhere.
num_of_subscribers:
type: integer
description: This indicates the number of users who have subscribed to this shared knowledge
publisher_name:
type: string
published_by_me:
type: boolean
description: This indicates whether the shared knowledge was published by the current user or not
subscribed_by_me:
type: boolean
description: This indicates whether the shared knowledge was subscribed by the current user or not, it should be true in this API
created:
type: string
description: This is the time when the shared knowledge was created
modified:
type: string
description: This is the time when the shared knowledge was last modified
name:
type: string
description: This is the name of the shared knowledge
image_url:
type: string
description: This is the image url of the shared knowledge
description:
type: string
description: This is the description of the shared knowledge
memento:
type: integer
description: This is the ID of the Rememberizer memento where the shared knowledge was created from.
document_ids:
type: array
items:
type: integer
description: This is the list of document ids that belong to the shared knowledge
Add this link as the Privacy Policy: https://docs.rememberizer.ai/notices/privacy-policy.
After creating the action, copy the callback URL and paste it into your Rememberizer app.