Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ChatGPTを使った 社内アシスタントBOTを作りました / ChatGPT Assista...
Search
howdy39
May 12, 2023
Programming
0
530
ChatGPTを使った 社内アシスタントBOTを作りました / ChatGPT Assistant Bot
howdy39
May 12, 2023
Tweet
Share
More Decks by howdy39
See All by howdy39
Slackbot × RAG で実現する社内情報検索の最適化
howdy39
2
380
AI新時代 情シスが向き合うべきAI活用戦略
howdy39
0
56
GAS x スプレッドシート x Looker Studio を組み合わせたデバイス管理 / DeviceMangent with GAS, SpreadSheet, Looker Studio
howdy39
0
1.1k
WebPagetestで始めるパフォーマンス計測 / Performance measurement starting with WebPagetest
howdy39
4
560
Storybookを用いたVue.js共通コンポーネント開発との戦い / stores-fights-storybook
howdy39
5
8.4k
gas-webpagetestで パフォーマンス計測を始めよう / get-started-measuring-performance-with-gas-webpagetest
howdy39
0
2.3k
Promise
howdy39
1
300
カラーユニバーサルデザイン / color universal design
howdy39
0
760
Geolocation API
howdy39
0
96
Other Decks in Programming
See All in Programming
CSC509 Lecture 04
javiergs
PRO
0
160
CSC509 Lecture 03
javiergs
PRO
0
150
Golang と Erlang
taiyow
7
1.7k
今日で分かる!カスタムコップの作り方
krpk1900
2
240
cgroup v2 support in Kubeadm
kentatada
0
210
Scan with Decoupled Look-back and Onesweep Radix Sort
shocker_0x15
0
150
自分だけの世界を創るクリエイティブコーディング / Creative Coding: Creating Your Own World
chobishiba
2
2.1k
もう実家に手頃な情シス娘は不要!Bedrockでもう一人の娘を作る
komakichi
2
140
watsonx.ai Dojo #3 プロンプトエンジニアリング入門
oniak3ibm
PRO
0
350
Going Staff - Keynote edition
pragtob
0
350
tc39 x jsconf.jp Panel Discussion 2024
yosuke_furukawa
PRO
0
110
CSC305 Lecture 09
javiergs
PRO
0
110
Featured
See All Featured
For a Future-Friendly Web
brad_frost
174
9.4k
Pencils Down: Stop Designing & Start Developing
hursman
119
11k
Why You Should Never Use an ORM
jnunemaker
PRO
53
9k
Code Reviewing Like a Champion
maltzj
519
39k
Building Adaptive Systems
keathley
38
2.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
26
700
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
504
140k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
40
2.1k
Ruby is Unlike a Banana
tanoku
96
11k
No one is an island. Learnings from fostering a developers community.
thoeni
19
2.9k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
355
29k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Transcript
ChatGPTを使った 社内アシスタントBOTを作りました STORES 株式会社 中野 達也 1
自己紹介 STORES 株式会社 IT本部マネージャー 職種:コーポレートエンジニア といいつつなんでも屋なので オフィス増床のプロジェクトマネージャー アドベントカレンダーのプロジェクトオーナー などもやってたりします 中野
達也 (@howdy39) 2 2
お店のデジタル化を支援する、5つのプロダクト。 ネットショップ開設・運営 お店のキャッシュレス オンライン予約システム POSレジ 店舗アプリ作成 STORES PRODUCTS 3 3
https://jobs.st.inc 絶賛採用中です! 4 4
どんなBOTをつくったの? ユーザー視点から仕組みを解説 事前にベクトルデータをDBに入れておく際のポイント 01 02 03 目次 5
どんなBOTをつくったの? 6
どんなBOT? Slackで質問を投げかけると社内のドキュメントを読み込んで回答してくれるBOT (バックオフィスや社内ITの情報のみ) 7 7
BOTがあることで、社員のドキュメントを探すコストが低下 8 8
ユーザー視点から仕組みを解説 9
ユーザー視点から仕組みを見ていこう パソコンがなにもし てないのにこわれま した パソコンがなにもし ていないのに故障し た場合は、情シスに 相談してください。 ここがよくわからな い
10 10 ユーザー BOT ChatGPT
実はプロンプトをいじってるだけ パソコンがなにもし てないのにこわれま した パソコンがなにもし ていないのに故障し た場合は、情シスに 相談してください。 下記の情報を使って簡潔に回 答してください。
情報:パソコンが故障した場合 は、情シスに相談。 質問:パソコンがなにもしてな いのにこわれました 回答: パソコンがなにもし ていないのに故障し た場合は、情シスに 相談してください。 11 11 ユーザー BOT ChatGPT
実際にChatGPT(3.5)に聞いてみる 12 12
情報部分に読み込ませたい内容を全部入れればいい? 下記の情報を使って簡潔に回答してくだ さい。 情報:読み込ませたい内容。読み込ませ たい内容。読み込ませたい内容。読み 込ませたい内容。読み込ませたい内容。 読み込ませたい内容。読み込ませたい 内容。 ・・・ ・・・
質問:パソコンがなにもしてないのにこわ れました 回答: プロンプトの情報部分 に読み込ませたい内容 を全部いれればいいの かな? ダメです。 ChatGPTに投げられる 文字数(トークン数)に 制限があるためです。 13 13
トークンについて(1/2) モデルによって違います が、APIで使うのに一般的 なChatGPT3.5は4,096 トークンが最大トークン数 です。 日本語だと大体2,700文字 です。 https://platform.openai.com/tokenizer 14
14
トークンについて(2/2) プロンプト全体で2,700文 字なので、質問などを含め たテキストも考慮すると、情 報に入れられるのは実質 2,000文字程度になりま す。 下記の情報を使って簡潔に回答してくだ さい。 情報:ここは2,000文字程度が限界
質問:パソコンがなにもしてないのにこわ れました 回答: 15 15
たくさんの記事からどうやって特定の文章(情報)を取得するの?(1/2) どういう仕組みで情報に入 れたい2,000文字をもって くるの? そこででてくるのが Embedding(埋め込み)で す。 16 16
Embedding(埋め込み)はざっくりいうと 文章の方向性をベクトルに変換すること。 パソコンが壊れた。 を例にすると ・パソコンに関するベクトル ・故障に関するベクトル を持ったベクトルに変換するイメージ 質問のベクトル情報と事前に登録しておい たドキュメントのベクトル情報が近い文章 を探せばOK
パソコンが故障した場合 は、情シスに相談。 たくさんの記事からどうやって特定の文章(情報)を取得するの?(2/2) 17 17 パソコン 故障 スマホが故障した場合 は〜 パソコンの交換申請は〜 パソコン、故障 に関するベクトル 情報を探せばいい
つまり全体の流れはこうなる(1/3) パソコンがなにもし てないのにこわれま した パソコンがなにもしてな いのにこわれました (Embedding) パソコン・故障の ベクトル情報 18
18 ユーザー BOT ChatGPT 質問をそのままEmbeddingする(ベクトル化する)
つまり全体の流れはこうなる(2/3) パソコン・故障の ベクトル情報 パソコンが故障した 場合は、情シスに相 談。 19 19 BOT ベクトル特化型DB
ベクトルをもとに文章を取得する
つまり全体の流れはこうなる(3/3) パソコンがなにもし てないのにこわれま した パソコンがなにもし ていないのに故障し た場合は、情シスに 相談してください。 下記の情報を使って簡潔に回 答してください。
情報:パソコンが故障した場合 は、情シスに相談。 質問:パソコンがなにもしてな いのにこわれました 回答: パソコンがなにもし ていないのに故障し た場合は、情シスに 相談してください。 20 20 ユーザー BOT ChatGPT 文章をプロンプトに入れる
事前にベクトルデータをDBに入れておく際のポイント 21
大きな文章(記事) 大きな文章を分割してベクトルDBに格納する 例)1,000トークンずつ の文章に分割 22 22 ベクトル特化型DB Embedding ・ベクトル ・文章
こうすることで複数の情報源を組み合わせることが可能に 下記の情報を使って簡潔に回答してください。 情報: ・1番目ベクトルが近い文章( 1,000トークン) ・2番目ベクトルが近い文章( 1,000トークン) ・3番目ベクトルが近い文章( 1,000トークン) 質問:パソコンがなにもしてないのにこわれました
回答: 最大4,096トークン 23 23
関連記事に2つの記事がでてたのはこれが理由 24 24
まとめ 25 25 仕組み プロンプトに情報欄を作ってそれを一緒に渡しているだけ 事前準備 ドキュメントを細切れにしてベクトルDBに入れておく必要がある 質問時 1. 質問内容をEmbeddingを使ってベクトル化する
2. 質問内容のベクトルを使ってベクトルDBから近い情報を取得 3. 情報を含めてChatGPTに質問を投げる
ご清聴ありがとうございました! 26