해커톤, 팀 프로젝트 등에서 Assistant API를 자주 사용했다.
하지만, Assistant API를 사용할 때마다 기능이나 작동 방식을 까먹어서 글로 정리해두려 한다.
OpenAI 공식 문서나 다른 개발 사이트에서는 Assistant API를 어렵게 설명하고 있으나, 쉽게 말하면
일반 채팅 API의 업그레이드 버전이다.
이 API는 사용자의 데이터를 기억하거나, 특정 작업을 호출하고, 사전 정의된 instruction을 활용할 수 있기 때문에, AI 챗봇을 애플리케이션에 통합하려는 개발자에게 매우 유용하다.
Assistant API는 크게 세 가지 특징을 가지고 있다.
기존 AI Chat API는 사용자가 이전에 했던 대화를 기억하지 못한다.
예를 들어, 사용자가 “이제부터 한국어로 대답해”라고 말하면, AI는 “알겠습니다.”라고 답하지만, 이후 대화에서 또 영어로 대답할 것이다.
하지만, Assistant API는 스레드(Thread) 기능을 사용한다.
Thread는 어시스턴트와 사용자 간의 대화 세션을 의미하며, 메시지를 저장한다.
따라서, 이전 대화 내용을 기억하고 문맥을 이해한 후 응답할 수 있다.
Assistant API는 다음과 같은 도구들을 지원하여 다양한 작업을 처리할 수 있다:
Assistant를 생성할 때 instruction을 미리 작성하여 AI의 성격이나 행동을 정의할 수 있다.
예를 들어, "You are a helpful assistant that answers programming questions"와 같은 instruction을 설정하여, AI가 특정 역할을 수행하도록 할 수 있다.
Assistant API를 사용하여 AI의 응답을 받기 위해서는 다음과 같은 절차를 거쳐야 한다.
- Create Assistant
- Create Thread
- Create Message
- Create Run
- Get Message From Thread

AI 어시스턴트를 생성하기 위해서는 먼저 어시스턴트를 정의하고, 이를 통해 사용자와 상호작용할 수 있는 환경을 마련해야 한다.
스레드는 어시스턴트와 사용자 간의 대화를 기록하고 관리하는 단위이다. 스레드를 생성하면, 이후 대화에서 이전의 메시지를 기억하고 문맥을 이해할 수 있다.
메시지는 스레드에 추가되는 대화의 단위이다. 사용자의 질문이나 어시스턴트의 응답을 메시지로 추가하며, 이를 통해 대화가 지속된다.
런(Run)은 스레드에서 어시스턴트를 호출하는 과정이다. 런을 생성하면, 어시스턴트가 주어진 작업을 실행하고 결과를 반환한다. 예를 들어, 함수 호출이나 특정 작업을 처리할 수 있다.
메시지 조회는 스레드 내에서 이전의 대화 기록을 확인하는 과정이다. 이를 통해 어시스턴트는 사용자의 이전 입력을 기반으로 응답을 생성할 수 있다.
자세한 사용 예제는 OpenAi 공식 문서 참고
https://platform.openai.com/docs/api-reference