AI時代の図書館サービスのインターフェース
ChatGPTを活用した検索サービスの事例から

令和5年度徳島大学附属図書館学術講演会（第32回） - 90分
吉本龍司（カーリル）
2023/11/9

プロフィール
吉本龍司（よしもとりゅうじ）
株式会社カーリル 代表取締役
もともとフリーのエンジニア

日本最大の図書館検索サイト「カーリル」（2010-）

技術の社会実装
図書館をもっと楽しく。

図書館サービスを提供する会社≠システム開発会社

会社のあり方、自分たちの働き方を実験する遊び場をつくる“しくみ”をつくる仕事

ChatGPTを活用した実証実験を始めたきっかけ

Reddit 海外図書館員コミュニティの議論から• How is ChatGPT going to affect librarianship?
• 常連客の少なくとも半数はコンピューターを怖がっています。したがって、レファレン
ス図書館員は当面は安全だと思います。
• ChatGPT が Google の検索エンジンのように主流になったら、その影響は Google の世界と同じになるのではないかと思います。

• The changing role of librarians - are you ready?
• ChatGPT のような新しい技術でデータベースを検索して引用を引き出すことができるよ
うになったとしても、将来的にはそれらが包括的になったり無料になったりするとは思えません。図書館員だけでなく出版業界も、AI が真に革命的になることを妨げるでしょう。図書館員は引き続き、独自の図書館ごとにデータベースと電子リソースのパッケージを購入する必要があります。そして、完全で正確な情報が確実に得られるように、ギャップを埋める必要があります。

図書館でつかってみる実験
配架場所を案内出典 : https://www.libnet.pref.okayama.jp/shiryou/ndc/ndc70.htm

ぽいけど、ちがう？

覚え違いタイトルを推定

APIで拡張してみようサービスのコンセプト• 図書館サービスへのAI活用イメージを体験する• 従来の検索とAIを明確に分ける （蔵書検索のサポート）• ユーザーインターフェースの現実的な実装を検討2023年4月バージョン2023年10月バージョン2023年11月バージョン• 基礎知識が2023年4月に• 処理時間が35秒 → 20秒に

内部の処理フロー5秒

2秒
GPT-4 Turbo（11/8発表）

8秒

ステップ1 推薦キーワードの生成ステップ1 推薦キーワードの生成
messages=[{"role": "system", "content": ‘
あなたは図書館の蔵書検索サポーターです。''質問の意図を想定して適切な蔵書検索のキーワードを質問にないキーワードや上位概念と下位概念のキーワードも交えて15個程度考えてください。''キーワードが一般的にひらがなでも通用するなら、ひらがなも入れてください。
'},{"role": "user", "content": query}],亀の育て方を教えて → ['亀の育て方', '亀', 'ペットの飼い方', '爬虫類の飼い方', '飼育方法', '家庭での飼い方', '飼育ガイドブック', '飼育環境', 'ペットケア', '餌の与え方', '水槽の設定', '健康管理', '爬虫類', 'ペット', '獣医', '動物の世話', 'きもの', 'えさのあたえかた', 'すいそうのせってい', 'けんこうかんり’]
図書館の仕組み → ['図書館の仕組み', '図書館', 'ライブラリ', 'library', '図書館学', '図書館員', '図書館管理', '図書館運営', '蔵書管理', '図書館サービス', '図書館資源', '情報学', '情報リテラシー', '公共図書館', '大学
図書館', 'デジタル図書館']

ステップ2 蔵書検索結果との統合

蔵書のあるキーワードだけを残す

亀の育て方を教えて → [‘亀の育て方’, ‘亀の飼い方’, '亀', 'ペットの飼い方', '爬虫類の飼い方', '飼育方法', '家庭での飼い方', '飼育ガイドブッ
ク', '飼育環境', 'ペットケア', '餌の与え方', '水槽の設定', '健康管理', '爬虫類', 'ペット', '獣医', '動物の世話', 'きもの', 'えさのあたえかた', 'すいそうのせってい', 'けんこうかんり’]
図書館の仕組み → ['図書館の仕組み', '図書館', 'ライブラリ', 'library', '図書館学', '図書館員', '図書館管理', '図書館運営', '蔵書管理', '図書館サービス', '図書館資源', '情報学', '情報リテラシー', '公共図書館', '大学
図書館', 'デジタル図書館']

ステップ3 回答文の生成[{'role': 'system','content': 'あなたは図書館の蔵書検索サポーターです。ユーザーから与えられた質問をもとに、次のキーワードをすべて紹介する回答を考えてください。キーワード:' + ",".join(keywords) + '¥n' +'キーワードは必ず[]で囲ってください。' +'次のフォーマットで応答してください。' +'"○○について検索していますか。[キーワード]や[キーワード]で検索してみるのはどうでしょうか。
”そのあと、質問に200文字程度で簡潔に答えてください。
文中でキーワードに適合するものがあれば、それも[]で囲ってください。'},{'role': 'user', 'content': query}]図書館の仕組み→図書館の運営について検索していますか。[図書館の仕組み]や[図書館運営]で検索してみるのはどうでしょうか。
また、図書館のシステムや図書の管理について知りたい場合、[図書館システ
ム]や[管理]、[図書分類]で検索するといいでしょう。図書館の運営は、専門知識を持つ[図書館員]たちが行っています。
彼らは[図書館学]を学び、図書館のシステムやサービスを理解しています。一般に、[公共図書館]のシステムでは、まず図書が分類され、それぞれの本が適切な位置に配置されます。これを[図書分類]と言います。また、[図書館サービス]には貸出、予約、参考情報提供などがあります。これらの[仕組み]を理解し、適切に[図書館運営]を行いながら、利用者にとって使いやすく、心地よい[図書館づくり]を行っています。

ChatGPTと蔵書検索サービスの連携• 検索結果があるキーワードのみを応答に含める• 事前学習なしで図書館の蔵書にあわせた応答セーフガード

現状での課題• 処理時間が比較的長い（30秒程度かかる）→ユーザーインターフェース側で工夫• 自由にしゃべらせるか、画一的に対応するか（誤りをどれくらい許容するか）→蔵書構成を反映することで多少は補正される

費用について• 1回の質問でかかるコスト（OpenAI利用料）
1ステップ 入力 300文字

出力 200文字

2ステップ 入力 150文字

出力 250文字

途中経過の表示入力

150文字 出力 150文字

GPT-4 入力 $0.03/1000文字

出力 $0.06/1000文字

0.45×0.03+0.45×0.06+0.15×0.001+0.15×0.002=0.04×140=5.6円

費用について• 1回の質問でかかるコスト（OpenAI利用料）
1ステップ 入力 300文字

出力 200文字

2ステップ 入力 150文字

出力 250文字

途中経過の表示入力

150文字 出力 150文字

GPT-4 入力 $0.01/1000文字

出力 $0.03/1000文字

0.45×0.01+0.45×0.03+0.15×0.001+0.15×0.002=0.018×140=2.5円

APIを使うと、知識は拡張できる
あるいは、正しい知識を注入できる
並列で大量にリクエストして、その結果を集約したりもできる。

例えば蔵書検索でサポートできそうなこと• 関連キーワードのサジェスト• 上位概念や下位概念の整理• 類似書誌のグループ化、絞り込みの支援• データベースなど他の情報源への誘導• これまで個別に開発されてきた様々な要素が汎用的に実現• 高校生でも読めそうな本。とか聞きたいけど…

ChatGPTで遊んでみて• 知識情報源ではない（正確な情報は、検索したほうが速い）• ロバスト性がある（データ品質が低くてもある程度動く）• 自然言語⇔構造化データの変換が簡単になった• 違う構造のデータをつないだり、加工したりできる• 図書館メタデータとの相性はよさそう
情報をつなぐことで効率的にデータ処理できる

書影をベクトル化・類似検索• 20万冊の書影データをベクトル化• クエリ文字をベクトル化して、距離計算• 書誌情報は一切与えないさいごにChat-GPTと大学図書館• 図書館業務での活用• 図書館サービスでの活用• AIのバックエンドにつながる図書館ユーザーの図書館への要求の変化

図書館をどうつないでいくか

使いたいように使えるようにする！
（利用者の工夫の余地を増やす）

AI時代の図書館サービスのインターフェース
まずは、やってみよう！

Code4Libは、アメリカを中心に活動する図書館関係のプログラマ、システム技術者を中心としたコミュニティです。
2003年の秋にインターネット上のメーリングリストとして発足、2006年からはオフライン（顔をあわせて）でのCode4Libカンファレンスを毎年開催しています。2010年2月に開催されたCode4Lib 2010には、アメリカに加え、日本を含め世界各地から約250名が参加しています。