-
[5월 4주차-5/27]ChatGPT와 뉴스 검색 챗봇 만들기: 자연어 처리 실전 프로젝트Why Not SW CAMP 5기/수업 기록 2025. 5. 27. 11:26
요즘은 ChatGPT를 활용한 다양한 자연어 처리(NLP) 응용 서비스가 쏟아지고 있다. 오늘 수업에서는 뉴스 검색 챗봇이라는 흥미로운 프로젝트를 직접 구현해보며, OpenAI의 GPT API를 활용해 어떻게 실제 서비스를 만들 수 있는지 배웠다.
✅ 프로젝트 개요
이 챗봇은 사용자의 질문을 이해한 뒤, 뉴스API를 통해 관련 뉴스를 검색해주는 서비스다. 사용자는 "요즘 AI 관련 이슈 알려줘"와 같이 자연어로 질문하면, 챗봇은 적절한 뉴스 제목과 링크를 응답으로 보여준다.
🔧 사용 기술 및 환경
- 언어: Python 3.10+
- API: OpenAI GPT API, NewsAPI
- 웹 크롤링: BeautifulSoup
- 인터페이스: Gradio (간단한 웹 UI)
- 실행 환경: Google Colab / Jupyter Notebook
# 필요한 패키지 설치 openai==1.31.0 httpx==0.24.1 beautifulsoup4==4.12.2 gradio==3.40.0
🧱 전체 구조
- 사용자의 질문 입력
- GPT 모델을 통해 핵심 키워드 추출
- NewsAPI를 사용해 관련 뉴스 검색
- 결과를 요약/정리하여 사용자에게 반환
🧠 GPT API 활용 방식
사용자가 입력한 문장을 GPT에게 넘기면, 우리는 그로부터 검색에 적합한 키워드를 뽑는다. 예를 들어 다음과 같은 프롬프트가 사용된다.
prompt = f""" 사용자가 다음과 같이 질문했어: '{user_input}' 이 질문의 핵심 키워드 3개를 영어로 뽑아줘. """GPT는 여기에 대해 "AI", "Regulation", "Policy" 같은 응답을 준다.
🔍 NewsAPI로 뉴스 검색
추출한 키워드를 기반으로 NewsAPI에 쿼리를 보내 최신 뉴스 기사를 받아온다.
url = f"https://newsapi.org/v2/everything?q={' OR '.join(keywords)}&apiKey=..."이렇게 수집된 뉴스는 사용자의 질문에 맞게 다시 요약되어 전달된다.
💬 Gradio로 웹 UI 구성
Gradio를 이용하면 몇 줄의 코드로 간단한 웹 기반 챗봇 인터페이스를 만들 수 있다.
import gradio as gr iface = gr.Interface(fn=chat_with_bot, inputs="text", outputs="text") iface.launch()
📌 정리
이 프로젝트를 통해 다음을 배울 수 있었다:
- OpenAI GPT API를 활용한 자연어 이해 및 키워드 추출
- 외부 API(NewsAPI)를 활용한 실시간 정보 검색
- 웹 크롤링 기본기 (BeautifulSoup)
- Gradio로 빠르게 서비스 형태로 구현
🚀 참고 자료
'Why Not SW CAMP 5기 > 수업 기록' 카테고리의 다른 글
[5월 4주차-5/26]손글씨 인식부터 배경 제거까지, OCR 기반 이미지 처리 앱 만들기! (1) 2025.05.26 [5월 3주차-5/22]🧠 LangChain과 GPT-4o를 활용한 대화형 AI 시스템 구축 실습 (2) 2025.05.22 [5월 3주차-5/21]📈 GPT + Streamlit + yfinance로 주식 정보 챗봇 만들기 (2) 2025.05.21 [5월 3주차-5/20(2)]🎙️ Whisper + GPT-4로 회의록 자동 생성 시스템 만들기 (요약부터 교정, 워드 저장까지) (1) 2025.05.20 [5월 3주차-5/20(1)]AI 기반 문서 요약 및 회의록 자동화 시스템 (1) 2025.05.20