From ca1ad1dc738c91a1a9238a169c04969f6fe35f21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BE=84=E6=BD=AD?= Date: Fri, 24 May 2024 16:27:02 +0800 Subject: [PATCH] Fixed the issue where an empty string system prompt would be set when enabling file id. (#999) --- plugins/wasm-go/Makefile | 4 ++-- plugins/wasm-go/extensions/ai-proxy/provider/qwen.go | 8 +++++--- .../extensions/ai-proxy/provider/request_helper.go | 4 ++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/plugins/wasm-go/Makefile b/plugins/wasm-go/Makefile index f128f18b6..caace39fd 100644 --- a/plugins/wasm-go/Makefile +++ b/plugins/wasm-go/Makefile @@ -19,7 +19,7 @@ build: DOCKER_BUILDKIT=1 docker build --build-arg PLUGIN_NAME=${PLUGIN_NAME} \ --build-arg BUILDER=${BUILDER} \ --build-arg GOPROXY=$(GOPROXY) \ - --build-arg EXTRA_TAGS=$(EXTRA_TAGS) \ + --build-arg EXTRA_TAGS=$(EXTRA_TAGS) \ -t ${IMG} \ --output extensions/${PLUGIN_NAME} \ . @@ -30,7 +30,7 @@ build-image: DOCKER_BUILDKIT=1 docker build --build-arg PLUGIN_NAME=${PLUGIN_NAME} \ --build-arg BUILDER=${BUILDER} \ --build-arg GOPROXY=$(GOPROXY) \ - --build-arg EXTRA_TAGS=$(EXTRA_TAGS) \ + --build-arg EXTRA_TAGS=$(EXTRA_TAGS) \ -t ${IMG} \ . @echo "" diff --git a/plugins/wasm-go/extensions/ai-proxy/provider/qwen.go b/plugins/wasm-go/extensions/ai-proxy/provider/qwen.go index 3ec6681cf..9697e8334 100644 --- a/plugins/wasm-go/extensions/ai-proxy/provider/qwen.go +++ b/plugins/wasm-go/extensions/ai-proxy/provider/qwen.go @@ -26,6 +26,8 @@ const ( qwenTopPMax = 0.999999 qwenDummySystemMessageContent = "You are a helpful assistant." + + qwenLongModelName = "qwen-long" ) type qwenProviderInitializer struct { @@ -292,7 +294,7 @@ func (m *qwenProvider) buildQwenTextGenerationRequest(origRequest *chatCompletio Tools: origRequest.Tools, }, } - if len(m.config.qwenFileIds) != 0 { + if len(m.config.qwenFileIds) != 0 && origRequest.Model == qwenLongModelName { builder := strings.Builder{} for _, fileId := range m.config.qwenFileIds { if builder.Len() != 0 { @@ -422,7 +424,7 @@ func (m *qwenProvider) insertContextMessage(request *qwenTextGenRequest, content Role: roleSystem, Content: content, } - firstNonSystemMessageIndex := -1 + var firstNonSystemMessageIndex int messages := request.Input.Messages if messages != nil { for i, message := range request.Input.Messages { @@ -432,7 +434,7 @@ func (m *qwenProvider) insertContextMessage(request *qwenTextGenRequest, content } } } - if firstNonSystemMessageIndex == -1 { + if firstNonSystemMessageIndex == 0 { request.Input.Messages = append([]qwenMessage{fileMessage}, request.Input.Messages...) return 0 } else if !onlyOneSystemBeforeFile { diff --git a/plugins/wasm-go/extensions/ai-proxy/provider/request_helper.go b/plugins/wasm-go/extensions/ai-proxy/provider/request_helper.go index 1c47fecc0..b283396dc 100644 --- a/plugins/wasm-go/extensions/ai-proxy/provider/request_helper.go +++ b/plugins/wasm-go/extensions/ai-proxy/provider/request_helper.go @@ -37,14 +37,14 @@ func insertContextMessage(request *chatCompletionRequest, content string) { Role: roleSystem, Content: content, } - firstNonSystemMessageIndex := -1 + var firstNonSystemMessageIndex int for i, message := range request.Messages { if message.Role != roleSystem { firstNonSystemMessageIndex = i break } } - if firstNonSystemMessageIndex == -1 { + if firstNonSystemMessageIndex == 0 { request.Messages = append([]chatMessage{fileMessage}, request.Messages...) } else { request.Messages = append(request.Messages[:firstNonSystemMessageIndex], append([]chatMessage{fileMessage}, request.Messages[firstNonSystemMessageIndex:]...)...)