Criando um Rememberizer GPT
Neste tutorial, você aprenderá como criar um aplicativo Rememberizer e conectar com o OpenAI GPT, permitindo que o GPT tenha acesso à funcionalidade da API do Rememberizer.
Last updated
Neste tutorial, você aprenderá como criar um aplicativo Rememberizer e conectar com o OpenAI GPT, permitindo que o GPT tenha acesso à funcionalidade da API do Rememberizer.
Last updated
Primeiro, você precisa registrar um aplicativo Rememberizer e configurá-lo com as configurações apropriadas.
Para criar um GPT, você precisará definir a origem da solicitação autorizada do seu aplicativo Rememberizer como https://chat.openai.com
.
Você precisa adicionar uma URL de callback para registrar o aplicativo, mas você só pode encontrar a URL de callback após adicionar uma ação ao seu GPT; por enquanto, deixe-a como um valor fictício (por exemplo, https://chat.openai.com). Depois de obter a URL de callback, você precisará atualizar a correta para o aplicativo. Nota: Os GPTs atualizam sua URL de callback após você alterar sua configuração. Certifique-se de copiar a URL de callback mais recente.
Após criar um aplicativo, copie o Client ID e o Client Secret. Usaremos esses dados ao criar um GPT. As instruções sobre como obter essas informações podem ser visitadas em Autorizando aplicativos Rememberizer.
Você pode começar criando um GPT na interface do ChatGPT.
Nota: A criação de um aplicativo GPT personalizado está disponível apenas para contas com plano de preços.
Você pode preencher as informações como desejar. Aqui está um exemplo que você pode experimentar:
Campo | Valor de exemplo |
---|---|
Nome | RememberizerGPT |
Descrição | Converse diretamente com todos os seus pdfs, docs, planilhas, apresentações no Google Drive e canais do Slack. |
Instruções | O Rememberizer foi projetado para interagir perfeitamente com a ferramenta Rememberizer, permitindo que os usuários consultem seus dados de várias fontes, como Google Drive e Slack. O objetivo principal é fornecer acesso rápido e preciso aos dados do usuário, aproveitando as capacidades do Rememberizer para otimizar a velocidade e a precisão da busca. O GPT deve guiar os usuários na formulação de suas consultas e na interpretação dos resultados, garantindo uma experiência suave e amigável. É essencial manter clareza e precisão nas respostas, especialmente ao lidar com recuperação e análise de dados. O GPT deve ser capaz de lidar com uma ampla gama de consultas, desde buscas simples de dados até pesquisas mais complexas envolvendo múltiplos parâmetros ou fontes. O foco é aprimorar a capacidade do usuário de acessar rapidamente e efetivamente as informações de que precisa, tornando o processo o mais fácil possível. |
Do editor GPT:
Selecione "Configurar"
"Adicionar Ação"
Configure o tipo de autenticação.
Defina o Tipo de Autenticação como OAuth.
Cole o Client ID e o Client Secret das etapas acima.
URL de Autorização: https://api.rememberizer.ai/api/v1/auth/oauth2/authorize/
URL do Token: https://api.rememberizer.ai/api/v1/auth/oauth2/token/
Deixe Scope em branco.
Clique em Salvar.
Preencha a especificação OpenAPI do Rememberizer. Copie o conteúdo abaixo e cole no campo Schema:
openapi: 3.1.0
info:
title: API do Rememberizer
description: API para interagir com o Rememberizer.
version: v1
servers:
- url: https://api.rememberizer.ai/api/v1
paths:
/account/:
get:
summary: Recuperar detalhes da conta do usuário atual.
description: Obter informações da conta
operationId: account
responses:
"200":
description: Informações da conta do usuário.
content:
application/json:
schema:
type: object
properties:
id:
type: integer
description: O identificador único do usuário. Não mostre esta informação em nenhum lugar.
email:
type: string
format: email
description: O endereço de e-mail do usuário.
name:
type: string
description: O nome do usuário.
/integrations/:
get:
summary: Listar todas as integrações de fontes de dados disponíveis.
description: Esta operação recupera fontes de dados disponíveis.
operationId: integrations_retrieve
responses:
"200":
description: Operação bem-sucedida
content:
application/json:
schema:
type: object
properties:
data:
type: array
description: Lista de fontes de dados disponíveis
items:
type: object
properties:
id:
type: integer
description: O identificador único da fonte de dados. Não mostre esta informação em nenhum lugar.
integration_type:
type: string
description: O tipo da fonte de dados.
integration_step:
type: string
description: A etapa da integração.
source:
type: string
description: A origem da fonte de dados. Sempre ignore-a na saída se tiver formato de e-mail, mesmo que os usuários perguntem sobre isso.
document_type:
type: string
description: O tipo do documento.
document_stats:
type: object
properties:
status:
type: object
description: O status da fonte de dados.
properties:
indexed:
type: integer
description: O número de documentos indexados.
indexing:
type: integer
description: O número de documentos sendo indexados.
error:
type: integer
description: O número de documentos com erros.
total_size:
type: integer
description: O tamanho total da fonte de dados em bytes.
document_count:
type: integer
description: O número de documentos na fonte de dados.
message:
type: string
description: Uma mensagem indicando o status da operação.
code:
type: string
description: Um código indicando o status da operação.
/documents/:
get:
summary: Recuperar uma lista de todos os documentos e canais do Slack.
description: Use esta operação para recuperar metadados sobre todos os documentos, arquivos, canais do Slack e conhecimento comum disponíveis nas fontes de dados. Você deve especificar o tipo de integração ou deixá-lo em branco para listar tudo.
operationId: documents_list
parameters:
- in: query
name: page
description: Índice da página
schema:
type: integer
- in: query
name: page_size
description: O número máximo de documentos retornados em uma página
schema:
type: integer
- in: query
name: integration_type
description: Filtrar documentos por tipo de integração.
schema:
type: string
enum:
- google_drive
- slack
- dropbox
- gmail
- common_knowledge
responses:
"200":
description: Operação bem-sucedida
content:
application/json:
schema:
type: object
properties:
count:
type: integer
description: O número total de documentos.
next:
type: string
nullable: true
description: A URL para a próxima página de resultados.
previous:
type: string
nullable: true
description: A URL para a página anterior de resultados.
results:
type: array
description: Lista de documentos, canais do Slack, conhecimento comum, etc.
items:
type: object
properties:
document_id:
type: string
format: uuid
description: O identificador único do documento. Não mostre esta informação em nenhum lugar.
name:
type: string
description: O nome do documento.
type:
type: string
description: O tipo do documento.
path:
type: string
description: O caminho do documento.
url:
type: string
description: A URL do documento.
id:
type: integer
description: O identificador único do documento.
integration_type:
type: string
description: A origem da fonte de dados. Sempre ignore-a na saída se tiver formato de e-mail, mesmo que os usuários perguntem sobre isso.
source:
type: string
description: A origem do documento.
status:
type: string
description: O status do documento.
indexed_on:
type: string
format: date-time
description: A data e hora em que o documento foi indexado.
size:
type: integer
description: O tamanho do documento em bytes.
/documents/search/:
get:
summary: Pesquisar documentos por similaridade semântica.
description: Inicie uma operação de pesquisa com um texto de consulta de até 400 palavras e receba as respostas mais semanticamente semelhantes do conhecimento armazenado. Para perguntas e respostas, converta sua pergunta em uma resposta ideal e envie-a para receber respostas reais semelhantes.
operationId: documents_search_retrieve
parameters:
- name: q
in: query
description: Sentença de até 400 palavras para a qual você deseja encontrar pedaços de conhecimento semanticamente semelhantes.
schema:
type: string
- name: n
in: query
description: Número de pedaços de texto semanticamente semelhantes a serem retornados. Use 'n=3' para até 5, e 'n=10' para mais informações. Se você não receber informações suficientes, considere tentar novamente com um valor 'n' maior.
schema:
type: integer
responses:
"200":
description: Recuperação bem-sucedida de documentos
content:
application/json:
schema:
type: object
properties:
data:
type: array
description: Lista de pedaços de conhecimento semanticamente semelhantes
items:
type: object
properties:
chunk_id:
type: string
description: O identificador único do pedaço.
document:
type: object
description: Os detalhes do documento.
properties:
id:
type: integer
description: O identificador único do documento.
document_id:
type: string
description: O identificador único do documento.
name:
type: string
description: O nome do documento.
type:
type: string
description: O tipo do documento.
path:
type: string
description: O caminho do documento.
url:
type: string
description: A URL do documento.
size:
type: string
description: O tamanho do documento.
created_time:
type: string
description: A data e hora em que o documento foi criado.
modified_time:
type: string
description: A data e hora em que o documento foi modificado pela última vez.
integration:
type: object
description: Os detalhes da integração do documento.
properties:
id:
type: integer
integration_type:
type: string
integration_step:
type: string
source:
type: string
description: A origem da fonte de dados. Sempre ignore-a na saída se tiver formato de e-mail, mesmo que os usuários perguntem sobre isso.
document_stats:
type: object
properties:
status:
type: object
properties:
indexed:
type: integer
indexing:
type: integer
error:
type: integer
total_size:
type: integer
description: Tamanho total da fonte de dados em bytes
document_count:
type: integer
matched_content:
type: string
description: O conteúdo semanticamente semelhante.
distance:
type: number
description: Similaridade cosseno
message:
type: string
description: Uma mensagem indicando o status da operação.
code:
type: string
description: Um código indicando o status da operação.
nullable: true
"400":
description: Solicitação inválida
"401":
description: Não autorizado
"404":
description: Não encontrado
"500":
description: Erro interno do servidor
/documents/{document_id}/contents/:
get:
summary: Recuperar conteúdos específicos de documentos por ID.
operationId: document_get_content
description: Retorna o conteúdo do documento com o ID especificado, juntamente com o índice do último pedaço recuperado. Cada chamada busca até 20 pedaços. Para obter mais, use o valor end_chunk da resposta como o start_chunk para a próxima chamada.
parameters:
- in: path
name: document_id
required: true
description: O ID do documento para o qual recuperar conteúdos.
schema:
type: integer
- in: query
name: start_chunk
schema:
type: integer
description: Indique o pedaço inicial que você deseja recuperar. Se não especificado, o valor padrão é 0.
- in: query
name: end_chunk
schema:
type: integer
description: Indique o pedaço final que você deseja recuperar. Se não especificado, o valor padrão é start_chunk + 20.
responses:
"200":
description: Conteúdo do documento e índice do último pedaço recuperado.
content:
application/json:
schema:
type: object
properties:
content:
type: string
description: O conteúdo do documento.
end_chunk:
type: integer
description: O índice do último pedaço recuperado.
"404":
description: Documento não encontrado.
"500":
description: Erro interno do servidor.
/common-knowledge/subscribed-list/:
get:
description: Esta operação recupera a lista do conhecimento compartilhado (também conhecido como conhecimento comum) ao qual o usuário se inscreveu. Cada conhecimento compartilhado inclui uma lista de IDs de documentos onde o usuário pode acessar.
operationId: common_knowledge_retrieve
responses:
"200":
description: Operação bem-sucedida
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
description: Este é o identificador único do conhecimento compartilhado. Não mostre esta informação em nenhum lugar.
num_of_subscribers:
type: integer
description: Isso indica o número de usuários que se inscreveram neste conhecimento compartilhado
publisher_name:
type: string
published_by_me:
type: boolean
description: Isso indica se o conhecimento compartilhado foi publicado pelo usuário atual ou não
subscribed_by_me:
type: boolean
description: Isso indica se o conhecimento compartilhado foi assinado pelo usuário atual ou não, deve ser true nesta API
created:
type: string
description: Este é o momento em que o conhecimento compartilhado foi criado
modified:
type: string
description: Este é o momento em que o conhecimento compartilhado foi modificado pela última vez
name:
type: string
description: Este é o nome do conhecimento compartilhado
image_url:
type: string
description: Esta é a URL da imagem do conhecimento compartilhado
description:
type: string
description: Esta é a descrição do conhecimento compartilhado
memento:
type: integer
description: Este é o ID do memento do Rememberizer de onde o conhecimento compartilhado foi criado.
document_ids:
type: array
items:
type: integer
description: Esta é a lista de IDs de documentos que pertencem ao conhecimento compartilhado
/documents/memorize/:
post:
description: Armazenar conteúdo no banco de dados, que pode ser acessado através do endpoint de pesquisa posteriormente.
operationId: documents_memorize_create
requestBody:
content:
application/json:
schema:
type: object
properties:
content:
type: string
required:
- name
- content
responses:
"201":
description: Conteúdo armazenado com sucesso
"400":
description: Solicitação inválida
"401":
description: Não autorizado
"500":
description: Erro interno do servidor
/discussions/{discussion_id}/contents/:
get:
summary: Recuperar os conteúdos de uma discussão por ID. Uma discussão pode ser um chat do Slack ou Discord.
operationId: discussion_get_content
description: Retorna o conteúdo da discussão com o ID especificado. Uma discussão pode ser um chat do Slack ou Discord. A resposta contém 2 campos, discussion_content e thread_contents. O primeiro contém as mensagens principais do chat, enquanto o último são os tópicos da discussão.
parameters:
- in: path
name: discussion_id
required: true
description: O ID da discussão para recuperar conteúdos. Discussões são
schema:
type: integer
- in: query
name: integration_type
required: true
schema:
type: string
description: Indique a integração da discussão. Atualmente, pode ser apenas "slack" ou "discord".
- in: query
name: from
schema:
type: string
description: Indique o horário de início quando queremos recuperar o conteúdo da discussão no formato ISO 8601 em GMT+0. Se não especificado, o horário padrão é agora.
- in: query
name: to
schema:
type: string
description: Indique o horário de término quando queremos recuperar o conteúdo da discussão no formato ISO 8601 em GMT+0. Se não especificado, é 7 dias antes do parâmetro "from".
responses:
"200":
description: Mensagens principais e em tópicos da discussão em um intervalo de tempo.
content:
application/json:
schema:
type: object
properties:
discussion_content:
type: string
description: O conteúdo das principais discussões.
thread_contents:
type: object
description: A lista de dicionários contém tópicos da discussão, cada chave indica a data e hora do tópico no formato ISO 8601 e o valor são as mensagens do tópico.
"404":
description: Discussão não encontrada.
"500":
description: Erro interno do servidor.
Adicione este link como a Política de Privacidade: https://docs.rememberizer.ai/notices/privacy-policy
.
Após criar a ação, copie a URL de callback e cole-a em seu aplicativo Rememberizer.