unsetunsetChatClient介绍unsetunset

ChatClient 提供了一个流畅的 API,用于与 AI 模型进行通信。它支持同步和流式编程模型。

  • 流畅 API 提供了构建作为 AI 模型输入的提示组成部分的方法。 Prompt 包含指导 AI 模型输出和行为的说明性文本。从 API 的角度来看,提示由一系列消息组成。

  • AI 模型处理两种主要类型的消息:用户消息,即用户直接输入的信息,和系统消息,即系统生成以引导对话的信息。

  • 这些消息通常包含占位符,这些占位符在运行时根据用户输入进行替换,以定制 AI 模型对用户输入的响应。存在一些可以指定的提示选项,例如要使用的 AI 模型名称和温度设置,该设置控制生成输出的随机性或创造性。

unsetunset创建ChatClentunsetunset

创建有两种方式:

  • ChatClient.Builder 对象创建

  • Spring Boot自动配置获取一个自动配置的 ChatClient.Builder 实例或程序化创建一个。

引入opernai依赖

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
  </dependency>

deepseek api开发平台注册key

注册地址:https://platform.deepseek.com/api_keys

配置key:

Spring:
  Application:
      name:spring-ai-app
ai:
    openai:
        api-key:sk-********************
        base-url:https://api.deepseek.com
        chat:
            options:
                model:deepseek-chat
                temperature:0.8

controller

@RestController
publicclass ChatClientController {

    //Springboot 使用构造器注入
    privatefinal ChatClient chatClient;

    public ChatClientController(ChatClient.Builder chatClientBuilder) {
        this.chatClient = chatClientBuilder.build();
    }


    @PostMapping("/chat")
    public R chat(@RequestBody ChatRequest chatRequest) {
        String response = chatClient
                .prompt() //提示词
                .user(chatRequest.getMessage()) //用户输入
                        .call(). //调用
                content(); //文本内容
        return R.ok("200","成功",response);
    }
}

测试

api接口测试
api接口测试

和本地部署的8b的模型输出差距可真大

本地

本地

流式输出

Flux类输出指定泛型数据类型,将调用的call方法换为stream()即可。

@GetMapping(value = "/fluxChat",produces = "text/html;charset=UTF-8")
    public Flux<String> fluxChat(@RequestParam("msg")String msg) {
       return  chatClient
                .prompt() //提示词
                .user(msg) //用户输入
                        .stream().
                content(); //文本内容
    }
流式响应输出
流式响应输出
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐