Skip to main content

OpenAI Assistants API를 활용해 AI 어시스턴트 만들기

· 11 min read
코딩추월차선

AI 기술이 급속도로 발전하면서, 우리의 일상과 업무에 혁신을 가져오고 있습니다. 2023년 11월 7일 출시된 OpenAI의 Assistants API(어시스턴트 API)를 통해 이제 누구나 자신만의 AI 어시스턴트를 만들 수 있게 되었는데요, 어떻게 시작해야 할까?라는 궁금증을 가지신 분들을 위해 이 글을 준비했습니다. 최신 기술의 흐름을 한발 앞서 가고 싶으시다면, 지금부터 'Assistants API'로 AI 어시스턴트에 대해 알아보고 실습해보세요!

OpenAI의 'Assistants API'로 AI 어시스턴트 만들기

1. Assistants API란

OpenAI의 Assistants API(어시스턴트 API)는 개발자들이 AI를 활용하여 다양한 작업을 자동화하고, 사용자 경험을 향상시킬 수 있도록 설계된 강력한 도구입니다. 이 API는 자연어 처리 기능을 통해 사용자의 입력을 이해하고, 적절한 작업을 수행할 수 있는 AI 어시스턴트를 제작하는 데 필요한 모든 기능을 제공합니다.

1.1. Assistants API 주요 기능

Assistants API는 코드 인터프리터, 검색, 함수 호출 등의 주요 기능을 제공합니다. 코드 인터프리터를 통해 개발자는 샌드박스 환경에서 Python 코드를 작성하고 실행할 수 있으며, 검색 기능을 이용해 사용자가 제공한 문서나 모델 외부의 지식을 바탕으로 정보를 찾아 응답할 수 있습니다. 또한, 함수 호출 기능을 통해 사용자가 정의한 함수를 호출하고 그 결과를 반영할 수 있어, 매우 유연한 AI 어시스턴트 개발이 가능합니다.

1.2. 'Assistants API'를 이용한 AI 어시스턴트 제작의 중요성

AI 어시스턴트는 사용자의 요구를 신속하게 파악하고, 그에 맞는 정보를 제공하거나 작업을 수행함으로써, 사용자의 편의성을 대폭 향상시킬 수 있습니다. Assistants API를 활용하면, 개발자는 복잡한 알고리즘을 직접 설계하지 않고도, OpenAI의 강력한 AI 기술을 이용하여 사용자 맞춤형 어시스턴트를 쉽게 만들 수 있습니다.

2. 'Assistants API' 사용 가이드

2.1. 주요 기능

Assistants API의 주요 기능에는 스레드 기반 상태 관리가 포함되어 있어, 개발자는 무한히 긴 대화 내용도 처리할 수 있습니다. 이는 복잡한 대화 흐름이나 지속적인 상호작용이 필요한 어플리케이션에 매우 유용합니다.

2.2. API 문서와 튜토리얼 소개

OpenAI는 Assistants API의 사용을 돕기 위해 상세한 API 문서와 튜토리얼을 제공합니다. 이 자료들을 통해 개발자는 API의 기능을 정확히 이해하고, 실제 어플리케이션에 적용하는 방법을 배울 수 있습니다.

3. 예제를 통한 실습 방법

실제로 AI 어시스턴트를 만들어보고 싶으시다면, OpenAI 플랫폼에서 제공하는 다양한 예제를 통해 실습을 시작할 수 있습니다. 이 예제들은 실제 코드와 함께 제공되어 개발자가 쉽게 따라 할 수 있으며, 자신의 프로젝트에 맞게 수정하여 활용할 수 있습니다.

1단계: 보조자(Assistant) 만들기

보조자(Assistant)는 사용자의 메시지에 대응하여 여러 매개변수를 사용해 응답할 수 있는 엔티티를 나타냅니다. 이들 매개변수에는 다음이 포함됩니다:

  • 지침(Instructions): 보조 및 모델이 어떻게 행동하거나 응답해야 하는지에 대한 지침
  • 모델(Model): GPT-3.5 또는 GPT-4 모델 중에서 선택할 수 있으며, 특화된 모델도 포함됩니다. 검색 도구는 gpt-3.5-turbo-1106 및 gpt-4-1106-preview 모델을 필요로 합니다.
  • 도구(Tools): OpenAI에서 제공하고 호스팅하는 코드 해석기(Code Interpreter) 및 검색(Retrieval) 도구를 API가 지원합니다.
  • 함수(Functions): 함수 호출 기능과 유사하게 동작하는 사용자 정의 함수 시그니처를 API를 통해 정의할 수 있습니다.

다음 예제에서는 개인 수학 튜터로서 코드 해석기 도구가 활성화된 보조를 만듭니다:

assistant = client.beta.assistants.create(
name="Math Tutor",
instructions="당신은 개인 수학 튜터입니다. 수학 문제에 답하기 위해 코드를 작성하고 실행하세요.",
tools=[{"type": "code_interpreter"}],
model="gpt-4-1106-preview"
)

2단계: 스레드(Thread) 생성하기

스레드는 대화를 나타냅니다. 사용자가 대화를 시작할 때마다 사용자별 스레드를 생성하는 것이 좋습니다. 스레드에서 사용자별 컨텍스트와 파일을 전달할 수 있습니다.

thread = client.beta.threads.create()

스레드에는 크기 제한이 없습니다. 원하는 만큼의 메시지를 스레드에 전달할 수 있습니다. API는 최대 컨텍스트 윈도우 내에서 모델에 대한 요청을 수용할 수 있도록 절삭과 같은 관련 최적화 기법을 사용하여 이를 보장합니다.

3단계: 스레드에 메시지 추가하기

메시지는 사용자의 텍스트를 포함하며, 선택적으로 사용자가 업로드하는 파일을 포함할 수 있습니다. 현재 이미지 파일은 지원되지 않지만, 향후 몇 달 내에 지원할 계획입니다.

message = client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="`3x + 11 = 14` 방정식을 풀어야 합니다. 도와주실 수 있나요?"
)

4단계: 보조 실행하기

사용자 메시지에 대한 응답으로 보조가 작동하려면 '실행(Run)'을 생성해야 합니다. 이것은 보조가 스레드를 읽고 도구를 호출할지 아니면 단순히 사용자 쿼리에 최적으로 응답하기 위해 모델을 사용할지를 결정하게 합니다. 실행이 진행됨에 따라, 보조는 'assistant' 역할로 스레드에 메시지를 추가합니다.

실행을 생성할 때 보조에 추가적인 지침을 전달할 수 있습니다:

run = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=assistant.id,
instructions="사용자를 Jane Doe라고 부르세요. 사용자는 프리미엄 계정을 가지고 있습니다."
)

5단계: 보조의 응답 표시하기

이렇게 하면 대기 상태의 실행이 생성됩니다. 실행의 상태가 완료로 변경되었는지 확인하기 위해 주기적으로 실행을 검색할 수 있습니다.

run = client.beta.threads.runs.retrieve(
thread_id=thread.id,
run_id=run.id
)

실행이 완료되면 보조가 스레드에 추가한 메시지를 검색할 수 있습니다.

messages = client.beta.threads.messages.list(
thread_id=thread.id
)

3. 'Assistants API'를 활용한 개발의 장점

OpenAI의 Assistants API를 활용하면, 개발자는 복잡한 프로그래밍 없이도 AI 어시스턴트를 쉽게 만들 수 있습니다. 이는 사용자의 질문에 대해 실시간으로 반응하고, 문제를 해결하는 데 도움을 주는 지능형 서비스를 구축할 수 있게 해줍니다. 또한, 스레드 기반의 상태 관리 기능은 대화가 길어지더라도 문맥을 유지할 수 있게 하여, 더욱 자연스러운 상호작용을 가능하게 합니다.

4. 요약

지금 까지 OpenAI의 Assistants API로 자신만의 AI 어시스턴트를 만드는 방법에 대해 알아보았습니다. 이제 여러분의 차례입니다. OpenAI의 플랫폼에 접속하여 문서와 튜토리얼을 참고하고, 예제를 통해 실습해보세요. 단계별로 접근하면 어렵지 않게 여러분만의 AI 어시스턴트를 만들 수 있을 것입니다. 기술의 세계는 무한한 가능성을 품고 있고, 여러분이 그 중심에 서 있습니다. 창의력을 발휘하여 놀라운 것들을 창조해 나가길 응원합니다!

참고 자료