mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-07-27 06:28:50 +00:00
feat: add file support for OpenAI Chat Completion requests
Signed-off-by: Nathan Weinberg <nweinber@redhat.com>
This commit is contained in:
parent
21bae296f2
commit
9f96aca4d2
3 changed files with 81 additions and 2 deletions
41
docs/_static/llama-stack-spec.html
vendored
41
docs/_static/llama-stack-spec.html
vendored
|
@ -9821,13 +9821,17 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$ref": "#/components/schemas/OpenAIChatCompletionContentPartImageParam"
|
"$ref": "#/components/schemas/OpenAIChatCompletionContentPartImageParam"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$ref": "#/components/schemas/OpenAIFile"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"discriminator": {
|
"discriminator": {
|
||||||
"propertyName": "type",
|
"propertyName": "type",
|
||||||
"mapping": {
|
"mapping": {
|
||||||
"text": "#/components/schemas/OpenAIChatCompletionContentPartTextParam",
|
"text": "#/components/schemas/OpenAIChatCompletionContentPartTextParam",
|
||||||
"image_url": "#/components/schemas/OpenAIChatCompletionContentPartImageParam"
|
"image_url": "#/components/schemas/OpenAIChatCompletionContentPartImageParam",
|
||||||
|
"file": "#/components/schemas/OpenAIFile"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -9974,6 +9978,41 @@
|
||||||
"title": "OpenAIDeveloperMessageParam",
|
"title": "OpenAIDeveloperMessageParam",
|
||||||
"description": "A message from the developer in an OpenAI-compatible chat completion request."
|
"description": "A message from the developer in an OpenAI-compatible chat completion request."
|
||||||
},
|
},
|
||||||
|
"OpenAIFile": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"type": {
|
||||||
|
"type": "string",
|
||||||
|
"const": "file",
|
||||||
|
"default": "file"
|
||||||
|
},
|
||||||
|
"file": {
|
||||||
|
"$ref": "#/components/schemas/OpenAIFileFile"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"required": [
|
||||||
|
"type",
|
||||||
|
"file"
|
||||||
|
],
|
||||||
|
"title": "OpenAIFile"
|
||||||
|
},
|
||||||
|
"OpenAIFileFile": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"file_data": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"file_id": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"filename": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"additionalProperties": false,
|
||||||
|
"title": "OpenAIFileFile"
|
||||||
|
},
|
||||||
"OpenAIImageURL": {
|
"OpenAIImageURL": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
|
27
docs/_static/llama-stack-spec.yaml
vendored
27
docs/_static/llama-stack-spec.yaml
vendored
|
@ -6934,11 +6934,13 @@ components:
|
||||||
oneOf:
|
oneOf:
|
||||||
- $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam'
|
- $ref: '#/components/schemas/OpenAIChatCompletionContentPartTextParam'
|
||||||
- $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam'
|
- $ref: '#/components/schemas/OpenAIChatCompletionContentPartImageParam'
|
||||||
|
- $ref: '#/components/schemas/OpenAIFile'
|
||||||
discriminator:
|
discriminator:
|
||||||
propertyName: type
|
propertyName: type
|
||||||
mapping:
|
mapping:
|
||||||
text: '#/components/schemas/OpenAIChatCompletionContentPartTextParam'
|
text: '#/components/schemas/OpenAIChatCompletionContentPartTextParam'
|
||||||
image_url: '#/components/schemas/OpenAIChatCompletionContentPartImageParam'
|
image_url: '#/components/schemas/OpenAIChatCompletionContentPartImageParam'
|
||||||
|
file: '#/components/schemas/OpenAIFile'
|
||||||
OpenAIChatCompletionContentPartTextParam:
|
OpenAIChatCompletionContentPartTextParam:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
@ -7050,6 +7052,31 @@ components:
|
||||||
title: OpenAIDeveloperMessageParam
|
title: OpenAIDeveloperMessageParam
|
||||||
description: >-
|
description: >-
|
||||||
A message from the developer in an OpenAI-compatible chat completion request.
|
A message from the developer in an OpenAI-compatible chat completion request.
|
||||||
|
OpenAIFile:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
type:
|
||||||
|
type: string
|
||||||
|
const: file
|
||||||
|
default: file
|
||||||
|
file:
|
||||||
|
$ref: '#/components/schemas/OpenAIFileFile'
|
||||||
|
additionalProperties: false
|
||||||
|
required:
|
||||||
|
- type
|
||||||
|
- file
|
||||||
|
title: OpenAIFile
|
||||||
|
OpenAIFileFile:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
file_data:
|
||||||
|
type: string
|
||||||
|
file_id:
|
||||||
|
type: string
|
||||||
|
filename:
|
||||||
|
type: string
|
||||||
|
additionalProperties: false
|
||||||
|
title: OpenAIFileFile
|
||||||
OpenAIImageURL:
|
OpenAIImageURL:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
|
|
@ -455,8 +455,21 @@ class OpenAIChatCompletionContentPartImageParam(BaseModel):
|
||||||
image_url: OpenAIImageURL
|
image_url: OpenAIImageURL
|
||||||
|
|
||||||
|
|
||||||
|
@json_schema_type
|
||||||
|
class OpenAIFileFile(BaseModel):
|
||||||
|
file_data: str | None = None
|
||||||
|
file_id: str | None = None
|
||||||
|
filename: str | None = None
|
||||||
|
|
||||||
|
|
||||||
|
@json_schema_type
|
||||||
|
class OpenAIFile(BaseModel):
|
||||||
|
type: Literal["file"] = "file"
|
||||||
|
file: OpenAIFileFile
|
||||||
|
|
||||||
|
|
||||||
OpenAIChatCompletionContentPartParam = Annotated[
|
OpenAIChatCompletionContentPartParam = Annotated[
|
||||||
OpenAIChatCompletionContentPartTextParam | OpenAIChatCompletionContentPartImageParam,
|
OpenAIChatCompletionContentPartTextParam | OpenAIChatCompletionContentPartImageParam | OpenAIFile,
|
||||||
Field(discriminator="type"),
|
Field(discriminator="type"),
|
||||||
]
|
]
|
||||||
register_schema(OpenAIChatCompletionContentPartParam, name="OpenAIChatCompletionContentPartParam")
|
register_schema(OpenAIChatCompletionContentPartParam, name="OpenAIChatCompletionContentPartParam")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue