Dans ce tutoriel, vous apprendrez comment créer une application Rememberizer et vous connecter à OpenAI GPT, permettant à GPT d'accéder à la fonctionnalité de l'API Rememberizer.
Pour créer un GPT, vous devrez définir l'origine de la demande autorisée de votre application Rememberizer sur https://chat.openai.com.
Vous devez ajouter une URL de rappel pour enregistrer l'application, mais vous ne pouvez trouver l'URL de rappel qu'après avoir ajouté une action à votre GPT, pour l'instant laissez-la comme une valeur fictive (par exemple https://chat.openai.com). Après avoir obtenu l'URL de rappel, vous devez mettre à jour la bonne pour l'application.
Remarque :Les GPT mettent à jour leur URL de rappel après que vous ayez modifié leur configuration. Assurez-vous de copier la dernière URL de rappel.
Après avoir créé une application, copiez le Client ID et le Client Secret. Nous les utiliserons lors de la création d'un GPT. Les instructions sur la façon d'obtenir ces informations peuvent être consultées à Autoriser les applications Rememberizer.
Remarque : La création d'une application GPT personnalisée n'est disponible que pour les comptes ayant un plan tarifaire.
Configurations GPT
Vous pouvez remplir les informations comme vous le souhaitez. Voici un exemple que vous pouvez essayer :
Champ
Valeur d'exemple
Nom
RememberizerGPT
Description
Parlez directement à tous vos pdf, docs, feuilles, présentations sur Google Drive et les canaux Slack.
Instructions
Rememberizer est conçu pour interagir de manière transparente avec l'outil Rememberizer, permettant aux utilisateurs de consulter efficacement leurs données provenant de plusieurs sources telles que Google Drive et Slack. L'objectif principal est de fournir un accès rapide et précis aux données de l'utilisateur, en tirant parti des capacités de Rememberizer pour optimiser la vitesse et la précision de la recherche. Le GPT doit guider les utilisateurs dans la formulation de leurs requêtes et l'interprétation des résultats, garantissant une expérience fluide et conviviale. Il est essentiel de maintenir la clarté et la précision dans les réponses, en particulier lors de la récupération et de l'analyse des données. Le GPT doit être capable de gérer une large gamme de requêtes, des simples recherches de données aux recherches plus complexes impliquant plusieurs paramètres ou sources. L'accent est mis sur l'amélioration de la capacité de l'utilisateur à accéder rapidement et efficacement aux informations dont il a besoin, rendant le processus aussi simple que possible.
Créer une action Rememberizer
Depuis l'éditeur GPT :
Sélectionnez "Configurer"
"Ajouter une action"
Configurez le type d'authentification.
Définissez le type d'authentification sur OAuth.
Collez le Client ID et le Client Secret des étapes ci-dessus.
URL de jeton : https://api.rememberizer.ai/api/v1/auth/oauth2/token/
Laissez Scope vide.
Cliquez sur Enregistrer.
Remplissez la spécification OpenAPI de Rememberizer. Copiez le contenu dans l'expandable ci-dessous et collez-le dans le champ Schema :
Rememberizer_OpenAPI.yaml
openapi: 3.1.0
info:
title: API Rememberizer
description: API pour interagir avec Rememberizer.
version: v1
servers:
- url: https://api.rememberizer.ai/api/v1
paths:
/account/:
get:
summary: Récupérer les détails du compte de l'utilisateur actuel.
description: Obtenir des informations sur le compte
operationId: account
responses:
"200":
description: Informations sur le compte utilisateur.
content:
application/json:
schema:
type: object
properties:
id:
type: integer
description: L'identifiant unique de l'utilisateur. Ne montrez pas cette information nulle part.
email:
type: string
format: email
description: L'adresse e-mail de l'utilisateur.
name:
type: string
description: Le nom de l'utilisateur.
/integrations/:
get:
summary: Lister toutes les intégrations de sources de données disponibles.
description: Cette opération récupère les sources de données disponibles.
operationId: integrations_retrieve
responses:
"200":
description: Opération réussie
content:
application/json:
schema:
type: object
properties:
data:
type: array
description: Liste des sources de données disponibles
items:
type: object
properties:
id:
type: integer
description: L'identifiant unique de la source de données. Ne montrez pas cette information nulle part.
integration_type:
type: string
description: Le type de la source de données.
integration_step:
type: string
description: L'étape de l'intégration.
source:
type: string
description: La source de la source de données. Ignorez-la toujours dans la sortie si elle a un format d'e-mail même si les utilisateurs en parlent.
document_type:
type: string
description: Le type du document.
document_stats:
type: object
properties:
status:
type: object
description: Le statut de la source de données.
properties:
indexed:
type: integer
description: Le nombre de documents indexés.
indexing:
type: integer
description: Le nombre de documents en cours d'indexation.
error:
type: integer
description: Le nombre de documents avec des erreurs.
total_size:
type: integer
description: La taille totale de la source de données en octets.
document_count:
type: integer
description: Le nombre de documents dans la source de données.
message:
type: string
description: Un message indiquant le statut de l'opération.
code:
type: string
description: Un code indiquant le statut de l'opération.
/documents/:
get:
summary: Récupérer une liste de tous les documents et canaux Slack.
description: Utilisez cette opération pour récupérer des métadonnées sur tous les documents, fichiers, canaux Slack et connaissances communes disponibles dans les sources de données. Vous devez spécifier le type d'intégration ou le laisser vide pour tout lister.
operationId: documents_list
parameters:
- in: query
name: page
description: Index de la page
schema:
type: integer
- in: query
name: page_size
description: Le nombre maximum de documents retournés sur une page
schema:
type: integer
- in: query
name: integration_type
description: Filtrer les documents par type d'intégration.
schema:
type: string
enum:
- google_drive
- slack
- dropbox
- gmail
- common_knowledge
responses:
"200":
description: Opération réussie
content:
application/json:
schema:
type: object
properties:
count:
type: integer
description: Le nombre total de documents.
next:
type: string
nullable: true
description: L'URL pour la prochaine page de résultats.
previous:
type: string
nullable: true
description: L'URL pour la page précédente de résultats.
results:
type: array
description: Liste des documents, canaux Slack, connaissances communes, etc.
items:
type: object
properties:
document_id:
type: string
format: uuid
description: L'identifiant unique du document. Ne montrez pas cette information nulle part.
name:
type: string
description: Le nom du document.
type:
type: string
description: Le type du document.
path:
type: string
description: Le chemin du document.
url:
type: string
description: L'URL du document.
id:
type: integer
description: L'identifiant unique du document.
integration_type:
type: string
description: La source de la source de données. Ignorez-la toujours dans la sortie si elle a un format d'e-mail même si les utilisateurs en parlent.
source:
type: string
description: La source du document.
status:
type: string
description: Le statut du document.
indexed_on:
type: string
format: date-time
description: La date et l'heure auxquelles le document a été indexé.
size:
type: integer
description: La taille du document en octets.
/documents/search/:
get:
summary: Rechercher des documents par similarité sémantique.
description: Initiez une opération de recherche avec un texte de requête de jusqu'à 400 mots et recevez les réponses les plus sémantiquement similaires des connaissances stockées. Pour le question-réponse, convertissez votre question en une réponse idéale et soumettez-la pour recevoir des réponses réelles similaires.
operationId: documents_search_retrieve
parameters:
- name: q
in: query
description: Phrase de jusqu'à 400 mots pour laquelle vous souhaitez trouver des morceaux de connaissances sémantiquement similaires.
schema:
type: string
- name: n
in: query
description: Nombre de morceaux de texte sémantiquement similaires à retourner. Utilisez 'n=3' pour jusqu'à 5, et 'n=10' pour plus d'informations. Si vous ne recevez pas suffisamment d'informations, envisagez d'essayer à nouveau avec une valeur 'n' plus grande.
schema:
type: integer
responses:
"200":
description: Récupération réussie des documents
content:
application/json:
schema:
type: object
properties:
data:
type: array
description: Liste des morceaux de connaissances sémantiquement similaires
items:
type: object
properties:
chunk_id:
type: string
description: L'identifiant unique du morceau.
document:
type: object
description: Les détails du document.
properties:
id:
type: integer
description: L'identifiant unique du document.
document_id:
type: string
description: L'identifiant unique du document.
name:
type: string
description: Le nom du document.
type:
type: string
description: Le type du document.
path:
type: string
description: Le chemin du document.
url:
type: string
description: L'URL du document.
size:
type: string
description: La taille du document.
created_time:
type: string
description: La date et l'heure auxquelles le document a été créé.
modified_time:
type: string
description: La date et l'heure auxquelles le document a été modifié pour la dernière fois.
integration:
type: object
description: Les détails de l'intégration du document.
properties:
id:
type: integer
integration_type:
type: string
integration_step:
type: string
source:
type: string
description: La source de la source de données. Ignorez-la toujours dans la sortie si elle a un format d'e-mail même si les utilisateurs en parlent.
document_stats:
type: object
properties:
status:
type: object
properties:
indexed:
type: integer
indexing:
type: integer
error:
type: integer
total_size:
type: integer
description: Taille totale de la source de données en octets
document_count:
type: integer
matched_content:
type: string
description: Le contenu sémantiquement similaire.
distance:
type: number
description: Similarité cosinus
message:
type: string
description: Un message indiquant le statut de l'opération.
code:
type: string
description: Un code indiquant le statut de l'opération.
nullable: true
"400":
description: Mauvaise requête
"401":
description: Non autorisé
"404":
description: Non trouvé
"500":
description: Erreur interne du serveur
/documents/{document_id}/contents/:
get:
summary: Récupérer le contenu spécifique d'un document par ID.
operationId: document_get_content
description: Retourne le contenu du document avec l'ID spécifié, ainsi que l'index du dernier morceau récupéré. Chaque appel récupère jusqu'à 20 morceaux. Pour en obtenir plus, utilisez la valeur end_chunk de la réponse comme start_chunk pour l'appel suivant.
parameters:
- in: path
name: document_id
required: true
description: L'ID du document pour lequel récupérer le contenu.
schema:
type: integer
- in: query
name: start_chunk
schema:
type: integer
description: Indiquez le morceau de départ que vous souhaitez récupérer. Si non spécifié, la valeur par défaut est 0.
- in: query
name: end_chunk
schema:
type: integer
description: Indiquez le morceau de fin que vous souhaitez récupérer. Si non spécifié, la valeur par défaut est start_chunk + 20.
responses:
"200":
description: Contenu du document et index du dernier morceau récupéré.
content:
application/json:
schema:
type: object
properties:
content:
type: string
description: Le contenu du document.
end_chunk:
type: integer
description: L'index du dernier morceau récupéré.
"404":
description: Document non trouvé.
"500":
description: Erreur interne du serveur.
/common-knowledge/subscribed-list/:
get:
description: Cette opération récupère la liste des connaissances partagées (également connues sous le nom de connaissances communes) auxquelles l'utilisateur est abonné. Chaque connaissance partagée comprend une liste d'IDs de documents auxquels l'utilisateur peut accéder.
operationId: common_knowledge_retrieve
responses:
"200":
description: Opération réussie
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
description: C'est l'identifiant unique de la connaissance partagée. Ne montrez pas cette information nulle part.
num_of_subscribers:
type: integer
description: Cela indique le nombre d'utilisateurs qui se sont abonnés à cette connaissance partagée
publisher_name:
type: string
published_by_me:
type: boolean
description: Cela indique si la connaissance partagée a été publiée par l'utilisateur actuel ou non
subscribed_by_me:
type: boolean
description: Cela indique si la connaissance partagée a été abonnée par l'utilisateur actuel ou non, cela devrait être vrai dans cette API
created:
type: string
description: C'est le moment où la connaissance partagée a été créée
modified:
type: string
description: C'est le moment où la connaissance partagée a été modifiée pour la dernière fois
name:
type: string
description: C'est le nom de la connaissance partagée
image_url:
type: string
description: C'est l'URL de l'image de la connaissance partagée
description:
type: string
description: C'est la description de la connaissance partagée
memento:
type: integer
description: C'est l'ID du memento Rememberizer à partir duquel la connaissance partagée a été créée.
document_ids:
type: array
items:
type: integer
description: C'est la liste des IDs de documents qui appartiennent à la connaissance partagée
/documents/memorize/:
post:
description: Stocker le contenu dans la base de données, qui peut être accessible via le point de terminaison de recherche plus tard.
operationId: documents_memorize_create
requestBody:
content:
application/json:
schema:
type: object
properties:
content:
type: string
required:
- name
- content
responses:
"201":
description: Contenu stocké avec succès
"400":
description: Mauvaise requête
"401":
description: Non autorisé
"500":
description: Erreur interne du serveur
/discussions/{discussion_id}/contents/:
get:
summary: Récupérer le contenu d'une discussion par ID. Une discussion peut être un chat Slack ou Discord.
operationId: discussion_get_content
description: Retourne le contenu de la discussion avec l'ID spécifié. Une discussion peut être un chat Slack ou Discord. La réponse contient 2 champs, discussion_content et thread_contents. Le premier contient les messages principaux du chat, tandis que le second est les fils de la discussion.
parameters:
- in: path
name: discussion_id
required: true
description: L'ID de la discussion pour laquelle récupérer le contenu. Les discussions sont
schema:
type: integer
- in: query
name: integration_type
required: true
schema:
type: string
description: Indiquez l'intégration de la discussion. Actuellement, cela ne peut être que "slack" ou "discord".
- in: query
name: from
schema:
type: string
description: Indiquez le moment de départ lorsque nous voulons récupérer le contenu de la discussion au format ISO 8601 à GMT+0. Si non spécifié, l'heure par défaut est maintenant.
- in: query
name: to
schema:
type: string
description: Indiquez le moment de fin lorsque nous voulons récupérer le contenu de la discussion au format ISO 8601 à GMT+0. Si non spécifié, c'est 7 jours avant le paramètre "from".
responses:
"200":
description: Messages principaux et enfilés de la discussion dans une plage de temps.
content:
application/json:
schema:
type: object
properties:
discussion_content:
type: string
description: Le contenu des discussions principales.
thread_contents:
type: object
description: La liste des dictionnaires contenant les fils de la discussion, chaque clé indique la date et l'heure du fil au format ISO 8601 et la valeur est les messages du fil.
"404":
description: Discussion non trouvée.
"500":
description: Erreur interne du serveur.
Ajoutez ce lien comme Politique de confidentialité : https://docs.rememberizer.ai/notices/privacy-policy.
Après avoir créé l'action, copiez l'URL de rappel et collez-la dans votre application Rememberizer.