기본 콘텐츠로 건너뛰기

5월, 2023의 게시물 표시

#2 랭체인으로 문서기반(엑셀, 구글시트, PDF) 슬랙 챗봇 만들기 Langchain Document basis Slack chatbot server like the ChatPDF (Langchain + GPT API + PDF, CSV, Google docs + Python)

  지난 시간에는 챗봇 서버를 flask로 구성하고 langchain을 메인으로 pyPDF, Pandas 를 통해 pdf파일 과 csv 파일을 토대로 대답을 하는 봇을 만들어 보았다.  그리고 그 Flask 서버에 JSON requests를 보내서 응답을 받는 것 까지 확인했다. 이번엔 pdf요약이나 csv, xlsx 파일로 질답 말고 지난번에 해보지 않았던 Google Docs를 불러와 작업하는 것을 해보겠다.   But, 나의 최종 목적지는 바로 Slack Bot! 업무자동화의 끝은 봇이 아니겠는가!!  사실, 2월에 RTM(real time message) 기반으로 코드를 작성했는데 이 API가 슬랙 정책상 바뀌었다고 한다.( https://api.slack.com/rtm )  후.. 그래서 정말 이 문제를 해결하는데 많은 시간이 걸렸던 것 같다. 일단 개인pc를 서버로 사용해야하고 pc가 꺼지면 봇도 돌지 않는 문제가 있지만 뭐.. 항상 켜놓는 pc가 있으니 작업이 완료되면 옮기면 된다는 생각으로 도전해봤다.   일단 내가 겪은 문제를 설명하기 전에 내 인터넷 환경은 이렇다. 인터넷 -  LG U+ 기가 인터넷 모뎀 -> LGU+ 공유기  - ASUS 공유기                                                                        -> RaspberryPi3 (Home Assistant docker 서버가 구동 중)                                                                        -> RaspberryPi4 (TelsaMate 용 docker 서버가 구동 중)                                                                        -> 지금 사용중인 랩탑과 같은 기기들 헌데 문제는 Home Assistant 를 구성하기 위해서.. 내가 사용중인 것들이 있었으니..

#1 Langchain Document basis chatbot server like the ChatPDF 랭체인으로 ChatPDF같은 문서기반 챗봇서버 만들기 (GPT API + PDF, CSV + Python)

 회사의 expense policy 와 Members list를 토대로 경영지원팀에게 올 수 있는 다양한 질문에 대응하는 챗봇을 만들어보고 싶었다.  처음에는 Python 과 Slack 채널 실시간 연동을 먼저 구성하고 잘 오고가는게 보이면 그 때 추가 작업을 해야겠다고 생각하며 진행하다보니,  아무래도 진행이 잘 안되기도 하고.. 최근에 www.recipegarden.live 라는 AI가 밥차려주는 웹페이지? 를 론칭하게 되어서 바쁘다보니 신경을 못썼다. 그러던 와중에 Langchain 이라는 녀석을 사용하는 유튜버의 게시물을 발견했는데, 덕분에 아주 편하게 만들어 볼 수 있게 되었다.   일단 python 모듈 구성은 이렇다. 1. OpenAI ( ChatGPT 3.5를 사용했다. ) 2. PyPDF (PDF를 읽어주는 녀석) 3. Langchain (각종 데이터를 AI에게 일목요연하게 알아서 잘 전달해주는 중간매개채.) 3. Flask (Python 으로 서버 구동) 4. Pandas (csv파일 분석을 위한 데이터 프레임) 코드 구성은 A. PDF 기능       1. 먼저 API 키를 입력해주고, PDF 파일을 읽어서 텍스트로 특정 변수에 담아준다.      2. 1에서 담아둔 텍스트는 랭체인으로 요약한다.      3. 랭체인에게 참조할 텍스트를 지정하고 질문과 함께 전달하면      4. OpenAI GPT-3.5로부터 들은 답변을 랭체인이 전달해준다. B. Dataframe 변수에 csv 파일을 pandas 모듈을 사용해서 담아준다. (변수명 df)      1. 마찬가지로 만능인 Langchain agent에게 pandas 데이터프레임을 기반으로 어떤 AI에게 어떤 데이터를 토대로 어떻게 진행할것인지 파라미터를 입력해서 전달하면 대답해준다. C. 데이터, 파라미터를 flask서버에서 process_data 라는 함수로 받아서 처리하고 출력 코드는 다음과 같다.  from flask import Flask , request , jsonify im