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