109 Commits

Author SHA1 Message Date
Sumkor
4bdb69baf3
fix markdown header split (#1825) (#3324) 2024-03-15 07:17:53 +08:00
liunux4odoo
51301dfe6a 优化 ES 知识库
- 开发者
    - get_OpenAIClient 的 local_wrap 默认值改为 False,避免 API 服务未启动导致其它功能受阻(如Embeddings)
    - 修改 ES 知识库服务:
	- 检索策略改为 ApproxRetrievalStrategy
	- 设置 timeout 为 60, 避免文档过多导致 ConnecitonTimeout Error
    - 修改 LocalAIEmbeddings,使用多线程进行  embed_texts,效果不明显,瓶颈可能主要在提供 Embedding 的服务器上
2024-03-07 11:58:27 +08:00
liunux4odoo
d0846f88cc - pydantic 限定为 v1,并统一项目中所有 pydantic 导入路径,为以后升级 v2 做准备
- 重构 api.py:
    - 按模块划分为不同的 router
    - 添加 openai 兼容的转发接口,项目默认使用该接口以实现模型负载均衡
    - 添加 /tools 接口,可以获取/调用编写的 agent tools
    - 移除所有 EmbeddingFuncAdapter,统一改用 get_Embeddings
    - 待办:
        - /chat/chat 接口改为 openai 兼容
        - 添加 /chat/kb_chat 接口,openai 兼容
        - 改变 ntlk/knowledge_base/logs 等数据目录位置
2024-03-06 13:51:34 +08:00
liunux4odoo
65466007ae make torch & transformers optional
import pydantic Model & Field from langchain.pydantic_v1 instead of pydantic.v1
2024-03-06 13:50:06 +08:00
liunux4odoo
73eb5e2e32 move document_loaders & text_splitter under server 2024-03-06 13:49:39 +08:00
liunux4odoo
5d422ca9a1 修改模型配置方式,所有模型以 openai 兼容框架的形式接入,chatchat 自身不再加载模型。
改变 Embeddings 模型改为使用框架 API,不再手动加载,删除自定义 Embeddings Keyword 代码
修改依赖文件,移除 torch transformers 等重依赖
暂时移出对 loom 的集成

后续:
1、优化目录结构
2、检查合并中有无被覆盖的 0.2.10 内容
2024-03-06 13:49:38 +08:00
glide-the
d6620eb628 知识库在线api接入点配置在线api接入点配置更新逻辑 2024-03-06 13:47:58 +08:00
glide-the
89b0d467ea 集成LOOM在线embedding业务 2024-03-06 13:47:56 +08:00
glide-the
307b973f26 embeddings模块集成openai plugins插件,使用统一api调用 2024-03-06 13:47:15 +08:00
zR
2756996125 更新zhipuai请求方式 2024-02-06 13:50:57 +08:00
fengyaojie
9c5aa5bf2f 修复es 知识库查询bug (#2848) 2024-02-05 16:28:23 +08:00
fengyaojie
36956520ea 修复es 知识库查询bug (#2848) 2024-02-03 18:01:54 +08:00
zqt
cbfbbe5e6b 修复milvus相关bug 2024-01-30 21:28:42 +08:00
zR
042a70c09a 更新了chromadb的打印的符号 2024-01-30 14:18:14 +08:00
showmecodett
0c465faf8b perf delete unused import 2024-01-29 06:09:59 +08:00
showmecodett
c94938bc83 Support Chroma 2024-01-29 05:52:52 +08:00
zR
56d32a9908 删除掉一些没用的注释,已经不需要todo了 2024-01-22 13:42:52 +08:00
zR
8ac255fc55
Merge branch 'chatchat-space:dev' into dev 2024-01-22 11:46:46 +08:00
showmecodett
71deed93df perf typing 2024-01-21 21:00:12 +08:00
showmecodett
3057c29e47 perf typing 2024-01-21 20:56:26 +08:00
zR
8c2019f8b9 pr 2775 maybe need? 2024-01-20 22:20:02 +08:00
zR
4a77880ee1 Merge branch 'dev' of https://github.com/zRzRzRzRzRzRzR/Langchain-Chatchat into dev 2024-01-20 22:18:25 +08:00
zR
dc07cba1d4 更新依赖 2024-01-20 22:18:22 +08:00
zR
b058e1906f
Merge pull request #2704 from MSZheng20/dev
1、ES库index_name获取兼容windows和linux系统 2、补充mappings,创建向量索引结构保持一致 3、添加ES测试方法
2024-01-18 13:11:56 +08:00
zhengmingsheng
2ab944996e fix:1、index_name获取兼容windows和linux系统 2、补充mappings,创建向量索引结构保持一致 3、添加ES向量库的测试方法 2024-01-18 11:25:27 +08:00
zR
e5acf3d2e6
Merge pull request #2688 from MSZheng20/dev
fix:修复ES库无法向量检索.添加mappings创建向量索引
2024-01-17 13:22:13 +08:00
zhengmingsheng
b2ea386f60 fix:修复ES库无法使用向量检索.添加mappings创建向量索引 2024-01-17 11:24:13 +08:00
lijia
2c92cd00ae langchain新版本PGVector传入connection,插入、删除操作会回滚 2024-01-16 16:58:19 +08:00
lijia
67ae61d567 langchain新版本PGVector传入connection,插入、删除操作会回滚 2024-01-16 16:38:06 +08:00
zR
241690d593 更新运行数据库报错和项目里程碑 2024-01-14 10:46:41 +08:00
Lijia0
ff91508d8b
每次创建对象时从连接池获取连接,避免每次执行方法时都新建连接 (#2480) 2024-01-12 12:34:40 +08:00
xldistance
a5b52e1bd1
elasticsearch更新https连接 (#2390) 2024-01-12 10:17:28 +08:00
HALIndex
29ef5dda64
Update pgvector connection method following updates in langchain_community, to resolve the 'PGVector' object has no attribute 'connect' error. (#2591) 2024-01-12 10:17:04 +08:00
liunux4odoo
9ff7bef2c2
新功能:知识库管理界面支持查看、编辑、删除向量库文档 (#2471)
* 新功能:
- 知识库管理界面支持查看、编辑、删除向量库文档。暂不支持增加(aggrid添加新行比较麻烦,需要另外实现)
- 去除知识库管理界面中重建知识库和删除知识库按钮,建议用户到终端命令操作

修复:
- 所有与知识库名称、文件名称有关的数据库操作函数都改成大小写不敏感,所有路径统一为 posix 风格,避免因路径文本不一致导致数据重复和操作失效 (close #2232)

开发者:
- 添加 update_docs_by_id 函数与 API 接口。当前仅支持 FAISS,暂时未用到,未将来对知识库做更细致的修改做准备
- 统一 DocumentWithScore 与 DocumentWithVsId
- FAISS 返回的 Document.metadata 中包含 ID, 方便后续查找比对
- /knowledge_base/search_docs 接口支持 file_name, metadata 参数,可以据此检索文档

* fix bug
2023-12-26 13:44:36 +08:00
xldistance
332e1ccfaa
更新self.dims_length赋值错误 (#2380) 2023-12-14 19:56:39 +08:00
hzg0601
db008c1af8 为milvus增加额外索引与搜索配置 2023-12-13 15:52:11 +08:00
hzg0601
db1c1e2ee4 解决多次调用es创建索引失败的问题 2023-12-11 10:39:59 +08:00
liunux4odoo
7d2de47bcf
文件对话和知识库对话 API 接口实现全异步操作,防止阻塞 (#2256)
* EmbeddingFunAdapter 支持异步操作;文件对话和知识库对话 API 接口实现全异步操作,防止阻塞

* 修复: 使 list_files_from_folder 返回相对路径
2023-12-02 19:22:44 +08:00
glide-the
248db46187 Merge branch 'dev_summary' into dev_command_summary
实现summary_chunk 文档分段总结业务实现
使用 MapReduceDocumentsChain 生成摘要
# Conflicts:
#	server/api.py
#	server/knowledge_base/kb_doc_api.py
#	server/knowledge_base/kb_service/base.py
#	server/knowledge_base/migrate.py
2023-11-25 22:30:41 +08:00
liunux4odoo
aae4144476
数据库和向量库中文档 metadata["source"] 改为相对路径,便于向量库迁移 (#2153)
修复:
- 上传知识库文件名称包括子目录时,自动创建子目录
2023-11-23 19:54:00 +08:00
liunux4odoo
68a544ea33 开发者:XXKBService.get_doc_by_id 改为批量处理,提高访问向量库效率。 2023-11-16 11:09:40 +08:00
zR
94d4304638
更新了chatglm3 6b agent的文档,提示词 (#2041)
更新了chatglm3 6b agent的文档,提示词
修复代理no_proxy格式问题 #1838 的问题,感谢多次复现和验证
修改了pg清理知识库后还会引用之前知识库的问题
2023-11-13 16:30:09 +08:00
hzg0601
c1440c2609 增加ElasticSearch支持 2023-11-10 16:04:41 +08:00
liunux4odoo
b51ba11f45
支持通过配置项同时启动多个模型,将Wiki纳入samples知识库 (#2002)
新功能:
- 将 LLM_MODEL 配置项改为 LLM_MODELS 列表,同时启动多个模型
- 将 wiki 纳入 samples 知识库

依赖变化:
- 指定 streamlit~=1.27.0。1.26.0会报rerun错误,1.28.0会有无限刷新错误

修复优化:
- 优化 get_default_llm_model 逻辑
- 适配 Qwen 在线 API 做 Embeddings 时最大 25 行的限制
- 列出知识库磁盘文件时跳过 . 开头的文件
2023-11-09 22:15:52 +08:00
WilliamChen-luckbob
ce1001a043
bugfix:dev分支创建知识库必然失败的bug修复 (#1980)
* bugfix:dev分支创建知识库必然失败的bug修复

* 统一 KBServiceFactory.get_service_by_name 的逻辑,数据库中不存在知识库时返回 None

---------

Co-authored-by: liunux4odoo <liunux@qq.com>
2023-11-09 17:45:21 +08:00
liunux4odoo
65592a45c3
支持在线 Embeddings, Lite 模式支持所有知识库相关功能 (#1924)
新功能:
- 支持在线 Embeddings:zhipu-api, qwen-api, minimax-api, qianfan-api
- API 增加 /other/embed_texts 接口
- init_database.py 增加 --embed-model 参数,可以指定使用的嵌入模型(本地或在线均可)
- 对于 FAISS 知识库,支持多向量库,默认位置:{KB_PATH}/vector_store/{embed_model}
- Lite 模式支持所有知识库相关功能。此模式下最主要的限制是:
  - 不能使用本地 LLM 和 Embeddings 模型
  - 知识库不支持 PDF 文件
- init_database.py 重建知识库时不再默认情况数据库表,增加 clear-tables 参数手动控制。
- API 和 WEBUI 中 score_threshold 参数范围改为 [0, 2],以更好的适应在线嵌入模型

问题修复:
- API 中 list_config_models 会删除 ONLINE_LLM_MODEL 中的敏感信息,导致第二轮API请求错误

开发者:
- 统一向量库的识别:以(kb_name,embed_model)为判断向量库唯一性的依据,避免 FAISS 知识库缓存加载逻辑错误
- KBServiceFactory.get_service_by_name 中添加 default_embed_model 参数,用于在构建新知识库时设置 embed_model
- 优化 kb_service 中 Embeddings 操作:
  - 统一加载接口: server.utils.load_embeddings,利用全局缓存避免各处 Embeddings 传参
  - 统一文本嵌入接口:server.knowledge_base.kb_service.base.[embed_texts, embed_documents]
- 重写 normalize 函数,去除对 scikit-learn/scipy 的依赖
2023-10-31 14:26:50 +08:00
liunux4odoo
deed92169f
支持在线 Embeddings:zhipu-api, qwen-api, minimax-api, qianfan-api (#1907)
* 新功能:
- 支持在线 Embeddings:zhipu-api, qwen-api, minimax-api, qianfan-api
- API 增加 /other/embed_texts 接口
- init_database.py 增加 --embed-model 参数,可以指定使用的嵌入模型(本地或在线均可)

问题修复:
- API 中 list_config_models 会删除 ONLINE_LLM_MODEL 中的敏感信息,导致第二轮API请求错误

开发者:
- 优化 kb_service 中 Embeddings 操作:
  - 统一加载接口: server.utils.load_embeddings,利用全局缓存避免各处 Embeddings 传参
  - 统一文本嵌入接口:server.embedding_api.[embed_texts, embed_documents]
2023-10-28 23:37:30 +08:00
zR
e74fe2d950
Zilliz修复 (#1874)
* 修复zilliz的问题
2023-10-25 21:59:26 +08:00
liunux4odoo
19f5f07d57 fix: unused imported faiss in milvus_kb_server (close #1849) 2023-10-24 15:01:19 +08:00
zR
69e5da4e7a
北京黑客松更新 (#1785)
* 北京黑客松更新

知识库支持:
支持zilliz数据库
Agent支持:
支持以下工具调用
1. 支持互联网Agent调用
2. 支持知识库Agent调用
3. 支持旅游助手工具(未上传)

知识库更新
1. 支持知识库简介,用于Agent选择
2. UI对应知识库简介

提示词选择
1. UI 和模板支持提示词模板更换选择
2023-10-18 15:19:02 +08:00