package cn.iocoder.yudao.module.ai.framework.ai.core.model;
|
|
import cn.iocoder.yudao.module.ai.enums.model.AiPlatformEnum;
|
import org.springframework.ai.chat.model.ChatModel;
|
import org.springframework.ai.embedding.EmbeddingModel;
|
import org.springframework.ai.vectorstore.VectorStore;
|
import java.time.Duration;
|
import java.util.Map;
|
|
/**
|
* AI Model 模型工厂的接口类
|
*/
|
public interface AiModelFactory {
|
|
/**
|
* 获取(或创建并缓存)Chat 模型
|
*
|
* @param temperature 采样温度,null 表示用默认值
|
* @param maxTokens 单次回复最大 token 数,null 表示沿用模型默认值
|
* @param timeout 单次调用超时
|
*/
|
ChatModel getOrCreateChatModel(AiPlatformEnum platform, String apiKey, String url, String model,
|
Double temperature, Integer maxTokens, Duration timeout);
|
|
ChatModel getDefaultChatModel(AiPlatformEnum platform);
|
|
EmbeddingModel getOrCreateEmbeddingModel(AiPlatformEnum platform, String apiKey, String url, String model);
|
|
VectorStore getOrCreateVectorStore(Class<? extends VectorStore> type,
|
EmbeddingModel embeddingModel,
|
Map<String, Class<?>> metadataFields);
|
|
}
|