본 포스팅은 "Do it! LLM을 활용한 AI 에이전트 개발 입문"을 독학하며 쓴 글입니다.
내돈내산 포스팅임을 참고해주시면 감사하겠습니다.
2026년 2월 25일 기준으로 작성되었습니다.
본 포스팅에서는 기존 챗봇에 인터넷 검색 기능을 추가해보려고 합니다!
타빌리 검색은 덕덕고 API와 비슷한 기능을 제공하지만 유료로 구독해야 하는 서비스이다
그러나 안정성 측면에서 타빌리 검색의 API는 덕덕고 검색 API 보다 뛰어나다
첫 1000번의 API 콜은 무료로 제공하므로 한번 실습해보자!!
일단 타빌리 웹 사이트에 접속하여 로그인한 수 API키를 복사해서 .env 파일에 붙여넣자
.env 파일에는 TAVILY_API_KEY 변수명으로 해당 API키를 지정했다
이제 tabily_search.ipynb 파일을 생성하고 타빌리 API를 이용하기 위해 tavily-python 을 설치해보자
%pip install tavily-python
랭체인에서 제공하는 TavilySearchResults 기능을 사용하기 위해 다음과 같이 import를 하고
검색 결과를 몇 개 가져올지 max_results로 설정한다
from langchain_community.tools import TavilySearchResults
tavily_search = TavilySearchResults(max_results=5)
아래 코드처럼 query를 딕셔너리 형태로 설정하고 질문을 검색해보자
res = tavily_search.invoke({"query" : "2025 한국 경제 전망"})
for r in res:
print(r)
코드를 실행하면 다음처럼 리스트 형태로 결과가 출력된다

주피터 노트북에서 보기 좋게 출력하려면 아래 코드를 작성해서 실행해보자
# 주피터 노트북에서 보기 좋게 출력하는 코드
from IPython.display import JSON
JSON(res).data
한층 더 보기 편해졌다!

랭체인에서 제공하는 TavilySearchResult가 아니라 타빌리에서 제공하는 TavilyClient를 사용해서 해당 웹페이지의 전체 텍스트를 불러와보자
아래 코드를 실행해보자 이때, inclue_raw_content를 True로 설정해야 하는 것을 잊지 말자!
from tavily import TavilyClient
client = TavilyClient()
content = client.search(
"2025년 한국 경제 전망",
search_depth="advanced",
include_raw_content = True
)
JSON(content).data
똑같은 질문이지만 텍스트 전체가 포함되어서 내용이 꽤나 길어진 것을 볼 수 있다

GPT 언어보델과 타빌리 검색을 활용해서 신문 기사를 쓰는 기자를 만들어보자
일단 쓰고 싶은 기사 내용을 query로 설정한다
그리고 client.search에 이 query를 사용하고 검색 결과의 웹페이지 내용까지 가져오도록 한다
저번 포스팅에 최근 밀가루 담함에 대해 검색하도록 query를 이용했으므로 이번 포스팅에서도 같은 query를 이용하려 한다
from langchain_community.adapters.openai import convert_openai_messages
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model = "gpt-4o-mini")
# 질문에 대한 자료를 TavilyClient로 가져오기
query = "밀가루 가격 담합 사건"
content = client.search(
query,
search_depth="advanced",
include_raw_content = True
)["results"]

이제 기사를 작성하기 위한 프롬프트를 설정해보자
# 프롬프트 설정
prompt = [{
"role" : "system",
"content" : (
"당신은 신문 기사를 쓰는 기자 AI 입니다. \n"
"당신은 주어진 정보를 바탕으로 객관적이로 체계적으로 작성된 기사를 써야 합니다"
)
},{
"role" : "user",
"content" : (
f'정보: """{content}"""\n\n'
f'위의 정보를 사용하여, 다음 질문에 대해 자세한 보고서를 한국어로 작성하세요.: {query}\n'
'-신문 기사 형식을 사용하되, MLA 표준을 준수하는 markdowm 문법을 사용해주세요'
'-활용한 자료는 출처를 명시하세요'
)
}]
이렇게 메세지 리스트로 구성된 프롬프트를 llm.invoke()로 실행시켜 GPT가 답을 생성하도록 하자
# 오픈AI를 랭체인으로 실행하고 출력
report = llm.invoke(prompt).content
print(report)
결과를 .md 파일로 저장하고 미리보기를 이용하면 아래와 같이 AI가 적은 기사를 확인할 수 있다

이번에는 간단하게 타빌리 검색 엔진을 사용하고 이를 이용해서 기사를 만드는 실습을 해보았다
기본적으로 덕덕고 검색에서 사용하던 방식에서 크게 다르지 않은 방식으로 타빌리를 이용할 수 있었다
또한, 프롬프트를 이용해서 기사를 만드는 부분은 지금까지 GPT와 프롬프트를 이용해와서 어렵지 않았던것 같다
다음 포스팅에서는 유튜브 영상을 요약하는 실습을 해보려고 한다
아마 매우 긴 영상은 불가능하겠지만 10-20분 정도의 영상 정도로 실습을 하지 않을까