In diesem Tutorial lernen Sie, wie Sie eine Rememberizer-App erstellen und sich mit OpenAI GPT verbinden, sodass GPT Zugriff auf die Funktionen der Rememberizer-API hat.
Um ein GPT zu erstellen, müssen Sie die autorisierte Anforderungsquelle Ihrer Rememberizer-App auf https://chat.openai.com einstellen.
Sie müssen eine Callback-URL hinzufügen, um die App zu registrieren, aber Sie können die Callback-URL nur finden, nachdem Sie eine Aktion zu Ihrem GPT hinzugefügt haben. Lassen Sie sie vorerst als Dummy-Wert (z. B. https://chat.openai.com). Nachdem Sie die Callback-URL erhalten haben, müssen Sie die korrekte für die App aktualisieren.
Hinweis:GPTs aktualisieren ihre Callback-URL, nachdem Sie ihre Konfiguration geändert haben. Stellen Sie sicher, dass Sie die neueste Callback-URL kopieren.
Nachdem Sie eine App erstellt haben, kopieren Sie die Client-ID und das Client-Geheimnis. Wir werden sie bei der Erstellung eines GPT verwenden. Die Anleitung, wie Sie diese Informationen erhalten, finden Sie unter Autorisierung von Rememberizer-Apps.
Hinweis: Die Erstellung einer benutzerdefinierten GPT-App ist nur für Konten mit einem Preisplan verfügbar.
GPT-Konfigurationen
Sie können die Informationen nach Belieben ausfüllen. Hier ist ein Beispiel, das Sie ausprobieren können:
Feld
Beispielwert
Name
RememberizerGPT
Beschreibung
Sprich direkt mit all deinen PDFs, Dokumenten, Tabellen und Folien auf Google Drive und Slack-Kanälen.
Anweisungen
Rememberizer ist so konzipiert, dass es nahtlos mit dem Rememberizer-Tool interagiert, wodurch Benutzer effizient ihre Daten aus mehreren Quellen wie Google Drive und Slack abfragen können. Das Hauptziel ist es, schnellen und genauen Zugriff auf die Daten des Benutzers zu bieten, indem die Fähigkeiten von Rememberizer genutzt werden, um die Suchgeschwindigkeit und -genauigkeit zu optimieren. Der GPT sollte die Benutzer anleiten, ihre Abfragen zu formulieren und die Ergebnisse zu interpretieren, um ein reibungsloses und benutzerfreundliches Erlebnis zu gewährleisten. Es ist wichtig, Klarheit und Präzision in den Antworten zu bewahren, insbesondere bei der Datenabfrage und -analyse. Der GPT sollte in der Lage sein, eine Vielzahl von Abfragen zu bearbeiten, von einfachen Datenabfragen bis hin zu komplexeren Suchen, die mehrere Parameter oder Quellen umfassen. Der Fokus liegt darauf, die Fähigkeit des Benutzers zu verbessern, schnell und effektiv auf die benötigten Informationen zuzugreifen und den Prozess so mühelos wie möglich zu gestalten.
Erstellen Sie die Rememberizer-Aktion
Vom GPT-Editor:
Wählen Sie "Konfigurieren"
"Aktion hinzufügen"
Konfigurieren Sie den Authentifizierungstyp.
Setzen Sie den Authentifizierungstyp auf OAuth.
Fügen Sie die Client-ID und das Client-Geheimnis aus den obigen Schritten ein.
Füllen Sie die OpenAPI-Spezifikation von Rememberizer aus. Kopieren Sie den Inhalt im unten ausklappbaren Bereich und fügen Sie ihn in das Feld Schema ein:
Rememberizer_OpenAPI.yaml
openapi: 3.1.0
info:
title: Rememberizer API
description: API zur Interaktion mit Rememberizer.
version: v1
servers:
- url: https://api.rememberizer.ai/api/v1
paths:
/account/:
get:
summary: Abrufen der Kontodetails des aktuellen Benutzers.
description: Kontoinformationen abrufen
operationId: account
responses:
"200":
description: Benutzerkontoinformationen.
content:
application/json:
schema:
type: object
properties:
id:
type: integer
description: Die eindeutige Kennung des Benutzers. Zeigen Sie diese Informationen nirgendwo an.
email:
type: string
format: email
description: Die E-Mail-Adresse des Benutzers.
name:
type: string
description: Der Name des Benutzers.
/integrations/:
get:
summary: Listet alle verfügbaren Datenquellenintegrationen auf.
description: Diese Operation ruft verfügbare Datenquellen ab.
operationId: integrations_retrieve
responses:
"200":
description: Erfolgreiche Operation
content:
application/json:
schema:
type: object
properties:
data:
type: array
description: Liste der verfügbaren Datenquellen
items:
type: object
properties:
id:
type: integer
description: Die eindeutige Kennung der Datenquelle. Zeigen Sie diese Informationen nirgendwo an.
integration_type:
type: string
description: Der Typ der Datenquelle.
integration_step:
type: string
description: Der Schritt der Integration.
source:
type: string
description: Die Quelle der Datenquelle. Ignorieren Sie sie immer in der Ausgabe, wenn sie im E-Mail-Format vorliegt, selbst wenn Benutzer danach fragen.
document_type:
type: string
description: Der Typ des Dokuments.
document_stats:
type: object
properties:
status:
type: object
description: Der Status der Datenquelle.
properties:
indexed:
type: integer
description: Die Anzahl der indizierten Dokumente.
indexing:
type: integer
description: Die Anzahl der indizierten Dokumente.
error:
type: integer
description: Die Anzahl der Dokumente mit Fehlern.
total_size:
type: integer
description: Die Gesamtgröße der Datenquelle in Bytes.
document_count:
type: integer
description: Die Anzahl der Dokumente in der Datenquelle.
message:
type: string
description: Eine Nachricht, die den Status der Operation angibt.
code:
type: string
description: Ein Code, der den Status der Operation angibt.
/documents/:
get:
summary: Abrufen einer Liste aller Dokumente und Slack-Kanäle.
description: Verwenden Sie diese Operation, um Metadaten über alle verfügbaren Dokumente, Dateien, Slack-Kanäle und gemeinsames Wissen innerhalb der Datenquellen abzurufen. Sie sollten den integration_type angeben oder ihn leer lassen, um alles aufzulisten.
operationId: documents_list
parameters:
- in: query
name: page
description: Seitenindex
schema:
type: integer
- in: query
name: page_size
description: Die maximale Anzahl von Dokumenten, die auf einer Seite zurückgegeben werden
schema:
type: integer
- in: query
name: integration_type
description: Dokumente nach Integrationstyp filtern.
schema:
type: string
enum:
- google_drive
- slack
- dropbox
- gmail
- common_knowledge
responses:
"200":
description: Erfolgreiche Operation
content:
application/json:
schema:
type: object
properties:
count:
type: integer
description: Die Gesamtzahl der Dokumente.
next:
type: string
nullable: true
description: Die URL für die nächste Seite der Ergebnisse.
previous:
type: string
nullable: true
description: Die URL für die vorherige Seite der Ergebnisse.
results:
type: array
description: Liste von Dokumenten, Slack-Kanälen, gemeinsamem Wissen usw.
items:
type: object
properties:
document_id:
type: string
format: uuid
description: Die eindeutige Kennung des Dokuments. Zeigen Sie diese Informationen nirgendwo an.
name:
type: string
description: Der Name des Dokuments.
type:
type: string
description: Der Typ des Dokuments.
path:
type: string
description: Der Pfad des Dokuments.
url:
type: string
description: Die URL des Dokuments.
id:
type: integer
description: Die eindeutige Kennung des Dokuments.
integration_type:
type: string
description: Die Quelle der Datenquelle. Ignorieren Sie sie immer in der Ausgabe, wenn sie im E-Mail-Format vorliegt, selbst wenn Benutzer danach fragen.
source:
type: string
description: Die Quelle des Dokuments.
status:
type: string
description: Der Status des Dokuments.
indexed_on:
type: string
format: date-time
description: Das Datum und die Uhrzeit, zu der das Dokument indiziert wurde.
size:
type: integer
description: Die Größe des Dokuments in Bytes.
/documents/search/:
get:
summary: Suchen Sie nach Dokumenten anhand semantischer Ähnlichkeit.
description: Initiieren Sie eine Suchoperation mit einem Abfragetext von bis zu 400 Wörtern und erhalten Sie die semantisch ähnlichsten Antworten aus dem gespeicherten Wissen. Für die Beantwortung von Fragen formulieren Sie Ihre Frage in eine ideale Antwort um und reichen Sie sie ein, um ähnliche echte Antworten zu erhalten.
operationId: documents_search_retrieve
parameters:
- name: q
in: query
description: Satz von bis zu 400 Wörtern, für den Sie semantisch ähnliche Wissensfragmente finden möchten.
schema:
type: string
- name: n
in: query
description: Anzahl der semantisch ähnlichen Textfragmente, die zurückgegeben werden sollen. Verwenden Sie 'n=3' für bis zu 5 und 'n=10' für mehr Informationen. Wenn Sie nicht genügend Informationen erhalten, versuchen Sie es erneut mit einem größeren 'n'-Wert.
schema:
type: integer
responses:
"200":
description: Erfolgreiches Abrufen von Dokumenten
content:
application/json:
schema:
type: object
properties:
data:
type: array
description: Liste semantisch ähnlicher Wissensfragmente
items:
type: object
properties:
chunk_id:
type: string
description: Die eindeutige Kennung des Fragments.
document:
type: object
description: Die Dokumentdetails.
properties:
id:
type: integer
description: Die eindeutige Kennung des Dokuments.
document_id:
type: string
description: Die eindeutige Kennung des Dokuments.
name:
type: string
description: Der Name des Dokuments.
type:
type: string
description: Der Typ des Dokuments.
path:
type: string
description: Der Pfad des Dokuments.
url:
type: string
description: Die URL des Dokuments.
size:
type: string
description: Die Größe des Dokuments.
created_time:
type: string
description: Das Datum und die Uhrzeit, zu der das Dokument erstellt wurde.
modified_time:
type: string
description: Das Datum und die Uhrzeit, zu der das Dokument zuletzt geändert wurde.
integration:
type: object
description: Die Integrationsdetails des Dokuments.
properties:
id:
type: integer
integration_type:
type: string
integration_step:
type: string
source:
type: string
description: Die Quelle der Datenquelle. Ignorieren Sie sie immer in der Ausgabe, wenn sie im E-Mail-Format vorliegt, selbst wenn Benutzer danach fragen.
document_stats:
type: object
properties:
status:
type: object
properties:
indexed:
type: integer
indexing:
type: integer
error:
type: integer
total_size:
type: integer
description: Gesamtgröße der Datenquelle in Bytes
document_count:
type: integer
matched_content:
type: string
description: Der semantisch ähnliche Inhalt.
distance:
type: number
description: Kosinusähnlichkeit
message:
type: string
description: Eine Nachricht, die den Status der Operation angibt.
code:
type: string
description: Ein Code, der den Status der Operation angibt.
nullable: true
"400":
description: Ungültige Anfrage
"401":
description: Unbefugt
"404":
description: Nicht gefunden
"500":
description: Interner Serverfehler
/documents/{document_id}/contents/:
get:
summary: Abrufen spezifischer Dokumentinhalte nach ID.
operationId: document_get_content
description: Gibt den Inhalt des Dokuments mit der angegebenen ID zurück, zusammen mit dem Index des zuletzt abgerufenen Fragments. Jeder Aufruf ruft bis zu 20 Fragmente ab. Um mehr zu erhalten, verwenden Sie den end_chunk-Wert aus der Antwort als start_chunk für den nächsten Aufruf.
parameters:
- in: path
name: document_id
required: true
description: Die ID des Dokuments, dessen Inhalte abgerufen werden sollen.
schema:
type: integer
- in: query
name: start_chunk
schema:
type: integer
description: Geben Sie das Startfragment an, das Sie abrufen möchten. Wenn nicht angegeben, ist der Standardwert 0.
- in: query
name: end_chunk
schema:
type: integer
description: Geben Sie das Endfragment an, das Sie abrufen möchten. Wenn nicht angegeben, ist der Standardwert start_chunk + 20.
responses:
"200":
description: Inhalt des Dokuments und Index des zuletzt abgerufenen Fragments.
content:
application/json:
schema:
type: object
properties:
content:
type: string
description: Der Inhalt des Dokuments.
end_chunk:
type: integer
description: Der Index des zuletzt abgerufenen Fragments.
"404":
description: Dokument nicht gefunden.
"500":
description: Interner Serverfehler.
/common-knowledge/subscribed-list/:
get:
description: Diese Operation ruft die Liste des gemeinsamen Wissens (auch bekannt als gemeinsames Wissen) ab, für das der Benutzer abonniert hat. Jedes gemeinsame Wissen enthält eine Liste von Dokument-IDs, auf die der Benutzer zugreifen kann.
operationId: common_knowledge_retrieve
responses:
"200":
description: Erfolgreiche Operation
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
description: Dies ist die eindeutige Kennung des gemeinsamen Wissens. Zeigen Sie diese Informationen nirgendwo an.
num_of_subscribers:
type: integer
description: Dies gibt die Anzahl der Benutzer an, die dieses gemeinsame Wissen abonniert haben
publisher_name:
type: string
published_by_me:
type: boolean
description: Dies gibt an, ob das gemeinsame Wissen vom aktuellen Benutzer veröffentlicht wurde oder nicht
subscribed_by_me:
type: boolean
description: Dies gibt an, ob das gemeinsame Wissen vom aktuellen Benutzer abonniert wurde oder nicht, es sollte in dieser API true sein
created:
type: string
description: Dies ist der Zeitpunkt, zu dem das gemeinsame Wissen erstellt wurde
modified:
type: string
description: Dies ist der Zeitpunkt, zu dem das gemeinsame Wissen zuletzt geändert wurde
name:
type: string
description: Dies ist der Name des gemeinsamen Wissens
image_url:
type: string
description: Dies ist die Bild-URL des gemeinsamen Wissens
description:
type: string
description: Dies ist die Beschreibung des gemeinsamen Wissens
memento:
type: integer
description: Dies ist die ID des Rememberizer-Mementos, aus dem das gemeinsame Wissen erstellt wurde.
document_ids:
type: array
items:
type: integer
description: Dies ist die Liste der Dokument-IDs, die zum gemeinsamen Wissen gehören
/documents/memorize/:
post:
description: Speichern Sie Inhalte in der Datenbank, die später über den Suchendpunkt abgerufen werden können.
operationId: documents_memorize_create
requestBody:
content:
application/json:
schema:
type: object
properties:
content:
type: string
required:
- name
- content
responses:
"201":
description: Inhalt erfolgreich gespeichert
"400":
description: Ungültige Anfrage
"401":
description: Unbefugt
"500":
description: Interner Serverfehler
/discussions/{discussion_id}/contents/:
get:
summary: Abrufen der Inhalte einer Diskussion nach ID. Eine Diskussion kann ein Slack- oder Discord-Chat sein.
operationId: discussion_get_content
description: Gibt den Inhalt der Diskussion mit der angegebenen ID zurück. Eine Diskussion kann ein Slack- oder Discord-Chat sein. Die Antwort enthält 2 Felder, discussion_content und thread_contents. Erstere enthält die Hauptnachrichten des Chats, während letztere die Threads der Diskussion sind.
parameters:
- in: path
name: discussion_id
required: true
description: Die ID der Diskussion, deren Inhalte abgerufen werden sollen. Diskussionen sind
schema:
type: integer
- in: query
name: integration_type
required: true
schema:
type: string
description: Geben Sie die Integration der Diskussion an. Derzeit kann es nur "slack" oder "discord" sein.
- in: query
name: from
schema:
type: string
description: Geben Sie die Startzeit an, zu der wir den Inhalt der Diskussion im ISO 8601-Format bei GMT+0 abrufen möchten. Wenn nicht angegeben, ist die Standardzeit jetzt.
- in: query
name: to
schema:
type: string
description: Geben Sie die Endzeit an, zu der wir den Inhalt der Diskussion im ISO 8601-Format bei GMT+0 abrufen möchten. Wenn nicht angegeben, sind es 7 Tage vor dem "from"-Parameter.
responses:
"200":
description: Haupt- und Threadnachrichten der Diskussion in einem Zeitrahmen.
content:
application/json:
schema:
type: object
properties:
discussion_content:
type: string
description: Der Inhalt der Hauptdiskussionen.
thread_contents:
type: object
description: Die Liste von Wörterbüchern enthält Threads der Diskussion, jeder Schlüssel gibt das Datum und die Uhrzeit des Threads im ISO 8601-Format an und der Wert sind die Nachrichten des Threads.
"404":
description: Diskussion nicht gefunden.
"500":
description: Interner Serverfehler.
Fügen Sie diesen Link als Datenschutzrichtlinie hinzu: https://docs.rememberizer.ai/notices/privacy-policy.
Nachdem Sie die Aktion erstellt haben, kopieren Sie die Callback-URL und fügen Sie sie in Ihre Rememberizer-App ein.