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
670
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
3.3k
LangChain Interrupt & LangChain Ambassadors meetingレポート
os1ma
2
720
AIエージェントのフレームワークを見るときの個人的注目ポイント
os1ma
1
730
Cursor AgentによるパーソナルAIアシスタント育成入門―業務のプロンプト化・MCPの活用
os1ma
16
8.7k
AIエージェントキャッチアップと論文リサーチ
os1ma
6
1.8k
Functional APIから再考するLangGraphを使う理由
os1ma
5
850
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
1.1k
LangChain/LangGraphの進化からみるLLMによるAIエージェントの開発
os1ma
2
660
書籍『LangChainとLangGraphによるRAG・AIエージェント[実践]入門』の紹介
os1ma
2
520
Other Decks in Technology
See All in Technology
関係性が駆動するアジャイル──GPTに人格を与えたら、対話を通してふりかえりを習慣化できた話
mhlyc
0
130
空間を設計する力を考える / 20251004 Naoki Takahashi
shift_evolve
PRO
3
330
動画データのポテンシャルを引き出す! Databricks と AI活用への奮闘記(現在進行形)
databricksjapan
0
140
Goにおける 生成AIによるコード生成の ベンチマーク評価入門
daisuketakeda
2
100
「Verify with Wallet API」を アプリに導入するために
hinakko
1
230
AWSにおけるTrend Vision Oneの効果について
shimak
0
120
定期的な価値提供だけじゃない、スクラムが導くチームの共創化 / 20251004 Naoki Takahashi
shift_evolve
PRO
3
300
about #74462 go/token#FileSet
tomtwinkle
1
290
KAGのLT会 #8 - 東京リージョンでGAしたAmazon Q in QuickSightを使って、報告用の資料を作ってみた
0air
0
200
Why React!?? Next.jsそしてReactを改めてイチから選ぶ
ypresto
10
4.4k
自作LLM Native GORM Pluginで実現する AI Agentバックテスト基盤構築
po3rin
2
250
ACA でMAGI システムを社内で展開しようとした話
mappie_kochi
1
250
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
114
20k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Producing Creativity
orderedlist
PRO
347
40k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Code Review Best Practice
trishagee
72
19k
Building an army of robots
kneath
306
46k
Navigating Team Friction
lara
189
15k
Designing Experiences People Love
moore
142
24k
Mobile First: as difficult as doing things right
swwweet
224
10k
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
ご清聴ありがとうございました