.temperature(0.8) .function("demoFunction") .build(); return ollamaChatModel.call $internalCall$2(OllamaChatModel.java:202) ~[spring-ai-ollama-1.0.0-M5.jar:1.0.0-M5]at io.micrometer.observation.Observation.observe (Observation.java:565) ~[micrometer-observation-1.14.1.jar:1.14.1]at org.springframework.ai.ollama.OllamaChatModel.internalCall (OllamaChatModel.java:200) ~[spring-ai-ollama-1.0.0-M5.jar:1.0.0-M5]at org.springframework.ai.ollama.OllamaChatModel.call (OllamaChatModel.java:184) ~[spring-ai-ollama-1.0.0-M5.jar:1.0.0-M5]at com.alibaba.cloud.ai.example.chat.deepseek.controller.OllamaChatModelController.functionCall
// 避免返回乱码 response.setCharacterEncoding("UTF-8"); Flux<ChatResponse> stream = ollamaChatModel.stream OllamaChatProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true",matchIfMissing = true)public OllamaChatModel ollamaChatModel(OllamaApi ollamaApi, OllamaChatProperties properties,OllamaInitializationProperties initProperties.getPullModelStrategy(): PullModelStrategy.NEVER;var chatModel = OllamaChatModel.builder this.properties.getBaseUrl();}}}OllamaAutoConfiguration配置了PropertiesOllamaConnectionDetails、OllamaApi、OllamaChatModel
、StreamingChatModel接口,其中Model的入参为Prompt类型,返回为ChatResponse类型ChatModel在不同模块中有不同的实现,比如spring-ai-ollama(OllamaChatModel OllamaChatProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true",matchIfMissing = true)public OllamaChatModel ollamaChatModel(OllamaApi ollamaApi, OllamaChatProperties properties,OllamaInitializationProperties initProperties.getPullModelStrategy(): PullModelStrategy.NEVER;var chatModel = OllamaChatModel.builder ChatModel在不同模块中有不同的实现,比如spring-ai-ollama(OllamaChatModel)、spring-ai-openai(OpenAiChatModel)、spring-ai-minimax
base-url: http://localhost:11434 chat: model: deepseek-r1:1.5b 编写代码进行调用 @Autowired private OllamaChatModel ollamaChatModel; @GetMapping("/chat") public String simpleChat(String msg) { return ollamaChatModel.call
try { String responseText = ConversationalChain.builder() .chatModel(ollamaChatModel { String answer = ConversationalRetrievalChain.builder() .chatModel(ollamaChatModel
Bean public OllamaApi ollamaApi() { return new OllamaApi(); } @Bean public OllamaChatModel ) .model("deepseek-r1:1.5b") // 指定使用的模型名称 .build(); return OllamaChatModel.builder RestController @RequestMapping("/api/chat") public class ChatController { @Resource private OllamaChatModel chatModel; // 注入配置好的 OllamaChatModel @PostMapping public ChatResponseDto chat(@RequestBody AiNexusApplication.class) // 替换为您的Spring Boot主类 public class OllamaTest { @Autowired private OllamaChatModel
* * @param ollamaChatModel 聊天模型实例 */public App(ChatModel ollamaChatModel) { ChatMemory chatMemory = new InMemoryChatMemory(); chatClient = ChatClient.builder(ollamaChatModel) .defaultSystem
gemini-1.5-flash") .logRequestsAndResponses(true) .build();// ORChatModel chatModel = OllamaChatModel.builder ) // see [4] below .logRequestsAndResponses(true) .build();// ORChatModel chatModel = OllamaChatModel.builder
ChineseTeacher teacher = AiServices.builder(ChineseTeacher.class) 11 .chatModel(ollamaChatModel Poem extract = AiServices.builder(PoemExtractor.class) 13 .chatModel(ollamaChatModel } 自定义1个listener,可以把LLM的输入、输出、错误信息都拿到,按实际业务需求做相应处理(比如:记日志,或存储便于离线分析),在注入model时,加上这个监听器 1 @Bean("ollamaChatModel ") 2 public ChatModel chatModel() { 3 return OllamaChatModel.builder() 4 ChineseTeacher teacher = AiServices.builder(ChineseTeacher.class) 11 .chatModel(ollamaChatModel
SpringBootTest(classes = DemoApplication.class) public class TestOllama { @Autowired private OllamaChatModel ollamaChatModel; @Test public void testChatModel() { String prompt = """ more complex tasks or interact with the outside world. """; String result = ollamaChatModel.call
"degree\":\"本科\"}", "test_data", TEST_DATA)); String text = ollamaChatModel.chat public ResponseEntity<Person> extract2() { try { // 创建PersonExtractor实例,使用AiServices和ollamaChatModel PersonExtractor personExtractor = AiServices.create(PersonExtractor.class, ollamaChatModel
org.springframework.ai.chat.client.ChatClient;import org.springframework.ai.chat.model.ChatModel;import org.springframework.ai.ollama.OllamaChatModel ("http://localhost:11434") .build(); // 创建Ollama聊天模型 ChatModel model = OllamaChatModel.builder
org.springframework.ai.embedding.EmbeddingRequest;import org.springframework.ai.embedding.EmbeddingResponse;import org.springframework.ai.ollama.OllamaChatModel vectorStore; @Autowired private OllamaEmbeddingModel embeddingModel; @Autowired private OllamaChatModel
最后,在 App 中“装备”上我们刚出炉的日志神器: public App(ChatModel ollamaChatModel) { // 初始化基于内存的对话记忆 ChatMemory chatMemory = new InMemoryChatMemory(); chatClient = ChatClient.builder(ollamaChatModel)
具体策略: OpenAiChatModel, OllamaChatModel, AzureAiChatModel 等实现类。 价值: 业务代码仅依赖 ChatModel 接口(面向接口编程)。 Ollama的实现类是org.springframework.ai.ollama.api.OllamaApi,对应标准ChatModel的实现类是org.springframework.ai.ollama.OllamaChatModel ,OllamaChatModel底层实现还是需要依赖OllamaApi的。
最后,在 App 中“装备”上我们刚出炉的日志神器:public App(ChatModel ollamaChatModel) { // 初始化基于内存的对话记忆 ChatMemory chatMemory = new InMemoryChatMemory(); chatClient = ChatClient.builder(ollamaChatModel) .defaultSystem
AI 应用程序示例,展示了如何使用 Ollama 本地运行的 LLM 模型:@RestControllerpublic class ChatController { private final OllamaChatModel chatModel; @Autowired public ChatController(OllamaChatModel chatModel) { this.chatModel
} } 创建Controller @RestController public class ChatDeepSeekController { @Autowired private OllamaChatModel ollamaChatModel; @GetMapping("/ai/test") public String generate(@RequestParam(value = "message defaultValue = "hello") String message) { String response = this.ollamaChatModel.call
com.google.genai.types.Part;import dev.langchain4j.model.chat.ChatModel;import dev.langchain4j.model.ollama.OllamaChatModel 配置本地模型(使用Ollama) ChatModel chatModel = OllamaChatModel.builder() .baseUrl("http://localhost
* @return ChatLanguageModel实例 */ @Bean public ChatModel chatModel() { return OllamaChatModel.builder