From ef25b06aab6686446e5c94bdc8067c58e67d2573 Mon Sep 17 00:00:00 2001 From: jie65535 Date: Sun, 22 Dec 2024 03:59:09 +0800 Subject: [PATCH] Add IP Address query --- src/main/kotlin/JChatGPT.kt | 3 ++- src/main/kotlin/tools/IpAddressQuery.kt | 33 +++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/main/kotlin/tools/IpAddressQuery.kt diff --git a/src/main/kotlin/JChatGPT.kt b/src/main/kotlin/JChatGPT.kt index b11946e..66940bc 100644 --- a/src/main/kotlin/JChatGPT.kt +++ b/src/main/kotlin/JChatGPT.kt @@ -279,7 +279,8 @@ object JChatGPT : KotlinPlugin( private val myTools = listOf( WebSearch(), WeatherService(), - CrazyKfc() + CrazyKfc(), + IpAddressQuery(), ) diff --git a/src/main/kotlin/tools/IpAddressQuery.kt b/src/main/kotlin/tools/IpAddressQuery.kt new file mode 100644 index 0000000..cf0faf8 --- /dev/null +++ b/src/main/kotlin/tools/IpAddressQuery.kt @@ -0,0 +1,33 @@ +package top.jie65535.mirai.tools + +import com.aallam.openai.api.chat.Tool +import com.aallam.openai.api.core.Parameters +import io.ktor.client.request.* +import io.ktor.client.statement.* +import kotlinx.serialization.json.* + +class IpAddressQuery : BaseAgent( + tool = Tool.function( + name = "ipAddressQuery", + description = "可查询IP地址归属地", + parameters = Parameters.buildJsonObject { + put("type", "object") + putJsonObject("properties") { + putJsonObject("ip") { + put("type", "string") + put("description", "IPv4地址") + } + } + putJsonArray("required") { + add("ip") + } + } + ) +) { + override suspend fun execute(args: JsonObject?): String { + requireNotNull(args) + val ip = args.getValue("ip").jsonPrimitive.content + val response = httpClient.get("https://api.52vmy.cn/api/query/itad?ip=$ip") + return response.bodyAsText() + } +} \ No newline at end of file