Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jinchat-server
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
aigc-pioneer
jinchat-server
Commits
ffbf239e
提交
ffbf239e
authored
4月 11, 2023
作者:
imClumsyPanda
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add support for folder path as input
上级
4ec33977
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
13 行增加
和
7 行删除
+13
-7
knowledge_based_chatglm.py
knowledge_based_chatglm.py
+13
-7
没有找到文件。
knowledge_based_chatglm.py
浏览文件 @
ffbf239e
...
@@ -11,12 +11,13 @@ from chatglm_llm import ChatGLM
...
@@ -11,12 +11,13 @@ from chatglm_llm import ChatGLM
import
sentence_transformers
import
sentence_transformers
import
torch
import
torch
import
os
import
os
import
readline
# Global Parameters
# Global Parameters
EMBEDDING_MODEL
=
"
local"
#"
text2vec"
EMBEDDING_MODEL
=
"text2vec"
VECTOR_SEARCH_TOP_K
=
6
VECTOR_SEARCH_TOP_K
=
6
LLM_MODEL
=
"
local"
#"
chatglm-6b"
LLM_MODEL
=
"chatglm-6b"
LLM_HISTORY_LEN
=
3
LLM_HISTORY_LEN
=
3
DEVICE
=
"cuda"
if
torch
.
cuda
.
is_available
()
else
"mps"
if
torch
.
backends
.
mps
.
is_available
()
else
"cpu"
DEVICE
=
"cuda"
if
torch
.
cuda
.
is_available
()
else
"mps"
if
torch
.
backends
.
mps
.
is_available
()
else
"cpu"
...
@@ -27,14 +28,12 @@ embedding_model_dict = {
...
@@ -27,14 +28,12 @@ embedding_model_dict = {
"ernie-tiny"
:
"nghuyong/ernie-3.0-nano-zh"
,
"ernie-tiny"
:
"nghuyong/ernie-3.0-nano-zh"
,
"ernie-base"
:
"nghuyong/ernie-3.0-base-zh"
,
"ernie-base"
:
"nghuyong/ernie-3.0-base-zh"
,
"text2vec"
:
"GanymedeNil/text2vec-large-chinese"
,
"text2vec"
:
"GanymedeNil/text2vec-large-chinese"
,
"local"
:
"/Users/liuqian/Downloads/ChatGLM-6B/text2vec-large-chinese"
}
}
llm_model_dict
=
{
llm_model_dict
=
{
"chatglm-6b-int4-qe"
:
"THUDM/chatglm-6b-int4-qe"
,
"chatglm-6b-int4-qe"
:
"THUDM/chatglm-6b-int4-qe"
,
"chatglm-6b-int4"
:
"THUDM/chatglm-6b-int4"
,
"chatglm-6b-int4"
:
"THUDM/chatglm-6b-int4"
,
"chatglm-6b"
:
"THUDM/chatglm-6b"
,
"chatglm-6b"
:
"THUDM/chatglm-6b"
,
"local"
:
"/Users/liuqian/Downloads/ChatGLM-6B/chatglm-6b"
}
}
...
@@ -52,7 +51,10 @@ def init_cfg(LLM_MODEL, EMBEDDING_MODEL, LLM_HISTORY_LEN, V_SEARCH_TOP_K=6):
...
@@ -52,7 +51,10 @@ def init_cfg(LLM_MODEL, EMBEDDING_MODEL, LLM_HISTORY_LEN, V_SEARCH_TOP_K=6):
def
init_knowledge_vector_store
(
filepath
:
str
):
def
init_knowledge_vector_store
(
filepath
:
str
):
if
os
.
path
.
isfile
(
filepath
):
if
not
os
.
path
.
exists
(
filepath
):
print
(
"路径不存在"
)
return
None
elif
os
.
path
.
isfile
(
filepath
):
loader
=
UnstructuredFileLoader
(
filepath
,
mode
=
"elements"
)
loader
=
UnstructuredFileLoader
(
filepath
,
mode
=
"elements"
)
docs
=
loader
.
load
()
docs
=
loader
.
load
()
print
(
f
"{os.path.split(filepath)[-1]} 已成功加载"
)
print
(
f
"{os.path.split(filepath)[-1]} 已成功加载"
)
...
@@ -66,6 +68,7 @@ def init_knowledge_vector_store(filepath:str):
...
@@ -66,6 +68,7 @@ def init_knowledge_vector_store(filepath:str):
print
(
f
"{file} 已成功加载"
)
print
(
f
"{file} 已成功加载"
)
except
:
except
:
print
(
f
"{file} 未能成功加载"
)
print
(
f
"{file} 未能成功加载"
)
vector_store
=
FAISS
.
from_documents
(
docs
,
embeddings
)
vector_store
=
FAISS
.
from_documents
(
docs
,
embeddings
)
return
vector_store
return
vector_store
...
@@ -100,8 +103,11 @@ def get_knowledge_based_answer(query, vector_store, chat_history=[]):
...
@@ -100,8 +103,11 @@ def get_knowledge_based_answer(query, vector_store, chat_history=[]):
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
init_cfg
(
LLM_MODEL
,
EMBEDDING_MODEL
,
LLM_HISTORY_LEN
)
init_cfg
(
LLM_MODEL
,
EMBEDDING_MODEL
,
LLM_HISTORY_LEN
)
filepath
=
input
(
"Input your local knowledge file path 请输入本地知识文件路径:"
)
vector_store
=
None
vector_store
=
init_knowledge_vector_store
(
filepath
)
while
not
vector_store
:
filepath
=
input
(
"Input your local knowledge file path 请输入本地知识文件路径:"
)
print
(
filepath
)
vector_store
=
init_knowledge_vector_store
(
filepath
)
history
=
[]
history
=
[]
while
True
:
while
True
:
query
=
input
(
"Input your question 请输入问题:"
)
query
=
input
(
"Input your question 请输入问题:"
)
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论