코드를 넘어, 생각하는 AI를 만나다
AI가 스스로 웹을 검색하고, 질문에 대한 답을 찾아내는 시대. 개발자로서 이런 이야기를 들을 때마다 가슴 한편이 두근거렸습니다. 단순히 주어진 데이터로 답하는 것을 넘어, 능동적으로 정보를 찾고 문제를 해결하는 에이전트라니. 막연한 상상만 하던 차에, NVIDIA에서 GPT-OSS 모델과 NIM이라는 새로운 도구를 공개했다는 소식을 접했습니다. 호기심과 설렘이 뒤섞인 마음으로, 저는 이 새로운 세계에 첫발을 내디뎌 보기로 결심했습니다. 이것은 단순한 스터디 가이드가 아닌, 제가 새로운 기술을 만나고, 대화하고, 마침내 작은 가능성을 싹틔우기까지의 여정에 대한 기록입니다.
모든 새로운 시작에는 약간의 준비가 필요한 법이죠. 저의 첫 번째 과제는 NVIDIA의 세상으로 들어가는 '열쇠', 즉 API Key를 얻는 것이었습니다.
build.nvidia.com에 접속해 GPT-OSS 모델 타일을 클릭했을 때, 저는 마치 새로운 장난감을 선물 받은 아이처럼 설렜습니다.
'View Code' 버튼을 누르고 API 키를 생성하는 과정은 간단했지만, 제게는 특별한 의식처럼 느껴졌습니다. 이 한 줄의 문자열이 앞으로 제가 만들어갈 AI 애플리케이션의 심장이 되어줄 테니까요.
모든 위대한 여정의 시작은 작은 설정 파일 하나에서 비롯된다.
Colab 노트북을 열고, 발급받은 키를 환경 변수로 조심스럽게 설정했습니다. 그리고 OpenAI의 Python SDK를 설치하며 본격적인 대화를 위한 준비를 마쳤습니다. 클라이언트를 설정하는 코드는 단 몇 줄에 불과했지만, base_url에 NVIDIA의 주소를 입력하는 순간, 저는 비로소 거대한 모델과 연결되고 있음을 실감할 수 있었습니다.
드디어 GPT-OSS 모델과 직접 대화할 시간이 되었습니다. 저는 Responses API를 사용해 첫 번째 질문을 던졌습니다. 코드는 client.responses.create라는 단순한 메서드 호출이었지만, 그 안에는 저의 기대감이 가득 담겨 있었죠.
특히 제 눈길을 끈 것은 reasoning_effort라는 매개변수였습니다. 이 값을 'high'로 설정하면 모델이 더 깊이 생각하고, 'low'로 설정하면 가볍게 답을 내놓는다는 설명이 흥미로웠습니다. 저는 모델에게 "조금 더 신중하게 생각해줘"라고 말을 건네는 듯한 기분으로 이 값을 조절하며 여러 질문을 던져 보았습니다.
Python
# stream = client.responses.create(
# model="gpt-oss-12b-2407-int4",
# messages=[
# {
# "role": "user",
# "content": "AI 에이전트를 만드는 가장 중요한 첫 단계는 무엇인가요?",
# }
# ],
# stream=True,
# reasoning_effort="high"
# )
스트리밍 옵션을 켜자, 모델의 답변이 한 글자 한 글자 화면에 나타나기 시작했습니다. 타자기처럼 찍혀 나오는 텍스트를 바라보며, 저는 딱딱한 기계가 아닌, 정말로 '생각'하는 누군가와 대화하고 있다는 착각에 빠져들었습니다. 이것은 단순한 API 응답이 아니었습니다. 저와 AI의 첫 번째 대화가 실시간으로 이루어지는 순간이었습니다.
모델과 대화하는 것만으로는 만족할 수 없었습니다. 저는 AI에게 더 넓은 세상을 보여주고 싶었습니다. 스스로 웹을 탐색하고, 실시간 정보를 가져와 답변하는 '에이전트'를 만들어보기로 마음먹었죠. 이를 위해 OpenAI의 Agents SDK와 웹 검색 라이브러리인 Tavily라는 새로운 날개를 준비했습니다.
한 가지 흥미로운 점은, 도구를 사용하는 기능(Tool Calling)은 아직 Responses API에서 지원하지 않아
Chat Completions API를 사용해야 한다는 것이었습니다. 때로는 이렇게 우회로를 찾는 과정 또한 개발의 일부라는 것을 다시 한번 느꼈습니다.
저는 AI에게 'search_web'이라는 새로운 능력을 선물했습니다.
@function_tool
데코레이터로 웹 검색 함수를 감싸는 코드를 작성하며, 저는 마치 AI에게 새로운 마법을 가르쳐주는 마법사가 된 기분이었습니다.
이제 너는 더 이상 닫힌 상자 속 존재가 아니야. 스스로 세상의 정보를 탐험하는 탐험가란다.
에이전트에게 "너는 유용한 조수야. 그리고 'search_web'이라는 도구를 사용할 수 있어"라고 지침을 내려주었습니다. 그리고 마침내 "오늘 가장 주목받은 AI 기술 뉴스는 뭐야?"라는 질문을 던졌습니다. 잠시 후, 에이전트가 Tavily를 통해 웹을 검색하고 최신 뉴스를 정리해 제 눈앞에 보여주었을 때, 저는 작은 탄성을 내지를 수밖에 없었습니다. 제가 만든 코드가 생명을 얻어 스스로 행동하는 첫 순간을 목격했기 때문입니다.
NVIDIA의 GPT-OSS 모델과 NIM API를 가지고 놀았던 시간은 제게 많은 것을 가르쳐 주었습니다. 기술을 배우는 과정은 단순히 코드를 익히고 문법을 외우는 것이 아니라, 새로운 가능성을 상상하고 그것을 내 손으로 직접 현실로 만들어나가는 여정이라는 것을요.
단순한 API 호출에서 시작해, 스스로 웹을 탐색하는 작은 에이전트를 만들기까지. 이 짧은 여정은 저에게 코딩의 즐거움을 넘어 창조의 기쁨을 안겨주었습니다. 이 글을 읽는 여러분도 저처럼 작은 호기심에서 시작해 보시는 건 어떨까요? 거창한 목표가 아니어도 좋습니다. AI에게 말을 걸고, 작은 능력을 선물하는 것만으로도 우리는 충분히 새로운 세상과 만날 수 있습니다.
여러분은 AI에게 어떤 날개를 달아주고 싶으신가요?