add supoort subagent router via <CCR-SUBAGENT-MODEL>
This commit is contained in:
@@ -23,9 +23,7 @@ const calculateTokenCount = (
|
|||||||
if (contentPart.type === "text") {
|
if (contentPart.type === "text") {
|
||||||
tokenCount += enc.encode(contentPart.text).length;
|
tokenCount += enc.encode(contentPart.text).length;
|
||||||
} else if (contentPart.type === "tool_use") {
|
} else if (contentPart.type === "tool_use") {
|
||||||
tokenCount += enc.encode(
|
tokenCount += enc.encode(JSON.stringify(contentPart.input)).length;
|
||||||
JSON.stringify(contentPart.input)
|
|
||||||
).length;
|
|
||||||
} else if (contentPart.type === "tool_result") {
|
} else if (contentPart.type === "tool_result") {
|
||||||
tokenCount += enc.encode(
|
tokenCount += enc.encode(
|
||||||
typeof contentPart.content === "string"
|
typeof contentPart.content === "string"
|
||||||
@@ -71,9 +69,30 @@ const getUseModel = async (req: any, tokenCount: number, config: any) => {
|
|||||||
// if tokenCount is greater than the configured threshold, use the long context model
|
// if tokenCount is greater than the configured threshold, use the long context model
|
||||||
const longContextThreshold = config.Router.longContextThreshold || 60000;
|
const longContextThreshold = config.Router.longContextThreshold || 60000;
|
||||||
if (tokenCount > longContextThreshold && config.Router.longContext) {
|
if (tokenCount > longContextThreshold && config.Router.longContext) {
|
||||||
log("Using long context model due to token count:", tokenCount, "threshold:", longContextThreshold);
|
log(
|
||||||
|
"Using long context model due to token count:",
|
||||||
|
tokenCount,
|
||||||
|
"threshold:",
|
||||||
|
longContextThreshold
|
||||||
|
);
|
||||||
return config.Router.longContext;
|
return config.Router.longContext;
|
||||||
}
|
}
|
||||||
|
if (
|
||||||
|
req.body?.system?.length > 1 &&
|
||||||
|
req.body?.system[1]?.text?.startsWith("<CCR-SUBAGENT-MODEL>")
|
||||||
|
) {
|
||||||
|
const model = req.body?.system[1].text.match(
|
||||||
|
/<CCR-SUBAGENT-MODEL>(.*?)<\/CCR-SUBAGENT-MODEL>/s
|
||||||
|
);
|
||||||
|
if (model) {
|
||||||
|
log("检测到CCR-SUBAGENT-MODEL:", model[1]);
|
||||||
|
req.body.system[1].text = req.body.system[1].text.replace(
|
||||||
|
`<CCR-SUBAGENT-MODEL>${model[1]}</CCR-SUBAGENT-MODEL>`,
|
||||||
|
""
|
||||||
|
);
|
||||||
|
return model[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
// If the model is claude-3-5-haiku, use the background model
|
// If the model is claude-3-5-haiku, use the background model
|
||||||
if (
|
if (
|
||||||
req.body.model?.startsWith("claude-3-5-haiku") &&
|
req.body.model?.startsWith("claude-3-5-haiku") &&
|
||||||
|
|||||||
Reference in New Issue
Block a user