模型供应商开发
概述
本章节介绍如何开发自定义大模型供应商插件。
开发步骤
1. 创建 Maven 模块
xml
<project>
<groupId>com.astrsomn</groupId>
<artifactId>astrsomn-provider-custom</artifactId>
<version>0.2.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.astrsomn</groupId>
<artifactId>astrsomn-api-runtime</artifactId>
<version>0.2.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>2. 实现 ModelProviderHandler 接口
java
public class CustomModelProviderHandler implements ModelProviderHandler {
@Override
public String getProvider() {
return "CUSTOM";
}
@Override
public String chat(String modelName, String message, List<Message> history) {
// 实现模型调用逻辑
return "模型响应";
}
@Override
public String chatStream(String modelName, String message, List<Message> history,
Consumer<String> callback) {
// 实现流式响应
return "stream response";
}
@Override
public EmbeddingResult embed(String modelName, List<String> texts) {
// 实现嵌入向量
return new EmbeddingResult();
}
}3. 配置 SPI
创建 META-INF/services/com.astrsomn.api.runtime.model.ModelProviderHandler 文件:
com.astrsomn.provider.custom.CustomModelProviderHandler4. 创建扩展描述文件
创建 extension-custom.properties:
properties
name=Custom Provider
description=自定义模型供应商
provider=CUSTOM
version=1.0.0
author=Your Name接口规范
ModelProviderHandler
| 方法 | 说明 |
|---|---|
getProvider() | 返回提供商标识 |
chat() | 同步调用模型 |
chatStream() | 流式调用模型 |
embed() | 获取文本嵌入向量 |
supports() | 判断是否支持指定模型 |
listModels() | 返回支持的模型列表 |
打包部署
bash
# 打包插件
mvn clean package
# 复制到 plugins 目录
cp target/astrsomn-provider-custom-0.2.0-SNAPSHOT.jar plugins/