Rememberizer GPT の作成

このチュートリアルでは、Rememberizerアプリを作成し、OpenAI GPTと接続する方法を学びます。 これにより、GPTはRememberizer APIの機能にアクセスできるようになります。

必要条件

まず、Rememberizerアプリを登録し、適切な設定で設定する必要があります。

GPTを作成するには、Rememberizerアプリの承認されたリクエスト元をhttps://chat.openai.comに設定する必要があります。

アプリを登録するためにはコールバックURLを追加する必要がありますが、GPTにアクションを追加した後でしかコールバックURLを見つけることはできませんので、今のところはダミーの値(例えば https://chat.openai.com)としておいてください。コールバックURLを取得したら、アプリの直正なものを更新する必要があります。 注意: GPTは設定を変更した後にコールバックURLを更新します。最新のコールバックURLをコピーしておいてください。

アプリを作成したら、クライアントIDクライアントシークレットをコピーします。これらをGPTを作成する際に使用します。

GPTの作成

ChatGPT UIでGPTを作成から始めることができます。

GPTの設定

情報は自由に入力することができます。以下に例を挙げてみます:

フィールドサンプル値

名前

Rememberizer

説明

GoogleドライブやSlackチャンネルにあるあなたのすべてのPDF、ドキュメント、シート、スライドに直接話し掛けます。

指示

Rememberizerは、GoogleドライブやSlackなどの複数の源泉から効率的にデータを問い合わせることができるユーザーに、Rememberizerツールとのシームレスな対話を可能にするように設計されています。主な目標は、Rememberizerの性能を活用し、検索速度と精度を最適化することで、ユーザーのデータに対する迅速かつ正確なアクセスを提供することです。GPTは、ユーザーが問い合わせを作成し、結果を解釈するためのガイドとなるべきで、滑らかでユーザーフレンドリーな体験を確保することが重要です。特にデータの取得と分析に関しては、応答の明確性と精密性を維持することが重要です。GPTは、単純なデータルックアップから、複数のパラメーターや源泉を含むより複雑な検索に至るまで、幅広い問い合わせを処理することができるべきです。フォーカスは、ユーザーが必要な情報に迅速かつ効果的にアクセスできる能力を高めることで、その過程を可能な限り労力を伴わないものにすることです。

Rememberizerアクションの作成

GPTエディタから:

  1. 「構成」を選択

  2. 「アクションを追加」

  3. 認証タイプを設定します。

    • 認証タイプをOAuthに設定します。

    • 上記の段階からクライアントIDクライアントシークレットを貼り付けます。

    • 認証URL: https://api.rememberizer.ai/api/v1/auth/oauth2/authorize/

    • トークンURL: https://api.rememberizer.ai/api/v1/auth/oauth2/token/

    • スコープは空白のままにします。

    • 保存をクリックします。

  4. RememberizerのOpenAPI仕様を記入します。以下の展開可能な内容をコピーし、スキーマフィールドに貼り付けます:

Rememberizer_OpenAPI.yaml
openapi: 3.0.0
info:
  title: Rememberizer API
  description: Rememberizerと対話するためのAPI。
  version: v1
servers:
  - url: "https://api.rememberizer.ai/api/v1"
paths:
  /account/:
    get:
      summary: 現在のユーザーのアカウント情報を取得します。
      description: アカウント情報を取得します。
      operationId: account
      responses:
        "200":
          description: ユーザーアカウント情報。
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    description: ユーザーの一意の識別子。この情報はどこにも表示しないでください。
                  email:
                    type: string
                    format: email
                    description: ユーザーのメールアドレス。
                  name:
                    type: string
                    description: ユーザーの名前。

  /integrations/:
    get:
      summary: 利用可能なデータソースの統合をすべてリストします。
      description: この操作は利用可能なデータソースを取得します。
      operationId: integrations_retrieve
      responses:
        "200":
          description: 操作成功
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    description: 利用可能なデータソースのリスト
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: データソースの一意の識別子。この情報はどこにも表示しないでください。
                        integration_type:
                          type: string
                          description: データソースのタイプ。
                        integration_step:
                          type: string
                          description: 統合のステップ。
                        source:
                          type: string
                          description: データソースのソース。
                        document_type:
                          type: string
                          description: ドキュメントのタイプ。
                        document_stats:
                          type: object
                          properties:
                            status:
                              type: object
                              description: データソースの状態。
                              properties:
                                indexed:
                                  type: integer
                                  description: インデックスされたドキュメントの数。
                                indexing:
                                  type: integer
                                  description: インデックス中のドキュメントの数。
                                error:
                                  type: integer
                                  description: エラーのあるドキュメントの数。
                            total_size:
                              type: integer
                              description: データソースの合計サイズ(バイト数)。
                            document_count:
                              type: integer
                              description: データソース内のドキュメントの数。
                  message:
                    type: string
                    description: 操作の状態を示すメッセージ。
                  code:
                    type: string
                    description: 操作の状態を示すコード。
  /documents/:
    get:
      summary: すべてのドキュメントとSlackチャンネルのリストを取得します。
      description: データソース内にあるすべての利用可能なドキュメントとSlackチャンネルについてのメタデータを取得するためにこの操作を使用します。
      operationId: documents_list_file_and_channel
      parameters:
        - in: query
          name: page
          description: ページのインデックス
          schema:
            type: integer
        - in: query
          name: page_size
          description: ページ内に返される最大ドキュメント数
          schema:
            type: integer
        - in: query
          name: integration_type
          description: 統合タイプでドキュメントをフィルタリングします。
          schema:
            type: string
            enum: [google_drive, slack, dropbox, common_knowledge]
      responses:
        "200":
          description: 操作成功
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: ドキュメントの総数。
                  next:
                    type: string
                    nullable: true
                    description: 次の結果ページのURL。
                  previous:
                    type: string
                    nullable: true
                    description: 前の結果ページのURL。
                  results:
                    type: array
                    description: ドキュメント、Slackチャンネル、共通知識などのリスト。
                    items:
                      type: object
                      properties:
                        document_id:
                          type: string
                          format: uuid
                          description: ドキュメントの一意の識別子。この情報はどこにも表示しないでください。
                        name:
                          type: string
                          description: ドキュメントの名前。
                        type:
                          type: string
                          description: ドキュメントのタイプ。
                        path:
                          type: string
                          description: ドキュメントのパス。
                        url:
                          type: string
                          description: ドキュメントのURL。
                        id:
                          type: integer
                          description: ドキュメントの一意の識別子。
                        integration_type:
                          type: string
                          description: ドキュメントの統合タイプ。
                        source:
                          type: string
                          description: ドキュメントのソース。
                        status:
                          type: string
                          description: ドキュメントのステータス。
                        indexed_on:
                          type: string
                          format: date-time
                          description: ドキュメントがインデックスされた日時。
                        size:
                          type: integer
                          description: ドキュメントのサイズ(バイト数)。
  /documents/search/:
    get:
      summary: セマンティック類似性によるドキュメントの検索。
      description: 最大400語のクエリテキストで検索操作を開始し、保存された知識から最もセマンティックに類似した応答を受け取ります。質問応答の場合は、質問を理想的な答えに変えて提出して、類似の実際の回答を受け取ります。
      operationId: documents_search_retrieve
      parameters:
        - name: q
          in: query
          description: セマンティックに類似した知識のチャンクを見つけたい最大400語の文。
          schema:
            type: string
        - name: n
          in: query
          description: 返すセマンティックに類似したテキストのチャンク数。'n=3'は最大5まで、'n=10'はさらに情報を求めるために使用します。不足している情報があれば、より大きな'n'値で再試行してください。
          schema:
            type: integer
      responses:
        "200":
          description: ドキュメントが正常に取得されました
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    description: セマンティックに類似した知識のチャンクのリスト
                    items:
                      type: object
                      properties:
                        chunk_id:
                          type: string
                          description: チャンクの一意の識別子。
                        document:
                          type: object
                          description: ドキュメントの詳細。
                          properties:
                            id:
                              type: integer
                              description: ドキュメントの一意の識別子。
                            document_id:
                              type: string
                              description: ドキュメントの一意の識別子。
                            name:
                              type: string
                              description: ドキュメントの名前。
                            type:
                              type: string
                              description: ドキュメントのタイプ。
                            path:
                              type: string
                              description: ドキュメントのパス。
                            url:
                              type: string
                              description: ドキュメントのURL。
                            size:
                              type: string
                              description: ドキュメントのサイズ。
                            created_time:
                              type: string
                              description: ドキュメントが作成された日時。
                            modified_time:
                              type: string
                              description: ドキュメントが最後に変更された日時。
                            integration:
                              type: object
                              description: ドキュメントの統合詳細。
                              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: データソースの合計サイズ(バイト数)
                                    document_count:
                                      type: integer
                        matched_content:
                          type: string
                          description: セマンティックに類似したコンテンツ。
                        distance:
                          type: number
                          description: コサイン類似度
                  message:
                    type: string
                    description: 操作の状態を示すメッセージ。
                  code:
                    type: string
                    description: 操作の状態を示すコード。
                    nullable: true
        "400":
          description: 不正なリクエスト
        "401":
          description: 認証されていません
        "500":
          description: サーバー内部エラー
  /documents/{document_id}/contents/:
    get:
      summary: IDによる特定のドキュメントの内容を取得します。
      operationId: document_get_content
      description: 指定されたIDのドキュメントの内容と、最新の取得されたチャンクのインデックスを返します。各呼び出しは最大20チャンクを取得します。もっと取得するには、レスポンスのend_chunk値を次の呼び出しのstart_chunkとして使用します。
      parameters:
        - in: path
          name: document_id
          required: true
          description: 内容を取得するドキュメントのID。
          schema:
            type: integer
        - in: query
          name: start_chunk
          schema:
            type: integer
          description: 取得したい開始チャンクを指定します。指定しない場合、デフォルト値は0です。
        - in: query
          name: end_chunk
          schema:
            type: integer
          description: 取得したい終了チャンクを指定します。指定しない場合、デフォルト値はstart_chunk + 20です。
      responses:
        "200":
          description: ドキュメントの内容と最新の取得されたチャンクのインデックス。
          content:
            application/json:
              schema:
                type: object
                properties:
                  content:
                    type: string
                    description: ドキュメントの内容。
                  end_chunk:
                    type: integer
                    description: 最新の取得されたチャンクのインデックス。
        "404":
          description: ドキュメントが見つかりません。
        "500":
          description: サーバー内部エラー。
  /common-knowledge/subscribed-list/:
    get:
      description: この操作は、ユーザーが購読している共有知識(共通知識とも呼ばれる)のリストを取得します。各共有知識には、ユーザーがアクセスできるドキュメントIDのリストが含まれています。
      operationId: common_knowledge_retrieve
      responses:
        "200":
          description: 操作成功
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      description: これは共有知識の一意の識別子です。この情報はどこにも表示しないでください。
                    num_of_subscribers:
                      type: integer
                      description: これはこの共有知識を購読しているユーザーの数を示します。
                    publisher_name:
                      type: string
                    published_by_me:
                      type: boolean
                      description: これは共有知識が現在のユーザーによって公開されたかどうかを示します。
                    subscribed_by_me:
                      type: boolean
                      description: これは共有知識が現在のユーザーによって購読されたかどうかを示します。このAPIではtrueである必要があります。
                    created:
                      type: string
                      description: これは共有知識が作成された時間です。
                    modified:
                      type: string
                      description: これは共有知識が最後に修正された時間です。
                    name:
                      type: string
                      description: これは共有知識の名前です。
                    image_url:
                      type: string
                      description: これは共有知識の画像URLです。
                    description:
                      type: string
                      description: これは共有知識の説明です。
                    memento:
                      type: integer
                      description: これは共有知識が作成されたRememberizerのメメントのIDです。
                    document_ids:
                      type: array
                      items:
                        type: integer
                      description: これは共有知識に属するドキュメントIDのリストです。
  /documents/memorize/:
    post:
      description: コンテンツをデータベースに保存し、後で検索エンドポイントを通じてアクセスできるようにします。
      operationId: documents_memorize_create
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                content:
                  type: string
              required:
                - name
                - content
      responses:
        "201":
          description: コンテンツが正常に保存されました。
        "400":
          description: 不正なリクエスト
        "401":
          description: 認証されていません
        "500":
          description: サーバー内部エラー
  1. このリンクをプライバシーポリシーとして追加します: https://docs.rememberizer.ai/notices/privacy-policy

  2. アクションを作成した後、コールバックURLをコピーし、Rememberizerアプリに貼り付けます。

Last updated