-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_LangFlow
- LangChainをGUIで構築できるようにしたツールでGUIはreact(react-flow)。
- インストールは簡単、pipでinstallして実行するだけ(実際は uv(Pythonの該当節を参照)の導入が必要)。
- GUIデザイナのテンプレートでレシピを迅速に実装&評価できるところが◎。
- GUIデザイナは便利だが、複雑な処理にはコードベースでの開発が必要。
- LangChain に依存しているため、LangChain 自体の人気や普及度が LangFlow の人気に影響。
-
開発の初期段階では、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の該当節を参照。
参考:https://docs.langflow.org/get-started-installation
-
特定のバージョンをインストール
uv pip install langflow==1.3.2 -
依存関係を再インストール
uv pip install langflow --force-reinstall -
機能拡張オプションの依存関係グループ
uv pip install "langflow[deploy,local,postgresql]"
見た感じ以下のような区分のノードとエッジ(接続)をD&Dしてプロンプト・フローを構成する。
-
Prompts
-
Models
-
Inputs and outputs
-
Memories
-
Logic
-
Processing
-
RAG系
- Data
- Loaders
- Embeddings
- Vector stores
-
機能的
- Tools
- Retrievers
- Agents
- Prototypes
- Create custom Python components
(より機能的)
- LangChain
- AssemblyAI
- DataStax
- Notion
- NVIDIA
- CrewAI
- NotDiamond
- Composio
- Cohere
- Firecrawl
- Unstructured
- Git
- Confluence
インストール&起動の手順は WSL2 Ubuntu 24.04 LTS 2025/1/21を参照。
※ ハマるので最新の公式を見るべきか:
https://docs.langflow.org/get-started-installation
- 準備・インストール・起動:いずれも WSL2 Ubuntu 24.04 LTS 2025/1/21の該当節を参照。
プロンプトをLLMに投げるだけ。
-
システム・メッセージはサポートされるがChat履歴はサポートされていない。
-
参考:クイックスタート1(「LangFlowファースト・ステップ的な」は元 Wiki 側にページの実体が無いリンク)
基本的なRAGの処理だが、
-
DataStaxやMilvusなどのIndexライブラリと言うよりサービスが必要になる。
-
ローカルで実行する場合は、LlamaIndexとの連携機能はないが、Chroma DBを使用できる。
-
参考:クイックスタート2(「LangFlowファースト・ステップ的な」は元 Wiki 側にページの実体が無いリンク)
簡単なAgentを実行してみる。
- Agentツール類を接続するだけ。
- 参考:クイックスタート3(「LangFlowファースト・ステップ的な」は元 Wiki 側にページの実体が無いリンク)
上記にチャット履歴を追加してみる。
-
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 化には、厳密に言うと、システム・メッセージの変更も必要。
-
Chat履歴の参考:https://qiita.com/ksonoda/items/b243dbfcfe18548ce98c
プロジェクト名がDDLになっていて、その中の「Logs」から各ノードのI/Oを参照可能。
- 「Entering new X chain...Finished chain.」の間のchainのlogが出力される。
- chainとは、追加されたコンポーネントをまとめて実行するコンテナのようなもの。
- LangFlowのノードがchainなどのコードで実装されているので、chainはノードより小さい粒度。
- LangFuse、LangSmith、LangWatch(初めて聞いた)と連携できる。
- 起動時に環境変数 'LANGFUSE_PUBLIC_KEY' が指定されていないため、Langfuseは無効。と表示される。
WebAPI経由での機能提供
- APIのcURLからスニペットを取得できる。
- Tweaksで送信時のデータを入力しcURLに戻るとスニペットが更新されている。
APIのChat Widget HTML からスニペットを取得できる。
ログイン画面&APIキー作成が可能。
-
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
-
Data
- API Request
- Directory
- File
- Load CSV
- Load JSON
- SQL Query
- URL(動作確認用のページ:LangFlowのURLComponentのテスト)
- 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
-
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に格納されている模様。
- Agent
-
Prototypes
- Python Function
-
Create custom Python components
(より機能的)
-
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
- テンプレートと適合していれば、チョット書き換えて使う事が出来て便利。
- 一方で、0からデザインしようとすると、どうしてイイのか、マニュアルを見ないと解らない。
テンプレートのVDBがいきなり商用(DataStax)のモノだったりするので必要に応じて切り替えが必要。
- LangChainは外部ツールを活用して、各種インデックスをサポートする。
- LlamaIndexは外部ツールを使用せず、独自方式を含む各種インデックスをローカルで処理可能。
全体はワークフロー、プロンプトフローなどと呼ばれるが、
Agentにツールを接続して処理することが多い(便利だが)。
- 1本道のフローだと、汎用性が低く、必要に応じて、ユーザがフローを選択する必要がある。
- エンドユーザが関わってくると要件に合わせて都度、条件分岐を追加していく運用は難しくなる。
- Agentの判断次第で、ツールを使ったり使わなかったり、ブレが出る。
- ネットの情報が古かったり、情報が少なかったりする。
- (ZeroShotAgentとか)ノードがコンポーネント一覧に無い事がある(コレは自作?)。
- カスタム・コンポーネントはCustom Componentから作成できそうだが、どうやって登録する?
- ユーザ毎の課金計算やOpenAIなどのWebAPIキーなどをサポートする?



~

-
Ollamaノードを設定: Ollamaノードをクリック
-
Base URL、Model Name、Temperatureを設定。
-
参考
- LangflowとOllamaで実現するローカルAIチャットボット構築:完全ガイド
https://note.com/ippei_suzuki_us/n/nc0207949006b
- LangflowとOllamaで実現するローカルAIチャットボット構築:完全ガイド
-
CustomComponentでカスタムノードを作成してLlamaIndex拡張する。
-
参考
- LangChainでLlama Indexを使う #ChatGPT - Qiita
https://qiita.com/tamyu/items/d4018572bfa7fb9d4393
- LangChainでLlama Indexを使う #ChatGPT - Qiita
-
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/
-
langflow
https://docs.langflow.org/-
LangFlowファーストステップ的な(元 Wiki 側にページの実体が無いリンク)
-
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
- Notion
-
Contributing
-
API Reference
-
移行メモ
- 元 Wiki の「戻る」の並びで LangFlow が HTML 実体参照(
LangFlow)で 書かれていたが、PukiWiki のページ内リンク自動生成を避けるための記法と 思われるため、通常の文字列に戻した。- 元 Wiki の
[[LangFlowファースト・ステップ的な]]/[[LangFlowファーストステップ的な]]は リンク先のページが元 Wiki 側に存在しない(リンク切れ)ため、プレーン・テキストとした。- 「Basic Prompting」(
#g09d13bc)と「DataStax」(#u10d2861)のリンクは、 同ページ内に存在しないアンカを指していたため、プレーン・テキストとした。- 「準備」配下の本文の無い見出し 3 件と末尾の見出し「...」はまとめ・除去した。
- 同名の見出し(「インストール」「基本的」「RAG系」「機能的」「バンドル」「RAG」 「Agent」「その他」「ログ」)が複数あり GitHub Wiki でアンカが衝突するため、 括弧で文脈を補って一意にした。
- 添付 4 点は
DNET_LangFlow_1.png〜_4.pngとして取得した。- PukiWiki のページ内アンカ(
#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替え、 他ページのアンカを指すリンクは「〜(ページ名の該当節を参照)」の形に置き換えた。- 本フェーズで新たに参照された「LangFlowのセカンド・ステップ」 「LangFlowのサード・ステップ」「LangFlowの4thステップ」を TODO.md に予約した。
- 元 Wiki では子ページ「LangFlowのURLComponentのテスト」への導線が無かった(子ページ側の「戻る」だけが当ページを指していた)ため、 移行後に当ページからのリンクを補った。
Tags: 移行, LangFlow, LangChain, ローコード, GUI, プロンプトフロー, RAG, Agent, DataStax
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。