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エディタから:
「構成」を選択
「アクションを追加」
認証タイプを設定します。
認証タイプをOAuthに設定します。
上記の段階からクライアントIDとクライアントシークレットを貼り付けます。
認証URL:
https://api.rememberizer.ai/api/v1/auth/oauth2/authorize/
トークンURL:
https://api.rememberizer.ai/api/v1/auth/oauth2/token/
スコープは空白のままにします。
保存をクリックします。
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: サーバー内部エラー
このリンクをプライバシーポリシーとして追加します:
https://docs.rememberizer.ai/notices/privacy-policy
。アクションを作成した後、コールバックURLをコピーし、Rememberizerアプリに貼り付けます。
Last updated