### 模型组件

| 组件               | 产出属性             | 描述                                         |   可输入       | 输出   | 
| ----------- | -------------- | ------------------------- | ---- | ---- | 
| ChatModel     | `chatModel`             | 用于聊天对话          | `String`,<br/>`ChatMessage`,<br/>`Prompt`  | `ChatResponse` or <br/>`Publisher<ChatResponse>`   |
| GenerateModel   | `generateModel`    | 用于生成一次性数据  |  `String`,<br/>`ChatMessage`   | `GenerateResponse`  |



GenerateModel，v2.7.2 后支持。

### 1、ChatModel （聊天模型）组件属性



| 属性 | 描述 | 示例 |
| -------- | -------- | -------- |
| systemPrompt     | 系统提示语，字符串类型（支持模板）  | `你叫阿丽`，`你叫#{ai_name}`     |
| stream               | 是否流式响应，布尔类型                     | `false` |
| chatSession        | 聊天会话变量名，字符串类型               | `chatSession` |
| chatConfig         | 聊天模型配置，ChatConfig 类型            |    |
| toolProviders      | 工具提供者配置， `List<String>` 类型     |     |
| mcpServers        | MCP服务配置，标准的 mcpServers json 格式配置 |   |



示例：

```yaml
- task: "@ChatModel"
  meta:
    systemPrompt: "你是个聊天助手"
    stream: false
    chatConfig: # "@type": "org.noear.solon.ai.chat.ChatConfig"
      provider: "ollama"
      model: "qwen2.5:1.5b"
      apiUrl: "http://127.0.0.1:11434/api/chat"
```


### 2、GenerateModel （生成模型）组件属性（v2.7.2 后支持）



| 属性 | 描述 | 示例 |
| -------- | -------- | -------- |
| generateConfig         | 生成模型配置，GenerateConfig 类型 | |


示例1：(生成图像)

```yaml
- task: "@GenerateModel"
  meta:
    generateConfig: # "@type": "org.noear.solon.ai.generate.GenerateConfig"
      model: "stable-diffusion-3.5-large-turbo"
      apiUrl: "https://api.moark.com/v1/images/generations"
      apiKey: "xxxx"
      taskUrl: "https://api.moark.com/v1/task/"
      defaultOptions:
        size: "1024x1024"
```

示例2:（生成声音）

```yaml
- task: "@GenerateModel"
  meta:
    generateConfig: # "@type": "org.noear.solon.ai.generate.GenerateConfig"
      model: "ACE-Step-v1-3.5B"
      apiUrl: "https://api.moark.com/v1/images/generations"
      apiKey: "xxxx"
      taskUrl: "https://api.moark.com/v1/task/"
      defaultOptions:
        task: "text2music"
```


