public OpenAiResponse<Run> listRuns(String threadId, ListSearchParameters listSearchParameters) {
        Map<String, String> search = new HashMap<>();
        if (listSearchParameters != null) {
            ObjectMapper mapper = defaultObjectMapper();
            search = mapper.convertValue(listSearchParameters, Map.class);
        }
        return execute(api.listRuns(threadId, search));
    }
Creates a new OpenAiService that wraps OpenAiApi.
The ExecutorService must be the one you get from the client you created the api with
otherwise shutdownExecutor() won't work.
<p>
Use this if you need more customization.

@param api             OpenAiApi instance to use for all methods
@param executorService the ExecutorService from client.dispatcher().executorService()
service/src/main/java/com/theokanning/openai/service/OpenAiService.java