반응형

OpenAI의 API를 활용하는 개발자 수가 200만 명을 넘어섰습니다. 이제 새로운 기술이 형성되고 활용되는 방식에 중대한 변화가 일어나고 있음이 분명해졌습니다.

지난 2023년 11월 6일에 있었던 OpenAI의 첫 개발자 컨퍼런스인 DevDay는 AI의 발전과 도구들에 대한 최신 정보를 소개하는 자리였습니다. 이 중에서도 특히 주목할 만한 것은 지능적이고 반응적인 AI 어시스턴트를 구축할 수 있는 OpenAI Assistants API였습니다. 이 API는 현재 AI 기술을 적용하고 이해하는 방식에 있어 중요한 역할을 하고 있으며, 개발자들에게 새로운 가능성을 열어주고 있습니다.


경험이 풍부한 개발자든, 이제 막 시작한 초보 개발자든, 오늘날의 기술 환경에서 OpenAI Assistants API를 이해하고 활용하는 것은 중요합니다.

이제 이 강력한 도구, OpenAI Assistants API를 활용하여 어떻게 시작하는지 알아보겠습니다.


#1. Assistants API란?

OpenAI의 Assistants API는 애플리케이션 내에 AI 기반 어시스턴트를 만들 수 있는 Toolkit입니다. Assistants API를 이용하면 단순히 사용자 질문에 대한 답변하는 메커니즘을 넘어설 수 있습니다.

Assistants API는 현재 베타 단계에 있으며, 코드 해석기(Code Interpreter), 검색(Retrieval), 기능 호출(Function calling)과 같은 Tool을 이용하여 AI의 상호작용 능력을 향상할 수 있습니다. 개발자들은 이러한 Tool을 이용하여 사용자의 요구사항을 이해하고, 반응을 예측하며, 상호작용적으로 참여하는 AI 어시스턴트를 구축할 수 있습니다. 기업들은 이러한 어시스턴트를 특정 목적에 맞게 맞춤 설정하고 해당 용도에 필요한 관련 데이터를 제공할 수 있습니다. 예를 들어, 날씨 관련 정보를 제공하는 AI 날씨 어시스턴트나 여행 관련 질문에 답변하는 AI 여행 어시스턴트 등이 있습니다.

이 어시스턴트들은 상태 유지(statefulness)에 중점을 두고 설계되었습니다. 즉, 이들은 이전의 대화 내용을 상당 부분 기억하고 있어, 개발자들은 상태 관리에 대한 걱정 없이 이 부분을 OpenAI에 맡길 수 있습니다.

일반적인 흐름은 다음과 같습니다.

  • Assistant 생성: 사용자 정의 지침(custom instructions)을 정의하고 사용할 모델을 선택합니다. 필요하다면 Code Interpreter, Retrieval, Function calling과 같은 도구들을 활성화할 수 있습니다.
  • Thread 생성: Thread는 사용자의 Message와 어시스턴트의 답변을 저장합니다. Thread는 어시스턴트의 상태를 관리하는 역할을 하며 OpenAI가 관리합니다.
  • Thread에 Message 추가: 사용자가 AI 어시스턴트에게 입력한 Message나 어시스턴트의 답변을 추가합니다.
  • 해당 Thread에서 어시스턴트 실행(Run): Thread에서 어시스턴트를 실행하여 사용자에게 제공할 답변을 생성합니다. 이 과정에서 관련 도구들이 자동으로 호출됩니다.

#2. Assistants API의 Tools

1) 코드 해석기 (Code Interpreter)
Code Interpreter는 Assistants API가 격리된 실행 환경에서 Python 코드를 작성하고 실행할 수 있게 해 줍니다. 다양한 데이터와 형식을 가진 파일을 처리할 수 있으며, 데이터와 그래프 이미지가 포함된 파일을 생성할 수 있습니다. Code Interpreter를 통해 어시스턴트는 복잡한 코드와 수학 문제를 해결하기 위해 코드를 반복적으로 실행할 수 있습니다. 만약 어시스턴트가 실행에 실패하는 코드를 작성했다면, 다른 코드를 시도하여 코드 실행이 성공할 때까지 코드를 반복 작성할 수 있습니다.

Code Interpreter는 세션당 $0.03의 비용이 소요됩니다. 예를 들어, 두 개의 다른 Thread에서 동시에 Code Interpreter를 호출할 경우(예: 각 끝 사용자마다 하나의 Thread), 두 개의 Code Interpreter 세션이 생성됩니다. 각 세션은 기본적으로 한 시간 동안 활성 상태이며, 이는 사용자가 한 Thread에서 최대 한 시간 동안 Code Interpreter와 상호작용할 경우 한 세션만을 위해 비용을 지불한다는 것을 의미합니다.

2) 검색 (Retrieval)
검색 도구인 Knowledge Retrieval은 어시스턴트가 모델 외부의 지식을 활용할 수 있게 해 줍니다. 이것은 독점적인 제품 정보나 사용자가 제공한 문서와 같은 것들을 포함할 수 있습니다. 파일이 업로드되어 어시스턴트에 전달되면, OpenAI는 자동으로 문서를 조각내고, 인덱스를 생성하며, 임베딩을 저장합니다. 그리고 벡터 검색을 구현하여 사용자의 질문에 답변할 수 있는 관련 내용을 검색합니다. 이 과정을 통해 어시스턴트는 제공된 데이터 내에서 가장 관련성 높은 정보를 신속하게 찾아내어 사용자의 질문에 대한 정확한 답변을 제공할 수 있습니다. 예를 들어, 제품에 관한 질문이 있을 때, 어시스턴트는 해당 제품의 특징, 사용 방법, 고객 후기 등의 정보를 검색하여 제공할 수 있습니다. 어시스턴트가 단순한 사실을 넘어서 사용자에게 맞춤화된 정보를 제공하게 만들어, 사용자 경험을 획기적으로 개선합니다.

검색(Retrieval)은 어시스턴트 당 하루에 GB당 $0.20의 가격으로 책정됩니다. 하나의 파일 ID를 여러 어시스턴트에 첨부하는 경우, 검색 도구가 활성화되어 있을 때 각 어시스턴트마다 하루에 대한 요금이 부과됩니다 예를 들어, 검색 도구가 활성화된 상태에서 같은 1GB 파일을 두 개의 다른 어시스턴트(예: 고객 대면 어시스턴트 #1과 내부 직원 어시스턴트 #2)에 첨부할 경우, 저장 요금으로 하루에 두 배의 비용(하루에 2 * $0.20)이 청구됩니다. 이 요금은 주어진 어시스턴트에서 지식을 검색하는 최종 사용자와 Thread의 수에 따라 달라지지 않습니다.

또한, Message에 첨부된 파일은 검색 도구가 활성화된 실행의 일부로 Message에 포함되어 있을 경우 어시스턴트 기준으로 요금이 부과됩니다. 예를 들어, 검색이 활성화된 상태에서 10개의 Message가 각각 1개의 고유 파일(총 10개의 고유 파일)과 함께 있는 Thread에서 어시스턴트를 실행하면, 어시스턴트 자체에 첨부된 파일을 포함하여 모든 10개 파일에 대해 GB당 하루 요금이 부과됩니다.

3) 기능 호출(Function Calling)
챗 완성(Chat Completions) API와 유사하게, Assistants API는 기능 호출을 지원합니다. 기능 호출을 통해 어시스턴트에게 함수를 설명하고, 필요한 함수와 그 인자들을 지능적으로 반환하도록 할 수 있습니다. 어시스턴트 API는 함수를 호출할 때 '실행(Run)' 중에 실행을 일시 중단하며, 함수 호출의 결과를 제공하여 '실행(Run)'의 진행을 계속할 수 있습니다.

이 기능은 개발자가 어시스턴트에게 특정 작업을 수행하도록 지시할 때 유용합니다. 예를 들어, 사용자가 데이터 처리를 요청할 경우, 어시스턴트는 해당 데이터 처리에 필요한 함수를 호출하고, 필요한 인자를 함께 제공하여 결과를 도출합니다. 이후, 그 결과를 실행 흐름에 다시 통합하여 사용자에게 최종 출력을 제공합니다.


#3. 사전 준비

AI 어시스턴트를 만들기 전에, OpenAI API 키를 발급받고 개발 환경을 설정하는 사전준비가 필요합니다.

1) OpenAI API Key 발급

 

OpenAI API

An API for accessing new AI models developed by OpenAI

beta.openai.com

OpenAI API 수행을 위해서는 먼저 API Key 발급이 필요합니다. OpenAI 계정이 필요하며 계정이 없다면 계정 생성이 필요합니다. 간단히 Google이나 Microsoft 계정을 연동할 수 있습니다. 이미 계정이 있다면 로그인 후 진행하시면 됩니다.

로그인이 되었다면 우측 상단 Personal -> [ View API Keys ]를 클릭합니다.

[ + Create new secret key ]를 클릭하여 API Key를 생성합니다. API key generated 창이 활성화되면 Key를 반드시 복사하여 두시기 바랍니다. 창을 닫으면 다시 확인할 수 없습니다. (만약 복사하지 못했다면 다시 Create new secret key 버튼을 눌러 생성하면 되니 걱정하지 않으셔도 됩니다.)

2) 환경구성
필요한 라이브러리와 도구들을 설치합니다.

pip install openai

#4. 나만의 AI 어시스턴트 만들기

이제 OpenAI Assistant API를 사용하여 AI 어시스턴트를 만들기 위한 프로그래밍 코드를 작성해 보겠습니다.

1) Assistant 생성

# os 라이브러리를 가져와서 환경 변수를 읽습니다.
import os
# openai 라이브러리를 가져와서 Assistants API와 상호작용합니다.
import openai

# OPENAI API 키를 환경 변수에 저장합니다.
# 주의: 실제 코드에서는 API 키를 코드에 직접 작성하는 것은 보안에 좋지 않습니다.
# 이 코드는 예시를 위한 것이며, 실제 사용시에는 키를 안전하게 관리해야 합니다.
os.environ["OPENAI_API_KEY"] = "YOUR_OPENAI_API_KEY"

# API 키를 제공하여 OpenAI 클라이언트를 생성합니다.
client = openai.OpenAI(api_key=os.environ["OPENAI_API_KEY"])

OpenAI API Key를 이용하여 OpenAI 클래스 인스턴스를 만듭니다.

# 어시스턴트 생성
assistant = client.beta.assistants.create(
    name="Recipe 전문가",
    instructions="사용자가 요리법을 요청할 때, 관련 레시피 데이터베이스에서 정보를 검색하고, 이해하기 쉽고 실행 가능한 조리법을 단계별로 설명 해주세요.",
    model="gpt-4-1106-preview",
    tools=[{"type":"retrieval"}]
)

어시스턴트를 생성하기 위해 assistants 클래스에서 create() 메서드를 이용하고 다음 파라미터들을 입력합니다.

  • name: 어시스턴트의 이름입니다. 이 예제에서는 Recipe 전문가로 하였습니다.
  • instructions: 어시스턴트에게 주어진 컨텍스트나 추가 정보입니다.
  • model: 어시스턴트가 응답을 생성하는 데 사용할 모델입니다. 저는 gpt-4-1106-preview 모델을 사용합니다.
  • tools: 위에서 설명한 Assistants API Tools입니다. 이 도구들은 어시스턴트가 응답을 생성하는 데 사용됩니다. 도구들은 사전의 리스트로 전달됩니다. 여기서는 데이터 수집을 위해 retrieval을 사용합니다.

2) Document Load
이제 assistant 변수에 어시스턴트를 생성하고 할당했습니다. 다음 단계는 문서를 로드하는 것입니다.

# 파일 업로드
# upload the file
file = client.files.create(
    file=open(
        "asset/recipe.pdf",
        "rb",
    ),
    purpose="assistants",
)

# 어시스턴트 업데이트
assistant = client.beta.assistants.update(
    assistant.id,
    file_ids=[file.id],
)

파일의 경로를 입력합니다. update() 메서드를 이용하여, 어시스턴트 ID와 파일 ID를 입력합니다. 어시스턴트 설정에 검색(retrieval) 도구를 포함시켰기 때문에, "recipe.pdf"를 자동으로 조각내고, 임베딩으로 변환합니다. 파일의 크기와 양에 따라 일정 시간이 소요됩니다.

3) Thread 생성 및 Message 저장
새로운 Thread를 생성하고 그 안에 Message를 추가할 것입니다. 우선 새로운 Thread를 생성해 보겠습니다.

# 스레드 생성
cooking_thread = client.beta.threads.create()

threads 클래스의 create() 메서드는 Thread를 생성하는 데 사용됩니다. Thread는 대화 세션을 나타냅니다. 어시스턴트와 마찬가지로 Thread 객체에도 고유 ID가 연결됩니다. 또한, 어시스턴트 ID를 전달하지 않았음을 유의해야 합니다. Thread가 어시스턴트와 연결되지 않고 독립적임을 의미합니다. 이제 새로 생성된 Thread에 첫 번째 Message를 추가해 보겠습니다.

# 스레드에 첫 번째 메시지 추가
message = client.beta.threads.messages.create(
    thread_id=cooking_thread.id,
    role="user",
    content="칸쇼 새우 만드는 법 알려줘요"
)

Message는 사용자 질문과 응답을 포함하는 대화의 블록입니다. Thread에 Message를 추가하기 위해 messages 클래스의 create() 메서드를 사용하며, 다음과 같은 파라미터들을 입력합니다.

  • thread_id: 생성된 각 Thread에 연결된 고유 ID입니다. 여기서는 앞서 생성한 Thread의 ID를 입력합니다.
  • role: Message를 보내는 주체입니다.
  • content: 사용자의 질문입니다. 우리 예제에서는 "칸쇼 새우 만드는 법 알려줘요"라는 질문을 입력했습니다.

4) 어시스턴트 실행(Run)
Object는 'queued', 'in-progress', 'completed' 등의 상태를 나타내는 status라는 변수를 제공합니다. Run 단계에서, 우리가 생성한 어시스턴트는 검색 도구를 활용하여 사용자 질문과 관련된 정보를 사용 가능한 데이터 콜에서 검색하고, 지정된 모델에 적용된 데이터로 응답을 생성합니다. 생성된 응답은 Thread에 저장됩니다. 이제 우리의 Thread에는 두 개의 Message가 있습니다. 하나는 사용자의 질문이고, 다른 하나는 어시스턴트의 응답입니다.

이를 위해 아래와 같은 poll_run()라는 함수를 생성합니다. 이 함수는 앞서 생성한 Run과 Thread 객체를 인자로 받아  retrieve() 메서드를 호출하여 Run의 상태가 "completed"가 되었을 때까지 0.5초마다 상태를 체크하는 루프를 수행합니다.

import time

# Run이 완료되었는지 확인하는 함수 생성
def poll_run(run, thread):
    while run.status != "completed":
        run = client.beta.threads.runs.retrieve(
            thread_id=thread.id,
            run_id=run.id,
        )
        time.sleep(0.5)
    return run
    
# Run이 완료될 때까지 대기
run = poll_run(run, cooking_thread)

5) Message 출력
이제 Thread에 저장된 Message들을 가져와 출력하도록 하겠습니다. messages 클래스의 list() 메서드를 호출하여 Thread의 모든 Message를 추출합니다. 여기에는 우리가 원하는 Thread의 ID를 입력합니다.

# 메시지 추출
messages = client.beta.threads.messages.list(thread_id=thread.id)

for m in messages:
    print(f"{m.role}: {m.content[0].text.value}")

아래는 출력 결과입니다.

assistant: 아래는 칸쇼 새우를 만드는 단계별 조리법입니다【29†source】:

### 재료 준비하기:
- 새우 200g
- 완두콩 2큰술
- 당근 ¼개
- 소금, 후춧가루 약간씩
- 소스: 고추기름 2큰술, 대파 ¼대, 마늘 ½큰술, 생강 1작은술, 설탕 2큰술, 식초 1큰술, 토마토 케첩 4큰술, 청주 1큰술, 두반장 1작은술, 육수 1컵, 참기름 ½큰술
- 튀김옷: 녹말 1컵, 달걀 1개, 빵가루 약간

### 조리 방법:
1. 새우는 머리와 내장을 제거하고 잘 씻어 물기를 제거한 다음, 소금과 후춧가루로 밑간을 합니다. 당근과 대파는 송송 썰고, 마늘과 생강은 곱게 다져 준비합니다. 녹말 1컵에 달걀 1개를 넣고 반죽한 후, 밑간한 새우에 튀김옷을 입히고 곱게 빻은 빵가루를 묻힙니다.
2. 미리 예열한 에어프라이어에 튀김옷을 입힌 새우를 넣고, 180℃에서 7분간 튀깁니다.
3. 프라이팬에 고추기름을 두르고 파, 마늘, 생강을 넣어 향이 나게 볶은 후, 참기름을 제외한 모든 소스 재료를 넣고 끓입니다. 소스가 끓기 시작하면 당근과 완두콩을 넣고 조금 더 익힌 후, 녹말 2큰술을 풀어 소스가 걸쭉해지면 마지막으로 참기름과 에어프라이어에서 튀겨낸 새우를 넣고 잘 버무려 완성합니다.

Cooking Tip:
- 취향에 따라 기름 맛을 더하고 싶으면 오일 1스푼 정도를 추가할 수 있습니다.

맛있는 칸쇼 새우를 만드실 때 좋은 결과를 얻으시길 바랍니다!
user: 칸쇼 새우 만드는 법 알려줘요
assistant: 칸쇼 새우 레시피는 찾지 못했으나, 비슷한 접근 방식을 취한 다이어트 채소튀김 레시피를 찾았습니다. 에어프라이어를 이용한 이 요리법을 참고하여 칸쇼 새우를 만들 때 사용할 수 있습니다. 다음은 다이어트 채소튀김을 만드는 법입니다【13†source】:

### 재료 준비하기
- 연근 반 개
- 셀러리 2줄기
- 방울토마토 5~6개
- 표고버섯 4개
- 밀가루, 시판용 쯔유, 오일 스프레이 약간씩
- 튀김옷: 밀가루(중력분) 75g, 녹말 2큰술, 파르메산 치즈가루 15g, 찬 물 140g, 베이킹파우더 ½작은술

### 조리 방법
1. 연근은 적당한 두께로 슬라이스하고, 끓는 식초물에 살짝 데친 후 물기를 제거합니다. 셀러리, 방울토마토, 표고버섯도 깨끗이 씻어 준비합니다.
2. 볼에 튀김옷 재료를 모두 넣고 덩어리가 지지 않도록 고루 섞어 튀김옷 반죽을 만듭니다. 채소에 밀가루를 얇게 묻힌 후, 반죽에 담가 튀김옷을 얇게 입힙니다. 윗면에 다시 한 번 반죽을 덧입힙니다.
3. 미리 예열한 에어프라이어에 채소를 넣고, 200℃에서 7~9분간 튀깁니다. 찍어 먹을 수 있도록 시판용 쯔유도 곁들이면 좋습니다.

Cooking Tip: 
- 튀김의 윗면만 살짝 튀김옷을 입혀 튀겨준다면 꺼내기가 수월해집니다.
- 취향에 따라 기름 맛을 더하고 싶다면 오일을 1스푼 정도 추가해도 좋습니다.

이 레시피를 칸쇼 새우에 적용하려면 다음과 같은 방법을 추천합니다:
1. 새우를 깨끗이 손질한 후 간단한 칸쇼 소스(간장, 마늘, 생강, 설탕 및 기타 향신료)에 재빠르게 볶습니다.
2. 볶은 새우를 식혀서 튀김옷에 묻힌 뒤 에어프라이어에 200℃로 설정하고 7~9분간 튀깁니다. 필요에 따라 기름을 조금 추가할 수 있습니다.
3. 기호에 맞게 새우 칸쇼를 에어프라이어에서 나온 직후에 볶거나, 별도의 칸쇼 소스와 함께 제공합니다.
user: 칸쇼 새우 만드는 법 알려줘요

어시스턴트의 응답과 하단에 사용자 질문을 보여줍니다. 이제 두 번째 Message를 추가하고 어시스턴트가 이전 대화를 참조할 수 있는지 테스트해 보도록 하겠습니다.

# 두 번째 메시지 생성
message2 = client.beta.threads.messages.create(
    thread_id=cooking_thread.id,
    role="user",
    content="야채 재료만 알려주세요"
)

# Run 생성
run = client.beta.threads.runs.create(
    thread_id=cooking_thread.id,
    assistant_id=assistant.id
)

# Run 메서드가 완료될 때까지 대기
run = poll_run(run, cooking_thread)

# 메시지 추출
messages = client.beta.threads.messages.list(thread_id=cooking_thread.id)

for m in messages:
    print(f"{m.role}: {m.content[0].text.value}")

message2라는 또 다른 Message를 생성하고, 이번에는 "야채 재료만 알려주세요"라는 질문을 수행합니다. 이 질문은 이전 대화를 참조하므로 Thread에 전달됩니다. 그다음으로는 같은 과정을 거쳐 Run을 생성하고, 어시스턴트와 함께 실행한 후, Message를 출력합니다.

assistant: 앞서 언급했듯이, 칸쇼 새우를 만들 때 필요한 야채 재료는 다음과 같습니다:

 - 완두콩 2큰술
 - 당근 ¼개

그리고 소스를 만들 때 사용하는 재료들은 다음을 포함합니다:

- 고추기름 2큰술
- 대파 ¼대
- 마늘 ½큰술
- 생강 1작은술【20†source】.

이전 대화를 참조하는지는 좀 더 쉽게 알 수 있습니다.

user: 내 이름은 김윤웅이야
assistant: 안녕하세요 김윤웅 님, 만나서 반가워요! 칸쇼 새우 조리법에 대해 도움이 필요하시면 언제든지 알려주세요. 다른 질문이나 요청 사항이 있으시면 말씀해주시길 바랍니다.

user: 내 이름이 뭔지 알아?
assistant: 네, 앞서 말씀하셨듯이 김윤웅 님이라고 하셨습니다. 무엇을 도와드릴까요?

어시스턴트는 실제로 이전 대화에서 얻은 정보에 접근할 수 있었으며, 이번 예제에서는 제공된 질문에 대한 응답을 생성하기 위해 검색 도구를 사용해 봤습니다. OpenAI Assistant API를 통해 맞춤형 어시스턴트를 생성하고, 생성한 어시스턴트를 애플리케이션에 다양한 형태로 사용할 수 있습니다. 또한 OpenAI는 어시스턴트 API가 사용할 수 있는 많은 도구들을 출시할 계획도 가지고 있습니다.


#5. Assistants playground

Assistants API 외에도, Assistants playground (로그인 필요)를 제공합니다. 플레이그라운드는 Assistants API의 기능을 탐색하고, 어떠한 코드도 작성하지 않고도 자신만의 어시스턴트를 구축하는 방법을 배울 수 있는 훌륭한 방법입니다.

위에서 실행한 어시스턴트 예제는 플레이그라운드에서도 찾아볼 수 있으며, 이를 통해 사용자는 직접 실습해 보며 AI 어시스턴트의 다양한 기능과 가능성을 경험할 수 있습니다.


#6. API 어시스턴트 VS GPTs 차이점

OpenAI의 API 어시스턴트와 GPTs를 비교해 보고, 몇 가지 주요 차이점을 살펴보겠습니다.

1) 대상 사용자 및 접근성

  • API 어시스턴트: 주로 개발자와 기술 사용자를 대상으로 하며, 더 강력하고 맞춤화된 AI 솔루션을 필요로 합니다. API 어시스턴트는 다양한 애플리케이션과 서비스에 통합될 수 있으며, 사용량에 따라 비용을 지불하는 모델을 제공합니다.
  • GPTs: 맞춤형 GPTs는 더 사용하기 쉽고 사용자 친화적이며, 비기술 사용자나 초보 사용자를 위해 설계되었습니다. API 어시스턴트의 쉬운 버전이라고 생각하시면 됩니다.

2) 기능적 능력

  • API 어시스턴트: 추가 도구와 서비스를 통합할 수 있는 다양한 기능을 제공합니다. 그러나 직접적인 검색 기능이나 Dall-E 기능은 아직 제공되지 않습니다. 추후 추가될 수 있습니다.
  • GPTs: GPTs는 더 간단하지만 현재까지는 API 어시스턴트와 같은 수준의 통합, 맞춤화 기능을 제공하지 않을 수도 있습니다. 기본 GPT 모델을 기반으로 한 일정 범위의 기능을 제공하는 ChatGPT 플러그인과 유사합니다.

3) 비용 및 사용량

  • API 어시스턴트: API 어시스턴트를 사용할 때는 사용한 만큼만 비용을 지불합니다. 자체 앱이나 서비스에 AI 기능을 사용하려는 비즈니스에 유연하고 비용 측면에서 효과적일 수 있습니다.
  • GPTs: GPTs는 현재까지는 ChatGPT Plus구독자에게 제공되며 Message 수나 시간 창(50 Message/3시간)에 제한이 있습니다.
 

맞춤형 GPTs의 시대: 나만의 AI 만들기 (초보가이드)

OpenAI DevDay에서 발표된 GPT-4 Turbo는 분명히 주목할만했지만 개인적으로 더 큰 충격과 흥미를 불러일으킨 것은 바로 맞춤형 GPT, 개인화된 인공지능 어시스턴트를 만들고 배포할 수 있는 GPTs였습니

yunwoong.tistory.com


OpenAI는 비단 기술적인 문제 해결뿐만 아니라, 사용자 경험을 개선하고, 다양한 애플리케이션 분야에 AI 어시스턴트를 효과적으로 적용할 수 있는 길을 열어가고 있는 것 같습니다. OpenAI Assistant API의 가능성은 무궁무진하며, 앞으로도 지속적인 발전과 혁신을 통해 더욱 강력하고 다양한 기능을 제공할 것으로 기대됩니다.

반응형