Update version to v1.1.0

Add timeout config
Add Forward messages when the text is too long
This commit is contained in:
2024-07-29 10:24:36 +08:00
parent 7c26c8e590
commit a6bd48aa4e
4 changed files with 32 additions and 8 deletions

View File

@ -1,5 +1,5 @@
plugins { plugins {
val kotlinVersion = "1.8.10" val kotlinVersion = "1.9.24"
kotlin("jvm") version kotlinVersion kotlin("jvm") version kotlinVersion
kotlin("plugin.serialization") version kotlinVersion kotlin("plugin.serialization") version kotlinVersion
@ -7,15 +7,15 @@ plugins {
} }
group = "top.jie65535.mirai" group = "top.jie65535.mirai"
version = "1.0.0" version = "1.1.0"
repositories { repositories {
mavenCentral() mavenCentral()
maven("https://maven.aliyun.com/repository/public") maven("https://maven.aliyun.com/repository/public")
} }
val openaiClientVersion = "3.6.2" val openaiClientVersion = "3.8.2"
val ktorVersion = "2.3.7" val ktorVersion = "2.3.12"
dependencies { dependencies {
implementation("com.aallam.openai:openai-client:$openaiClientVersion") implementation("com.aallam.openai:openai-client:$openaiClientVersion")

View File

@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-bin.zip

View File

@ -3,6 +3,8 @@ package top.jie65535.mirai
import com.aallam.openai.api.chat.ChatCompletionRequest import com.aallam.openai.api.chat.ChatCompletionRequest
import com.aallam.openai.api.chat.ChatMessage import com.aallam.openai.api.chat.ChatMessage
import com.aallam.openai.api.chat.ChatRole import com.aallam.openai.api.chat.ChatRole
import com.aallam.openai.api.core.Role
import com.aallam.openai.api.http.Timeout
import com.aallam.openai.api.model.ModelId import com.aallam.openai.api.model.ModelId
import com.aallam.openai.client.OpenAI import com.aallam.openai.client.OpenAI
import com.aallam.openai.client.OpenAIHost import com.aallam.openai.client.OpenAIHost
@ -23,12 +25,13 @@ import net.mamoe.mirai.message.data.*
import net.mamoe.mirai.message.data.MessageSource.Key.quote import net.mamoe.mirai.message.data.MessageSource.Key.quote
import net.mamoe.mirai.message.sourceIds import net.mamoe.mirai.message.sourceIds
import net.mamoe.mirai.utils.info import net.mamoe.mirai.utils.info
import kotlin.time.Duration.Companion.milliseconds
object JChatGPT : KotlinPlugin( object JChatGPT : KotlinPlugin(
JvmPluginDescription( JvmPluginDescription(
id = "top.jie65535.mirai.JChatGPT", id = "top.jie65535.mirai.JChatGPT",
name = "J ChatGPT", name = "J ChatGPT",
version = "1.0.0", version = "1.1.0",
) { ) {
author("jie65535") author("jie65535")
} }
@ -57,8 +60,10 @@ object JChatGPT : KotlinPlugin(
} }
fun updateOpenAiToken(token: String) { fun updateOpenAiToken(token: String) {
val timeout = PluginConfig.timeout.milliseconds
openAi = OpenAI(token, openAi = OpenAI(token,
host = OpenAIHost(baseUrl = PluginConfig.openAiApi) host = OpenAIHost(baseUrl = PluginConfig.openAiApi),
timeout = Timeout(request = timeout, connect = timeout, socket = timeout)
) )
} }
@ -135,7 +140,23 @@ object JChatGPT : KotlinPlugin(
} }
val reply = chatCompletion(history) val reply = chatCompletion(history)
history.add(reply) history.add(reply)
val replyMsg = subject.sendMessage(message.quote() + (reply.content ?: "...")) val content = reply.content ?: "..."
val replyMsg = subject.sendMessage(
if (content.length < 100) {
message.quote() + content
} else {
// 消息内容太长则转为转发消息避免刷屏
buildForwardMessage {
for (item in history) {
when (item.role) {
Role.User -> sender says (item.content ?: "...")
Role.Assistant -> bot says (item.content ?: "...")
}
}
}
}
)
val msgId = replyMsg.sourceIds[0] val msgId = replyMsg.sourceIds[0]
replyMap[msgId] = history replyMap[msgId] = history
replyQueue.add(msgId) replyQueue.add(msgId)

View File

@ -22,4 +22,7 @@ object PluginConfig : AutoSavePluginConfig("Config") {
@ValueDescription("好友是否自动拥有对话权限,默认是") @ValueDescription("好友是否自动拥有对话权限,默认是")
val friendHasChatPermission: Boolean by value(true) val friendHasChatPermission: Boolean by value(true)
@ValueDescription("等待响应超时时间单位毫秒默认60秒")
val timeout: Long by value(60000L)
} }