반응형

Python 377

[Slack Bolt] 파이썬 Slack App 댓글 기능 구현 예제

안녕하세요. 이번 글에서는 Python slack bolt 모듈을 활용하여 특정 텍스트가 인식되면 스레드에 댓글을 달게 만드는 아주 간단한 슬랙앱 예제를 다루어보도록 하겠습니다. 이번에 다룰 슬랙앱의 기능은 '안녕' 또는 '안녕하세요'가 포함된 내용을 작성하면 맞인사를 스레드 댓글로 작성해주는 간단한 슬랙앱입니다. 1. Slack App 생성 및 토큰 체크 만일, 아직 슬랙앱을 생성하지 않았다면, 생성 후 채널에 추가하는 과정이 필요합니다. 이와 관련된 내용은 이전에 상세히 작성해두었으니, 아래 글을 참고해주세요. 슬랙앱(Slack App) 생성 설정 방법 완벽 가이드 Slack에서는 슬랙앱을 만들어 워크스페이스 내에서 원하는대로 여러 기능을 수행하는 봇을 운영할 수 있는 기능을 제공합니다. 이를 위하여..

Python/Slack API 2023.11.24

슬랙앱(Slack App) 생성 설정 방법 완벽 가이드

Slack에서는 슬랙앱을 만들어 워크스페이스 내에서 원하는대로 여러 기능을 수행하는 봇을 운영할 수 있는 기능을 제공합니다. 이를 위하여 슬랙앱을 처음에 만들 때, 권한 등 여러 가지 항목에 대한 설정을 해야 하지만, 이 과정이 다소 복잡하여 올바르게 진행하는 것이 어려울 수 있습니다. 이에 도움을 드리기 위하여, 슬랙앱 생성과 관련된 튜토리얼을 제공해보도록 하겠습니다. 0. 앱 생성 준비 단계 1. 먼저, https://api.slack.com/ 사이트에 접속하고, 슬랙 계정 로그인을 합니다. 2. 우측 상단의 Your apps 메뉴를 클릭해줍니다. 3. 중앙에 보이는 Create an App 버튼을 클릭해줍니다. 4. 여기서는 저희가 원하는 기능을 처음부터 커스텀 모드로 설정해보려고 합니다. 따라서,..

Python/Slack API 2023.11.05

ValueError: Precision not allowed in integer format specifier 원인 및 해결 방법

파이썬에서 f-string이나 format 함수를 활용한 문자열 포맷팅을 진행할 때, 포맷팅 문법을 잘못 사용하여 간혹 ValueError: Precision not allowed in integer format specifier 오류가 발생하는 경우가 있습니다. 이번 글에서는 해당 에러가 발생되는 원인과 해결 방법을 정리해보도록 하겠습니다. 에러 발생 예시 아래와 같이 f-string으로 정수 포맷팅을 시도하는 상황을 가정해보도록 하겠습니다. month = 2 day = 12 today = f'오늘은 {month:.02d}월 {day:.02d}일 입니다.' # ValueError: Precision not allowed in integer format specifier 여기서 해당 ValueError가..

Python/Debugging 2023.10.17

파이썬에서 다른 폴더 내 py 파일을 import하는 방법 정리

Python에서 다른 폴더 내의 py 파일을 모듈로 임포트해야 하는 경우가 있습니다. 이 경우 다른 디렉토리에 속한 py 파일의 함수들을 가져오는 방법을 몇 가지 케이스로 나누어 정리해보도록 하겠습니다. 그 전에, py 파일 import에 관한 기본적인 내용에 대한 정리가 먼저 필요하시다면, 아래 글도 같이 참고해보세요. py 파일 import 방법, if __name__ == '__main__' 의미, Colab에서 py 파일 가져오기 py 파일 import 다른 py 파일 내에 작성된 함수나 클래스를 가져오고 싶은 경우가 있을 것입니다. 또한, 작성된 코드에서 if __name__ == '__main__' 이라는 부분을 많이 보셨을 수 있는데요. 이번 글에서는 jimmy-ai.tistory.com 여..

파이썬 json 저장 시에 한글이 \uac00처럼 깨져 보일 때 해결 방법

Python에서 json 파일을 저장하는 과정에서 한국어나 한자 등의 문자가 유니코드 형태(\uac00과 같은 형태)로 깨져 보이는 경우가 있습니다. 이런 경우에 글자 원본 그대로 인코딩되도록 변환하는 방법을 간략하게 정리하여 살펴보도록 하겠습니다. json 변환 시 글자가 유니코드로 저장되는 예시 아래 예제 코드와 같이 json.dump 혹은 json.dumps 메서드를 기본 설정으로 사용하여 json 양식을 저장하게되면 아래와 같이 유니코드 형태로 출력이 됩니다. import json data = {'이름': '가나다라마바사'} result = json.dumps(data) print(result) # {"\uc774\ub984": "\uac00\ub098\ub2e4\ub77c\ub9c8\ubc14\..

Python/Debugging 2023.10.15

셀레니움에서 텍스트 입력 시 줄 바꿈이 안될 때 해결 방법

파이썬의 selenium을 활용하여 텍스트 입력란에 자동 입력을 진행하는 경우, 홈페이지의 구조에 따라서 개행 문자인 '\n'이 일반 공백처럼 인식되어 줄 바꿈이 안되는 경우가 발생할 수 있습니다. 이럴 때, 엔터 키를 입력하여 줄 바꿈을 진행하면 해결이 가능한 경우가 있는데요. 이번 글에서 예시 코드를 간략하게 정리하여 살펴보도록 하겠습니다. 텍스트 입력 줄 바꿈 기본 방법 예제 개행행 문자가 포함된 문자열을 셀레니움을 통하여 텍스트 입력창에 입력하려는 경우, 일반적으로는 다음 코드처럼 진행하게 됩니다. from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() txt_box =..

Python/Crawling 2023.10.13

파이썬으로 구글 검색 결과 링크 및 텍스트 추출하기 예제

Python에서 googlesearch 모듈을 활용하여 구글 검색 결과의 링크를 가져오고, 이후 크롤링 과정을 통하여 해당 링크 내의 텍스트를 추출하여 가져오는 예제를 간략하게 다루어보도록 하겠습니다. 구글 검색 결과 링크 가져오기 먼저, !pip install googlesearch-python 명령어로 googlesearch 모듈을 설치해준 뒤, search 메서드를 이용하여 검색 결과 상위 링크를 가져와 보겠습니다. '파이썬 예제'라는 검색어로 상위 5위까지의 검색 결과 링크를 출력하는 예시는 아래 코드와 같습니다. from googlesearch import search result = search("파이썬 예제", num_results = 5) for url in result: # result는..

Python/Utils 2023.10.11

SyntaxError: 'await' outside function 원인 및 해결법

파이썬에서 asyncio 모듈로 비동기 처리 구현을 하는 과정에서 자주 발생할 수 있는 오류 종류인 SyntaxError: 'await' outside function에 대하여 발생 원인과 해결 방법을 간단하게 요약하여 정리해보도록 하겠습니다. 에러 발생 원인 일반적으로 py 파일을 실행하는 과정에서 다음과 같이 await 구문을 함수 밖 혹은 async 함수가 아닌 일반 함수 안에서 사용하려는 경우에 해당 구문 오류가 발생하게 됩니다. (await 구문은 비동기 함수 내에서만 호출이 가능합니다.) import asyncio await asyncio.sleep(5) # 함수 밖에서 사용 # 또는 def main(): # async가 아닌 일반 함수 내에서 사용 await asyncio.sleep(5) 오..

Python/Debugging 2023.10.09

파이썬 pipenv 가상 환경 관리 기초(특징 및 명령어 정리)

파이썬 프로젝트를 conda 환경으로 관리하는 경우가 많지만, 때로는 pipenv로 가상 환경을 다루는 것이 큰 이점을 가져다주는 경우도 있습니다. 이번 글에서는 아주 간략하고 쉽게 pipenv의 특징과 장점 및 기본적인 명령어 몇 가지를 정리해보도록 하겠습니다. pipenv 특징 및 장점 pipenv가 conda와 구분되는 특징 중 가장 대표적인 내용은 다음과 같습니다. 디렉토리마다 가상 환경을 별도로 두는 것이 특징입니다.(한 가상 환경을 여러 프로젝트가 공유할 수 있는 conda와는 대비되는 특징입니다.) dev 버전에서만 필요한 의존성을 별도로 두고 관리할 수 있습니다. 패키지 버전 의존성을 관리하고 쉽게 배포 가능합니다.(Pipfile 및 Pipfile.lock 파일들로 관리됩니다.) 이 외에도..

Python/Utils 2023.10.08

ChatGPT API에서 이전 대화 기록을 반영하여 호출하는 방법

ChatGPT를 웹에서 직접 이용하는 경우에는 이전 대화를 기억하여 채팅을 이어나가지만, API를 통하여 호출하는 경우에는 기본적으로는 이전 대화를 기억해주지 않습니다. 그래도 API 함수의 기능에 이전 대화의 맥락을 바탕으로 새로운 답변을 생성하도록 만들어줄 수 있는 기능이 있는데요. 이번 글에서는 해당 내용에 대해서 살펴보도록 하겠습니다. 이전 대화 맥락 반영 ChatGPT API 호출 방법 ChatGPT API 호출 함수에서 이전 히스토리를 반영하는 방법은 messages 인자에 이전 맥락의 대화들을 순서대로 리스트로 묶어서 전달해주시면 됩니다. 여기서 role을 지정할 때, 제가 던진 질문은 user로, AI가 답변했던 내역은 assistant로 지정하여 순서대로 묶어서 전달해주어야 하는 점이 중..

Python/NLP Code 2023.10.07
반응형