Skip to content

Commit 9b769df

Browse files
committed
feat(model): model yükleme sürecinde timeout süresi eklendi; model verileri doğrulama ve düzeltme işlemleri güncellendi
1 parent 5b06ba8 commit 9b769df

File tree

5 files changed

+257
-398
lines changed

5 files changed

+257
-398
lines changed

user-service/src/main/java/com/craftpilot/userservice/command/ModelDataLoaderCommand.java

Lines changed: 7 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,8 @@
66
import org.springframework.beans.factory.annotation.Value;
77
import org.springframework.boot.CommandLineRunner;
88
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
9-
import org.springframework.core.io.ClassPathResource;
109
import org.springframework.stereotype.Component;
1110

12-
import java.nio.file.Files;
13-
import java.nio.file.Path;
14-
import java.nio.file.Paths;
1511
import java.time.Duration;
1612

1713
@Component
@@ -24,50 +20,27 @@ public class ModelDataLoaderCommand implements CommandLineRunner {
2420

2521
@Value("${spring.models.file:newmodels.json}")
2622
private String modelsFile;
23+
24+
@Value("${spring.models.timeout:300}")
25+
private int loadTimeoutSeconds;
2726

2827
@Override
2928
public void run(String... args) {
30-
log.info("AI modelleri yükleme işlemi başlıyor...");
29+
log.info("Başlangıçta model yükleme etkin. '{}' dosyasından modeller yükleniyor", modelsFile);
3130

3231
// Dosya yolunu belirle
3332
String jsonFilePath = args.length > 0 && args[0] != null && !args[0].isEmpty() ?
3433
args[0] : modelsFile;
3534

36-
// Önce classpath resource olarak kontrol et
37-
org.springframework.core.io.Resource resource =
38-
new ClassPathResource(jsonFilePath.replace("classpath:", ""));
39-
40-
if (resource.exists()) {
41-
log.info("'{}' classpath kaynağından modeller yükleniyor", jsonFilePath);
42-
modelDataLoader.loadModelsFromJson(jsonFilePath)
43-
.timeout(Duration.ofMinutes(5))
44-
.doOnSuccess(count -> {
45-
log.info("AI model yükleme işlemi tamamlandı: {} model yüklendi", count);
46-
})
47-
.doOnError(error -> {
48-
log.error("AI model yükleme sırasında hata: {}", error.getMessage(), error);
49-
})
50-
.subscribe();
51-
return;
52-
}
53-
54-
// Resource olarak bulunamazsa, dosya sistemi olarak kontrol et
55-
Path path = Paths.get(jsonFilePath);
56-
if (!Files.exists(path)) {
57-
log.error("Model dosyası bulunamadı: {}", path.toAbsolutePath());
58-
return;
59-
}
60-
61-
log.info("'{}' dosyasından modeller yükleniyor", jsonFilePath);
62-
35+
// Modelleri yükle ve işlem tamamlanana kadar bekle
6336
modelDataLoader.loadModelsFromJson(jsonFilePath)
64-
.timeout(Duration.ofMinutes(5))
37+
.timeout(Duration.ofSeconds(loadTimeoutSeconds))
6538
.doOnSuccess(count -> {
6639
log.info("AI model yükleme işlemi tamamlandı: {} model yüklendi", count);
6740
})
6841
.doOnError(error -> {
6942
log.error("AI model yükleme sırasında hata: {}", error.getMessage(), error);
7043
})
71-
.subscribe();
44+
.block(Duration.ofSeconds(loadTimeoutSeconds + 10)); // Bloke etme süresi timeout + 10 saniye
7245
}
7346
}

user-service/src/main/java/com/craftpilot/userservice/model/ai/AIModel.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import lombok.Data;
66
import lombok.NoArgsConstructor;
77
import org.springframework.data.annotation.Id;
8+
import org.springframework.data.mongodb.core.index.Indexed;
89
import org.springframework.data.mongodb.core.mapping.Document;
910

1011
@Data
@@ -14,6 +15,9 @@
1415
@Document(collection = "ai_models")
1516
public class AIModel {
1617
@Id
18+
private String id;
19+
20+
@Indexed(unique = true)
1721
private String modelId;
1822
private String modelName;
1923
private String provider;
@@ -23,12 +27,5 @@ public class AIModel {
2327
private String creditType;
2428
private String category;
2529
private Integer contextLength;
26-
private Double defaultTemperature;
27-
private String icon;
28-
private String description;
29-
private Double fee;
30-
private Boolean featured;
31-
private Integer maxTokens;
32-
private Boolean multimodal;
33-
private Boolean active;
30+
private Boolean isActive;
3431
}

user-service/src/main/java/com/craftpilot/userservice/repository/ProviderRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
55
import org.springframework.stereotype.Repository;
66
import reactor.core.publisher.Flux;
7+
import reactor.core.publisher.Mono;
78

89
@Repository
910
public interface ProviderRepository extends ReactiveMongoRepository<Provider, String> {
1011
// Provider'ları bulmak için ek metotlar buraya eklenebilir
12+
Mono<Provider> findByName(String name);
1113
}

0 commit comments

Comments
 (0)