From cd7746f34e3d0f3749e7ef088e8c5b176f1e6817 Mon Sep 17 00:00:00 2001 From: xerrors Date: Tue, 27 Aug 2024 21:59:30 +0800 Subject: [PATCH 1/7] update web packages --- web/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/package.json b/web/package.json index 1100b5fe..ddb72617 100644 --- a/web/package.json +++ b/web/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@ant-design/icons-vue": "^6.1.0", - "@antv/g6": "^5.0.9", + "@antv/g6": "^5.0.17", "@vueuse/core": "^10.11.0", "ant-design-vue": "^4.2.3", "axios": "^1.3.4", From d89b7fdeec61a72bc171fb713847ceb6a7979362 Mon Sep 17 00:00:00 2001 From: xerrors Date: Fri, 30 Aug 2024 11:54:21 +0800 Subject: [PATCH 2/7] syc --- README.md | 14 ++++- requirements.txt | 18 +++++++ src/core/database.py | 83 +++++++++++++++--------------- src/requirements.txt | 6 --- web/src/views/DataBaseInfoView.vue | 9 ++-- 5 files changed, 78 insertions(+), 52 deletions(-) create mode 100644 requirements.txt delete mode 100644 src/requirements.txt diff --git a/README.md b/README.md index a391ec99..f05c7a24 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,19 @@ ### 准备 1. 提供 API 服务商的 API_KEY,并放置在 `src/.env` 文件中,参考 `src/.env.template`。默认使用的是智谱AI。 -2. 配置 python 环境 `pip install -r src/requirements.txt` +2. 配置 python 环境 `pip install -r requirements.txt` + +**如果不启用知识库,可以jin** + +``` +FlagEmbedding==1.2.10 +Flask==3.0.3 +Flask_Cors==4.0.1 +openai==1.35.10 +python-dotenv==1.0.1 +PyYAML==6.0.1 +zhipuai +``` ### 启动命令行模式 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..0cbf80b3 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,18 @@ +dashscope==1.20.5 +FlagEmbedding==1.2.11 +Flask==3.0.3 +Flask_Cors==4.0.1 +llama_index==0.11.1 +neo4j==5.23.1 +openai==1.42.0 +paddleocr==2.8.1 +pymilvus==2.4.5 +python-dotenv==1.0.1 +PyYAML==6.0.2 +qianfan==0.4.6 +torch==2.4.0 +tqdm==4.66.5 +zhipuai==2.1.4.20230814 +PyMuPDF +llama-index-readers-file +peft \ No newline at end of file diff --git a/src/core/database.py b/src/core/database.py index 05b7b432..443896de 100644 --- a/src/core/database.py +++ b/src/core/database.py @@ -8,46 +8,6 @@ from src.models.embedding import get_embedding_model logger = setup_logger("DataBaseManager") -class DataBaseLite: - def __init__(self, name, description, db_type, dimension=None, **kwargs) -> None: - self.name = name - self.description = description - self.db_type = db_type - self.dimension = dimension - self.db_id = kwargs.get("db_id", hashstr(name)) - self.metaname = kwargs.get("metaname", f"{db_type[:1]}{hashstr(name)}") - self.metadata = kwargs.get("metaname", {}) - self.files = kwargs.get("files", []) - self.embed_model = kwargs.get("embed_model", None) - - def id2file(self, file_id): - for f in self.files: - if f["file_id"] == file_id: - return f - return None - - def update(self, metadata): - self.metadata = metadata - - def to_dict(self): - return { - "name": self.name, - "description": self.description, - "db_type": self.db_type, - "db_id": self.db_id, - "embed_model": self.embed_model, - "metaname": self.metaname, - "metadata": self.metadata, - "files": self.files, - "dimension": self.dimension - } - - def to_json(self): - return json.dumps(self.to_dict(), ensure_ascii=False) - - def __str__(self): - return self.to_json() - class DataBaseManager: def __init__(self, config=None) -> None: @@ -252,4 +212,45 @@ class DataBaseManager: for db in self.data["databases"]: if db.db_id == db_id: return db - return None \ No newline at end of file + return None + + +class DataBaseLite: + def __init__(self, name, description, db_type, dimension=None, **kwargs) -> None: + self.name = name + self.description = description + self.db_type = db_type + self.dimension = dimension + self.db_id = kwargs.get("db_id", hashstr(name)) + self.metaname = kwargs.get("metaname", f"{db_type[:1]}{hashstr(name)}") + self.metadata = kwargs.get("metaname", {}) + self.files = kwargs.get("files", []) + self.embed_model = kwargs.get("embed_model", None) + + def id2file(self, file_id): + for f in self.files: + if f["file_id"] == file_id: + return f + return None + + def update(self, metadata): + self.metadata = metadata + + def to_dict(self): + return { + "name": self.name, + "description": self.description, + "db_type": self.db_type, + "db_id": self.db_id, + "embed_model": self.embed_model, + "metaname": self.metaname, + "metadata": self.metadata, + "files": self.files, + "dimension": self.dimension + } + + def to_json(self): + return json.dumps(self.to_dict(), ensure_ascii=False) + + def __str__(self): + return self.to_json() \ No newline at end of file diff --git a/src/requirements.txt b/src/requirements.txt deleted file mode 100644 index 29577253..00000000 --- a/src/requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -FlagEmbedding==1.2.10 -Flask==3.0.3 -Flask_Cors==4.0.1 -openai==1.35.10 -python-dotenv==1.0.1 -PyYAML==6.0.1 diff --git a/web/src/views/DataBaseInfoView.vue b/web/src/views/DataBaseInfoView.vue index 87eb46cf..1f6e6658 100644 --- a/web/src/views/DataBaseInfoView.vue +++ b/web/src/views/DataBaseInfoView.vue @@ -7,7 +7,7 @@
-
+

{{ database.name }}

{{ database.metadata?.row_count }}行 · {{ database.files?.length || 0 }}文件

@@ -15,7 +15,7 @@

{{ database.description }}

- Embed: {{ database.embed_model }} + {{ database.embed_model }}
@@ -476,8 +476,7 @@ onMounted(() => { display: flex; justify-content: space-between; margin-bottom: 20px; - padding-top: 10px; - padding-bottom: 10px; + padding: 10px; background-color: var(--main-light-5); border-bottom: 1px solid #E0EAFF; @@ -485,6 +484,8 @@ onMounted(() => { height: auto; font-size: 16px; color: var(--c-text-light-1); + padding-left: 8px; + padding-right: 8px; } } } From c56bbcbf5ca79baa599a0e0b709ab718a8cf7183 Mon Sep 17 00:00:00 2001 From: xerrors Date: Sun, 1 Sep 2024 18:10:50 +0800 Subject: [PATCH 3/7] make graph alone --- web/index.html | 2 +- web/src/assets/base.css | 1 + web/src/components/RefsComponent.vue | 8 ++++---- web/src/layouts/AppLayout.vue | 5 +++++ web/src/router/index.js | 19 +++++++++++++------ web/src/views/ChatView.vue | 2 +- web/src/views/DataBaseView.vue | 5 ++--- web/src/views/GraphView.vue | 27 +++++++++++++++++++++------ 8 files changed, 48 insertions(+), 21 deletions(-) diff --git a/web/index.html b/web/index.html index 251b07a4..e61e329a 100644 --- a/web/index.html +++ b/web/index.html @@ -1,5 +1,5 @@ - + diff --git a/web/src/assets/base.css b/web/src/assets/base.css index dbc51192..fcc4b5d6 100644 --- a/web/src/assets/base.css +++ b/web/src/assets/base.css @@ -11,6 +11,7 @@ --main-100: #ABE0F7; --main-50: #CDF5FF; --main-25: #E6FAFF; + --main-10: #F5FDFF; --c-white: #ffffff; --c-white-soft: #f8f8f8; diff --git a/web/src/components/RefsComponent.vue b/web/src/components/RefsComponent.vue index 3e83fae8..1223053f 100644 --- a/web/src/components/RefsComponent.vue +++ b/web/src/components/RefsComponent.vue @@ -72,9 +72,9 @@ const showRefs = computed(() => message.value.role=='received' && message.value. gap: 10px; .item { - background: var(--main-25); - color: var(--main-800); - border: 1px solid var(--main-100); + background: var(--main-10); + color: var(--main-600); + border: 1px solid var(--main-50); padding: 2px 8px; border-radius: 8px; font-size: 14px; @@ -91,7 +91,7 @@ const showRefs = computed(() => message.value.role=='received' && message.value. cursor: pointer; &:hover { - background: var(--main-100); + background: var(--main-25); } } } diff --git a/web/src/layouts/AppLayout.vue b/web/src/layouts/AppLayout.vue index 8e6dc9f7..4d1d83cb 100644 --- a/web/src/layouts/AppLayout.vue +++ b/web/src/layouts/AppLayout.vue @@ -11,6 +11,8 @@ import { GithubOutlined, DatabaseOutlined, DatabaseFilled, + GoldOutlined, + GoldFilled, } from '@ant-design/icons-vue' import { themeConfig } from '@/assets/theme' import { useConfigStore } from '@/stores/config' @@ -74,6 +76,9 @@ console.log(route) + + +
-
+ -->
diff --git a/web/src/views/GraphView.vue b/web/src/views/GraphView.vue index 46b89963..70a1aa94 100644 --- a/web/src/views/GraphView.vue +++ b/web/src/views/GraphView.vue @@ -1,5 +1,5 @@