본문 바로가기
AI 도구

Librechat: 온라인, 오프라인 AI 모델을 통합한 오픈소스 챗봇 플랫폼

by James AI Explorer 2024. 5. 15.
    728x90

    안녕하세요! 오늘은 Librechat이라는 깃 허브 스타 11k챗봇 플랫폼을 소개해드리겠습니다. LibreChat은 오픈AI, 구글, 마이크로소프트, Ollama, Groq 등 다양한 AI 모델의 통합커스터마이징이 가능한 UI를 갖춘 챗봇 플랫폼으로, 멀티모달 채팅, 다국어 지원, 파일 RAG 등의 기능을 제공하며, 오픈소스 기반으로 커뮤니티 개발이 가능합니다. 이 블로그에서는 LibreChat의 주요기능과 설치 및 환경설정 방법에 대해서 알아보겠습니다. 

    Librechat: 온라인, 오프라인 AI 모델을 통합한 오픈소스 챗봇 플랫폼
    Librechat의 구글 제미나이 RAG 기능
    Librechat의 BingAI 이미지 생성 화면

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

    LibreChat 개요

    LibreChat은 강력한 기능과 다양한 특징을 가진 오픈소스 챗봇 플랫폼으로, 사용자들이 다양한 AI 모델을 통합하여 자유롭게 활용할 수 있도록 지원합니다. 이 플랫폼은 다음과 같은 주요 기능과 특징을 제공합니다:

    • UI 매칭 및 Dark 모드 지원: ChatGPT와 동일한 UI를 제공하며, Dark 모드 및 최신 업데이트를 지원합니다.
    • 다양한 AI 모델 선택: OpenAI, BingAI, Google Vertex AI, Anthropic(Claude), Mistral AI, Ollama, Groq, Cohere 등 다양한 온라인 및 오프라인 AI 모델을 선택하여 활용할 수 있습니다.
    • 채팅 중 AI 엔드포인트 및 프리셋 변경: 채팅 중에 AI 엔드포인트와 프리셋을 변경할 수 있습니다.
    • 멀티모달 채팅: 이미지 및 파일 업로드와 분석, 코드 해석기, API 액션 등 다양한 멀티모달 채팅을 지원합니다.
    • 다국어 UI: 다양한 언어로 사용 가능한 UI를 제공합니다.
    • 커스터마이즈 가능한 드롭다운 및 인터페이스: 사용자의 요구에 맞게 커스터마이즈 가능한 인터페이스를 제공합니다.
    • 검색 기능: 모든 메시지 및 대화를 검색할 수 있습니다.
    • 플러그인: 웹 액세스, DALL-E-3를 사용한 이미지 생성 등 다양한 플러그인을 제공합니다.
    • 다중 사용자 및 보안 인증: 다중 사용자 및 보안 인증을 지원하며, 중재 및 토큰 소비 도구를 제공합니다.
    • 오픈소스 및 커뮤니티 기반 개발: 완전히 오픈소스로 개발되었으며, 커뮤니티 기반의 개발과 지원을 받습니다.

    LibreChat의 가장 큰 특징은 대부분의 온라인, 오프라인 언어 모델을 하나의 플랫폼에서 손쉽게 변경하여 사용할 수 있다는 것과, RAG, 멀티모달, 커스터마이징 등 다양한 기능을 모두 지원하는 것입니다. 

     

    Librechat 메인 화면

    728x90

    LibreChat 설치 및 설정

    LibreChat의 설치를 위해서는 Ollama 도커(Docker) 데스크탑이 설치된 상태에서 아래 명령어를 단계별로 실행하시면 됩니다. git clone 명령어로 깃 허브의 레포지토리를 복제한 후, 작업디렉토리로 이동하여, 다음과 같이 파일을 복사합니다.

    git clone https://github.com/danny-avila/LibreChat.git
    cd LibreChat
    copy .env.example .env
    copy librechat.example.yaml librechat.yaml
    copy docker-compose.override.yml.example docker-compose.override.yml

    깃 허브 레포지토리 복제

    https://www.librechat.ai/docs/local/docker

     

    Docker

    How to install LibreChat locally with Docker

    www.librechat.ai

     

    다음은 VSCode에서 LibreChat 디렉토리 밑에 .env 파일을 열고 Groq과 Cohere에서 발급받은 API Key를 입력합니다.

    Groq과 Cohere API Key 입력

    API Key를 입력한 다음 파일의 마지막 부분에 아래와 같이 RAG 설정내용을 추가합니다. 

    RAG_API_URL=http://rag_api:8000
    EMBEDDINGS_PROVIDER=ollama
    EMBEDDINGS_MODEL=nomic-embed-text
    OLLAMA_BASE_URL=http://host.docker.internal:11434

    RAG 설정내용 추가

    다음은 docker-compose.override.yml 파일을 열고 다음 부분을 주석처리한 #을 삭제하여 코드를 활성화합니다.  

    # USE RAG API IMAGE WITH LOCAL EMBEDDINGS SUPPORT
        rag_api:
          image: ghcr.io/danny-avila/librechat-rag-api-dev:latest

    docker-compose.override.yml RAG 설정부분

    services:
    
    # # USE LIBRECHAT CONFIG FILE
        api:
          volumes:
          - type: bind
            source: ./librechat.yaml
            target: /app/librechat.yaml

    docker-compose.override.yml 환경설정 부분

    다음은 Ollama 엠베딩 모델을 사용하기 위해 명령어 프롬프트에서 "ollama pull nomic-embed-text" 명령을 실행합니다. 이렇게 하면 RAG과 기본 환경설정은 끝나고, 다음은 언어모델 환경설정입니다.

    ollama pull nomic-embed-text

    Ollama 설정

    먼저, Ollama 언어 모델을 구성하기 위해 librechat.yaml을 열고 들여 쓰기에 주의하여 다음 부분을 추가합니다. 

        # Ollama
        - name: "Ollama"
          apiKey: "ollama"
          # use 'host.docker.internal' instead of localhost if running LibreChat in a docker container
          baseURL: "http://host.docker.internal:11434/v1/"
          models:
            default: [
              "llama2",
              "mistral",
              "codellama",
              "dolphin-mixtral",
              "mistral-openorca"
              ]
          # fetching list of models is supported but the `name` field must start
          # with `ollama` (case-insensitive), as it does in this example.
            fetch: true
          titleConvo: true
          titleModel: "current_model"
          summarize: false
          summaryModel: "current_model"
          forcePrompt: false
          modelDisplayLabel: "Ollama"

    librechat.yaml

    다음은 docker-compose.override.yml 파일에 아래 내용을 찾아서 주석처리한 #을 삭제하여 코드를 활성화합니다.  

    # # ADD OLLAMA
        ollama:
          image: ollama/ollama:latest
          deploy:
            resources:
              reservations:
                devices:
                  - driver: nvidia
                    capabilities: [compute, utility]
          ports:
            - "11434:11434"
          volumes:
            - ./ollama:/root/.ollama

    docker-compose.override.yml

    Librechat 실행

    설정이 완료되면 이제 Librechat을 실행할 단계입니다. 실행방법은 도커 데스크탑을 실행한 상태에서 아래 명령어로 도커 컨테이너를 실행하면 됩니다. 기존 컨테이너(Open WebUI 등)가 영향을 미치는지 확인해서 필요하면 삭제합니다. 

    docker compose up -d

    docker compose up -d 실행화면

    명령어를 실행하면 아래 화면과 같이 도커 컨테이너가 실행됩니다. Librechat 컨테이너의 포트번호를 클릭하면 http://localhost:3080/c/new의 주소에서 Librechat의 메인화면이 열립니다. 

    도커 컨테이너 실행화면
    Librechat 메인 화면

    위 화면에서 OpenAI와 Assistant, Plugins는 유료인 OpenAI API Key를 입력해야 동작하며, Anthropic도 무료 토큰이 다 소진되면 유료 구독이 필요할 수 있습니다. Ollama를 선택하면 "ollama list" 명령어로 확인되는 로컬 언어 모델들의 리스트가 보여지며, 아래와 같이 정상동작하였습니다. 

    Ollama 언어 모델의 동작화면
    Groq 언어 모델의 동작화면

    구글 및 BingAI 설정

    구글과 빙AI는 다음과 같이 Librechat 실행 후, 언어 모델 설정 메뉴에서 별도로 설정해줍니다. 구글은 https://aistudio.google.com/app/apikey(구글 AI 스튜디오)에 접속하여 API Key를 발급하여 아래 화면과 같이 입력합니다. 구글 클라우드 프로젝트가 없는 경우에는 아래 링크를 참고해서 생성하시면 됩니다. 

    https://cloud.google.com/appengine/docs/standard/python3/building-app/creating-gcp-project?hl=ko

     

    Google Cloud 프로젝트 만들기  |  Google App Engine standard environment docs

    의견 보내기 Google Cloud 프로젝트 만들기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. App Engine에 앱을 배포하려면 Google Cloud 프로젝트와 App Engine 애플리케

    cloud.google.com

    구글 AI 스튜디오 API Key 생성화면
    구글 클라우드 프로젝트 선택화면
    Librechat 구글 API Key 설정 화면
    Librechat 구글 API Key 입력 화면

    다음은 빙AI 설정방법입니다. https://www.bing.com/에 로그인하고, Edge 브라우저 기준 우측 메뉴에서 기타 도구, 개발자도구를 클릭하고 상단의 네트워크를 클릭하면, 아래 화면과 같이 쿠키를 확인할 수 있습니다. 

    Edge 브라우저 개발자도구 선택
    개발자 도구 빙 쿠키 확인방법

    개발자 도구화면에서 쿠키를 복사하여 Librechat의 빙 API Key 설정을 클릭하고, 복사한 쿠키값을 입력합니다. 

    Librechat의 빙 API Key 설정
    빙 쿠키값 입력

    이렇게 해서 구글, 빙, Ollama, Groq, Cohere 언어 모델의 설정이 완료되었습니다. 이중 구글의 제미나이 프로는 멀티모달 모델로 이미지를 인식하고 설명할 수 있습니다. OpenAI, Anthropic, Mistral도 유료 API Key를 입력하면 온라인 언어모델을  사용하실 수 있습니다. 

    빙AI 대화화면

    특히, 빙 AI는 아래화면과 같이 인터넷 검색을 통한 답변과 이미지 생성 답변이 가능합니다. 

    빙AI 인터넷 검색 답변화면
    빙AI 이미지 생성 답변화면

    빙 AI를 제외한 Ollama, 구글, Groq, Cohere 모델은 다음 화면과 같이 로컬 파일에 대한 RAG 답변이 가능합니다. 

    Ollama RAG 답변화면
    Cohere RAG 답변화면
    제미나이 RAG 답변화면

    또한 구글 제미나이 프로 비전이미지의 설명이 가능하며, 빙 AI는 DALLE3를 통한 이미지 생성이 가능합니다 .

    구글 제미나이 프로 비전으로 이미지를 설명하는 화면
    BingAI로 이미지를 생성한 화면

     참고로, 채팅 입력창에서 @를 입력하면 아래 화면과 같이 언어모델을 바로 선택해서 변경하실수 있습니다. 

    채팅창 언어모델 선택 화면

     

     

     

    맺음말

    오늘 블로그에서는 다양한 AI 모델을 통합하고 사용자 맞춤형 챗봇 플랫폼을 구축할 수 있도록 지원하는 강력한 오픈 소스 챗봇 플랫폼 LibreChat에 대해서 알아보았습니다. LibreChat은 OpenAI, Google, Microsoft, Ollama, Groq, Claude 등 다양한 온라인 및 오프라인 AI 모델을 활용할 수 있으며, 멀티모달 채팅, 다국어 지원, 파일 RAG 등의 기능을 제공합니다.

     

    LibreChat는 다양한 AI 모델을 활용하여 챗봇을 개발하고 싶은 개발자나 사용자에게 매우 유용한 플랫폼입니다. 이 블로그에서는 LibreChat의 주요 기능, 설치 및 환경 설정 방법, 다양한 AI 모델 설정 방법 등을 자세히 살펴보았습니다. 여러분도 LibreChat를 활용하여 자신만의 챗봇을 만들어보시면 어떨까요? 그럼 저는 다음 시간에 더 유익한 정보를 가지고 다시 찾아뵙겠습니다. 감사합니다. 

     

    https://fornewchallenge.tistory.com/

     

     

    2024.05.07 - [AI 도구] - Msty와 Open WebUI: 직관적인 UI와 로컬 RAG까지 지원하는 언어 모델 활용 도구

     

    Msty와 Open WebUI: 직관적인 UI와 로컬 RAG까지 지원하는 언어 모델 활용 도구

    안녕하세요! 오늘은 로컬 및 온라인 언어 모델을 간편하게 사용할 수 있는 Msty와  Open WebUI에 대해 알아보겠습니다. Msty는 클릭 한 번으로 인기 있는 대형 언어 모델과 상호 작용할 수 있는 직

    fornewchallenge.tistory.com

    728x90