diff --git a/src/main/kotlin/JChatGPT.kt b/src/main/kotlin/JChatGPT.kt index 629abc9..4fe265d 100644 --- a/src/main/kotlin/JChatGPT.kt +++ b/src/main/kotlin/JChatGPT.kt @@ -314,19 +314,20 @@ object JChatGPT : KotlinPlugin( return } - val history = mutableListOf() - if (PluginConfig.prompt.isNotEmpty()) { - val prompt = getSystemPrompt(event) - if (PluginConfig.logPrompt) { - logger.info("Prompt: $prompt") - } - history.add(ChatMessage(ChatRole.System, prompt)) - } - val historyText = getHistory(event) - logger.info("History: $historyText") - history.add(ChatMessage.User(historyText)) - try { + val history = mutableListOf() + if (PluginConfig.prompt.isNotEmpty()) { + val prompt = getSystemPrompt(event) + if (PluginConfig.logPrompt) { + logger.info("Prompt: $prompt") + } + history.add(ChatMessage(ChatRole.System, prompt)) + } + val historyText = getHistory(event) + logger.info("History: $historyText") + history.add(ChatMessage.User(historyText)) + + var done: Boolean // 至少循环3次 var retry = max(PluginConfig.retryMax, 3) @@ -387,13 +388,13 @@ object JChatGPT : KotlinPlugin( } else { done = false logger.warning("调用llm时发生异常,重试中", e) - event.subject.sendMessage(event.message.quote() + "出错了...正在重试...") + event.subject.sendMessage("出错了...正在重试...") } } } while (!done && 0 < --retry) } catch (ex: Throwable) { logger.warning(ex) - event.subject.sendMessage(event.message.quote() + "很抱歉,发生异常,请稍后重试") + event.subject.sendMessage("很抱歉,发生异常,请稍后重试") } finally { // 一段时间后才允许再次提问,防止高频对话 launch { @@ -728,7 +729,7 @@ object JChatGPT : KotlinPlugin( } else null val request = ChatCompletionRequest( model = ModelId(PluginConfig.chatModel), - temperature = 1.3, + temperature = PluginConfig.chatTemperature, messages = chatMessages, tools = availableTools, ) diff --git a/src/main/kotlin/PluginConfig.kt b/src/main/kotlin/PluginConfig.kt index e59608e..7d48c69 100644 --- a/src/main/kotlin/PluginConfig.kt +++ b/src/main/kotlin/PluginConfig.kt @@ -14,6 +14,9 @@ object PluginConfig : AutoSavePluginConfig("Config") { @ValueDescription("Chat模型") var chatModel: String by value("qwen-max") + @ValueDescription("Chat模型温度,默认为null") + var chatTemperature: Double? by value(null) + @ValueDescription("推理模型API") var reasoningModelApi: String by value("https://dashscope.aliyuncs.com/compatible-mode/v1/")