Correction d'un bug lors de tentative de téléchargement de llm pour ollama
Some checks failed
E2E Tests / e2e (push) Failing after 19s
Build & Push Images / build (brain) (push) Successful in 50s
Build & Push Images / build (core) (push) Successful in 1m22s
Build & Push Images / build (web) (push) Successful in 1m28s

This commit is contained in:
2026-04-26 01:45:39 +02:00
parent fcba907438
commit dfe05cf2d2
6 changed files with 52 additions and 19 deletions

View File

@@ -14,7 +14,7 @@
<groupId>com.loremind</groupId>
<artifactId>loremind-core</artifactId>
<version>0.6.9</version>
<version>0.6.10</version>
<name>LoreMind Core</name>
<description>Backend Core - Architecture Hexagonale</description>

View File

@@ -21,12 +21,10 @@ import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBo
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.Map;
@@ -46,13 +44,16 @@ public class SettingsController {
private final RestTemplate restTemplate;
private final String brainBaseUrl;
private final String brainInternalSecret;
private final boolean demoMode;
public SettingsController(RestTemplate restTemplate,
@Value("${brain.base-url}") String brainBaseUrl,
@Value("${brain.internal-secret}") String brainInternalSecret,
@Value("${app.demo-mode:false}") boolean demoMode) {
this.restTemplate = restTemplate;
this.brainBaseUrl = brainBaseUrl;
this.brainInternalSecret = brainInternalSecret;
this.demoMode = demoMode;
}
@@ -93,12 +94,18 @@ public class SettingsController {
HttpClient http = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest req = HttpRequest.newBuilder()
// Le RestTemplate auto-injecte X-Internal-Secret via un interceptor,
// mais on bypass RestTemplate pour le streaming -> on doit ajouter
// l'entete a la main, sinon le Brain repond 401.
HttpRequest.Builder reqBuilder = HttpRequest.newBuilder()
.uri(URI.create(brainBaseUrl + "/models/ollama/pull"))
.timeout(Duration.ofMinutes(60))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(toJson(body)))
.build();
.POST(HttpRequest.BodyPublishers.ofString(toJson(body)));
if (brainInternalSecret != null && !brainInternalSecret.isBlank()) {
reqBuilder.header("X-Internal-Secret", brainInternalSecret);
}
HttpRequest req = reqBuilder.build();
try {
HttpResponse<InputStream> resp = http.send(req, HttpResponse.BodyHandlers.ofInputStream());
try (InputStream in = resp.body()) {