mirror of
https://git.mirrors.martin98.com/https://github.com/bytedance/deer-flow
synced 2025-08-20 05:19:06 +08:00
feat: extract getChatStreamSettings
This commit is contained in:
parent
1e83a40335
commit
1610c2ff4e
@ -53,7 +53,7 @@ export async function sendMessage(
|
||||
} = {},
|
||||
options: { abortSignal?: AbortSignal } = {},
|
||||
) {
|
||||
if (content !== undefined) {
|
||||
if (content != null) {
|
||||
appendMessage({
|
||||
id: nanoid(),
|
||||
threadId: THREAD_ID,
|
||||
@ -63,11 +63,55 @@ export async function sendMessage(
|
||||
});
|
||||
}
|
||||
|
||||
const settings = getChatStreamSettings();
|
||||
const stream = chatStream(
|
||||
content ?? "[REPLAY]",
|
||||
{
|
||||
thread_id: THREAD_ID,
|
||||
interrupt_feedback: interruptFeedback,
|
||||
auto_accepted_plan: settings.autoAcceptedPlan,
|
||||
max_plan_iterations: settings.maxPlanIterations,
|
||||
max_step_num: settings.maxStepNum,
|
||||
mcp_settings: settings.mcpSettings,
|
||||
},
|
||||
options,
|
||||
);
|
||||
|
||||
setResponding(true);
|
||||
try {
|
||||
const settings = useSettingsStore.getState();
|
||||
const generalSettings = settings.general;
|
||||
const mcpServers = settings.mcp.servers.filter((server) => server.enabled);
|
||||
for await (const event of stream) {
|
||||
const { type, data } = event;
|
||||
const messageId = data.id;
|
||||
let message: Message | undefined;
|
||||
if (type === "tool_call_result") {
|
||||
message = findMessageByToolCallId(data.tool_call_id);
|
||||
} else if (!existsMessage(messageId)) {
|
||||
message = {
|
||||
id: messageId,
|
||||
threadId: data.thread_id,
|
||||
agent: data.agent,
|
||||
role: data.role,
|
||||
content: "",
|
||||
contentChunks: [],
|
||||
isStreaming: true,
|
||||
interruptFeedback,
|
||||
};
|
||||
appendMessage(message);
|
||||
}
|
||||
message ??= getMessage(messageId);
|
||||
if (message) {
|
||||
message = mergeMessage(message, event);
|
||||
updateMessage(message);
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
setOngoingResearchId(null);
|
||||
} finally {
|
||||
setResponding(false);
|
||||
}
|
||||
}
|
||||
|
||||
function getChatStreamSettings() {
|
||||
let mcpSettings:
|
||||
| {
|
||||
servers: Record<
|
||||
@ -79,6 +123,8 @@ export async function sendMessage(
|
||||
>;
|
||||
}
|
||||
| undefined = undefined;
|
||||
const settings = useSettingsStore.getState();
|
||||
const mcpServers = settings.mcp.servers.filter((server) => server.enabled);
|
||||
if (mcpServers.length > 0) {
|
||||
mcpSettings = {
|
||||
servers: mcpServers.reduce((acc, cur) => {
|
||||
@ -111,51 +157,13 @@ export async function sendMessage(
|
||||
}, {}),
|
||||
};
|
||||
}
|
||||
const stream = chatStream(
|
||||
content ?? "[REPLAY]",
|
||||
{
|
||||
thread_id: THREAD_ID,
|
||||
auto_accepted_plan: generalSettings.autoAcceptedPlan,
|
||||
max_plan_iterations: generalSettings.maxPlanIterations,
|
||||
max_step_num: generalSettings.maxStepNum,
|
||||
interrupt_feedback: interruptFeedback,
|
||||
mcp_settings: mcpSettings,
|
||||
},
|
||||
options,
|
||||
);
|
||||
|
||||
for await (const event of stream) {
|
||||
const { type, data } = event;
|
||||
const messageId = data.id;
|
||||
let message: Message | undefined;
|
||||
if (type === "tool_call_result") {
|
||||
message = findMessageByToolCallId(data.tool_call_id);
|
||||
} else if (!existsMessage(messageId)) {
|
||||
message = {
|
||||
id: messageId,
|
||||
threadId: data.thread_id,
|
||||
agent: data.agent,
|
||||
role: data.role,
|
||||
content: "",
|
||||
contentChunks: [],
|
||||
isStreaming: true,
|
||||
interruptFeedback,
|
||||
return {
|
||||
...settings.general,
|
||||
mcpSettings,
|
||||
};
|
||||
appendMessage(message);
|
||||
}
|
||||
message ??= getMessage(messageId);
|
||||
if (message) {
|
||||
message = mergeMessage(message, event);
|
||||
updateMessage(message);
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
setOngoingResearchId(null);
|
||||
} finally {
|
||||
setResponding(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function setResponding(value: boolean) {
|
||||
useStore.setState({ responding: value });
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user