Skip to content

Commit f686ce9

Browse files
chore(es): support cert connection for opensearch backend (#397)
* chore(es): support cert connection for opensearch backend * fix cert path * fix ssl
1 parent 93c2171 commit f686ce9

File tree

9 files changed

+79
-16
lines changed

9 files changed

+79
-16
lines changed
255 KB
Loading

docs/docs/cli.md

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
title: VeADK 命令行工具
33
---
44

5-
65
## 命令行工具概述
6+
77
VeADK 提供如下命令便捷您的操作:
88

99
| 命令 | 描述 | 说明 |
@@ -18,7 +18,6 @@ VeADK 提供如下命令便捷您的操作:
1818
| `veadk uploadevalset` | 评测集相关操作 | 上传评测数据集到Cozeloop平台,生成平台上的评测集记录和访问权限配置。 |
1919
| `veadk pipeline` | 持续交付相关操作 | 创建CI/CD配置文件,设置自动化构建流水线。 |
2020

21-
2221
## 项目初始化
2322

2423
### 简介
@@ -558,6 +557,26 @@ veadk pipeline \
558557
--region cn-beijing
559558
```
560559

560+
## AgentKit 命令兼容
561+
562+
VeADK 命令行兼容 AgentKit 命令,您可以直接在 AgentKit 相关命令前添加 `veadk` 前缀,例如:
563+
564+
创建一个新的 AgentKit 项目:
565+
566+
```bash
567+
veadk agentkit init
568+
```
569+
570+
进行项目配置:
561571

572+
```bash
573+
veadk agentkit config
574+
```
562575

576+
部署项目到火山引擎 AgentKit 平台:
577+
578+
```bash
579+
veadk agentkit launch
580+
```
563581

582+
更多 AgentKit 命令请参考 [AgentKit 命令行工具](https://volcengine.github.io/agentkit-sdk-python/content/2.agentkit-cli/1.overview.html)

docs/docs/configuration.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ volcengine:
7373
| | `DATABASE_OPENSEARCH_PORT` | OpenSearch 端口,默认 9200 |
7474
| | `DATABASE_OPENSEARCH_USERNAME` | OpenSearch 用户名 |
7575
| | `DATABASE_OPENSEARCH_PASSWORD` | OpenSearch 密码 |
76+
| | `DATABASE_OPENSEARCH_CERT_PATH` | OpenSearch 证书路径。**生产环境下建议通过证书访问。** |
77+
| | `DATABASE_OPENSEARCH_USE_SSL` | 是否启用 SSL 验证(`https`),默认 True |
7678
| MySQL | `DATABASE_MYSQL_HOST` | MySQL 主机地址 |
7779
| | `DATABASE_MYSQL_USER` | MySQL 用户名 |
7880
| | `DATABASE_MYSQL_PASSWORD` | MySQL 密码 |

docs/docs/deploy/deploy-agentkit.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,18 @@
22
title: 部署到 AgentKit
33
---
44

5-
详见 [部署到 AgentKit 平台](https://volcengine.github.io/agentkit-sdk-python/content/2.agentkit-cli/1.overview.html#%E4%B8%89%E7%A7%8D%E9%83%A8%E7%BD%B2%E6%A8%A1%E5%BC%8F)
5+
若您希望生成一个标准的 AgentKit 项目,您可以在命令行使用:
6+
7+
```bash
8+
veadk agentkit init
9+
```
10+
11+
12+
13+
```bash
14+
agentkit init
15+
```
16+
17+
生成后,您可以在项目根目录下使用 `veadk agentkit launch``agentkit launch` 进行项目部署。
18+
19+
其它详细步骤与说明可见[部署到 AgentKit 平台](https://volcengine.github.io/agentkit-sdk-python/content/2.agentkit-cli/1.overview.html#%E4%B8%89%E7%A7%8D%E9%83%A8%E7%BD%B2%E6%A8%A1%E5%BC%8F)

docs/docs/ide/txt.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,8 @@
1010

1111
### 使用方法
1212

13-
- 下载我们为您准备好的提示词文件:[llms-full.txt](../../llms-full.txt){:download}
14-
- 复制到您的 IDE 提示词文件中
13+
1. 下载我们为您准备好的提示词文件:[llms-full.txt](../../llms-full.txt){:download}
14+
2. 打开 Trae 中的设置界面,找到 “规则” 选项
15+
3. 将文件内容复制到您的 Trae 规则文件中
16+
17+
![img](../assets/images/trae_rules.png)

docs/docs/knowledgebase/overview.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ KnowledgeBase 在 veadk 框架中扮演 Agent 的外部知识库 角色。它像
1212

1313
2. 后端抽象 (Backend Abstraction) : KnowledgeBase 提供了一个统一的接口,屏蔽了底层向量数据库的实现细节。您只需要在初始化时通过 backend 参数指定使用 viking 还是 opensearch ,而无需关心它们各自的 API 调用方式。
1414

15-
3) 知识检索 (Retrieval) :当 KnowledgeBase 实例被传递给 Agent 后,Agent 会自动获得一个内置的 knowledgebase_search 工具。在回答问题时,Agent 可以自主决定是否使用此工具,将用户的问题转化为关键词去知识库中搜索相关信息,从而给出更精准、更具上下文的回答。
15+
3. 知识检索 (Retrieval) :当 KnowledgeBase 实例被传递给 Agent 后,Agent 会自动获得一个内置的 knowledgebase_search 工具。在回答问题时,Agent 可以自主决定是否使用此工具,将用户的问题转化为关键词去知识库中搜索相关信息,从而给出更精准、更具上下文的回答。
1616

17-
4) 与 Agent 无缝集成 :通过在创建 Agent 时传入 knowledgebase=kb 参数,Agent 就能自动利用这个知识库来增强其回答能力。
17+
4. 与 Agent 无缝集成 :通过在创建 Agent 时传入 knowledgebase=kb 参数,Agent 就能自动利用这个知识库来增强其回答能力。
1818

1919
## 使用方法
2020

@@ -91,15 +91,13 @@ runner = Runner(agent, app_name="your_app_name")
9191

9292
![alt text](../assets/images/knowledge/image-8.png)
9393

94-
95-
9694
6. 点击创建知识库按钮,点完后会有一个弹出问是否导入文档,选择暂不导入。
9795
![alt text](../assets/images/knowledge/image-9.png)
9896

9997
![alt text](../assets/images/knowledge/image-10.png)
10098

101-
10299
### TOS配置
100+
103101
1. 登陆火山控制台进入TOS控制台
104102
![alt text](../assets/images/knowledge/image-11.png)
105103

veadk/configs/database_configs.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ class OpensearchConfig(BaseSettings):
2828

2929
port: int = 9200
3030

31+
cert_path: str = ""
32+
33+
use_ssl: bool = True
34+
3135
username: str = ""
3236

3337
password: str = ""

veadk/knowledgebase/backends/opensearch_backend.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,13 @@
2727

2828
import veadk.config # noqa E401
2929
from veadk.configs.database_configs import OpensearchConfig
30-
from veadk.configs.model_configs import EmbeddingModelConfig, NormalEmbeddingModelConfig
30+
from veadk.configs.model_configs import (
31+
EmbeddingModelConfig,
32+
NormalEmbeddingModelConfig,
33+
)
3134
from veadk.knowledgebase.backends.base_backend import BaseKnowledgebaseBackend
3235
from veadk.knowledgebase.backends.utils import get_llama_index_splitter
36+
from veadk.utils.logger import get_logger
3337

3438
try:
3539
from llama_index.vector_stores.opensearch import (
@@ -42,6 +46,9 @@
4246
)
4347

4448

49+
logger = get_logger(__name__)
50+
51+
4552
class OpensearchKnowledgeBackend(BaseKnowledgebaseBackend):
4653
"""Opensearch-based backend for knowledgebase.
4754
@@ -79,15 +86,22 @@ class OpensearchKnowledgeBackend(BaseKnowledgebaseBackend):
7986

8087
def model_post_init(self, __context: Any) -> None:
8188
self.precheck_index_naming()
89+
90+
if not self.opensearch_config.cert_path:
91+
logger.warning(
92+
"OpenSearch cert_path is not set, which may lead to security risks"
93+
)
94+
8295
self._opensearch_client = OpensearchVectorClient(
8396
endpoint=self.opensearch_config.host,
8497
port=self.opensearch_config.port,
8598
http_auth=(
8699
self.opensearch_config.username,
87100
self.opensearch_config.password,
88101
),
89-
use_ssl=True,
90-
verify_certs=False,
102+
use_ssl=self.opensearch_config.use_ssl,
103+
verify_certs=False if not self.opensearch_config.cert_path else True,
104+
ca_certs=self.opensearch_config.cert_path,
91105
dim=self.embedding_config.dim,
92106
index=self.index, # collection name
93107
)

veadk/memory/long_term_memory_backends/opensearch_backend.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@
2222

2323
import veadk.config # noqa E401
2424
from veadk.configs.database_configs import OpensearchConfig
25-
from veadk.configs.model_configs import EmbeddingModelConfig, NormalEmbeddingModelConfig
25+
from veadk.configs.model_configs import (
26+
EmbeddingModelConfig,
27+
NormalEmbeddingModelConfig,
28+
)
2629
from veadk.knowledgebase.backends.utils import get_llama_index_splitter
2730
from veadk.memory.long_term_memory_backends.base_backend import (
2831
BaseLongTermMemoryBackend,
@@ -74,15 +77,21 @@ def _create_vector_index(self, index: str) -> VectorStoreIndex:
7477

7578
self.precheck_index_naming(index)
7679

80+
if not self.opensearch_config.cert_path:
81+
logger.warning(
82+
"OpenSearch cert_path is not set, which may lead to security risks"
83+
)
84+
7785
opensearch_client = OpensearchVectorClient(
7886
endpoint=self.opensearch_config.host,
7987
port=self.opensearch_config.port,
8088
http_auth=(
8189
self.opensearch_config.username,
8290
self.opensearch_config.password,
8391
),
84-
use_ssl=True,
85-
verify_certs=False,
92+
use_ssl=self.opensearch_config.use_ssl,
93+
verify_certs=False if not self.opensearch_config.cert_path else True,
94+
ca_certs=self.opensearch_config.cert_path,
8695
dim=self.embedding_config.dim,
8796
index=index,
8897
)

0 commit comments

Comments
 (0)