Amazon Web Services 한국 블로그
Amazon Nova Web Grounding 기반 정확한 AI 애플리케이션 구축
복잡한 데이터 검색 시스템을 개발하는 복잡성 없이 정확한 최신 정보를 제공하는 AI 애플리케이션을 구축할 수 있다고 상상해 보세요. 오늘은 Amazon Bedrock의 Nova 모델을 위한 새로운 기본 제공 도구인 Web Grounding 정식 출시 소식을 알려드립니다.
Web Grounding은 개발자에게 Amazon Nova 파운데이션 모델이 프롬프트의 맥락에 기반해 최신 관련 정보를 검색해 포함하는 것이 좋을지 지능적으로 결정할 권한을 부여하는 턴키 검색 증강 생성(RAG) 옵션을 제공합니다. 이렇게 하면 인용된 공개 소스를 컨텍스트로 포함해 모델 출력에 근거를 제공할 수 있습니다. 이를 통해 할루시네이션을 줄이고 정확도를 향상하고자 합니다.
Nova Web Grounding을 언제 사용하면 좋을까요?
사실에 근거한 최신 정보에 액세스해야 하거나, 인용 출처가 명확한 응답을 제공해야 하는 애플리케이션을 구축하는 개발자라면 Web Grounding 이용을 고려하는 것이 좋습니다. 이 기능은 제품과 서비스에 관한 최신 정보를 제공하는 지식 기반 채팅부터 팩트 체크와 출처 확인이 필수적인 콘텐츠 생성 도구까지 다양한 애플리케이션에 특히 귀중한 값어치가 있습니다. 또한 최신 출처 여러 곳에서 정보를 취합해야 하는 리서치 어시스턴트로도 이상적이고, 정확도와 검증 가능성이 매우 중요한 고객 지원 애플리케이션에도 좋습니다.
Web Grounding은 AI 애플리케이션의 할루시네이션을 줄여야 하거나, 출처를 투명하게 밝혀야 하는 사용 사례인 경우 특히 유용합니다. 정보 검색과 통합을 자동으로 처리하기 때문에 복잡한 RAG 구현을 관리하기보다 애플리케이션 구축에만 집중하고자 하는 개발자에게 효율적인 솔루션이기도 합니다.
시작하기
Web Grounding은 지원되는 Amazon Nova 모델과 원활하게 통합되어 추론 중 정보 검색과 처리 작업을 담당합니다. 이렇게 하면 복잡한 RAG 파이프라인을 구축해 유지 관리할 필요가 없고, 동시에 정보의 원래 출처를 확인할 수 있게 소스도 제공됩니다.
그럼 이제 Web Grounding을 활성화한 상태로, Pythyon을 사용해 Nova Premier에 질문해서 Amazon Bedrock Converse API를 호출하는 과정을 예로 들어 살펴보겠습니다.
우선, 평소처럼 AWS SDK for Python(Boto3)을 사용해 Amazon Bedrock 클라이언트를 만들었습니다. 모범 사례에 따라 세션을 사용했습니다. 세션을 사용하면 구성을 그룹화하고 재사용하는 데 도움이 됩니다. 그런 다음 BedrockRuntimeClient를 만듭니다.
try:
session = boto3.Session(region_name='us-east-1')
client = session.client(
'bedrock-runtime')
그리고 Amazon Bedrock Converse API 페이로드를 준비합니다. 그러려면 “role” 파라미터를 “user”로 설정해야 합니다. 이렇게 하면 메시지를 보낸 사람이 애플리케이션의 사용자라고 표시하게 됩니다(AI 생성 응답인 경우 “assistant”).
이 데모에서는 “What are the current AWS Regions and their locations(현재 AWS 리전은 무엇이고 각각의 위치는 어디야)?”라는 질문을 선택했습니다. 이 질문은 최신 정보가 필요하기 때문에 고의로 선택한 것으로, 이 때문에 이 질문은 Amazon Nova가 최신 지식이 필요하다고 판단하면 Web Grounding을 이용해 자동으로 검색을 호출하는 방식을 보여주는 데 유용합니다.
# Prepare the conversation in the format expected by Bedrock
question = "What are the current AWS regions and their locations?"
conversation = [
{
"role": "user", # Indicates this message is from the user
"content": [{"text": question}], # The actual question text
}
]
우선 Web Grounding 없이 어떤 출력이 나오는지 보겠습니다. Amazon Bedrock Converse API를 호출합니다.
# Make the API call to Bedrock
model_id = "us.amazon.nova-premier-v1:0"
response = client.converse(
modelId=model_id, # Which AI model to use
messages=conversation, # The conversation history (just our question in this case)
)
print(response['output']['message']['content'][0]['text'])
현재 모든 AWS 리전과 각각의 위치가 목록으로 표시됩니다.
이제 Web Grounding을 사용해 보겠습니다. 아까와 비슷한 Amazon Bedrock Converse API를 호출하되, nova_grounding을 모델이 이용할 수 있는 도구로 선언합니다.
model_id = "us.amazon.nova-premier-v1:0"
response = client.converse(
modelId=model_id,
messages=conversation,
toolConfig= {
"tools":[
{
"systemTool": {
"name": "nova_grounding" # Enables the model to search real-time information
}
}
]
}
)
응답을 처리하고 나서 보면, 모델이 Web Grounding을 사용해 최신 정보에 액세스했다는 사실을 알 수 있습니다. 출력에 추론 트레이스가 포함되어 있어 이를 통해 모델의 사고 과정을 추적할 수 있고, 어디에서 자동으로 외부 소스에 쿼리했는지 확인할 수 있습니다. 이러한 외부 호출의 응답 내용은 [HIDDEN]으로 표시됩니다. 이것은 AI 시스템의 표준 관행이며, 이렇게 해야 민감한 정보를 보호할 수 있고, 출력 크기를 관리하는 데도 도움이 됩니다.
또한 출력에는 Web Grounding이 쿼리한 소스에 관한 정보가 포함된 citationsContent 객체도 포함됩니다.
이제 AWS 리전 목록이 표시됩니다. 맨 끝에 “여기 표시된 것이 전 세계 최신, 활성 AWS 리전입니다.”라는 메시지가 표시됩니다.
Web Grounding은 최소한의 노력만으로 AI 애플리케이션의 신뢰도와 최신성을 강화하는 데 중대한 도약입니다. 정확한 최신 정보를 제공해야 하는 고객 서비스 채팅 어시스턴트를 구축하든, 출처 여러 곳에서 정보를 입수해 분석하고 취합하는 리서치 애플리케이션을 개발하든, 아니면 목적지와 숙소에 관한 최신 세부 정보를 제공하는 여행 애플리케이션을 만들든 Web Grounding을 이용하면 구성과 사용 방법이 직관적인 편리한 턴키 솔루션을 사용해 사용자에게 더 정확하고 관련성 높은 응답을 제공할 수 있습니다.
알아야 할 사항
Amazon Nova Web Grounding은 오늘부터 미국 동부(버지니아 북부)에서 이용할 수 있습니다. Web Grounding은 조만간 미국 동부(오하이오), 미국 서부(오리건)에서도 출시될 예정입니다.
Web Grounding에는 추가 비용이 발생합니다. 자세한 정보는 Amazon Bedrock 요금 페이지를 참조하세요.
현재로서는 Web Grounding과 호환되는 모델이 Nova Premier 하나뿐이지만, 곧 다른 Nova 모델 지원도 추가할 계획입니다.
Amazon Nova를 한 번도 사용해본 적이 없거나 더 심층적으로 탐구해 볼 생각이 있다면, Amazon Nova 파운데이션 모델의 효과적인 사용법을 배울 수 있는 자기 주도형 온라인 워크숍을 참조하세요. 실습을 통해 텍스트, 이미지, 영상 처리용 관련 특성도 배워볼 수 있습니다.



