From 8c92983b13b46bfe4d4d35ddf7d5dad4d188b839 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Wed, 24 Sep 2025 01:01:56 +0800 Subject: [PATCH] fix(model): still use string in norm prompt --- model/openai.go | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/model/openai.go b/model/openai.go index fc09bc1..121d9ae 100644 --- a/model/openai.go +++ b/model/openai.go @@ -128,26 +128,30 @@ func (opai *OpenAI) System(prompt string) Protocol { return opai } -func (opai *OpenAI) User(prompt ...Content) Protocol { - raw, err := json.Marshal(&prompt) +func (opai *OpenAI) normal(role string, prompt ...Content) Protocol { + var ( + raw json.RawMessage + err error + ) + if len(prompt) == 1 && prompt[0].Type == ContentTypeText { + raw, err = json.Marshal(&prompt[0].Text) + } else { + raw, err = json.Marshal(&prompt) + } if err != nil { panic(err) } opai.Messages = append(opai.Messages, OpenAIMessage{ - Role: "user", + Role: role, Content: raw, }) return opai } -func (opai *OpenAI) Assistant(prompt ...Content) Protocol { - raw, err := json.Marshal(&prompt) - if err != nil { - panic(err) - } - opai.Messages = append(opai.Messages, OpenAIMessage{ - Role: "assistant", - Content: raw, - }) - return opai +func (opai *OpenAI) User(prompt ...Content) Protocol { + return opai.normal("user", prompt...) +} + +func (opai *OpenAI) Assistant(prompt ...Content) Protocol { + return opai.normal("assistant", prompt...) }