调用工具:获取天气
This commit is contained in:
parent
7b2dfa43e9
commit
7d65f1ced7
@ -0,0 +1,11 @@
|
||||
package com.huangge1199.aiagent.Service;
|
||||
|
||||
/**
|
||||
* ToolsService
|
||||
*
|
||||
* @author huangge1199
|
||||
* @since 2025/5/27 15:06:53
|
||||
*/
|
||||
public interface ToolsService {
|
||||
String getWeather(String question);
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package com.huangge1199.aiagent.Service.impl;
|
||||
|
||||
import com.huangge1199.aiagent.Service.ToolsService;
|
||||
import com.huangge1199.aiagent.config.MyLoggerAdvisor;
|
||||
import com.huangge1199.aiagent.tools.WeatherTools;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.ai.chat.client.ChatClient;
|
||||
import org.springframework.ai.ollama.OllamaChatModel;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* ToolsServiceImpl
|
||||
*
|
||||
* @author huangge1199
|
||||
* @since 2025/5/27 15:07:06
|
||||
*/
|
||||
@Service
|
||||
public class ToolsServiceImpl implements ToolsService {
|
||||
|
||||
@Resource
|
||||
private OllamaChatModel ollamaChatModel;
|
||||
|
||||
@Override
|
||||
public String getWeather(String question) {
|
||||
return ChatClient.create(ollamaChatModel)
|
||||
.prompt(question)
|
||||
.advisors(new MyLoggerAdvisor())
|
||||
.tools(new WeatherTools())
|
||||
.call().content();
|
||||
}
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package com.huangge1199.aiagent.controller;
|
||||
|
||||
import com.huangge1199.aiagent.Service.ToolsService;
|
||||
import com.huangge1199.aiagent.common.R;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.ai.document.Document;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* ToolController
|
||||
*
|
||||
* @author huangge1199
|
||||
* @since 2025/5/27 14:59:32
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/tool")
|
||||
@Tag(name = "工具调用")
|
||||
public class ToolController {
|
||||
|
||||
@Resource
|
||||
private ToolsService toolsService;
|
||||
|
||||
@PostMapping("/getWeather")
|
||||
@Operation(summary = "获取天气")
|
||||
public R<String> getWeather(@RequestBody String question) {
|
||||
String result = toolsService.getWeather(question);
|
||||
return R.ok(result);
|
||||
}
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.huangge1199.aiagent.tools;
|
||||
|
||||
import org.springframework.ai.tool.annotation.Tool;
|
||||
import org.springframework.ai.tool.annotation.ToolParam;
|
||||
|
||||
/**
|
||||
* WeatherTools
|
||||
*
|
||||
* @author huangge1199
|
||||
* @since 2025/5/27 15:01:04
|
||||
*/
|
||||
public class WeatherTools {
|
||||
|
||||
@Tool(description = "Get current weather for a location")
|
||||
public String getWeather(@ToolParam(description = "The city name") String city) {
|
||||
return "Current weather in " + city +": Sunny, 25°";
|
||||
}
|
||||
}
|
@ -11,7 +11,7 @@ spring:
|
||||
ollama:
|
||||
base-url: http://192.168.188.2:11435
|
||||
chat:
|
||||
model: gemma3:1b
|
||||
model: llama3.2:3b
|
||||
vectorstore:
|
||||
pgvector:
|
||||
index-type: HNSW
|
||||
|
Loading…
Reference in New Issue
Block a user