# Scholar
通过环境变量配置 PROJECT_DIR, 如果环境变量没有 PROJECT_DIR,则会在程序目录上级创建。
PROJECT_DIR/scholar下会存储
1、cache —— 缓存文件夹
2、library —— 所有转化过的txt文档
3、index —— 索引文件(包括 whoosh和faiss)
4、log文件
另外,在初始化的时候指定 initial_file_dir 文件夹,会自动添加这里面的文件(如果与index文件有重复,会跳过)。
如果需要完全重置文档库,需要吧library和index文件夹都删除。
list是根据index轮询的结果,与initial_file_dir和library无关。
## Scholar接口
```python
sr = Scholar()
# 动态调整阈值
# 排序topN
sr.ranker_topn = 3
# 高阈值,提供答案(高于阈值的取top1的answer)
sr.ranker_high_threshold = 0.5
# 低阈值,用于过滤(低于阈值的不要)
sr.ranker_low_threshold = 0.5
# 阈值在中间的,返回topn的topic
# 本地验证
LOG = DEBUG
python
from scholar.scholar import Scholar
sr = Scholar()
inp = "加装电梯代建单位是谁?"
sr.ask(inp)
```
## Scholar 测试
```python
# 可以通过下面接口测试:
sr = Scholar()
question = "xx如何办理"
topic, content, answer, score = sr.eval(question)
```
批量执行下面脚本:
```bash
python main_scholar.py -f /path/to/eval.xlsx -t
```
在此之前需要保证:
- `data/linfen_newfiles` 下面有所有的txt文件,用来建索引。
- 一个测试的 Excel 文件,至少包含一列名为「question」。
## Scholar(V0.0.4)对应的返回逻辑
以ranker model的打分为依据,
- 如果有高于sr.ranker_high_threshold的项目,直接返回该项目对应的answer,flag=0
- 如果没有高于sr.ranker_high_threshold的项目,但存在一个高于sr.ranker_low_threshold 的项目,返回该项目对应的的answer,flag=2
- 如果没有高于sr.ranker_high_threshold的项目,但存在多个高于sr.ranker_low_threshold 的项目:
- 如果这些项目的主题存在着重复部分,则我们会认为用户更加可能问的就是改主题对应的问题,会回复该主题下最前面的answer,flag=0
- 如果这些项目的主题都不一样,则会拼接所有contents,供给用户做澄清,flag=0
- 如果没有高于sr.ranker_low_threshold 的项目,那么会看是否有关键词召回项目,如果有的话,作为兜底,给出对应的的answer,flag=2
- 如果这也没有的话,则会返回空答案,flag=1
所以就结果而言:
- flag0 代表midplatform对于给出的内容很"自信",前端应该原样展示给用户;
- flag2 则代表midplatform对于给出的内容不那么"自信",仅供参考,前端可以按自己的策略处理;
- flag1 因为是空内容,所以前端应该自己配置话术。
~~# Speech
目前使用paddlespeech方案,支持标准女声或男声,如果使用男声需要将paddle speech升级到最新版本
另外,paddle asr 默认最大支持50s长度,
更改:找到pip package里面的这个文件PaddleSpeech/paddlespeech/cli/asr/infer.py
把146行的 self.max_len=50 改成 self.max_len=100 (这个是asr的最大识别长度,如果你的音频长度超过了这个值,就会报错)~~
# 开发环境
- 如果本地没有 GPU,需要安装 requirements_dev.txt 中的 paddlepaddle
- 如需DEBUG,启动main方法时可添加配置项:`LOG=DEBUG python main_scholar.py`,否则不会打印中间结果
- 开发完成请运行测试:`make test`
- 每次启动时索引不会重建(会使用历史记录),如需重建索引,可删除 `index` 和 `library` 文件夹,或执行 `make clean`
- 更新了index所在路径(比如更改了PROJECT_DIR),需要删除 `index` 和 `library` 文件夹,或执行 `make clean`,然后重新运行 `make index`
# 更新日志
- `20230518` v0.0.8
- 适配innovation版本,增加LLM,以及基于LLM的skill和Agent架构
- `20230512` v0.0.7
- 更新shcolar模块、模型微调,提升查询效率,支持个性化查询
- `20230328` v0.0.6
- 增加对话分类模型及接口。需将模型放在根目录的`models`文件夹下。目录树为:
```bash
models
├── senta
│ ├── best.pdparams
│ └── export
│ ├── inference.pdiparams
│ ├── inference.pdiparams.info
│ └── inference.pdmodel
└── text_cls
└── export
├── id2label.json
├── model.pdiparams
├── model.pdiparams.info
├── model.pdmodel
├── special_tokens_map.json
├── tokenizer_config.json
└── vocab.txt
```
- `20230318` v0.0.5
- 增加情感分类模型及接口。需将模型放在根目录的`models`文件夹下。目录树为:
```bash
❯ tree models
models
└── senta
├── best.pdparams
└── export
├── inference.pdiparams
├── inference.pdiparams.info
└── inference.pdmodel
```
- `20230305` v0.0.4
- scholar 低阈值-高阈值之间返回逻辑优化:多个 topic 时使用澄清机制;单个 topic 时直接返回第一个结果的答案。注意,单个 topic 包含两种情况:多条记录同一个 topic;只有一条记录。
- scholar 返回逻辑优化:[需求1_一问多答的前端展示规则 - Feishu Docs](https://yqeupxazxi.feishu.cn/docx/ZZNcdnxxQo5N54xoKfec4tbUn6g)
- scholar 按 question 建索引
- 对于 `guide` 类文件(用 `--------` 分割的引导文件),针对每个子片段建索引
- `20230201` v0.0.3
- scholar 返回逻辑优化:https://yqeupxazxi.feishu.cn/docx/ZZNcdnxxQo5N54xoKfec4tbUn6g
- scholar text_analyzer 优化:针对 doc 拆分
- `20230103` v0.0.2
- scholar初始版本
没有合适的资源?快使用搜索试试~ 我知道了~
人工智能-大模型-基于大模型的企业内部知识库和工具流系统,web界面,完全局域网内网部署(外网隔离)
共113个文件
py:30个
js:30个
svg:19个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 107 浏览量
2024-10-21
14:53:58
上传
评论
收藏 23.08MB ZIP 举报
温馨提示
基于大模型的企业内部知识库和工具流系统,web界面,完全局域网内网部署(外网隔离) 对于本项目,或者说该类型的应用场景,应该着眼于如下三个方面的深入开发: 1、文档智能 —— 更加智能的处理各种类型文档,尤其是复杂文档的ocr、layout解析等。本项目代码仓对应 backend/scholar/document process 2、RAG —— 不过这一块有很多优秀的开源项目,学术界目前进展也很蓬勃。本项目代码仓对应 backend/scholar 以上两块其实我理解行业会不断涌现出优秀的作业,大家借鉴就好,但第三点可能是需要致力于这个业务方向的同学特别思考的 3、符合信创要求的llm本地部署和加速方案 —— 有外网隔离要求的业务场景大部分可能都是国企、政务了,“信创”要求是早晚躲不过的……这方面我个人认为应该特别关注基于arm架构的cpp迁移方案,目前行业内也有不少开源方案可供参考。
资源推荐
资源详情
资源评论
收起资源包目录
人工智能-大模型-基于大模型的企业内部知识库和工具流系统,web界面,完全局域网内网部署(外网隔离) (113个子文件)
captain-definition 165B
index.css 882B
App.css 304B
.env.development 211B
.gitignore 47B
index.html 2KB
auth.hurl 227B
api.hurl 142B
favicon.ico 4KB
dsw-web.iml 441B
Library.js 13KB
SearchFile.js 5KB
Chat.js 5KB
App.js 5KB
BudgetAnalysis.js 4KB
useStore.js 4KB
main.pb.js 3KB
useMidPlatform.js 3KB
Tools.js 3KB
Login.js 2KB
example-server.js 2KB
Common.js 1KB
1696844775_updated_documents.js 1KB
1693035781_updated_documents.js 1KB
1693030335_created_documents.js 1KB
Icons.js 993B
constants.js 734B
ErrorPage.js 716B
1693036021_updated_documents.js 685B
1697344687_updated_documents.js 647B
BudgetAlert.js 636B
index.js 549B
PageNotFound.js 482B
1693114025_updated_documents.js 478B
Home.js 379B
Loading.js 373B
reportWebVitals.js 362B
App.test.js 246B
setupTests.js 241B
config.js 140B
package-lock.json 1.23MB
package.json 1KB
manifest.json 492B
yarn.lock 407KB
README.md 6KB
demo.mp4 22.61MB
logo512.png 9KB
logo192.png 5KB
icon.png 3KB
.env.production 215B
processor.py 22KB
scholar.py 21KB
converter.py 16KB
dm.py 14KB
budget_analysis.py 5KB
main.py 4KB
semantic_retriever.py 4KB
lmdeploy_wrapper.py 3KB
rocketqa.py 3KB
utils.py 3KB
keywords_retriever.py 2KB
scholar_api.py 2KB
get_logger.py 2KB
llm.py 2KB
indexer.py 2KB
new_budget_analysis.py 2KB
tokenizer.py 2KB
__init__.py 1KB
qa.py 1KB
ranker.py 904B
analyzer.py 781B
schema.py 534B
__init__.py 126B
config.py 121B
__init__.py 57B
__init__.py 33B
__init__.py 28B
__init__.py 0B
__init__.py 0B
__init__.py 0B
pocketbase.service 346B
qwen1.5-7b-deploy.sh 542B
example-server-test.sh 479B
run.sh 132B
gear.svg 5KB
csv.svg 4KB
jpg.svg 4KB
png.svg 4KB
pdf.svg 4KB
logo.svg 3KB
any.svg 2KB
excel.svg 2KB
ppt.svg 2KB
word.svg 2KB
text.svg 2KB
apps.svg 2KB
library.svg 2KB
file.svg 1KB
chat.svg 1KB
find.svg 1KB
共 113 条
- 1
- 2
资源评论
博士僧小星
- 粉丝: 2213
- 资源: 5986
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功