Skip to content

Commit f8ae950

Browse files
feat(OpenAI integration): Specify chat api url (#317)
1 parent c5cade4 commit f8ae950

File tree

3 files changed

+18
-14
lines changed

3 files changed

+18
-14
lines changed

src/main/java/org/wise/portal/presentation/web/controllers/ChatGptcontroller.java renamed to src/main/java/org/wise/portal/presentation/web/controllers/ChatGptController.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
import java.io.OutputStreamWriter;
77
import java.net.HttpURLConnection;
88
import java.net.URL;
9-
import org.springframework.beans.factory.annotation.Autowired;
10-
import org.springframework.core.env.Environment;
9+
import org.springframework.beans.factory.annotation.Value;
1110
import org.springframework.security.access.annotation.Secured;
1211
import org.springframework.web.bind.annotation.PostMapping;
1312
import org.springframework.web.bind.annotation.RequestBody;
@@ -16,33 +15,36 @@
1615
import org.springframework.web.bind.annotation.RestController;
1716

1817
@RestController
19-
@RequestMapping("/api")
20-
public class ChatGptcontroller {
18+
@RequestMapping("/api/chat-gpt")
19+
public class ChatGptController {
2120

22-
@Autowired
23-
Environment appProperties;
21+
@Value("${openai.api.key:}")
22+
private String openAiApiKey;
23+
24+
@Value("${openai.chat.api.url:https://api.openai.com/v1/chat/completions}")
25+
private String openAiChatApiUrl;
2426

2527
@ResponseBody
2628
@Secured("ROLE_USER")
27-
@PostMapping("/chat-gpt")
29+
@PostMapping
2830
protected String sendChatMessage(@RequestBody String body) {
29-
String openaiApiKey = appProperties.getProperty("OPENAI_API_KEY");
30-
if (openaiApiKey == null || openaiApiKey.isEmpty()) {
31+
if (openAiApiKey == null || openAiApiKey.isEmpty()) {
3132
throw new RuntimeException("OPENAI_API_KEY is not set");
3233
}
3334
try {
34-
URL url = new URL("https://api.openai.com/v1/chat/completions");
35+
URL url = new URL(openAiChatApiUrl);
3536
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
3637
connection.setRequestMethod("POST");
37-
connection.setRequestProperty("Authorization", "Bearer " + openaiApiKey);
38+
connection.setRequestProperty("Authorization", "Bearer " + openAiApiKey);
3839
connection.setRequestProperty("Content-Type", "application/json; charset=utf-8");
3940
connection.setRequestProperty("Accept-Charset", "UTF-8");
4041
connection.setDoOutput(true);
4142
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
4243
writer.write(body);
4344
writer.flush();
4445
writer.close();
45-
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(),"ISO-8859-1"));
46+
BufferedReader br = new BufferedReader(
47+
new InputStreamReader(connection.getInputStream(), "UTF-8"));
4648
String line;
4749
StringBuffer response = new StringBuffer();
4850
while ((line = br.readLine()) != null) {

src/main/resources/application-dockerdev-sample.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,8 @@ system-wide-salt=secret
217217
#speech-to-text.aws.identity-pool-id=
218218

219219
# OpenAI and AWS Bedrock Chat endpoints (optional)
220-
#OPENAI_API_KEY=
220+
#openai.api.key=
221+
#openai.chat.api.url=
221222
#aws.bedrock.api.key=
222223
#aws.bedrock.runtime.endpoint=
223224

src/main/resources/application_sample.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ system-wide-salt=secret
217217
#speech-to-text.aws.identity-pool-id=
218218

219219
# OpenAI and AWS Bedrock Chat endpoints (optional)
220-
#OPENAI_API_KEY=
220+
#openai.api.key=
221+
#openai.chat.api.url=
221222
#aws.bedrock.api.key=
222223
#aws.bedrock.runtime.endpoint=

0 commit comments

Comments
 (0)