Skip to content

Commit

Permalink
解决多次调用es创建索引失败的问题
Browse files Browse the repository at this point in the history
  • Loading branch information
hzg0601 committed Dec 11, 2023
1 parent 2e93198 commit db1c1e2
Showing 1 changed file with 26 additions and 11 deletions.
37 changes: 26 additions & 11 deletions server/knowledge_base/kb_service/es_kb_service.py
@@ -1,10 +1,3 @@
#!/user/bin/env python3
"""
File_Name: es_kb_service.py
Author: TangGuoLiang
Email: 896165277@qq.com
Created: 2023-09-05
"""
from typing import List
import os
import shutil
Expand All @@ -14,7 +7,7 @@
from configs import KB_ROOT_PATH, EMBEDDING_MODEL, EMBEDDING_DEVICE, CACHED_VS_NUM
from server.knowledge_base.kb_service.base import KBService, SupportedVSType
from server.utils import load_local_embeddings
from elasticsearch import Elasticsearch
from elasticsearch import Elasticsearch,BadRequestError
from configs import logger
from configs import kbs_config

Expand All @@ -27,6 +20,7 @@ def do_init(self):
self.PORT = kbs_config[self.vs_type()]['port']
self.user = kbs_config[self.vs_type()].get("user",'')
self.password = kbs_config[self.vs_type()].get("password",'')
self.password = kbs_config[self.vs_type()].get("dims_length",None)
self.embeddings_model = load_local_embeddings(self.embed_model, EMBEDDING_DEVICE)
try:
# ES python客户端连接(仅连接)
Expand All @@ -36,11 +30,18 @@ def do_init(self):
else:
logger.warning("ES未配置用户名和密码")
self.es_client_python = Elasticsearch(f"http://{self.IP}:{self.PORT}")
self.es_client_python.indices.create(index=self.index_name)
except ConnectionError:
logger.error("连接到 Elasticsearch 失败!")
raise ConnectionError
except Exception as e:
logger.error(f"Error 发生 : {e}")
raise e
try:
# 首先尝试通过es_client_python创建
self.es_client_python.indices.create(index=self.index_name)
except BadRequestError as e:
logger.error("创建索引失败,重新")
logger.error(e)

try:
# langchain ES 连接、创建索引
Expand All @@ -64,10 +65,24 @@ def do_init(self):
embedding=self.embeddings_model,
)
except ConnectionError:
print("### 连接到 Elasticsearch 失败!")
logger.error("### 连接到 Elasticsearch 失败!")
print("### 初始化 Elasticsearch 失败!")
logger.error("### 初始化 Elasticsearch 失败!")
raise ConnectionError
except Exception as e:
logger.error(f"Error 发生 : {e}")
raise e
try:
# 尝试通过db_init创建索引
self.db_init._create_index_if_not_exists(
index_name=self.index_name,
dims_length=self.dims_length
)
except Exception as e:
logger.error("创建索引失败...")
logger.error(e)
# raise e



@staticmethod
def get_kb_path(knowledge_base_name: str):
Expand Down

0 comments on commit db1c1e2

Please sign in to comment.