LangflowをWindows(Docker)で起動する

FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

LangChainを視覚的に設計できるLangflow

LangChainとは?

Langchain は、話題の GPT-4, GPT-3.5-turbo などの LLM API と、その他の外部リソースと連携させたアプリケーション・サービスの開発を支援する目的で開発されたライブラリ・モジュールです。

その他の外部リソースとはつまり、Google などの検索エンジンの検索結果であったり、複数の LLM であったり、あるいはローカルのデータベースなどです。仕組みとしては、Agent(代理人)とChain(一連の流れを構成する)で処理の流れをコントロールするものです。

LangFlow とは?

LangFlow は、この LangChain の処理の一連の流れを、GUIで繋げて設計しようというツールになります。いわゆる、ノーコードの開発ツールに近いものですね。Unity を触ったことがある方であれば、馴染み深いのではないでしょうか。

Windows では動かない LangFlow

残念なことに、 LangFlow は一部使用しているライブラリが OS 依存であるため、 Windows では動作しません。そこで、広く開発環境の構築にも使われている Docker を用いて、仮想環境でLangFlow を実行します。

その他の環境でも直接の導入はおすすめできない

ほぼ日刊アップデートのLangChain 本体と比較して、LangFlow のアップデートは遅くなっています。その関係で、依存しているパッケージ・ライブラリについても2023/3/16 現在では大分「古い」バージョンのものとなっています。

GPT-4 の API の waitlist にいる人も多いだろう現在、LangFlow をメインの開発環境に導入することはおすすめできません。Web サーバーとして動作するアプリケーションでもあるので、仮想環境への導入をおすすめします。

Docker Desktop の導入

Windows や MacOS などのGUI 環境であれば、上記URLからDesktop版のDockerの導入がお手軽です。

Windows の場合、 wsl のアップデートを要求されることがありますので、

画面の指示に従って、terminalから

wsl --update

を実行します。Docker Desktop は image の管理などに利用することもありますが、今回は全て CUI から操作するので、インストールが完了した後は閉じてしまって大丈夫です(途中で再起動が必要です)。

Docker コンテナの構築

インストールが完了したら、LangFlow 用のコンテナを構築していきます。

Dockerfile

FROM python:3
USER root

RUN apt-get update
RUN apt-get -y install locales && \
    localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
ENV TZ JST-9
ENV TERM xterm

RUN pip install -U pip
RUN pip install -U setuptools

RUN pip install -U langchain
RUN pip install -U langflow

Dockerfile は、 FROM python:3 として、公式の Python 3環境をベースに構築します。必須ツール類をインストールとupdateさせれば充分です。

docker-compose.yml

version: '3'
services:
  langchain:
    restart: always
    build: .
    container_name: 'langchain'
    working_dir: '/root/'
    tty: true
    volumes:
      - ./src:/root/src
    ports:
      - "127.0.0.1:5003:5003"
    command: langflow --host 0.0.0.0

LangFlow は port 5003で起動するので、port forwardingと、langflow の待ち受け host を 0.0.0.0 に設定すれば最低限動作します。src フォルダを volumes でマウントしていますが、特別必要ではありません。

build, 起動

Dockerfile と docker-compose.yml を適切なフォルダ(例:D:\docker\langflow)に格納して、ターミナルでそのフォルダを開きます。

Build しつつ起動

docker compose up -d --build

動作確認

起動したら、ホスト(通常使っているPC)で、 http://127.0.0.1:5003にアクセスして、GUIが表示されれば動作しています。

起動

docker compose up -d

終了

docker-compose down

※ 正式な手順で終了しないと、エラーが出て起動しなくなるので、その場合は以下の強制終了コマンドを試してみる

強制終了

docker-compose down --remove-orphans

実際、どうなの?

冒頭でも述べたように、 LangFlow は LangChain や OpenAI のアップデートに充分追従できている状態ではありません。

そのため、GUIから設定できるモジュールの数は限られており、 OpenAIChat や ChatOpenAI といった GPT-3.5-turbo のラッパーをカバーできていない状態となっています。もちろん、 GPT-4 についても同様です。

その他の Tool や Agent も限定的であり、Export 機能についても json 形式のみであり、Python や JS/TS のソースコードを直接出力することもできないようです。

一方で、 API キーなどを適切に設定しさえすれば、GUI 上で Chatの動作確認ができますので、気軽に動作確認をする、 簡易的なPoCを行うツールとしては可能性が高いように思います。

とはいえ、いずれにしても、LangChain や LLM API のアップデートが一段落し、それにLangFlow が追いついてから、というのが本番ではないでしょうか。

FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

最新の記事