package com.iwe3.langchain4j.tools;

import com.iwe3.langchain4j.mcp.BaiduMcpService;
import dev.langchain4j.agent.tool.P;
import dev.langchain4j.agent.tool.Tool;
import dev.langchain4j.agent.tool.ToolSpecification;
import dev.langchain4j.data.message.UserMessage;
import dev.langchain4j.mcp.McpToolProvider;
import dev.langchain4j.mcp.client.McpClient;
import dev.langchain4j.model.chat.ChatModel;
import dev.langchain4j.model.chat.request.ChatRequest;
import dev.langchain4j.model.chat.response.ChatResponse;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;
import reactor.core.publisher.Flux;

import java.util.List;

@Component
public class BaiduMcpTools {

    @Resource
    private BaiduMcpService baiduMcpService;

    @Tool(name = "query_baidu_mcp",value = """
            该工具通过调用百度 MCP（多能力服务平台）来回答用户问题。
              支持以下三类查询：
              - IP 地址归属地：例如，“IP 地址 8.8.8.8 位于哪里？”
              - 天气预报：例如，“今天成都天气怎么样？”
              - 前往华西医院的交通路线：例如，“从春熙路怎么去华西医院？”
              输入：一个与 IP 归属地、天气或华西医院路线相关的自然语言问题。
              输出：来自 MCP 服务的简洁、准确的事实性回答。
              只要用户询问上述任一类型的问题，必须使用此工具，不得自行回答。
            """)
    public String invocationBaiduMcpServer(String question) {
        System.out.println("调用百度MCP服务开始！");
        return baiduMcpService.chat(question);
    }
}
