Open26

読者コミュニティ|リポジトリ連携していない本2

igarashiigarashi

OpenAI

Website Q&A With Embedding

https://platform.openai.com/docs/tutorials/web-qa-embeddings

やっていること

  • openai.comのページをクロールしてページごとのテキストデータを保存する
  • テキストデータを適度なtoken長になるように分割する
  • 分割したテキストをembeddingする(ここまでが準備)
  • 質問を入力する。
  • 質問をembeddingする
  • 質問のベクトルに近いテキストを取得する
  • Completion APIのプロンプトに質問と類似するテキストをできるだけ詰め込む
  • テキストの中から質問に対する回答を返すように設定する

File Q&A

解説ページはまだないけどGitHubにコードがあるのでメモ
https://github.com/openai/openai-cookbook/tree/main/apps/file-q-and-a

やっていること

  • アップロードされたファイルからテキストを抽出
  • テキストをいい感じの長さのチャンクに分割する。分割の区切り文字には . を使っているので、日本語のテキストだとうまく分割されない。
  • チャンクをembedding APIでベクトルに変換して保存する
  • 入力された質問に対する回答の仕方は「Website Q&A With Embedding」とほぼ同じ
  • ローカル版(ブラウザのメモリにデータを保存)と、サーバでデータを保存する版がある。
  • サーバーの方はベクトル検索エンジンにPineconeを使用する。

OpenAI

Website Q&A With Embedding

https://platform.openai.com/docs/tutorials/web-qa-embeddings

やっていること

  • openai.comのページをクロールしてページごとのテキストデータを保存する
  • テキストデータを適度なtoken長になるように分割する
  • 分割したテキストをembeddingする(ここまでが準備)
  • 質問を入力する。
  • 質問をembeddingする
  • 質問のベクトルに近いテキストを取得する
  • Completion APIのプロンプトに質問と類似するテキストをできるだけ詰め込む
  • テキストの中から質問に対する回答を返すように設定する

File Q&A

解説ページはまだないけどGitHubにコードがあるのでメモ
https://github.com/openai/openai-cookbook/tree/main/apps/file-q-and-a

やっていること

  • アップロードされたファイルからテキストを抽出
  • テキストをいい感じの長さのチャンクに分割する。分割の区切り文字には . を使っているので、日本語のテキストだとうまく分割されない。
  • チャンクをembedding APIでベクトルに変換して保存する
  • 入力された質問に対する回答の仕方は「Website Q&A With Embedding」とほぼ同じ
  • ローカル版(ブラウザのメモリにデータを保存)と、サーバでデータを保存する版がある。
  • サーバーの方はベクトル検索エンジンにPineconeを使用する。
igarashiigarashi

どちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい
どちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい
どちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい
どちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい
どちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい
らでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい
いどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい
どちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい
いどちらでもいい
どちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいいどちらでもいい