n8n을 활용한 간단한 Agent 만들기 : 2.5편

소개

ChatGPT나 Claude같은 유료 LLM 서비스를 n8n으로 실행하다보면, 실제로 얼마나 비용이 들지, LLM 체인에 문제가 생겼을 때는 어디가 어떤 문제가 생겼는지 확인하고 싶을 때가 있습니다. 이 를 위해 LangSmith를 n8n과 연결하여 볼 수 있도록 설정하는 과정을 소개하고자 합니다.

진행 방법

1. n8n - langsmith 설정 준비

텍스트가있는 화면 N 없음

출처 : Use LangSmith with n8n | n8n Docs

현재 n8n에 langsmith를 연결하는 건 셀프호스팅하는 n8n에서만 된다는 점 유의하시길 바랍니다.


2. 진행 과정

셀프 호스팅을 하기 위해 우선, docker를 설치하고 진행하겠습니다.

1) Docker 설치 및 Docker Compose 설치

sudo apt update && sudo apt install docker docker-compose -y
  • sudo apt update: 패키지 목록을 업데이트하여 최신 버전 정보를 가져옵니다.

  • sudo apt install docker docker-compose -y: Docker와 Docker Compose를 설치하며, y 옵션은 설치 과정에서 사용자 입력을 생략하고 자동으로 진행하게 합니다.

결과 예시:

Reading package lists... Done
Setting up docker... Done
Setting up docker-compose... Done


2) .env 파일 생성 및 설정

nano .env
  • nano .env: .env라는 환경 변수 파일을 생성하고 편집기(nano)로 엽니다.


nano로 연 .env 작성 내용:

WEBHOOK_URL= <https://domain.io> (선택)
LANGCHAIN_TRACING_V2=true
LANGCHAIN_API_KEY=sk-langsmith-XXXXXXXXXXXXXXXXXXXXXXXX
LANGCHAIN_PROJECT="프로젝트 명"
  • WEBHOOK_URL: n8n에서 외부로 Webhook 요청을 보낼 때 사용하는 URL입니다. (필수는 아닙니다.)

  • LANGCHAIN_TRACING_V2: LangSmith의 최신 트레이싱 기능을 활성화합니다.

  • LANGCHAIN_API_KEY: LangSmith API 접근을 위한 인증 키입니다.

  • LANGCHAIN_PROJECT: LangSmith에서 사용할 프로젝트 이름입니다.

작성 후에는 ctrl + x 를 누른 뒤, y를 눌러 저장을 하고 nano 편집기를 나갑니다.

chmod 600 .env
  • .env 파일의 권한을 소유자만 읽고 쓸 수 있도록 변경합니다.


3) docker-compose.yml 파일 생성 및 설정

nano docker-compose.yml
  • docker-compose.yml 파일을 생성하고 nano 편집기로 열어 작성합니다.

작성 내용:

version: '3.7'
services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: always
    env_file:
      - .env
    ports:
      - "5678:5678"
    volumes:
      - /var/lib/docker/volumes/n8n_data/_data:/home/node/.n8n
  • version: '3.7': Docker Compose 파일 포맷 버전.

  • services: Docker Compose로 관리할 서비스 목록.

  • n8n: n8n 서비스를 정의.

  • image: n8n의 최신 이미지를 Docker Hub에서 가져옴.

  • container_name: Docker 컨테이너 이름을 n8n으로 지정.

  • restart: always: 컨테이너가 종료되면 자동으로 다시 시작.

  • env_file: .env 파일에서 환경 변수를 불러옴. (핵심)

  • ports: 호스트(로컬 머신)의 5678 포트를 n8n 컨테이너의 5678 포트에 연결.

  • volumes: 로컬 경로를 n8n의 데이터 경로로 마운트하여 데이터 지속성 보장.


4) Docker Compose 실행

docker compose up -d
  • docker compose up: docker-compose.yml 파일을 기반으로 컨테이너를 생성하고 실행.

  • -d: 백그라운드에서 실행.

[+] Running 10/12
Pull complete, Extracting ... done
Container n8n Started

실제 예시

컨테이너 실행에 대한 메시지를 보여주는 컴퓨터 화면의 스크린 샷

5) 설정 확인

docker exec -it n8n env | grep LANGCHAIN
  • docker exec -it n8n env: n8n 컨테이너 내에서 환경 변수를 출력.

  • | grep LANGCHAIN: 출력된 환경 변수 중 LANGCHAIN으로 시작하는 항목만 필터링.


  • 평소엔 이 명령어로 실행하면 됩니다.

결과와 배운 점

n8n을 이용해 좀 더 명확한 POC를 구현할 수 있고, 서비스를 준비하는 경우, 비용까지 정확히 계산해볼 수 있다는 점을 확인할 수 있었습니다.

n8n에서 제공하는 노드들이 여러가지 있다보니, 워크플로우를 작성할 때 필요한 노드는 무엇인지 배우는 시간이 필요해 보입니다. 그래도 다른 분들이 만들어놓은 워크플로우를 실행해보거나, 직접 노드를 실행하면 금방 배울 수 있을 것이라 생각합니다!

4
1개의 답글

👉 이 게시글도 읽어보세요