Foundation 모델 REST API 참조
이 문서에서는 Databricks Foundation 모델 API 및 지원하는 모델에 대한 일반 API 정보를 제공합니다. Foundation Model API는 기존 프로젝트를 보다 쉽게 마이그레이션할 수 있도록 OpenAI의 REST API와 유사하게 설계되었습니다. 토큰당 종량제 및 프로비전된 처리량 엔드포인트는 모두 동일한 REST API 요청 형식을 허용합니다.
끝점
각 토큰당 종량제 모델에는 단일 엔드포인트가 있으며 사용자는 HTTP POST 요청을 사용하여 이러한 엔드포인트와 상호 작용할 수 있습니다. 프로비전된 처리량 엔드포인트는 API 또는 서비스 UI를 사용하여 만들 수 있습니다. 이러한 엔드포인트는 제공된 두 모델이 동일한 API 형식을 노출하는 한 A/B 테스트를 위해 엔드포인트당 여러 모델을 지원합니다. 예를 들어 두 모델 모두 채팅 모델입니다.
요청 및 응답은 JSON을 사용합니다. 정확한 JSON 구조는 엔드포인트의 작업 유형에 따라 달라집니다. 채팅 및 완료 엔드포인트는 스트리밍 응답을 지원합니다.
토큰당 종량제 워크로드는 특정 모델을 지원하며, 해당 모델에 대한 토큰당 종량제 및 허용되는 API 형식에 대해 지원되는 모델을 참조하세요.
사용
응답에는 요청 및 응답의 토큰 수를 보고하는 하위 메시지가 포함 usage
됩니다. 이 하위 메시지의 형식은 모든 작업 유형에서 동일합니다.
필드 | 형식 | 설명 |
---|---|---|
completion_tokens |
정수 | 생성된 토큰 수입니다. 응답 포함에는 포함되지 않습니다. |
prompt_tokens |
정수 | 입력 프롬프트의 토큰 수입니다. |
total_tokens |
정수 | 총 토큰 수입니다. |
사용자 프롬프트와 같은 llama-2-70b-chat
모델의 경우 모델에 전달되기 전에 프롬프트 템플릿을 사용하여 변환됩니다. 토큰당 종량제 엔드포인트의 경우 시스템 프롬프트도 추가될 수 있습니다. prompt_tokens
에는 서버에서 추가한 모든 텍스트가 포함됩니다.
채팅 작업
채팅 작업은 모델과의 멀티 턴 대화에 최적화되어 있습니다. 각 요청은 필드가 메시지로 user
끝나는 역할을 번갈아 사용해야 assistant
user
하는 지금까지 messages
의 대화를 설명합니다. 모델 응답은 대화의 다음 assistant
메시지를 제공합니다.
채팅 요청
필드 | 기본값 | Type | 설명 |
---|---|---|---|
messages |
ChatMessage 목록 | 필수입니다. 현재 대화를 나타내는 메시지 목록입니다. | |
max_tokens |
nil |
0보다 크거나 nil 무한대를 나타내는 정수 |
생성할 최대 토큰 수입니다. |
stream |
true |
Boolean | 요청에 대한 부분 결과를 허용하기 위해 클라이언트로 응답을 다시 스트리밍합니다. 이 매개 변수가 요청에 포함되면 서버에서 보낸 이벤트 표준을 사용하여 응답이 전송됩니다. |
temperature |
1.0 |
Float in [0,2] | 샘플링 온도입니다. 0은 결정적이며 값이 높을수록 더 많은 임의성이 발생합니다. |
top_p |
1.0 |
Float in (0,1] | 핵 샘플링에 사용되는 확률 임계값입니다. |
top_k |
nil |
0보다 크거나 nil 무한대를 나타내는 정수 |
상위 k 필터링에 사용할 가능성이 가장 큰 k 토큰 수를 정의합니다. 출력을 결정적으로 만들려면 이 값을 1로 설정합니다. |
stop |
[] | String 또는 List[String] | 모델은 시퀀스 중 하나가 발견되면 추가 토큰 생성을 중지합니다 stop . |
n |
1 | 0보다 큰 정수 | API는 지정된 경우 n 독립적인 채팅 완료를 반환 n 합니다. 추가 유추 효율성 및 비용 절감을 위해 동일한 입력에서 여러 완료를 생성하는 워크로드에 권장됩니다. 프로비전된 처리량 엔드포인트에만 사용할 수 있습니다. |
tool_choice |
nil |
String 또는 ToolChoiceObject | 필드와 tools 함께만 사용됩니다. tool_choice 는 다음과 같은 auto required none 다양한 키워드 문자열을 지원합니다. auto 는 모델에서 사용과 관련된 도구(있는 경우)를 결정하도록 하는 것을 의미합니다. auto 모델이 관련 도구가 없다고 생각되면 모델은 도구 tools 호출 대신 표준 도우미 메시지를 생성합니다. required 는 모델이 가장 관련성이 큰 도구를 선택하고 도구 tools 호출을 생성해야 했음을 의미합니다. none 는 모델이 도구 호출을 생성하지 않고 대신 표준 도우미 메시지를 생성해야 했음을 의미합니다. 정의된 tools 특정 도구를 사용하여 도구 호출을 강제로 적용하려면 ToolChoiceObject를 사용합니다. 기본적으로 필드가 tools 채워지는 tool_choice = "auto" 경우 . 그렇지 않으면 필드의 기본값은 tools 입니다. tool_choice = "none" |
tools |
nil |
ToolObject | 모델이 호출할 수 있는 목록 tools 입니다. 현재 function 지원되는 tool 유일한 형식이며 최대 32개의 함수가 지원됩니다. |
ChatMessage
필드 | 형식 | 설명 |
---|---|---|
role |
문자열 | 필수입니다. 메시지 작성자의 역할입니다. , "user" "assistant" 또는 "tool" .일 수 "system" 있습니다. |
content |
문자열 | 메시지의 내용입니다. 도구 호출을 포함하지 않는 채팅 작업에 필요합니다 . |
tool_calls |
ToolCall 목록 | 모델이 생성한 목록 tool_calls 입니다. 필드에 대한 사양과 사양 "assistant" 이 content 있어야 role 합니다. |
tool_call_id |
문자열 | 이 "tool" 경우 role 메시지가 응답하는 ID와 ToolCall 연결된 ID입니다. 다른 role 옵션의 경우 비어 있어야 합니다. |
역할은 system
대화의 첫 번째 메시지로 한 번만 사용할 수 있습니다. 모델의 기본 시스템 프롬프트를 재정의합니다.
ToolCall
모델의 도구 호출 작업 제안입니다. Azure Databricks에서 함수 호출을 참조 하세요.
필드 | 형식 | 설명 |
---|---|---|
id |
문자열 | 필수입니다. 이 도구 호출 제안에 대한 고유 식별자입니다. |
type |
문자열 | 필수입니다. "function" 만 지원됩니다. |
function |
FunctionCallCompletion | 필수입니다. 모델에서 제안하는 함수 호출입니다. |
FunctionCallCompletion
필드 | 형식 | 설명 |
---|---|---|
name |
문자열 | 필수입니다. 모델이 권장하는 함수의 이름입니다. |
arguments |
Object | 필수입니다. 직렬화된 JSON 사전으로 함수에 대한 인수입니다. |
ToolChoiceObject
Azure Databricks에서 함수 호출을 참조 하세요.
필드 | 형식 | 설명 |
---|---|---|
type |
문자열 | 필수입니다. 도구의 형식입니다. 현재는 "function" 만 지원됩니다. |
function |
Object | 필수입니다. 필드에서 FunctionObject tools 의 이름이 있는 "my_function 폼 {"type": "function", "function": {"name": "my_function"}} 을 호출할 도구를 정의하는 개체입니다. |
ToolObject
Azure Databricks에서 함수 호출을 참조 하세요.
필드 | 형식 | 설명 |
---|---|---|
type |
문자열 | 필수입니다. 도구의 형식입니다. 현재는 function 만 지원됩니다. |
function |
FunctionObject | 필수입니다. 도구와 연결된 함수 정의입니다. |
FunctionObject
필드 | 형식 | 설명 |
---|---|---|
name |
문자열 | 필수입니다. 호출할 함수의 이름입니다. |
description |
Object | 필수입니다. 함수에 대한 자세한 설명입니다. 모델은 이 설명을 사용하여 프롬프트에 대한 함수의 관련성을 이해하고 더 높은 정확도로 도구 호출을 생성합니다. |
parameters |
Object | 유효한 JSON 스키마 개체로 설명된 함수가 허용하는 매개 변수입니다. 도구가 호출되면 도구 호출이 제공된 JSON 스키마에 적합합니다. 매개 변수를 생략하면 매개 변수가 없는 함수가 정의됩니다. 개수 properties 는 15개 키로 제한됩니다. |
채팅 응답
비 스트리밍 요청의 경우 응답은 단일 채팅 완료 개체입니다. 스트리밍 요청의 경우 응답은 text/event-stream
각 이벤트가 완료 청크 개체인 위치입니다. 완성 및 청크 개체의 최상위 구조는 거의 동일합니다. 다른 형식만 choices
있습니다.
필드 | 형식 | 설명 |
---|---|---|
id |
문자열 | 채팅 완료를 위한 고유 식별자입니다. |
choices |
List[ChatCompletionChoice] 또는 List[ChatCompletionChunk](스트리밍) | 채팅 완료 텍스트 목록입니다. n 매개 변수를 n 지정하면 선택 항목이 반환됩니다. |
object |
문자열 | 개체 유형입니다. "chat.completions" 비 스트리밍 또는 "chat.completion.chunk" 스트리밍의 경우와 같습니다. |
created |
정수 | 채팅 완료가 생성된 시간(초)입니다. |
model |
문자열 | 응답을 생성하는 데 사용되는 모델 버전입니다. |
usage |
사용법 | 토큰 사용 메타데이터입니다. 스트리밍 응답에 없을 수 있습니다. |
ChatCompletionChoice
필드 | 형식 | 설명 |
---|---|---|
index |
정수 | 생성된 선택 항목 목록에서 선택한 인덱스입니다. |
message |
ChatMessage | 모델에서 반환한 채팅 완료 메시지입니다. 역할은 .입니다 assistant . |
finish_reason |
문자열 | 모델이 토큰 생성을 중지한 이유. |
ChatCompletionChunk
필드 | 형식 | 설명 |
---|---|---|
index |
정수 | 생성된 선택 항목 목록에서 선택한 인덱스입니다. |
delta |
ChatMessage | 모델에서 생성된 스트리밍 응답의 채팅 완료 메시지 부분입니다. 첫 번째 청크 role 만 채워집니다. |
finish_reason |
문자열 | 모델이 토큰 생성을 중지한 이유. 마지막 청크만 채워집니다. |
완료 작업
텍스트 완성 작업은 단일 프롬프트에 대한 응답을 생성하기 위한 것입니다. 채팅과 달리 이 작업은 일괄 처리된 입력을 지원합니다. 하나의 요청으로 여러 개의 독립적인 프롬프트를 보낼 수 있습니다.
완료 요청
필드 | 기본값 | Type | 설명 |
---|---|---|---|
prompt |
String 또는 List[String] | 필수입니다. 모델에 대한 프롬프트입니다. | |
max_tokens |
nil |
0보다 크거나 nil 무한대를 나타내는 정수 |
생성할 최대 토큰 수입니다. |
stream |
true |
Boolean | 요청에 대한 부분 결과를 허용하기 위해 클라이언트로 응답을 다시 스트리밍합니다. 이 매개 변수가 요청에 포함되면 서버에서 보낸 이벤트 표준을 사용하여 응답이 전송됩니다. |
temperature |
1.0 |
Float in [0,2] | 샘플링 온도입니다. 0은 결정적이며 값이 높을수록 더 많은 임의성이 발생합니다. |
top_p |
1.0 |
Float in (0,1] | 핵 샘플링에 사용되는 확률 임계값입니다. |
top_k |
nil |
0보다 크거나 nil 무한대를 나타내는 정수 |
상위 k 필터링에 사용할 가능성이 가장 큰 k 토큰 수를 정의합니다. 출력을 결정적으로 만들려면 이 값을 1로 설정합니다. |
error_behavior |
"error" |
"truncate" 또는 "error" |
시간 제한 및 컨텍스트 길이 초과 오류의 경우 다음 중 하나( "truncate" 가능한 한 많은 토큰 반환) 및 "error" (오류 반환) 이 매개 변수는 토큰 엔드포인트당 지불로만 허용됩니다. |
n |
1 | 0보다 큰 정수 | API는 지정된 경우 n 독립적인 채팅 완료를 반환 n 합니다. 추가 유추 효율성 및 비용 절감을 위해 동일한 입력에서 여러 완료를 생성하는 워크로드에 권장됩니다. 프로비전된 처리량 엔드포인트에만 사용할 수 있습니다. |
stop |
[] | String 또는 List[String] | 모델은 시퀀스 중 하나가 발견되면 추가 토큰 생성을 중지합니다 stop . |
suffix |
"" |
문자열 | 모든 완료의 끝에 추가되는 문자열입니다. |
echo |
false |
Boolean | 완료와 함께 프롬프트를 반환합니다. |
use_raw_prompt |
false |
Boolean | 이 경우 true 변환 없이 모델에 직접 전달 prompt 합니다. |
완료 응답
필드 | 형식 | 설명 |
---|---|---|
id |
문자열 | 텍스트 완성을 위한 고유 식별자입니다. |
choices |
CompletionChoice | 텍스트 완성 목록입니다. 전달된 모든 프롬프트에 n 대해 지정된 경우 n 선택 항목이 생성됩니다. 기본값 n 은 1입니다. |
object |
문자열 | 개체 유형입니다. 같음 "text_completion" |
created |
정수 | 완료가 생성된 시간(초)입니다. |
usage |
사용법 | 토큰 사용 메타데이터입니다. |
CompletionChoice
필드 | 형식 | 설명 |
---|---|---|
index |
정수 | 요청에서 프롬프트의 인덱스입니다. |
text |
문자열 | 생성된 완료입니다. |
finish_reason |
문자열 | 모델이 토큰 생성을 중지한 이유. |
포함 작업
태스크를 포함하면 입력 문자열이 포함 벡터에 매핑됩니다. 각 요청에서 많은 입력을 함께 일괄 처리할 수 있습니다.
요청 포함
필드 | 형식 | 설명 |
---|---|---|
input |
String 또는 List[String] | 필수입니다. 포함할 입력 텍스트. 문자열 또는 문자열 목록일 수 있습니다. |
instruction |
문자열 | 포함 모델에 전달할 선택적 명령입니다. |
지침은 선택 사항이며 모델별이 매우 높습니다. 예를 들어 BGE 작성자는 청크를 인덱싱할 때 아무런 명령도 권장하지 않으며 검색 쿼리에 대한 지침을 "Represent this sentence for searching relevant passages:"
사용하는 것이 좋습니다. Instructor-XL과 같은 다른 모델은 다양한 명령 문자열을 지원합니다.
포함 응답
필드 | 형식 | 설명 |
---|---|---|
id |
문자열 | 포함에 대한 고유 식별자입니다. |
object |
문자열 | 개체 유형입니다. 같음 "list" |
model |
문자열 | 포함을 만드는 데 사용되는 포함 모델의 이름입니다. |
data |
EmbeddingObject | 포함 개체입니다. |
usage |
사용법 | 토큰 사용 메타데이터입니다. |
EmbeddingObject
필드 | 형식 | 설명 |
---|---|---|
object |
문자열 | 개체 유형입니다. 같음 "embedding" |
index |
정수 | 모델에서 생성된 포함 목록의 포함 인덱스입니다. |
embedding |
List[Float] | 포함 벡터. 각 모델은 고정 크기 벡터를 반환합니다(BGE-Large의 경우 1024). |
추가 리소스
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기