From 41ba3017fd74dfce9a3dc00160f29befec85a41b Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Sat, 11 May 2024 15:31:41 -0700 Subject: [PATCH] Fix OpenAI `finish_reason` values when empty (#4368) --- openai/openai.go | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/openai/openai.go b/openai/openai.go index 4b335f36..7ce29e9f 100644 --- a/openai/openai.go +++ b/openai/openai.go @@ -107,9 +107,14 @@ func toChatCompletion(id string, r api.ChatResponse) ChatCompletion { Model: r.Model, SystemFingerprint: "fp_ollama", Choices: []Choice{{ - Index: 0, - Message: Message{Role: r.Message.Role, Content: r.Message.Content}, - FinishReason: &r.DoneReason, + Index: 0, + Message: Message{Role: r.Message.Role, Content: r.Message.Content}, + FinishReason: func(reason string) *string { + if len(reason) > 0 { + return &reason + } + return nil + }(r.DoneReason), }}, Usage: Usage{ // TODO: ollama returns 0 for prompt eval if the prompt was cached, but openai returns the actual count @@ -127,13 +132,16 @@ func toChunk(id string, r api.ChatResponse) ChatCompletionChunk { Created: time.Now().Unix(), Model: r.Model, SystemFingerprint: "fp_ollama", - Choices: []ChunkChoice{ - { - Index: 0, - Delta: Message{Role: "assistant", Content: r.Message.Content}, - FinishReason: &r.DoneReason, - }, - }, + Choices: []ChunkChoice{{ + Index: 0, + Delta: Message{Role: "assistant", Content: r.Message.Content}, + FinishReason: func(reason string) *string { + if len(reason) > 0 { + return &reason + } + return nil + }(r.DoneReason), + }}, } }