Skip to content

Commit f9e3895

Browse files
authored
Merge pull request #4993 from ishkong/master
feat: Improving Elasticsearch https connections
2 parents fde5604 + b9bb398 commit f9e3895

File tree

2 files changed

+29
-7
lines changed

2 files changed

+29
-7
lines changed

libs/chatchat-server/chatchat/server/knowledge_base/kb_service/es_kb_service.py

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,29 @@ def do_init(self):
3131
self.PORT = kb_config["port"]
3232
self.user = kb_config.get("user", "")
3333
self.password = kb_config.get("password", "")
34+
self.verify_certs = kb_config.get("verify_certs", True)
35+
self.ca_certs = kb_config.get("ca_certs", None)
36+
self.client_key = kb_config.get("client_key", None)
37+
self.client_cert = kb_config.get("client_cert", None)
3438
self.dims_length = kb_config.get("dims_length", None)
3539
self.embeddings_model = get_Embeddings(self.embed_model)
3640
try:
37-
# ES python客户端连接(仅连接)
41+
connection_info = dict(
42+
host=f"{self.scheme}://{self.IP}:{self.PORT}"
43+
)
3844
if self.user != "" and self.password != "":
39-
self.es_client_python = Elasticsearch(
40-
f"{self.scheme}://{self.IP}:{self.PORT}",
41-
basic_auth=(self.user, self.password),
42-
)
45+
connection_info.update(basic_auth=(self.user, self.password))
4346
else:
4447
logger.warning("ES未配置用户名和密码")
45-
self.es_client_python = Elasticsearch(f"{self.scheme}://{self.IP}:{self.PORT}")
48+
if self.scheme == "https":
49+
connection_info.update(verify_certs=self.verify_certs)
50+
if self.ca_certs:
51+
connection_info.update(ca_certs=self.ca_certs)
52+
if self.client_key and self.client_cert:
53+
connection_info.update(client_key=self.client_key)
54+
connection_info.update(client_cert=self.client_cert)
55+
# ES python客户端连接(仅连接)
56+
self.es_client_python = Elasticsearch(**connection_info)
4657
except ConnectionError:
4758
logger.error("连接到 Elasticsearch 失败!")
4859
raise ConnectionError
@@ -82,6 +93,13 @@ def do_init(self):
8293
)
8394
if self.user != "" and self.password != "":
8495
params.update(es_user=self.user, es_password=self.password)
96+
if self.scheme == "https":
97+
params["es_params"].update(verify_certs=self.verify_certs)
98+
if self.ca_certs:
99+
params["es_params"].update(ca_certs=self.ca_certs)
100+
if self.client_key and self.client_cert:
101+
params["es_params"].update(client_key=self.client_key)
102+
params["es_params"].update(client_cert=self.client_cert)
85103
self.db = ElasticsearchStore(**params)
86104
except ConnectionError:
87105
logger.error("### 初始化 Elasticsearch 失败!")

libs/chatchat-server/chatchat/settings.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,11 @@ class KBSettings(BaseFileSettings):
202202
"port": "9200",
203203
"index_name": "test_index",
204204
"user": "",
205-
"password": ""
205+
"password": "",
206+
"verify_certs": True,
207+
"ca_certs": None,
208+
"client_cert": None,
209+
"client_key": None
206210
},
207211
"milvus_kwargs": {
208212
"search_params": {

0 commit comments

Comments
 (0)