diff --git a/backend/src/main/java/ch/xxx/aidoclibchat/adapter/client/OpenLibraryRestClient.java b/backend/src/main/java/ch/xxx/aidoclibchat/adapter/client/OpenLibraryRestClient.java index a55401f..e337084 100644 --- a/backend/src/main/java/ch/xxx/aidoclibchat/adapter/client/OpenLibraryRestClient.java +++ b/backend/src/main/java/ch/xxx/aidoclibchat/adapter/client/OpenLibraryRestClient.java @@ -21,6 +21,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.client.RestClient; @@ -31,6 +32,8 @@ public class OpenLibraryRestClient implements OpenLibraryClient { private static final Logger LOGGER = LoggerFactory.getLogger(OpenLibraryRestClient.class); private final String baseUrl = "https://openlibrary.org/search.json"; private final RestClient restClient; + @Value("${openlibrary.result-size:10}") + private int resultLimit; public OpenLibraryRestClient(RestClient restClient) { this.restClient = restClient; @@ -44,7 +47,7 @@ public Response apply(Request request) { var paramsStr = List.of(authorOpt, titleOpt, subjectOpt).stream() .filter(Optional::isPresent).map(Optional::get).collect(Collectors.joining("&")); var urlStr = - String.format("%s?%s&limit=10", this.baseUrl, paramsStr); + String.format("%s?%s&limit=%d", this.baseUrl, paramsStr, this.resultLimit); LOGGER.info(urlStr); var response = this.restClient.get().uri(urlStr).retrieve().body(Response.class); return response; diff --git a/backend/src/main/java/ch/xxx/aidoclibchat/adapter/controller/FunctionController.java b/backend/src/main/java/ch/xxx/aidoclibchat/adapter/controller/FunctionController.java index 3d9f946..df71ef0 100644 --- a/backend/src/main/java/ch/xxx/aidoclibchat/adapter/controller/FunctionController.java +++ b/backend/src/main/java/ch/xxx/aidoclibchat/adapter/controller/FunctionController.java @@ -39,7 +39,7 @@ public FunctionController(FunctionService functionService) { @PostMapping(path="/books", produces = MediaType.APPLICATION_JSON_VALUE) public FunctionResult postQuestion(@RequestBody FunctionSearch functionSearch) { - return new FunctionResult(this.functionService.functionCall(functionSearch.question(), functionSearch.resultAmount())); + return new FunctionResult(this.functionService.functionCall(functionSearch.question())); } } diff --git a/backend/src/main/java/ch/xxx/aidoclibchat/domain/model/dto/FunctionSearch.java b/backend/src/main/java/ch/xxx/aidoclibchat/domain/model/dto/FunctionSearch.java index 875219a..e5d7b55 100644 --- a/backend/src/main/java/ch/xxx/aidoclibchat/domain/model/dto/FunctionSearch.java +++ b/backend/src/main/java/ch/xxx/aidoclibchat/domain/model/dto/FunctionSearch.java @@ -12,4 +12,4 @@ */ package ch.xxx.aidoclibchat.domain.model.dto; -public record FunctionSearch(String question, Long resultAmount) { } +public record FunctionSearch(String question) { } diff --git a/backend/src/main/java/ch/xxx/aidoclibchat/usecase/service/FunctionService.java b/backend/src/main/java/ch/xxx/aidoclibchat/usecase/service/FunctionService.java index ef34eff..d08846c 100644 --- a/backend/src/main/java/ch/xxx/aidoclibchat/usecase/service/FunctionService.java +++ b/backend/src/main/java/ch/xxx/aidoclibchat/usecase/service/FunctionService.java @@ -39,7 +39,7 @@ public FunctionService(Builder builder) { this.chatClient = builder.build(); } - public String functionCall(String question, Long resultsAmount) { + public String functionCall(String question) { if (!this.activeProfile.contains("ollama")) { return ""; } diff --git a/backend/src/main/resources/application.properties b/backend/src/main/resources/application.properties index 463cd1f..784789e 100644 --- a/backend/src/main/resources/application.properties +++ b/backend/src/main/resources/application.properties @@ -39,4 +39,5 @@ management.endpoint.health.show-details=always embedding-token-limit=2000 document-token-limit=2000 -image.result-size=20 \ No newline at end of file +image.result-size=20 +openlibrary.result-size=10 \ No newline at end of file diff --git a/frontend/src/angular/src/app/function-search/function-search.component.ts b/frontend/src/angular/src/app/function-search/function-search.component.ts index 4605650..7daf5d8 100644 --- a/frontend/src/angular/src/app/function-search/function-search.component.ts +++ b/frontend/src/angular/src/app/function-search/function-search.component.ts @@ -98,8 +98,7 @@ export class FunctionSearchComponent { ); this.functionSearchService .postLibraryFunction({ - question: this.searchValueControl.value, - resultAmount: 10, + question: this.searchValueControl.value } as FunctionSearch) .pipe( tap(() => this.repeatSub?.unsubscribe()), diff --git a/frontend/src/angular/src/app/model/functions.ts b/frontend/src/angular/src/app/model/functions.ts index f82cc77..e0fd20e 100644 --- a/frontend/src/angular/src/app/model/functions.ts +++ b/frontend/src/angular/src/app/model/functions.ts @@ -12,7 +12,6 @@ */ export interface FunctionSearch { question: string; - resultAmount: number; } export interface Book {