다음을 통해 공유


참고: 채팅 완료 | Azure Machine Learning

지정된 채팅 대화에 대한 모델 응답을 만듭니다.

POST /chat/completions?api-version=2024-04-01-preview

URI 매개 변수

이름 그런 다음 필수 Type 설명
api-version query True string "YYYY-MM-DD" 또는 "YYYY-MM-DD-preview" 형식의 API 버전입니다.

요청 헤더

이름 필수 Type 설명
추가 매개 변수 string 추가 매개 변수가 페이로드에 표시되는 경우 API의 동작입니다. pass-through을(를) 사용하면 API가 매개 변수를 기본 모델에 전달합니다. 기본 모델이 지원할 수 있다고 알고 있는 매개 변수를 전달하려면 이 값을 사용하세요. ignore을(를) 사용하면 API가 지원되지 않는 매개 변수를 삭제합니다. 서로 다른 모델에서 동일한 페이로드를 사용해야 하지만 지원되지 않는 경우 추가 매개 변수 중 하나가 모델에 오류를 발생시킬 수 있으면 이 값을 사용하세요. error을(를) 사용하면 API가 페이로드의 추가 매개 변수를 거부합니다. 이 API에 지정된 매개 변수만 표시될 수 있거나, 400 오류가 반환됩니다.
azureml-model-deployment string 요청을 라우팅하려는 배포의 이름입니다. 다중 배포를 지원하는 엔드포인트에 지원됩니다.

요청 본문

이름 필수 Type 설명
messages True ChatCompletionRequestMessage 지금까지의 대화를 구성하는 메시지 목록입니다. 모델이 메시지 중 적어도 일부를 이해할 수 없는 경우 422 오류를 반환합니다.
frequency_penalty 번호 이미 사용된 단어가 선택될 가능성을 줄여 단어 반복을 방지하는 데 도움이 됩니다. 빈도 페널티가 높을수록 모델이 출력에서 동일한 단어를 반복할 가능성이 줄어듭니다. 모델에서 값이나 매개 변수를 지원하지 않으면 422 오류를 반환합니다.
max_tokens 정수 채팅 완료 시 생성할 수 있는 최대 토큰 수입니다.

입력 토큰과 생성된 토큰의 총 길이는 모델의 컨텍스트 길이에 따라 제한됩니다. null을 전달하면 모델이 최대 컨텍스트 길이를 사용하게 됩니다.
presence_penalty 번호 이미 한 번이라도 단어가 완료에 존재하는 경우 단어에 불이익을 주어 동일한 항목이 반복되는 것을 방지하는 데 도움이 됩니다. 모델에서 값이나 매개 변수를 지원하지 않으면 422 오류를 반환합니다.
response_format ChatCompletionResponseFormat
seed 정수 지정된 경우 시스템은 결정론적으로 샘플링하기 위해 최선을 다하므로 동일한 seed 및 매개 변수를 사용하는 반복 요청이 동일한 결과를 반환해야 합니다. 결정성은 보장되지 않으며 백 엔드의 변경 내용을 모니터링하려면 system_fingerprint 응답 매개 변수를 참조해야 합니다.
stop API가 추가 토큰 생성을 중지하는 시퀀스입니다.
stream 부울 값 설정한 경우 부분 메시지 델타가 전송됩니다. 토큰은 데이터 전용 서버 전송 이벤트로 전송되며 스트림은 data: [DONE] 메시지로 종료됩니다.
온도 번호 음수가 아닌 숫자입니다. 모델에서 값을 지원하지 않는 경우 422를 반환합니다.
tool_choice ChatCompletionToolChoiceOption 모델에서 호출되는 함수(해당하는 경우)를 제어합니다. none은 모델이 함수를 호출하지 않고 대신 메시지를 생성함을 의미합니다. auto는 모델이 메시지 생성 또는 함수 호출 중에서 선택할 수 있음을 의미합니다. {"type": "function", "function": {"name": "my_function"}}을 통해 특정 함수를 지정하면 모델이 해당 함수를 호출하게 됩니다.

함수가 없을 경우 none이 기본값입니다. 함수가 있는 경우 auto가 기본값입니다. 해당 도구가 모델에서 지원되지 않는 경우 422 오류를 반환합니다.
tools ChatCompletionTool[] 모델이 호출할 수 있는 도구 목록입니다. 현재 함수만 도구로 지원됩니다. 모델이 JSON 입력을 생성할 수 있는 함수 목록을 제공하려면 이를 사용합니다. 해당 도구가 모델에서 지원되지 않는 경우 422 오류를 반환합니다.
top_p 번호 모델이 top_p 확률 질량을 가진 토큰의 결과를 고려하는 핵 샘플링이라고 하는 온도를 사용한 샘플링의 대안입니다. 따라서 0.1은 상위 10% 확률 질량을 구성하는 토큰만 고려됨을 의미합니다.

일반적으로 이를 변경하거나 temperature을(를) 변경하는 것이 좋지만 둘 다 변경하지는 않는 것이 좋습니다.

응답

이름 형식 설명
200 OK CreateChatCompletionResponse OK
401 권한 없음 UnauthorizedError 액세스 토큰이 누락되었거나 유효하지 않음

헤더

x-ms-error-code: 문자열
404 찾을 수 없음 NotFoundError 모델에서 지원되지 않는 형식입니다. 사용 가능한 경로를 확인하려면 모델 설명서를 확인합니다.

헤더

x-ms-error-code: 문자열
422 처리할 수 없는 엔터티 UnprocessableContentError 요청에 처리할 수 없는 콘텐츠가 포함되어 있습니다.

헤더

x-ms-error-code: 문자열
429 요청이 너무 많음 TooManyRequestsError 할당된 속도 제한에 도달했으며 요청을 처리해야 합니다.

헤더

x-ms-error-code: 문자열
기타 상태 코드 ContentFilterError 잘못된 요청

헤더

x-ms-error-code: 문자열

보안

권한 부여

Bearer: 접두사가 있는 토큰입니다. 예: Bearer abcde12345

형식: apiKey
In: 헤더

AADToken

Azure Active Directory OAuth2 인증

형식: oauth2
흐름: 애플리케이션
토큰 URL: https://login.microsoftonline.com/common/oauth2/v2.0/token

예제

지정된 채팅 대화에 대한 모델 응답을 만듭니다.

샘플 요청

POST /chat/completions?api-version=2024-04-01-preview

{
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant"
    },
    {
      "role": "user",
      "content": "Explain Riemann's conjecture"
    },
    {
      "role": "assistant",
      "content": "The Riemann Conjecture is a deep mathematical conjecture around prime numbers and how they can be predicted. It was first published in Riemann's groundbreaking 1859 paper. The conjecture states that the Riemann zeta function has its zeros only at the negative even integers and complex numbers with real part 1/21. Many consider it to be the most important unsolved problem in pure mathematics. The Riemann hypothesis is a way to predict the probability that numbers in a certain range are prime that was also devised by German mathematician Bernhard Riemann in 18594."
    },
    {
      "role": "user",
      "content": "Ist it proved?"
    }
  ],
  "frequency_penalty": 0,
  "presence_penalty": 0,
  "max_tokens": 256,
  "seed": 42,
  "stop": "<|endoftext|>",
  "stream": false,
  "temperature": 0,
  "top_p": 1,
  "response_format": { "type": "text" }
}

샘플 응답

상태 코드: 200

{
  "id": "1234567890",
  "model": "llama2-70b-chat",
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "message": {
        "role": "assistant",
        "content": "No, it has never been proved"
      }
    }
  ],
  "created": 1234567890,
  "object": "chat.completion",
  "usage": {
    "prompt_tokens": 205,
    "completion_tokens": 5,
    "total_tokens": 210
  }
}

정의

이름 설명
ChatCompletionRequestMessage
ChatCompletionMessageContentPart
ChatCompletionMessageContentPartType
ChatCompletionToolChoiceOption 모델에서 호출되는 함수(해당하는 경우)를 제어합니다. none은 모델이 함수를 호출하지 않고 대신 메시지를 생성함을 의미합니다. auto는 모델이 메시지 생성 또는 함수 호출 중에서 선택할 수 있음을 의미합니다. {"type": "function", "function": {"name": "my_function"}}을 통해 특정 함수를 지정하면 모델이 해당 함수를 호출하게 됩니다.

함수가 없을 경우 none이 기본값입니다. 함수가 있는 경우 auto가 기본값입니다. 해당 도구가 모델에서 지원되지 않는 경우 422 오류를 반환합니다.
ChatCompletionFinishReason 모델이 토큰 생성을 중지한 이유. 모델이 자연 중지 지점이나 제공된 중지 시퀀스에 도달한 경우 stop, 요청에 지정된 최대 토큰 수에 도달한 경우 length, 콘텐츠의 플래그로 인해 콘텐츠가 생략된 경우 content_filter, 모델이 도구를 호출한 경우 tool_calls입니다.
ChatCompletionMessageToolCall
ChatCompletionObject 항상 chat.completion인 개체 형식입니다.
ChatCompletionResponseFormat 모델 응답의 응답 형식입니다. json_object(으)로 설정하면 모델이 생성하는 메시지가 유효한 JSON임을 보장하는 JSON 모드가 사용하도록 설정됩니다. JSON 모드를 사용하는 경우 시스템 또는 사용자 메시지를 통해 직접 JSON을 생성하도록 모델에 지시해야 합니다. 또한 생성이 max_tokens을(를) 초과했거나 대화가 최대 컨텍스트 길이를 초과했음을 나타내는 finish_reason="length"인 경우 메시지 콘텐츠가 부분적으로 잘릴 수 있습니다.
ChatCompletionResponseFormatType 응답 형식 유형입니다.
ChatCompletionResponseMessage 모델에 의해 생성된 채팅 완료 메시지입니다.
ChatCompletionTool
ChatMessageRole 이 메시지 작성자의 역할입니다.
Choices 채팅 완료 선택 항목 목록입니다.
CompletionUsage 완료 요청의 사용 통계입니다.
ContentFilterError 프롬프트가 구성된 대로 콘텐츠 필터를 트리거하면 API 호출이 실패합니다. 프롬프트를 수정하고 다시 시도합니다.
CreateChatCompletionRequest
CreateChatCompletionResponse 제공된 입력을 기준으로 모델이 반환한 채팅 완료 응답을 나타냅니다.
세부 정보 UnprocessableContentError 오류에 대한 세부 정보입니다.
Function 모델이 호출한 함수입니다.
FunctionObject 모델이 액세스할 수 있는 함수의 정의입니다.
ImageDetail 이미지의 세부 수준을 지정합니다.
NotFoundError 배포된 모델에 대해 경로가 유효하지 않습니다.
ToolType 도구의 형식입니다. 현재는 function만 지원됩니다.
TooManyRequestsError 할당된 속도가 제한에 도달했으며, 요청 속도를 조정해야 합니다.
UnauthorizedError 인증이 누락되었거나 잘못되었습니다.
UnprocessableContentError 요청에 처리할 수 없는 콘텐츠가 포함되어 있습니다. 표시된 페이로드가 이 사양에 따라 유효할 때 오류가 반환됩니다. 하지만 페이로드에 표시된 일부 지침이 기본 모델에서 지원되지 않습니다. details 섹션을 사용하여 문제가 되는 매개 변수를 파악하세요.

ChatCompletionFinishReason

모델이 토큰 생성을 중지한 이유. 모델이 자연 중지 지점이나 제공된 중지 시퀀스에 도달한 경우 stop, 요청에 지정된 최대 토큰 수에 도달한 경우 length, 콘텐츠의 플래그로 인해 콘텐츠가 생략된 경우 content_filter, 모델이 도구를 호출한 경우 tool_calls입니다.

속성 형식 설명
content_filter string
length string
stop string
tool_calls string

ChatCompletionMessageToolCall

속성 형식 설명
function Function 모델이 호출한 함수입니다.
ID string 도구 호출의 ID입니다.
type ToolType 도구의 형식입니다. 현재는 function만 지원됩니다.

ChatCompletionObject

항상 chat.completion인 개체 형식입니다.

속성 형식 설명
chat.completion string

ChatCompletionResponseFormat

모델 응답의 응답 형식입니다. json_object(으)로 설정하면 모델이 생성하는 메시지가 유효한 JSON임을 보장하는 JSON 모드가 사용하도록 설정됩니다. JSON 모드를 사용하는 경우 시스템 또는 사용자 메시지를 통해 직접 JSON을 생성하도록 모델에 지시해야 합니다. 또한 생성이 max_tokens을(를) 초과했거나 대화가 최대 컨텍스트 길이를 초과했음을 나타내는 finish_reason="length"인 경우 메시지 콘텐츠가 부분적으로 잘릴 수 있습니다.

속성 형식 설명
type ChatCompletionResponseFormatType 응답 형식 유형입니다.

ChatCompletionResponseFormatType

응답 형식 유형입니다.

속성 형식 설명
json_object string
text string

ChatCompletionResponseMessage

모델에 의해 생성된 채팅 완료 메시지입니다.

속성 형식 설명
콘텐츠 string 메시지의 내용입니다.
역할(role) ChatMessageRole 이 메시지 작성자의 역할입니다.
tool_calls ChatCompletionMessageToolCall[] 함수 호출과 같이 모델에서 생성된 도구 호출입니다.

ChatCompletionTool

속성 형식 설명
function FunctionObject
type ToolType 도구의 형식입니다. 현재는 function만 지원됩니다.

ChatMessageRole

이 메시지 작성자의 역할입니다.

속성 형식 설명
도우미 string
시스템 string
tool string
user string

선택 사항

채팅 완료 선택 항목 목록입니다. n이 1보다 큰 경우 2개 이상이 될 수 있습니다.

속성 형식 설명
finish_reason ChatCompletionFinishReason 모델이 토큰 생성을 중지한 이유. 모델이 자연 중지 지점이나 제공된 중지 시퀀스에 도달한 경우 stop, 요청에 지정된 최대 토큰 수에 도달한 경우 length, 콘텐츠의 플래그로 인해 콘텐츠가 생략된 경우 content_filter, 모델이 도구를 호출한 경우 tool_calls입니다.
인덱스 정수 선택 목록의 선택 항목 인덱스입니다.
message ChatCompletionResponseMessage 모델에 의해 생성된 채팅 완료 메시지입니다.

CompletionUsage

완료 요청의 사용 통계입니다.

속성 형식 설명
completion_tokens 정수 생성된 완료의 토큰 수입니다.
prompt_tokens 정수 프롬프트에 있는 토큰 수입니다.
total_tokens 정수 요청(프롬프트 + 완료)에 사용된 총 토큰 수입니다.

ContentFilterError

프롬프트가 구성된 대로 콘텐츠 필터를 트리거하면 API 호출이 실패합니다. 프롬프트를 수정하고 다시 시도합니다.

속성 형식 설명
코드 string 오류 코드입니다.
error string 오류 설명입니다.
message string 오류 메시지입니다.
param string 콘텐츠 필터를 트리거한 매개 변수입니다.
status 정수 HTTP 상태 코드입니다.

CreateChatCompletionRequest

속성 Type 기본값 설명
frequency_penalty 번호 0 이미 사용된 단어가 선택될 가능성을 줄여 단어 반복을 방지하는 데 도움이 됩니다. 빈도 페널티가 높을수록 모델이 출력에서 동일한 단어를 반복할 가능성이 줄어듭니다. 모델에서 값이나 매개 변수를 지원하지 않으면 422 오류를 반환합니다.
max_tokens 정수 채팅 완료 시 생성할 수 있는 최대 토큰 수입니다.

입력 토큰과 생성된 토큰의 총 길이는 모델의 컨텍스트 길이에 따라 제한됩니다. null을 전달하면 모델이 최대 컨텍스트 길이를 사용하게 됩니다.
messages ChatCompletionRequestMessage[] 지금까지의 대화를 구성하는 메시지 목록입니다. 모델이 메시지 중 적어도 일부를 이해할 수 없는 경우 422 오류를 반환합니다.
presence_penalty 번호 0 이미 한 번이라도 단어가 완료에 존재하는 경우 단어에 불이익을 주어 동일한 항목이 반복되는 것을 방지하는 데 도움이 됩니다. 모델에서 값이나 매개 변수를 지원하지 않으면 422 오류를 반환합니다.
response_format ChatCompletionResponseFormat text
seed 정수 지정된 경우 시스템은 결정론적으로 샘플링하기 위해 최선을 다하므로 동일한 seed 및 매개 변수를 사용하는 반복 요청이 동일한 결과를 반환해야 합니다. 결정성은 보장되지 않으며 백 엔드의 변경 내용을 모니터링하려면 system_fingerprint 응답 매개 변수를 참조해야 합니다.
stop API가 추가 토큰 생성을 중지하는 시퀀스입니다.
stream 부울 값 False 설정한 경우 부분 메시지 델타가 전송됩니다. 토큰은 데이터 전용 서버 전송 이벤트로 전송되며 스트림은 data: [DONE] 메시지로 종료됩니다.
온도 번호 1 음수가 아닌 숫자입니다. 모델에서 값을 지원하지 않는 경우 422를 반환합니다.
tool_choice ChatCompletionToolChoiceOption 모델에서 호출되는 함수(해당하는 경우)를 제어합니다. none은 모델이 함수를 호출하지 않고 대신 메시지를 생성함을 의미합니다. auto는 모델이 메시지 생성 또는 함수 호출 중에서 선택할 수 있음을 의미합니다. {"type": "function", "function": {"name": "my_function"}}을 통해 특정 함수를 지정하면 모델이 해당 함수를 호출하게 됩니다.

함수가 없을 경우 none이 기본값입니다. 함수가 있는 경우 auto가 기본값입니다. 해당 도구가 모델에서 지원되지 않는 경우 422 오류를 반환합니다.
tools ChatCompletionTool[] 모델이 호출할 수 있는 도구 목록입니다. 현재 함수만 도구로 지원됩니다. 모델이 JSON 입력을 생성할 수 있는 함수 목록을 제공하려면 이를 사용합니다. 해당 도구가 모델에서 지원되지 않는 경우 422 오류를 반환합니다.
top_p 번호 1 모델이 top_p 확률 질량을 가진 토큰의 결과를 고려하는 핵 샘플링이라고 하는 온도를 사용한 샘플링의 대안입니다. 따라서 0.1은 상위 10% 확률 질량을 구성하는 토큰만 고려됨을 의미합니다.

일반적으로 이를 변경하거나 temperature을(를) 변경하는 것이 좋지만 둘 다 변경하지는 않는 것이 좋습니다.

ChatCompletionRequestMessage

속성 형식 설명
content 문자열 또는 ChatCompletionMessageContentPart[] 메시지의 내용입니다.
역할(role) ChatMessageRole 이 메시지 작성자의 역할입니다.
tool_calls ChatCompletionMessageToolCall[] 함수 호출과 같이 모델에서 생성된 도구 호출입니다.

ChatCompletionMessageContentPart

속성 형식 설명
콘텐츠 string 이미지의 URL 또는 base64로 인코딩된 이미지 데이터입니다.
detail ImageDetail 이미지의 세부 수준을 지정합니다.
type ChatCompletionMessageContentPartType 콘텐츠 부분의 형식입니다.

ChatCompletionMessageContentPartType

속성 형식 설명
text string
이미지 string
image_url string

ChatCompletionToolChoiceOption

모델이 호출하는 도구(있는 경우)를 제어합니다.

속성 형식 설명
없음 string 모델은 도구를 호출하지 않고 대신 메시지를 생성합니다.
auto string 모델은 메시지 생성 또는 하나 이상의 도구 호출 중에서 선택할 수 있습니다.
필수 string 모델은 하나 이상의 도구를 호출해야 합니다.
string {"type": "function", "function": {"name": "my_function"}}을 사용하여 특정 도구를 지정하면 모델이 해당 도구를 강제 호출하게 됩니다.

ImageDetail

이미지의 세부 수준을 지정합니다.

속성 형식 설명
auto string
낮음 string
높음 string

CreateChatCompletionResponse

제공된 입력을 기준으로 모델이 반환한 채팅 완료 응답을 나타냅니다.

속성 형식 설명
선택 Choices[] 채팅 완료 선택 항목 목록입니다. n이 1보다 큰 경우 2개 이상이 될 수 있습니다.
created 정수 채팅 완료가 만들어진 시점의 Unix 타임스탬프(초)입니다.
ID string 채팅 완료를 위한 고유 식별자입니다.
model string 채팅 완료에 사용되는 모델입니다.
개체 ChatCompletionObject 항상 chat.completion인 개체 형식입니다.
system_fingerprint string 이 지문은 모델이 실행되는 백 엔드 구성을 나타냅니다.

결정론에 영향을 미칠 수 있는 백 엔드 변경이 이루어진 시기를 이해하기 위해 seed 요청 매개 변수와 함께 사용할 수 있습니다.
사용량 CompletionUsage 완료 요청의 사용 통계입니다.

세부 정보

UnprocessableContentError 오류에 대한 세부 정보입니다.

속성 형식 설명
loc string[] 문제를 일으키는 매개 변수
value string 문제를 일으키는 매개 변수에 전달된 값입니다.

함수

모델이 호출한 함수입니다.

속성 형식 설명
arguments string JSON 형식의 모델에 의해 생성된 함수 호출에 사용할 인수입니다. 모델이 항상 유효한 JSON을 생성하는 것은 아니며 함수 스키마에 정의되지 않은 잘못된 매개 변수를 생성할 수도 있습니다. 함수를 호출하기 전에 코드에서 인수의 유효성을 검사하세요.
name string 호출할 함수의 이름입니다.

FunctionObject

모델이 액세스할 수 있는 함수의 정의입니다.

속성 형식 설명
description string 함수를 호출하는 시기와 방법을 선택하기 위해 모델에서 사용하는 함수의 기능에 대한 설명입니다.
name string 호출할 함수의 이름입니다. a~z, A~Z, 0~9 또는 밑줄과 대시를 포함해야 하며 최대 길이는 64자여야 합니다.
매개 변수 개체 함수가 허용하는 매개 변수로, JSON 스키마 개체로 설명됩니다. parameters를 생략하면 빈 매개 변수 목록이 있는 함수가 정의됩니다.

NotFoundError

속성 형식 설명
error string 오류 설명입니다.
message string 오류 메시지입니다.
status 정수 HTTP 상태 코드입니다.

ToolType

도구의 형식입니다. 현재는 function만 지원됩니다.

속성 형식 설명
function string

TooManyRequestsError

속성 형식 설명
error string 오류 설명입니다.
message string 오류 메시지입니다.
status 정수 HTTP 상태 코드입니다.

UnauthorizedError

속성 형식 설명
error string 오류 설명입니다.
message string 오류 메시지입니다.
status 정수 HTTP 상태 코드입니다.

UnprocessableContentError

요청에 처리할 수 없는 콘텐츠가 포함되어 있습니다. 표시된 페이로드가 이 사양에 따라 유효할 때 오류가 반환됩니다. 하지만 페이로드에 표시된 일부 지침이 기본 모델에서 지원되지 않습니다. details 섹션을 사용하여 문제가 되는 매개 변수를 파악하세요.

속성 형식 설명
코드 string 오류 코드입니다.
detail 세부 정보
error string 오류 설명입니다.
message string 오류 메시지입니다.
status 정수 HTTP 상태 코드입니다.