openaiのapiでchatbot作りたい時

投稿者:

以下の記事を参考にした

https://www.mlq.ai/fine-tuning-gpt-3-question-answer-bot/

処理の流れとしては

質問をリクエスト→Embeddingから類似するQAを検索→CompletionAPIにQAを埋め込んで質問に答えさせるという感じ

Fine-tuningとか使うかとおもったけど、QAボットくらいならこれで良いみたい

Embeddingというのはベクトル検索のために必要なやつで、まぁ検索のための情報を計算してくれるって感じ

これにFAQのCSVとかを食わせて、情報を追加する

サンプルコードみたら何となく分かると思う

https://platform.openai.com/docs/guides/embeddings/what-are-embeddings

というわけで、大体のChatbot作るための流れは

FAQをCSVとかに出力→データを掃除(装飾など消す)→Embedding作成→サンプルコードと同じように実装していく

細かいところはサービス用にちょいちょい変える必要があると思う

CSVだとメンテ性が悪いのでベクトル検索できるサービスにおくなど

JSで実装する場合

↓のようなライブラリがあれば便利

・CSV読むときにdanfojs

https://github.com/javascriptdata/danfojs

・絶対いるopenai-node

https://github.com/openai/openai-node

・ベクトル検索するときにcosine-similarity

https://github.com/compute-io/cosine-similarity

あとサンプルコードでembeddings_utilsみたいなのが出てくるがそういうのは必要あれば自分で書き換える

https://github.com/openai/openai-python/blob/main/openai/embeddings_utils.py

あとデフォルトのpromptだと適当なURLを生成することがあったので(hallucination)、そのへんはcontextにないURLを生成するな、contextに存在する場合のみそのまま提供することはOK、みたいな感じの命令で防げる

(でも命令の仕方によってはまだ適当なURL出してくるので調整が必要)

OpenAI Gym / Baselines 深層学習・強化学習 人工知能プログラミング 実践入門