Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
262db02
feat: add docker-compose file
lu-yg Jul 14, 2025
a6bab59
feat: add maven settings.xml
lu-yg Jul 14, 2025
5ed6d4e
feat: add docker deploy
lu-yg Jul 16, 2025
7253d72
feat: add dockerfile
lu-yg Jul 16, 2025
8adea2a
add docker deploy
lu-yg Jul 16, 2025
3d418bf
add docker deploy
lu-yg Jul 16, 2025
987512d
feat: add docker deploy
lu-yg Jul 16, 2025
a9ad907
fix: fix application-alpha.yml
lu-yg Jul 16, 2025
899816f
fix: Fix nginx.conf
lu-yg Jul 16, 2025
2b9768d
fix: Fix init_data_for_test_v1.0.0.sql
lu-yg Aug 4, 2025
f190b6f
fix: fix init_data_for_test_v1.0.0.sql
lu-yg Aug 4, 2025
797ba7a
fix: fix init_data_for_test_v1.0.0.sql
lu-yg Aug 4, 2025
7e668bf
feat: Add a universal OpenAI API
lu-yg Aug 6, 2025
dac0490
Merge branch 'opentiny:develop' into feat/docker
lu-yg Aug 6, 2025
61b73ee
Merge branch 'feat/docker' of github.com:lu-yg/tiny-engine-backend-ja…
lu-yg Aug 6, 2025
75d535e
feat: Add a universal OpenAI API
lu-yg Aug 6, 2025
55af856
feat: Add a universal OpenAI API
lu-yg Aug 6, 2025
eb55ed6
fix: Fix a universal OpenAI API
lu-yg Aug 6, 2025
9c395aa
fix: Fix a universal OpenAI API
lu-yg Aug 6, 2025
003e498
fix: Fix a universal OpenAI API
lu-yg Aug 6, 2025
7ce518c
fix: Fix a universal OpenAI API
lu-yg Aug 7, 2025
8331a15
fix: Fix a universal OpenAI API
lu-yg Aug 7, 2025
b64cf66
fix: Fix ChatRequest dto
lu-yg Aug 7, 2025
993e6b3
fix: Fix ChatRequest dto
lu-yg Aug 7, 2025
b4c5a76
Merge branch 'opentiny:develop' into feat/docker
lu-yg Aug 27, 2025
4f7e224
fix: Format code and fix style issues
lu-yg Aug 27, 2025
453a0cf
Merge branch 'feat/docker' of github.com:lu-yg/tiny-engine-backend-ja…
lu-yg Aug 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@

package com.tinyengine.it.common.converter;


import org.springframework.http.HttpInputMessage;
import org.springframework.http.HttpOutputMessage;
import org.springframework.http.MediaType;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,6 @@

import lombok.Data;

import java.util.List;
import java.util.Map;

/**
* ChatRequest dto
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody;

import java.io.IOException;
import java.io.OutputStream;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
Expand Down Expand Up @@ -95,41 +96,54 @@ private StreamingResponseBody processStreamResponse(HttpRequest.Builder requestB
return outputStream -> {
try {
HttpResponse<Stream<String>> response = httpClient.send(
requestBuilder.build(), HttpResponse.BodyHandlers.ofLines());
try (Stream<String> lines = response.body()) {
lines.filter(line -> !line.isEmpty())
.forEach(line -> {
try {
if (!line.startsWith("data:")) {
line = "data: " + line;
}
if (!line.endsWith("\n\n")) {
line = line + "\n\n";
}
outputStream.write(line.getBytes(StandardCharsets.UTF_8));
outputStream.flush();
} catch (IOException e) {
throw new ServiceException(ExceptionEnum.CM326.getResultCode(),
ExceptionEnum.CM326.getResultMsg());
}
});
}
requestBuilder.build(), HttpResponse.BodyHandlers.ofLines());
processLines(response.body(), outputStream);
} catch (Exception e) {
try {
String errorEvent = "data: " +
JsonUtils.encode(Map.of("error", e.getMessage())) + "\n\n";
outputStream.write(errorEvent.getBytes(StandardCharsets.UTF_8));
outputStream.flush();
} catch (IOException ioException) {
throw new ServiceException(ExceptionEnum.CM326.getResultCode(), ExceptionEnum.CM326.getResultMsg());
}
handleError(e, outputStream);
} finally {
try {
outputStream.close();
} catch (IOException e) {
// 忽略关闭异常
}
closeStream(outputStream);
}
};
}

private void processLines(Stream<String> lines, OutputStream outputStream) {
try (Stream<String> filteredLines = lines.filter(line -> !line.isEmpty())) {
filteredLines.forEach(line -> writeLine(line, outputStream));
}
}

private void writeLine(String line, OutputStream outputStream) {
try {
if (!line.startsWith("data:")) {
line = "data: " + line;
}
if (!line.endsWith("\n\n")) {
line = line + "\n\n";
}
outputStream.write(line.getBytes(StandardCharsets.UTF_8));
outputStream.flush();
} catch (IOException e) {
throw new ServiceException(ExceptionEnum.CM326.getResultCode(),
ExceptionEnum.CM326.getResultMsg());
}
}

private void handleError(Exception e, OutputStream outputStream) {
try {
String errorEvent = "data: " + JsonUtils.encode(Map.of("error", e.getMessage())) + "\n\n";
outputStream.write(errorEvent.getBytes(StandardCharsets.UTF_8));
outputStream.flush();
} catch (IOException ioException) {
throw new ServiceException(ExceptionEnum.CM326.getResultCode(), ExceptionEnum.CM326.getResultMsg());
}
}

private void closeStream(OutputStream outputStream) {
try {
outputStream.close();
} catch (IOException e) {
// 忽略关闭异常
}
}

}
Loading