[후기] Opensource Summit 2025에서 AI Foundry를 만나다: kt cloud 미니 챗봇 구축기

Tech Story/AI Cloud

[후기] Opensource Summit 2025에서 AI Foundry를 만나다: kt cloud 미니 챗봇 구축기

 

 
[ kt cloud AI플랫폼팀 최지우 님 ]

📋 요약

Opensource Summit 2025에서 kt cloud AI Foundry 기반 RAG 챗봇 구축 사례를 소개합니다.

모델 배포부터 임베딩, 벡터 저장소까지 통합 플랫폼으로 구현한 실전 아키텍처와 코드를 단계별로 공유합니다.

#AIFoundry #RAG #챗봇구축 #오픈소스 #클라우드AI


[후기] Opensource Summit 2025에서 AI Foundry를 만나다: kt cloud 미니 챗봇 구축기

2025년 11월 4일부터 5일까지, 서울 코엑스에서 열린 Opensource Summit Korea 2025는 국내외 개발자와 오픈소스 커뮤니티가 한자리에 모이는 대규모 기술 행사였습니다. kt cloud는 이 자리에서 다이아몬드 스폰서로 참여하며, AI Foundry 플랫폼을 중심으로 한 다양한 AI 서비스 경험을 선보였습니다.

[후기] Opensource Summit 2025에서 AI Foundry를 만나다: kt cloud 미니 챗봇 구축기

행사장 한쪽에 마련된 kt cloud 부스에서는 관람객들이 직접 체험할 수 있는 AI 기반 인터랙티브 챗봇 서비스가 운영되었습니다. 이 챗봇은 AI Foundry 기반의 RAG(Retrieval-Augmented Generation) 구조로 구현되어, 방문객들은 “kt cloud”, “AI Foundry”, “클라우드 AI 서비스” 등과 관련된 질문을 챗봇에게 던지면 검색과 생성을 결합한 방식으로 그에 맞는 정확한 정보를 실시간으로 받아볼 수 있었습니다.


[후기] Opensource Summit 2025에서 AI Foundry를 만나다: kt cloud 미니 챗봇 구축기
실제 데모 화면

특히 이번 챗봇 체험은 단순한 질의응답을 넘어, 퀴즈 미션을 풀면 경품을 받을 수 있는 참여형 이벤트로 운영되어 관람객들의 큰 호응을 얻었습니다. 현장에서 많은 개발자들이 “이게 진짜 kt cloud 서비스로 돌아가는 거냐?”, “RAG가 실제로 이렇게 빠르게 작동할 수 있구나” 등의 반응을 보이며, 국내 클라우드 환경에서 오픈소스 기술과 AI 플랫폼이 결합된 실시간 RAG 서비스의 사용자 경험을 직접 체감했습니다.

 

이번 포스트에서는 현장에서 운영된 AI Foundry 기반 챗봇 서비스의 실제 아키텍처와 구축 과정을 소개합니다.
어떤 구성요소가 사용되었는지, 데이터가 어떻게 검색(Retrieval)되고 생성(Generation)되는지를 단계별로 설명하며, AI Foundry가 어떻게 오픈소스 생태계와 결합되어 실시간 RAG 파이프라인을 구현했는지 자세히 살펴보겠습니다.


AI Foundry로 구현한 RAG 기반 챗봇의 구성요소

이번에 구축된 RAG 기반 챗봇의 핵심은 kt cloud AI Foundry 플랫폼 위에서 완전히 구성되었다는 점입니다.
텍스트 생성, 임베딩, 벡터 저장소 등 RAG를 구성하는 모든 요소를 AI Foundry의 기능들을 이용하여 구현할 수 있었고, 별도의 모델 배포나 복잡한 인프라 설정 없이 클릭 몇 번으로 완성되는 AI 파이프라인을 구성할 수 있었습니다.

[후기] Opensource Summit 2025에서 AI Foundry를 만나다: kt cloud 미니 챗봇 구축기

우선 Text Generation 모델AI SERV 내 모델 스토어 기능을 통해 배포했습니다. 여기서는 KT의 독자 기술을 활용하여 개발된 Midm-2.0-Base-Instruct 모델을 활용했습니다.

 

AI SERV의 모델 스토어는 Hugging Face의 모델 저장소 타입의 폴더를 제공하여, 사용자는 단순히 모델을 클론한 뒤 모델 서빙에서 배포하기만 하면 바로 엔드포인트 URL이 생성됩니다. 이 엔드포인트를 Open AI API 규격에 맞춰 연결하면, 별도의 컨테이너 빌드나 파이프라인 설정 없이 즉시 텍스트 생성 서비스를 호출할 수 있습니다.

 

다음으로 Embedding 모델AI Foundry의 RAG Suite 내 Embedding 기능을 이용했습니다.
Embedding API는 자연어 문서를 벡터 형태로 변환하여, 검색 가능한 지식베이스를 구성하는 핵심 요소입니다.


kt cloud 콘솔에서는 해당 모델의 성능을 실시간으로 테스트할 수 있을 뿐만 아니라, 클릭 한 번으로 API 엔드포인트를 생성해 Python, JavaScript 등 다양한 환경에서 즉시 호출할 수 있습니다. 이 덕분에 별도의 오픈소스 임베딩 서버를 띄우지 않고도 고성능 한국어 벡터화를 안정적으로 수행할 수 있습니다.

 

Vector DB 역시 AI Foundry의 하위 구성요소를 그대로 사용했습니다. AI Foundry의 Vector DB는 RAG Suite의 Embedding 모델과 완벽히 호환되며, 단일 API 키로 인증과 접근 제어를 통합 관리할 수 있어 운영이 매우 단순합니다.
문서 벡터 삽입, 유사도 검색, 인덱스 관리 등의 기능을 모두 API 기반으로 처리할 수 있으므로 복잡한 인프라나 별도의 DB 운영 관리가 필요하지 않습니다.
결과적으로, 텍스트 생성 모델 – 임베딩 – 벡터 저장소가 하나의 플랫폼 안에서 유기적으로 연결된 구조를 갖게 되었습니다.

 

[후기] Opensource Summit 2025에서 AI Foundry를 만나다: kt cloud 미니 챗봇 구축기

이번 챗봇의 목적은 단순한 질의응답 데모가 아니었습니다. 행사 부스의 메인 이벤트 중 하나가 ‘kt cloud와 AI Foundry에 대한 퀴즈를 풀면 증정품을 받을 수 있는 인터랙티브 챗봇 이벤트’였기 때문입니다.
즉, 챗봇이 단순히 대화하는 AI가 아니라, 방문객에게 kt cloud와 AI Foundry에 대한 정확하고 신뢰할 수 있는 정보를 안내하는 지식형 도우미 역할을 해야 했습니다.

 

하지만 행사에 참여한 일반 관람객 입장에서는 kt cloud 혹은 AI Foundry라는 서비스 자체를 처음 접하는 경우가 많았습니다.
이 때문에 챗봇이 답변을 생성할 때 정확한 정보를 신뢰할 수 있는 자료에서 끌어오도록 하는 구조가 필요했습니다.


바로 이 지점에서 RAG(Retrieval-Augmented Generation) 아키텍처가 큰 역할을 했습니다.

이를 위해 챗봇이 참조하는 지식베이스에는 다음과 같은 문서들이 포함되었습니다.

  • kt cloud 공식 홈페이지 내 AI Foundry 상품 소개 페이지
  • AI Foundry 서비스 매뉴얼 및 API 문서
  • 언론 및 기술 블로그에서 공개된 AI Foundry 관련 기사, 뉴스, 인터뷰 자료

이 문서들은 모두 공개 정보이면서도 행사 주제와 직접적으로 연관된 콘텐츠로 구성되어 있습니다.
RAG 파이프라인은 이 문서들을 벡터 형태로 임베딩해 저장하고, 사용자가 질문을 입력하면 가장 관련성이 높은 문서를 검색하여 모델의 입력(prompt)에 함께 제공합니다.


그 결과, 사용자가 “AI Foundry는 어떤 기능을 제공하나요?” 혹은 “kt cloud의 AI 서비스는 어떤 식으로 동작하나요?”와 같은 질문을 했을 때, 모델은 실제 kt cloud 문서 내용을 기반으로 신뢰성 높은 답변을 생성할 수 있었습니다.

이처럼 이벤트의 목적(‘kt cloud와 AI Foundry에 대한 퀴즈를 맞추기’)RAG 구조의 설계 목표(‘특정 주제의 정확한 정보 전달’)가 긴밀하게 연결되도록 설계한 것이 이번 프로젝트의 가장 큰 특징이자 핵심 설계 포인트입니다.


RAG 기반 챗봇 구현: 코드로 살펴보기

이제, 실제로 이 챗봇이 어떻게 구성되었는지 살펴보겠습니다.
앞서 설명한 RAG 아키텍처가 AI Foundry 위에서 어떻게 구현되는지, 그리고 모델/임베딩/벡터 저장소가 어떤 방식으로 연결되어 동작하는지를 단계별로 정리했습니다.


각 단계는 콘솔에서 바로 확인할 수 있는 실제 설정 화면과 코드 예시를 함께 제공합니다.
이를 통해 단순한 아키텍처 개념을 넘어, AI Foundry에서 RAG 기반 챗봇을 직접 구축하는 구체적인 흐름을 따라가 볼 수 있습니다.

0. kt cloud 콘솔에서 엔드포인트 생성하기

모델 배포(서빙), 임베딩, 벡터스토어까지 모두 kt cloud 콘솔에서 엔드포인트를 생성해 바로 연결했습니다. 외부 인프라 구성 없이 API 결합만으로 전체 파이프라인이 작동하도록 한 것이 이번 설계의 핵심입니다.

  • Text Generation: MODEL_ENDPOINT (AI SERV 모델 스토어→모델 서빙으로 생성된 엔드포인트)

[후기] Opensource Summit 2025에서 AI Foundry를 만나다: kt cloud 미니 챗봇 구축기

이외에 RAG Suite의 Text Generation 탭에서도 다양한 모델을 제공하고 있습니다.

  • Embedding: EMBEDDING_ENDPOINT (RAG Suite의 Embedding 기능 엔드포인트)

[후기] Opensource Summit 2025에서 AI Foundry를 만나다: kt cloud 미니 챗봇 구축기

  • Vector DB: DB_ENDPOINT (AI Foundry Vector DB 상품의 API 엔드포인트)

[후기] Opensource Summit 2025에서 AI Foundry를 만나다: kt cloud 미니 챗봇 구축기

1. Text Generation의 모델 사용 예시

Text Generation 모델은 OpenAI API 포맷과 호환되는 LLM 인터페이스를 제공합니다. 아래와 같이 openai 패키지를 통해서, Text Generation 모델을 사용할 수 있습니다.

from openai import OpenAI  # openai==1.104.2
client = OpenAI(
    base_url="https://********.proxy.aifoundry.ktcloud.com/v1", # 반드시 "/v1"을 경로에 포함
    api_key="kt_********************************"
)
stream = client.chat.completions.create(
    model="Midm-2.0-Base-Instruct",
    messages=[
        {"role": "user", "content": "안녕, 너는 누구니?"}
    ],
    stream=True
)
for chunk in stream:
    try: 
        if chunk.choices[0].delta.content is not None:
            print(chunk.choices[0].delta.content, end="")
    except Exception as e:
        pass

이렇게 생성된 LLM 엔드포인트는 FastAPI, Streamlit 등 어떤 환경에서도 바로 호출할 수 있습니다.
실제 행사 부스에서는 FastAPI 기반 서버로 배포해, 관람객 질의에 실시간으로 응답하도록 구성했습니다.

2. Embedding + Vector DB

RAG Suite의 임베딩 모델과 Vector DB를 함께 사용했습니다.

실제 운영에서는 대용량 문서를 문단 단위로 청크로 나눈 뒤 임베딩→업서트하는 흐름을 사용했습니다.
임베딩 결과에는 doc_id, source, url, section 등의 메타데이터를 함께 저장해, 검색 후 답변에 근거 출처를 노출하도록 설계했습니다.

def embed_texts(texts: list[str]) -> list[list[float]]:
    resp = embed_client.embeddings.create(model='solar-embedding-1-large', input=texts)
    # resp.data[i].embedding
    return [d.embedding for d in resp.data]
vectorstore = FoundryVectorDB(
    base_url=DB_ENDPOINT,
    table=TABLE_NAME,
    auth_token=DB_AUTH_TOKEN,
    dense_col=DENSE_COL,
    index_name=DENSE_INDEX,
)

검색은 MMR 방식으로 설정해 유사도와 다양성을 동시에 확보했습니다. 또한 한국어 질의가 대부분이므로, 임베딩 모델과 Vector DB의 코사인 유사도 설정을 일치시켜 스코어 일관성을 유지했습니다.

 

또한 Vector DB 쿼리 시, 이벤트 주제에 맞춘 간단한 메타데이터 필터(예: source in ['official', 'manual', 'news'])를 적용해 정확도를 끌어올렸습니다.

retriever = vectorstore.as_retriever(
    search_type="mmr",
    search_kwargs={"k": 5, "fetch_k": 20, "lambda_mult": 0.7}
)

3. 이벤트 주제 필터링 — kt cloud 관련 질문만 RAG 활성화

일반 관람객은 kt cloud나 AI Foundry 관련 지식이 없기 때문에, 챗봇이 비관련 질문에 엉뚱한 답변을 생성하지 않도록 ‘도메인 유사도 필터’를 적용했습니다.

from sklearn.metrics.pairwise import cosine_similarity
DOMAIN_PROMPT = "kt cloud, AI Foundry, kt cloud AI 서비스, RAG Suite, Vector DB"
domain_emb = embedding_model.embed_query(DOMAIN_PROMPT)
def is_ai_domain(question: str, threshold: float = 0.6) -> bool:
    q_emb = embedding_model.embed_query(question)
    sim = cosine_similarity([q_emb], [domain_emb])[0][0]
    return sim >= threshold

질문과 도메인 기준 벡터 간의 코사인 유사도가 임계값(threshold)을 넘으면 RAG를 실행하고, 그 이하일 경우에는 “모르는 내용은 모른다고” 답변하도록 설정했습니다.

 

이 간단한 필터링 로직 덕분에 이벤트 퀴즈 주제(kt cloud, AI Foundry)와 무관한 질문에 대해서도 자연스럽게 대응할 수 있었으며, 모델이 불필요한 환상(hallucination)을 생성하는 문제를 최소화할 수 있었습니다.

4. RAG 동작 핵심 — 검색·문맥 결합·응답 생성

def rag_node(question: str):
    docs = vectorstore.similarity_search_with_score(question, k=20)
    top_docs = docs[:5]
    context = "\n".join([doc.page_content for doc, _ in top_docs])
    prompt = f"다음 문서를 참고해 질문에 답해주세요.\n\n{context}\n\n질문: {question}\n답변:"
    response = client.chat.completions.create(
        model=LLM_MODEL,
        messages=[
            {"role": "system", "content": "문맥 밖의 정보는 추정하지 말고, 모르면 모른다고 답하세요."},
            {"role": "user", "content": prompt}
        ],
        stream=False,
        temperature=0.2,
    )
    answer = response.choices[0].message.content or ""
    return answer
  • Vector DB에서 상위 문서를 검색
  • 검색된 문맥을 결합해 프롬프트 구성
  • Text Generation 모델을 통해 답변 생성
  • references 리스트를 활용해 근거 문서를 명시적으로 표시

이 구조 덕분에, 사용자는 “AI Foundry는 어떤 기능을 제공하나요?”와 같은 질문에 대해 실제 문서 기반의 정확한 답변과 함께 출처가 포함된 응답을 받을 수 있습니다.모델은 문맥 밖 추정을 제한하고, 문서에 기반한 근거 중심 답변을 생성하도록 제어되었습니다.

5. FastAPI로 간단히 서비스화

from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class QARequest(BaseModel):
    question: str
    session_id: str
@app.post("/answer")
def answer_question(req: QARequest):
    if is_ai_domain(req.question):
        answer = rag_node(req.question)
    ...

/answer 엔드포인트로 질문을 받으면 → 도메인 유사도 판단 → RAG 실행 → 응답 반환의 순서로 동작합니다.
이 구조를 FastAPI 서버로 배포하면, 프론트엔드(예: Streamlit, React, 웹 챗 UI)에서 간단한 HTTP POST 요청만으로 실시간 질의응답이 가능합니다.

 

행사 부스에서는 이 서버를 kt cloud VM 위에 배포해, 관람객의 입력이 바로 RAG 파이프라인으로 전달되고 응답이 출력되는 구조로 구성했습니다.
덕분에 AI Foundry 콘솔에서 생성한 API 엔드포인트 세 개(모델·임베딩·DB)만으로 완전한 챗봇 서비스가 구현되었습니다.


AI Foundry, 오픈소스와 함께 확장되는 kt cloud AI

이번 프로젝트는 단순한 기술 데모를 넘어, kt cloud AI Foundry가 오픈소스 생태계와 얼마나 자연스럽게 결합될 수 있는지를 보여주는 사례였습니다. 모델 배포, 임베딩, 벡터 저장소를 모두 한 플랫폼에서 통합 제공하는 구조 덕분에, 복잡한 인프라 구성 없이도 완전한 RAG 파이프라인을 단 몇 시간 만에 구현할 수 있었습니다.

 

특히 OpenAI 호환 API 형태로 설계되어 제공되는 RAG Suite의 인터페이스는, 기존 오픈소스 프레임워크(langchain, llama-index 등)를 거의 수정 없이 그대로 적용할 수 있게 해주었습니다.
이는 개발자 입장에서 진입 장벽을 획기적으로 낮추는 동시에, 국내 인프라 환경 안에서 안정적이고 확장 가능한 AI 서비스를 직접 운영할 수 있는 길을 열었습니다.

행사 현장에서 관람객들이 체험한 챗봇은 “AI Foundry 기반의 실제 서비스가 이렇게 빠르게 돌아간다”는 사실을 증명했습니다. RAG는 단순한 구조적 기술을 넘어, 정확성과 신뢰성을 확보하는 AI 서비스 설계의 기본 패턴이 되었고, kt cloud는 이 흐름을 국내 환경에 맞게 구체적으로 구현해낸 첫 사례 중 하나입니다.

 

앞으로 AI Foundry는 RAG Suite를 넘어, 모델 커스터마이징, 파이프라인 자동화, 벡터 검색 최적화 등 더 넓은 AI 개발 전주기를 아우르는 통합 플랫폼으로 확장될 예정입니다.
이번 오픈소스 서밋에서 보여준 챗봇 구축 사례가, 개발자들이 직접 손으로 만들어보는 “국산 클라우드 AI 생태계의 현실적 출발점”이 되길 바랍니다!

kt cloud


❓ 자주 묻는 질문 (FAQ)

Q. AI Foundry를 활용한 RAG 구현이 기존 오픈소스 방식과 다른 점은 무엇인가요?
A. 기존에는 모델 서빙, 임베딩 서버, 벡터DB 등을 각각 설치·운영해야 하지만, AI Foundry는 이를 API 형태로 통합 제공하므로 설정과 운영 부담이 크게 줄어듭니다. 또한 OpenAI API 규격을 지원해 호환성이 높고 더 빠르게 서비스를 구성할 수 있습니다.

📚 관련/출처

kt cloud AI Foundry 상품소개
kt cloud RAG Suite 매뉴얼