Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jinchat-server
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
aigc-pioneer
jinchat-server
Commits
a1033698
提交
a1033698
authored
4月 23, 2023
作者:
imClumsyPanda
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update local_doc_qa.py, webui.py and README.md
上级
2b53a2ed
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
30 行增加
和
15 行删除
+30
-15
README.md
README.md
+1
-1
local_doc_qa.py
chains/local_doc_qa.py
+12
-9
webui.py
webui.py
+17
-5
没有找到文件。
README.md
浏览文件 @
a1033698
...
@@ -66,7 +66,7 @@ $ docker run -d --restart=always --name chatglm -p 7860:7860 -v /www/wwwroot/cod
...
@@ -66,7 +66,7 @@ $ docker run -d --restart=always --name chatglm -p 7860:7860 -v /www/wwwroot/cod
> 注:鉴于环境部署过程中可能遇到问题,建议首先测试命令行脚本。建议命令行脚本测试可正常运行后再运行 Web UI。
> 注:鉴于环境部署过程中可能遇到问题,建议首先测试命令行脚本。建议命令行脚本测试可正常运行后再运行 Web UI。
执行
[
knowledge_based_chatglm
.py
](
cli_demo.py
)
脚本体验
**命令行交互**
:
执行
[
cli_demo
.py
](
cli_demo.py
)
脚本体验
**命令行交互**
:
```
shell
```
shell
$
python cli_demo.py
$
python cli_demo.py
```
```
...
...
chains/local_doc_qa.py
浏览文件 @
a1033698
...
@@ -95,17 +95,20 @@ class LocalDocQA:
...
@@ -95,17 +95,20 @@ class LocalDocQA:
except
Exception
as
e
:
except
Exception
as
e
:
print
(
e
)
print
(
e
)
print
(
f
"{file} 未能成功加载"
)
print
(
f
"{file} 未能成功加载"
)
if
len
(
docs
)
>
0
:
if
vs_path
and
os
.
path
.
isdir
(
vs_path
):
vector_store
=
FAISS
.
load_local
(
vs_path
,
self
.
embeddings
)
vector_store
.
add_documents
(
docs
)
else
:
if
not
vs_path
:
vs_path
=
f
"""{VS_ROOT_PATH}{os.path.splitext(file)[0]}_FAISS_{datetime.datetime.now().strftime("
%
Y
%
m
%
d_
%
H
%
M
%
S")}"""
vector_store
=
FAISS
.
from_documents
(
docs
,
self
.
embeddings
)
if
vs_path
and
os
.
path
.
isdir
(
vs_path
):
vector_store
.
save_local
(
vs_path
)
vector_store
=
FAISS
.
load_local
(
vs_path
,
self
.
embeddings
)
return
vs_path
,
loaded_files
vector_store
.
add_documents
(
docs
)
else
:
else
:
if
not
vs_path
:
print
(
"文件均未成功加载,请检查依赖包或替换为其他文件再次上传。"
)
vs_path
=
f
"""{VS_ROOT_PATH}{os.path.splitext(file)[0]}_FAISS_{datetime.datetime.now().strftime("
%
Y
%
m
%
d_
%
H
%
M
%
S")}"""
return
None
,
loaded_files
vector_store
=
FAISS
.
from_documents
(
docs
,
self
.
embeddings
)
vector_store
.
save_local
(
vs_path
)
return
vs_path
if
len
(
docs
)
>
0
else
None
,
loaded_files
def
get_knowledge_based_answer
(
self
,
def
get_knowledge_based_answer
(
self
,
query
,
query
,
...
...
webui.py
浏览文件 @
a1033698
...
@@ -55,10 +55,18 @@ def init_model():
...
@@ -55,10 +55,18 @@ def init_model():
try
:
try
:
local_doc_qa
.
init_cfg
()
local_doc_qa
.
init_cfg
()
local_doc_qa
.
llm
.
_call
(
"你好"
)
local_doc_qa
.
llm
.
_call
(
"你好"
)
return
"""模型已成功加载,可以开始对话,或从右侧选择模式后开始对话"""
reply
=
"""模型已成功加载,可以开始对话,或从右侧选择模式后开始对话"""
print
(
reply
)
return
reply
except
Exception
as
e
:
except
Exception
as
e
:
print
(
e
)
print
(
e
)
return
"""模型未成功加载,请到页面左上角"模型配置"选项卡中重新选择后点击"加载模型"按钮"""
reply
=
"""模型未成功加载,请到页面左上角"模型配置"选项卡中重新选择后点击"加载模型"按钮"""
if
str
(
e
)
==
"Unknown platform: darwin"
:
print
(
"改报错可能因为您使用的是 macOS 操作系统,需先下载模型至本地后执行 Web UI,具体方法请参考项目 README 中本地部署方法及常见问题:"
" https://github.com/imClumsyPanda/langchain-ChatGLM"
)
else
:
print
(
reply
)
return
reply
def
reinit_model
(
llm_model
,
embedding_model
,
llm_history_len
,
use_ptuning_v2
,
top_k
,
history
):
def
reinit_model
(
llm_model
,
embedding_model
,
llm_history_len
,
use_ptuning_v2
,
top_k
,
history
):
...
@@ -69,9 +77,11 @@ def reinit_model(llm_model, embedding_model, llm_history_len, use_ptuning_v2, to
...
@@ -69,9 +77,11 @@ def reinit_model(llm_model, embedding_model, llm_history_len, use_ptuning_v2, to
use_ptuning_v2
=
use_ptuning_v2
,
use_ptuning_v2
=
use_ptuning_v2
,
top_k
=
top_k
)
top_k
=
top_k
)
model_status
=
"""模型已成功重新加载,可以开始对话,或从右侧选择模式后开始对话"""
model_status
=
"""模型已成功重新加载,可以开始对话,或从右侧选择模式后开始对话"""
print
(
model_status
)
except
Exception
as
e
:
except
Exception
as
e
:
print
(
e
)
print
(
e
)
model_status
=
"""模型未成功重新加载,请到页面左上角"模型配置"选项卡中重新选择后点击"加载模型"按钮"""
model_status
=
"""模型未成功重新加载,请到页面左上角"模型配置"选项卡中重新选择后点击"加载模型"按钮"""
print
(
model_status
)
return
history
+
[[
None
,
model_status
]]
return
history
+
[[
None
,
model_status
]]
...
@@ -91,6 +101,7 @@ def get_vector_store(vs_id, files, history):
...
@@ -91,6 +101,7 @@ def get_vector_store(vs_id, files, history):
else
:
else
:
file_status
=
"模型未完成加载,请先在加载模型后再导入文件"
file_status
=
"模型未完成加载,请先在加载模型后再导入文件"
vs_path
=
None
vs_path
=
None
print
(
file_status
)
return
vs_path
,
None
,
history
+
[[
None
,
file_status
]]
return
vs_path
,
None
,
history
+
[[
None
,
file_status
]]
...
@@ -110,11 +121,12 @@ def change_mode(mode):
...
@@ -110,11 +121,12 @@ def change_mode(mode):
def
add_vs_name
(
vs_name
,
vs_list
,
chatbot
):
def
add_vs_name
(
vs_name
,
vs_list
,
chatbot
):
if
vs_name
in
vs_list
:
if
vs_name
in
vs_list
:
chatbot
=
chatbot
+
[[
None
,
"与已有知识库名称冲突,请重新选择其他名称后提交"
]]
vs_status
=
"与已有知识库名称冲突,请重新选择其他名称后提交"
chatbot
=
chatbot
+
[[
None
,
vs_status
]]
return
gr
.
update
(
visible
=
True
),
vs_list
,
chatbot
return
gr
.
update
(
visible
=
True
),
vs_list
,
chatbot
else
:
else
:
chatbot
=
chatbot
+
[
vs_status
=
f
"""已新增知识库"{vs_name}",将在上传文件并载入成功后进行存储。请在开始对话前,先完成文件上传。 """
[
None
,
f
"""已新增知识库"{vs_name}",将在上传文件并载入成功后进行存储。请在开始对话前,先完成文件上传。 """
]]
chatbot
=
chatbot
+
[[
None
,
vs_status
]]
return
gr
.
update
(
visible
=
True
,
choices
=
vs_list
+
[
vs_name
],
value
=
vs_name
),
vs_list
+
[
vs_name
],
chatbot
return
gr
.
update
(
visible
=
True
,
choices
=
vs_list
+
[
vs_name
],
value
=
vs_name
),
vs_list
+
[
vs_name
],
chatbot
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论