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
820
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
これだけで丸わかり!LangChain v1.0 アップデートまとめ
os1ma
6
2.2k
Claude Codeが働くAI中心の業務システム構築の挑戦―AIエージェント中心の働き方を目指して
os1ma
9
6k
LangChain Interrupt & LangChain Ambassadors meetingレポート
os1ma
2
860
AIエージェントのフレームワークを見るときの個人的注目ポイント
os1ma
1
840
Cursor AgentによるパーソナルAIアシスタント育成入門―業務のプロンプト化・MCPの活用
os1ma
16
9.4k
AIエージェントキャッチアップと論文リサーチ
os1ma
6
1.9k
Functional APIから再考するLangGraphを使う理由
os1ma
5
950
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
1.1k
LangChain/LangGraphの進化からみるLLMによるAIエージェントの開発
os1ma
2
770
Other Decks in Technology
See All in Technology
I tried making a solo advent calendar!
zzzzico
0
150
「アウトプット脳からユーザー価値脳へ」がそんなに簡単にできたら苦労しない #RSGT2026
aki_iinuma
11
4.8k
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
21k
困ったCSVファイルの話
mottyzzz
0
100
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.9k
旬のブリと旬の技術で楽しむ AI エージェント設計開発レシピ
chack411
1
210
田舎で20年スクラム(後編):一個人が企業で長期戦アジャイルに挑む意味
chinmo
1
1.4k
たかがボタン、されどボタン ~button要素から深ぼるボタンUIの定義について~ / BuriKaigi 2026
yamanoku
1
220
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
2
830
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.4k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
AIエージェントを5分で一気におさらい!AIエージェント「構築」元年に備えよう
yakumo
1
150
Featured
See All Featured
Faster Mobile Websites
deanohume
310
31k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
280
The Art of Programming - Codeland 2020
erikaheidi
57
14k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
210
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
65
35k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.8k
Speed Design
sergeychernyshev
33
1.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
The Limits of Empathy - UXLibs8
cassininazir
1
200
YesSQL, Process and Tooling at Scale
rocio
174
15k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
270
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
ご清聴ありがとうございました