Support OpenAI API json_schema response format (#1363)

This commit is contained in:
zifeitong
2024-09-09 19:08:25 -07:00
committed by GitHub
parent 69b3bb9ae1
commit 9144ed1067
4 changed files with 41 additions and 21 deletions

View File

@@ -82,6 +82,14 @@ class StreamOptions(BaseModel):
include_usage: Optional[bool] = False
class JsonSchemaResponseFormat(BaseModel):
name: str
description: Optional[str] = None
# use alias to workaround pydantic conflict
schema_: Optional[Dict[str, object]] = Field(alias="schema", default=None)
strict: Optional[bool] = False
class FileRequest(BaseModel):
# https://platform.openai.com/docs/api-reference/files/create
file: bytes # The File object (not file name) to be uploaded
@@ -237,8 +245,8 @@ ChatCompletionMessageParam = Union[
class ResponseFormat(BaseModel):
# type must be "json_object" or "text"
type: Literal["text", "json_object"]
type: Literal["text", "json_object", "json_schema"]
json_schema: Optional[JsonSchemaResponseFormat] = None
class ChatCompletionRequest(BaseModel):
@@ -264,7 +272,6 @@ class ChatCompletionRequest(BaseModel):
# Extra parameters for SRT backend only and will be ignored by OpenAI models.
regex: Optional[str] = None
json_schema: Optional[str] = None
min_tokens: Optional[int] = 0
repetition_penalty: Optional[float] = 1.0
stop_token_ids: Optional[List[int]] = Field(default_factory=list)