Upgrade to Pro — share decks privately, control downloads, hide ads and more …

あらゆるサイトを クイズにするサイトをつくった

ugo
August 25, 2023

あらゆるサイトを クイズにするサイトをつくった

当日のLTとは一部変更を行なっています

ugo

August 25, 2023
Tweet

More Decks by ugo

Other Decks in Programming

Transcript

  1. アプリケーションについて 
 構成
 • バックエンド
 ◦ Python、FastAPI、LangChain
 ◦ クイズAPIサーバー
 ◦

    OpenAI APIでGPT-4を利用
 • フロント
 ◦ Next.js
 ◦ クイズAPIサーバーへリクエストを送る 
 • データベース
 ◦ Supabase
 ◦ 生成したクイズを保存して使い回す 
 • LLMのログ管理
 ◦ LangSmith
 ◦ LangChainでのログを保存
 Frontend
 Backend
 LangChain
 DB
 Log(LLM)
 LangSmith
 GPT-4

  2. Langchainとは
 言語モデルを利用したアプリケーションを開発するためのフレームワーク (https://docs.langchain.com/docs/より引用)
 • LLMを用いた処理をモジュール化 = Chain
 ◦ Chainを組み合わせることでLLM応答を次のプロンプトに含める 


    • ドキュメント、Webサイトを読み込む機能もあるので採用 
 ※https://book.st-hakky.com/docs/chains-of-langchain/ の例を引用
 {product}を作る会社の社名 として、何かいいものはない ですか?
 日本語の社名でお願いしま す。
 {company_name}という 会社名の企業のキャッチ コピーを考えてください。
 カラフルな靴 下
 足元を彩る、
 カラフルソックス工房
 カラフルソックス工房 
 Chain
 Chain

  3. LangChainのログをみたい 
 LangSmithをいれて、LLMのログを保存
 • https://docs.smith.langchain.com/
 • LLMの実行ログを保存、閲覧 
 ◦ 応答がみれるようになった

    
 • LLMのレスポンスタイム、 Tokenの消費量が見れる
 ◦ アプリケーション、環境ごとに APIに利用料金がわかる

  4. ログから改善策 
 DB使う
 • Tokenの消費が多いので、 APIの料金を節約できるなら、 DBつかうのはありだと判断できた 
 ◦ Supabaseにクイズを保存する


    ◦ 同じURLに対して再度クイズを生成する必要がなくなる 
 • レスポンスタイムも2回目からは早くなる 
 ◦ DBから取得する時間 <<<<<<<<<< クイズを生成する時間
 

  5. ログから改善策 
 エラーがおおい → 最適なModelの選定
 • GPT-3.5-Turboではトークン数が足りない (max 4,096 tokens)


    • GPT-3.5-Turbo-16k(max 8,192 tokens)
 ◦ トークン数は足りた。応答がエラーになりがち 
 • GPT-4 (max 8,192 tokens) ◦ トークン数も足りた。応答エラーも減った 
 最大トークン数は https://platform.openai.com/docs/models/より引用