Creación de 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.
Last updated
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.
Last updated
Primero, necesitas registrar una aplicación de Rememberizer y configurarla con los ajustes apropiados.
Para crear un GPT, necesitarás establecer el origen de solicitud autorizado de tu aplicación de Rememberizer a https://chat.openai.com
.
Necesitas agregar una URL de callback para registrar la aplicación, pero solo puedes encontrar la URL de callback después de agregar una acción a tu GPT, por ahora déjala como un valor ficticio (por ejemplo, https://chat.openai.com). Después de obtener la URL de callback, necesitas actualizarla con la correcta para la aplicación. Nota: Los GPTs actualizan su URL de callback después de que cambias su configuración. Asegúrate de copiar la última URL de callback.
Después de crear una aplicación, copia el ID de Cliente y el Secreto de Cliente. Los utilizaremos al crear un GPT. La instrucción sobre cómo obtener esta información se puede visitar en Autorizando aplicaciones de Rememberizer.
Puedes comenzar creando un GPT en la interfaz de ChatGPT.
Nota: La creación de una aplicación GPT personalizada solo está disponible para cuentas con plan de precios.
Puedes completar la información como desees. Aquí hay un ejemplo que puedes probar:
Nombre
RememberizerGPT
Descripción
Habla directamente con todos tus pdfs, docs, hojas, presentaciones en Google Drive y canales de Slack.
Instrucciones
Rememberizer está diseñado para interactuar sin problemas 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 fluida y amigable. Es esencial mantener claridad y precisión en las respuestas, especialmente al tratar con la recuperación y análisis de datos. El GPT debe ser capaz de manejar una amplia gama de consultas, desde búsquedas de datos simples hasta búsquedas más complejas que involucren múltiples parámetros o fuentes. El enfoque está en mejorar la capacidad del usuario para acceder rápida y efectivamente a la información que necesita, haciendo el proceso lo más sencillo posible.
Desde el editor de GPT:
Selecciona "Configurar"
"Agregar Acción"
Configura el tipo de autenticación.
Establece el Tipo de Autenticación en OAuth.
Pega el ID de Cliente y Secreto de Cliente de los pasos anteriores.
URL de Autorización: https://api.rememberizer.ai/api/v1/auth/oauth2/authorize/
URL de Token: https://api.rememberizer.ai/api/v1/auth/oauth2/token/
Deja Alcance en blanco.
Haz clic en Guardar.
Completa la especificación OpenAPI de Rememberizer. Copia el contenido en el desplegable a continuación y pégalo en el campo Esquema:
openapi: 3.1.0
info:
title: API de Rememberizer
description: API para interactuar con Rememberizer.
version: v1
servers:
- url: https://api.rememberizer.ai/api/v1
paths:
/account/:
get:
summary: Recuperar 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 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. Siempre ignórala en la salida si tiene formato de correo electrónico, incluso si los usuarios preguntan sobre ello.
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 que indica el estado de la operación.
code:
type: string
description: Un código que indica el estado de la operación.
/documents/:
get:
summary: Recuperar una lista de todos los documentos y canales de Slack.
description: Usa esta operación para recuperar metadatos sobre todos los documentos, archivos, canales de Slack y conocimiento común disponibles dentro de las fuentes de datos. Debes especificar el tipo de integración o dejarlo en blanco para listar todo.
operationId: documents_list
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
- gmail
- 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: La fuente de la fuente de datos. Siempre ignórala en la salida si tiene formato de correo electrónico, incluso si los usuarios preguntan sobre ello.
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: Inicia una operación de búsqueda con un texto de consulta de hasta 400 palabras y recibe las respuestas más semánticamente similares de los conocimientos almacenados. 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 '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 la integración del documento.
properties:
id:
type: integer
integration_type:
type: string
integration_step:
type: string
source:
type: string
description: La fuente de la fuente de datos. Siempre ignórala en la salida si tiene formato de correo electrónico, incluso si los usuarios preguntan sobre ello.
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 que indica el estado de la operación.
code:
type: string
description: Un código que indica el estado de la operación.
nullable: true
"400":
description: Solicitud incorrecta
"401":
description: No autorizado
"404":
description: No encontrado
"500":
description: Error interno del servidor
/documents/{document_id}/contents/:
get:
summary: Recuperar contenidos específicos del 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 end_chunk de la respuesta como el 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, que 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:
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
/discussions/{discussion_id}/contents/:
get:
summary: Recuperar los contenidos de una discusión por ID. Una discusión puede ser un chat de Slack o Discord.
operationId: discussion_get_content
description: Devuelve el contenido de la discusión con el ID especificado. Una discusión puede ser un chat de Slack o Discord. La respuesta contiene 2 campos, discussion_content y thread_contents. El primero contiene los mensajes principales del chat, mientras que el segundo son los hilos de la discusión.
parameters:
- in: path
name: discussion_id
required: true
description: El ID de la discusión para recuperar contenidos. Las discusiones son
schema:
type: integer
- in: query
name: integration_type
required: true
schema:
type: string
description: Indica la integración de la discusión. Actualmente, solo puede ser "slack" o "discord".
- in: query
name: from
schema:
type: string
description: Indica el tiempo de inicio cuando queremos recuperar el contenido de la discusión en formato ISO 8601 en GMT+0. Si no se especifica, el tiempo predeterminado es ahora.
- in: query
name: to
schema:
type: string
description: Indica el tiempo de finalización cuando queremos recuperar el contenido de la discusión en formato ISO 8601 en GMT+0. Si no se especifica, es 7 días antes del parámetro "from".
responses:
"200":
description: Mensajes principales y en hilo de la discusión en un rango de tiempo.
content:
application/json:
schema:
type: object
properties:
discussion_content:
type: string
description: El contenido de las discusiones principales.
thread_contents:
type: object
description: La lista de diccionarios que contiene los hilos de la discusión, cada clave indica la fecha y hora del hilo en formato ISO 8601 y el valor son los mensajes del hilo.
"404":
description: Discusión no encontrada.
"500":
description: Error interno del servidor.
Agrega este enlace como la Política de Privacidad: https://docs.rememberizer.ai/notices/privacy-policy
.
Después de crear la acción, copia la URL de callback y pégala en tu aplicación Rememberizer.