ChatGPT

ChatGPT 어시스턴트 API(베타) 개요

Software for Digital Joy~ 2023. 12. 9. 09:14
반응형

어시스턴트 API 베타

Assistants API를 사용하면 자체 애플리케이션 내에 AI 도우미를 구축할 수 있습니다. 어시스턴트에는 지침이 있으며 모델, 도구 및 지식을 활용하여 사용자 쿼리에 응답할 수 있습니다. Assistants API는 현재 코드 해석기, 검색 및 함수 호출의 세 가지 유형의 도구를 지원합니다. 앞으로는 더 많은 OpenAI 기반 도구를 출시하고 플랫폼에서 사용자 고유의 도구를 제공할 수 있도록 할 계획입니다.

Assistants 플레이그라운드를 사용 하거나 이 가이드에 설명된 단계별 통합을 구축하여 Assistants API의 기능을 탐색할 수 있습니다 . 높은 수준에서 Assistants API의 일반적인 통합 흐름은 다음과 같습니다.

  1. 사용자 지정 지침을 정의하고 모델을 선택하여 API에서 도우미를 만듭니다 . 도움이 된다면 코드 해석기, 검색, 함수 호출과 같은 도구를 활성화하세요.
  2. 사용자가 대화를 시작하면 스레드를 생성합니다 .
  3. 사용자가 질문할 때 스레드에 메시지를 추가합니다 .
  4. 스레드에서 Assistant를 실행하여 응답을 트리거합니다. 그러면 관련 도구가 자동으로 호출됩니다.
Assistants API는 베타 버전 이며 더 많은 기능을 추가하기 위해 적극적으로 노력하고 있습니다. 개발자 포럼 에서 피드백을 공유해 주세요 !

Assistants API를 호출하려면 베타 HTTP 헤더를 전달해야 합니다. 
OpenAI의 공식 Python 또는 Node.js SDK를 사용하는 경우 이는 자동으로 처리됩니다.
OpenAI-Beta: assistants=v1

이 시작 가이드는 코드 해석기를 사용하는 도우미를 만들고 실행하는 주요 단계를 안내합니다 .

보조 놀이터

어시스턴트 API 외에도 어시스턴트 플레이그라운드 도 제공합니다 (로그인 필요). 플레이그라운드는 어시스턴트 API의 기능을 살펴보고 코드를 작성하지 않고도 나만의 어시스턴트를 구축하는 방법을 배울 수 있는 좋은 방법입니다.

1단계: 어시스턴트 생성

어시스턴트는 다음과 같은 여러 매개변수를 사용하여 사용자의 메시지에 응답하도록 구성할 수 있는 엔터티를 나타냅니다.

  • 지침: 어시스턴트와 모델이 어떻게 행동하거나 반응해야 하는지
  • 모델: 미세 조정된 모델을 포함하여 GPT-3.5 또는 GPT-4 모델을 지정할 수 있습니다. 검색 도구에는 gpt-3.5-turbo-1106모델 이 필요합니다 gpt-4-1106-preview.
  • 도구: API는 OpenAI에서 구축하고 호스팅하는 코드 해석기 및 검색을 지원합니다.
  • 함수: API를 사용하면 함수 호출 기능과 유사한 동작으로 사용자 정의 함수 서명을 정의할 수 있습니다 .

이 예에서는 코드 해석기 도구가 활성화된 개인 수학 교사인 도우미를 만듭니다 .

 
assistant = client.beta.assistants.create(
    name="Math Tutor",
    instructions="You are a personal math tutor. Write and run code to answer math questions.",
    tools=[{"type": "code_interpreter"}],
    model="gpt-4-1106-preview"
)

2단계: 스레드 생성

스레드는 대화를 나타냅니다. 사용자가 대화를 시작하자마자 사용자 당 하나의 스레드를 생성하는 것이 좋습니다 . Messages 를 생성하여 이 스레드에 사용자별 컨텍스트와 파일을 전달합니다 .

 
thread = client.beta.threads.create()

스레드에는 크기 제한이 없습니다. 스레드에 원하는 만큼 메시지를 추가할 수 있습니다. Assistant는 ChatGPT로 광범위하게 테스트한 잘림과 같은 관련 최적화 기술을 사용하여 모델에 대한 요청이 최대 컨텍스트 창에 맞는지 확인합니다. 어시스턴트 API를 사용하면 특정 실행에 대해 모델에 전달되는 입력 토큰 수에 대한 제어를 위임합니다. 즉, 경우에 따라 어시스턴트 실행 비용에 대한 제어 권한이 줄어들지만 복잡성을 처리할 필요는 없습니다. 컨텍스트 창을 직접 관리하는 것입니다.

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

메시지에는 텍스트와 선택적으로 사용자가 업로드할 수 있는 파일이 포함됩니다. 메시지는 특정 Thread 에 추가 되어야 합니다 . Vision과 함께 GPT-4를 사용하여 채팅 완료와 같은 메시지 개체를 통해 이미지를 추가하는 것은 현재 지원되지 않지만 앞으로 몇 달 내에 지원을 추가할 계획입니다. 여전히 이미지를 업로드하고 검색을 통해 처리 하도록 할 수 있습니다 .

 
message = client.beta.threads.messages.create(
    thread_id=thread.id,
    role="user",
    content="I need to solve the equation `3x + 11 = 14`. Can you help me?"
)

이제 메시지를 스레드에 나열 하면 이 메시지가 추가된 것을 볼 수 있습니다.

{
  "object": "list",
  "data": [
    {
      "created_at": 1696995451,
      "id": "msg_abc123",
      "object": "thread.message",
      "thread_id": "thread_abc123",
      "role": "user",
      "content": [{
        "type": "text",
        "text": {
          "value": "I need to solve the equation `3x + 11 = 14`. Can you help me?",
          "annotations": []
        }
          }],
        ...

4단계: 도우미 실행

Assistant가 사용자 메시지에 응답하려면 Run 을 생성 해야 합니다 . 이를 통해 Assistant는 스레드를 읽고 도구를 호출할지(활성화된 경우) 아니면 단순히 모델을 사용하여 쿼리에 가장 잘 응답할지 여부를 결정합니다. 실행이 진행됨에 따라 어시스턴트는 role="assistant". 또한 Assistant는 모델의 컨텍스트 창에 포함할 이전 메시지를 자동으로 결정합니다. 이는 가격뿐만 아니라 모델 성능에도 영향을 미칩니다. 현재 접근 방식은 ChatGPT 구축에서 배운 내용을 기반으로 최적화되었으며 시간이 지남에 따라 발전할 가능성이 높습니다.

실행을 생성하는 동안 선택적으로 보조자에게 새 지침을 전달할 수 있지만 이러한 지침은 보조자의 기본 지침보다 우선 적용됩니다.

 
run = client.beta.threads.runs.create(
  thread_id=thread.id,
  assistant_id=assistant.id,
  instructions="Please address the user as Jane Doe. The user has a premium account."
)

5단계: 실행 상태 확인

기본적으로 Run은 queued상태 로 전환됩니다 . 정기적으로 실행을 검색하여 상태를 확인하여 으로 이동했는지 확인할 수 있습니다 completed.

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

6단계: 어시스턴트의 응답 표시

실행이 완료되면 어시스턴트가 스레드에 추가한 메시지를 나열 할 수 있습니다.

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

그리고 마지막으로 사용자에게 표시합니다! 이 실행 중에 Assistant는 스레드에 두 개의 새로운 메시지를 추가했습니다. 다음은 그 예입니다.

역할콘텐츠

user 방정식을 풀어야 해요 3x + 11 = 14. 도와주세요?
assistant 물론이죠, 제인 도우. (3x + 11 = 14)에 대한 방정식을 풀려면 방정식의 한쪽 면을 (x)분리해야 합니다 . (x)그렇게 하는 방법은 다음과 같습니다.
  1. 방정식의 양변에서 11을 빼면 가 됩니다 (3x = 3).
  2. 그런 다음 양변을 3으로 나누어 를 구합니다 (x).
당신을 위한 가치를 계산해 보겠습니다 (x).
assistant 방정식의 해는 (3x + 11 = 14)입니다 (x = 1).

Assistant 및 해당 도구의 내부 작업을 탐색하거나 표시하려는 경우 이 실행의 실행 단계를 검색할 수도 있습니다 .

728x90
반응형