Skip to content
This repository has been archived by the owner on Nov 24, 2024. It is now read-only.

Commit

Permalink
Download model from github-raw
Browse files Browse the repository at this point in the history
  • Loading branch information
siuank committed Feb 25, 2024
1 parent c898a2b commit bef05ca
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 4 deletions.
7 changes: 7 additions & 0 deletions src/main/kotlin/ltd/guimc/lgzbot/command/LGZBotCommand.kt
Original file line number Diff line number Diff line change
Expand Up @@ -136,4 +136,11 @@ object LGZBotCommand : CompositeCommand(
LL4JUtils.learn(type, string)
sendMessage("Done.")
}

@SubCommand("downloadModel")
@Description("从ADDetector仓库下载模型")
suspend fun CommandSender.llIIllIIllI() {
sendMessage("Downloading (current: ${LL4JUtils.version})")
LL4JUtils.downloadModel()
}
}
18 changes: 15 additions & 3 deletions src/main/kotlin/ltd/guimc/lgzbot/utils/LL4JUtils.kt
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
package ltd.guimc.lgzbot.utils

import huzpsb.ll4j.utils.data.DataSet
import huzpsb.ll4j.model.Model
import huzpsb.ll4j.nlp.token.Tokenizer
import huzpsb.ll4j.utils.data.DataSet
import java.io.BufferedReader
import java.io.InputStreamReader

object LL4JUtils {
lateinit var model: Model
lateinit var tokenizer: Tokenizer
var version = "FEB25"

fun init() {
val tokenizerFile = LL4JUtils.javaClass.getResourceAsStream("/ts.model")!!
val modelFile = LL4JUtils.javaClass.getResourceAsStream("/anti-ad.model")!!
tokenizer = Tokenizer.load(tokenizerFile)
model = Model.read(BufferedReader(InputStreamReader(modelFile)))
tokenizer = Tokenizer.load(tokenizerFile.bufferedReader(Charsets.UTF_8))
modelFile.bufferedReader(Charsets.UTF_8).use {
model = Model.read(it)
}
}

fun predict(string: String): Boolean =
Expand All @@ -31,4 +34,13 @@ object LL4JUtils {
dataSet.split.add(tokenizer.tokenize(type, string.replace("\n", "")))
model.trainOn(dataSet)
}

fun downloadModel() {
try {
model = Model.read(HttpUtils.getResponse("https://raw.githubusercontent.com/siuank/ADDetector4J/main/anti-ad.model"))
tokenizer = Tokenizer.load(HttpUtils.getResponse("https://raw.githubusercontent.com/siuank/ADDetector4J/main/t1.tokenized.txt").reader())
val time = GithubUtils.getLastCommit("siuank/ADDetector4J").commitTime
version = "${time.month.name.substring(0..3)}${time.dayOfMonth}"
} catch (_: Exception) {}
}
}
5 changes: 4 additions & 1 deletion src/test/java/Test.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import ltd.guimc.lgzbot.utils.LL4JUtils;

import java.nio.charset.Charset;
import java.util.Arrays;

public class Test {
public static void main(String[] args) {
LL4JUtils.INSTANCE.init();
System.out.println(Arrays.toString(LL4JUtils.INSTANCE.predictAllResult("")));
System.out.println(Charset.defaultCharset());
System.out.println(Arrays.toString(LL4JUtils.INSTANCE.predictAllResult("shop.nyaproxy.xyz 1+ 21+NFA补货出mc美区激活码")));
System.out.println(LL4JUtils.INSTANCE.getModel().predict(LL4JUtils.INSTANCE.getTokenizer().tokenize(0, "shop.nyaproxy.xyz 1+ 21+NFA补货出mc美区激活码").values));
}
}

0 comments on commit bef05ca

Please sign in to comment.