# 简单对话 ## 示例代码 ```java public static void main(String[] args) { Llm llm = new OpenAILlm.of("sk-rts5NF6n*******"); Prompt prompt = new SimplePrompt("what is your name?"); String response = llm.chat(prompt); System.out.println(response); } ``` ## 流式请求 ```java void streamChat(String systemMessage,String userMessage){ //创建大模型提示词输入,更多的提示词类型请参考文档“Prompt 提示词”部分。 TextPrompt textPrompt = new TextPrompt(); //创建系统提示词(可选) SystemMessage sysMsg = new SystemMessage(); sysMsg.setContent(systemMessage); textPrompt.setSystemMessage(sysMsg); //传入用户问题 textPrompt.setContent(userMessage); //模型选项(可选) ChatOptions chatOptions = new ChatOptions(); chatOptions.setModel("deepseek-r1:32b"); //设置模型ID,根据使用的LLM模型提供方进行配置 chatOptions.setTemperature(0.65F); //模型温度 chatOptions.setMaxTokens(4096); //模型可接收上下文长度,请根据实际进行配置。 ... //更多配置参考ChatOptions提供的方法。 //创建流式监听器,建议单独管理。 StreamResponseListener listener = new StreamResponseListener() { @Override public void onMessage(ChatContext context, AiMessageResponse response) { //在这里来处理模型返回的数据。 //content是流式返回的每一个token字符串。 String content = response.getMessage().getContent(); //reasoningContent是思考模型返回的每一个token字符串。 String reasoningContent = response.getMessage().getReasoningContent(); /** * 在调用思考模型的时候要注意,每个模型提供方返回的思考过程返回的标签不一样。 * 例如OpenAI通用协议的思考返回和Ollama的思考返回不一致。 * 项目已经对支持的模型提供方进行了处理,您需要在使用时根据实际情况选择将content还是reasoningContent返回给用户。 * 接下来就可以在这里根据您的项目具体需要,选择Flux或是Websocket方式返回给前端。 */ } }; sparkLlm.chatStream(textPrompt,listener,chatOptions); }