読者コミュニティ|リポジトリ連携していない本2
本の感想や質問をお気軽にコメントしてください。
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
Hello
OpenAI
Website Q&A With Embedding
- OpenAIのサンプル実装
- GitHubにコードがある(Colabのノートブックもある)
https://github.com/openai/openai-cookbook/tree/main/apps/web-crawl-q-and-a
やっていること
- openai.comのページをクロールしてページごとのテキストデータを保存する
- テキストデータを適度なtoken長になるように分割する
- 分割したテキストをembeddingする(ここまでが準備)
- 質問を入力する。
- 質問をembeddingする
- 質問のベクトルに近いテキストを取得する
- Completion APIのプロンプトに質問と類似するテキストをできるだけ詰め込む
- テキストの中から質問に対する回答を返すように設定する
File Q&A
解説ページはまだないけどGitHubにコードがあるのでメモ
やっていること
- アップロードされたファイルからテキストを抽出
- テキストをいい感じの長さのチャンクに分割する。分割の区切り文字には
.
を使っているので、日本語のテキストだとうまく分割されない。 - チャンクをembedding APIでベクトルに変換して保存する
- 入力された質問に対する回答の仕方は「Website Q&A With Embedding」とほぼ同じ
- ローカル版(ブラウザのメモリにデータを保存)と、サーバでデータを保存する版がある。
- サーバーの方はベクトル検索エンジンにPineconeを使用する。
OpenAI
Website Q&A With Embedding
- OpenAIのサンプル実装
- GitHubにコードがある(Colabのノートブックもある)
https://github.com/openai/openai-cookbook/tree/main/apps/web-crawl-q-and-a
やっていること
- openai.comのページをクロールしてページごとのテキストデータを保存する
- テキストデータを適度なtoken長になるように分割する
- 分割したテキストをembeddingする(ここまでが準備)
- 質問を入力する。
- 質問をembeddingする
- 質問のベクトルに近いテキストを取得する
- Completion APIのプロンプトに質問と類似するテキストをできるだけ詰め込む
- テキストの中から質問に対する回答を返すように設定する
File Q&A
解説ページはまだないけどGitHubにコードがあるのでメモ
やっていること
- アップロードされたファイルからテキストを抽出
- テキストをいい感じの長さのチャンクに分割する。分割の区切り文字には
.
を使っているので、日本語のテキストだとうまく分割されない。 - チャンクをembedding APIでベクトルに変換して保存する
- 入力された質問に対する回答の仕方は「Website Q&A With Embedding」とほぼ同じ
- ローカル版(ブラウザのメモリにデータを保存)と、サーバでデータを保存する版がある。
- サーバーの方はベクトル検索エンジンにPineconeを使用する。
どちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい
どちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい
どちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい
どちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい
どちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい
らでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい
いどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい
どちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい
いどちらでもいい
どちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい