Erstellung eines Rememberizer GPT

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.

Voraussetzung

Zuerst müssen Sie eine Rememberizer-App registrieren und sie mit den entsprechenden Einstellungen konfigurieren.

Um ein GPT zu erstellen, müssen Sie den Autorisierten Anfrageursprung Ihrer Rememberizer-App auf https://chat.openai.com setzen.

Sie müssen eine Rückruf-URL hinzufügen, um die App zu registrieren, aber Sie können die Rückruf-URL erst 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 Rückruf-URL erhalten haben, müssen Sie die korrekte für die App aktualisieren. Hinweis: GPTs aktualisieren ihre Rückruf-URL, nachdem Sie ihre Konfiguration geändert haben. Stellen Sie sicher, dass Sie die neueste Rückruf-URL kopieren.

Nach dem Erstellen einer App kopieren Sie die Client ID und das Client Secret. Wir werden sie verwenden, wenn wir ein GPT erstellen.

Erstellung eines GPT

Sie können damit beginnen, einen GPT im ChatGPT UI zu erstellen.

GPT-Konfigurationen

Die Informationen können beliebig ausgefüllt werden. Hier ist ein Beispiel, das Sie ausprobieren können:

FeldBeispielwert

Name

Rememberizer

Beschreibung

Sprechen Sie direkt mit all Ihren PDFs, Dokumenten, Tabellen, Präsentationen auf Google Drive und Ihren Slack-Kanälen.

Anweisungen

Rememberizer ist so konzipiert, dass es nahtlos mit dem Rememberizer-Tool interagiert und den Benutzern ermöglicht, ihre Daten effizient aus verschiedenen Quellen wie Google Drive und Slack abzufragen. Das Hauptziel ist es, schnellen und genauen Zugriff auf die Daten des Benutzers zu ermöglichen und die Fähigkeiten von Rememberizer zu nutzen, um die Suchgeschwindigkeit und -präzision zu optimieren. Das GPT sollte die Benutzer bei der Formulierung ihrer Abfragen und der Interpretation der Ergebnisse unterstützen und für eine reibungslose und benutzerfreundliche Erfahrung sorgen. Es ist wesentlich, Klarheit und Präzision in den Antworten zu bewahren, insbesondere beim Umgang mit Datenabruf und -analyse. Das GPT sollte in der Lage sein, eine breite Palette von Abfragen zu bewältigen, von einfachen Datenabfragen bis hin zu komplexeren Suchen, die mehrere Parameter oder Quellen involvieren. Der Fokus liegt auf der Verbesserung der Fähigkeit des Benutzers, schnell und effektiv auf die Informationen zuzugreifen, die sie benötigen, und den Prozess so mühelos wie möglich zu gestalten.

Erstellen Sie die Rememberizer-Aktion

Aus dem GPT-Editor:

  1. Wählen Sie "Konfigurieren"

  2. "Aktion hinzufügen"

  3. Konfigurieren Sie den Authentifizierungstyp.

    • Setzen Sie den Authentifizierungstyp auf OAuth.

    • Fügen Sie die Client-ID und Client-Secret aus den obigen Schritten ein.

    • Autorisierungs-URL: https://api.rememberizer.ai/api/v1/auth/oauth2/authorize/

    • Token-URL: https://api.rememberizer.ai/api/v1/auth/oauth2/token/

    • Lassen Sie Scope leer.

    • Klicken Sie auf Speichern.

  4. Füllen Sie die OpenAPI-Spezifikation von Rememberizer aus. Kopieren Sie den Inhalt im ausklappbaren Bereich unten und fügen Sie ihn in das Feld Schema ein:

Rememberizer_OpenAPI.yaml
openapi: 3.0.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 Kontodaten des aktuellen Benutzers.
      description: Konto Informationen 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 Information 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 Datenquellen-Integrationen 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 Information 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.
                        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 indexierten Dokumente.
                                indexing:
                                  type: integer
                                  description: Die Anzahl der gerade indexierten 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 und Slack-Kanäle innerhalb der Datenquellen abzurufen.
      operationId: documents_list_file_and_channel
      parameters:
        - in: query
          name: page
          description: Index der Seite
          schema:
            type: integer
        - in: query
          name: page_size
          description: Die maximale Anzahl an Dokumenten, die in 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, common_knowledge]
      responses:
        "200":
          description: Erfolgreiche Operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: Die Gesamtanzahl 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 der Dokumente, Slack-Kanäle, allgemeines Wissen usw.
                    items:
                      type: object
                      properties:
                        document_id:
                          type: string
                          format: uuid
                          description: Die eindeutige Kennung des Dokuments. Zeigen Sie diese Information 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: Der Integrationstyp des Dokuments.
                        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, als das Dokument indexiert wurde.
                        size:
                          type: integer
                          description: Die Größe des Dokuments in Bytes.
  /documents/search/:
    get:
      summary: Suche nach Dokumenten nach 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 als ideale Antwort 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 Wissensstücke finden möchten.
          schema:
            type: string
        - name: n
          in: query
          description: Anzahl der semantisch ähnlichen Textstücke, die zurückgegeben werden sollen. Verwenden Sie 'n=3' für bis zu 5, und 'n=10' für weitere Informationen. Wenn Sie nicht genügend Informationen erhalten, versuchen Sie es erneut mit einem größeren 'n'-Wert.
          schema:
            type: integer
      responses:
        "200":
          description: Erfolgreicher Abruf von Dokumenten
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    description: Liste der semantisch ähnlichen Wissensstücke
                    items:
                      type: object
                      properties:
                        chunk_id:
                          type: string
                          description: Die eindeutige Kennung des Stücks.
                        document:
                          type: object
                          description: Die Details des Dokuments.
                          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, als das Dokument erstellt wurde.
                            modified_time:
                              type: string
                              description: Das Datum und die Uhrzeit, als 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
                                document_stats:
                                  type: object
                                  properties:
                                    status:
                                      type: object
                                      properties:
                                        indexed:
                                          type: integer
                                        indexing:
                                          type: integer
                                        error:
                                          type: integer
                                    total_size:
                                      type: integer
                                      description: Gesamte Größ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: Nicht autorisiert
        "500":
          description: Interner Serverfehler
  /documents/{document_id}/contents/:
    get:
      summary: Abrufen bestimmter Dokumentinhalte nach ID.
      operationId: document_get_content
      description: Gibt den Inhalt des Dokuments mit der angegebenen ID sowie den Index des zuletzt abgerufenen Stücks zurück. Jeder Aufruf holt bis zu 20 Stücke. Um mehr zu erhalten, verwenden Sie den end_chunk-Wert aus der Response 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 start_chunk an, das Sie abrufen möchten. Wenn nicht angegeben, beträgt der Standardwert 0.
        - in: query
          name: end_chunk
          schema:
            type: integer
          description: Geben Sie das end_chunk an, das Sie abrufen möchten. Wenn nicht angegeben, beträgt der Standardwert start_chunk + 20.
      responses:
        "200":
          description: Inhalt des Dokuments und Index des zuletzt abgerufenen Stücks.
          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 Stücks.
        "404":
          description: Dokument nicht gefunden.
        "500":
          description: Interner Serverfehler.
  /common-knowledge/subscribed-list/:
    get:
      description: Diese Operation ruft die Liste des geteilten Wissens (auch bekannt als gemeinsames Wissen) ab, auf das der Benutzer abonniert hat. Jedes geteilte 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 geteilten Wissens. Zeigen Sie diese Information nirgendwo an.
                    num_of_subscribers:
                      type: integer
                      description: Dies gibt die Anzahl der Benutzer an, die dieses geteilte Wissen abonniert haben
                    publisher_name:
                      type: string
                    published_by_me:
                      type: boolean
                      description: Dies gibt an, ob das geteilte Wissen vom aktuellen Benutzer veröffentlicht wurde oder nicht
                    subscribed_by_me:
                      type: boolean
                      description: Dies gibt an, ob das geteilte Wissen vom aktuellen Benutzer abonniert wurde oder nicht, es sollte in dieser API wahr sein
                    created:
                      type: string
                      description: Dies ist der Zeitpunkt, zu dem das geteilte Wissen erstellt wurde
                    modified:
                      type: string
                      description: Dies ist der Zeitpunkt, zu dem das geteilte Wissen zuletzt geändert wurde
                    name:
                      type: string
                      description: Dies ist der Name des geteilten Wissens
                    image_url:
                      type: string
                      description: Dies ist die Bild-URL des geteilten Wissens
                    description:
                      type: string
                      description: Dies ist die Beschreibung des geteilten Wissens
                    memento:
                      type: integer
                      description: Dies ist die ID des Rememberizer-Mementos, aus dem das geteilte Wissen erstellt wurde.
                    document_ids:
                      type: array
                      items:
                        type: integer
                      description: Dies ist die Liste von Dokument-IDs, die zum geteilten Wissen gehören
  /documents/memorize/:
    post:
      description: Speichern Sie Inhalte in der Datenbank, auf die später über den Such-Endpunkt zugegriffen werden kann.
      operationId: documents_memorize_create
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                content:
                  type: string
              required:
                - name
                - content
      responses:
        "201":
          description: Inhalt erfolgreich gespeichert
        "400":
          description: Ungültige Anfrage
        "401":
          description: Nicht autorisiert
        "500":
          description: Interner Serverfehler
  1. Fügen Sie diesen Link als Datenschutzbestimmungen hinzu: https://docs.rememberizer.ai/notices/privacy-policy.

  2. Nach dem Erstellen der Aktion kopieren Sie die Callback-URL und fügen sie in Ihre Rememberizer-Anwendung ein.

Last updated