[Failed]大規模言語モデルで自分専用の税理士を作ってみる
2024/2/24 23:40:00
この試みはめんどくさくなって途中で放棄された。
この文書に基づいて行動した結果、何らかの損害が生じたとしても、筆者は責任を取らない。
この文書に基づいて行動する前に「Librahack」について調べることを強く推奨する。
この文書について
この文書の目的
作業ログ
この文書の想定読者
JavaScriptが使えるITエンジニア
いつかやる気が出たときの私
方針
- go.jpドメインに限定して確定申告についてGoogle検索し、確定申告関連の情報が載ったファイルを取得する
- OpenAIのAssistantsに確定申告の情報が載ったファイルを食わせる
- Assistantsのプロンプトをチューニングする
go.jpドメインに限定してGoogle検索し、確定申告関連の情報が載ったファイルを取得する
- 「確定申告 site:go.jp」でGoogle検索する
- 検索結果からURLを抽出する
- 検索結果のURLからファイルをダウンロードする
「確定申告 site:go.jp」でGoogle検索する
Do it!!
検索結果からURLを抽出する
下記スクリプトをGoogle検索したページで開発者コンソールを開いて実行
$$(`a`)
.map(a=>a.href)
.filter(href=>href)
.filter(href=>!/google/.test(href))
結果→Google検索で得られた、確定申告について情報が載っているサイトのURLの配列
検索結果のURLからファイルをダウンロードする
OpenAIのAssistantsに確定申告の情報が載ったファイルを食わせる
400個ぐらいのファイルをアップロードしようとしたらエラーが出た。←いまここ
Note
OpenAIのウェブUIからAssistantsに大量にファイルをアップロードできないので、頑張ってRAGを実装する必要がある。ベクトルDBを用意し、PDFとHTMLから文字列を抽出し、文字列をチャンクに分け、文字列のEmbeddingを計算し、ベクトルDBに格納し、クエリでベクトル検索し、検索結果をLLMと融合させる必要がある。はぁ~めんどくさ。
LanceDBを使えばベクトルDB部分はLambdaで動かせるかもしれない。そうなれば、Agents for Amazon BedrockでLambdaと連携させればイケそう。
大規模言語モデルを動かせる強いGPUを持っているなら、LangChainとかいうのを使っても良い。LanceDBと連携させられる。