🥈최우수상 이 프로젝트는 Flask를 사용하여 Fake NEWS가 포함된 YouTube URL을 처리하고, 비디오 길이를 확인하며, 뉴스 문서와 유튜브 문서를 로드하여 헤드라인을 생성하고 검색 결과를 조회하여 Fact-Check 기능을 제공합니다.
app/app.py
: Flask 애플리케이션의 메인 파일입니다.app/storage/document_processors.py
: 문서 처리를 위한 클래스가 정의된 파일입니다.app/storage/api_keys.py
: 환경 변수에서 API 키를 로드하는 클래스가 정의된 파일입니다.
프로젝트를 클론한 후, 필요한 패키지를 설치합니다.
git clone <repository-url>
cd <repository-directory>
pip install -r requirements.txt
프로젝트 루트 디렉토리에 .env
파일을 생성하고, 필요한 API 키를 설정합니다.
DEVELOPER_KEY=your_youtube_api_key
OPENAI_API_KEY=your_openai_api_key
SERPAPI_API_KEY=your_serpapi_api_key
Flask 애플리케이션을 실행합니다.
python app/app.py
get_video_duration(video_id)
함수는 주어진 YouTube 비디오 ID에 해당하는 비디오의 길이를 초 단위로 반환합니다.
extract_youtube_id(url)
함수는 주어진 URL에서 YouTube 비디오 ID를 추출합니다.
check_url(url)
함수는 주어진 URL이 유효한 YouTube 비디오 URL인지 확인하고, 비디오 길이를 체크합니다.
DocumentProcessor
클래스는 뉴스와 유튜브 문서를 로드하고, 헤드라인을 생성하며, 검색 결과를 조회하는 기능을 제공합니다.
generate_headlines(document)
: 주어진 문서를 사용하여 헤드라인을 생성합니다.search_results(text)
: 주어진 텍스트를 사용하여 Google 검색 결과를 조회합니다.load_news_documents(urls)
: 주어진 URL 목록에서 뉴스 문서를 로드합니다.load_youtube_documents(urls)
: 주어진 URL 목록에서 유튜브 문서를 로드합니다.fact_check_api(headline, snippets)
: 주어진 헤드라인과 검색 결과를 사용하여 사실 여부를 판단합니다.
주어진 URL을 처리하여 결과를 반환하는 엔드포인트입니다.
-
요청 본문:
{ "url": "https://www.youtube.com/watch?v=example" }
-
응답:
{ "result": { "code": "success", "result": { "subject": "헤드라인", "percentage": 95, "summary": "이유", "news": [ { "title": "뉴스 제목", "link": "https://news.link" } ] } } }