知识计算搜索引擎 Wolfram|Alpha 接口
-
wolframalpha4mirai
WolframAlpha 是开发计算数学应用软件的沃尔夫勒姆研究公司开发出的新一代的搜索引擎,能根据问题直接给出答案的网站,于2009年5月15日晚7点(美国中部当地时间,北京时间5月16日上午8点)提前上线,用户在搜索框键入需要查询的问题后,该搜索引擎将直接向用户返回答案,而不是返回一大堆网页链接。
来自百度百科这是一个将 wolframalpha api 接入 mirai 的插件
添加后, 你可以在 qq 里直接向 wolframalpha 发出查询请求使用方法
- 将 release 下的 wolframalpha-1.4.jar 文件下载并放入 mirai 运行目录下的
plugins\
文件夹 - 前往 此处 按照提示获取一个 appid
- 启动一次 mirai 并关闭, 或者你也可以在
config\
下新建bot.query.wolframalpha.whiter\config.yml
文件 - 按照如下方式编辑
config.yml
# wolfram|alpha 的 appid, 前往 https://developer.wolframalpha.com/portal/myapps/index.html 获得 appid: 'your appid' # 触发前缀, 为空时是两个单引号 prefix: '' # 当发生错误时的提示信息 error_msg: '' # 图片与文本的分割线, 为空时是 ---------, 填 empty 时为空白字符 separation_line: '' # 是否构建转发消息 isForward: true
- 启动 mirai
效果
注意事项
- 由于 wolframalpha 不支持非英文(但好像支持日文), 所以当输入消息中含有非英文字符时可能会导致未知错误
- 若出现类似如下报错
E/bot.query.wolframalpha.whiter: Exception in coroutine Plugin whiter.bot.wolframalpha of whiter.bot.wolframalpha java.lang.NoClassDefFoundError: org/json/JSONObject at bot.query.wolframalpha.whiter.Wolframalpha.query(Wolframalpha.kt:57)
为缺少
org.json
包导致的找不到类的错误可以在
plugin-shared-libraries/libraries.txt
追加以下内容解决org.json:json:20220320
- 将 release 下的 wolframalpha-1.4.jar 文件下载并放入 mirai 运行目录下的
-
求助!发生如下错误:
2022-01-14 06:21:14 I/stdout: ''sinx
2022-01-14 06:21:14 E/whiter.bot.wolframalpha: Exception in coroutine Plugin whiter.bot.wolframalpha of whiter.bot.wolframalpha
java.lang.NoClassDefFoundError: org/json/JSONObject
at whiter.bot.Wolframalpha.query(Wolframalpha.kt:57)
at whiter.bot.Wolframalpha$onEnable$2.invokeSuspend(Wolframalpha.kt:41)
at whiter.bot.Wolframalpha$onEnable$2.invoke(Wolframalpha.kt)
at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invokeSuspend(EventChannel.kt:432)
at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invoke(EventChannel.kt)
at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invoke(EventChannel.kt)
at net.mamoe.mirai.internal.event.Handler$onEvent$2.invokeSuspend(InternalEventListeners.kt:50)
at net.mamoe.mirai.internal.event.Handler$onEvent$2.invoke(InternalEventListeners.kt)
at net.mamoe.mirai.internal.event.Handler$onEvent$2.invoke(InternalEventListeners.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
at net.mamoe.mirai.internal.event.Handler.onEvent(InternalEventListeners.kt:50)
at net.mamoe.mirai.internal.event.InternalEventListenersKt.process(InternalEventListeners.kt:166)
at net.mamoe.mirai.internal.event.InternalEventListenersKt.callAndRemoveIfRequired(InternalEventListeners.kt:115)
at net.mamoe.mirai.internal.event.InternalEventListenersKt$callAndRemoveIfRequired$1.invokeSuspend(InternalEventListeners.kt)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.UndispatchedCoroutine.afterResume(CoroutineContext.kt:142)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Caused by: java.lang.ClassNotFoundException: org.json.JSONObject
at net.mamoe.mirai.console.internal.plugin.JvmPluginClassLoader.findClass$mirai_console(JvmPluginClassLoader.kt:110)
at net.mamoe.mirai.console.internal.plugin.JvmPluginClassLoader.findClass(JvmPluginClassLoader.kt:51)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) -
@wangzihan-2006
这是由于缺少了org.json
这个库导致的错误
下载这个wa4mwoj文件替换原来的插件即可 -
不错,挺有用的
-
@whiterasbk 好啦!感谢!
-
此回复已被删除! -
此回复已被删除! -
appid就是注册时的那个email吗?格式是什么?
-
@zyckk4 请问查询内容是什么呢
-
@ArbETaperingsky
格式是XXXXXX-XXXXXXXXXX
在这里申请
-
@whiterasbk 原来我也是appid的问题。为啥我这个页面这里没有这个appid按钮?
-
明白了,是不是要科学上网
-
@zyckk4 页面能显示出来就应该不是科学上网的问题,切换到
My Apps
下查看有没有get an appid
按钮 -
@whiterasbk 我这科学上网之后就有get那个键了,不然页面是啥都没有的。现在已经用上了,谢谢!
-
-
@ArbETaperingsky 在 wolframalpha搜索引擎接口 中说:
@whiterasbk 啊还是不行。。。id也拿到了
Y5PRHW-EVAVEH7GTR
但是重启之后输入''sinx什么也没有发生
我也是这样,且控制台没有任何报错提示。
启动时存在报错 但是之前没有影响其他功能过。 -
@LiferLifer 你是什么系统,我的服务器是Linux丢
-
@ArbETaperingsky 我是win64,又试了很多次发现小部分不响应,大部分响应但是调取信息后不返回,另一部分成功返回信息,或许是API的问题?
-
@ArbETaperingsky 我用你的appid通过本地测试了,你检查一下config.yml文件的内容, 是不是触发词配置错误了,如果可以的话将包含whiter.bot.wolframalpha字样的log日志附上
-
@LiferLifer 这个报错不是wolframalpha插件报的