syc
This commit is contained in:
parent
65a8b06313
commit
d89b7fdeec
14
README.md
14
README.md
@ -6,7 +6,19 @@
|
|||||||
### 准备
|
### 准备
|
||||||
|
|
||||||
1. 提供 API 服务商的 API_KEY,并放置在 `src/.env` 文件中,参考 `src/.env.template`。默认使用的是智谱AI。
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
### 启动命令行模式
|
### 启动命令行模式
|
||||||
|
|||||||
18
requirements.txt
Normal file
18
requirements.txt
Normal file
@ -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
|
||||||
@ -8,46 +8,6 @@ from src.models.embedding import get_embedding_model
|
|||||||
logger = setup_logger("DataBaseManager")
|
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:
|
class DataBaseManager:
|
||||||
|
|
||||||
def __init__(self, config=None) -> None:
|
def __init__(self, config=None) -> None:
|
||||||
@ -252,4 +212,45 @@ class DataBaseManager:
|
|||||||
for db in self.data["databases"]:
|
for db in self.data["databases"]:
|
||||||
if db.db_id == db_id:
|
if db.db_id == db_id:
|
||||||
return db
|
return db
|
||||||
return None
|
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()
|
||||||
@ -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
|
|
||||||
@ -7,7 +7,7 @@
|
|||||||
<a-button type="text" danger class="del-db" @click="deleteDatabse"><DeleteOutlined /></a-button>
|
<a-button type="text" danger class="del-db" @click="deleteDatabse"><DeleteOutlined /></a-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="top">
|
<div class="top">
|
||||||
<div class="icon"><ReadFilled /></div>
|
<!-- <div class="icon"><ReadFilled /></div> -->
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<h3>{{ database.name }}</h3>
|
<h3>{{ database.name }}</h3>
|
||||||
<p><span>{{ database.metadata?.row_count }}行 · {{ database.files?.length || 0 }}文件</span></p>
|
<p><span>{{ database.metadata?.row_count }}行 · {{ database.files?.length || 0 }}文件</span></p>
|
||||||
@ -15,7 +15,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<p class="description">{{ database.description }}</p>
|
<p class="description">{{ database.description }}</p>
|
||||||
<div class="tags">
|
<div class="tags">
|
||||||
<a-tag color="blue" v-if="database.embed_model">Embed: {{ database.embed_model }}</a-tag>
|
<a-tag color="blue" v-if="database.embed_model">{{ database.embed_model }}</a-tag>
|
||||||
</div>
|
</div>
|
||||||
<a-divider/>
|
<a-divider/>
|
||||||
<div class="pagebtns">
|
<div class="pagebtns">
|
||||||
@ -476,8 +476,7 @@ onMounted(() => {
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
padding-top: 10px;
|
padding: 10px;
|
||||||
padding-bottom: 10px;
|
|
||||||
background-color: var(--main-light-5);
|
background-color: var(--main-light-5);
|
||||||
border-bottom: 1px solid #E0EAFF;
|
border-bottom: 1px solid #E0EAFF;
|
||||||
|
|
||||||
@ -485,6 +484,8 @@ onMounted(() => {
|
|||||||
height: auto;
|
height: auto;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: var(--c-text-light-1);
|
color: var(--c-text-light-1);
|
||||||
|
padding-left: 8px;
|
||||||
|
padding-right: 8px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user