mirror of
https://github.com/ccmjga/zhilu-admin
synced 2026-03-14 13:43:42 +08:00
init llm config
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
package com.zl.mjga.controller;
|
||||
|
||||
import com.zl.mjga.dto.ai.LlmUpdateDto;
|
||||
import com.zl.mjga.service.AiChatService;
|
||||
import com.zl.mjga.service.LlmService;
|
||||
import dev.langchain4j.service.TokenStream;
|
||||
import jakarta.validation.Valid;
|
||||
import java.security.Principal;
|
||||
import java.time.Duration;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -18,11 +21,12 @@ import reactor.core.publisher.Sinks;
|
||||
public class AiController {
|
||||
|
||||
private final AiChatService aiChatService;
|
||||
private final LlmService llmService;
|
||||
|
||||
@PostMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
|
||||
public Flux<String> chat(Principal principal, @RequestBody String userMessage) {
|
||||
Sinks.Many<String> sink = Sinks.many().unicast().onBackpressureBuffer();
|
||||
TokenStream chat = aiChatService.chatWithZhiPu(principal.getName(), userMessage);
|
||||
TokenStream chat = aiChatService.chatPrecedenceLlmWith(principal.getName(), userMessage);
|
||||
chat.onPartialResponse(text -> sink.tryEmitNext(text.replace(" ", "␣").replace("\t", "⇥")))
|
||||
.onCompleteResponse(
|
||||
r -> {
|
||||
@@ -33,4 +37,9 @@ public class AiController {
|
||||
.start();
|
||||
return sink.asFlux().timeout(Duration.ofSeconds(120));
|
||||
}
|
||||
|
||||
@PutMapping(value = "/llm")
|
||||
public void updateLlm(@RequestBody @Valid LlmUpdateDto llmUpdateDto) {
|
||||
llmService.update(llmUpdateDto);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user