Я использую Spring Boot AI для базового приложения LLM. Моя компания организовала свои модели LLM по адресу https://dummy-server.xyz.com/. Чтобы проверить, как это работает, я взял пример с официального сайта Spring AI и попробовал на местном уровне. Но получение приведенной ниже ошибки. Я пытался обойти проверку сертификата SSL, но это также не работает. Есть идеи, как это решить? Пожалуйста, найдите сообщение об ошибке и мой код. < /P>
@RestController
public class ChatController {
private final OpenAiChatModel chatModel;
@Autowired
public ChatController(@Qualifier("openAiChatModel") OpenAiChatModel chatModel) {
this.chatModel = chatModel;
}
@GetMapping("/ai/generate")
public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
return Map.of("generation", this.chatModel.call(message));
}
@GetMapping("/ai/generateStream")
public Flux generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
Prompt prompt = new Prompt(new UserMessage(message));
return this.chatModel.stream(prompt);
}
}
@Configuration
public class ChatClientConfig {
@Bean
public OpenAiChatModel openAiChatModel(@Qualifier("unsafeWebClientBuilder") WebClient unsafeWebClientBuilder) {
OpenAiApi openAiApi = new OpenAiApi("https://dummy-server.xyz.com/","OTBjZWU ... 00Mm5sdsGH", RestClient.builder(),unsafeWebClientBuilder.mutate());
return new OpenAiChatModel(openAiApi);
}
}
@Configuration
public class UnsafeWebClientConfig {
@Bean
public WebClient unsafeWebClientBuilder() throws NoSuchAlgorithmException, KeyManagementException {
HttpClient httpClient = HttpClient.create()
.secure(sslContextSpec -> {
try {
sslContextSpec.sslContext(SslContextBuilder.forClient()
.trustManager(InsecureTrustManagerFactory.INSTANCE)
.build());
} catch (SSLException e) {
throw new RuntimeException("Failed to create SSL context", e);
}
});
return WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(httpClient))
.build();
}
}
< /code>
к обходу сертификата Я пробовал другие методы, также доступные в Интернете, например, «x509certificate» < /p>
Ошибка: < /p>
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://dummy-server.xyz.com/v1/v1/chat/completions": PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'chatController' defined in file [C:\Users\Administrator\Documents\spring-ai-multi-llm-chat-svc-main\spring-ai-multi-llm-chat-svc-main\target\classes\com\raj\nola\llm\chat\controller\ChatController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'openAiChatModel' defined in class path resource [com/raj/nola/llm/chat/controller/OpenAiClientConfig.class]: Unsatisfied dependency expressed through method 'openAiChatModel' parameter 0: Error creating bean with name 'openAiApi' defined in class path resource [com/raj/nola/llm/chat/controller/OpenAiClientConfig.class]: Failed to instantiate [org.springframework.ai.openai.api.OpenAiApi]: Factory method 'openAiApi' threw exception with message: class org.springframework.web.reactive.function.client.DefaultWebClient cannot be cast to class org.springframework.web.reactive.function.client.WebClient$Builder (org.springframework.web.reactive.function.client.DefaultWebClient and org.springframework.web.reactive.function.client.WebClient$Builder are in unnamed module of loader 'app')
< /code>
Интересная вещь - та же конечная точка, которую я могу использовать из Python. Я попробовал этот простой код, и он работает как очарование. < /P>
httpx_client = httpx.Client(verify=False)
llm = OpenAI(
base_url="https://dummy-server.xyz.com/v1",
model_name=model_name,
temperature=0.9,
api_key='API_KEY',
http_client=httpx_client
)
< /code>
Я не уверен, как решить эту проблему. Так что, если кто -то может помочь.
Подробнее здесь: https://stackoverflow.com/questions/795 ... ted-target
Spring AI Получите «Невозможно найти действительный путь сертификации для запрошенной цели», используя пользовательскую ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение