n8n+chromadb的安装

docker-compose.yml


services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - N8N_ENCRYPTION_KEY=<<加密用的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

这将以 root 用户身份进入 n8n 容器。

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 安装软件包到系统范围的 Python 环境中。为了解决这个问题,您需要使用 虚拟环境 来安装 Python 包。

以下是使用虚拟环境的解决方案:
步骤 1: 创建一个虚拟环境
首先,在容器内创建一个虚拟环境。进入容器并运行以下命令:

python3 -m venv /home/node/langchain_env

这会在 /home/node/langchain_env 目录下创建一个虚拟环境。
步骤 2: 激活虚拟环境
激活虚拟环境:

source /home/node/langchain_env/bin/activate

激活虚拟环境后,您会看到命令行的提示符发生变化,表明当前正在使用虚拟环境。
步骤 3: 安装 LangChain
现在,您可以在虚拟环境中使用 pip 安装 LangChain:

pip install langchain

步骤 4: 退出虚拟环境
如果您完成了操作,您可以退出虚拟环境:

deactivate

oxxo

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注