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

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

Avatar for ugo ugo
August 25, 2023

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

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

Avatar for ugo

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/より引用