AI 기술이 빠르게 발전하면서 단순한 질의응답을 넘어 더 복잡하고 실용적인 작업을 수행할 수 있게 되었습니다. 오늘은 Upstage Console에서 제공하는 핵심 Capability들에 대해 자세히 알아보겠습니다.
Capability란 무엇인가?
Capability는 AI 모델이 수행할 수 있는 특정 기능 영역을 의미합니다. 쉽게 말해 "이 AI가 어떤 유형의 작업을 할 수 있는지"를 분류하는 카테고리입니다.
대표적인 Capability들을 살펴보면:
이 중에서도 Structured Outputs, Function Calling, Embeddings, Groundedness Checking은 비교적 생소하지만 실무에서 매우 강력한 기능들입니다.
1. Structured Outputs: 일관된 형식의 응답 보장
핵심 개념
Structured Outputs는 AI가 정해진 JSON 스키마에 따라 일관된 형식의 응답을 생성하도록 하는 기능입니다.
실제 활용 예시
마트 상품 가격 조회 시스템을 구축한다고 가정해보겠습니다:
1단계: JSON 스키마 정의
{
"type": "object",
"properties": {
"price": { "type": "number" },
"currency": { "type": "string" },
"availability": { "type": "boolean" }
},
"required": ["price", "currency", "availability"]
}
2단계: 질문 입력
"마트에서 파는 양파 가격이 얼마야?"
3단계: 구조화된 응답 생성
{
"price": 2500,
"currency": "KRW",
"availability": true
}
언제 사용할까?
- API 응답 표준화가 필요한 경우
- 데이터베이스 저장을 위한 일관된 형식이 필요한 경우
- 후속 시스템 연동에서 파싱 오류를 방지하고 싶은 경우
- 대량 데이터 처리 시 형식 통일이 중요한 경우
2. Function Calling: AI가 직접 외부 시스템과 소통
핵심 개념
Function Calling은 AI가 텍스트 생성을 넘어 실제 외부 시스템(API, 데이터베이스 등)과 상호작용할 수 있게 하는 기능입니다.
동작 원리
날씨 조회 시스템을 예로 들어보겠습니다:
1단계: 함수 스키마 정의
[
{
"name": "get_weather",
"description": "특정 도시와 날짜의 날씨 정보를 조회",
"parameters": {
"type": "object",
"properties": {
"city": { "type": "string" },
"date": { "type": "string", "format": "YYYY-MM-DD" }
},
"required": ["city", "date"]
}
}
]
2단계: 사용자 질문
"내일 서울 날씨 어때?"
3단계: AI가 함수 호출 정보 생성
{
"name": "get_weather",
"arguments": {
"city": "Seoul",
"date": "2025-08-23"
}
}
4단계: 시스템이 실제 API 호출
const weather = await get_weather("Seoul", "2025-08-23");
// 결과: { "temperature": 28, "condition": "맑음" }
5단계: 최종 응답 생성
"내일 서울 날씨는 맑고 기온은 28도입니다."
Structured Outputs와의 차이점
3. Embeddings: 의미를 숫자로 표현하기
핵심 개념
Embeddings는 텍스트를 수치 벡터로 변환하여 의미가 비슷한 텍스트들을 수학적으로 가까운 위치에 배치하는 기술입니다.
Query vs Passage 모델
대부분의 검색 시스템에서는 두 가지 유형의 임베딩 모델을 사용합니다:
실제 검색 과정
# 1. Query와 Passage들을 벡터로 변환
query = "서울에서 봄에 가기 좋은 여행지는?"
passages = [
"한국은 봄에 벚꽃이 아름답다.",
"파이썬은 배우기 쉬운 언어다.",
"서울 남산타워는 봄에 벚꽃이 만개한다."
]
# 2. 유사도 계산
query_vector = embedding_model.encode_query(query)
passage_vectors = [embedding_model.encode_passage(p) for p in passages]
# 3. 가장 유사한 passage 선택
similarities = cosine_similarity(query_vector, passage_vectors)
best_match = passages[similarities.argmax()]
# 결과: "서울 남산타워는 봄에 벚꽃이 만개한다."
활용 분야
- 의미 기반 검색: 키워드가 다르더라도 의미가 비슷한 문서 찾기
- 추천 시스템: 사용자 취향과 비슷한 콘텐츠 추천
- 문서 분류: 주제별로 문서 자동 분류
- 중복 제거: 의미가 동일한 중복 콘텐츠 식별
4. Groundedness Checking: AI 답변의 신뢰성 보장
핵심 개념
Groundedness Checking은 AI가 생성한 답변이 제공된 근거 자료에 실제로 기반하고 있는지 검증하는 기술입니다.
왜 필요한가?
AI는 때때로 **할루시네이션(환각)**이라고 불리는 현상으로 없는 사실을 만들어낼 수 있습니다. RAG(Retrieval-Augmented Generation) 시스템에서도 이런 문제가 발생할 수 있어, 최종 검증 단계가 필요합니다.
동작 예시
근거 자료 (Context):
서울은 대한민국의 수도입니다.
AI 답변:
서울은 대한민국의 수도이고, 인구는 약 100만 명입니다.
검증 요청:
{
"messages": [
{
"role": "user",
"content": "서울은 대한민국의 수도입니다."
},
{
"role": "assistant",
"content": "서울은 대한민국의 수도이고, 인구는 100만 명입니다."
}
]
}
검증 결과:
{
"result": "notGrounded",
"reason": "인구 정보가 근거 자료에 포함되지 않음"
}
결과 유형
"grounded"
: 답변이 근거 자료에 완전히 기반함"notGrounded"
: 근거 자료에 없는 정보 포함"notSure"
: 판단이 애매한 경우
실무 적용: 통합 시나리오
이 네 가지 Capability를 조합하면 강력한 AI 시스템을 구축할 수 있습니다:
고객 서비스 봇 구축 예시
- 사용자: "내 주문 상태가 어떻게 되나요?"
- Function Calling: 고객 DB에서 주문 정보 조회
- Embeddings: 관련 FAQ나 정책 문서 검색
- Structured Outputs: 일관된 형식으로 응답 생성
- Groundedness Checking: 제공한 정보가 실제 데이터에 기반하는지 검증
결론
현대 AI의 진정한 가치는 단순한 채팅을 넘어 비즈니스 프로세스 자동화, 정확한 정보 검색, 시스템 통합 등에 있습니다.
- Structured Outputs로 데이터 일관성 보장
- Function Calling으로 실시간 시스템 연동
- Embeddings로 지능적 검색과 추천
- Groundedness Checking으로 신뢰성 확보
이 네 가지 핵심 Capability를 이해하고 적절히 조합하면, AI를 단순한 도구가 아닌 비즈니스의 핵심 인프라로 활용할 수 있을 것입니다.
이 글이 도움이 되었다면, 실제 프로젝트에 적용해보시고 경험을 공유해주세요. AI 기술은 빠르게 발전하고 있으며, 실무 적용 사례가 늘어날수록 더 나은 솔루션을 만들 수 있을 것입니다.