728x90
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)
아래와 같이~ 잘 요약이 되었지요~!^^
728x90
'데이터&AI > langchain' 카테고리의 다른 글
[langchain공부] ConversationBufferMemory (과거 프롬포트 내용 기억하기!!) (0) | 2024.02.02 |
---|---|
[langchain공부] SimpleJsonOutputParser (json으로 결과도출!!) (0) | 2024.02.02 |
[langchain공부] langchain 기초 - 4 (사이트 요약해!!) (0) | 2024.02.01 |
[langchain공부] langchain 기초 - 3 (feat. 검색결과!!) (0) | 2024.02.01 |
[langchain공부] langchain 기초 - 2 (feat. function call. 함수호출하기) (1) | 2024.01.26 |
댓글