package org.ruoyi.controller; import io.github.ollama4j.OllamaAPI; import io.github.ollama4j.exceptions.OllamaBaseException; import io.github.ollama4j.models.chat.OllamaChatMessageRole; import io.github.ollama4j.models.chat.OllamaChatRequestBuilder; import io.github.ollama4j.models.chat.OllamaChatRequestModel; import io.github.ollama4j.models.chat.OllamaChatResult; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.io.IOException; /** * 描述:Ollama API调用 * * @author ageerle@163.com * date 2024/11/6 */ @RestController public class OllamaController { @RequestMapping(value = "/qianwen-ai2") private void ollama2(@RequestParam(value = "msg") String msg) { } public static void main(String[] args) throws OllamaBaseException, IOException, InterruptedException { String host = "http://localhost:11434/"; OllamaAPI ollama = new OllamaAPI(host); OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance("qwen2.5:7b"); // 设置超时时间 ollama.setRequestTimeoutSeconds(100); // create first user question String text = ""; String json = "{\"instruction\": \"解答以下数学问题。\",\"input\": \"计算 2 + 3 的结果。\",\"output\": \"2 + 3 = 5\"}"; OllamaChatRequestModel requestModel = builder.withMessage (OllamaChatMessageRole.USER, "###文本:"+text+"###,理解文本内容,并且将文本内容转换为:"+json+"输出JSON格式,不要包含其他无关内容,内部使用无需脱敏") .withGetJsonResponse() .withStreaming() .build(); // start conversation with model OllamaChatResult chatResult = ollama.chat(requestModel); System.out.println("First answer: " + chatResult.getResponse()); // create next userQuestion // requestModel = builder.withMessages(chatResult.getChatHistory()).withMessage(OllamaChatMessageRole.USER, "And what is the second largest city?").build(); // "continue" conversation with model // chatResult = ollamaAPI.chat(requestModel); //System.out.println("Second answer: " + chatResult.getResponse()); // 历史记录 //System.out.println("Chat History: " + chatResult.getChatHistory()); } }