1
This commit is contained in:
@@ -1,9 +1,55 @@
|
||||
package com.metis.llm.engine;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.metis.domain.entity.base.Model;
|
||||
import com.metis.enums.ModelTypeEnum;
|
||||
import com.metis.llm.domain.CompletionParams;
|
||||
import com.metis.llm.domain.LLMChatModeConfig;
|
||||
import com.metis.llm.domain.LLMEmbeddingModelConfig;
|
||||
import com.metis.llm.domain.config.OllamaModelConfig;
|
||||
import com.metis.llm.service.ModelEngine;
|
||||
import dev.langchain4j.model.chat.ChatModel;
|
||||
import dev.langchain4j.model.chat.request.ResponseFormat;
|
||||
import dev.langchain4j.model.embedding.EmbeddingModel;
|
||||
import dev.langchain4j.model.ollama.OllamaChatModel;
|
||||
import dev.langchain4j.model.ollama.OllamaEmbeddingModel;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class OllamaModelEngine {
|
||||
public class OllamaModelEngine implements ModelEngine<OllamaModelConfig> {
|
||||
|
||||
|
||||
@Override
|
||||
public ModelTypeEnum getType() {
|
||||
return ModelTypeEnum.OLLAMA;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChatModel getChatLanguageModel(Model model, LLMChatModeConfig modelConfig) {
|
||||
CompletionParams completionParams = modelConfig.getCompletionParams();
|
||||
ResponseFormat responseFormat = ResponseFormat.JSON;
|
||||
if (StrUtil.isNotBlank(completionParams.getResponseFormat()) && "text".equals(completionParams.getResponseFormat())) {
|
||||
responseFormat = ResponseFormat.TEXT;
|
||||
}
|
||||
return OllamaChatModel.builder()
|
||||
.baseUrl(model.getUrl())
|
||||
.modelName(modelConfig.getModelName())
|
||||
.modelName(modelConfig.getModelName())
|
||||
.temperature(completionParams.getTemperature())
|
||||
.maxRetries(completionParams.getMaxTokens())
|
||||
.topP(completionParams.getTopP())
|
||||
.seed(completionParams.getSeed())
|
||||
.responseFormat(responseFormat)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public EmbeddingModel getEmbeddingModel(Model model, LLMEmbeddingModelConfig modeConfig) {
|
||||
return OllamaEmbeddingModel.builder()
|
||||
.baseUrl(model.getUrl())
|
||||
.modelName(modeConfig.getModelName())
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ public class OpenApiModelEngine implements ModelEngine<OpenApiConfig> {
|
||||
public EmbeddingModel getEmbeddingModel(Model model, LLMEmbeddingModelConfig modelConfig) {
|
||||
return OpenAiEmbeddingModel.builder()
|
||||
.apiKey(model.getApiKey())
|
||||
.baseUrl(modelConfig.getModelName())
|
||||
.baseUrl(model.getUrl())
|
||||
.modelName(modelConfig.getModelName())
|
||||
.build();
|
||||
}
|
||||
|
||||
37
metis-starter/src/test/java/aa/ModelClient.java
Normal file
37
metis-starter/src/test/java/aa/ModelClient.java
Normal file
@@ -0,0 +1,37 @@
|
||||
package aa;
|
||||
|
||||
import dev.langchain4j.http.client.*;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static java.time.Duration.ofSeconds;
|
||||
|
||||
public class ModelClient {
|
||||
|
||||
public static void main(String[] args) {
|
||||
String baseUrl = "https://api.siliconflow.cn";
|
||||
|
||||
HttpClientBuilder httpClientBuilder = HttpClientBuilderLoader.loadHttpClientBuilder();
|
||||
|
||||
HttpClient httpClient = httpClientBuilder
|
||||
.connectTimeout(ofSeconds(15))
|
||||
.readTimeout(ofSeconds(60))
|
||||
.build();
|
||||
|
||||
Map<String, String> defaultHeaders = new HashMap<>();
|
||||
defaultHeaders.put("Authorization", "Bearer sk-nnaoladfdjcybfelzkyhmihhnbbazycemiosghvhxfqujfjl");
|
||||
HttpRequest httpRequest = HttpRequest.builder()
|
||||
.method(HttpMethod.GET)
|
||||
.url(baseUrl, "/v1/models/'Qwen/Qwen2.5-Coder-7B-Instruct'")
|
||||
// .url(baseUrl, "/v1/models/Qwen2.5-Coder-32B-Instruct")
|
||||
.addHeader("Content-Type", "application/json")
|
||||
.addHeaders(defaultHeaders)
|
||||
.build();
|
||||
SuccessfulHttpResponse httpResponse = httpClient.execute(httpRequest);
|
||||
String body = httpResponse.body();
|
||||
System.out.println(body);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user