mirror of
https://wget.la/https://github.com/leookun/cursor-byok
synced 2026-08-18 12:07:02 +08:00
release: 0.0.41
- 修复内存泄漏问题,该可能导致内存异常占用 - 支持俄语增加翻译范围 - 修复qwen-3.8-max中断问题(mimo也应该属于同一类问题) - 修复claude模型可能无法识别图片问题 @GGHansome - 支持自定义Openai端点 @Sxuan-Coder - WebSearch 接入百度搜索,DuckDuckGo 作为兜底 @杨超 - 修复一些兼容性问题 @kael-odin - 修复window上一些表现问题 @philau2512 🔔 如何让AI自动拉模型配置? (以下为提示词,把地址和密钥换为你的) 我的模型配置在 ~/.cursor-local-assistant-v2/config.yaml,我的API地址是:https://xxx 密钥是xxx,帮我拉所有模型配置进去,不要影响已有模型,根据models标准接口拉取。
This commit is contained in:
@@ -897,8 +897,8 @@ func buildMessagesFromPendingAssistantRaw(raw string) []Message {
|
||||
reasoningSignature := ""
|
||||
pendingToolCalls := make([]ToolCallDescriptor, 0, len(payload.Content))
|
||||
pendingToolResults := make([]Message, 0, len(payload.Content))
|
||||
flushAssistantText := func(forceReasoningOnly bool) {
|
||||
if len(textParts) == 0 && (!forceReasoningOnly || len(reasoningParts) == 0) {
|
||||
flushAssistantTurn := func() {
|
||||
if len(textParts) == 0 && len(reasoningParts) == 0 && len(pendingToolCalls) == 0 {
|
||||
return
|
||||
}
|
||||
messages = append(messages, Message{
|
||||
@@ -906,23 +906,10 @@ func buildMessagesFromPendingAssistantRaw(raw string) []Message {
|
||||
Content: formatMessageText(strings.Join(textParts, "")),
|
||||
ReasoningContent: strings.Join(reasoningParts, ""),
|
||||
ReasoningSignature: reasoningSignature,
|
||||
})
|
||||
textParts = textParts[:0]
|
||||
reasoningParts = reasoningParts[:0]
|
||||
reasoningSignature = ""
|
||||
}
|
||||
flushToolCalls := func() {
|
||||
if len(pendingToolCalls) == 0 {
|
||||
return
|
||||
}
|
||||
messages = append(messages, Message{
|
||||
Role: "assistant",
|
||||
Content: "",
|
||||
ReasoningContent: strings.Join(reasoningParts, ""),
|
||||
ReasoningSignature: reasoningSignature,
|
||||
ToolCalls: append([]ToolCallDescriptor(nil), pendingToolCalls...),
|
||||
})
|
||||
messages = append(messages, pendingToolResults...)
|
||||
textParts = textParts[:0]
|
||||
reasoningParts = reasoningParts[:0]
|
||||
reasoningSignature = ""
|
||||
pendingToolCalls = pendingToolCalls[:0]
|
||||
@@ -932,8 +919,6 @@ func buildMessagesFromPendingAssistantRaw(raw string) []Message {
|
||||
for _, item := range payload.Content {
|
||||
switch strings.TrimSpace(item.Type) {
|
||||
case "reasoning":
|
||||
flushToolCalls()
|
||||
flushAssistantText(false)
|
||||
if item.Text != "" {
|
||||
reasoningParts = append(reasoningParts, item.Text)
|
||||
}
|
||||
@@ -941,12 +926,10 @@ func buildMessagesFromPendingAssistantRaw(raw string) []Message {
|
||||
reasoningSignature = strings.TrimSpace(item.Signature)
|
||||
}
|
||||
case "text":
|
||||
flushToolCalls()
|
||||
if item.Text != "" {
|
||||
textParts = append(textParts, item.Text)
|
||||
}
|
||||
case "tool-call":
|
||||
flushAssistantText(false)
|
||||
pendingToolCalls = append(pendingToolCalls, ToolCallDescriptor{
|
||||
ID: strings.TrimSpace(item.ToolCallID),
|
||||
Index: len(pendingToolCalls),
|
||||
@@ -966,9 +949,7 @@ func buildMessagesFromPendingAssistantRaw(raw string) []Message {
|
||||
}
|
||||
}
|
||||
}
|
||||
flushAssistantText(false)
|
||||
flushToolCalls()
|
||||
flushAssistantText(true)
|
||||
flushAssistantTurn()
|
||||
return messages
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user