[문과생도 AI] 4주 만에 AI로 서비스 개발하기(11기) 사례발표

1. 캠프 주제 : 코딩 입문자도 GPT4o로 자기주도적으로 학습하고 코딩하여, 크롤링 DB 서비스 구축하고 이것을 응용하여 자신의 현업에서 원하는 자동화 서비스 개발


2. 학습 목표 : 파이썬으로 코딩하여 원하는 업무를 자동화하는 서비스 구현


3. 학습 과정

- 1주차 : 파이썬 기본 문법, 환경 세팅, GPT4o로 코딩하기

🚀️ 실습/과제 : 트라필라투라로 크롤링 기초 실습 / 트라필라투라 크롤링 과제

 - 2주차 : bs4, selenium 기본 문법, 동적, 정적 크롤링 예제 학습

⭐ 특강 : 동적, 정적 크롤링에 대하여 강의 후 크롤링 예제로 함께 실습

 - 3주차 : DB 구축 및 웹 서비스 예제 학습

 특강 : sqlite와 streamlit으로 크롤링한 데이터로 DB 구축과 웹 서비스 구현

 - 4주차 : 내가 만든 서비스를 실행파일로 만들기

⭐ 특강 : pyinstaller를 통해 내가 만든 서비스를 실행파일로 만들기

 

4. 캠프 참여 활동 : 각 주차별로 수업에 적극 참여해서 해당 학습과 개별 과제도 열심히 하면서, 본인만의 "가슴을 뛰게 하는 나만의 프로젝트"를 만들어 보기로 함.

 

5. 캠프 수업

(수업 결과)

[문과생도AI] 1주차 

https://www.gpters.org/dev/post/week-1-review-questions-NB3ozC5U3dnjgX8

(문제) 파이썬으로 개발하는 환경을 만들고 ChatGPT와 Trafilatura 도구를 활용하여 크롤링 코드 예제를 만들어보기

(결과) 파이썬 복습 및 Trafilatura 도구를 이용하여 웹페이지 크롤링 실습함

 

[문과생도 AI] 2주차

https://www.gpters.org/c/ai-developers/ai-2-680bed#comment_wrapper_38507625

(문제) ChatGPT와 BeautifulSoup 도구를 이용하여 크롤링 실습해보기

1.    검색어 입력받기:

o   프로그램 시작 시, 사용자로부터 검색어를 입력받습니다.

2.    네이버 뉴스 검색 결과 크롤링:

o   입력받은 검색어를 사용하여 네이버 뉴스 검색 페이지를 요청합니다.

o   각 뉴스 기사 제목과 링크를 크롤링합니다.

o   최대 100개의 뉴스 기사를 크롤링합니다.

o   페이지를 순차적으로 요청하여 더 많은 결과를 가져옵니다.

3.    CSV 파일로 저장:

o   크롤링한 데이터를 CSV 파일로 저장합니다.

o   파일명은 실행한 날짜를 포함하여 news_YYYYMMDD.csv 형식으로 저장합니다.

o   CSV 파일에는 "Title"과 "Link" 헤더를 포함하여 각 뉴스 기사 제목과 링크를 저장합니다.

(결과) 주제어에 맞추어 네이버 웹페이지에서 자동으로 검색하고 데이터 추출함

‘고령화’란 주제어로 검색하여 저장된 .csv 파일 출력 결과물

6. 자기주도 학습 일명 "가슴을 뛰게 하는 나만의 프로젝트" 만들어보기

(1) 개발 기획

1) 배경

본 캠프의 캠프별 OT에서 박정기파트너님이 “코딩 입문자도 GPT4o로 자기주도적으로 학습하고 코딩하여, 크롤링 DB 서비스 구축하고 이것을 응용하여 자신의 현업에서 원하는 자동화 서비스 개발” 해보라는 캠프 주제를 듣고서 어떤 아이템이 “가슴을 뛰게”할 것 인가를 고민하면서 웹서핑을 하던 중에 인터넷뉴스를 통해서 “노인들의 친구는 AI...경기도 'AI 노인말벗서비스' 2개월만에 신청자 5000명”라는 신문기사를 보게 되었습니다.

저 역시 중장년을 넘어 얼마 후에 고령자가 되는 현실에서 이 기사의 내용과 관련된 서비스에 매우 공감을 했습니다. 당장 내년 2025년에만 65살 이상이 1045만명으로 전체 인구의 21% 차지하는 상황에서 고령자를 위한 서비스는 반드시 필요하다고 생각했습니다.

국내에서는 SKT가 2016년 9월 국내 최초로 한국어 AI 비서 '누구(NUGU)'를 출시한 이후 이미 각 통신사들이 음성비서 서비스를 해오고 있습니다. 특히 고령자를 위한 대화형 안내 서비스가 있기도 합니다.

https://www.100ssd.co.kr/news/articleView.html?idxno=80838

특히 독거노인분들에게 음성비서 서비스가 효과가 있는 것으로 알려져 있습니다.

https://m.newspim.com/news/view/20200520000341

 

2) 필요성

저 역시 몇 년전에 모 통신사의 음성비서에 가입하고 서비스를 이용한 적이 있었는데 아직 사회활동과 말벗이 많기도 하거니와 제공되는 방식과 컨텐츠의 내용이 그다지 만족스럽지 못하여 사용을 중지하한 경험이 있습니다.

그런데 이번에 앞서 기사를 보고 해당 서비스에 대해 조사를 해보니 좀 더 생활밀착형 인공지능 서비스를 제공하고 있는 것을 알게 되었고, 이런 서비스가 초고령화 시대에 필요할 것이라고 생각하였습니다. 다음은 ‘해피콜’ 서비스 구성도입니다.

https://www.mk.co.kr/news/business/10884804

관련된 동영상을 잠시 소개하겠습니다.

해피콜 사례 (손숙).mp4

https://www.youtube.com/watch?app=desktop&v=g90KqFuFQkc

이것이 네이버의 하이퍼클로바라는 LLM 기술을 이용한 ‘HappyCall’ 서비스입니다. 그래서 저도 이번 캠프에 참여한 것을 계기로 다음의 구성도처럼 ChatGPT를 활용하여 음성으로 채팅이 가능한 대화형 서비스를 만들어 보기로 했습니다.



또한 금번 11기 캠프 주제인 크롤링을 이용하여 어떤 유형의 돌봄서비스가 고령자들에게 꼭 필요한지 다양한 컨텐츠를 수집하고 제공하는 서비스도 찾아 보기로 했습니다.

물론 지금도 다음 그림처럼 국내 반려로봇 업체들이 유사한 서비스를 제공하고 있지만 저 역시 캠프 참가를 통해 유익한 사례를 만들어 보고 싶었습니다.

https://www.emozak.co.kr/news/articleView.html?idxno=3364

(2) 개발 과정

1) ChatGPT를 활용한 기획

Q >> “ChatGPT를 이용하여 노인들을 위한 자연스러운 대화가 가능한 음성 챗봇서비스를 구현하고자 합니다. 필요한 서비스 개발 환경과 조건을 설명해주세요”

A >> “ChatGPT를 이용해서 노인들을 위한 자연스러운 대화가 가능한 음성 챗봇 서비스를 개발하려면 다음과 같은 단계로 진행할 수 있습니다.”

1. 사전 준비

OpenAI API 키 발급: OpenAI의 GPT-3 또는 GPT-4 API를 사용하기 위해 API 키를 발급받아야 합니다.

개발 환경 설정: Python, Node.js 등의 개발 언어와 환경을 설정합니다. 필요한 패키지들을 설치합니다.

2. 음성 인식 및 합성

음성 인식: Google Cloud Speech-to-Text, IBM Watson Speech to Text 등의 서비스를 사용하여 음성을 텍스트로 변환합니다.

음성 합성: Google Cloud Text-to-Speech, Amazon Polly 등의 서비스를 사용하여 텍스트를 음성으로 변환합니다.

3. 자연어 처리 및 대화 관리

OpenAI API 사용: ChatGPT 모델을 사용하여 자연어 처리를 수행합니다.

(예시 코드를 제시함)

~~~(중략) ~~~~

6. 데이터 보안 및 개인정보 보호

  • HTTPS 사용: 서버 통신을 HTTPS로 암호화하여 데이터를 보호합니다.

  • 사용자 데이터 보호: GDPR, HIPAA 등의 법규를 준수하여 사용자 데이터를 보호합니다.

7. 유지보수 및 개선

  • 피드백 수집: 사용자 피드백을 수집하고 분석하여 서비스 개선에 반영합니다.

  • 모델 업데이트: OpenAI의 최신 모델을 사용하여 지속적으로 챗봇의 성능을 개선합니다.


이와 같은 과정을 통해 ChatGPT를 기반으로 한 음성 챗봇 서비스를 개발할 수 있습니다.


Q >> “음성 비서가 특정한 신호(음성 등)을 감지하면 대화 모드로 전환하듯이 PC에 연결된 마이크에서 미리 지정된 음성 신호를 받으면 앞서 만든 프로그램이 동작하도록 하는 코드를 작성해주세요. 물론 미리 약속된 음성을 정하는 것도 포함해주세요.”

A >> “음성 신호를 감지하여 특정 프로그램을 실행하는 코드를 작성하기 위해서는 다음 단계가 필요합니다”

  1. 음성 인식 라이브러리 설치: Python에서는 speech_recognition 라이브러리를 사용하여 음성을 인식할 수 있습니다.

  2. 미리 지정된 음성 신호 설정: 특정 키워드를 인식하면 프로그램을 실행하도록 설정합니다.

  3. 프로그램 실행 코드 작성: 음성 신호를 감지하면 프로그램을 실행하는 코드를 작성합니다.

1. 라이브러리 설치

먼저 필요한 라이브러리를 설치합니다.

speech_recognition과 pyaudio 라이브러리를 설치해야 합니다.

pip install speechrecognition pyaudio

2. 음성 인식 및 프로그램 실행 코드 작성

다음은 미리 지정된 음성 신호(예: "hello assistant")를 감지하여 프로그램을 실행하는 예제 코드입니다. 여기서는 Python의 os 모듈을 사용하여 앞서 만든 .exe 파일을 실행합니다.

~~~ (중략) ~~~~

3. 코드 설명

  1. 음성 인식 함수: recognize_speech_from_mic 함수는 마이크로부터 음성을 듣고 인식합니다.

  2. 메인 함수: main 함수에서는 무한 루프를 돌면서 음성을 인식하고, 지정된 키워드(예: "hello assistant")가 감지되면 프로그램을 실행합니다.

  3. 프로그램 실행: os.startfile을 사용하여 지정된 경로의 .exe 파일을 실행합니다.

사용 방법

  1. 위 코드를 voice_assistant.py와 같은 파일로 저장합니다.

  2. 터미널에서 다음과 같은 해당 파일을 실행합니다.

python voice_assistant.py

이제 프로그램이 실행되면 마이크를 통해 "hello assistant"라는 키워드를 말할 때까지 대기합니다. 키워드가 감지되면 앞서 만든 text_to_speech.exe 파일이 실행됩니다.

-------------------------------------------------------------------------------------

>> 개발 환경을 셋팅하고 ChatGPT가 가르쳐 준 코드를 작성 후 프로그램 실행하여 마이크를 통한 음성을 입력하니 다음처럼 텍스트로 바꾸어 졌음

 이제 질문을 chatgpt가 알아듣고 해당 내용을 대답한 것을 음성으로 출력하는 것을 하려고 하는데, API key 사용을 해야 되었습니다. 그래서 사용법을 역시ChatGPT에게서 학습하고서 사용량에 따른 유료 결재 후에 생성한 API key를 코드에 적용했습니다.


그리고 마이크를 통해 입력된 텍스트 질문을 chatgpt에 입력되게 하고 ChatGPT의 답변을 다시 음성으로 나오게 하는 코드를 작성해보았습니다.

~~~ (중략) ~~~~

>> 프로그램을 실행하니 다음과 같은 메시지처럼 음성으로 출력이 되었습니다

 

지금까지는 VScode에서 일일이 디버깅하고 실행을 해야 하므로 간단하게 실행할 수 있는 파일(.exe) 형태로 만들어 보기로 했습니다.

Q >> “python 코드로 프로그램을 작성해서 실행을 했습니다. 실행 파일(.exe 파일)을 어떻게 만드나요?”

A >> “ Python 코드로부터 실행 파일(.exe)을 만드는 과정은 pyinstaller와 같은 도구를 사용하는 것이 일반적입니다. pyinstaller는 Python 스크립트를 독립 실행형 실행 파일로 변환할 수 있게 해줍니다. 다음은 pyinstaller를 사용하여 .exe 파일을 만드는 단계입니다:”

1. pyinstaller 설치

먼저 pyinstaller를 설치해야 합니다. 이를 위해 터미널 또는 명령 프롬프트에서 다음 명령어를 실행합니다:

pip install pyinstaller

2. Python 스크립트를 .exe 파일로 변환

pyinstaller를 사용하여 Python 스크립트를 .exe 파일로 변환할 수 있습니다. 예를 들어, your_script.py라는 Python 스크립트가 있다고 가정하겠습니다.

터미널 또는 명령 프롬프트에서 다음 명령어를 실행합니다:

pyinstaller --onefile your_script.py

이 명령어는 your_script.py를 하나의 실행 파일로 만드는 옵션입니다. 실행 파일은 dist 폴더에 생성됩니다.(경로 주의)

3. 생성된 파일 확인

명령어가 성공적으로 실행되면, dist 폴더 안에 your_script.exe 파일이 생성됩니다. 이 파일을 다른 사람들과 공유할 수 있습니다.

------------------------------------------------------------------------------------

이상과 같은 방법으로 진행하여 그 결과 음성으로 묻고 음성으로 답변하는 파일을 다음과 같이 만들 수 있었습니다.


녹화_2024_06_28_17_25_51_850.mp4

이상으로 캠프 사례를 바치도록 하겠습니다.

감사합니다.

10
2개의 답글

👉 이 게시글도 읽어보세요