LangChainで専門分野のチャットボットの精度を上げる試み【①要件編】

Featured image of the post

概要

専門分野のチャットボットを作るシリーズの第1回目!

過去にやったこと

以前に「OpenAIのAPI」と「LangChain」を使って独自データについて回答してくれるサンプルプログラムを作成した

💡
以前のプログラムはこちら。

🚫 ただいま記事作成中です💭

このサンプルプログラムを改造して、より膨大な独自データを使ったプログラムを作成してみたが思うような回答が得られなかった…😫

これからやること

少しでも精度を上げるため自分なりに試行錯誤したことを共有する😊

Image in a image block

背景

筆者のスキル
  • プログラミング歴5年目
  • Web系は初心者に毛が生えた程度
  • AIはChatGPTの流行に便乗してAPIを少し触った程度
  • LangChainのドキュメントは一通り読んである程度理解した(つもり)

前提

自社で「myApp(仮称)」という表計算ソフトを開発している🧑‍💻

⚠️
特定を避けるため「表計算ソフト」と書いたが、実際はかなり専門的なソフトを扱った。

実現したいこと

カスタマーサポートのお問い合わせが多くて大変💦

少しでもお問い合わせを減らしたい😊

今回作るもの

お問い合わせを減らすため自社ソフトの質問に答えるチャットボットが作りたい✅

独自データ

社内には、以下の独自データがある✅

データの内容 ファイル形式 データ数
自社ソフトのQ&A CSV 4000個のQ&A
自社ソフトの解説書 PDF 4000ページのPDF

Image in a image block

※ファイルは複数に分かれている。

💡
「4000個のQ&A」と「4000ページの解説書」がある!

精度が悪い原因

💡
精度を上げるにあたって、元のプログラムのどこが悪いのか考えてみた!

改良前のプログラムで回答の精度がよくない原因として「複雑なソフトのチャットボットを作ろうとしているため」だと予想✅

具体的には…
  • 専門用語が多くAIが言葉を理解できないのでは…💭
  • 解説書が4000ページあるくらい多機能で複雑なソフト。ピンポイントな回答を得るのは難しいのでは…💭

💡
専門性が高く、データ量が多いので難易度が高そう…

使用技術

  • OpenAI API(有料)
  • LangChain

💡
言語はTypeScritpで開発したが、精度を上げる考え方はPythonでも同じ!

次回

今回はここまで!

次回から実際に精度を上げるための工夫をしていく〜🙌