mirror of
https://github.com/jie65535/JChatGPT.git
synced 2026-02-02 20:18:10 +08:00
Add maxToolOutputLength config
This commit is contained in:
@@ -481,6 +481,17 @@ object JChatGPT : KotlinPlugin(
|
|||||||
|
|
||||||
private val thinkRegex = Regex("<think>[\\s\\S]*?</think>")
|
private val thinkRegex = Regex("<think>[\\s\\S]*?</think>")
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 截断过长的工具输出,并添加省略标记
|
||||||
|
*/
|
||||||
|
private fun truncateToolOutput(content: String, maxLength: Int = PluginConfig.maxToolOutputLength): String {
|
||||||
|
if (content.length <= maxLength) return content
|
||||||
|
|
||||||
|
val truncated = content.take(maxLength)
|
||||||
|
val marker = "\n\n[系统提示:因内容过长,部分内容已被省略]"
|
||||||
|
return truncated + marker
|
||||||
|
}
|
||||||
|
|
||||||
private suspend fun startChat(event: MessageEvent) {
|
private suspend fun startChat(event: MessageEvent) {
|
||||||
if (!requestMap.add(event.subject.id)) {
|
if (!requestMap.add(event.subject.id)) {
|
||||||
logger.warning("The current Contact is busy!")
|
logger.warning("The current Contact is busy!")
|
||||||
@@ -880,6 +891,13 @@ object JChatGPT : KotlinPlugin(
|
|||||||
"工具调用失败,请尝试自行回答用户,或如实告知。\n异常信息:${e.message}"
|
"工具调用失败,请尝试自行回答用户,或如实告知。\n异常信息:${e.message}"
|
||||||
}
|
}
|
||||||
logger.info("Result=\"$result\"")
|
logger.info("Result=\"$result\"")
|
||||||
|
|
||||||
|
// 截断过长的工具输出
|
||||||
|
val truncatedResult = truncateToolOutput(result)
|
||||||
|
if (truncatedResult.length != result.length) {
|
||||||
|
logger.warning("工具 ${function.name} 返回内容过长,已从 ${result.length} 字符截断至 ${truncatedResult.length} 字符")
|
||||||
|
}
|
||||||
|
|
||||||
// 过会撤回加载消息
|
// 过会撤回加载消息
|
||||||
if (receipt != null) {
|
if (receipt != null) {
|
||||||
launch {
|
launch {
|
||||||
@@ -895,7 +913,7 @@ object JChatGPT : KotlinPlugin(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result
|
return truncatedResult
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -119,4 +119,7 @@ object PluginConfig : AutoSavePluginConfig("Config") {
|
|||||||
|
|
||||||
@ValueDescription("请求主人回复等待时间,单位毫秒,默认300秒")
|
@ValueDescription("请求主人回复等待时间,单位毫秒,默认300秒")
|
||||||
val requestOwnerWaitTimeout: Long by value(300000L)
|
val requestOwnerWaitTimeout: Long by value(300000L)
|
||||||
|
|
||||||
|
@ValueDescription("单个工具调用返回内容的最大字符数,超过将被截断并标注")
|
||||||
|
val maxToolOutputLength: Int by value(15000)
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user