본문 바로가기
데이터&AI/langchain

[langchain공부] langchain 기초 - 5 (뉴스결과 요약해!!)

by 일등박사 2024. 2. 2.

2024.02.01 - [주제] - [langchain공부] langchain 기초 - 4 (사이트 요약해!!)

 

지난 포스팅에서는 한 사이트를 요약하는 작업을 진행해보았는데요~!

이번엔 한 키워드의 뉴스결과를 바탕으로 요약하는 작업을 진행해보겟습니다~!!

 

1. 패키지 및 키 설정

from serpapi import GoogleSearch
from langchain.chat_models import ChatOpenAI
from langchain.utilities import GoogleSerperAPIWrapper
from langchain.document_loaders import UnstructuredURLLoader
from langchain.chains.summarize import load_summarize_chain

openai_api_key='{openai gpt key}'
serper_api_key = "{serp api key}"
num_results = 3  # 뉴스 몇개를 요약할건가요!?
search_query = "원자력 투자"  #  뉴스 검색하고 싶은 키워드 입력

 

2. 뉴스데이터 수집 : serpapi 를 통해 뉴스 데이터를 수집합니다

저는 원자력투자에 관해서, 최근 1주간의 뉴스 (qdr:w1)을 수집하도록 설정해보앗습니다

params = {
  "engine": "google_news",
  "q": "원자력 투자",
  "api_key":serper_api_key,
    'tbs' : "qdr:w1"
}

search = GoogleSearch(params)
results = search.get_dict()
news_results = results["news_results"]
news_results

 

3. 뉴스별 요약 시작!!!

  이제 전 사이트 요약과 비슷한데요~~

구글 검색결과의 URL 별 사이트에 접속! 요약을 진행하게됩니다!

for i, item in zip(range(num_results), results['news_results']):
    print(i, item)
    loader = UnstructuredURLLoader(urls=[item['link']])
    data = loader.load()

    # Initialize the ChatOpenAI module, load and run the summarize chain
    llm = ChatOpenAI(temperature=0, model= "gpt-3.5-turbo-16k", openai_api_key=openai_api_key)
    chain = load_summarize_chain(llm, chain_type="map_reduce")
    summary = chain.run(data)

    print(f"Title: {item['title']}\n\nLink: {item['link']}\n\nSummary: {summary}")
    print('*'*50)

 

아래와 같이~ 잘 요약이 되었지요~!^^

댓글