Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jinchat-server
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
aigc-pioneer
jinchat-server
Commits
fbdc62d9
提交
fbdc62d9
authored
5月 10, 2023
作者:
imClumsyPanda
浏览文件
操作
浏览文件
下载
差异文件
merge master
上级
a256f25e
55504fcd
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
14 行增加
和
11 行删除
+14
-11
README.md
README.md
+1
-1
local_doc_qa.py
chains/local_doc_qa.py
+0
-0
cli_demo.py
cli_demo.py
+1
-1
model_config.py
configs/model_config.py
+4
-2
qr_code_14.jpg
img/qr_code_14.jpg
+0
-0
qr_code_15.jpg
img/qr_code_15.jpg
+0
-0
chatglm_llm.py
models/chatglm_llm.py
+2
-2
chinese_text_splitter.py
textsplitter/chinese_text_splitter.py
+6
-5
webui.py
webui.py
+0
-0
没有找到文件。
README.md
浏览文件 @
fbdc62d9
...
...
@@ -178,6 +178,6 @@ Web UI 可以实现如下功能:
-
[
]
实现调用 API 的 Web UI Demo
## 项目交流群
![
二维码
](
img/qr_code_1
4
.jpg
)
![
二维码
](
img/qr_code_1
5
.jpg
)
🎉 langchain-ChatGLM 项目交流群,如果你也对本项目感兴趣,欢迎加入群聊参与讨论交流。
chains/local_doc_qa.py
浏览文件 @
fbdc62d9
差异被折叠。
点击展开。
cli_demo.py
浏览文件 @
fbdc62d9
...
...
@@ -31,7 +31,7 @@ if __name__ == "__main__":
chat_history
=
history
,
streaming
=
STREAMING
):
if
STREAMING
:
logger
.
info
(
resp
[
"result"
][
last_print_len
:]
,
end
=
""
,
flush
=
True
)
logger
.
info
(
resp
[
"result"
][
last_print_len
:])
last_print_len
=
len
(
resp
[
"result"
])
else
:
logger
.
info
(
resp
[
"result"
])
...
...
configs/model_config.py
浏览文件 @
fbdc62d9
...
...
@@ -69,6 +69,9 @@ LLM_HISTORY_LEN = 3
# return top-k text chunk from vector store
VECTOR_SEARCH_TOP_K
=
5
# 如果为0,则不生效,经测试小于500值的结果更精准
VECTOR_SEARCH_SCORE_THRESHOLD
=
0
NLTK_DATA_PATH
=
os
.
path
.
join
(
os
.
path
.
dirname
(
os
.
path
.
dirname
(
__file__
)),
"nltk_data"
)
FLAG_USER_NAME
=
uuid
.
uuid4
()
.
hex
...
...
@@ -79,4 +82,4 @@ llm device: {LLM_DEVICE}
embedding device: {EMBEDDING_DEVICE}
dir: {os.path.dirname(os.path.dirname(__file__))}
flagging username: {FLAG_USER_NAME}
"""
)
\ No newline at end of file
"""
)
img/qr_code_14.jpg
deleted
100644 → 0
浏览文件 @
a256f25e
269.5 KB
img/qr_code_15.jpg
0 → 100644
浏览文件 @
fbdc62d9
268.5 KB
models/chatglm_llm.py
浏览文件 @
fbdc62d9
...
...
@@ -125,7 +125,7 @@ class ChatGLM(LLM):
prefix_encoder_file
.
close
()
model_config
.
pre_seq_len
=
prefix_encoder_config
[
'pre_seq_len'
]
model_config
.
prefix_projection
=
prefix_encoder_config
[
'prefix_projection'
]
except
Exception
as
e
:
except
Exception
as
e
:
logger
.
error
(
f
"加载PrefixEncoder config.json失败: {e}"
)
self
.
model
=
AutoModel
.
from_pretrained
(
model_name_or_path
,
config
=
model_config
,
trust_remote_code
=
True
,
**
kwargs
)
...
...
@@ -163,7 +163,7 @@ class ChatGLM(LLM):
new_prefix_state_dict
[
k
[
len
(
"transformer.prefix_encoder."
):]]
=
v
self
.
model
.
transformer
.
prefix_encoder
.
load_state_dict
(
new_prefix_state_dict
)
self
.
model
.
transformer
.
prefix_encoder
.
float
()
except
Exception
as
e
:
except
Exception
as
e
:
logger
.
error
(
f
"加载PrefixEncoder模型参数失败:{e}"
)
self
.
model
=
self
.
model
.
eval
()
...
...
textsplitter/chinese_text_splitter.py
浏览文件 @
fbdc62d9
...
...
@@ -5,9 +5,10 @@ from configs.model_config import SENTENCE_SIZE
class
ChineseTextSplitter
(
CharacterTextSplitter
):
def
__init__
(
self
,
pdf
:
bool
=
False
,
**
kwargs
):
def
__init__
(
self
,
pdf
:
bool
=
False
,
sentence_size
:
int
=
None
,
**
kwargs
):
super
()
.
__init__
(
**
kwargs
)
self
.
pdf
=
pdf
self
.
sentence_size
=
sentence_size
def
split_text1
(
self
,
text
:
str
)
->
List
[
str
]:
if
self
.
pdf
:
...
...
@@ -23,7 +24,7 @@ class ChineseTextSplitter(CharacterTextSplitter):
sent_list
.
append
(
ele
)
return
sent_list
def
split_text
(
self
,
text
:
str
)
->
List
[
str
]:
def
split_text
(
self
,
text
:
str
)
->
List
[
str
]:
##此处需要进一步优化逻辑
if
self
.
pdf
:
text
=
re
.
sub
(
r"\n{3,}"
,
r"\n"
,
text
)
text
=
re
.
sub
(
'
\
s'
,
" "
,
text
)
...
...
@@ -38,15 +39,15 @@ class ChineseTextSplitter(CharacterTextSplitter):
# 很多规则中会考虑分号;,但是这里我把它忽略不计,破折号、英文双引号等同样忽略,需要的再做些简单调整即可。
ls
=
[
i
for
i
in
text
.
split
(
"
\n
"
)
if
i
]
for
ele
in
ls
:
if
len
(
ele
)
>
SENTENCE_SIZE
:
if
len
(
ele
)
>
self
.
sentence_size
:
ele1
=
re
.
sub
(
r'([,,.]["’”」』]{0,2})([^,,.])'
,
r'\1\n\2'
,
ele
)
ele1_ls
=
ele1
.
split
(
"
\n
"
)
for
ele_ele1
in
ele1_ls
:
if
len
(
ele_ele1
)
>
SENTENCE_SIZE
:
if
len
(
ele_ele1
)
>
self
.
sentence_size
:
ele_ele2
=
re
.
sub
(
r'([\n]{1,}| {2,}["’”」』]{0,2})([^\s])'
,
r'\1\n\2'
,
ele_ele1
)
ele2_ls
=
ele_ele2
.
split
(
"
\n
"
)
for
ele_ele2
in
ele2_ls
:
if
len
(
ele_ele2
)
>
SENTENCE_SIZE
:
if
len
(
ele_ele2
)
>
self
.
sentence_size
:
ele_ele3
=
re
.
sub
(
'( ["’”」』]{0,2})([^ ])'
,
r'\1\n\2'
,
ele_ele2
)
ele2_id
=
ele2_ls
.
index
(
ele_ele2
)
ele2_ls
=
ele2_ls
[:
ele2_id
]
+
[
i
for
i
in
ele_ele3
.
split
(
"
\n
"
)
if
i
]
+
ele2_ls
[
...
...
webui.py
浏览文件 @
fbdc62d9
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论