背景:
- 根据前面的文章,我们使用了anythingLLM搭建了本地知识库,这个虽然基本可以用了,但是你只能在anythingLLM的界面里面进行提问,自能自己用,那么能否让其他人也可以使用我们搭建的本地知识库呢
- 根据我的了解,anythingLLM本身提供了API,一开始并不了解怎么用,经过一系列的研究,和文档阅读学习,并且经过实践验证,可以通过网络接入了本地知识库,并且可以使用知识库的附件文档来回答问题,我在做了一个梳理和总结,如有不足欢迎批评指正。
测试工具: apipost,直接去官网下载即可。
测试环境: 已经安装了anythingLLM,配置了本地知识库,并且已经加载的内部文件的机器。如果没有处理,可以参考之前的本地知识库搭建的博客。
-
1.在anythingLLM生成apikey
-
-
-
-
2.阅读api文档
可以直接关掉不用logout
这个小锁锁上即可。
往下拉久可以看到anythingLLM支持的api
我主要需要的是获取工作区ID和线程ID
我们找到workspaces部分
先使用获取工作区的api
直接往下拉就可以看到curl的执行结果,但这里例子和实际数据混在一起特别难看,而且我们需要的不是本地查看,是网络查看,需要借助http调试的相关工具,我这里使用apipost
这个curl的部分就是我们需要的内容
安装并打开apipost
选择curl导入
这里会自动加载,直接按发送看应答
这里就可以返回你的工作区信息
在里面需要找到
“slug”: “7b”,
“chatMode”: “query”,
“threads”: [
{
“user_id”: null,
“slug”: “41fd396b-d43a-40c6-b47d-1851b47ab5e8”,
“name”: “Thread”
}
]
注意如果工作区没有创建threads,需要创建一个
接下来使用thread里面的chat接口
注意改一下这几个部分
一样在apipost里面导入curl
可以看到回答的是依据我本地库的故障码表的内容。
到这里就算完成了初步测试
如果细心的人可以发现两个curl的指令都是使用的localhost,端口是3001
如果是局域网内容不同机器访问,可以把localhost改为安装了anythingllm的电脑或者服务器,作为局域网内访问。
如果想要公网访问,可以使用内网映射的方式到外网,映射http协议,映射参数填anythingLLM电脑的ip和端口,外网也可以访问。
到这个地方,再开发一个上位机,包装一下相关的命令和解析,就可以作为一个内网智能知识库助理了。