From be4a4c47f9cc525a20d2900e48c677491e36ffe5 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Wed, 3 Jul 2024 10:41:39 +0000 Subject: [PATCH] Revert "Fixing missing `object` field for regular completions." This reverts commit 2bbb7fa4b266cc1216e63f2047569fe1c8a0ad2a. --- docs/openapi.json | 95 ++------------------------------------------ router/src/lib.rs | 29 +++++--------- router/src/server.rs | 14 +++---- 3 files changed, 20 insertions(+), 118 deletions(-) diff --git a/docs/openapi.json b/docs/openapi.json index b2002efe..7dc159a8 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -946,38 +946,6 @@ } } }, - "Chunk": { - "type": "object", - "required": [ - "id", - "created", - "choices", - "model", - "system_fingerprint" - ], - "properties": { - "choices": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CompletionComplete" - } - }, - "created": { - "type": "integer", - "format": "int64", - "minimum": 0 - }, - "id": { - "type": "string" - }, - "model": { - "type": "string" - }, - "system_fingerprint": { - "type": "string" - } - } - }, "CompatGenerateRequest": { "type": "object", "required": [ @@ -997,55 +965,6 @@ } } }, - "Completion": { - "oneOf": [ - { - "allOf": [ - { - "$ref": "#/components/schemas/Chunk" - }, - { - "type": "object", - "required": [ - "object" - ], - "properties": { - "object": { - "type": "string", - "enum": [ - "text_completion" - ] - } - } - } - ] - }, - { - "allOf": [ - { - "$ref": "#/components/schemas/CompletionFinal" - }, - { - "type": "object", - "required": [ - "object" - ], - "properties": { - "object": { - "type": "string", - "enum": [ - "text_completion" - ] - } - } - } - ] - } - ], - "discriminator": { - "propertyName": "object" - } - }, "CompletionComplete": { "type": "object", "required": [ @@ -1075,15 +994,14 @@ } } }, - "CompletionFinal": { + "CompletionCompleteChunk": { "type": "object", "required": [ "id", "created", - "model", - "system_fingerprint", "choices", - "usage" + "model", + "system_fingerprint" ], "properties": { "choices": { @@ -1095,21 +1013,16 @@ "created": { "type": "integer", "format": "int64", - "example": "1706270835", "minimum": 0 }, "id": { "type": "string" }, "model": { - "type": "string", - "example": "mistralai/Mistral-7B-Instruct-v0.2" + "type": "string" }, "system_fingerprint": { "type": "string" - }, - "usage": { - "$ref": "#/components/schemas/Usage" } } }, diff --git a/router/src/lib.rs b/router/src/lib.rs index 165b2ad2..9ecfa051 100644 --- a/router/src/lib.rs +++ b/router/src/lib.rs @@ -433,17 +433,8 @@ pub struct CompletionRequest { pub stop: Option>, } -#[derive(Clone, Serialize, ToSchema)] -#[serde(tag = "object")] -enum Completion { - #[serde(rename = "text_completion")] - Chunk(Chunk), - #[serde(rename = "text_completion")] - Final(CompletionFinal), -} - #[derive(Clone, Deserialize, Serialize, ToSchema, Default)] -pub(crate) struct CompletionFinal { +pub(crate) struct Completion { pub id: String, #[schema(example = "1706270835")] pub created: u64, @@ -462,15 +453,6 @@ pub(crate) struct CompletionComplete { pub finish_reason: String, } -#[derive(Clone, Deserialize, Serialize, ToSchema)] -pub(crate) struct Chunk { - pub id: String, - pub created: u64, - pub choices: Vec, - pub model: String, - pub system_fingerprint: String, -} - #[derive(Clone, Deserialize, Serialize, ToSchema)] pub(crate) struct ChatCompletion { pub id: String, @@ -632,6 +614,15 @@ impl ChatCompletion { } } } +#[derive(Clone, Deserialize, Serialize, ToSchema)] +pub(crate) struct CompletionCompleteChunk { + pub id: String, + pub created: u64, + pub choices: Vec, + pub model: String, + pub system_fingerprint: String, +} + #[derive(Clone, Serialize, ToSchema)] pub(crate) struct ChatCompletionChunk { pub id: String, diff --git a/router/src/server.rs b/router/src/server.rs index ce0d6675..9be6a35c 100644 --- a/router/src/server.rs +++ b/router/src/server.rs @@ -19,7 +19,7 @@ use crate::{ use crate::{ ChatCompletion, ChatCompletionChoice, ChatCompletionChunk, ChatCompletionComplete, ChatCompletionDelta, ChatCompletionLogprob, ChatCompletionLogprobs, ChatCompletionTopLogprob, - ChatRequest, Chunk, CompatGenerateRequest, Completion, CompletionComplete, CompletionFinal, + ChatRequest, CompatGenerateRequest, Completion, CompletionComplete, CompletionCompleteChunk, CompletionRequest, CompletionType, DeltaToolCall, Function, Tool, VertexRequest, VertexResponse, }; @@ -705,7 +705,7 @@ async fn completions( .as_secs(); event - .json_data(Completion::Chunk(Chunk { + .json_data(CompletionCompleteChunk { id: "".to_string(), created: current_time, @@ -718,7 +718,7 @@ async fn completions( model: model_id.clone(), system_fingerprint: system_fingerprint.clone(), - })) + }) .unwrap_or_else(|_e| Event::default()) }; @@ -931,7 +931,7 @@ async fn completions( .collect::, _>>() .map_err(|(status, Json(err))| (status, Json(err)))?; - let response = Completion::Final(CompletionFinal { + let response = Completion { id: "".to_string(), created: current_time, model: info.model_id.clone(), @@ -946,7 +946,7 @@ async fn completions( completion_tokens, total_tokens, }, - }); + }; // headers similar to `generate` but aggregated let mut headers = HeaderMap::new(); @@ -1464,9 +1464,7 @@ pub async fn run( ChatCompletion, CompletionRequest, CompletionComplete, - Chunk, - Completion, - CompletionFinal, + CompletionCompleteChunk, GenerateParameters, PrefillToken, Token,