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
4
540
Difyのソースコードリーディングを続けて得た知見と感想
2024/10/28 #BLUEISH_LT会
https://blueish.connpass.com/event/333518/
os1ma
October 27, 2024
Tweet
Share
More Decks by os1ma
See All by os1ma
Claude Codeが働くAI中心の業務システム構築の挑戦―AIエージェント中心の働き方を目指して
os1ma
9
2.6k
LangChain Interrupt & LangChain Ambassadors meetingレポート
os1ma
2
660
AIエージェントのフレームワークを見るときの個人的注目ポイント
os1ma
1
650
Cursor AgentによるパーソナルAIアシスタント育成入門―業務のプロンプト化・MCPの活用
os1ma
16
8.3k
AIエージェントキャッチアップと論文リサーチ
os1ma
6
1.7k
Functional APIから再考するLangGraphを使う理由
os1ma
5
800
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
1k
LangChain/LangGraphの進化からみるLLMによるAIエージェントの開発
os1ma
2
610
書籍『LangChainとLangGraphによるRAG・AIエージェント[実践]入門』の紹介
os1ma
2
470
Other Decks in Technology
See All in Technology
僕たちが「開発しやすさ」を求め 模索し続けたアーキテクチャ #アーキテクチャ勉強会_findy
bengo4com
0
2.4k
九州の人に知ってもらいたいGISスポット / gis spot in kyushu 2025
sakaik
0
160
AI時代の経営、Bet AI Vision #BetAIDay
layerx
PRO
1
2k
【新卒研修資料】数理最適化 / Mathematical Optimization
brainpadpr
27
13k
Backlog AI アシスタントが切り開く未来
vvatanabe
1
130
UDDのススメ - 拡張版 -
maguroalternative
1
520
全員が手を動かす組織へ - 生成AIが変えるTVerの開発現場 / everyone-codes-genai-transforms-tver-development
tohae
0
170
마라톤 끝의 단거리 스퍼트: 2025년의 AI
inureyes
PRO
1
740
Kiroでインフラ要件定義~テスト を実施してみた
nagisa53
3
350
Amazon Q と『音楽』-ゲーム音楽もAmazonQで作成してみた感想-
senseofunity129
0
140
薬屋のひとりごとにみるトラブルシューティング
tomokusaba
0
320
いかにして命令の入れ替わりについて心配するのをやめ、メモリモデルを愛するようになったか(改)
nullpo_head
7
2.6k
Featured
See All Featured
Embracing the Ebb and Flow
colly
86
4.8k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
450
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
The Language of Interfaces
destraynor
158
25k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
What's in a price? How to price your products and services
michaelherold
246
12k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
Become a Pro
speakerdeck
PRO
29
5.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
ご清聴ありがとうございました