Back to blog

EDB Postgres AI와 OpenShift AI로 시맨틱 검색 구축하기

August 10, 2026

작성자: Shane Heroux, Bilge Ince – EDB | 2025년 9월 10일

관련 주제: APIs, 인공지능
관련 제품: Red Hat AI, Red Hat OpenShift AI, Red Hat OpenShift

전자상거래 상품 검색은 검색창에서 시작되지만, 패션처럼 제품의 핏·원단·색감이 중요한 분야에서는 단순한 키워드 매칭만으로 고객의 의도를 정확히 파악하기 어렵습니다. 이 글에서는 EDB Postgres AI와 Red Hat OpenShift AI를 연동해 시맨틱 검색(semantic search)을 구축하는 방법을 단계별로 살펴봅니다.

모델 등록과 지식 베이스(KB) 생성부터 이미지 검색, 텍스트 검색, 리뷰 요약, Streamlit 사용자 인터페이스 통합까지 SQL 중심의 구현 흐름을 확인할 수 있습니다. 패션을 위해 구축한 사례이지만, ‘어떻게 보이는지’ 또는 ‘어떤 느낌인지’가 정확한 단어보다 중요한 다양한 카탈로그에도 적용할 수 있습니다.


패션에서 키워드 검색이 부족한 이유

고객이 “해변 여행용 보헤미안 스타일 썬드레스”라고 입력한다고 가정해 봅시다. 전통적인 전체 텍스트 검색은 제목이나 설명에 이 단어들이 포함된 상품은 찾을 수 있습니다. 그러나 고객이 진짜 원하는 드레스의 핏, 원단, 색감은 이해하지 못합니다.

이럴 때 의미를 이해하는 시맨틱 검색이 강점을 발휘합니다. 단어에 담긴 의미를 파악해 동일한 단어가 없어도 더 관련성 높은 결과를 보여줍니다. 고객이 원하는 제품을 표현할 단어를 몰라 휴대폰에 저장된 사진으로 검색하는 상황에도 활용할 수 있습니다.

전통적인 키워드 검색은 텍스트 문자열을 매칭할 뿐 의미를 연결하지 못하며, 이미지를 처리하려면 많은 추가 작업이 필요합니다. 패션과 같은 제품 검색을 자연스럽게 만들려면 단순 텍스트 매칭에서 의미 매칭으로 전환해야 합니다.


EDB Postgres AI 시맨틱 검색 아키텍처

이 패션 추천 시스템은 다음 세 가지 요소를 기반으로 동작합니다.

  • EDB Postgres AI: 구조화·비구조화 AI 데이터를 AI Database 확장인 aidb를 통해 처리하고, 의미를 수치로 표현한 임베딩과 표준 제품 데이터를 함께 저장·검색
  • Red Hat OpenShift AI: 임베딩을 생성하는 AI 모델을 서비스
  • Red Hat OpenShift: 애플리케이션을 위한 확장 가능하고 안전한 플랫폼 제공

아키텍처 자체는 단순하지만, 세 요소의 조합이 이미지와 텍스트의 의미를 이해하는 AI 검색 솔루션을 가능하게 합니다.


시맨틱 검색 구현 6단계

이제 EDB Postgres AI 내부에 AI-ready 지식 베이스(KB)를 구축하고, 업로드된 이미지 하나로 시각적 검색을 실행하며, 자유 형식의 리뷰를 읽기 쉬운 형태로 변환한 뒤 프론트엔드와 연결하는 과정을 살펴보겠습니다.

1단계: EDB Postgres AI에서 모델 생성하기

OpenShift AI와 EDB Postgres AI는 별개의 플랫폼이지만 매끄럽게 연동됩니다. OpenShift AI 같은 서빙 플랫폼에서 직접 모델을 띄우거나, 온라인 호스팅 모델을 연결하거나, 로컬 패키지 모델을 사용할 수도 있습니다. 이 모든 과정은 Postgres AI의 create_model 함수를 통해 파이프라인에 통합할 수 있습니다.

모델이 배포되면 SQL 한 줄로 OpenAI 호환 엔드포인트를 참조해 aidb에 연결할 수 있습니다. 이후 SQL 워크플로우 안에서 곧바로 활용할 수 있어 추가적인 도구 전환이 필요하지 않습니다.

-- OpenShift AI에서 실행되는 LLM 예시
SELECT aidb.create_model('product_descriptions_embeddings','embeddings', 
'{"model": "gritlm-7b","url": "https://gritlm-7b...openshift.com/v1/embeddings"}'::JSONB, 
credentials => '{"token": "abcd"}'::jsonb );
-- 로컬 멀티모달 이미지 처리 모델
SELECT aidb.create_model('recom_images', 'clip_local');

핵심: SQL 한 줄로 모델을 등록하고 사용하는 방식은 API 연결·파이프라인 구성·도구 전환 등 기존의 마찰을 줄입니다. 결과적으로 빠른 반복, 단순한 아키텍처, 짧은 구현 주기를 제공합니다.

2단계: EDB Postgres AI에서 지식 베이스 구축하기

이 솔루션의 주요 특징 중 하나는 OpenShift 위에서 Postgres AI 안에 검색 인덱스를 단 몇 줄의 SQL로 만들 수 있다는 점입니다. 별도의 벡터 데이터베이스나 동기화 작업이 필요 없습니다.

임베딩은 운영 데이터와 동일한 데이터베이스에 저장되고, OpenShift AI는 임베딩을 생성하는 모델까지 함께 운영합니다. AI Database 확장을 사용하면 지식 베이스 생성도 SQL 몇 줄로 완료할 수 있습니다.

-- 이미지 KB (S3 버킷)
SELECT aidb.create_volume_knowledge_base(
            name => 'recom_images',
            model_name => 'recom_images',
            source_volume_name => 'images_bucket_vol',
            batch_size => 500);
SELECT aidb.bulk_embedding('recom_images');
-- 텍스트 KB (PostgreSQL 테이블)
SELECT aidb.create_table_knowledge_base(
    name => 'recommend_products',
    model_name => 'product_descriptions_embeddings',
    source_table => 'products',
    source_key_column => 'product_id',
    source_data_column => 'productdisplayname',
    source_data_type => 'Text',
    auto_processing =>'Live',
    batch_size => 1000);
SELECT aidb.bulk_embedding('recommend_products');

운영 데이터와 같은 데이터베이스에서 임베딩을 유지하면 복잡성과 지연 시간을 줄일 수 있습니다. 따라서 인프라 관리에 쓰는 시간을 줄이고 고객 경험 개선에 집중할 수 있습니다.

쇼핑객이 이미지를 업로드하면 앱은 이미지를 base64로 인코딩해 OpenShift AI의 비전 모델로 보냅니다. 모델이 임베딩을 반환하면 Postgres AI가 이를 저장하고, 지식 베이스를 조회해 가장 가까운 상품을 찾습니다. 필터링까지 동일한 SQL 호출에서 수행됩니다.

SELECT aidb.retrieve_key('recom_images', decode('{encoded_img_data}', 'base64'), 5);

하나의 데이터베이스 쿼리로 유사도 검색과 필터링을 함께 실행할 수 있습니다.

쇼핑객이 “여름용 원피스” 같은 문구를 입력하면 이는 정확한 키워드가 아니라 검색 의도를 표현한 것입니다. Postgres AI는 쿼리를 언어 모델로 임베딩해 지식 베이스와 비교하고 의미적으로 유사한 아이템을 찾습니다. 가격, 사이즈, 재고 여부 등의 필터링도 한 번에 수행할 수 있습니다.

SELECT * FROM aidb.retrieve_text('{text_retriever_name}', '{text_query}', 5);

핵심 요약:

  • 시맨틱 검색이 SQL 함수 호출 하나로 단순화됨
  • 외부 도구 불필요
  • 커스텀 API 불필요
  • 서비스 간 데이터 정리 불필요

새로운 검색 경험을 빠르게 프로토타입하고, 기술 스택을 다시 설계하지 않고도 확장할 수 있습니다.

5단계: LLM으로 상품 리뷰 요약하기

AI Database 확장은 벡터 매칭뿐만 아니라 등록된 대규모 언어 모델(LLM)을 통한 프롬프트 실행도 지원합니다. 애플리케이션에서는 길고 복잡한 리뷰 텍스트를 요약과 라벨 세트로 변환할 수 있습니다.

SELECT decode_text FROM aidb.decode_text(model_name, context_text);

데이터와 가까운 곳에서 요약을 실행하면 추가 서비스와 데이터 전송을 줄일 수 있습니다. 최소한의 엔지니어링 리소스로 명확하고 이해하기 쉬운 인사이트를 제공할 수 있습니다.

6단계: Streamlit UI에 검색 결과 통합하기

지식 베이스가 반환한 product ID를 프론트엔드에서 표시합니다. 이 빌드에서는 Streamlit 애플리케이션이 OpenShift 위에서 백엔드와 함께 실행됩니다. 따라서 UI 업데이트도 동일한 환경에서 배포·확장·관리할 수 있습니다.

# product id 검색
image_kb_query = “SELECT aidb.retrieve_key('recom_images', decode('{encoded_img_data}', 'base64'), 5);”
cur.execute(image_kb_query);
results = cur.fetchall()
product_ids = [row[0].split(',')[0].strip('()') for row in results]

# 이미지 표시
for product_id in product_ids: 
    product = get_product_details_in_category(product_id)
    if product["image_path"]:
        col_img, col_button = st.columns([3, 1])
        with col_img:
            image_name = os.path.basename(product["image_path"])
            display_image_s3(image_name)

백엔드가 무거운 작업을 처리하면 프론트엔드는 사용자 친화적인 인터페이스에 집중할 수 있습니다. 이를 통해 기술적 구현을 실제 사용자 검색 경험으로 연결할 수 있습니다.


EDB Postgres AI 기반 AI 검색의 핵심

이 솔루션은 검색을 단순한 키워드 매칭에서 의미 매칭으로 전환합니다.

  • EDB Postgres AI: OpenShift AI에서 실행되는 모델을 통해 비정형·정형 데이터를 임베딩 벡터로 변환하고 저장·검색 처리
  • OpenShift AI: 모델 실행 담당
  • Python 애플리케이션: 두 요소를 결합해 빠르고 인터랙티브한 경험 제공

이 사례는 패션을 위해 구축됐지만, 가구·자동차·레시피 등 ‘보이는 것·느껴지는 것’이 중요한 모든 카탈로그에 적용할 수 있습니다.

전체 코드와 배포 지침은 GitHub 저장소에서 확인할 수 있습니다. 직접 실행하고 수정하면서 의도를 이해하는 검색이 사용자 경험을 어떻게 바꾸는지 살펴보세요. 또한 Red Hat Ecosystem Catalog에서도 솔루션을 확인할 수 있습니다.


EDB Postgres AI 시맨틱 검색 FAQ

시맨틱 검색과 키워드 검색의 차이는 무엇인가요?

키워드 검색은 텍스트에 포함된 문자열을 중심으로 결과를 찾습니다. 시맨틱 검색은 쿼리와 상품 데이터의 의미를 임베딩으로 표현하고 비교하므로, 동일한 단어가 없어도 의미적으로 가까운 결과를 찾을 수 있습니다.

EDB Postgres AI는 이 검색 아키텍처에서 어떤 역할을 하나요?

EDB Postgres AI는 AI Database 확장인 aidb를 통해 모델을 연결하고, 구조화·비구조화 데이터의 임베딩과 표준 제품 데이터를 함께 저장·검색합니다. 이미지 및 텍스트 지식 베이스 조회도 SQL 워크플로우에서 수행합니다.

Red Hat OpenShift AI는 어떤 역할을 하나요?

Red Hat OpenShift AI는 텍스트와 이미지의 임베딩을 생성하는 AI 모델을 서비스합니다. 배포된 모델은 OpenAI 호환 엔드포인트를 통해 EDB Postgres AI의 aidb와 연결할 수 있습니다.

별도의 벡터 데이터베이스가 필요한가요?

이 글에서 소개한 구성은 임베딩을 운영 데이터와 동일한 EDB Postgres AI 데이터베이스에 저장합니다. 따라서 별도의 벡터 데이터베이스나 데이터 동기화 작업 없이 지식 베이스를 구축할 수 있습니다.

이미지 검색과 텍스트 검색을 모두 구현할 수 있나요?

가능합니다. 업로드 이미지는 base64로 인코딩한 뒤 비전 모델의 임베딩을 사용해 유사 상품을 찾고, 텍스트 쿼리는 언어 모델로 임베딩해 의미적으로 유사한 상품을 검색합니다.


원문: AI search with style: Fashion on OpenShift AI with EDB

문의: salesinquiry@enterprisedb.com

Share this