admin
2024 年12 月 15 日 14:43
1
介绍
知识库通常用于将文件切片,然后进行向量化保存
可以通过直接的文本查询,根据向量相似度返回一定量匹配的内容(较快),或者将返回匹配的内容插入到模型的提示词中,由模型进行总结
字典与知识库一样,只不过字典是一个比较独立的文件,一般一个至少几千条甚至几十万条,所以需要单独导入
但是字典有一个好处就是几乎不用切片,每一个词条的长度都不太长,这样搜索的时候也就能搜索到比较准确的结果
字典的内容不可更改,主要原因是部分字典是富文本/html等格式的,并且有的还携带图片,所以既要允许编辑又要正常显示是比较困难的
图谱型知识库并不在本帖中涉猎,将会单独讲解
图索引知识库 - #9,来自 admin
创建知识库
指定知识库名和分隔长度即可
词条嵌入模板用来修改嵌入时的文本,默认就是切片内容,可以不做修改
可以鼠标悬停查看模板格式
向知识库导入内容
支持纯文本,srt,csv,pptx, odt, odp, ods, pdf, docx, epub,xlsx导入
纯文本支持utf8及其他编码猜测(gb2312,gbk)
部分文件导入时会拆分为多个子文件
比如pdf,epub
导入字典
字典的导入和创建是一体的
目前支持mdict/stardict,dsl字典
命名,分隔长度,模板与知识库一致
图片检索表示会将字典内的图片进行OCR识别,将识别的文本替换原来的图片进行嵌入
不管是否开启此功能,图片在词条中都正常显示
目前ocr识别使用的是cpu计算,所以如果字典中有大量图片的话处理较慢
由于词条的文件过多,所以无明确需求的话不推荐写入,不影响查询和显示
你可以从以下网站获取字典资源,如果有更好的下载网站欢迎推荐
startdict
mdict
字典/知识库查询
默认情况下,直接输入即可查询返回结果
限定查询某一字典及条数
未来可能会修改字段名,方便知识库和字典分开配置
list为空表示查询所有值
"shenghuabi.knowledge.query": {
"limit": 10,
"list": []
},
使用模型总结
向知识库查询的值和对话中提问的值可以是两个不同的变量(模板)
不过一般都设置相同值减少一次输入
文章类型
允许将文章(当前工作区)写入数据库中,然后通过文本查询
查询前需要最好保证知识库是最新内容(右下角同步更新)
知识库的导入与导出
将文件导入知识库后,再将整个库导出
导入/导出适用于普通的知识库,图谱知识库,字典
之前字典的导入指的是将其他类型的字典导入到知识库中
导出格式为tar.gz,内部有元数据及完整的qdrant数据库快照
没有转换为其他格式是因为导出的数据库包含向量数据,并且导出格式可以直接导入数据库,方便开发
导出压缩包及数据库并没有进行加密,所以也可以通过编程的方式自行处理
alien
2025 年1 月 1 日 08:41
3
知识库创建不成功,下面的报错可能是哪里的问题?请大佬指点一下
[knowledge.create] TypeError: fetch failed at node:internal/deps/undici/undici:13392:13 at async globalThis.fetch (file:///d:/Programs/ShengHuaBi/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:159:19800) at async bho (d:\Programs\ShengHuaBi\resources\app\extensions\shenghuabi\index.js:2915:3499) at async d:\Programs\ShengHuaBi\resources\app\extensions\shenghuabi\index.js:2917:542 at async r (d:\Programs\ShengHuaBi\resources\app\extensions\shenghuabi\index.js:2915:3748) at async d:\Programs\ShengHuaBi\resources\app\extensions\shenghuabi\index.js:2917:363 at async r (d:\Programs\ShengHuaBi\resources\app\extensions\shenghuabi\index.js:2915:3748) at async who (d:\Programs\ShengHuaBi\resources\app\extensions\shenghuabi\index.js:2915:3856) at async Object.e [as createCollection] (d:\Programs\ShengHuaBi\resources\app\extensions\shenghuabi\index.js:2915:3921) at async eqe.createCollection (d:\Programs\ShengHuaBi\resources\app\extensions\shenghuabi\index.js:2918:7838)...
admin
2025 年1 月 1 日 15:15
4
额.怎么也是这个问题…您可以去阿里云盘下载1.95.18版本
本以为是个例没想到还能复现…但是这个在我自己的电脑就复现不出来蛋疼
这个问题是我为了修另一个Bug导致的.之前把请求头连接改成了close,防止短时间内请求过多,本机测试没问题,但是好像并不是每个人都正常.1.95.18改回来了(但是没设为最新版本,因为当时以为是个例)
1 个赞
admin
2025 年1 月 3 日 00:54
7
请问您在安装过程中系统是否存在杀毒软件/防火墙提示某个应用使用网络之类的,如果有请放行,或者关闭杀毒软件再尝试
如果您不放心的话也可以到这里自行下载数据库(1.12.3,后两个版本有bug正在联系官方解决)
alien
2025 年1 月 3 日 11:43
8
刚刚把杀毒软件直接关掉了,还是同样的错误。日志如下:
向量数据库:运行中
2025-01-03 19:40:04.393 [info] 已安装
2025-01-03 19:40:04.396 [info] _ _
__ _ __| |_ __ __ _ _ __ | |_
/ _` |/ _` | '__/ _` | '_ \| __|
| (_| | (_| | | | (_| | | | | |_
\__, |\__,_|_| \__,_|_| |_|\__|
|_|
Version: 1.12.1, build: 9c20e9e2
Access web UI at http://localhost:6333/dashboard
2025-01-03 19:40:04.397 [info] 2025-01-03T11:40:04.396046Z WARN qdrant::settings: Config file not found: config/config
2025-01-03T11:40:04.396086Z WARN qdrant::settings: Config file not found: config/development
2025-01-03T11:40:04.396538Z INFO storage::content_manager::consensus::persistent: Loading raft state from ./storage\raft_state.json
2025-01-03 19:40:04.399 [info] 2025-01-03T11:40:04.399452Z WARN storage::content_manager::toc: Collection config is not found in the collection directory: ./storage\collections\article, skipping
2025-01-03 19:40:04.400 [info] 2025-01-03T11:40:04.399559Z WARN storage::content_manager::toc: Collection config is not found in the collection directory: ./storage\collections\啊啊, skipping
2025-01-03T11:40:04.399833Z WARN storage::content_manager::toc: Collection config is not found in the collection directory: ./storage\collections\看看, skipping
2025-01-03 19:40:04.402 [info] 2025-01-03T11:40:04.402180Z INFO qdrant: Distributed mode disabled
2025-01-03T11:40:04.402213Z INFO qdrant: Telemetry reporting enabled, id: 133d41ef-a6e2-46af-a2b8-766300755303
2025-01-03 19:40:04.404 [info] 2025-01-03T11:40:04.403879Z WARN qdrant::actix::web_ui: Static content folder for Web UI './static' does not exist
2025-01-03T11:40:04.403957Z INFO qdrant::actix: TLS disabled for REST API
2025-01-03 19:40:04.492 [info] 2025-01-03T11:40:04.410364Z INFO qdrant::tonic: Qdrant gRPC listening on 6334
2025-01-03T11:40:04.410393Z INFO qdrant::tonic: TLS disabled for gRPC API
2025-01-03T11:40:04.412771Z INFO qdrant::actix: Qdrant HTTP listening on 6333
2025-01-03T11:40:04.412809Z INFO actix_server::builder: Starting 15 workers
2025-01-03T11:40:04.412826Z INFO actix_server::server: Actix runtime found; starting in Actix runtime
2025-01-03 19:40:04.494 [info] 向量数据库启动成功
2025-01-03 19:40:43.468 [info] 2025-01-03T11:40:43.467809Z INFO storage::content_manager::toc::collection_meta_ops: Creating collection ttt
文本到向量模型:内置
2025-01-03 19:40:42.706 [info] 初始化...设备: cpu,模型: Xenova/bge-base-zh-v1.5,类型: q8
2025-01-03 19:40:43.253 [info] 知识库配置:{"name":"ttt","type":"knowledge","graphIndex":false,"collectionList":[{"embedding":{"type":"transformers","model":"Xenova/bge-base-zh-v1.5","size":768,"baseURL":"http://127.0.0.1:11434/v1","dtype":"q8","device":"cpu"},"chunkSize":100,"collectionName":"ttt","embeddingTemplate":{"entry":{"value":"","enable":false}}}],"activateCollection":"ttt","embedding":{"type":"transformers","model":"Xenova/bge-base-zh-v1.5","size":768,"baseURL":"http://127.0.0.1:11434/v1","dtype":"q8","device":"cpu"},"chunkSize":100,"collectionName":"ttt","embeddingTemplate":{"entry":{"value":"","enable":false}}}
2025-01-03 19:40:43.269 [info] 准备创建知识库:ttt
2025-01-03 19:40:43.269 [info] 创建集合:ttt;嵌入长度:768
admin
2025 年1 月 3 日 11:51
9
你试试升级下qdrant?(还是原来下载的位置,当然我估计不是这个问题…)
这个是不是创建后很快就失败了?
目前感觉挺诡异的,就是确实请求发送过去了,(因为显示之前创建的数据库文件夹,但是没创建全).
但是又发出了一个普通的请求失败异常…由于数据库不是我开发的我也不太好排查
明天我开一台虚拟机试试是哪里的问题
1 个赞
alien
2025 年1 月 3 日 12:13
10
用新版的手动在cmd运行,可以观察到collection创建过程中qdrant挂掉了
D:\ShengHuaBi-Conf\qdrant>qdrant.exe
e[1;31m _ _ e[0m
e[1;31m __ _ __| |_ __ __ _ _ __ | |_ e[0m
e[1;31m / _` |/ _` | '__/ _` | '_ \| __| e[0m
e[1;31m| (_| | (_| | | | (_| | | | | |_ e[0m
e[1;31m \__, |\__,_|_| \__,_|_| |_|\__| e[0m
e[1;31m |_| e[0m
e[32mVersion:e[0m e[1;34m1.12.5e[0m, e[32mbuild:e[0m e[1;34m27260abde[0m
e[32mAccess web UI ate[0m e[1;4;34mhttp://localhost:6333/dashboarde[0m
e[2m2025-01-03T12:10:16.972368Ze[0m e[33m WARNe[0m e[2mqdrant::settingse[0me[2m:e[0m Config file not found: config/config
e[2m2025-01-03T12:10:16.972588Ze[0m e[33m WARNe[0m e[2mqdrant::settingse[0me[2m:e[0m Config file not found: config/development
e[2m2025-01-03T12:10:16.973251Ze[0m e[32m INFOe[0m e[2mstorage::content_manager::consensus::persistente[0me[2m:e[0m Loading raft state from ./storage\raft_state.json
e[2m2025-01-03T12:10:16.976571Ze[0m e[33m WARNe[0m e[2mstorage::content_manager::toce[0me[2m:e[0m Collection config is not found in the collection directory: ./storage\collections\article, skipping
e[2m2025-01-03T12:10:16.976944Ze[0m e[33m WARNe[0m e[2mstorage::content_manager::toce[0me[2m:e[0m Collection config is not found in the collection directory: ./storage\collections\ttt, skipping
e[2m2025-01-03T12:10:16.977570Ze[0m e[33m WARNe[0m e[2mstorage::content_manager::toce[0me[2m:e[0m Collection config is not found in the collection directory: ./storage\collections\ttt1, skipping
e[2m2025-01-03T12:10:16.977991Ze[0m e[33m WARNe[0m e[2mstorage::content_manager::toce[0me[2m:e[0m Collection config is not found in the collection directory: ./storage\collections\啊啊, skipping
e[2m2025-01-03T12:10:16.978278Ze[0m e[33m WARNe[0m e[2mstorage::content_manager::toce[0me[2m:e[0m Collection config is not found in the collection directory: ./storage\collections\看看, skipping
e[2m2025-01-03T12:10:16.980216Ze[0m e[32m INFOe[0m e[2mqdrante[0me[2m:e[0m Distributed mode disabled
e[2m2025-01-03T12:10:16.980379Ze[0m e[32m INFOe[0m e[2mqdrante[0me[2m:e[0m Telemetry reporting enabled, id: ffc55947-7926-42fd-9304-b3b0d6b34b27
e[2m2025-01-03T12:10:16.980904Ze[0m e[32m INFOe[0m e[2mqdrante[0me[2m:e[0m Inference service is not configured.
e[2m2025-01-03T12:10:16.983500Ze[0m e[33m WARNe[0m e[2mqdrant::actix::web_uie[0me[2m:e[0m Static content folder for Web UI './static' does not exist
e[2m2025-01-03T12:10:16.983677Ze[0m e[32m INFOe[0m e[2mqdrant::actixe[0me[2m:e[0m TLS disabled for REST API
e[2m2025-01-03T12:10:16.989217Ze[0m e[32m INFOe[0m e[2mqdrant::tonice[0me[2m:e[0m Qdrant gRPC listening on 6334
e[2m2025-01-03T12:10:16.990524Ze[0m e[32m INFOe[0m e[2mqdrant::tonice[0me[2m:e[0m TLS disabled for gRPC API
e[2m2025-01-03T12:10:16.991725Ze[0m e[32m INFOe[0m e[2mqdrant::actixe[0me[2m:e[0m Qdrant HTTP listening on 6333
e[2m2025-01-03T12:10:16.993983Ze[0m e[32m INFOe[0m e[2mactix_server::buildere[0me[2m:e[0m Starting 15 workers
e[2m2025-01-03T12:10:16.994466Ze[0m e[32m INFOe[0m e[2mactix_server::servere[0me[2m:e[0m Actix runtime found; starting in Actix runtime
e[2m2025-01-03T12:10:20.647649Ze[0m e[32m INFOe[0m e[2mstorage::content_manager::toc::collection_meta_opse[0me[2m:e[0m Creating collection ttt1
D:\ShengHuaBi-Conf\qdrant>
admin
2025 年1 月 3 日 12:19
12
假如您是win10及以上的设备(以下不支持…);试下玄学?
1 个赞
alien
2025 年1 月 3 日 12:25
13
玄学真的好使,装完qdrant就不会挂了。之前好像看到您提过redist,但怎么也没想到我这个跟其有关
感谢感谢
1 个赞