AWS 기술 블로그

LilysAI의 Amazon Bedrock을 활용한 유튜브 검색 기능 구현 여정

3시간 분량의 키노트 영상, 100페이지 분량의 기업 분석 보고서, 2시간짜리 회의 녹음을 살펴보려니 벌써 머리가 지끈거립니다. 특히 영어로 된 자료라면 더 많은 시간을 들여야 합니다. LilysAI는 유튜브 영상, PDF 문서, 음성 녹음, 웹 페이지를 간단한 불릿 포인트로 요약해 줍니다. 또한 원본 언어와 관계없이 한국어로 요약 노트를 제공합니다. 하지만 여전히 콘텐츠를 탐색하는 데 어려움이 있습니다. 특히 영미권에 풍부한 양질의 콘텐츠를 쉽게 찾기란 쉽지 않습니다. 이 문제를 해결하기 위해 LilysAI는 Amazon Bedrock에서 제공하는 LLM(Large Language Model)을 활용하여 “해외 자료 검색 기능“을 개발했습니다. 이 기능을 통해 사용자들은 전 세계 14개국의 로컬 콘텐츠를 한국어로 탐색할 수 있게 되었습니다. 예를 들어, 당일 업로드된 유명인의 인터뷰를 보거나 파리 현지인이 추천하는 맛집 정보를 얻을 수 있습니다.

이번 글에서는 LilysAI가 어떻게 획기적인 해외 자료 검색 기능을 개발했는지, 그리고 어떻게 Amazon Bedrock을 활용해 언어와 문화의 장벽을 넘어서는 서비스를 구현했는지 자세히 살펴보겠습니다.

LilysAI의 아키텍처 및 검색 처리 프로세스

LilysAI는 Bedrock을 주로 활용하여 해외 자료 검색 기능을 구현하였습니다. Amazon Bedrock은 최첨단 생성형 AI 기술을 손쉽게 활용할 수 있게 해주는 완전 관리형 서비스입니다. Bedrock은 AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI, Amazon 등 선도적 AI 기업들의 고성능 파운데이션 모델을 단일 API로 제공하여, 복잡한 기술적 세부사항 없이도 다양한 AI 솔루션을 구축할 수 있게 해줍니다. 또한 서버리스 아키텍처를 채택하고 있어 인프라 관리에 대한 부담을 최소화하면서도 AWS의 강력한 보안 기능을 활용하여 안전하게 생성형 AI 기능을 애플리케이션에 통합할 수 있습니다.

LilysAI의 해외 자료 검색 기능은 Bedrock을 중심으로 다양한 AWS 서비스들을 유기적으로 결합하여 구현되었습니다. 해외 자료 검색 워크로드는 다음과 같은 과정으로 수행됩니다:

[LilysAI의 아키텍처]

1. 사용자 입력 처리

  • 사용자가 특정 키워드를 입력합니다. (예: “AI 기술 동향”)
  • Amazon Bedrock을 사용해 입력된 키워드를 선택한 언어로 번역합니다.

2. YouTube 영상 검색

  • YouTube Data API를 통해 입력된 키워드와 관련된 동영상 리스트를 가져옵니다.

3. 제목 국문 번역

  • 검색된 동영상의 제목과 설명을 Amazon Translate를 사용해 한국어로 변환합니다.
  • 번역된 내용은 사용자에게 보여줄 결과 리스트에 업데이트 됩니다.

4. 연관 검색어 추출

  • Amazon Bedrock을 사용해 검색된 동영상 리스트와 사용자의 쿼리 히스토리를 기반으로 연관 검색어를 도출합니다.

5. 영상 간단 요약

  • 사용자가 특정 동영상을 선택하면 YouTube Data API를 통해 해당 영상의 메타 정보를 수집합니다.
  • Amazon Bedrock을 사용해 메타 정보를 기반으로 간결한 요약본을 생성하여 사용자에게 제공합니다.

LilysAI에서 Amazon Bedrock을 도입한 이유

LilysAI가 해외 자료 검색 기능 구현을 위해 Amazon Bedrock을 선택한 데에는 여러 이유가 있습니다. 특히 대규모 콘텐츠 처리 능력과 기존 AWS 인프라와의 원활한 통합이 주요 결정 요인이었습니다. Bedrock은 검색 쿼리 번역, 연관 검색어 추출, 영상 요약 등 핵심 기능 구현에 있어 탁월한 성능을 보여주었습니다.

20만 Context Window

Bedrock의 Claude 모델들은 20만개의 context window를 제공합니다. 이는 특히 긴 영상, 방대한 스크립트, 대규모 문서를 처리할 때 아주 유용했습니다. 기존의 요약 모델은 길이가 긴 콘텐츠를 여러 조각으로 나눠 처리해야 했으며, 이 과정에서 맥락이나 중요한 디테일이 손실되기 쉬웠습니다. 그러나, Bedrock은 하나의 작업에서 전체 콘텐츠를 읽고 분석할 수 있어, 더 자연스럽고 정확한 요약 노트를 생성합니다.

예를 들어, 3시간짜리 키노트 영상이나 100페이지 분량의 PDF 파일도 Bedrock의 큰 context window 덕분에 처음부터 끝까지 연속성을 유지하며 분석할 수 있습니다. 거기에 더해 System prompt를 단 한 번만 활용하면 되기 때문에 기존 요약 노트 생성에서 반복적으로 소모되던 토큰을 절감하는 효과도 있었습니다.

기존 AWS 서비스와의 연동성

LilysAI는 이미 S3, Lambda, RDS 등 다양한 AWS 인프라를 활용해 안정적이고 확장 가능한 서비스를 제공하고 있었습니다. 하지만 콘텐츠 요약과 번역, 그리고 검색 기능을 실시간으로 제공하기 위해서는 데이터 처리와 모델 실행 과정에서 발생하는 네트워크 레이턴시를 더욱 최소화할 필요가 있었습니다.

Bedrock은 AWS 생태계 내에서 작동하기 때문에 LilysAI가 사용하는 기존 서비스들과의 통합이 원활하며, 데이터가 외부로 이동할 필요없이 AWS 네트워크 안에서 처리됩니다. 이로 인해 네트워크 레이턴시가 줄어들었고, 콘텐츠 분석 및 요약 결과가 사용자에게 더 빠르게 전달될 수 있었습니다. 특히, S3에 저장된 대규모 파일을 Bedrock으로 바로 전달하고, 처리된 결과를 RDS에 저장하거나 Lambda를 통해 후속 작업을 실행하는 전체 워크플로우가 이전보다 빨라지고 쉽게 관리될 수 있었습니다.

LilysAI의 Bedrock 활용 사례

LilysAI는 해외 자료 검색 기능 구현 시 사용자 검색 쿼리 번역, 연관 검색어 추출, 그리고 콘텐츠 요약 제공 단계에서 Bedrock을 핵심적으로 활용했습니다. 이번 장에서는 각 세부 단계에서 Bedrock을 어떻게 활용했는지 그리고 LilysAI에서 적용한 프롬프트 예시를 살펴보겠습니다.

검색 쿼리 번역하기

사용자가 입력하는 검색 쿼리는 초기 검색 의도를 반영하는 핵심 입력 데이터입니다. 그러나 전통적인 기계 번역 방식은 단어 단위의 번역에 초점을 맞추기 때문에, 쿼리의 맥락을 손실하는 경우가 빈번하게 발생합니다. Bedrock을 활용하면 이러한 한계를 극복하여, 사용자의 쿼리 문맥을 정확하게 파악하고 의도에 부합하는 자연스러운 번역을 제공합니다.

검색 쿼리 일반 번역 결과 Amazon Bedrock 번역 결과
사랑의 기술 요약 The Art of Love Summary Summary of The Art of Loving
AWS 베드락 특장점 AWS Bedrock Special Features AWS Bedrock key features and advantages
생성모델 동향 Generation Model Trends Generative model trends
한강 노벨상 수상 소감 Reflections on the Han River Nobel Prize Han Kang Nobel Prize acceptance speech

[유저 쿼리에 대한 일반 번역, Bedrock 번역 비교]

예를 들어, 사용자가 “사랑의 기술”이라는 쿼리를 입력할 경우, 일반 번역에서는 단어 그대로를 해석할 가능성이 높지만, Bedrock은 원 저작물의 제목인 “The Art of Loving”으로 자동 변환하여 사용자의 검색 의도에 맞는 결과를 제공합니다.

사용자의 검색 쿼리 번역을 위해 다음과 같은 프롬프트를 활용하였습니다. 프롬프트에서 입력받은 사용자 검색 쿼리, 번역할 언어, 고유 명사의 번역 수행 방식을 기술하였습니다.

You are a specialized translation assistant for YouTube search queries. Your task is to convert search queries between languages while maintaining search relevance and cultural context.

Your task: 
1. Translate the provided user query (`user_query`) into the specified target language (`target_language`). 
2. Handle proper nouns (e.g., book titles, movie names, people's names) as follows: 
  - If a localized or commonly used version exists in the target language, use it. 
  - If no localized version exists, retain the original term. 
3. Return only the OUTPUT without explanation

INPUT FORMAT:
{
  "user_query": "string", // The query to be translated.
  "target_language": "string" // Target language code in ISO 639-1 format.
}

OUTPUT FORMAT: 
{ 
  "translated_query": string 
}

[검색 쿼리 번역을 위한 프롬프트 예시]

연관 검색어 추출하기

[자료 검색 시 연관 검색어 추천]

연관 검색어 추출은 사용자가 입력한 쿼리와 검색 결과를 분석하여, 다음에 검색할 가능성이 높은 연관 키워드를 예측하고 추천하는 기능입니다. 이 기능은 사용자의 의도와 검색 패턴을 정교하게 파악하기 위해 컨텍스트 인식(context-aware)을 활용하며, 검색 경험을 보다 효율적으로 개선합니다.

LilysAI는 구체적으로 사용자에게 보여줄 다음 쿼리를 추출하기 위해 다음과 같은 필드들을 프롬프트에 컨텍스트로 제공했습니다.

  • user_query: 사용자의 직전 검색어
  • user_query_history: 사용자가 이전에 검색했던 검색어들
  • search_results: 이전 검색어를 기반으로 검색된 영상들의 메타 데이터
  • user_clicked_results: 이전에 검색된 영상 중 사용자가 클릭해서 짧은 요약을 조회해본 영상들

이처럼 배경 컨텍스트를 충분히 제공함으로써 얻게되는 효과는, 단순히 동일하거나 유사한 키워드를 추천하는 것을 넘어서 사용자의 검색 의도를 파악하여 관심을 가질 수 있는 잠재적 키워드를 추천해줄 수 있다는 점입니다.

// Rationale generation을 위한 프롬트 문장
For each suggested query, provide a brief explanation of why it is relevant.

또한, 프롬프트에 위와 같은 문장을 추가하고, 결과물에 “reason” 필드를 함께 요청함으로서 Rationale Generation 기법을 적극 활용했습니다. 이는 모델이 답변을 생성할 때 논리적인 단계를 거치기 때문에, 더 일관성있고 정확한 결과를 생성합니다.

연관 검색어 추천을 위해 다음과 같은 프롬프트를 활용하였습니다. 사용자의 쿼리와 지난 검색의 컨텍스트를 제공하여 추천 검색어를 반환하도록 프롬프트를 작성하였으며, 컨텍스트를 제시할 때는 괄호안에 필드명을 삽입하여 정확하게 전달되도록 하였습니다.

You are a search assistant designed to recommend relevant and engaging keywords for YouTube users. 

Your task: 
1. Analyze the user's past query(query_history), search results(search_results), and videos they interacted with(user_clicked_results). 
2. Generate a list of suggested queries for their next search based on: 
  - The user's demonstrated interests. 
  - Content relevance and potential engagement. 
3. For each suggested query, provide a brief explanation of why it is relevant.

INPUT:
{
  "query": "string", //user's last search query
  "query_history": [
    "query_1",
    "query_2",
    ... 
  ]
  "search_results": [
    {
      "title": "string",
      "description": "string"
    },...
  ],
  "user_clicked_results": [
    {
      "title": "string",
      "description": "string"
    },...
  ]
}

OUPUT:
{
  "suggested_queries": [
    {
      "query": string,
      "reason": string
    }
    ...
  ]
}

[연관 검색어 추출을 위한 프롬프트 예시]

짧은 요약 제공하기

[동영상에 대한 요약 예시]

LilysAI의 검색 결과 리스트에서 사용자가 특정 영상을 클릭하면, 3초 이내에 간결한 요약을 제공합니다. 일반적으로 유튜브 영상을 요약하려면 전체 스크립트를 다운로드하고 이를 분석하는 데 상당한 시간이 소요됩니다. 그러나, 미리보기는 사용자가 결과물을 클릭한 순간 빠르게 제공되어야 하므로 영상의 메타데이터(예: 제목, 설명, 태그 등)를 Bedrock에 입력 데이터로 제공하고, 이를 기반으로 빠르고 정확한 요약을 생성하도록 설계했습니다. 또한, 모든 과정이 AWS 네트워크 내에서 이루어지므로 네트워크 레이턴시를 최소화하며, 사용자 요청에 대한 응답 시간을 더욱 단축할 수 있었습니다.

Youtube 영상에 대해 간단한 요약을 반환하기 위해 다음과 같은 프롬프트를 활용하였습니다. CoT(Chain-of-Thought) 기법을 사용하기 위해 주어진 메타 정보를 이해한 후 요약을 진행하도록 task를 순차적으로 명시하였습니다.

You are a content summarization assistant designed to generate concise and accurate summaries for YouTube videos based on metadata.

Your task:
1. Analyze the provided metadata from a YouTube video, including:
  - Title
  - Description
  - Tags
2. Generate a 2–3 sentence summary of the video that:
  - Clearly states the primary topic of the video.
  - Highlights the most important information or key takeaways.
  - Excludes irrelevant or redundant details.
3. Ensure the output is concise and easily understandable.

Input:
{
  "title": "string", // The title of the YouTube video.
  "description": "string", // The description provided for the YouTube video.
  "tags": ["string"] // A list of tags associated with the video.
}

Output:
{
  "summary": "string" // A concise summary of the video in 2–3 sentences.
}

[영상에 대한 짧은 요약을 생성하는 프롬프트 예시]

마무리

이번 글에서는 LilysAI가 Amazon Bedrock을 활용하여 혁신적인 해외 자료 검색 기능을 구현한 사례를 소개했습니다. LilysAI는 Bedrock의 강력한 언어 모델을 활용하여 다국어 쿼리 번역, 맥락 기반 연관 검색어 추출, 그리고 빠른 콘텐츠 요약 기능을 구현함으로써 사용자 경험을 크게 개선했습니다. 이를 통해 LilysAI는 글로벌 콘텐츠에 대한 접근성을 높이고, 정보 탐색의 효율성을 극대화했습니다. 여러분의 비즈니스에서도 LilysAI의 사례와 같은 생성형 AI 기술의 적용 가능성을 탐색해 보시면서, 새로운 혁신의 기회를 발견하실 수 있기를 희망합니다!

Jake Park

Jake Park

박주혁님은 LilysAI의 Product Engineer로 해외자료 검색 기능을 담당해 개발했습니다. 고객과 직접 소통하며 문제를 발굴하고, 이를 제품에 녹여내어 해결하는 과정을 좋아합니다. 특히 LLM(대규모 언어 모델)의 강력한 능력을 구체적인 제품으로 구현해 사람들에게 제공하는 데 큰 보람을 느낍니다.

Gahyun Lee

Gahyun Lee

이가현 Cloud Sales Rep.은 AWS 스타트업팀에서 스타트업이 클라우드 활용해 제품/서비스 혁신에 집중할 수 있도록 최적의 AWS 서비스와 아키텍처를 제안합니다. AWS 스타트업팀은 수많은 스타트업들이 빠르게 성장하도록 적극적으로 지원하는 역할을 하고 있습니다.

Jinah Kim

Jinah Kim

김진아 솔루션즈 아키텍트는 스타트업 고객이 효율적이고 안정적인 서비스를 운영할 수 있도록 아키텍처 설계 가이드를 드리고 기술을 지원하는 역할을 수행하고 있습니다.