Ollama Chat Model 노드 관련 일반적인 문제
n8n v2.29Ollama Chat Model 노드에서 발생하는 일반적인 오류와 문제, 그리고 이를 해결하거나 문제를 진단하는 방법을 소개합니다. Ollama Chat Model 노드는 서브 노드1입니다. 루트 노드2를 포함한 대부분의 노드는 입력으로 임의 개수의 항목을 받아 이를 처리한 뒤 결과를 출력합니다.
Ollama Chat Model 노드에서 발생하는 일반적인 오류와 문제, 그리고 이를 해결하거나 문제를 진단하는 방법을 소개합니다.
처리 매개변수#
Ollama Chat Model 노드는 서브 노드1입니다. 서브 노드는 표현식을 사용해 여러 항목을 처리할 때 다른 노드와 다르게 동작합니다.
루트 노드2를 포함한 대부분의 노드는 입력으로 임의 개수의 항목을 받아 이를 처리한 뒤 결과를 출력합니다. 표현식을 사용해 입력 항목을 참조할 수 있으며, 노드는 각 항목에 대해 차례로 표현식을 해석합니다. 예를 들어 다섯 개의 name 값이 입력으로 주어지면, 표현식 {{ $json.name }}은 각 name으로 차례로 해석됩니다.
서브 노드에서는 표현식이 항상 첫 번째 항목으로 해석됩니다. 예를 들어 다섯 개의 name 값이 입력으로 주어지더라도, 표현식 {{ $json.name }}은 항상 첫 번째 name으로 해석됩니다.
원격 Ollama 인스턴스에 연결할 수 없음#
Ollama Chat Model 노드는 인증된 프록시(Open WebUI 등) 뒤에 있는 원격 Ollama 인스턴스에 연결하기 위해 Bearer 토큰 인증을 지원합니다.
원격 인증 연결을 사용하려면 Ollama 자격 증명에서 원격 URL과 API 키를 모두 설정하세요.
자세한 내용은 Ollama 자격 증명 안내를 참고하세요.
Docker 사용 시 로컬 Ollama 인스턴스에 연결할 수 없음#
Ollama Chat Model 노드는 Ollama 자격 증명에 정의된 기본 URL을 사용해 로컬에서 호스팅되는 Ollama 인스턴스에 연결합니다. n8n이나 Ollama를 Docker에서 실행하는 경우, n8n이 Ollama에 연결할 수 있도록 네트워크를 구성해야 합니다.
Ollama는 일반적으로 로컬 네트워크 주소인 localhost에서 연결을 수신 대기합니다. Docker에서는 기본적으로 각 컨테이너가 자체 localhost를 가지며, 이는 해당 컨테이너 내부에서만 접근할 수 있습니다. n8n이나 Ollama 중 하나라도 컨테이너에서 실행 중이라면, localhost를 통해 서로 연결할 수 없습니다.
해결 방법은 두 구성 요소를 어떻게 호스팅하고 있는지에 따라 달라집니다.
Ollama만 Docker에 있는 경우#
Ollama만 Docker에서 실행 중이라면, 컨테이너 내부에서 0.0.0.0에 바인딩하여 모든 인터페이스에서 수신 대기하도록 Ollama를 구성하세요(공식 이미지는 이미 이렇게 구성되어 있습니다).
컨테이너를 실행할 때 -p 플래그로 포트를 게시하세요. Ollama는 기본적으로 11434 포트에서 실행되므로, Docker 명령은 다음과 같아야 합니다.
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
Ollama 자격 증명을 구성할 때는 localhost 주소를 문제없이 사용할 수 있습니다(base URL을 http://localhost:11434로 설정하세요).
n8n만 Docker에 있는 경우#
n8n만 Docker에서 실행 중이라면, 호스트에서 0.0.0.0에 바인딩하여 모든 인터페이스에서 수신 대기하도록 Ollama를 구성하세요.
Linux에서 n8n을 Docker로 실행하는 경우, 컨테이너를 시작할 때 --add-host 플래그를 사용해 host.docker.internal을 host-gateway에 매핑하세요. 예를 들면 다음과 같습니다.
docker run -it --rm --add-host host.docker.internal:host-gateway --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
Docker Desktop을 사용하는 경우에는 이 설정이 자동으로 구성됩니다.
Ollama 자격 증명을 구성할 때는 localhost 대신 호스트 주소로 host.docker.internal을 사용하세요. 예를 들어 기본 포트 11434에 바인딩하려면 base URL을 http://host.docker.internal:11434로 설정하면 됩니다.
Ollama와 n8n이 별도의 Docker 컨테이너에서 실행되는 경우#
n8n과 Ollama가 모두 별도의 Docker 컨테이너에서 실행 중이라면, Docker 네트워킹을 사용해 둘을 연결할 수 있습니다.
컨테이너 내부에서 0.0.0.0에 바인딩하여 모든 인터페이스에서 수신 대기하도록 Ollama를 구성하세요(공식 이미지는 이미 이렇게 구성되어 있습니다).
Ollama 자격 증명을 구성할 때는 localhost 대신 Ollama 컨테이너 이름을 호스트 주소로 사용하세요. 예를 들어 Ollama 컨테이너 이름을 my-ollama로 지정하고 기본 포트 11434에서 수신 대기한다면, base URL을 http://my-ollama:11434로 설정하면 됩니다.
Ollama와 n8n이 동일한 Docker 컨테이너에서 실행되는 경우#
Ollama와 n8n이 동일한 Docker 컨테이너에서 실행 중이라면, localhost 주소는 특별한 구성이 필요하지 않습니다. Ollama가 localhost에서 수신 대기하도록 구성하고, n8n의 Ollama 자격 증명에서 base URL을 localhost를 사용하도록 설정하면 됩니다: http://localhost:11434.
Error: connect ECONNREFUSED ::1:11434#
이 오류는 컴퓨터에서 IPv6가 활성화되어 있지만 Ollama가 IPv4 주소에서 수신 대기하고 있을 때 발생합니다.
이를 해결하려면 Ollama 자격 증명의 base URL을, IPv4 또는 IPv6 어느 쪽으로든 해석될 수 있는 localhost 별칭 대신, IPv4 전용 로컬 주소인 127.0.0.1에 연결하도록 변경하세요: http://127.0.0.1:11434.
Ollama 및 HTTP/HTTPS 프록시#
Ollama는 설정에서 사용자 지정 HTTP 에이전트를 지원하지 않습니다. 이 때문에 사용자 지정 HTTP/HTTPS 프록시 뒤에서 Ollama를 사용하기가 어렵습니다. 프록시 구성에 따라서는 HTTP_PROXY 또는 HTTPS_PROXY 환경 변수를 설정해도 전혀 동작하지 않을 수 있습니다.
자세한 내용은 Ollama의 FAQ를 참고하세요.