Skip to content

Commit 7279fe5

Browse files
authored
Merge pull request #1005 from quarkiverse/token-stream
Properly support TokenStream return type in AiService
2 parents c03cb43 + fd29b19 commit 7279fe5

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

core/deployment/src/main/java/io/quarkiverse/langchain4j/deployment/AiServicesProcessor.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -530,6 +530,11 @@ public void handleDeclarativeServices(AiServicesRecorder recorder,
530530
// currently in one class either streaming or blocking model are supported, but not both
531531
// if we want to support it, the injectStreamingChatModelBean needs to be recorded per injection point
532532
for (MethodInfo method : declarativeAiServiceClassInfo.methods()) {
533+
if (LangChain4jDotNames.TOKEN_STREAM.equals(method.returnType().name())) {
534+
injectStreamingChatModelBean = true;
535+
continue;
536+
}
537+
533538
if (!DotNames.MULTI.equals(method.returnType().name())) {
534539
continue;
535540
}

core/deployment/src/main/java/io/quarkiverse/langchain4j/deployment/LangChain4jDotNames.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import dev.langchain4j.service.Moderate;
2323
import dev.langchain4j.service.Result;
2424
import dev.langchain4j.service.SystemMessage;
25+
import dev.langchain4j.service.TokenStream;
2526
import dev.langchain4j.service.UserMessage;
2627
import dev.langchain4j.service.UserName;
2728
import dev.langchain4j.web.search.WebSearchEngine;
@@ -45,6 +46,7 @@ public class LangChain4jDotNames {
4546
public static final DotName IMAGE_MODEL = DotName.createSimple(ImageModel.class);
4647
public static final DotName TOKEN_COUNT_ESTIMATOR = DotName.createSimple(TokenCountEstimator.class);
4748
public static final DotName CHAT_MESSAGE = DotName.createSimple(ChatMessage.class);
49+
public static final DotName TOKEN_STREAM = DotName.createSimple(TokenStream.class);
4850
public static final DotName OUTPUT_GUARDRAILS = DotName.createSimple(OutputGuardrails.class);
4951
public static final DotName INPUT_GUARDRAILS = DotName.createSimple(InputGuardrails.class);
5052
static final DotName AI_SERVICES = DotName.createSimple(AiServices.class);

0 commit comments

Comments
 (0)