Skip to content

Commit

Permalink
Merge branch 'bestsanmao-bug_fix'
Browse files Browse the repository at this point in the history
  • Loading branch information
Leizhenpeng committed Jan 27, 2025
2 parents 2f9cb5a + 8680182 commit 1931479
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 22 deletions.
6 changes: 6 additions & 0 deletions .env.template
Original file line number Diff line number Diff line change
@@ -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

Expand Down Expand Up @@ -70,5 +75,6 @@ ANTHROPIC_API_VERSION=
### anthropic claude Api url (optional)
ANTHROPIC_URL=


### (optional)
WHITE_WEBDAV_ENDPOINTS=
2 changes: 1 addition & 1 deletion app/config/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,6 @@ export const getServerSideConfig = () => {
defaultModel,
visionModels,
allowedWebDavEndpoints,
enableMcp: !!process.env.ENABLE_MCP,
enableMcp: process.env.ENABLE_MCP === "true",
};
};
3 changes: 2 additions & 1 deletion app/constant.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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"];

Expand Down
51 changes: 31 additions & 20 deletions app/store/chat.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import {
DEFAULT_MODELS,
DEFAULT_SYSTEM_TEMPLATE,
GEMINI_SUMMARIZE_MODEL,
DEEPSEEK_SUMMARIZE_MODEL,
KnowledgeCutOffDate,
MCP_SYSTEM_TEMPLATE,
MCP_TOOLS_TEMPLATE,
Expand All @@ -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();
Expand Down Expand Up @@ -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];
}

Expand Down Expand Up @@ -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
}));
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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 {
Expand Down

0 comments on commit 1931479

Please sign in to comment.