Creando un Rememberizer GPT

En este tutorial, aprenderás cómo crear una aplicación Rememberizer y conectar con OpenAI GPT, permitiendo que el GPT tenga acceso a la funcionalidad de la API de Rememberizer.

Prerrequisito

Primero, necesitas registrar una aplicación Rememberizer y configurarla con los ajustes apropiados.

Para crear un GPT, necesitarás establecer el origen de la solicitud autorizada de tu aplicación Rememberizer ahttps://chat.openai.com.

Necesitas agregar una URL de devolución de llamada para registrar la aplicación, pero solo puedes encontrar la URL de devolución de llamada después de agregar una acción a tu GPT, por ahora déjala como un valor ficticio (por ejemplo, https://chat.openai.com). Una vez que obtengas la URL de devolución de llamada, necesitarás actualizar la correcta para la aplicación.\ Nota: Los GPT actualizan su URL de devolución de llamada después de que cambias su configuración. Asegúrate de copiar la última URL de devolución de llamada.

Después de crear una aplicación, copia el ID del Cliente y el Secreto del Cliente. Los usaremos al crear un GPT.

Crear un GPT

Puedes comenzar creando un GPT en la interfaz de usuario de ChatGPT.

Configuraciones de GPT

Puede llenar la información como desee. Aquí hay un ejemplo que puede probar:

CampoValor de ejemplo

Nombre

Rememberizer

Descripción

Hable directamente con todos sus pdfs, documentos, hojas, diapositivas en Google Drive y canales de Slack.

Instrucciones

Rememberizer está diseñado para interactuar de manera fluida con la herramienta Rememberizer, permitiendo a los usuarios consultar eficientemente sus datos de múltiples fuentes, como Google Drive y Slack. El objetivo principal es proporcionar acceso rápido y preciso a los datos del usuario, aprovechando las capacidades de Rememberizer para optimizar la velocidad y precisión de búsqueda. El GPT debe guiar a los usuarios en la formulación de sus consultas e interpretación de los resultados, asegurando una experiencia suave y fácil de usar. Es esencial mantener la claridad y la precisión en las respuestas, especialmente cuando se trata de la recuperación y análisis de datos. El GPT debería ser capaz de manejar una amplia gama de consultas, desde búsquedas simples de datos hasta búsquedas más complejas que implican múltiples parámetros o fuentes. El enfoque está en mejorar la capacidad del usuario para acceder de forma rápida y efectiva a la información que necesitan, haciendo el proceso lo más fácil posible.

Crear acción Rememberizer

Desde el editor de GPT:

  1. Selecciona "Configurar"

  2. "Agregar acción"

  3. Configura el tipo de autenticación.

    • Configura el Tipo de Autenticación como OAuth.

    • Pega el Client ID y el Client Secret de los pasos anteriores.

    • URL de autorización: https://api.rememberizer.ai/api/v1/auth/oauth2/authorize/

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

    • Deja Scope en blanco.

    • Haz clic en Guardar.

  4. Completa la especificación OpenAPI de Rememberizer. Copia el contenido en el desplegable a continuación y pégalo en el campo Schema:

Rememberizer_OpenAPI.yaml
openapi: 3.0.0
info:
  title: Rememberizer API
  description: API para interactuar con Rememberizer.
  version: v1
servers:
  - url: "https://api.rememberizer.ai/api/v1"
paths:
  /account/:
    get:
      summary: Recuperar los detalles de la cuenta del usuario actual.
      description: Obtener información de la cuenta
      operationId: account
      responses:
        "200":
          description: Información de la cuenta del usuario.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    description: El identificador único del usuario. No muestres esta información en ningún lugar.
                  email:
                    type: string
                    format: email
                    description: La dirección de correo electrónico del usuario.
                  name:
                    type: string
                    description: El nombre del usuario.

  /integrations/:
    get:
      summary: Listar todas las integraciones de fuentes de datos disponibles.
      description: Esta operación recupera las fuentes de datos disponibles.
      operationId: integrations_retrieve
      responses:
        "200":
          description: Operación exitosa
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    description: Lista de fuentes de datos disponibles
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: El identificador único de la fuente de datos. No muestres esta información en ningún lugar.
                        integration_type:
                          type: string
                          description: El tipo de la fuente de datos.
                        integration_step:
                          type: string
                          description: El paso de la integración.
                        source:
                          type: string
                          description: La fuente de la fuente de datos.
                        document_type:
                          type: string
                          description: El tipo del documento.
                        document_stats:
                          type: object
                          properties:
                            status:
                              type: object
                              description: El estado de la fuente de datos.
                              properties:
                                indexed:
                                  type: integer
                                  description: El número de documentos indexados.
                                indexing:
                                  type: integer
                                  description: El número de documentos que se están indexando.
                                error:
                                  type: integer
                                  description: El número de documentos con errores.
                            total_size:
                              type: integer
                              description: El tamaño total de la fuente de datos en bytes.
                            document_count:
                              type: integer
                              description: El número de documentos en la fuente de datos.
                  message:
                    type: string
                    description: Un mensaje indicando el estado de la operación.
                  code:
                    type: string
                    description: Un código indicando el estado de la operación.
  /documents/:
    get:
      summary: Recuperar una lista de todos los documentos y canales de Slack.
      description: Utiliza esta operación para recuperar metadatos sobre todos los documentos y canales de Slack disponibles dentro de las fuentes de datos.
      operationId: documents_list_file_and_channel
      parameters:
        - in: query
          name: page
          description: Índice de la página
          schema:
            type: integer
        - in: query
          name: page_size
          description: El número máximo de documentos devueltos en una página
          schema:
            type: integer
        - in: query
          name: integration_type
          description: Filtrar documentos por tipo de integración.
          schema:
            type: string
            enum: [google_drive, slack, dropbox, common_knowledge]
      responses:
        "200":
          description: Operación exitosa
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: El número total de documentos.
                  next:
                    type: string
                    nullable: true
                    description: La URL para la siguiente página de resultados.
                  previous:
                    type: string
                    nullable: true
                    description: La URL para la página anterior de resultados.
                  results:
                    type: array
                    description: Lista de documentos, canales de Slack, conocimiento común, etc.
                    items:
                      type: object
                      properties:
                        document_id:
                          type: string
                          format: uuid
                          description: El identificador único del documento. No muestres esta información en ningún lugar.
                        name:
                          type: string
                          description: El nombre del documento.
                        type:
                          type: string
                          description: El tipo del documento.
                        path:
                          type: string
                          description: La ruta del documento.
                        url:
                          type: string
                          description: La URL del documento.
                        id:
                          type: integer
                          description: El identificador único del documento.
                        integration_type:
                          type: string
                          description: El tipo de integración del documento.
                        source:
                          type: string
                          description: La fuente del documento.
                        status:
                          type: string
                          description: El estado del documento.
                        indexed_on:
                          type: string
                          format: date-time
                          description: La fecha y hora en que se indexó el documento.
                        size:
                          type: integer
                          description: El tamaño del documento en bytes.
  /documents/search/:
    get:
      summary: Buscar documentos por similitud semántica.
      description: Iniciar una operación de búsqueda con un texto de consulta de hasta 400 palabras y recibir las respuestas más semánticamente similares del conocimiento almacenado. Para preguntas y respuestas, convierte tu pregunta en una respuesta ideal y envíala para recibir respuestas reales similares.
      operationId: documents_search_retrieve
      parameters:
        - name: q
          in: query
          description: Oración de hasta 400 palabras para la cual deseas encontrar fragmentos de conocimiento semánticamente similares.
          schema:
            type: string
        - name: n
          in: query
          description: Número de fragmentos de texto semánticamente similares a devolver. Usa 'n=3' para hasta 5, y 'n=10' para más información. Si no recibes suficiente información, considera intentar nuevamente con un valor de 'n' mayor.
          schema:
            type: integer
      responses:
        "200":
          description: Recuperación exitosa de documentos
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    description: Lista de fragmentos de conocimiento semánticamente similares
                    items:
                      type: object
                      properties:
                        chunk_id:
                          type: string
                          description: El identificador único del fragmento.
                        document:
                          type: object
                          description: Los detalles del documento.
                          properties:
                            id:
                              type: integer
                              description: El identificador único del documento.
                            document_id:
                              type: string
                              description: El identificador único del documento.
                            name:
                              type: string
                              description: El nombre del documento.
                            type:
                              type: string
                              description: El tipo del documento.
                            path:
                              type: string
                              description: La ruta del documento.
                            url:
                              type: string
                              description: La URL del documento.
                            size:
                              type: string
                              description: El tamaño del documento.
                            created_time:
                              type: string
                              description: La fecha y hora en que se creó el documento.
                            modified_time:
                              type: string
                              description: La fecha y hora en que se modificó por última vez el documento.
                            integration:
                              type: object
                              description: Los detalles de integración del documento.
                              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: Tamaño total de la fuente de datos en bytes
                                    document_count:
                                      type: integer
                        matched_content:
                          type: string
                          description: El contenido semánticamente similar.
                        distance:
                          type: number
                          description: Similitud coseno
                  message:
                    type: string
                    description: Un mensaje indicando el estado de la operación.
                  code:
                    type: string
                    description: Un código indicando el estado de la operación.
                    nullable: true
        "400":
          description: Solicitud incorrecta
        "401":
          description: No autorizado
        "500":
          description: Error interno del servidor
  /documents/{document_id}/contents/:
    get:
      summary: Recuperar contenidos específicos de un documento por ID.
      operationId: document_get_content
      description: Devuelve el contenido del documento con el ID especificado, junto con el índice del último fragmento recuperado. Cada llamada obtiene hasta 20 fragmentos. Para obtener más, usa el valor de end_chunk de la respuesta como start_chunk para la siguiente llamada.
      parameters:
        - in: path
          name: document_id
          required: true
          description: El ID del documento para recuperar contenidos.
          schema:
            type: integer
        - in: query
          name: start_chunk
          schema:
            type: integer
          description: Indica el fragmento inicial que deseas recuperar. Si no se especifica, el valor predeterminado es 0.
        - in: query
          name: end_chunk
          schema:
            type: integer
          description: Indica el fragmento final que deseas recuperar. Si no se especifica, el valor predeterminado es start_chunk + 20.
      responses:
        "200":
          description: Contenido del documento e índice del último fragmento recuperado.
          content:
            application/json:
              schema:
                type: object
                properties:
                  content:
                    type: string
                    description: El contenido del documento.
                  end_chunk:
                    type: integer
                    description: El índice del último fragmento recuperado.
        "404":
          description: Documento no encontrado.
        "500":
          description: Error interno del servidor.
  /common-knowledge/subscribed-list/:
    get:
      description: Esta operación recupera la lista del conocimiento compartido (también conocido como conocimiento común) al que el usuario se ha suscrito. Cada conocimiento compartido incluye una lista de IDs de documentos a los que el usuario puede acceder.
      operationId: common_knowledge_retrieve
      responses:
        "200":
          description: Operación exitosa
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      description: Este es el identificador único del conocimiento compartido. No muestres esta información en ningún lugar.
                    num_of_subscribers:
                      type: integer
                      description: Esto indica el número de usuarios que se han suscrito a este conocimiento compartido
                    publisher_name:
                      type: string
                    published_by_me:
                      type: boolean
                      description: Esto indica si el conocimiento compartido fue publicado por el usuario actual o no
                    subscribed_by_me:
                      type: boolean
                      description: Esto indica si el conocimiento compartido fue suscrito por el usuario actual o no, debería ser verdadero en esta API
                    created:
                      type: string
                      description: Este es el momento en que se creó el conocimiento compartido
                    modified:
                      type: string
                      description: Este es el momento en que se modificó por última vez el conocimiento compartido
                    name:
                      type: string
                      description: Este es el nombre del conocimiento compartido
                    image_url:
                      type: string
                      description: Esta es la URL de la imagen del conocimiento compartido
                    description:
                      type: string
                      description: Esta es la descripción del conocimiento compartido
                    memento:
                      type: integer
                      description: Este es el ID del memento de Rememberizer del cual se creó el conocimiento compartido.
                    document_ids:
                      type: array
                      items:
                        type: integer
                      description: Esta es la lista de IDs de documentos que pertenecen al conocimiento compartido
  /documents/memorize/:
    post:
      description: Almacenar contenido en la base de datos, al cual se puede acceder a través del punto final de búsqueda más tarde.
      operationId: documents_memorize_create
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                content:
                  type: string
              required:
                - name
                - content
      responses:
        "201":
          description: Contenido almacenado con éxito
        "400":
          description: Solicitud incorrecta
        "401":
          description: No autorizado
        "500":
          description: Error interno del servidor
  1. Agrega este enlace como la Política de Privacidad: https://docs.rememberizer.ai/notices/privacy-policy.

  2. Después de crear la acción, copia la URL de retorno y pégala en tu aplicación Rememberizer.

Last updated