「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>LLM系ツール]] --[[LangChain]] --LangFlow ---[[LangFlowファースト・ステップ的な]] ---[[LangFlowセカンド・ステップ的な]] ---[[LangFlowのファースト・ステップ]] ---[[LangFlowのセカンド・ステップ]] ---[[LangFlowのサード・ステップ]] ---[[LangFlowの4thステップ]] *目次 [#de8ce216] #contents *概要 [#e5fa8619] -LangChainをGUIで構築できるようにしたツールでGUIはreact(react-flow)。 -インストールは簡単、pipでinstallして実行するだけ(実際はuvの導入が必要)。 -GUIデザイナのテンプレートでレシピを迅速に実装&評価できるところが◎。 -GUIデザイナは便利だが、複雑な処理にはコードベースでの開発が必要。 -LangChain に依存しているため、LangChain 自体の人気や普及度が LangFlow の人気に影響。 **開発元情報 [#m6447e73] -開発の初期段階では、Logspaceというチームが関与 -2024年4月、DataStaxがLangflowの開発元であるLogspace社を買収 --DataStaxは、Apache [[Cassandra]] の 開発元。 --生成AI事業に舵を切った結果、OSS PJのPOになっている。 --Astra DBサービスにベクトル検索機能を統合、RAG支援アプリGenAIの開発を強化 -2025年3月、IBMがDataStaxを買収 --LangFlowはIBMのwatsonxプラットフォームとの連携を強化する方向。 --エンタープライズ向けの生成AIソリューションとしての位置付けがさらに強まった。 --今後はさらにエンタープライズ向けの機能強化が進むと予想される。 **[[インストール>WSL2 Ubuntu 24.04 LTS 2025/1/21#v0be1306]] [#s659f8f2] 以下、インストールの補足 -特定のバージョンをインストール uv pip install langflow==1.3.2 -依存関係を再インストール uv pip install langflow --force-reinstall -機能拡張オプションの依存関係グループ uv pip install "langflow[deploy,local,postgresql]" ※ 参考:https://docs.langflow.org/get-started-installation *詳細 [#hbfd63e8] **デザイナ [#y71c66c7] 見た感じ以下のような区分の[[ノード>#kc49f616]]とエッジ(接続)をD&Dしてプロンプト・フローを構成する。 **ノード [#kc49f616] ***基本的 [#ydefa334] -Prompts -Models -Inputs and outputs -Memories -Logic -Processing -RAG系 --Data --Loaders --Embeddings --Vector stores -機能的 --Tools --Retrievers --Agents --Prototypes --Create custom Python components ***バンドル [#p6115f65] (より機能的) -LangChain -AssemblyAI -DataStax -Notion -NVIDIA -Google -CrewAI -NotDiamond -Composio -Cohere -Firecrawl -Unstructured -Git -Confluence **準備 [#mb82d354] インストール&起動の手順は:[[コチラ>WSL2 Ubuntu 24.04 LTS 2025/1/21]] ※ ハマるので最新の公式を見るべきか:~ https://docs.langflow.org/get-started-installation ***[[準備>WSL2 Ubuntu 24.04 LTS 2025/1/21]] [#lcdf0db6] ***[[インストール>WSL2 Ubuntu 24.04 LTS 2025/1/21#t65c0b95]] [#a622c84f] ***[[起動>WSL2 Ubuntu 24.04 LTS 2025/1/21#g17e5f0c]] [#y1e3661d] **利用 [#tb88875d] ***LLM [#i53ddef8] プロンプトをLLMに投げるだけ。 -システム・メッセージはサポートされるがChat履歴はサポートされていない。 -参考:[[クイックスタート1>LangFlowファースト・ステップ的な#bcac2f9f]] ***RAG [#a5beb10a] 基本的なRAGの処理だが、 -[[DataStax>#u10d2861]]やMilvusなどのIndexライブラリと言うよりサービスが必要になる。 -ローカルで実行する場合は、[[LlamaIndex]]との連携機能はないが、Chroma DBを使用できる。 -参考:[[クイックスタート2>LangFlowファースト・ステップ的な#c0f9ac85]] ***Agent [#s08529de] 簡単なAgentを実行してみる。 -Agentツール類を接続するだけ。 -参考:[[クイックスタート3>LangFlowファースト・ステップ的な#q1b60277]] ***Chat履歴 [#i6f0e7e5] 上記にチャット履歴を追加してみる。 -My Projectsに移動し、新規作成プロジェクト的な事をする。 -Templates:Get started → All templatesに変更する。 -All templatesから「Memory Chatbot」を選択する。 -OpenAIノードにOpenAI WebAPIのキーを設定して実行するだけ。 -[[Basic Prompting>#g09d13bc]]と比較すると、Chat MemoryがPromptのMemoryに接続されていることが解る。 -Chat Memoryは、Memorys項のノードか?Mem0 Chat Memoryとも違うようだが?(謎) -このChat Memoryを削除すると、[[Basic Prompting>#g09d13bc]]と同じ動作になる。 -ちなみに、[[Basic Prompting>#g09d13bc]]化には、厳密に言うと、システム・メッセージの変更も必要。 -Chat履歴の参考:https://qiita.com/ksonoda/items/b243dbfcfe18548ce98c **トレーシング [#jc50d8f1] ***ログ [#y27d545b] プロジェクト名がDDLになっていて、その中の「Logs」から各ノードのI/Oを参照可能。 ***ターミナル出力 [#z1f299d9] -「Entering new X chain...Finished chain.」の間のchainのlogが出力される。 -chainとは、追加されたコンポーネントをまとめて実行するコンテナのようなもの。 -LangFlowのノードがchainなどのコードで実装されているので、chainはノードより小さい粒度。 ***監視ツール [#d8703a3c] -LangFuse、LangSmith、LangWatch(初めて聞いた)と連携できる。 -起動時に環境変数 'LANGFUSE_PUBLIC_KEY' が指定されていないため、Langfuseは無効。と表示される。 **WebAPI [#hb223fc4] WebAPI経由での機能提供 ***cURL [#e3d1c469] -APIのcURLからスニペットを取得できる。 -Tweaksで送信時のデータを入力しcURLに戻るとスニペットが更新されている。 ***Chat Widget HTML [#a3697eb0] APIのChat Widget HTML からスニペットを取得できる。 ***認証 [#s934f838] ログイン画面&APIキー作成が可能。 **コンポーネント一覧 [#pa979d63] ***基本的 [#b1171722] -Inputs --Chat Input --Test Input -Prompts --Prompt -Models --AIML Models --Amazon Bedrock --Anthropic --Azure OpenAl --Cohere --Google Generative Al --Groq --HuggingFace --LM Studio --Maritalk --MistralAl --NVIDIA --Ollama --OpenAl --Perplexity --Qianfan --Vertex Al -Outputs --Chat Output --Test Output -Memories --DS Astra DB Chat Me... Input --Cassandra Chat M... --Memo Chat Memory --Redis Chat Memory --Zep Chat Memory -Logic --Condition --Flow as Tool --If-Else --Listen --Notify --Pass --Run Flow --Sub Flow -Processing --Combine Text --Create Data --Extract Key --Filter Data --Filter Values --JSON Cleaner --Merge Data --Message to ... --Parse Data --Parse JSON --Select Data --Split Text Input --Update Data -Helpers --Create List --Current Date --ID Generator --Message History --Output Pa... --Store Message --Structured Output ***RAG系 [#a2d85ce2] -Data --API Request --Directory --File --Load CSV --Load JSON --SQL Query --URL --Webhook -Loaders~ Bundleに格納されているとのこと。 -Embeddings --AI/ML Embeddings --Amazon Bedrock E... --Astra Vectorize [DE... --Azure OpenAl Emb... --Cohere Embeddings --Embedding Similarity --Input Value Hello, World! --Google Generative --HuggingFace Emb... --LM Studio Embed... --MistralAl Embeddin... --NVIDIA Embeddings --Ollama Embeddings --OpenAl Embeddings --Text Embedder --VertexAl Embeddin... -Vector stores --Astra DB --Astra DB Graph --Cassandra --Cassandra Graph --Chroma DB --Clickhouse --Couchbase --Elasticsearch --FAISS --Hyper-Converged ... --Milvus --MongoDB Atlas --OpenSearch --PGVector --Pinecone --Qdrant --Redis --Supabase --Upstash --Vectara --Vectara RAG --Vectara S ... --Weaviate ***機能的 [#p6671524] -Tools --DS Astra DB --DS Astra DB --Bing Search API --Calculator --DuckDuckGo Search --Exa Search --Glean Search API --Google Search API --Python C... --Python REPL --RetrieverTool --SearXNG... --Serp Search API --Tavily Al Search --Wikidata API --Wikipedia API --WolframAlpha API --Yahoo Finance --YouTube Transcripts -Retrievers --Amazon K... --Metal Retr... --MultiQuer... -Agents --Agent~ Loaders同様にBundleに格納されている模様。 -Prototypes --Python Function -Create custom Python components ***バンドル(より機能的) [#a8f59cab] -LangChain --CharacterTextSplitter --Conversat... --CSVAgent --Fake Embeddings --HTML Link Extractor --JSON Doc... --JsonAgent --Language Recursiv... --Natural Language ... --OpenAl Tools Agent --OpenAPI Agent --Prompt Hub --Recursive Charact... --Runnable Ex... --Semantic Te... --Spider Web Crawle... --SQLAgent --SQLDatabase --Tool Calling Agent --XML Agent -AssemblyAI -DataStax -Notion -NVIDIA -Google -CrewAI -NotDiamond -Composio -Cohere -Firecrawl -Unstructured -Git -Confluence **所感 [#i6b4743a] ***テンプレート [#e333fcb8] -テンプレートと適合していれば、チョット書き換えて使う事が出来て便利。 -一方で、0からデザインしようとすると、どうしてイイのか、マニュアルを見ないと解らない。 ***RAG [#ic3ba9a3] テンプレートのVDBがいきなり商用([[DataStax>#u10d2861]])のモノだったりするので必要に応じて切り替えが必要。 -LangChainは外部ツールを活用して、各種インデックスをサポートする。 -[[LlamaIndex]]は外部ツールを使用せず、独自方式を含む各種インデックスをローカルで処理可能。 ***Agent [#na3773c9] 全体はワークフロー、プロンプトフローなどと呼ばれるが、~ Agentにツールを接続して処理することが多い(便利だが)。 -1本道のフローだと、汎用性が低く、必要に応じて、ユーザがフローを選択する必要がある。 -エンドユーザが関わってくると要件に合わせて都度、条件分岐を追加していく運用は難しくなる。 -Agentの判断次第で、ツールを使ったり使わなかったり、ブレが出る。 ***その他 [#g4488dc4] -ネットの情報が古かったり、情報が少なかったりする。 -(ZeroShotAgentとか)ノードがコンポーネント一覧に無い事がある(コレは自作?)。 -カスタム・コンポーネントはCustom Componentから作成できそうだが、どうやって登録する? -ユーザ毎の課金計算やOpenAIなどのWebAPIキーなどをサポートする? ***イメージ [#abcd0fdd] - #ref(LangFlow.png,left,nowrap,GUI,60%) - #ref(LangFlow2.png,left,nowrap,GUI,60%) - #ref(LangFlow_log1.png,left,nowrap,Terminal1,60%) ~ #ref(LangFlow_log2.png,left,nowrap,Terminal2,60%) **プロダクト連携 [#m6ce7a92] ***[[Ollama]] [#n697b0fa] -Ollamaノードを設定: Ollamaノードをクリック -Base URL、Model Name、Temperatureを設定。 -参考 --LangflowとOllamaで実現するローカルAIチャットボット構築:完全ガイド~ https://note.com/ippei_suzuki_us/n/nc0207949006b ***[[LlamaIndex]] [#z831ea22] -CustomComponentでカスタムノードを作成して[[LlamaIndex]]拡張する。 -参考 --LangChainでLlama Indexを使う #ChatGPT - Qiita~ https://qiita.com/tamyu/items/d4018572bfa7fb9d4393 **... [#u07cc28f] *参考 [#l2d55fd0] -LangChainのGUI版、LangFlowを試してみた #React - Qiita~ https://qiita.com/zakuzakuzaki/items/df36c4babddfd82a8a67 -ローコードでLLMアプリが作成できる「Langflow」を試す~ https://zenn.dev/kun432/scraps/0891f49609d31a -LangChainのGUI版であるLangFlowを試す|npaka~ https://note.com/npaka/n/n561e597ac5c4 -LangFlow ×ChatGPTを使って、~ AIチャットボットのRAGをノーコードで構築してみた~ | 株式会社LIG(リグ)|DX支援・システム開発・Web制作~ https://liginc.co.jp/643493 -LangFlow とは | Hakky Handbook~ https://book.st-hakky.com/data-science/langflow-intro/ **公式 [#b969ec21] -langflow~ https://docs.langflow.org/ --[[LangFlowファーストステップ的な]] --Concepts ---Langflow overview ---Playground ---Components ---Flows ---API pane --Components ---Agents ---Create custom Python components ---Data ---Embeddings ---Helpers ---Inputs and outputs ---Loaders ---Logic ---Memories ---Models ---Processing ---Prompts ---Tools ---Vector stores --Agents ---Agents overview ---Create a problem-solving agent --Configuration ---API keys ---Authentication ---Auto-saving ---Run Langflow in backend-only mode ---Langflow CLI ---Global variables ---Environment variables ---Langflow objects ---Security best practices --Deployment ---Docker ---GCP ---HuggingFace Spaces ---Kubernetes ---Railway ---Render --Integrations ---AssemblyAI ---Integrate Composio with Langflow ---Langfuse ---LangSmith ---LangWatch ---Google ---Notion --Contributing --API Reference