「[[.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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS