From 94817b557c8931ff927b461976ba406a2ac03d00 Mon Sep 17 00:00:00 2001 From: Ettore Di Giacinto Date: Sat, 22 Jul 2023 00:53:52 +0200 Subject: [PATCH] fix: make completions endpoint more close to OpenAI specification (#790) Signed-off-by: Ettore Di Giacinto --- api/openai/api.go | 2 +- api/openai/chat.go | 2 +- api/openai/completion.go | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/api/openai/api.go b/api/openai/api.go index 6d7ce5e..bf2b639 100644 --- a/api/openai/api.go +++ b/api/openai/api.go @@ -46,7 +46,7 @@ type OpenAIResponse struct { } type Choice struct { - Index int `json:"index,omitempty"` + Index int `json:"index"` FinishReason string `json:"finish_reason,omitempty"` Message *Message `json:"message,omitempty"` Delta *Message `json:"delta,omitempty"` diff --git a/api/openai/chat.go b/api/openai/chat.go index 5f2183e..d85bf7b 100644 --- a/api/openai/chat.go +++ b/api/openai/chat.go @@ -302,7 +302,7 @@ func ChatEndpoint(cm *config.ConfigLoader, o *options.Option) func(c *fiber.Ctx) return } - *c = append(*c, Choice{Message: &Message{Role: "assistant", Content: &s}}) + *c = append(*c, Choice{FinishReason: "stop", Index: 0, Message: &Message{Role: "assistant", Content: &s}}) }, nil) if err != nil { return err diff --git a/api/openai/completion.go b/api/openai/completion.go index d17fd60..4b38c30 100644 --- a/api/openai/completion.go +++ b/api/openai/completion.go @@ -122,7 +122,7 @@ func CompletionEndpoint(cm *config.ConfigLoader, o *options.Option) func(c *fibe } var result []Choice - for _, i := range config.PromptStrings { + for k, i := range config.PromptStrings { // A model can have a "file.bin.tmpl" file associated with a prompt template prefix templatedInput, err := o.Loader.TemplatePrefix(templateFile, struct { Input string @@ -135,7 +135,7 @@ func CompletionEndpoint(cm *config.ConfigLoader, o *options.Option) func(c *fibe } r, err := ComputeChoices(i, input.N, config, o, o.Loader, func(s string, c *[]Choice) { - *c = append(*c, Choice{Text: s}) + *c = append(*c, Choice{Text: s, FinishReason: "stop", Index: k}) }, nil) if err != nil { return err