見出し画像

GPTs活用:あいまいな質問でも最適なページが見つけ出せるように

「テクノロジーで人々を適切な医療に案内する」をミッションに、医療プラットフォームを提供しているUbie株式会社の医師の白石 達也です。


GPT-4はファイルアップロード機能を備えた事で、データ分析、文書解析を一層容易にしました。
今回は、一般向けの医療情報を提供する「ユビー病気のQ&A」サイトをより使いやすく進化させる一歩として、GPTsを活用して、直感的な質問に対応したページ検索をトライしました。

0. 考えたこと


以下のように「ページタイトル」「該当URL」のセットをcsvファイルにしてChatGPTにアップロードすれば、あいまいな質問に対しても、オススメのページを間違いなくサジェストしてくれるものが作れそうと思った。

titleとURLのリスト

1. GPTsで試してみよう


GPTs=自分のoriginalのGPTが作れるもの
設定の様子。code interpreterもONにしときましょう。これでいけるはず。

Previewで試してみる。今回は「インフルエンザ 何日休む」で調べてみる。

リンクテキストが上手く押せなかった(筆者の環境の問題?)のでURLをテキストで要求。
やったか?
無いやん・・・。

あっさりと嘘をつかれてしまいました・・・・なんでだ?

実行されているコードをみると以下([>_]を押すとみれます)。コードと出力は間違ってなさそうなので、URLは再度出力を依頼したときにおかしくなったのかも。また、「インフルエンザ 何日休む」を調べてほしいのに「インフルエンザ」という単語しか考慮されていない。

# インフルエンザに関連する質問を検索
influenza_questions = byoki_df[byoki_df['question'].str.contains('インフルエンザ')]
influenza_questions

とりあえずURL文字列だけでるように指示してみる。

いったんこれでどうだ
今度はヒットしないぞ

今度はヒットしない。実行コードを確認すると以下。やっていることはほぼあってそう。こういうアルゴリズムで検索してるのね。(コードの意味もChatGPTに聞いています。)

influenza_query = "インフルエンザ"
influenza_rest_query = ["休む", "休息", "日数", "期間"]

influenza_data = data[data['question'].str.contains(influenza_query)]
influenza_rest_data = influenza_data[influenza_data['question'].str.contains('|'.join(influenza_rest_query))]

influenza_rest_data.head()

ちなみにファイルみてないだろ、っていうときもありました。

analyzing….っていうのが出なかったので参照していない。

2. 修正案を考える


いまのところ起こっていることは以下。

  1. アップロードされたファイルをきちんと読まない

  2. 検索文字列がうまくマッチしない

  3. URLの出力がうまくいかない

揺らぎがでる部分を明示的にしないといけないなあ、と思ったので以下のように解決策を考えた。

またユースケースを考えると、検索結果は多少外れたものも含めて複数返ってきたほうがよさそう。
いろいろ加味してinstructionを以下のように修正しました。

①与えられた質問から、[病気あるいは症状の名前][知りたいこと]を抽出します。(出力不要)
②抽出した[病気あるいは症状の名前]の同義語を準備します。また抽出した[知りたいこと]の同義語を準備します。また[知りたいこと]を意味する漢字を準備します。(出力不要)
③アップロードしたファイル「byoki.csv」のtitle列で、②で準備したワードそれぞれで検索します。検索でヒットしたtitleと対応するURLとヒットした合計回数をリストにします。(出力不要)
④リストを合計回数順が多いものから最大10個、以下の形で出力してください。

「おすすめのページ
title: [title]
URL:  [URL]URLのテキストで出力。50文字程度になるので途切れないように注意が必要)」

検索については、同義語などの抽出自体をGPTに任せて、抽出したものを用いたアルゴリズムはこっちで指定することにしました。検索の仕方の指示はもっといいのがありそうです。

これでどうだろう・・?

いけてそう・・?URLは・・・・?
いけてる!

3. 終わりに


「これ、なんとなく生成AI/ChatGPTでできそう!」なノリでやってみました。こういった試行がサクッとできるので最高ですね。
「GPTはhallucinationを起こす」のですが、作りながらに起こらないやり方を考えて形にしていけば、生成AIを使ったいいサービスができるんじゃないかと思いました。

検索の部分は、同義語を出したりはGPTが得意だろうと思って今回のようなinstructionにしました。ある程度、あいまいな質問でも答えてくれそうです。GPTsでここまでできたので、次はAssistants APIを使ってLINE botなどに適応できないか試してみようと考えています。

XX. 会社の採用情報


医療の在り方が変わっていく、変えていく、そんな流れを作る一人になりませんか。どんどんとサービスと事業と大きくなっていく中、Ubieでは一緒に働きたいメンバーをまだまだ募集しています。医者も絶賛募集中です。

特に「より多くの人を健康にしたい」「いまの医療システムをなんとか良くしないと」と思っている方におすすめです。診療科は問いません。

興味を持っていただけた方はカジュアル面談もご用意しています。お気軽にご登録お待ちしています。

参考:提供するサービス一覧

▽生活者向け 症状検索エンジン「ユビー」
日本版:

US版:

▽医療機関向け「ユビーメディカルナビ」


いいなと思ったら応援しよう!