重排模型，可以为文档进行相似度排序。和聊天模型一样，也会有方言及适配（这里略过）。

### 1、重排模型的构建

* 原始构建方式


```java
RerankingModel  rerankingModel = RerankingModel.of(reranking_apiUrl)
        .apiKey(reranking_apiKey)
        .model(reranking_model)
        .build();
```

* 配置器构建方式


```yaml
solon.ai.rerank:
  demo:
    apiUrl: "https://api.moark.com/v1/rerank" # 使用完整地址（而不是 api_base）
    apiKey: "......"
    provider: "giteeai" # 使用 ollama 服务时，需要配置 provider
    model: "bge-reranker-v2-m3"
```


```java
import org.noear.solon.ai.reranking.RerankingConfig;
import org.noear.solon.ai.reranking.RerankingModel;
import org.noear.solon.annotation.Bean;
import org.noear.solon.annotation.Configuration;
import org.noear.solon.annotation.Inject;

@Configuration
public class DemoConfig {
    @Bean
    public RerankingModel rerankingModel(@Inject("${solon.ai.rerank.demo}") RerankingConfig config) {
        return RerankingModel.of(config).build();
    }
}
```

### 2、调用及快捷调用

RerankingModel 主要是在 RAG 存储与检索后，提供重新排序服务的。

* 标准调用

```java
RerankingResponse resp = rerankingModel
        .input("比较原始的风格", "能表达内在的大概过程", "太阳升起来了")
        .call();

//打印消息
log.warn("{}", resp.getResults()); //结果数据
```

* 快捷调用

```java 
//为文档重新排序
documents = rerankingModel.rerank(query ,documents);

```


### 3、方言适配

重排模型（RerankingModel）同样支持方言适配。