모범 사례 및 튜토리얼

Docker 및 Couchbase Capella를 사용한 자체 호스팅 AI 챗봇

AI 챗봇은 기업과 조직에 필수적인 도구가 되었습니다. 하지만 대부분의 챗봇 솔루션은 클라우드 기반 모델에 의존하기 때문에 지연 시간, API 제한, 그리고 가장 중요한 개인 정보 보호 문제가 발생합니다. AI 챗봇을 온전히 자체 시스템에서 실행하면서도 모든 기능을 갖춘 데이터 플랫폼으로 대화 기록을 보관할 수 있다면 어떨까요?

이 게시물에서는 추론 등을 위해 로컬에서 컨테이너화된 모델을 실행할 수 있는 Docker의 새로운 기능인 Docker Model Runner와 대화를 저장, 검색 및 검색하는 Couchbase Capella를 사용하여 자체 호스팅 AI 챗봇을 설정하는 방법을 안내합니다. 그 결과 사용자가 제어할 수 있는 빠르고 비공개적이며 유연한 챗봇이 탄생합니다.

시작할 준비가 되셨나요? 시작하세요!

Docker 모델 러너 설정

먼저 모델 러너 기능을 사용할 수 있도록 Docker 데스크톱 및 CLI 버전이 최신 상태인지 확인합니다. 다음을 실행하여 이를 수행합니다. 도커 모델 상태 를 입력합니다. 성공하면 다음과 같은 성공 메시지가 출력됩니다. 도커 모델 러너가 실행 중입니다.. 그렇지 않은 경우에는 먼저 최신 버전의 Docker를 구하여 설치해야 합니다. Docker를 업데이트한 후 해당 명령을 다시 실행하면 정상적으로 작동합니다.

그렇게 한 후에는 Docker Model Runner를 사용하여 컨테이너 이미지를 Llama 3.2 모델로 가져와 로컬에서 사용할 수 있도록 합니다:

도커 모델 풀 AI/llama3.3

다음을 실행하여 Llama 3.2 모델을 성공적으로 다운로드했는지 확인할 수 있습니다. 도커 모델 목록 를 클릭하면 사용 가능한 모델을 확인할 수 있습니다:

{"object":"list","data":[{"id":"ai/llama3.3","object":"model","created":1741794281,"owned_by":"docker"}]}

테스트해보고 싶으신가요? 대화형 모드에서 모델을 여는 것은 아주 쉽습니다! 실행하기만 하면 됩니다. 도커 모델 실행 AI/llama3.3 를 입력하면 대화형 모드로 전환됩니다:

대화형 채팅 모드가 시작되었습니다. 종료하려면 '/bye'를 입력합니다.
>

이제 Llama 3.2를 다운로드하여 사용할 준비가 되었으니, 이제 자체 호스팅 AI 챗봇 모델을 활용하는 간단한 백엔드 애플리케이션을 구축할 차례입니다.

챗봇 만들기

생성할 애플리케이션은 다음 작업을 수행합니다:

    • Llama 3.2를 로컬에서 실행하려면 도커 모델 실행 CLI 명령
    • 모델에 사용자 메시지를 프롬프트로 보내기
    • 카우치베이스 카펠라에 채팅 기록 저장하기
    • 이전 채팅 검색

모든 기능을 갖춘 애플리케이션을 콘솔에서 강력한 AI 기반 챗봇으로 즉시 사용할 수 있습니다. 여기서 함께 구축한 코드는 필요에 따라 리팩터링할 수 있는 기반을 제공합니다. 웹 애플리케이션의 백엔드로 전환하고 싶을 수도 있습니다. 이를 위해서는 몇 가지 수정만 하면 됩니다.

애플리케이션에는 몇 가지 종속성이 필요하므로 프로젝트 디렉토리에서 다음을 실행합니다. 엔피엠 설치 카우치베이스 리드라인 동기화. 우리는 Couchbase Node.js SDK를 사용하여 Couchbase Capella 데이터 스토어와 상호 작용하며, 다음을 사용합니다. 리드라인 동기화 를 사용하여 애플리케이션이 터미널에서 사용자와 상호 작용하도록 할 수 있습니다.

Capella에서 채팅 데이터를 저장할 버킷을 설정하고 Capella 자격 증명을 준비해 두었는지 확인하세요. 항상 그렇듯이 자격 증명을 버전 관리에 저장하지 마세요. 로컬 개발 시 환경 변수를 사용하여 자격 증명을 공개되지 않고 안전하게 유지하세요. 

저희는 애플리케이션에서 네 가지 기능을 구축하고 있습니다:

    • askAI 를 사용하여 로컬에서 실행되는 AI 모델에 메시지를 공급하는 프로세스를 캡슐화합니다.
    • storeChat 을 클릭해 채팅 내역을 카펠라로 전송합니다.
    • fetchChatHistory 를 클릭하여 채팅 대화 검색
    • 메인 를 사용하여 애플리케이션의 기본 인터페이스 역할을 합니다.

먼저 메인 함수를 추가하면 나머지는 모두 마무리됩니다. 이 함수는 사용자가 언제든지 종료할 수 있는 루프를 만들어 지속적인 채팅 환경을 제공합니다:

보시다시피, 저희는 Capella의 데이터 저장소 위에 구축된 기능, 즉 채팅 자체 내에서 이전 채팅 기록을 검색할 수 있는 기능을 도입했습니다. 이 기능은 사용자가 새 세션을 시작할 때마다 채팅 컨텍스트를 되찾는 데 유용할 수 있습니다.

이제 우리는 메인 함수부터 시작하여 이 함수가 호출하는 지원 함수를 만들어 보겠습니다. askAI 함수입니다:

다음으로 storeChat 함수입니다:

마지막으로 fetchChatHistory 함수입니다:

기능을 완료한 후에는 다음을 추가해야 합니다. require 문을 추가하고 Couchbase Capella 클러스터에 대한 연결을 생성합니다:

마지막으로, 스크립트 마지막에 메인 함수를 삽입하여 main(); 를 입력합니다.

완료되면 개인 정보를 보호하면서 동시에 저장 및 검색을 위해 Capella를 활용하는 완전히 준비된 AI 챗봇을 자체 머신에서 호스팅할 수 있습니다.

자체 호스팅 AI 챗봇 사용하기

나만의 챗봇을 사용할 준비가 되었습니다! 보내는 모든 쿼리는 Llama 3.2 모델을 사용하여 컴퓨터에서 로컬로만 처리됩니다. 어떤 AI 제공업체에도 원격으로 전송되지 않습니다.

사용해 볼 준비가 되었다면 다음을 실행하여 사용해 보세요:

노드 index.js # 또는 파일 이름을 지정합니다.

실행하면 다음과 같은 내용이 표시됩니다:

카우치베이스 카펠라에 연결

자체 호스팅 AI 챗봇(라마 3.2 + 아카펠라)

아래에 메시지를 입력합니다. 지난 채팅을 보려면 '기록'을 입력하고 종료하려면 '종료'를 입력합니다.

>

이제 질문을 하고 상호작용을 시작하세요. 다음은 예상할 수 있는 간단한 예시입니다:

로컬에서 AI 모델을 실행하는 Docker Model Runner의 개인 정보 보호 우선 접근 방식과 함께 Couchbase Capella의 확장성 및 보안을 사용하면 사용자 개인 정보를 우선시하는 동적 AI 애플리케이션을 구축할 수 있습니다. 또한 자체 머신에서 모델을 실행하면 더 빠른 추론, 즉각적인 사용자 지정, 추가 메타데이터 저장 기능, 챗봇의 동작을 미세 조정할 수 있는 유연성을 모두 자체 환경에서 누릴 수 있습니다.

Capella와 도커 모델 러너의 조합은 외부 API에 의존하지 않고도 AI 애플리케이션을 구축하는 데 필요한 속도, 제어 및 개인정보 보호 기능을 제공합니다. 챗봇을 만들든, 데이터를 분석하든, AI 기반 워크플로를 실행하든, 이 설정은 구축하는 모든 것이 효율적이고 확장 가능하며 완벽하게 제어되도록 보장합니다.

유일한 질문은 '무엇을 만들 것인가'입니다.



이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 벤 그린버그, 수석 개발자 에반젤리스트

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.