```xml
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>solon-ai</artifactId>
</dependency>
```


### 1、描述

（v3.1.0 后支持）基础扩展插件，为通用的生成式 AI 接口调用提供支持。目前适配有 openai，ollama，dashscope 三套接口（可称为方言）：

* 默认使用 openai 接口规范
* 当 `provider=ollama` 时，使用 ollama 接口规范
* 当 `provider=dashscope` 时，使用 dashscope 接口规范

关于提示语：

* 可以直接用字符串
* 可以用 `ChatMessage.of...()` 构建。用户消息支持图片地址（或bae64格式）。
* 可以输入单条、多条。或一个列表。

关于 funciton call：

* 是否支持看提供者和模型
* 可以模型上添加全局函数，或者在发送时通过选项添加



### 2、学习与教程

此插件也可用于非 solon 生态（比如 springboot, jfinal, vert.x 等）。

<mark>具体开发学习，参考： [《教程 / Solon AI 开发》](/article/learn-solon-ai)</mark>


### 3、应用简单示例

配置参考（格式自由，与 ChatConfig 对应起来即可）

```yaml
solon.ai.chat:
  demo:
    apiUrl: "http://127.0.0.1:11434/api/chat" # 使用完整地址（而不是 api_base）
    provider: "ollama" # 使用 ollama 服务时，需要配置 provider
    model: "llama3.2"
```

代码应用

```java
@Configuration
public class App {
    @Bean
    public ChatModel build(@Inject("${solon.ai.chat.demo}") ChatConfig config) {
        return ChatModel.of(config).build();
    }

    @Bean
    public void test(ChatModel chatModel) throws IOException {
        //一次性返回
        ChatResponse resp = chatModel.prompt("hello").call();

        //打印消息
        System.out.println(resp.getMessage());
    }
}
```

### 4、代码演示

https://gitee.com/opensolon/solon-examples/tree/dev/c.Solon-AI/demoC001-ai

