-
Notifications
You must be signed in to change notification settings - Fork 2
/
InsurancePolicyPlugin.java
29 lines (24 loc) · 1.09 KB
/
InsurancePolicyPlugin.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.microsoft.openai.samples.insurancedemo.plugin;
import com.azure.core.http.HttpClient;
import com.azure.core.http.HttpMethod;
import com.azure.core.http.HttpRequest;
import com.microsoft.semantickernel.orchestration.SKContext;
import com.microsoft.semantickernel.skilldefinition.annotations.DefineSKFunction;
import reactor.core.publisher.Mono;
public class InsurancePolicyPlugin {
private final HttpClient httpClient;
private final String baseUrl;
public InsurancePolicyPlugin() {
this.httpClient = HttpClient.createDefault();
this.baseUrl = "http://localhost:8080/api/insurance-policies";
}
public InsurancePolicyPlugin(HttpClient httpClient, String baseUrl) {
this.httpClient = httpClient;
this.baseUrl = baseUrl;
}
@DefineSKFunction(description = "Fetch the list of insurance policies", name = "GetPolicies")
public Mono<String> getPoliciesAsync(SKContext context) {
HttpRequest request = new HttpRequest(HttpMethod.GET, baseUrl);
return httpClient.send(request).flatMap(response -> response.getBodyAsString());
}
}