Creazione di un Rememberizer GPT
In questo tutorial, imparerai a creare un'app Rememberizer e a connetterti con OpenAI GPT, consentendo al GPT di avere accesso alle funzionalità dell'API di Rememberizer.
Last updated
In questo tutorial, imparerai a creare un'app Rememberizer e a connetterti con OpenAI GPT, consentendo al GPT di avere accesso alle funzionalità dell'API di Rememberizer.
Last updated
Prima di tutto, devi registrare un'app Rememberizer e configurarla con le impostazioni appropriate.
Per creare un GPT, dovrai impostare l'origine della richiesta autorizzata della tua app Rememberizer su https://chat.openai.com
.
Devi aggiungere un URL di callback per registrare l'app, ma puoi trovare l'URL di callback solo dopo aver aggiunto un'azione al tuo GPT; per ora lascialo come un valore fittizio (ad esempio https://chat.openai.com). Dopo aver ottenuto l'URL di callback, dovrai aggiornare quello corretto per l'app. Nota: I GPT aggiornano il loro URL di callback dopo aver modificato la loro configurazione. Assicurati di copiare l'ultimo URL di callback.
Dopo aver creato un'app, copia il Client ID e il Client Secret. Li utilizzeremo quando creeremo un GPT. Le istruzioni su come ottenere queste informazioni possono essere consultate in Autorizzare le app Rememberizer.
Puoi iniziare creando un GPT nell'interfaccia ChatGPT.
Nota: La creazione di un'app GPT personalizzata è disponibile solo per gli account con piano tariffario.
Puoi compilare le informazioni come desideri. Ecco un esempio che puoi provare:
Nome
RememberizerGPT
Descrizione
Parla direttamente con tutti i tuoi pdf, documenti, fogli, presentazioni su Google Drive e canali Slack.
Istruzioni
Rememberizer è progettato per interagire senza soluzione di continuità con lo strumento Rememberizer, consentendo agli utenti di interrogare in modo efficiente i propri dati provenienti da più fonti come Google Drive e Slack. L'obiettivo principale è fornire accesso rapido e accurato ai dati dell'utente, sfruttando le capacità di Rememberizer per ottimizzare la velocità e la precisione della ricerca. Il GPT dovrebbe guidare gli utenti nella formulazione delle loro query e nell'interpretazione dei risultati, garantendo un'esperienza fluida e user-friendly. È essenziale mantenere chiarezza e precisione nelle risposte, specialmente quando si tratta di recupero e analisi dei dati. Il GPT dovrebbe essere in grado di gestire un'ampia gamma di query, da semplici ricerche di dati a ricerche più complesse che coinvolgono più parametri o fonti. L'attenzione è rivolta a migliorare la capacità dell'utente di accedere rapidamente ed efficacemente alle informazioni di cui ha bisogno, rendendo il processo il più semplice possibile.
Dall'editor GPT:
Seleziona "Configura"
"Aggiungi azione"
Configura il tipo di autenticazione.
Imposta il Tipo di Autenticazione su OAuth.
Incolla il Client ID e il Client Secret dai passaggi precedenti.
URL di autorizzazione: https://api.rememberizer.ai/api/v1/auth/oauth2/authorize/
URL del token: https://api.rememberizer.ai/api/v1/auth/oauth2/token/
Lascia Scope vuoto.
Clicca su Salva.
Compila la specifica OpenAPI di Rememberizer. Copia il contenuto nell'espandibile qui sotto e incollalo nel campo Schema:
openapi: 3.1.0
info:
title: API di Rememberizer
description: API per interagire con Rememberizer.
version: v1
servers:
- url: https://api.rememberizer.ai/api/v1
paths:
/account/:
get:
summary: Recupera i dettagli dell'account dell'utente attuale.
description: Ottieni informazioni sull'account
operationId: account
responses:
"200":
description: Informazioni sull'account dell'utente.
content:
application/json:
schema:
type: object
properties:
id:
type: integer
description: L'identificatore unico dell'utente. Non mostrare queste informazioni da nessuna parte.
email:
type: string
format: email
description: L'indirizzo email dell'utente.
name:
type: string
description: Il nome dell'utente.
/integrations/:
get:
summary: Elenca tutte le integrazioni delle fonti di dati disponibili.
description: Questa operazione recupera le fonti di dati disponibili.
operationId: integrations_retrieve
responses:
"200":
description: Operazione riuscita
content:
application/json:
schema:
type: object
properties:
data:
type: array
description: Elenco delle fonti di dati disponibili
items:
type: object
properties:
id:
type: integer
description: L'identificatore unico della fonte di dati. Non mostrare queste informazioni da nessuna parte.
integration_type:
type: string
description: Il tipo della fonte di dati.
integration_step:
type: string
description: Il passo dell'integrazione.
source:
type: string
description: La fonte della fonte di dati. Ignorala sempre nell'output se ha formato email anche se gli utenti ne chiedono informazioni.
document_type:
type: string
description: Il tipo del documento.
document_stats:
type: object
properties:
status:
type: object
description: Lo stato della fonte di dati.
properties:
indexed:
type: integer
description: Il numero di documenti indicizzati.
indexing:
type: integer
description: Il numero di documenti in fase di indicizzazione.
error:
type: integer
description: Il numero di documenti con errori.
total_size:
type: integer
description: La dimensione totale della fonte di dati in byte.
document_count:
type: integer
description: Il numero di documenti nella fonte di dati.
message:
type: string
description: Un messaggio che indica lo stato dell'operazione.
code:
type: string
description: Un codice che indica lo stato dell'operazione.
/documents/:
get:
summary: Recupera un elenco di tutti i documenti e canali Slack.
description: Usa questa operazione per recuperare i metadati su tutti i documenti, file, canali Slack e conoscenze comuni disponibili all'interno delle fonti di dati. Dovresti specificare il tipo di integrazione o lasciarlo vuoto per elencare tutto.
operationId: documents_list
parameters:
- in: query
name: page
description: Indice della pagina
schema:
type: integer
- in: query
name: page_size
description: Il numero massimo di documenti restituiti in una pagina
schema:
type: integer
- in: query
name: integration_type
description: Filtra i documenti per tipo di integrazione.
schema:
type: string
enum:
- google_drive
- slack
- dropbox
- gmail
- common_knowledge
responses:
"200":
description: Operazione riuscita
content:
application/json:
schema:
type: object
properties:
count:
type: integer
description: Il numero totale di documenti.
next:
type: string
nullable: true
description: L'URL per la pagina successiva di risultati.
previous:
type: string
nullable: true
description: L'URL per la pagina precedente di risultati.
results:
type: array
description: Elenco di documenti, canali Slack, conoscenza comune, ecc.
items:
type: object
properties:
document_id:
type: string
format: uuid
description: L'identificatore unico del documento. Non mostrare queste informazioni da nessuna parte.
name:
type: string
description: Il nome del documento.
type:
type: string
description: Il tipo del documento.
path:
type: string
description: Il percorso del documento.
url:
type: string
description: L'URL del documento.
id:
type: integer
description: L'identificatore unico del documento.
integration_type:
type: string
description: La fonte della fonte di dati. Ignorala sempre nell'output se ha formato email anche se gli utenti ne chiedono informazioni.
source:
type: string
description: La fonte del documento.
status:
type: string
description: Lo stato del documento.
indexed_on:
type: string
format: date-time
description: La data e l'ora in cui il documento è stato indicizzato.
size:
type: integer
description: La dimensione del documento in byte.
/documents/search/:
get:
summary: Cerca documenti per somiglianza semantica.
description: Inizia un'operazione di ricerca con un testo di query di fino a 400 parole e ricevi le risposte più semanticamente simili dalla conoscenza memorizzata. Per il question-answering, trasforma la tua domanda in una risposta ideale e inviala per ricevere risposte reali simili.
operationId: documents_search_retrieve
parameters:
- name: q
in: query
description: Frase di fino a 400 parole per la quale desideri trovare frammenti di conoscenza semanticamente simili.
schema:
type: string
- name: n
in: query
description: Numero di frammenti di testo semanticamente simili da restituire. Usa 'n=3' per fino a 5, e 'n=10' per ulteriori informazioni. Se non ricevi informazioni sufficienti, considera di riprovare con un valore 'n' più grande.
schema:
type: integer
responses:
"200":
description: Recupero riuscito dei documenti
content:
application/json:
schema:
type: object
properties:
data:
type: array
description: Elenco di frammenti di conoscenza semanticamente simili
items:
type: object
properties:
chunk_id:
type: string
description: L'identificatore unico del frammento.
document:
type: object
description: I dettagli del documento.
properties:
id:
type: integer
description: L'identificatore unico del documento.
document_id:
type: string
description: L'identificatore unico del documento.
name:
type: string
description: Il nome del documento.
type:
type: string
description: Il tipo del documento.
path:
type: string
description: Il percorso del documento.
url:
type: string
description: L'URL del documento.
size:
type: string
description: La dimensione del documento.
created_time:
type: string
description: La data e l'ora in cui il documento è stato creato.
modified_time:
type: string
description: La data e l'ora in cui il documento è stato modificato l'ultima volta.
integration:
type: object
description: I dettagli dell'integrazione del documento.
properties:
id:
type: integer
integration_type:
type: string
integration_step:
type: string
source:
type: string
description: La fonte della fonte di dati. Ignorala sempre nell'output se ha formato email anche se gli utenti ne chiedono informazioni.
document_stats:
type: object
properties:
status:
type: object
properties:
indexed:
type: integer
indexing:
type: integer
error:
type: integer
total_size:
type: integer
description: Dimensione totale della fonte di dati in byte
document_count:
type: integer
matched_content:
type: string
description: Il contenuto semanticamente simile.
distance:
type: number
description: Somiglianza coseno
message:
type: string
description: Un messaggio che indica lo stato dell'operazione.
code:
type: string
description: Un codice che indica lo stato dell'operazione.
nullable: true
"400":
description: Richiesta non valida
"401":
description: Non autorizzato
"404":
description: Non trovato
"500":
description: Errore interno del server
/documents/{document_id}/contents/:
get:
summary: Recupera i contenuti specifici di un documento per ID.
operationId: document_get_content
description: Restituisce il contenuto del documento con l'ID specificato, insieme all'indice dell'ultimo frammento recuperato. Ogni chiamata recupera fino a 20 frammenti. Per ottenerne di più, usa il valore end_chunk dalla risposta come start_chunk per la chiamata successiva.
parameters:
- in: path
name: document_id
required: true
description: L'ID del documento di cui recuperare i contenuti.
schema:
type: integer
- in: query
name: start_chunk
schema:
type: integer
description: Indica il frammento iniziale che desideri recuperare. Se non specificato, il valore predefinito è 0.
- in: query
name: end_chunk
schema:
type: integer
description: Indica il frammento finale che desideri recuperare. Se non specificato, il valore predefinito è start_chunk + 20.
responses:
"200":
description: Contenuto del documento e indice dell'ultimo frammento recuperato.
content:
application/json:
schema:
type: object
properties:
content:
type: string
description: Il contenuto del documento.
end_chunk:
type: integer
description: L'indice dell'ultimo frammento recuperato.
"404":
description: Documento non trovato.
"500":
description: Errore interno del server.
/common-knowledge/subscribed-list/:
get:
description: Questa operazione recupera l'elenco delle conoscenze condivise (note anche come conoscenze comuni) a cui l'utente si è iscritto. Ogni conoscenza condivisa include un elenco di ID documento a cui l'utente può accedere.
operationId: common_knowledge_retrieve
responses:
"200":
description: Operazione riuscita
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
description: Questo è l'identificatore unico della conoscenza condivisa. Non mostrare queste informazioni da nessuna parte.
num_of_subscribers:
type: integer
description: Questo indica il numero di utenti che si sono iscritti a questa conoscenza condivisa
publisher_name:
type: string
published_by_me:
type: boolean
description: Questo indica se la conoscenza condivisa è stata pubblicata dall'utente attuale o meno
subscribed_by_me:
type: boolean
description: Questo indica se la conoscenza condivisa è stata sottoscritta dall'utente attuale o meno, dovrebbe essere true in questa API
created:
type: string
description: Questo è il momento in cui è stata creata la conoscenza condivisa
modified:
type: string
description: Questo è il momento in cui la conoscenza condivisa è stata modificata l'ultima volta
name:
type: string
description: Questo è il nome della conoscenza condivisa
image_url:
type: string
description: Questo è l'URL dell'immagine della conoscenza condivisa
description:
type: string
description: Questa è la descrizione della conoscenza condivisa
memento:
type: integer
description: Questo è l'ID del memento di Rememberizer da cui è stata creata la conoscenza condivisa.
document_ids:
type: array
items:
type: integer
description: Questo è l'elenco degli ID documento che appartengono alla conoscenza condivisa
/documents/memorize/:
post:
description: Memorizza il contenuto nel database, che può essere accessibile tramite l'endpoint di ricerca in seguito.
operationId: documents_memorize_create
requestBody:
content:
application/json:
schema:
type: object
properties:
content:
type: string
required:
- name
- content
responses:
"201":
description: Contenuto memorizzato con successo
"400":
description: Richiesta non valida
"401":
description: Non autorizzato
"500":
description: Errore interno del server
/discussions/{discussion_id}/contents/:
get:
summary: Recupera i contenuti di una discussione per ID. Una discussione può essere una chat Slack o Discord.
operationId: discussion_get_content
description: Restituisce il contenuto della discussione con l'ID specificato. Una discussione può essere una chat Slack o Discord. La risposta contiene 2 campi, discussion_content e thread_contents. Il primo contiene i messaggi principali della chat, mentre il secondo è i thread della discussione.
parameters:
- in: path
name: discussion_id
required: true
description: L'ID della discussione di cui recuperare i contenuti. Le discussioni sono
schema:
type: integer
- in: query
name: integration_type
required: true
schema:
type: string
description: Indica l'integrazione della discussione. Attualmente, può essere solo "slack" o "discord".
- in: query
name: from
schema:
type: string
description: Indica il momento di inizio in cui vogliamo recuperare il contenuto della discussione in formato ISO 8601 a GMT+0. Se non specificato, il tempo predefinito è ora.
- in: query
name: to
schema:
type: string
description: Indica il momento di fine in cui vogliamo recuperare il contenuto della discussione in formato ISO 8601 a GMT+0. Se non specificato, è 7 giorni prima del parametro "from".
responses:
"200":
description: Messaggi principali e messaggi a thread della discussione in un intervallo di tempo.
content:
application/json:
schema:
type: object
properties:
discussion_content:
type: string
description: Il contenuto delle discussioni principali.
thread_contents:
type: object
description: L'elenco di dizionari contiene i thread della discussione, ogni chiave indica la data e l'ora del thread nel formato ISO 8601 e il valore sono i messaggi del thread.
"404":
description: Discussione non trovata.
"500":
description: Errore interno del server.
Aggiungi questo link come Informativa sulla privacy: https://docs.rememberizer.ai/notices/privacy-policy
.
Dopo aver creato l'azione, copia l'URL di callback e incollalo nella tua app Rememberizer.