feat: Remove reasoning_contentfor DeepSeek API messages

This commit is contained in:
Kadxy 2025-01-31 00:30:08 +08:00
parent c449737127
commit dabb7c70d5
2 changed files with 36 additions and 8 deletions

View File

@ -22,7 +22,10 @@ import {
SpeechOptions, SpeechOptions,
} from "../api"; } from "../api";
import { getClientConfig } from "@/app/config/client"; import { getClientConfig } from "@/app/config/client";
import { getMessageTextContent } from "@/app/utils"; import {
getMessageTextContent,
getMessageTextContentWithoutThinking,
} from "@/app/utils";
import { RequestPayload } from "./openai"; import { RequestPayload } from "./openai";
import { fetch } from "@/app/utils/stream"; import { fetch } from "@/app/utils/stream";
@ -67,8 +70,13 @@ export class DeepSeekApi implements LLMApi {
async chat(options: ChatOptions) { async chat(options: ChatOptions) {
const messages: ChatOptions["messages"] = []; const messages: ChatOptions["messages"] = [];
for (const v of options.messages) { for (const v of options.messages) {
const content = getMessageTextContent(v); if (v.role === "assistant") {
messages.push({ role: v.role, content }); const content = getMessageTextContentWithoutThinking(v);
messages.push({ role: v.role, content });
} else {
const content = getMessageTextContent(v);
messages.push({ role: v.role, content });
}
} }
const modelConfig = { const modelConfig = {

View File

@ -16,8 +16,8 @@ export function trimTopic(topic: string) {
return ( return (
topic topic
// fix for gemini // fix for gemini
.replace(/^["“”*]+|["“”*]+$/g, "") .replace(/^["""*]+|[""*]+$/g, "")
.replace(/[,。!?”“"、,.!?*]*$/, "") .replace(/[,。!?""""、,.!?*]*$/, "")
); );
} }
@ -241,6 +241,28 @@ export function getMessageTextContent(message: RequestMessage) {
return ""; return "";
} }
export function getMessageTextContentWithoutThinking(message: RequestMessage) {
let content = "";
if (typeof message.content === "string") {
content = message.content;
} else {
for (const c of message.content) {
if (c.type === "text") {
content = c.text ?? "";
break;
}
}
}
// Filter out thinking lines (starting with "> ")
return content
.split("\n")
.filter((line) => !line.startsWith("> ") && line.trim() !== "")
.join("\n")
.trim();
}
export function getMessageImages(message: RequestMessage): string[] { export function getMessageImages(message: RequestMessage): string[] {
if (typeof message.content === "string") { if (typeof message.content === "string") {
return []; return [];
@ -256,9 +278,7 @@ export function getMessageImages(message: RequestMessage): string[] {
export function isVisionModel(model: string) { export function isVisionModel(model: string) {
const visionModels = useAccessStore.getState().visionModels; const visionModels = useAccessStore.getState().visionModels;
const envVisionModels = visionModels const envVisionModels = visionModels?.split(",").map((m) => m.trim());
?.split(",")
.map((m) => m.trim());
if (envVisionModels?.includes(model)) { if (envVisionModels?.includes(model)) {
return true; return true;
} }