Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Difyのソースコードリーディングを続けて得た知見と感想
Search
os1ma
October 27, 2024
Technology
1k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Difyのソースコードリーディングを続けて得た知見と感想
2024/10/28 #BLUEISH_LT会
https://blueish.connpass.com/event/333518/
os1ma
October 27, 2024
More Decks by os1ma
See All by os1ma
9月24日発売!書籍『LLMアプリケーション評価駆動開発』の歩き方 - 書籍紹介 - 第2部「実践編」
os1ma
3
780
そのAIエージェント、役に立っていますか?―AIエージェントの評価を小さく始めるためのヒント
os1ma
2
1.1k
コーディングエージェントのハーネスから見る、AIエージェントの現在
os1ma
2
360
これだけで丸わかり!LangChain v1.0 アップデートまとめ
os1ma
6
3.2k
Claude Codeが働くAI中心の業務システム構築の挑戦―AIエージェント中心の働き方を目指して
os1ma
10
7.5k
LangChain Interrupt & LangChain Ambassadors meetingレポート
os1ma
2
1.2k
AIエージェントのフレームワークを見るときの個人的注目ポイント
os1ma
1
1k
Cursor AgentによるパーソナルAIアシスタント育成入門―業務のプロンプト化・MCPの活用
os1ma
16
10k
AIエージェントキャッチアップと論文リサーチ
os1ma
7
2.1k
Other Decks in Technology
See All in Technology
AIコーディングはじめました
miso
0
150
今から始めるAWS環境の暗号移行 - ポスト量子時代に備える
sato4mi
0
150
Lint の層を組み直した話
bengo4com
3
310
DBTS2026 盛り上がってますか!?Databricksが実現するAI時代のデータ基盤
akuwano
1
130
AWSを利用する上で知っておきたい名前解決の話 2026
nagisa53
4
2.4k
Copilot Coworkで「みのるん式」やってみた
minorun365
PRO
2
1.5k
AI時代に求められる優秀なTechLeadの振る舞い
pospome
10
13k
GCASアップデート(202607-202610)
techniczna
1
120
バックオフィスに染み出すTypeScript ── clasp で安全に仕組みを作る
nealle
1
180
新米を「売り越さない」、Aurora DSQLで作る在庫ゼロ死守の限定ドロップEC
yama3133
0
180
IoTとは〜? 数字で見るSORACOM UG【SORACOM UG Explorer 2026】
soracom
PRO
0
180
生成AI時代のIAMのマニアックな話
takuros
6
1.9k
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
620
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
60k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
610
How STYLIGHT went responsive
nonsquared
100
6.4k
Designing for Timeless Needs
cassininazir
1
550
Facilitating Awesome Meetings
lara
57
7.2k
Bash Introduction
62gerente
615
220k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.4k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
1k
Test your architecture with Archunit
thirion
2
2.5k
Transcript
2024/10/28 #BLUEISH_LT会 Difyのソースコードリーディングを 続けて得た知見と感想
自己紹介 大嶋勇樹(おおしまゆうき) https://x.com/oshima_123 株式会社ジェネラティブエージェンツ取締役CTO/Co-founder 大規模言語モデルを組み込んだアプリケーションやAIエージェントの開発を実施 個人ではエンジニア向けの勉強会開催やUdemy講座の作成など 勉強会コミュニティStudyCo運営 「ChatGPT/LangChainによるチャットシステム構築[実践]入門」(共著)
2024/10/28 #BLUEISH_LT会 Difyのソースコードリーディングを 続けて得た知見と感想
Difyとは • Difyは、ノーコードのLLMアプリケーション開発プラットフォームです • Apache License 2.0をベースとしたライセンスで、GitHubで公開されています • クラウドサービスとして使用することもできれば、自身で環境構築して使うこともできます DifyのWebサイト:https://dify.ai/
Difyのワークフローの例
ここ数カ月の間、毎週Difyのソースコードリーディング会をしてきました • 毎週木曜のランチタイム(昼12時〜13時)の時間に開催 • 今日のLT大会でも登壇予定の戸塚さんと2人で実施 • 主催者も初見の状態でDifyのソースコードを読んでいく • 8月末から今までに9回実施して、来週で10回目
過去9回のテーマ • Difyソースコードリーディング #1 - Difyのシステム構成をざっくり把握 • Difyソースコードリーディング #2 -
Difyの開発環境を起動してみる • Difyソースコードリーディング #3 - APIのリクエストからレスポンスまで • Difyソースコードリーディング #4 - モデルやツールのYAMLファイルの扱いを読み解く • Difyソースコードリーディング #5 - ナレッジベース・RAGの実装を読み解く • Difyソースコードリーディング #6 - DSLのYAMLファイルの扱いを読み解く • Difyソースコードリーディング #7 - ビルドやリリース時のバージョン番号付けなどを読み解く • Difyソースコードリーディング #8 - Difyのコード実行環境「dify-sandbox」 • Difyソースコードリーディング #9 - Difyのワーカーは何をしているのか この中でとくに面白かった内容を3つほどピックアップして紹介します
ピックアップ1)Difyのシステム構成 • LLMを組み込んだWebアプリケーションを実装する場合の非常に典型的な構成でした https://github.com/langgenius/dify/blob/main/docker/docker-compose.png • リバースプロキシ(nginx) • フロントエンド(Next.js) • バックエンドAPI(Flask)
• リレーショナルデータベース (PostgreSQL) • ワーカー(Celery) • キャッシュ/ブローカー(Redis) • ベクトルデータベース(Weavite等)
ピックアップ1)Difyのシステム構成 • コントリビュータ向けのドキュメントでは、ソースコードの構成などもまとめられています https://github.com/langgenius/dify/blob/main/CONTRIBUTING_JA.md 実運用されているある程度大きなアプリケーションのソースコードは公開されているものが少なく、 LLMアプリケーションの実装例として貴重なリソースだと思います
ピックアップ2)モデルやツールの追加方法 • LLMアプリケーションでは、新モデルがリリースされた際に素早くサポートしたり、 次々とさまざまなツールと統合していきたい場合が多いです • DifyではYAMLファイルを記述することで簡単にモデルやツールを追加できる仕組みが 実装されています gpt-4o-2024-08-06をサポートするためのYAMLファイルの一部 https://github.com/langgenius/dify/blob/main/api/core/model_ runtime/model_providers/openai/llm/gpt-4o-2024-08-06.yaml
ピックアップ3)dify-sandbox • Difyでは、PythonやJavaScriptのコードをワークフロー内で実行することができます • ユーザーが入力したコードを隔離して実行するサンドボックス環境の実装が公開されています chrootによる実行環境の隔離や Seccompによるシステムコールの制限 https://github.com/langgenius/dify-sandbox
Difyソースコードリーディングの全体的な感想 • LLMアプリケーションの公開されている実装例として、読んでみると参考になる点も多いです (実運用されているある程度大きなアプリケーションのコードを読めるのはめずらしい) • 社内ChatGPTのようなアプリケーションをかなり作り込んでいったようなものという印象も (モデル追加への対応など、ほしくなりそうな機能がたくさん) • アプリケーション開発におけるPythonのTipsやエコシステムの知見も得られました 来週木曜日にも開催予定なので、ご興味あればぜひご視聴ください
https://dify-mokumoku.connpass.com/event/335249/
(宣伝)LangChainとLangGraphの書籍を出します! 『LangChainとLangGraphによるRAG・AIエージェント[実践]入門』 西見公宏、吉田真吾、大嶋勇樹 [著] • OpenAIのチャットAPI プロンプトエンジニアリング LangChainの基礎 • 検索クエリの工夫 リランクモデル ハイブリッド検索 • LangSmithを使ったRAGアプリケーション評価
• LLMを活用したAIエージェントの起源と変遷 • LangChain/LangGraphによるエージェントデザインパターンの実装 11月9日発売予定で、Amazonで予約受付中です https://www.amazon.co.jp/dp/4297145308
ご清聴ありがとうございました