Merge branch 'bestsanmao-bug_fix'
This commit is contained in:
commit
19314793b8
|
@ -1,6 +1,11 @@
|
|||
|
||||
|
||||
# Your openai api key. (required)
|
||||
OPENAI_API_KEY=sk-xxxx
|
||||
|
||||
# DeepSeek Api Key. (Optional)
|
||||
DEEPSEEK_API_KEY=
|
||||
|
||||
# Access password, separated by comma. (optional)
|
||||
CODE=your-password
|
||||
|
||||
|
@ -70,5 +75,6 @@ ANTHROPIC_API_VERSION=
|
|||
### anthropic claude Api url (optional)
|
||||
ANTHROPIC_URL=
|
||||
|
||||
|
||||
### (optional)
|
||||
WHITE_WEBDAV_ENDPOINTS=
|
|
@ -255,6 +255,6 @@ export const getServerSideConfig = () => {
|
|||
defaultModel,
|
||||
visionModels,
|
||||
allowedWebDavEndpoints,
|
||||
enableMcp: !!process.env.ENABLE_MCP,
|
||||
enableMcp: process.env.ENABLE_MCP === "true",
|
||||
};
|
||||
};
|
||||
|
|
|
@ -393,6 +393,7 @@ You are an AI assistant with access to system tools. Your role is to help users
|
|||
|
||||
export const SUMMARIZE_MODEL = "gpt-4o-mini";
|
||||
export const GEMINI_SUMMARIZE_MODEL = "gemini-pro";
|
||||
export const DEEPSEEK_SUMMARIZE_MODEL = "deepseek-chat";
|
||||
|
||||
export const KnowledgeCutOffDate: Record<string, string> = {
|
||||
default: "2021-09",
|
||||
|
@ -561,7 +562,7 @@ const iflytekModels = [
|
|||
"4.0Ultra",
|
||||
];
|
||||
|
||||
const deepseekModels = ["deepseek-chat", "deepseek-coder"];
|
||||
const deepseekModels = ["deepseek-chat", "deepseek-coder", "deepseek-reasoner"];
|
||||
|
||||
const xAIModes = ["grok-beta"];
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ import {
|
|||
DEFAULT_MODELS,
|
||||
DEFAULT_SYSTEM_TEMPLATE,
|
||||
GEMINI_SUMMARIZE_MODEL,
|
||||
DEEPSEEK_SUMMARIZE_MODEL,
|
||||
KnowledgeCutOffDate,
|
||||
MCP_SYSTEM_TEMPLATE,
|
||||
MCP_TOOLS_TEMPLATE,
|
||||
|
@ -35,7 +36,7 @@ import { ModelConfig, ModelType, useAppConfig } from "./config";
|
|||
import { useAccessStore } from "./access";
|
||||
import { collectModelsWithDefaultModel } from "../utils/model";
|
||||
import { createEmptyMask, Mask } from "./mask";
|
||||
import { executeMcpAction, getAllTools } from "../mcp/actions";
|
||||
import { executeMcpAction, getAllTools, isMcpEnabled } from "../mcp/actions";
|
||||
import { extractMcpJson, isMcpJson } from "../mcp/utils";
|
||||
|
||||
const localStorage = safeLocalStorage();
|
||||
|
@ -143,7 +144,10 @@ function getSummarizeModel(
|
|||
}
|
||||
if (currentModel.startsWith("gemini")) {
|
||||
return [GEMINI_SUMMARIZE_MODEL, ServiceProvider.Google];
|
||||
} else if (currentModel.startsWith("deepseek-")) {
|
||||
return [DEEPSEEK_SUMMARIZE_MODEL, ServiceProvider.DeepSeek];
|
||||
}
|
||||
|
||||
return [currentModel, providerName];
|
||||
}
|
||||
|
||||
|
@ -245,7 +249,7 @@ export const useChatStore = createPersistStore(
|
|||
|
||||
newSession.topic = currentSession.topic;
|
||||
// 深拷贝消息
|
||||
newSession.messages = currentSession.messages.map(msg => ({
|
||||
newSession.messages = currentSession.messages.map((msg) => ({
|
||||
...msg,
|
||||
id: nanoid(), // 生成新的消息 ID
|
||||
}));
|
||||
|
@ -551,27 +555,32 @@ export const useChatStore = createPersistStore(
|
|||
(session.mask.modelConfig.model.startsWith("gpt-") ||
|
||||
session.mask.modelConfig.model.startsWith("chatgpt-"));
|
||||
|
||||
const mcpSystemPrompt = await getMcpSystemPrompt();
|
||||
const mcpEnabled = await isMcpEnabled();
|
||||
const mcpSystemPrompt = mcpEnabled ? await getMcpSystemPrompt() : "";
|
||||
|
||||
var systemPrompts: ChatMessage[] = [];
|
||||
systemPrompts = shouldInjectSystemPrompts
|
||||
? [
|
||||
createMessage({
|
||||
role: "system",
|
||||
content:
|
||||
fillTemplateWith("", {
|
||||
...modelConfig,
|
||||
template: DEFAULT_SYSTEM_TEMPLATE,
|
||||
}) + mcpSystemPrompt,
|
||||
}),
|
||||
]
|
||||
: [
|
||||
createMessage({
|
||||
role: "system",
|
||||
content: mcpSystemPrompt,
|
||||
}),
|
||||
];
|
||||
|
||||
if (shouldInjectSystemPrompts) {
|
||||
systemPrompts = [
|
||||
createMessage({
|
||||
role: "system",
|
||||
content:
|
||||
fillTemplateWith("", {
|
||||
...modelConfig,
|
||||
template: DEFAULT_SYSTEM_TEMPLATE,
|
||||
}) + mcpSystemPrompt,
|
||||
}),
|
||||
];
|
||||
} else if (mcpEnabled) {
|
||||
systemPrompts = [
|
||||
createMessage({
|
||||
role: "system",
|
||||
content: mcpSystemPrompt,
|
||||
}),
|
||||
];
|
||||
}
|
||||
|
||||
if (shouldInjectSystemPrompts || mcpEnabled) {
|
||||
console.log(
|
||||
"[Global System Prompt] ",
|
||||
systemPrompts.at(0)?.content ?? "empty",
|
||||
|
@ -816,6 +825,8 @@ export const useChatStore = createPersistStore(
|
|||
|
||||
/** check if the message contains MCP JSON and execute the MCP action */
|
||||
checkMcpJson(message: ChatMessage) {
|
||||
const mcpEnabled = isMcpEnabled();
|
||||
if (!mcpEnabled) return;
|
||||
const content = getMessageTextContent(message);
|
||||
if (isMcpJson(content)) {
|
||||
try {
|
||||
|
|
Loading…
Reference in New Issue