Solon v3.0.9

solon-web 集成应用

</> markdown

1、简单示例

@Controller
public class DemoController {
    @Inject
    ChatModel chatModel;

    @Mapping("case1")
    public String case1(String prompt) throws IOException {
        return chatModel.prompt(prompt)
                .call()
                .getMessage()
                .getContent();
    }

    //@Produces(MimeType.APPLICATION_X_NDJSON_VALUE)
    //自动转为 sse
    @Produces(MimeType.TEXT_EVENT_STREAM_UTF8_VALUE)
    @Mapping("case2")
    public Flux<ChatMessage> case2(String prompt) throws IOException {
        return Flux.from(chatModel.prompt(prompt).stream())
                .filter(resp -> resp.hasChoices())
                .map(resp -> resp.getMessage());
    }

    //手动转为 sse
    @Mapping("case3")
    public Flux<SseEvent> case3(String prompt) throws IOException {
        return Flux.from(chatModel.prompt(prompt).stream())
                .filter(resp -> resp.hasChoices())
                .map(resp -> resp.getMessage())
                .map(msg -> new SseEvent().data(msg.getContent()));
    }
}