「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- 私もLangChainの書籍を読み、そこからLLMのPEのレシピを抽出しましたが(→ LLMのPE)、
その後、単純にWebAPI経由でLLMを呼び出すだけの「Hello World」ならぬ「Hell World」で挫折しました。
詳細 †
- プログラマーが LLM をプログラムに簡単に統合できるようにする抽象化ラッパー
- 物事をシンプルにするどころか、過剰な設計 / 依存性で、シンプルなものを相対的に複雑にしている。
- 自分で簡単にできる簡単な問題を解決し、難しいことを支援する設計やアーキテクチャについてはあまり考慮していない。
- LangChainの「Hello World」は、OpenAIとほぼ同じコード量で不必要な多くのクラスを組み込む「Hell World」だ。
概要 †
- LangChainをGUIで構築できるようにしたツールでGUIはreact(react-flow)。
- インストールは簡単、pipでinstallして実行するだけ(実際はuvの導入が必要)。
- GUIデザイナのテンプレートでレシピを迅速に実装&評価できるところが◎。
- GUIデザイナは便利だが、複雑な処理にはコードベースでの開発が必要。
- LangChain に依存しているため、LangChain 自体の人気や普及度が LangFlow の人気に影響。
- Apache Cassandra の DataStax?
- 生成AI事業に舵を切った結果、OSS PJのPOになっている。
- Astra DBサービスにベクトル検索機能を統合
- RAG支援アプリGenAIの開発を強化
- Langflow開発元Logspace社買収
- デザイナを見た感じ以下のような区分のノードをD&Dしてプロンプト・フローを構成する。
- LLMs
- Chains
- Prompts
- Memory
- Tools
- Agents
準備 †
インストール&起動の手順は:コチラ
※ ハマるので最新の公式を見るべきか:
https://docs.langflow.org/get-started-installation
利用 †
LLM利用 †
プロンプトをLLMに投げるだけ。
- Get startedのTemplateから「Basic Prompting」を選択する。
- OpenAIノードにOpenAI WebAPIのキーを設定して実行するだけ。
- システム・メッセージはサポートされるがChat履歴はサポートされていない。
Chat履歴 †
上記にチャット履歴を追加してみる。
- My Projectsに移動し、新規作成プロジェクト的な事をする。
- Templates:Get started → All templatesに変更する。
- All templatesから「Memory Chatbot」を選択する。
- OpenAIノードにOpenAI WebAPIのキーを設定して実行するだけ。
- Basic Promptingと比較すると、Chat MemoryがPromptのMemoryに接続されていることが解る。
- Chat Memoryは、Memorys項のノードか?Mem0 Chat Memoryとも違うようだが?(謎)
- このChat Memoryを削除すると、Basic Promptingと同じ動作になる。
- ちなみに、Basic Prompting化には、厳密に言うと、システム・メッセージの変更も必要。
RAG †
基本的なRAG(DataStax?やMilvusなどのVDBが必要になる。LlamaIndexのようなPERSIST_DIRはない?)
...
Agent1 †
簡単なAgentを実行してみる。
- My Projectsに移動し、新規作成プロジェクト的な事をする。
- Templates:Get startedから「Simple Agent」を選択する。
- AgentノードにOpenAI WebAPIのキーを設定して実行するだけ。
- Calculatorツールが接続されているので、
- Chat Input:「2+2=」
- Chat Output:「The result of ( 2 + 2 ) is ( 4 ).」
- URLツールが接続されているので、
- Chat Input:「URL」と「URLの内容を要約せよ」等の入力
- Chat Output:「URLのテキストを要約したもの」になる。
Agent2 †
2つのツールを使用するAgentを実行してみる。
- My Projectsに移動し、新規作成プロジェクト的な事をする。
- Templates:Get startedから「Simple Agent」を選択する。
- 「URL」ツールを削除して「Wikipedia API」ツールを追加&接続する。
- AgentノードにOpenAI WebAPIのキーを設定して実行するだけ。
- Chat Input:2020年の日本のGDPの情報から1世帯あたりのGDPの平均値を計算せよ。
- Chat Output:約1,074万円(ターミナル出力から2つのツールが使用されていることを確認するとなお良い)
トレーシング †
ログ †
プロジェクト名がDDLになっていて、その中の「Logs」から各ノードのI/Oを参照可能。
ターミナル出力 †
- Entering new X chain...Finished chain.の間のlogが出力される。
- chainとは、追加されたコンポーネントをまとめて実行するコンテナのようなもの。
- LangFlowのノードがchainなどのコードで実装されているので、ノードより粒度は小さい。
監視ツール †
- LangFuse?、LangSmith?、LangWatch?(初めて聞いた)と連携できる。
- 起動時に環境変数 'LANGFUSE_PUBLIC_KEY' が指定されていないため、Langfuseは無効。と表示される。
WebAPI †
WebAPI経由での機能提供
cURL †
- APIのcURLからスニペットを取得できる。
- Tweaksで送信時のデータを入力しcURLに戻るとスニペットが更新されている。
Chat Widget HTML †
APIのChat Widget HTML からスニペットを取得できる。
認証 †
ログイン画面&APIキー作成が可能。
参考 †
公式 †