From c0531632b222b04e9c626489d09074675222b1a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=AF=E8=88=AA?= <280645618@qq.com> Date: Sun, 8 Mar 2026 19:54:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Eollama=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/qihangerp/erp/AiAgent.java | 2 +- .../erp/controller/OllamaController.java | 40 ++++++ vue/src/api/ai/ollama.js | 9 ++ vue/src/views/index.vue | 50 +++++--- 新手指南.md | 115 ++++++++++++++++++ 5 files changed, 197 insertions(+), 19 deletions(-) create mode 100644 api/ai-agent/src/main/java/cn/qihangerp/erp/controller/OllamaController.java create mode 100644 vue/src/api/ai/ollama.js create mode 100644 新手指南.md diff --git a/api/ai-agent/src/main/java/cn/qihangerp/erp/AiAgent.java b/api/ai-agent/src/main/java/cn/qihangerp/erp/AiAgent.java index e5ddd0ef..0cbfd62b 100644 --- a/api/ai-agent/src/main/java/cn/qihangerp/erp/AiAgent.java +++ b/api/ai-agent/src/main/java/cn/qihangerp/erp/AiAgent.java @@ -13,7 +13,7 @@ import org.springframework.web.client.RestTemplate; //@EnableDiscoveryClient //@MapperScan("cn.qihangerp.oms.mapper") @EnableFeignClients(basePackages = "cn.qihangerp.erp") -@EnableDiscoveryClient +//@EnableDiscoveryClient @ComponentScan(basePackages={"cn.qihangerp"}) @SpringBootApplication public class AiAgent { diff --git a/api/ai-agent/src/main/java/cn/qihangerp/erp/controller/OllamaController.java b/api/ai-agent/src/main/java/cn/qihangerp/erp/controller/OllamaController.java new file mode 100644 index 00000000..6d5ce0ba --- /dev/null +++ b/api/ai-agent/src/main/java/cn/qihangerp/erp/controller/OllamaController.java @@ -0,0 +1,40 @@ +package cn.qihangerp.erp.controller; + +import lombok.AllArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; + +import java.util.HashMap; +import java.util.Map; + +@AllArgsConstructor +@RestController +@CrossOrigin +public class OllamaController { + + // 默认的Ollama API地址 + private static final String OLLAMA_BASE_URL = "http://localhost:11434"; + + @GetMapping(value = "/ollama/models") + public ResponseEntity getOllamaModels() { + try { + // 使用RestTemplate调用Ollama API获取模型列表 + RestTemplate restTemplate = new RestTemplate(); + String url = OLLAMA_BASE_URL + "/api/tags"; + + // 调用Ollama API获取模型列表 + Map models = restTemplate.getForObject(url, Map.class); + + return ResponseEntity.ok(models); + } catch (Exception e) { + Map errorResponse = new HashMap<>(); + errorResponse.put("code", 500); + errorResponse.put("msg", "Error connecting to Ollama: " + e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); + } + } +} diff --git a/vue/src/api/ai/ollama.js b/vue/src/api/ai/ollama.js new file mode 100644 index 00000000..f5d99b8e --- /dev/null +++ b/vue/src/api/ai/ollama.js @@ -0,0 +1,9 @@ +import request from '@/utils/request' + +// 获取Ollama模型列表 +export function getOllamaModels() { + return request({ + url: '/api/ai-agent/ollama/models', + method: 'get' + }) +} diff --git a/vue/src/views/index.vue b/vue/src/views/index.vue index 825c2201..2b7ba653 100644 --- a/vue/src/views/index.vue +++ b/vue/src/views/index.vue @@ -9,12 +9,8 @@
- - - - - + 在线
@@ -132,6 +128,7 @@