n8n+chromadbのインストール
docker-compose.yml
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_ENCRYPTION_KEY=<<暗号化キー。「openssl rand -base64 32」コマンドで生成可能>>
- GENERIC_TIMEZONE=Asia/Tokyo
- N8N_SECURE_COOKIE=false
- N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=True
volumes:
- n8n_data:/home/node/.n8n
networks:
- ai-net
chroma:
image: chromadb/chroma
container_name: chromadb
restart: unless-stopped
ports:
- "8000:8000"
volumes:
- chroma_data:/chroma/chroma
networks:
- ai-net
volumes:
n8n_data:
chroma_data:
networks:
ai-net:
n8nコンテナにLangChainをインストール(インストール後、n8nのUI上でLangChainが見つからない可能性があります。これはバージョン互換性の問題かもしれません)
1- rootユーザーに切り替える
デフォルトでは、n8nコンテナはroot以外のユーザーで実行されている可能性があるため、rootユーザーに切り替えるか、直接root権限でコマンドを実行する必要があります。
以下のコマンドでrootユーザーに切り替えられます:
su
もしrootに切り替えられない場合は、以下のコマンドで直接root権限でコンテナに入ってください:
docker exec -u 0 -it /bin/sh
これでn8nコンテナ内にrootユーザーとして入ることができます。
2- パッケージリストを更新し、Pythonとpipをインストール
rootユーザーになったら、以下のコマンドを実行してPythonとpipをインストールしてください:
apk update # パッケージマネージャのリストを更新
apk add --no-cache python3 py3-pip # Python3とpipをインストール
3- LangChainのインストール
Pythonとpipをインストールした後、LangChainをインストールできます:
pip install langchain
以下のようなエラーが発生する可能性があります:
/home/node # pip install langchain
error: externally-managed-environment
× This environment is externally managed
╰─>
The system-wide python installation should be maintained using the system
package manager (apk) only.
If the package in question is not packaged already (and hence installable via
"apk add py3-somepackage"), please consider installing it inside a virtual
environment, e.g.:
python3 -m venv /path/to/venv
. /path/to/venv/bin/activate
pip install mypackage
To exit the virtual environment, run:
deactivate
The virtual environment is not deleted, and can be re-entered by re-sourcing
the activate file.
To automatically manage virtual environments, consider using pipx (from the
pipx package).
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
このエラーは、n8nコンテナ内のPython環境が「外部管理されている」ため、システム全体に対してpipで直接パッケージをインストールできないことを示しています。
この問題を解決するには、仮想環境(virtual environment)を使用してPythonパッケージをインストールする必要があります。
以下は仮想環境を使った解決手順です:
ステップ1: 仮想環境を作成
まず、コンテナ内で以下のコマンドを実行して仮想環境を作成します:
python3 -m venv /home/node/langchain_env
これで、/home/node/langchain_env
ディレクトリに仮想環境が作成されます。
ステップ2: 仮想環境を有効化
仮想環境を有効化します:
source /home/node/langchain_env/bin/activate
仮想環境が有効化されると、プロンプトが変更され、仮想環境を使用中であることが分かります。
ステップ3: LangChainをインストール
仮想環境内でLangChainをインストールします:
pip install langchain
ステップ4: 仮想環境を終了
作業が完了したら、以下のコマンドで仮想環境を終了できます:
deactivate
oxxo