### （知库）仓库组件

通过 meta 配置，或者由前面节点产生的数据，构建出属性，并转到 FlowContext

| 组件                          | 产出属性                    | 描述      |   可输入   | 输出     | 
| ----------------- | ----------------- | ----------- | ------- |  ------- | 
| InMemoryRepository   | `repository`               | 构建的知识库     | `String`,<br/>`ChatMessage`,<br/>`Document`,<br>`List<Document>`  |  `ChatMessage`<br/>`ChatMessage`<br/>文档入库<br/>文档入库 |
| RedisRepository         | `repository`               | 构建的知识库     | 同上  | 同上  |
| | | |   |   |
| EmbeddingModel        | `embeddingModel`     | 构建 embeddingModel 给仓库组件使用     |  / | /   |



可以包装更多 [Solon AI RAG Repository	](/article/family-solon-ai-rag) 进入 solon aiflow

### 1、InMemoryRepository 组件属性

基于 InMemoryRepository 构建的知识库。 可以初始化文档 


| 属性 | 描述 | 示例 |
| ---------------- | -------- | -------- |
| documentSources    | 文档源（数组）。本地或网络 url       | |
| splitPipeline            | 文档分割管道（数组）                   | |

示例：

```yaml
- task: "@InMemoryRepository"
  meta:
    documentSources: #用于初始化文档
      - "https://solon.noear.org/article/about?format=md"
    splitPipeline:
      - "org.noear.solon.ai.rag.splitter.RegexTextSplitter"
      - "org.noear.solon.ai.rag.splitter.TokenSizeTextSplitter"
```



### 2、RedisRepository 组件属性

基于 RedisRepository 构建的知识库。可以初始化文档  


| 属性 | 描述 | 示例 |
| ---------------- | -------- | -------- |
| redisConfig             | Redis 仓库配置，RedisConfig 类型 | |
| documentSources    | 文档源（数组）。本地或网络 url       | |
| splitPipeline            | 文档分割管道（数组）                   | |

示例：

```yaml
- task: "@RedisRepository"
  meta:
    redisConfig: # "@type":"org.noear.solon.ai.flow.components.repositorys.RedisConfig"
      server: "xxx"
      password: "xxx"
    documentSources:  #用于初始化文档
      - "https://solon.noear.org/article/about?format=md"
    splitPipeline:
      - "org.noear.solon.ai.rag.splitter.RegexTextSplitter"
      - "org.noear.solon.ai.rag.splitter.TokenSizeTextSplitter"
```




### 3、EmbeddingModel 组件属性

这个组件主要是为仓库类组件服务的

| 属性 | 描述 | 示例 |
| -------- | -------- | -------- |
| embeddingConfig         | 嵌入模型配置，EmbeddingConfig 类型 | |


示例：

```yaml
- task: "@EmbeddingModel"
  meta:
    embeddingConfig: # "@type": "org.noear.solon.ai.embedding.EmbeddingConfig"
      provider: "ollama"
      model: "bge-m3"
      apiUrl: "http://127.0.0.1:11434/api/embed"
```


