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 @@