Créer un Rememberizer GPT

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.

Prérequis

Tout d'abord, vous devez enregistrer une application Rememberizer et la configurer avec les paramètres appropriés.

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.

identifiants d'application enregistrés

Créer un GPT

Vous pouvez commencer par créer un GPT dans l'interface utilisateur de ChatGPT.

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 :

  1. Sélectionnez "Configurer"

  2. "Ajouter une action"

  3. 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 d'autorisation : https://api.rememberizer.ai/api/v1/auth/oauth2/authorize/

    • URL de jeton : https://api.rememberizer.ai/api/v1/auth/oauth2/token/

    • Laissez Scope vide.

    • Cliquez sur Enregistrer.

    gpt auth type config
  4. 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.
  1. Ajoutez ce lien comme Politique de confidentialité : https://docs.rememberizer.ai/notices/privacy-policy.

  2. Après avoir créé l'action, copiez l'URL de rappel et collez-la dans votre application Rememberizer.

rememberizer app callback url

Last updated