diff --git a/docs/docs/assets/images/trae_rules.png b/docs/docs/assets/images/trae_rules.png new file mode 100644 index 00000000..3505179c Binary files /dev/null and b/docs/docs/assets/images/trae_rules.png differ diff --git a/docs/docs/cli.md b/docs/docs/cli.md index a6a7af1e..9b047601 100644 --- a/docs/docs/cli.md +++ b/docs/docs/cli.md @@ -2,8 +2,8 @@ title: VeADK 命令行工具 --- - ## 命令行工具概述 + VeADK 提供如下命令便捷您的操作: | 命令 | 描述 | 说明 | @@ -18,7 +18,6 @@ VeADK 提供如下命令便捷您的操作: | `veadk uploadevalset` | 评测集相关操作 | 上传评测数据集到Cozeloop平台,生成平台上的评测集记录和访问权限配置。 | | `veadk pipeline` | 持续交付相关操作 | 创建CI/CD配置文件,设置自动化构建流水线。 | - ## 项目初始化 ### 简介 @@ -558,6 +557,26 @@ veadk pipeline \ --region cn-beijing ``` +## AgentKit 命令兼容 + +VeADK 命令行兼容 AgentKit 命令,您可以直接在 AgentKit 相关命令前添加 `veadk` 前缀,例如: + +创建一个新的 AgentKit 项目: + +```bash +veadk agentkit init +``` + +进行项目配置: +```bash +veadk agentkit config +``` +部署项目到火山引擎 AgentKit 平台: + +```bash +veadk agentkit launch +``` +更多 AgentKit 命令请参考 [AgentKit 命令行工具](https://volcengine.github.io/agentkit-sdk-python/content/2.agentkit-cli/1.overview.html)。 diff --git a/docs/docs/configuration.md b/docs/docs/configuration.md index 84168ce9..2fd22f8e 100644 --- a/docs/docs/configuration.md +++ b/docs/docs/configuration.md @@ -73,6 +73,8 @@ volcengine: | | `DATABASE_OPENSEARCH_PORT` | OpenSearch 端口,默认 9200 | | | `DATABASE_OPENSEARCH_USERNAME` | OpenSearch 用户名 | | | `DATABASE_OPENSEARCH_PASSWORD` | OpenSearch 密码 | +| | `DATABASE_OPENSEARCH_CERT_PATH` | OpenSearch 证书路径。**生产环境下建议通过证书访问。** | +| | `DATABASE_OPENSEARCH_USE_SSL` | 是否启用 SSL 验证(`https`),默认 True | | MySQL | `DATABASE_MYSQL_HOST` | MySQL 主机地址 | | | `DATABASE_MYSQL_USER` | MySQL 用户名 | | | `DATABASE_MYSQL_PASSWORD` | MySQL 密码 | diff --git a/docs/docs/deploy/deploy-agentkit.md b/docs/docs/deploy/deploy-agentkit.md index 9c32e450..4c5cfd17 100644 --- a/docs/docs/deploy/deploy-agentkit.md +++ b/docs/docs/deploy/deploy-agentkit.md @@ -2,4 +2,18 @@ title: 部署到 AgentKit --- -详见 [部署到 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) +若您希望生成一个标准的 AgentKit 项目,您可以在命令行使用: + +```bash +veadk agentkit init +``` + +或 + +```bash +agentkit init +``` + +生成后,您可以在项目根目录下使用 `veadk agentkit launch` 或 `agentkit launch` 进行项目部署。 + +其它详细步骤与说明可见[部署到 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) diff --git a/docs/docs/ide/txt.md b/docs/docs/ide/txt.md index 2261820b..c6542e7f 100644 --- a/docs/docs/ide/txt.md +++ b/docs/docs/ide/txt.md @@ -10,5 +10,8 @@ ### 使用方法 -- 下载我们为您准备好的提示词文件:[llms-full.txt](../../llms-full.txt){:download} -- 复制到您的 IDE 提示词文件中 +1. 下载我们为您准备好的提示词文件:[llms-full.txt](../../llms-full.txt){:download} +2. 打开 Trae 中的设置界面,找到 “规则” 选项 +3. 将文件内容复制到您的 Trae 规则文件中 + +![img](../assets/images/trae_rules.png) diff --git a/docs/docs/knowledgebase/overview.md b/docs/docs/knowledgebase/overview.md index c91f64ff..ade6276a 100644 --- a/docs/docs/knowledgebase/overview.md +++ b/docs/docs/knowledgebase/overview.md @@ -12,9 +12,9 @@ KnowledgeBase 在 veadk 框架中扮演 Agent 的外部知识库 角色。它像 2. 后端抽象 (Backend Abstraction) : KnowledgeBase 提供了一个统一的接口,屏蔽了底层向量数据库的实现细节。您只需要在初始化时通过 backend 参数指定使用 viking 还是 opensearch ,而无需关心它们各自的 API 调用方式。 -3) 知识检索 (Retrieval) :当 KnowledgeBase 实例被传递给 Agent 后,Agent 会自动获得一个内置的 knowledgebase_search 工具。在回答问题时,Agent 可以自主决定是否使用此工具,将用户的问题转化为关键词去知识库中搜索相关信息,从而给出更精准、更具上下文的回答。 +3. 知识检索 (Retrieval) :当 KnowledgeBase 实例被传递给 Agent 后,Agent 会自动获得一个内置的 knowledgebase_search 工具。在回答问题时,Agent 可以自主决定是否使用此工具,将用户的问题转化为关键词去知识库中搜索相关信息,从而给出更精准、更具上下文的回答。 -4) 与 Agent 无缝集成 :通过在创建 Agent 时传入 knowledgebase=kb 参数,Agent 就能自动利用这个知识库来增强其回答能力。 +4. 与 Agent 无缝集成 :通过在创建 Agent 时传入 knowledgebase=kb 参数,Agent 就能自动利用这个知识库来增强其回答能力。 ## 使用方法 @@ -91,15 +91,13 @@ runner = Runner(agent, app_name="your_app_name") ![alt text](../assets/images/knowledge/image-8.png) - - 6. 点击创建知识库按钮,点完后会有一个弹出问是否导入文档,选择暂不导入。 ![alt text](../assets/images/knowledge/image-9.png) ![alt text](../assets/images/knowledge/image-10.png) - ### TOS配置 + 1. 登陆火山控制台进入TOS控制台 ![alt text](../assets/images/knowledge/image-11.png) diff --git a/veadk/configs/database_configs.py b/veadk/configs/database_configs.py index 29fea0cc..3292f3bd 100644 --- a/veadk/configs/database_configs.py +++ b/veadk/configs/database_configs.py @@ -28,6 +28,10 @@ class OpensearchConfig(BaseSettings): port: int = 9200 + cert_path: str = "" + + use_ssl: bool = True + username: str = "" password: str = "" diff --git a/veadk/knowledgebase/backends/opensearch_backend.py b/veadk/knowledgebase/backends/opensearch_backend.py index 1581a2fb..13abc0ab 100644 --- a/veadk/knowledgebase/backends/opensearch_backend.py +++ b/veadk/knowledgebase/backends/opensearch_backend.py @@ -27,9 +27,13 @@ import veadk.config # noqa E401 from veadk.configs.database_configs import OpensearchConfig -from veadk.configs.model_configs import EmbeddingModelConfig, NormalEmbeddingModelConfig +from veadk.configs.model_configs import ( + EmbeddingModelConfig, + NormalEmbeddingModelConfig, +) from veadk.knowledgebase.backends.base_backend import BaseKnowledgebaseBackend from veadk.knowledgebase.backends.utils import get_llama_index_splitter +from veadk.utils.logger import get_logger try: from llama_index.vector_stores.opensearch import ( @@ -42,6 +46,9 @@ ) +logger = get_logger(__name__) + + class OpensearchKnowledgeBackend(BaseKnowledgebaseBackend): """Opensearch-based backend for knowledgebase. @@ -79,6 +86,12 @@ class OpensearchKnowledgeBackend(BaseKnowledgebaseBackend): def model_post_init(self, __context: Any) -> None: self.precheck_index_naming() + + if not self.opensearch_config.cert_path: + logger.warning( + "OpenSearch cert_path is not set, which may lead to security risks" + ) + self._opensearch_client = OpensearchVectorClient( endpoint=self.opensearch_config.host, port=self.opensearch_config.port, @@ -86,8 +99,9 @@ def model_post_init(self, __context: Any) -> None: self.opensearch_config.username, self.opensearch_config.password, ), - use_ssl=True, - verify_certs=False, + use_ssl=self.opensearch_config.use_ssl, + verify_certs=False if not self.opensearch_config.cert_path else True, + ca_certs=self.opensearch_config.cert_path, dim=self.embedding_config.dim, index=self.index, # collection name ) diff --git a/veadk/memory/long_term_memory_backends/opensearch_backend.py b/veadk/memory/long_term_memory_backends/opensearch_backend.py index 6c76833d..35231674 100644 --- a/veadk/memory/long_term_memory_backends/opensearch_backend.py +++ b/veadk/memory/long_term_memory_backends/opensearch_backend.py @@ -22,7 +22,10 @@ import veadk.config # noqa E401 from veadk.configs.database_configs import OpensearchConfig -from veadk.configs.model_configs import EmbeddingModelConfig, NormalEmbeddingModelConfig +from veadk.configs.model_configs import ( + EmbeddingModelConfig, + NormalEmbeddingModelConfig, +) from veadk.knowledgebase.backends.utils import get_llama_index_splitter from veadk.memory.long_term_memory_backends.base_backend import ( BaseLongTermMemoryBackend, @@ -74,6 +77,11 @@ def _create_vector_index(self, index: str) -> VectorStoreIndex: self.precheck_index_naming(index) + if not self.opensearch_config.cert_path: + logger.warning( + "OpenSearch cert_path is not set, which may lead to security risks" + ) + opensearch_client = OpensearchVectorClient( endpoint=self.opensearch_config.host, port=self.opensearch_config.port, @@ -81,8 +89,9 @@ def _create_vector_index(self, index: str) -> VectorStoreIndex: self.opensearch_config.username, self.opensearch_config.password, ), - use_ssl=True, - verify_certs=False, + use_ssl=self.opensearch_config.use_ssl, + verify_certs=False if not self.opensearch_config.cert_path else True, + ca_certs=self.opensearch_config.cert_path, dim=self.embedding_config.dim, index=index, )