IT(119)
-
Stable Diffusion
주말 내내 stable diffusion을 가지고 놀았다. ChatGPT와 더불어 신기하기도 했고 재미있기도 했다. 한편으로는 무서운 생각도 들긴 했지만 재미가 더 했던 것 같다. Negative prompt를 열심히 넣기는 했는데도 약간은 헐벗은 느낌다. 이때 사용한 모델은 chilloutmix_NiPrunedFp32Fix이다. Goolge Cloud에 설치하는 방법이 있긴 했으나 하루에 사용할 수 있는데 제한이 있어서 노트북에 설치를 했다. 그랬더니 512 x 512인데도 시간이 꽤나 걸린다. 더 사진같은 결과물을 준다는 henmixReal_v10 모델을 받아서 사용을 했는데 한장의 사진을 생성하는데 한시간이 걸렸다. 이제는 ChatGPT4.0에 도전해 볼 차례다. 재미삼아 모델을 생성해 봤지만 대부..
2023.03.27 -
[Python] Web Crawling - 다음 뉴스
아래 그림과 같이 다음에서 '은행'이라는 키워드로 뉴스 검색을 한 화면을 크롤링 하는 코드에 대한 내용이다. 검색한 키워드 '뉴스'에 해당하는 뉴스를 크롤링하여 제목과 기사의 url을 출력하도록 한다. F12 또는 메뉴에서 개발자 도구를 선택하면 위의 화면을 볼 수 있다. 그리고나서 왼쪽의 아이콘을 선택한 후에 내가 보고자 하는 부분을 좌측 웹 페이지 상에 마우스를 위치해 보면 된다. 처음의 그림에서 얘기하자면 하나의 뉴스 기사를 선택하면 우측에 html이 하일라이트가 된다. 첫 그램에서 보면 뉴스에 해당하는 부분은 를 볼 수 있다. 여기에 해당하는 다음의 전체 코드를 보면 이해가 쉬울 것 같다. 다음의 코드는 위의 주소에서 기사 제목과 기사가 연결된 곳의 url을 출력하는 소스이다. from bs4 i..
2023.03.26 -
[Python] ChatGPT
Openai chatGPT를 이용해서 질문을 던지고 답을 얻는 코드가 필요하다. RPA로 만드는 영문 뉴스를 데일리로 찾아 한글로 요약하기 위한 기반이 될 코드다. chatGPT 사용 방법은 간단한데 api key를 받아야 한다. openai에 접속을 한 후에 다음을 참고해서 말이다. API Key가 준비되었다면 다음과 같은 코드를 실행해 보자 import openai openai.api_key="sk-7uksyuAIlibWehZyHUO2fT3BlbkFJvcz5oTwzXsVI4xwsoOcRdNA" messages = [] print("질문을 입력하세요 : ") message = input("") messages.append({"role":"user","content": message}) response=..
2023.03.26 -
[Python] eMail 보내기
기획 중인 RPA 프로젝트 중에서 자동으로 데일리 이메일 발송을 기획하고 있다. 처음에는 가장 많이 사용하는 지메일을 사용하려고 했다. 문제는 보안이 강화되면서 일반적으로 사용하는 SMTP 방법은 통하지가 않았다. 구글 클라우드를 사용하면 방법이 있는 듯 했다. 전에 구글 클라우드를 사용한 경험이 있었다. 그런데 비용을 지불하는 것으로 변경이 되었다. 당장은 무료 사용이지만 말이다. $300까지는 무료라고 하는데 그래도 내키지 않았다. 그래서 네이버 메일로 방향을 틀었다. 샘플로 검색이 되는 코드들이 잘 동작을 한다. 모방은 창조의 어머니라고 했던가? 그래도 다른 사람들의 블로그에 있는 코드들은 가져다 쓰기 뭐했다. 그래서 ChatGPT에 코드 생성을 시켰다. import smtplib from emai..
2023.03.26 -
[Python] Google News Scrawling - GoogleNews
Google News를 크롤링하고자 했다. 이유는 RPA - Robotic Process Automation을 이용해서 구글 영문 뉴스를 크롤링하기 위해서다. 이유는? 키워드를 통해서 구글 뉴스를 검색하고 다시 ChatGPT를 이용해서 요약을 하고, 지메일을 통해서 지인들에게 데일리로 보내주기 위한 RPA를 위함이다. 그런데 Crawling으로 검색을 해서 레퍼런스를 살펴보니 마땅한 것이 없었다. 유튜브에서는 생각보다 마땅한걸 찾진 못했고 구글링을 조금 해 보니 RSS를 파싱하면 좀더 나은 결과가 나오겠다는 생각이 들었다. 구글에서 RSS 서비스 중이었고 RSS를 파싱하면 더 나은 결과가 나올 것은 뻔했다. 그런데 더 나은 솔루션을 찾았다. GoogleNews가 바로 그것이었다. 아주 간단하게 사용할 수..
2023.03.26 -
AI로 이미지 생성하기 - sporky.ai
AI를 이용한 모델을 그리거나 ChatGPT를 이용하는 방법들에 대한 관심을 갖게 되었다. 자주 찾는 사진 사이트에 AI를 이용한 그림들이 많이 올라오면서 부터다. 실제 모델을 찍은 것과 같은 품질이 정말 대단했다. 물론 모델은 어찌보면 인공적인 느낌이 나긴 했지만 어떤 사진은 정말 실제로 찍은 것 같기도 했다. 다음의 그림은 내가 생선한 사진 중의 하나다. 여러차례 시도를 해서 얻은 사진 중의 하나지만 대단하다. 난 AI를 교안을 만들 때 사용하면 좋겠다는 생각을 했다. 예를 들면 모바일 어플리케이션을 만드는 그림이 슬라이드에 넣기 위해 필요하다고 가정해 보자. "the man who make a mobile application" 이라는 프롬프트를 입력해서 다음과 같은 그림이 생성이 되었다. 파워포인..
2023.03.25 -
[Python] 문자열 추출하기
RPA를 하면서 가장 많이 하는 것 중의 하나가 문자열을 다루는 것이다. 긴 문자열에서 일부를 추출하는 것 말이다. 바로 이전에 다뤘던 포스팅의 내용 중에서 문자열을 다루는 부분에 대해서 정리해 보고자 한다. https://sohyemin.tistory.com/827 [Python] PDF에서 정보 추출하기 (RPA) 최근들어 RPA (Robotic Process Automation)에 관심을 가지게 되었다. RPA라는 용어를 몰랐을 뿐이지 나는 나름대로 업무자동화를 이용하고 있었다. Python으로 다량의 엑셀 자료를 이용해서 자료를 만들고 sohyemin.tistory.com 다음의 문자열은 "건축물관리대장"에서 pdfminer를 통해서 extraction한 것으로 개인정보 부분은 변경을 했기 때문에..
2023.03.18 -
[Python] PDF에서 정보 추출하기 (RPA)
최근들어 RPA (Robotic Process Automation)에 관심을 가지게 되었다. RPA라는 용어를 몰랐을 뿐이지 나는 나름대로 업무자동화를 이용하고 있었다. Python으로 다량의 엑셀 자료를 이용해서 자료를 만들고 추출하는 작업, 이미지를 핸들링해서 PDF로 출력을 하던 프로그램도 있었다. 최근에는 Python에 대한 업무 자동화에 대한 강좌를 할 수 있겠냐는 문의가 왔다. 그래서 검색을 하다보니 업무자동화가 RPA라는 것을 알았다. 여기의 코드는 강의를 염두에 둔 것은 아니고, 포스팅을 하기에 적합한 코드도 아닌 것 같지만 RPA에 대해서 얘기를 하기 위해서 올려 둔다. 이 코드는 잘게 잘라서 별도의 포스팅으로 올릴 예정이다. 스토리는 이렇다. 강의 준비 요청을 받고 RPA에 대한 강의를..
2023.03.18 -
#12/12 아두이노 로봇 HowTo
최종 코드 /****************************************************** * AutoRobot * made by Sohyemini * 2020.10.04 ******************************************************/ #include #include #include #include /* * 두 개의 바퀴를 위한 디지털 Input/output D1에서 D4까지 선언 * D1, D2는 왼쪽 바퀴, D3, D4는 오른쪽 바퀴임 */ int LeftWheel_D1 = 2; int LeftWheel_D2 = 3; int RightWheel_D3 = 4; int RightWheel_D4 = 5; // 초음파 센서를 움직이기 위한 서보 모터 핀..
2022.11.04 -
#11/12 아두이노 로봇 HowTo
LCD 모듈 LCD 모듈은 로봇의 주행 성능과는 무관하지만 차량의 상태 정보를 나타낼 수 있고 어렵지 않게 구현을 할 수 있어 택했다. 1602 Character LCD로 16개 문자를 두 줄에 표시할 수 있는 저렴한 LCD이다. 앞의 사진에서 보는 바와 같이 연결해야 할 핀들이 상당히 많다. 우리가 가진 디지털 핀들의 개수가 몇 개 안남았기 때문에 당장은 연결을 할 수 없는 상황이다. 하지만 I2C LCD Interface를 사용하면 문제를 해결할 수 있다. 라이브러리를 추가해야 한다. 이미 만들어진 라이브러리를 사용할 것이기 때문이다. 개발 환경에서 툴→ 라이브러리 관리를 선택해서 LiquidCrystal I2C를 설치한다. I2C란? IIC라고도 부르며 아이-스퀘어-씨로 읽..
2022.11.04