Files

1 line
8.7 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"repo": "aspeate/aiagentscaffold", "files": {"ai-agent-scaffold-lite-app/src/test/java/cn/bugstack/ai/test/api/model/SpringAiApiTest.java": {"94c21022d5669a8044d8480156c42c24a7cbf5d7": {"t": 1785746122.8151293, "n": 1206, "h": "ae8a5dde7f9365fb", "c": "package cn.bugstack.ai.test.api.model;\n\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.ai.chat.model.ChatModel;\nimport org.springframework.ai.openai.OpenAiChatModel;\nimport org.springframework.ai.openai.OpenAiChatOptions;\nimport org.springframework.ai.openai.api.OpenAiApi;\n\n/**\n * Spring AI Test\n * 文档:<a href=\"https://docs.spring.io/spring-ai/reference/1.0/api/advisors.html\">spring ai</a>\n * @author xiaofuge bugstack.cn @小傅哥\n * 2025/12/14 09:15\n */\n@Slf4j\npublic class SpringAiApiTest {\n\n public static void main(String[] args) {\n OpenAiApi openAiApi = OpenAiApi.builder()\n .baseUrl(\"https://api.deepseek.com\")\n .apiKey(\"sk-9a0da2ca434742d9ae14066cf0e3ba96\")\n .completionsPath(\"v1/chat/completions\")\n .embeddingsPath(\"v1/embeddings\")\n .build();\n\n ChatModel chatModel = OpenAiChatModel.builder()\n .openAiApi(openAiApi)\n .defaultOptions(OpenAiChatOptions.builder()\n .model(\"deepseek-chat\")\n .build())\n .build();\n\n String call = chatModel.call(\"hi 你好哇!\");\n\n log.info(\"测试结果:{}\", call);\n }\n\n}\n"}, "3ce0f95caa32f02339add99b3177520aebecf58b": {"t": 1785760014.7091339, "n": 1206, "h": "ae8a5dde7f9365fb", "c": "package cn.bugstack.ai.test.api.model;\n\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.ai.chat.model.ChatModel;\nimport org.springframework.ai.openai.OpenAiChatModel;\nimport org.springframework.ai.openai.OpenAiChatOptions;\nimport org.springframework.ai.openai.api.OpenAiApi;\n\n/**\n * Spring AI Test\n * 文档:<a href=\"https://docs.spring.io/spring-ai/reference/1.0/api/advisors.html\">spring ai</a>\n * @author xiaofuge bugstack.cn @小傅哥\n * 2025/12/14 09:15\n */\n@Slf4j\npublic class SpringAiApiTest {\n\n public static void main(String[] args) {\n OpenAiApi openAiApi = OpenAiApi.builder()\n .baseUrl(\"https://api.deepseek.com\")\n .apiKey(\"sk-9a0da2ca434742d9ae14066cf0e3ba96\")\n .completionsPath(\"v1/chat/completions\")\n .embeddingsPath(\"v1/embeddings\")\n .build();\n\n ChatModel chatModel = OpenAiChatModel.builder()\n .openAiApi(openAiApi)\n .defaultOptions(OpenAiChatOptions.builder()\n .model(\"deepseek-chat\")\n .build())\n .build();\n\n String call = chatModel.call(\"hi 你好哇!\");\n\n log.info(\"测试结果:{}\", call);\n }\n\n}\n"}}, "ai-agent-scaffold-lite-app/src/test/java/cn/bugstack/ai/test/api/tool/mcp/SpringAiToolTest.java": {"94c21022d5669a8044d8480156c42c24a7cbf5d7": {"t": 1785746123.182074, "n": 3333, "h": "242aa2bcca3a3cdc", "c": "package cn.bugstack.ai.test.api.tool.mcp;\n\nimport io.modelcontextprotocol.client.McpClient;\nimport io.modelcontextprotocol.client.McpSyncClient;\nimport io.modelcontextprotocol.client.transport.HttpClientSseClientTransport;\nimport lombok.extern.slf4j.Slf4j;\nimport org.junit.jupiter.api.Test;\nimport org.springframework.ai.chat.model.ChatModel;\nimport org.springframework.ai.mcp.SyncMcpToolCallbackProvider;\nimport org.springframework.ai.openai.OpenAiChatModel;\nimport org.springframework.ai.openai.OpenAiChatOptions;\nimport org.springframework.ai.openai.api.OpenAiApi;\n\nimport java.net.MalformedURLException;\nimport java.net.URL;\nimport java.time.Duration;\n\n/**\n * Spring Ai Tool\n *\n * @author xiaofuge bugstack.cn @小傅哥\n * 2025/12/14 09:51\n */\n@Slf4j\npublic class SpringAiToolTest {\n\n public static void main(String[] args) {\n OpenAiApi openAiApi = OpenAiApi.builder()\n .baseUrl(\"https://api.deepseek.com\")\n .apiKey(\"sk-9a0da2ca434742d9ae14066cf0e3ba96\")\n .completionsPath(\"v1/chat/completions\")\n .embeddingsPath(\"v1/embeddings\")\n .build();\n\n ChatModel chatModel = OpenAiChatModel.builder()\n .openAiApi(openAiApi)\n .defaultOptions(OpenAiChatOptions.builder()\n .model(\"deepseek-chat\")\n .toolCallbacks(SyncMcpToolCallbackProvider.builder()\n .mcpClients(sseMcpClient()).build()\n .getToolCallbacks())\n .build())\n .build();\n\n String call = chatModel.call(\"你哪有哪些工具能力\");\n\n log.info(\"测试结果:{}\", call);\n }\n\n /**\n * 百度搜索MCP服务(url);https://sai.baidu.com/zh/detail/e014c6ffd555697deabf00d058baf388\n * 百度搜索MCP服务(key);https://console.bce.baidu.com/iam/?_=1753597622044#/iam/apikey/list\n */\n public static McpSyncClient sseMcpClient() {\n\n // 自己申请 api_key\n HttpClientSseClientTransport sseClientTransport = HttpClientSseClientTransport.builder(\"http://appbuilder.baidu.com/v2/ai_search/mcp/\")\n .sseEndpoint(\"sse?api_key=bce-v3/ALTAK-9rPo5JR0wv888eaTCPv43/9fc2dbaddb06d7d78a2ae37380376c52d376f62d\")\n .build();\n\n McpSyncClient mcpSyncClient = McpClient.sync(sseClientTransport).requestTimeout(Duration.ofMinutes(360)).build();\n var init_sse = mcpSyncClient.initialize();\n log.info(\"Tool SSE MCP Initialized {}\", init_sse);\n\n return mcpSyncClient;\n }\n\n @Test\n public void test_url() throws MalformedURLException {\n String fullUrl = \"http://appbuilder.baidu.com/v2/ai_search/mcp/sse?api_key=bce-v3/ALTAK-JFZXXLpfxhAutDQvJ32Ei/4492c1879b8c2f0df4612ef5b4a52df1c1fba9f7\";\n\n fullUrl = \"http://127.0.0.1:9999/sse?apiKey=xxxx\";\n\n URL url = new URL(fullUrl);\n\n String protocol = url.getProtocol();\n String host = url.getHost();\n int port = url.getPort();\n\n String baseUrl = port == -1 ? protocol + \"://\" + host : protocol + \"://\" + host + \":\" + port;\n String endpoint = \"\";\n\n int index = fullUrl.indexOf(baseUrl);\n if (index != -1) {\n endpoint = fullUrl.substring(index + baseUrl.length());\n }\n\n log.info(\"baseUrl:{}\", baseUrl);\n log.info(\"endpoint:{}\", endpoint);\n }\n\n\n}\n"}}, "ai-agent-scaffold-lite-app/src/test/java/cn/bugstack/ai/test/api/tool/skills/SpringAiToolTest.java": {"94c21022d5669a8044d8480156c42c24a7cbf5d7": {"t": 1785746136.0332355, "n": 1876, "h": "4c4034d135094d28", "c": "package cn.bugstack.ai.test.api.tool.skills;\n\nimport lombok.extern.slf4j.Slf4j;\nimport org.springaicommunity.agent.tools.SkillsTool;\nimport org.springframework.ai.chat.model.ChatModel;\nimport org.springframework.ai.openai.OpenAiChatModel;\nimport org.springframework.ai.openai.OpenAiChatOptions;\nimport org.springframework.ai.openai.api.OpenAiApi;\nimport org.springframework.ai.tool.ToolCallback;\nimport org.springframework.core.io.ClassPathResource;\n\nimport java.util.ArrayList;\n\n/**\n * Spring Ai Tool\n *\n * @author xiaofuge bugstack.cn @小傅哥\n * 2025/12/14 09:51\n */\n@Slf4j\npublic class SpringAiToolTest {\n\n public static void main(String[] args) {\n OpenAiApi openAiApi = OpenAiApi.builder()\n .baseUrl(\"https://api.deepseek.com\")\n .apiKey(\"sk-9976f6a8a9a9487da97f738174425196\")\n .completionsPath(\"v1/chat/completions\")\n .embeddingsPath(\"v1/embeddings\")\n .build();\n\n // https://github.com/spring-ai-community/spring-ai-agent-utils\n// ToolCallback toolCallback01 = SkillsTool.builder()\n// .addSkillsDirectory(\"D:\\code\\java\\xfg\\sfg-1\\ai-agent-scaffold-lite\\docs\\dev-ops\\agent\\skills\")\n// .build();\n\n ToolCallback toolCallback02 = SkillsTool.builder()\n .addSkillsResource(new ClassPathResource(\"agent/skills\"))\n .build();\n\n ChatModel chatModel = OpenAiChatModel.builder()\n .openAiApi(openAiApi)\n .defaultOptions(OpenAiChatOptions.builder()\n .model(\"deepseek-chat\")\n .toolCallbacks(new ArrayList<>(){{\n add(toolCallback02);\n }})\n .build())\n .build();\n\n String call = chatModel.call(\"你有什么技能\");\n\n log.info(\"测试结果:{}\", call);\n }\n\n}\n"}}}}