feat(ai): restClient和webClient提供给其他类使用
This commit is contained in:
12
service-ai/bin/build-ai-core.js
Normal file
12
service-ai/bin/build-ai-core.js
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import {cd, path} from 'zx'
|
||||||
|
import {trim} from "licia";
|
||||||
|
import {run_deploy} from '../../bin/library.js'
|
||||||
|
|
||||||
|
// 切换目录
|
||||||
|
cd(trim(path.dirname(import.meta.dirname)))
|
||||||
|
// 执行流程
|
||||||
|
try {
|
||||||
|
await run_deploy('service-ai-core')
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e)
|
||||||
|
}
|
||||||
@@ -1,17 +1,13 @@
|
|||||||
package com.lanyuanxiaoyao.service.ai.chat;
|
package com.lanyuanxiaoyao.service.ai.chat;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import java.net.http.HttpClient;
|
import com.lanyuanxiaoyao.service.ai.core.configuration.WebClientConfiguration;
|
||||||
import org.springframework.ai.chat.client.ChatClient;
|
import org.springframework.ai.chat.client.ChatClient;
|
||||||
import org.springframework.ai.openai.OpenAiChatModel;
|
import org.springframework.ai.openai.OpenAiChatModel;
|
||||||
import org.springframework.ai.openai.OpenAiChatOptions;
|
import org.springframework.ai.openai.OpenAiChatOptions;
|
||||||
import org.springframework.ai.openai.api.OpenAiApi;
|
import org.springframework.ai.openai.api.OpenAiApi;
|
||||||
import org.springframework.ai.tool.annotation.Tool;
|
import org.springframework.ai.tool.annotation.Tool;
|
||||||
import org.springframework.ai.tool.annotation.ToolParam;
|
import org.springframework.ai.tool.annotation.ToolParam;
|
||||||
import org.springframework.http.client.JdkClientHttpRequestFactory;
|
|
||||||
import org.springframework.http.client.reactive.JdkClientHttpConnector;
|
|
||||||
import org.springframework.web.client.RestClient;
|
|
||||||
import org.springframework.web.reactive.function.client.WebClient;
|
|
||||||
import reactor.core.Disposable;
|
import reactor.core.Disposable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -26,8 +22,8 @@ public class TestSpringAiTools {
|
|||||||
OpenAiApi.builder()
|
OpenAiApi.builder()
|
||||||
.baseUrl("http://132.121.206.65:10086")
|
.baseUrl("http://132.121.206.65:10086")
|
||||||
.apiKey("*XMySqV%>hR&v>>g*NwCs3tpQ5FVMFEF2VHVTj<MYQd$&@$sY7CgqNyea4giJi4")
|
.apiKey("*XMySqV%>hR&v>>g*NwCs3tpQ5FVMFEF2VHVTj<MYQd$&@$sY7CgqNyea4giJi4")
|
||||||
.restClientBuilder(restClientBuilder())
|
.restClientBuilder(WebClientConfiguration.generateRestClientBuilder())
|
||||||
.webClientBuilder(webClientBuilder())
|
.webClientBuilder(WebClientConfiguration.generateWebClientBuilder())
|
||||||
.build()
|
.build()
|
||||||
)
|
)
|
||||||
.defaultOptions(
|
.defaultOptions(
|
||||||
@@ -48,22 +44,6 @@ public class TestSpringAiTools {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static HttpClient httpClient() {
|
|
||||||
return HttpClient.newBuilder()
|
|
||||||
.version(HttpClient.Version.HTTP_1_1)
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static RestClient.Builder restClientBuilder() {
|
|
||||||
return RestClient.builder()
|
|
||||||
.requestFactory(new JdkClientHttpRequestFactory(httpClient()));
|
|
||||||
}
|
|
||||||
|
|
||||||
private static WebClient.Builder webClientBuilder() {
|
|
||||||
return WebClient.builder()
|
|
||||||
.clientConnector(new JdkClientHttpConnector(httpClient()));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final class TestTool {
|
public static final class TestTool {
|
||||||
@Tool(description = "传入任意动物名称,返回一个关于这个动物的笑话")
|
@Tool(description = "传入任意动物名称,返回一个关于这个动物的笑话")
|
||||||
public String submit(@ToolParam(description = "动物名称") String animalName) {
|
public String submit(@ToolParam(description = "动物名称") String animalName) {
|
||||||
|
|||||||
@@ -17,22 +17,30 @@ import org.springframework.web.reactive.function.client.WebClient;
|
|||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
public class WebClientConfiguration {
|
public class WebClientConfiguration {
|
||||||
private HttpClient httpClient() {
|
|
||||||
return HttpClient.newBuilder()
|
|
||||||
.version(HttpClient.Version.HTTP_1_1)
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@Primary
|
@Primary
|
||||||
public RestClient.Builder restClientBuilder() {
|
public RestClient.Builder restClientBuilder() {
|
||||||
return RestClient.builder()
|
return generateRestClientBuilder();
|
||||||
.requestFactory(new JdkClientHttpRequestFactory(httpClient()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@Primary
|
@Primary
|
||||||
public WebClient.Builder webClientBuilder() {
|
public WebClient.Builder webClientBuilder() {
|
||||||
|
return generateWebClientBuilder();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static HttpClient httpClient() {
|
||||||
|
return HttpClient.newBuilder()
|
||||||
|
.version(HttpClient.Version.HTTP_1_1)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static RestClient.Builder generateRestClientBuilder() {
|
||||||
|
return RestClient.builder()
|
||||||
|
.requestFactory(new JdkClientHttpRequestFactory(httpClient()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static WebClient.Builder generateWebClientBuilder() {
|
||||||
return WebClient.builder()
|
return WebClient.builder()
|
||||||
.clientConnector(new JdkClientHttpConnector(httpClient()));
|
.clientConnector(new JdkClientHttpConnector(httpClient()));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user