디스코드 AI 챗봇으로 CS 자동화하기 (feat. Flowise)

조경민·2024년 1월 23일
0

Cloudtype

목록 보기
2/2
post-thumbnail

안녕하세요, 지난 포스트에서 AI 챗봇으로 슬랙에서 연말정산 Q&A 자동화 하기 (feat. OpenAI) 라는 주제로 내용을 다루어 보았는데요, 이번에는 LMM 노코드 앱 빌더인 Flowise과 벡터 DB인 Pinecone을 활용하여 나만의 AI 챗봇을 만들어보도록 하겠습니다.

Flowise는 드래그 앤 드롭 방식으로 여러 모듈을 조합해 LLM을 활용할 수 있는 노코드 앱 빌더입니다. 별도의 코드를 작성하여 모듈 라이브러리를 추가하거나 설치할 필요가 없어 개발에 익숙하지 않은 사용자도 아주 간편하게 특화된 AI 서비스를 구축할 수 있다는 점이 큰 장점입니다.

Pinecone은 LLM에 학습시킬 텍스트 등을 벡터 값으로로 변환하는 임베딩(Embedding) 과정을 거친 데이터를 적재할 수 있는 벡터 DB 서비스이며, 무료로 기능을 이용해 볼 수 있습니다.

준비사항

따라하기

OpenAI API Key 발급

  1. OpenAI 대시보드에서 API Keys 페이지로 이동한 후 Create new secret key 버튼을 누릅니다. API 키의 이름은 용도에 따라 식별할 수 있는 이름으로 입력합니다.

  2. 생성된 API 키는 생성 당시 최초 1회만 조회할 수 있기 때문에 외부에 노출되지 않는 안전한 곳에 저장합니다.

Pinecone 프로젝트 및 인덱스 생성

  1. Pinecone 계정 생성 및 로그인 후 Create a Project 버튼을 눌러 적절한 이름의 프로젝트명을 입력하여 프로젝트를 생성합니다.

  2. 이어서 벡터 데이터가 저장될 인덱스를 생성합니다. 항목별 정보는 다음과 같습니다.

    • Give it a name: 용도에 따른 적절한 인덱스명
    • Configure your Index: OpenAI/text-embedding-ada-002
    • Capacity Mode: STARTER(무료)

  3. 인덱스 생성이 완료된 후, 인덱스 정보 표시 부분의 ENVIRONMENT 값을 보관합니다.

Pinecone API Key 발급

  1. 대시보드 좌측 메뉴에서 API Keys를 클릭하고 생성된 API Key의 값을 조회/복사한 후 안전한 곳에 보관합니다.

클라우드타입 Flowise 배포 및 접속

  1. 대시보드에서 + 아이콘을 누르고 Flowise 를 검색한 후 템플릿을 선택합니다.

  2. 더 많은 옵션 을 클릭하여 다음에 해당하는 값을 입력하고 배포하기 버튼을 누릅니다.

    • Flowise Admin Username: 어드민 계정명
    • Flowise Admin Password: 어드민 계정 패스워드

  3. 배포가 완료되면 접속하기 버튼을 눌러 접속하고 앞에서 설정했던 계정명과 패스워드로 로그인합니다.

Flowise 외부 서비스 인증정보 등록

  1. OpenAI와 Pinecone API 키 등록을 위해 Credentials 페이지로 이동 후 Add Credential 버튼을 클릭합니다.

  2. OpenAI를 검색한 후, OpenAI API를 선택합니다.

  3. 다음의 항목을 입력하고 Add 버튼을 누릅니다.

    • CREDENTIAL NAME: 적당한 인증정보명
    • OpenAI Api Key: 앞서 발급한 OpenAI API 키 값

  1. Add Credential 버튼을 다시 한 번 클릭하고 Pinecone API를 검색 후 선택합니다.

  2. 다음의 항목을 입력하고 Add 버튼을 누릅니다.

    • CREDENTIAL NAME: 적당한 인증정보명
    • Pinecone Api Key: 앞서 발급한 Pinecone API 키 값
    • Pinecone Environment: 생성한 인덱스의 ENVIRONMENT 값

Flowise Chatflow 생성

  1. Chatflows 페이지에서 Add New 버튼을 누릅니다.

  2. 왼쪽 상단의 + 아이콘을 클릭하고 Text Splitters 항목에서 Recursive Character Text Splitter 를 추가합니다. 입력값은 다음과 같이 설정합니다.

    • Chunk Size: 1000
    • Chunk Overlap: 200

  3. Document Loaders 항목에서 Pdf File을 추가하고 입력값은 다음과 같이 설정합니다. 이어서 Recursive Character Text SplitterPdf File 모듈을 이미지와 같이 연결합니다.

    • Pdf File: 학습시킬 Pdf File
    • Usage: One document per file

  4. Vector Stores 항목에서 Pinecone을 추가하고 입력값은 다음과 같이 설정합니다. 이어서 Pdf FilePinecone 모듈을 이미지와 같이 연결합니다.

    • Connect Credential: 기 등록한 Pinecone API 키
    • Pinecone Index: 생성한 인덱스명
    • Output: Pinecone Retriever

  5. Embeddings 항목에서 OpenAI Embeddings을 추가하고 입력값은 다음과 같이 설정합니다. 이어서 OpenAI EmbeddingsPinecone 모듈을 이미지와 같이 연결합니다.

    • Connect Credential: 기 등록한 OpenAI API 키

  6. Chat Models 항목에서 ChatOpenAI를 추가하고 입력값은 다음과 같이 설정합니다.

    • Connect Credential: 기 등록한 OpenAI API 키
    • Model Name: gpt-4-1106-preview, 혹은 gpt-3.5-turbo-1106
    • Temperature: 0.7

  7. Cache 항목에서 InMemory Cache를 추가하고 ChatOpenAI 모듈과 이미지와 같이 연결합니다.

  8. Chains 항목에서 Conversational Retrieval QA Chain을 추가하고 ChatOpenAI, Pinecone 모듈과 이미지와 같이 연결합니다.

  9. 우측 상단의 저장 아이콘을 누르고 적절한 이름을 입력하여 chatflow를 저장합니다.

Flowise PDF 파일 학습

  1. Pdf File 모듈의 Upload File 버튼을 누르고 학습대상 Pdf 파일을 업로드합니다.

  2. 우측 상단의 저장 아이콘을 클릭한 후 바로 아래의 데이터베이스 모양 아이콘을 클릭합니다. 이어서 Upsert 버튼을 누릅니다.

  3. 학습 및 벡터 데이터 적재가 완료되면 메세지 아이콘을 클릭 후 질문을 입력합니다. 업로드한 PDF의 내용을 기반으로 답변이 정상적으로 수신되는지 확인합니다.

Flowise API 인증키 설정

  1. Chatflow 대시보드 우측 상단의 </> 아이콘을 클릭합니다.

  2. CURL 탭을 누르고 우측 Configuration 드롭다운에서 DefaultKey를 선택합니다. 이어서 표시되는 curl 명령어 중, URL 부분과 API 인증키 부분을 안전한 곳에 보관합니다.

curl https://flowise-flowise-o0ynn2alrq33ml2.sel5.cloudtype.app/api/v1/prediction/66f00643-ed93-4d09-b7bd-12285b1b4c95 # API 엔드포인트 \
     -X POST \
     -d '{"question": "Hey, how are you?"}' \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer BPZQP8/3GAOZ8nS6HIVPG+2e3PvK+sQ8RTP1Alj7l6c=" #인증키

디스코드 Applciation 생성 및 설치

  1. 디스코드 개발자 포털 에 접속한 후, 우측 상단의 New Application 버튼을 누르고 적절한 이름을 입력해 생성합니다.

  2. Bot 페이지로 이동하여 Reset Token 버튼을 누르고 생성된 Bot 토큰 값을 안전한 곳에 보관합니다.

  3. 동일 페이지 하단으로 이동하여 Privileged Gateway Intents의 항목의 MESSAGE CONTENT INTENT를 활성화 합니다. 이어서 Save Changes 버튼을 누릅니다.

  4. OAuth2 > General 페이지로 이동하여 CLIENT ID 값을 안전한 곳에 보관합니다.

  1. OAuth2 > URL Generator 페이지로 이동하여 이미지와 같이 선택한 후 하단의 URL을 복사합니다.
  1. 복사한 URL을 브라우저 주소창에 입력 후 접속합니다. 이어서 AI챗봇을 사용할 디스코드 서버를 선택한 후 계속하기 버튼을 누르고 다음 화면에서 승인 버튼을 누릅니다.

  2. 디스코드 좌측 하단의 설정 아이콘을 누르고 고급 페이지의 개발자 모드를 활성화 합니다.

  3. 디스코드 우측에서 AI챗봇을 사용할 서버 아이콘을 마우스 우측으로 클릭한 뒤 서버 ID 복사하기 버튼을 눌러 값을 안전한 곳에 보관합니다.

클라우드타입 디스코드 AI챗봇 서버 배포

  1. 클라우드타입 대시보드에서 + 아이콘을 누르고 AI Chatbot - Discord 템플릿을 선택합니다.

  2. 배포 설정값을 다음과 같이 입력하고 배포하기 버튼을 누릅니다.

    • Discord Bot Trigger Text: AI챗봇을 호출할 텍스트(영문 소문자 혹은 한글)
    • Discord Bot Token: 디스코드 Bot 토큰
    • Discord Client ID: 디스코드 Client ID
    • Discord Guild ID: 디스코드 서버 ID
    • API Type: Flowise API
    • Flowise API Endpoint: Flowise API 엔드포인트 URL
    • Flowise API Key: Flowise API 인증키

  3. Bot이 설치된 디스코드 서버의 채널에서 / + AI챗봇 호출 텍스트를 입력하고 이어서 질문을 입력한 후 전송합니다. 이후 정상적으로 API로부터 응답이 오는지 확인합니다.

참고

Youtube 튜토리얼

기타 문서

profile
Live And Let Live!

1개의 댓글

comment-user-thumbnail
2024년 2월 19일

안녕하세요, 경민님 : )
컨텐츠 둘러보다가 작가님을 알게 되어 답글 남깁니다.

AI 애플리케이션 개발에 필요한 데이터 인프라를 하나로 통합한 데이터베이스를 만들고 있는 데이터베이스 스타트업 Cognica 입니다.

금번에 AI 챗봇 개발 시 벡터 DB를 Pinecone으로 선택하셨는데요,
Cognica는 C++ 기반 OLTP 데이터베이스 위에 Secondary index를 통해 텍스트 검색과 벡터 검색을 모두 구현하여, 단일의 데이터베이스 만으로 RAG 구성이 가능합니다. Raw Data와 벡터 임베딩 값을 별도로 분리할 필요 없이 동시에 하나의 데이터베이스에 저장할 수 있고 1개의 컬렉션 당 다수의 임베딩 모델 사용 가능합니다. 또한 데이터 저장소간 동기화, 클러스터링, 샤딩 등의 작업이 전혀 필요가 없어 매우 빠르게 인프라를 구축할 수 있습니다.

경민님 컨텐츠를 보고 초기 베타 테스터로 모시고 싶어서 댓글을 남겨드립니다.
현재 설치형 파일로 모든 기능을 무료로 사용할 수 있으며, 테스트와 피드백을 부탁드리고 싶습니다.

홈페이지: https://bit.ly/3SIgPjh
개발 매뉴얼: https://bit.ly/3SMll0c (매뉴얼 하단에 튜토리얼도 참고)

관련하여 궁금하신 점이 있으면 언제든 tim@cognica.io 로 편히 연락 주시면 됩니다!

답글 달기