Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs correction #195

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions docs/guidebook/zh/2_2_1_智能体创建与使用.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@
* `introduction`: 智能体角色介绍
* `target`: 智能体目标
* `instruction`: 智能体指令
* `llm_model`: 智能体使用的LLM
* `name`: LLM 名称
* `model_name`: LLM 模型名
* `llm_model`: 智能体使用的LLM
* `name`: LLM 名称
* `model_name`: LLM 模型名

您可以选择已有或接入任意的LLM,我们在本部分不展开说明,您可以关注[模型LLM章节](2_2_2_模型.md)。
其中`introduction`, `target`, `instruction`与模型prompt相关,可以通过`prompt_version`以额外的yaml进行配置。另外您可以选择已有或接入任意的LLM,我们在本部分不展开说明,您可以关注[模型LLM章节](2_2_2_模型.md)。

### 设置智能体计划
**`plan` - 智能体计划**
Expand Down Expand Up @@ -136,7 +136,7 @@ agent执行前的输入处理节点, agent的输入可以是自然语言或者js

该部分拥有两个输入参数,如下:
* `input_object`: 智能体输入原始数据
* 可通过 `input_object.get_data('input_key')` 方法获取input_object中的对于数据
* 可通过 `input_object.get_data('input_key')` 方法获取input_object中的对应数据

例如: 用户对智能体输入`question=xxx`, 我们可以通过`input_object.get_data('question')`获取用户当前的提问。

Expand Down Expand Up @@ -266,7 +266,7 @@ def parse_input(self, input_object: InputObject, agent_input: dict) -> dict:
agent_input['input'] = input_object.get_data('input')
return agent_input
```
在其对应agent设置`sample_standard_app.app.core.agent.rag_agent_case.demo_rag_agent.yaml`中的`instruction`部分我们可以看到如下配置:
在其对应agent设置`sample_standard_app.app.core.prompt.demo_rag_agent_cn.yaml`中的`instruction`部分我们可以看到如下配置:
```text
instruction: |
你需要遵守的规则是:
Expand Down Expand Up @@ -357,7 +357,7 @@ metadata:
在agentUniverse中所有agent实体都由全局agent管理器进行管理,在任何框架执行过程中如果您需要使用智能体可以通过agent管理器。同时通过框架的服务化能力,您可以将agent快速服务化并通过标准的http或rpc协议对其进行网络调用。

## 方案一: 使用agent管理器
通过agent管理器中的`get_instance_obj('agent_name_xxx')` 方法可以获取对应名称的agent实例,同时通过agent自身的`run(input='xxx')`方法使用agent,下面的test类中的`test_rag_agent(self)`方法就是使用该方式对于agent进行了调试。
通过agent管理器中的`get_instance_obj('agent_name_xxx')` 方法可以获取对应名称的agent实例,同时通过agent自身的`run(input='xxx')`方法使用agent,下面的test类中的[`test_rag_agent(self)`](../../../sample_standard_app/app/test/test_rag_agent.py)方法就是使用该方式对于agent进行了调试。
```python
import unittest

Expand Down
28 changes: 15 additions & 13 deletions docs/guidebook/zh/2_2_3_集成LangChain工具.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# 集成LangChain工具

根据langchain中工具对象的初始化的难易程度,可以将其分为两类:
第一类,简单初始化,只需要简单的参数配置即可完成初始化。
第二类,复杂初始化,内部包含一些复杂的对象需要进行初始化。
- 第一类,简单初始化,只需要简单的参数配置即可完成初始化。
- 第二类,复杂初始化,内部包含一些复杂的对象需要进行初始化。

对于一类工具,你可以在aU中直接使用配置文件进行初始化,如DuDuckGo搜索工具的初始化。
对于第二类工具,我们实现了一个LangChainTool基础类,你只需要实现该类的init_langchain_tool方法,初始化对应的langchain工具对象即可,参考维基百科的初始化方法。

Expand All @@ -24,18 +25,19 @@ metadata:
class: 'LangChainTool'
```
参数说明:
langchain: 你打算使用的langchain工具,需要配置module和class_name
langchain.module: langchain的模块名,例如langchain_community.tools
langchain.class_name: langchain的类名,例如HumanInputRun
langchain.init_params langchain的初始化参数,例如:
```yaml
langchain:
module: langchain_community.tools
class_name: HumanInputRun
init_params:
prompt: '请输入你的问题'
```
- `langchain`: 你打算使用的langchain工具,需要配置module和class_name
- `langchain.module`: langchain的模块名,例如langchain_community.tools
- `langchain.class_name`: langchain的类名,例如HumanInputRun
- `langchain.init_params`: langchain的初始化参数,例如:
```yaml
langchain:
module: langchain_community.tools
class_name: HumanInputRun
init_params:
prompt: '请输入你的问题'
```
如果需要使用你完全重写了init_langchain_tool方法,那么你不需要配置该部分

该工具可以直接使用,无需任何keys

## 1. 集成LangChain中的DuckDuckGo工具
Expand Down
9 changes: 5 additions & 4 deletions docs/guidebook/zh/2_2_3_集成的工具.md
Original file line number Diff line number Diff line change
Expand Up @@ -181,8 +181,9 @@ metadata:
class: 'RequestTool'
```
参数说明:
method 请求的方式GET/POST/PUT等
headers 发送请求需要使用的 http的header,
json_parse 输入参数是否需要是要HTTP解析,POST请求时需要设置为True,GET请求需要设置为False
response_content_type http请求结果的解析方式,设置为json时,会返回json结果,设置为text时会返回text结果
- `method`: 请求的方式GET/POST/PUT等
- `headers`: 发送请求需要使用的 http的header
- `json_parse`: 输入参数是否需要是要HTTP解析,POST请求时需要设置为True,GET请求需要设置为False
- `response_content_type`: http请求结果的解析方式,设置为json时,会返回json结果,设置为text时会返回text结果

该工具可以直接使用,无需任何keys
30 changes: 15 additions & 15 deletions docs/guidebook/zh/2_2_4_DocProcessor.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ class Document(BaseModel):
values['id'] = str(uuid.uuid5(uuid.NAMESPACE_URL, text))
return values
```
- id:用于标识一段特定文档的唯一标识,默认通过uuid生成。
- text文档中的文本内容
- metadata文档的元数据信息,通常包含原始文件名、原始文件中的位置等。
- embedding文档向量化后的形式,可以是文本向量,在Document的子类ImageDocument中,也可以是图像向量化后的结果。
- keywords文档中的关键词,也可以是这段文本的tag。
- `id`: 用于标识一段特定文档的唯一标识,默认通过uuid生成。
- `text`: 文档中的文本内容
- `metadata`: 文档的元数据信息,通常包含原始文件名、原始文件中的位置等。
- `embedding`: 文档向量化后的形式,可以是文本向量,在Document的子类ImageDocument中,也可以是图像向量化后的结果。
- `keywords`: 文档中的关键词,也可以是这段文本的tag。

DocProcessor定义如下:
```python
Expand Down Expand Up @@ -96,9 +96,9 @@ metadata:
module: 'agentuniverse.agent.action.knowledge.doc_processor.character_text_splitter'
class: 'CharacterTextSplitter'
```
- chunk_size: 切分后文本长度大小。
- chunk_overlap: 相邻切分文本重合部分的长度。
- separators: 指定的分隔符
- `chunk_size`: 切分后文本长度大小。
- `chunk_overlap`: 相邻切分文本重合部分的长度。
- `separators`: 指定的分隔符

### [TokenTextSplitter](../../../agentuniverse/agent/action/knowledge/doc_processor/character_text_splitter.yaml)
该组件根据指定的 tokenizer 对文本进行切分,按照设定的 chunk_size 和 chunk_overlap 将文本拆分为多个片段,每个片段包含指定数量的tokens。
Expand All @@ -116,9 +116,9 @@ metadata:
module: 'agentuniverse.agent.action.knowledge.doc_processor.token_text_splitter'
class: 'TokenTextSplitter'
```
- chunk_size: 切分后文本的token数量。
- chunk_overlap: 相邻切分文本重合部分的token数量。
- tokenizer: 指定的tokenizer,用于将文本切分为tokens
- `chunk_size`: 切分后文本的token数量。
- `chunk_overlap`: 相邻切分文本重合部分的token数量。
- `tokenizer`: 指定的tokenizer,用于将文本切分为tokens

### [RecursiveCharacterTextSplitter](../../../agentuniverse/agent/action/knowledge/doc_processor/recursive_character_text_splitter.yaml)

Expand All @@ -138,9 +138,9 @@ metadata:
module: 'agentuniverse.agent.action.knowledge.doc_processor.recursive_character_text_splitter'
class: 'RecursiveCharacterTextSplitter'
```
- chunk_size: 切分后文本长度大小。
- chunk_overlap: 相邻切分文本重合部分的长度。
- separators: 指定的分隔符列表,按顺序尝试使用分隔符进行切分。如果第一个分隔符不能满足条件,则递归地使用下一个分隔符。
- `chunk_size`: 切分后文本长度大小。
- `chunk_overlap`: 相邻切分文本重合部分的长度。
- `separators`: 指定的分隔符列表,按顺序尝试使用分隔符进行切分。如果第一个分隔符不能满足条件,则递归地使用下一个分隔符。

### [JiebaKeywordExtractor](../../../agentuniverse/agent/action/knowledge/doc_processor/jieba_keyword_extractor.yaml)
该组件使用结巴(Jieba)分词库从文本中提取关键词。它可以根据设定的 top_k 参数提取出最重要的几个关键词,用于后续作为倒排索引。
Expand All @@ -154,7 +154,7 @@ metadata:
module: 'agentuniverse.agent.action.knowledge.doc_processor.jieba_keyword_extractor'
class: 'JiebaKeywordExtractor'
```
- top_k: 从文本中提取的关键词数量,即排名前 top_k 的关键词会被提取。
- `top_k`: 从文本中提取的关键词数量,即排名前 top_k 的关键词会被提取。

### [DashscopeReranker](../../../agentuniverse/agent/action/knowledge/doc_processor/dashscope_reranker.yaml)

Expand Down
14 changes: 7 additions & 7 deletions docs/guidebook/zh/2_2_4_QueryParaphraser.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@ class Query(BaseModel):
ext_info: dict = {}
similarity_top_k: Optional[int] = None
```
- query_str: 一个可选的字符串字段,用于存储原始查询的文本内容。
- query_text_bundles: 一个可选的字符串列表字段,用于存储多个改写后的查询文本片段。
- query_image_bundles: 一个可选的图像列表字段,用于存储多个查询图像。
- keywords: 一个可选的集合字段,用于存储查询的关键词。
- embeddings: 一个嵌入向量列表字段,用于存储查询的嵌入表示,用于相似度匹配。
- ext_info: 一个字典字段,用于存储与查询相关的额外信息,支持任意扩展。
- similarity_top_k: 一个可选的整数字段,用于指定相似度搜索中返回的最相似结果的数量。
- `query_str`: 一个可选的字符串字段,用于存储原始查询的文本内容。
- `query_text_bundles`: 一个可选的字符串列表字段,用于存储多个改写后的查询文本片段。
- `query_image_bundles`: 一个可选的图像列表字段,用于存储多个查询图像。
- `keywords`: 一个可选的集合字段,用于存储查询的关键词。
- `embeddings`: 一个嵌入向量列表字段,用于存储查询的嵌入表示,用于相似度匹配。
- `ext_info`: 一个字典字段,用于存储与查询相关的额外信息,支持任意扩展。
- `similarity_top_k`: 一个可选的整数字段,用于指定相似度搜索中返回的最相似结果的数量。

QueryParaphraser定义如下:
```python
Expand Down
4 changes: 2 additions & 2 deletions docs/guidebook/zh/2_2_4_RagRouter.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,5 +77,5 @@ metadata:
class: 'NluRagRouter'
```
其中需要用户填写的内容包括:
- store_amount: 指定查询会被路由到的存储库数量,控制查询的分发范围。
- llm: 包含大语言模型的配置,用于根据Store的描述信息和Query中的query_str筛选相关的数据库。name 表示模型组件的名称,model_name 指定使用的具体模型。
- `store_amount`: 指定查询会被路由到的存储库数量,控制查询的分发范围。
- `llm`: 包含大语言模型的配置,用于根据Store的描述信息和Query中的query_str筛选相关的数据库。name 表示模型组件的名称,model_name 指定使用的具体模型。
4 changes: 2 additions & 2 deletions docs/guidebook/zh/2_2_4_如何构建RAG智能体.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
本案例基于RagPlanner,搭建了一个简单的法律咨询智能体,通过检索民法典和刑法中的相关条例并结合案件背景给出相关的法律建议。
该案例基于千问大模型和DashScope的embedding和rerank功能,使用前需要您在环境变量中配置`DASHSCOPE_API_KEY`。

知识文件的定义如下
[知识文件](../../../sample_standard_app/app/core/knowledge/law_knowledge.yaml)的定义如下
```yaml
name: "law_knowledge"
description: "中国民法与刑法相关的知识库"
Expand Down Expand Up @@ -52,7 +52,7 @@ insert_processors:

### 配置Store
本案例中包含四个Store:民法和刑法分别存储至sqlite以及chromadb中。我们仅以`civil_law_chroma_store`作为例子,其它Store类似。
`civil_law_chroma_store`配置如下:
[`civil_law_chroma_store`](../../../sample_standard_app/app/core/store/civil_law_chroma_store.yaml)配置如下:
```yaml
name: 'civil_law_chroma_store'
description: '保存了中国民法典的所有内容,以文本向量形式存储'
Expand Down
28 changes: 14 additions & 14 deletions docs/guidebook/zh/3_2_1_gRPC.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ activate = 'true'
max_workers = 10
server_port = 50051
```
- **activate**: 仅在该值为`true`的时候启动gRPC服务器
- **max_workers**: gRPC服务器线程池的最大线程数量,默认为10
- **server_port**: gRPC服务器的服务端口,默认为50051
- **`activate`**: 仅在该值为`true`的时候启动gRPC服务器
- **`max_workers`**: gRPC服务器线程池的最大线程数量,默认为10
- **`server_port`**: gRPC服务器的服务端口,默认为50051

然后启动grpc服务器:
```python
Expand Down Expand Up @@ -64,9 +64,9 @@ service AgentUniverseService {
rpc service_run_result(AgentResultRequest) returns (AgentServiceResponse);
}
```
- **service_run**: 同步调用Agent服务,调用过程中阻塞直到Agent返回结果。
- **service_run_async**: 异步调用Agent服务,调用后先返回一个`request_id`,后续可用该ID通过`service_run_result`接口查询Agent服务结果。
- **service_run_result**: 查询Agent服务的结果。
- **`service_run`**: 同步调用Agent服务,调用过程中阻塞直到Agent返回结果。
- **`service_run_async`**: 异步调用Agent服务,调用后先返回一个`request_id`,后续可用该ID通过`service_run_result`接口查询Agent服务结果。
- **`service_run_result`**: 查询Agent服务的结果。

\
调用Agent服务的请求体结构如下:
Expand All @@ -77,9 +77,9 @@ message AgentServiceRequest {
bool saved = 3;
}
```
- **service_id**: 应用中注册的模型服务id。
- **params**: JSON String格式的服务入参,会被`json.loads`拆解为`**kwargs`的形式传递给底层的Agent。
- **saved**: 是否需要保存本次请求结果,该值为`false`的话则本次请求无法在`service_run_result`中查询到。
- **`service_id`**: 应用中注册的模型服务id。
- **`params`**: JSON String格式的服务入参,会被`json.loads`拆解为`**kwargs`的形式传递给底层的Agent。
- **`saved`**: 是否需要保存本次请求结果,该值为`false`的话则本次请求无法在`service_run_result`中查询到。

\
查询Agent服务结果的请求体结构如下:
Expand All @@ -88,7 +88,7 @@ message AgentResultRequest {
string request_id = 1;
}
```
- **request_id**: 需要查询的请求ID。
- **`request_id`**: 需要查询的请求ID。

\
返回结果的结构如下:
Expand All @@ -100,10 +100,10 @@ message AgentServiceResponse {
string result = 4;
}
```
- **message**: 请求失败时的详细错误信息。
- **success**: 表示本次请求执行是否成功。
- **request_id**: 本次请求的Id。
- **result**: Agent服务执行的结果,异步接口`service_run_async`中为空。
- **`message`**: 请求失败时的详细错误信息。
- **`success`**: 表示本次请求执行是否成功。
- **`request_id`**: 本次请求的Id。
- **`result`**: Agent服务执行的结果,异步接口`service_run_async`中为空。

### 调用示例
```python
Expand Down
10 changes: 5 additions & 5 deletions docs/guidebook/zh/3_3_1_Milvus.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@ metadata:
module: 'agentuniverse.agent.action.knowledge.store.milvus_store'
class: 'MilvusStore'
```
- connection_args: 连接 Milvus 数据库的参数,包括主机地址 (host) 和端口号 (port)。
- search_args: 搜索参数,定义了搜索时使用的距离度量类型 (metric_type) 和相关参数(如 nprobe)。
- index_params: 索引参数,定义了使用的索引类型 (index_type)、距离度量类型 (metric_type) 以及构建索引时的具体参数(如 M 和 efConstruction)。
- embedding_model: 用于生成嵌入向量的模型名称,这里指定为 dashscope_embedding。
- similarity_top_k: 在相似度搜索中返回最相似结果的数量。
- `connection_args`: 连接 Milvus 数据库的参数,包括主机地址 (host) 和端口号 (port)。
- `search_args`: 搜索参数,定义了搜索时使用的距离度量类型 (metric_type) 和相关参数(如 nprobe)。
- `index_params`: 索引参数,定义了使用的索引类型 (index_type)、距离度量类型 (metric_type) 以及构建索引时的具体参数(如 M 和 efConstruction)。
- `embedding_model`: 用于生成嵌入向量的模型名称,这里指定为 dashscope_embedding。
- `similarity_top_k`: 在相似度搜索中返回最相似结果的数量。

### 使用方式
[知识定义与使用](2_2_4_知识定义与使用.md)
Expand Down
6 changes: 3 additions & 3 deletions docs/guidebook/zh/3_3_2_ChromaDB.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ metadata:
module: 'agentuniverse.agent.action.knowledge.store.chroma_store'
class: 'ChromaStore'
```
- persist_path: 数据库的持久化存储路径,用于存储和加载向量数据。
- embedding_model: 用于生成嵌入向量的模型名称,这里指定为 dashscope_embedding。
- similarity_top_k: 在相似度搜索中返回最相似结果的数量。
- `persist_path`: 数据库的持久化存储路径,用于存储和加载向量数据。
- `embedding_model`: 用于生成嵌入向量的模型名称,这里指定为 dashscope_embedding。
- `similarity_top_k`: 在相似度搜索中返回最相似结果的数量。

### 使用方式
[知识定义与使用](2_2_4_知识定义与使用.md)
10 changes: 5 additions & 5 deletions docs/guidebook/zh/3_3_3_Sqlite.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ metadata:
module: 'agentuniverse.agent.action.knowledge.store.sqlite_store'
class: 'SQLiteStore'
```
- db_path: SQLite 数据库文件的路径,用于存储和管理文本数据。
- k1: BM25 算法中的参数 k1,控制词频对得分的影响。
- b: BM25 算法中的参数 b,控制文档长度对得分的影响。
- keyword_extractor: 用于提取关键词的工具名称,这里指定为 jieba_keyword_extractor。
- similarity_top_k: 根据BM25分数返回的最相关的top k。
- `db_path`: SQLite 数据库文件的路径,用于存储和管理文本数据。
- `k1`: BM25 算法中的参数 k1,控制词频对得分的影响。
- `b`: BM25 算法中的参数 b,控制文档长度对得分的影响。
- `keyword_extractor`: 用于提取关键词的工具名称,这里指定为 jieba_keyword_extractor。
- `similarity_top_k`: 根据BM25分数返回的最相关的top k。

### 使用方式
[知识定义与使用](2_2_4_知识定义与使用.md)
Loading