This is an automated email from the ASF dual-hosted git repository.

Aias00 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git


The following commit(s) were added to refs/heads/master by this push:
     new a35a1f7cef perf(ai): reuse SSE line pattern (#7076)
a35a1f7cef is described below

commit a35a1f7cefa8bef4d07451a64adf38ba8b2d515e
Author: Liming Deng <[email protected]>
AuthorDate: Thu Oct 1 06:30:30 2026 +0800

    perf(ai): reuse SSE line pattern (#7076)
---
 .../apache/shenyu/plugin/ai/token/limiter/AiTokenLimiterPlugin.java   | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git 
a/shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-token-limiter/src/main/java/org/apache/shenyu/plugin/ai/token/limiter/AiTokenLimiterPlugin.java
 
b/shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-token-limiter/src/main/java/org/apache/shenyu/plugin/ai/token/limiter/AiTokenLimiterPlugin.java
index 4b9398d1a9..dd4e595217 100644
--- 
a/shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-token-limiter/src/main/java/org/apache/shenyu/plugin/ai/token/limiter/AiTokenLimiterPlugin.java
+++ 
b/shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-token-limiter/src/main/java/org/apache/shenyu/plugin/ai/token/limiter/AiTokenLimiterPlugin.java
@@ -73,6 +73,8 @@ public class AiTokenLimiterPlugin extends 
AbstractShenyuPlugin {
 
     private static final Pattern COMPLETION_TOKENS_PATTERN = 
Pattern.compile("\"completion_tokens\"\\s*:\\s*(\\d+)");
 
+    private static final Pattern SSE_LINE_PATTERN = Pattern.compile("\\r?\\n");
+
     @Override
     protected Mono<Void> doExecute(final ServerWebExchange exchange, final 
ShenyuPluginChain chain,
                                    final SelectorData selector, final RuleData 
rule) {
@@ -267,7 +269,7 @@ public class AiTokenLimiterPlugin extends 
AbstractShenyuPlugin {
 
         private void processChunk(final byte[] processedBytes, final 
BodyWriter writer) {
             String chunk = new String(processedBytes, StandardCharsets.UTF_8);
-            for (String line : chunk.split("\\r?\\n")) {
+            for (String line : SSE_LINE_PATTERN.split(chunk)) {
                 if (!line.startsWith("data:")) {
                     continue;
                 }

Reply via email to