기본 콘텐츠로 건너뛰기

Google sheet(+Google apps script) 만으로 손쉽게 슬랙 생일축하 봇 만들기. Slack Birthday message bot via Googlesheet(+Google apps script)

안녕하세요.  제가 비전공자이기 때문에 비전공자도 가능한 방법입니다. 저희 회사는 Birthdaybot 이라는 Slack app을 사용해왔는데, 최근에 아래와 같이 free plan limit 이 끝났다는 메시지를 받게 되었습니다.. 흑.. 20%할인을 해준다고 하지만.. 인당 0.99 달러~ 1.99 달러를 지불하고 사용하느니 직접 만들어봐야겠다고 생각해서 도전했습니다. (이 블로그 를 참고했는데 오류나는 코드를 일부 수정하고 기능을 추가했습니다. Chavo님 감사합니다!!) 먼저 결과물은 이렇게 됩니다.  저희 회사는 기본언어가 영어라 영어로 했지만 한글로 바꾸시면 됩니다!  자 그럼, 멤버의 생일이 되면 특정 슬랙 채널에 메시지를 작성하면서 생일자를 부르면서 축하해는데,  이 때 생일 축하 메시지도 고정되어 있는게 아니라 여러개를 등록해서 랜덤하게 출력하는 봇을 만들어 볼게요. 전체적인 진행 순서는 아래와 같습니다. 1. 슬랙 incoming webhook 페이지 에 가서 (https://slack.com/apps/A0F7XDUAZ-incoming-webhooks) 2. 알림이 가길 원하는 채널 선택 후 추가, webhook URL을 복사 3. 구글 시트에서 apps-script 코드를 추가 4. 트리거 설정하면 끝! 1번부터 차례대로 해봅시다. https://slack.com/apps/A0F7XDUAZ-incoming-webhooks 에 방문하면 로그인을 해야합니다. 로그인 후 Add to Slack을 누릅니다. 2. 그 다음,   적절한 채널 명을 지정하고 add incoming webhooks integration 버튼을 누릅니다. 그리고 빨간글씨의 URL을 복사해서 잘 어디 메모장 같은 곳에 둡니다. 아래로 스크롤해서 내리면 봇의 이름과 아이콘을 지정할 수 있습니다. 원하는 봇 이름과 아이콘으로 바꿔주세요! 3. 구글시트로 갑니다. 구글시트 양식의 형태는 이렇게 해줍니다. 브라우저에서 구글시트의 URL주소를 잘 보시면 d/ 부터 다음 / 까지
최근 글

Selenium status code -9 오류 해결

/opt/homebrew/bin/python3.10 /Users/ivan/PycharmProjects/Auto_Order2/main.py Traceback (most recent call last): File "/Users/ivan/PycharmProjects/Auto_Order2/main.py", line 46, in <module> driver = webdriver.Chrome(service=service, options=options) File "/opt/homebrew/lib/python3.10/site-packages/selenium/webdriver/chrome/webdriver.py", line 45, in __init__ super().__init__( File "/opt/homebrew/lib/python3.10/site-packages/selenium/webdriver/chromium/webdriver.py", line 53, in __init__ self.service.start() File "/opt/homebrew/lib/python3.10/site-packages/selenium/webdriver/common/service.py", line 109, in start self.assert_process_still_running() File "/opt/homebrew/lib/python3.10/site-packages/selenium/webdriver/common/service.py", line 122, in assert_process_still_running raise WebDriverException(f"Service {self._path} unexpectedly exited. Status code was: {return_code}") selenium.common.exceptions.WebDriverException:

Tor를 활용해서 Python Selenium 크롤링 IP차단 우회하기

N잡러가 되기 위해 특정 사이트를 주기적으로 (1시간에 3회) 크롤링해오는 코드를 짰다. 1. 파이썬크롤링 후 웹페이지에 게시하고  2. 주문접수 폼에서 주문을 받아서 3. 받은 폼 정보를 기반으로 풀 자동화를 통해  물건을 판매를 알선하고 원 판매자로부터 수수료를 받는 부업! 헌데... 모든 코드 작성과 테스트가 끝날 무렵 나를 충격에 빠트린것이 있었으니... 바로.. IP가 차단 된 것이다. 판매자와 일종의 동업자(라고 말하고 하청업자라고 읽는다) 관계지만 그래도.. IP차단이라니.. 하지만 판매자는 판매자일 뿐 개발자가 아니기도 하고.. 이렇게 내가 편하게 수익을 가져가게 되는 것을 알게되신다면... 수수료를 낮추실 수도 있어 risky하다. 하핳... 그래서! Tor라는 솔루션을 활용해 IP차단을 우회했다. 먼저 기존 코드를 건드리기보다는 테스트를 위한 코드를 작성했는데 그 코드를 공유한다. from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager #Chrome webdriver 를 자동으로 다운받도록 추가 import os # To use Tor's SOCKS proxy server with chrome, include the socks protocol in the scheme with the --proxy-server option # PROXY = "socks5://127.0.0.1:9150" # IP:PORT or HOST:PORT torexe = os.popen( r'/opt/homebrew/bin/tor/' ) PROXY = "socks5://localhost:9050" # IP:PORT or HOST:PORT service = Service( executable_path =ChromeDrive

#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

하이브매퍼 대쉬캠으로 운전하면서 암호화폐 채굴하기(Getting crypto currency via driving with The Hivemapper Dashcam)

 Hive Mapper 라는 스타트업(https://hivemapper.com)은  Multicoin Capital, Solana Ventures 로부터 1800만 달러로  한화 약 240억의 투자( https://bloomingbit.io/news/6917095870076813376) 도 받고 승승장구 하고 있는 스타트업의 제품이다.  240401 추가 : 일단 10개월동안 번 4만개의 허니를 지난 1월 경 솔라나로 모두 전환했고 총 2000만원정도를 벌었습니다 현재까지. 이참에 하나더 주문을 하게되었고 할인을 못받고 주문했는데 알고보니 할인코드를 찾으면 나오더군요 ㅠㅠ  다른분들이라도 제 코드로 할인 받으시라고 여기에 만들어서 공유드립니다. #hivemapper #10%DC  - 하이브매퍼 구매 링크와 10% 할인 코드 :  https://hivemapper-market.myshopify.com/discount/YEJINJEONG?ref=rBPvC5mA8DgCwJ - 10%할인 코드 : YEJINJEONG Hive mapper 와 Honey는 Observer 앱 & Observer coin(거래소 상장 되었음)과 비슷한데 옵저버는 개인과 개인, 기업이 매일의 날씨 데이터를 거래하는 플랫폼이다. 하이브 매퍼는 개인이 네이버, 다음 , 구글 로드뷰 같은걸 찍어주고 이에 대한 보상을 암호화폐로 받는거라고 보면 된다. 기업, 개인에게 데이터에 대한 중개역할을 하는게 바로 이 Hive mapper 솔루션! Observer 라는 코인은 21년 52주 최고가 0.00000097 BTC 로 한화 54.94원을 했었다. 날씨 정보는 이미 제공하는 플랫폼이 국가기업으로 있기에.. 그것보다 이렇게 사기업이 1년~2년 마다 찍어서 업데이트 하고 있는 로드뷰 정보보다는 값이 비싼 정보라고 생각이 들어 최소 60원은 가겠구나! 하는 생각으로 일단 질러봤었다.  이 글을 쓰는 지금까지 11,000 개의 토큰을 확보했으니 66만원을 벌었다고 생각하면 기분이 좋다. 구입비가 통관