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.
Pré-requisito
Primeiro, você precisa registrar um app 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 para https://chat.openai.com
.
Você precisa adicionar uma URL de callback para registrar o aplicativo, mas só pode encontrar a URL de callback após adicionar uma ação ao seu GPT, por enquanto, deixe-o como um valor dummy (por exemplo, https://chat.openai.com). Depois de obter a URL de callback, você precisa atualizá-la para o aplicativo. Nota: Os GPTs atualizam sua URL de callback após você alterar a configuração deles. Certifique-se de copiar a última URL de callback.
Após criar um aplicativo, copie o Client ID e o Client Secret. Usaremos esses dados quando criarmos um GPT.
Criar um GPT
Você pode começar criando um GPT na interface de usuário ChatGPT.
Configurações GPT
Você pode preencher as informações como quiser. Aqui está um exemplo que você pode experimentar:
Criar ação Rememberizer
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 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 expandível abaixo e cole-o no campo Schema:
Rememberizer_OpenAPI.yaml
openapi: 3.0.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 fonte da fonte de dados.
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 disponíveis e canais do Slack dentro das fontes de dados.
operationId: documents_list_file_and_channel
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, 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: O tipo de integração do documento.
source:
type: string
description: A fonte 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 busca 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 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 fragmentos de conhecimento semanticamente semelhantes.
schema:
type: string
- name: n
in: query
description: Número de fragmentos semânticamente semelhantes de texto a retornar. 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 de '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 fragmentos semanticamente semelhantes de conhecimento
items:
type: object
properties:
chunk_id:
type: string
description: O identificador único do fragmento.
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
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 coseno
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
"500":
description: Erro interno do servidor
/documents/{document_id}/contents/:
get:
summary: Recuperar conteúdos específicos do documento pelo ID.
operationId: document_get_content
description: Retorna o conteúdo do documento com o ID especificado, juntamente com o índice do último fragmento recuperado. Cada chamada busca até 20 fragmentos. Para obter mais, use o valor end_chunk da resposta como 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 fragmento 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 fragmento 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 fragmento 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 fragmento 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 verdadeiro 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 busca mais 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: Conteúdo armazenado com sucesso
"400":
description: Solicitação inválida
"401":
description: Não autorizado
"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 retorno e cole-a no seu aplicativo Rememberizer.
Last updated