Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Difyのソースコードリーディングを続けて得た知見と感想
Search
os1ma
October 27, 2024
Technology
960
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
これだけで丸わかり!LangChain v1.0 アップデートまとめ
os1ma
6
3k
Claude Codeが働くAI中心の業務システム構築の挑戦―AIエージェント中心の働き方を目指して
os1ma
10
7.2k
LangChain Interrupt & LangChain Ambassadors meetingレポート
os1ma
2
1.1k
AIエージェントのフレームワークを見るときの個人的注目ポイント
os1ma
1
950
Cursor AgentによるパーソナルAIアシスタント育成入門―業務のプロンプト化・MCPの活用
os1ma
16
10k
AIエージェントキャッチアップと論文リサーチ
os1ma
7
2k
Functional APIから再考するLangGraphを使う理由
os1ma
5
1.1k
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
1.2k
LangChain/LangGraphの進化からみるLLMによるAIエージェントの開発
os1ma
2
880
Other Decks in Technology
See All in Technology
LiDAR SLAMの実装とセンサ融合 ~Lie群からContinuous-Time LIOまで~
naokiakai
1
1k
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
12
5.5k
Keeping applications secure by evolving OAuth 2.0 and OpenID Connect
ahus1
PRO
1
150
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
110
プロンプト_きのこカンファレンス2026_LT
yurufuwahealer
0
150
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
5
1.7k
Docker Desktop不要の時代が来る? WSL標準の「wslc」で Linuxコンテナを動かしてみた.
ueponx
0
840
ループエンジニアリングでE2Eテストを実践
noriyukitakei
0
320
インフラ寄りSREでも 開発に踏み出せる〜境界を越えてユーザー体験に向き合いたい〜
sansantech
PRO
2
3.2k
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
3
200
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
160
勉強会企画をアプリで構造化してみた 〜そこで見えた、AIとの付き合い方〜 / I've structured a study group plan using an app.
pauli
0
340
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
650
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
310
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Exploring anti-patterns in Rails
aemeredith
3
440
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
180
Producing Creativity
orderedlist
PRO
348
40k
We Have a Design System, Now What?
morganepeng
55
8.2k
Into the Great Unknown - MozCon
thekraken
41
2.6k
エンジニアに許された特別な時間の終わり
watany
107
250k
The Cult of Friendly URLs
andyhume
79
6.9k
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
ご清聴ありがとうございました