意外と便利、ある一点を除けばな……!!
Kareshiってなに(定期)
AIに疑似的に彼氏役をさせること。友人のりえんさんと日々理想のKareshiを作ってる定期。
Kareshiというスペルなのは「Kareshiクラスを作ったらおもしろいんじゃね?」的なノリでできた身内的概念です。
使用スクショ・概要
昔作った公開プロジェクト「ore-housework」内を全文検索している様子。ワード検索と、大まかに文章にして検索してみました。
タイトルを意識して検索しなくても引っかかるので、結構助かります。
大雑把な流れ
- GPTsの設定画面に行く
- Instructionsの設定とActionsの設定をする
- 検索!
詳細
1.GPTsの設定画面に行く
Web版メニューから「GPTを探索する→GPTを作成する」を選択します。
2.Instructionsの設定とActionsの設定をする
ここが鬼門ですが、ほぼコピペで済むから安心してください。
Instructionsの設定
Instructionsはこんな感じで設定します。
# 役割
あなたはプロのサーチャー「ナガト」です。
# 指示
Scrapboxの公開プロジェクト「ore-housework」から、ユーザーの疑問を検索してください。
出力をする際は下記の条件でお願いします。
調べ物をしていることを褒め、勉強したらメモを取ることを促します。
## 出力条件
- ScrapboxのURL
- ページの概要を100文字以内で要約
- 画像は出力しない
- ユーザーが単語のみで指示した場合、検索結果のみを表示
# 性格
穏やかな敬語を使う男性でお願いします。
以下の口癖を参考になりきってください。
## 口癖
- おやおや、調べものですか
- 私もお手伝いしましょう
- 調べもの、頑張ってくださいね
- ふーむ、情報が見つかりませんね
- 作業が終わったらしっかりメモは取りましょうね
Kareshi化しているので余計な設定がありますが、要は指示と出力条件だけ使用・改造すればOKです。
Actionsの設定
Actionsの項目で「新しいアクションを作成」をクリック。Authenticationの項目で歯車を押して、「Authentication Type」をNoneにしたあと、Schemaを下記の項目で設定します。
openapi: 3.1.0
info:
title: Scrapbox API
version: 1.0.0
description: Scrapbox API
servers:
- url: https://scrapbox.io
paths:
/api/pages/<検索したいプロジェクト名>/search/query?q={search_query}:
get:
operationId: ScrapboxSearch
parameters:
- name: search_query
in: path
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
projectName:
type: string
searchQuery:
type: string
query:
type: object
properties:
words:
type: array
items:
type: string
excludes:
type: array
items:
type: string
required:
- words
- excludes
limit:
type: integer
count:
type: integer
existsExactTitleMatch:
type: boolean
backend:
type: string
enum:
- elasticsearch
pages:
type: array
items:
$ref: "#/components/schemas/Page"
required:
- projectName
- searchQuery
- query
- limit
- count
- existsExactTitleMatch
- backend
- pages
components:
schemas:
Page:
type: object
properties:
id:
type: string
title:
type: string
image:
type: string
words:
type: array
items:
type: string
lines:
type: array
items:
type: string
required:
- id
- title
- image
- words
- lines
このYAMLはほとんどChatGPTが作ってくれました。圧倒的感謝……!
ちなみにJSONでも行けます。(技術ブログの人たちはJSONで書いている印象)私はChatGPTくんがYAMLで結果を吐き出すのでそのまま使ってるだけです。jsonは書けません。
paths:
のURLを検索したい公開プロジェクトに設定します。設定ができたらPreview画面で検索をかけましょう。通信許可を押して返信が返ってきたら完了です、お疲れさまでした。
その他気になったこと
返信のURLが踏めない
これが結構でかい、これさえなければ……!!
Web版だとなぜかURL踏めません。逆にアプリ版は踏めます、どうして……。公式フォーラムを見る限り、ChatGPTの仕様・バグっぽいのでこっちでは対処しようがない模様。早く直して……!!
非公開プロジェクトでもいける?
無理です。逆に言えば他人の公開プロジェクトも検索できますが、悪用は厳禁。
複数のプロジェクトを検索したい
やり方は2つあります。
- プロジェクト名を変数にして、検索時に指定する
- APIを変更する
前者はparameters
にプロジェクト名を公開するパラメーター・変数を設定します。後者はapi/projects/search/query
API用に設定をいじれば行けそうです。
APIの詳細は非公式のScrapboxページがあるので、そこを参照してください。
Scrapbox REST APIの一覧 – Scrapbox研究会