网站建设外包网,易车网汽车之家,怎么创建图片网站,深圳华强北招聘网文章目录 创建Spring AI项目配置项目pom、application文件controller接口开发接口测试 创建Spring AI项目
打开IDEA创建一个新的spring boot项目#xff0c;填写项目名称和位置#xff0c;类型选择maven#xff0c;组、工件、软件包名称可以自定义#xff0c;JDK选择17即可… 文章目录 创建Spring AI项目配置项目pom、application文件controller接口开发接口测试 创建Spring AI项目
打开IDEA创建一个新的spring boot项目填写项目名称和位置类型选择maven组、工件、软件包名称可以自定义JDK选择17即可java语言标准和JDK相同即可 配置Spring Boot版本和开发所需的依赖主要如下图所示 Spring Boot版本可以选择3.2.5或者更高的版本作者使用3.2.5和3.2.6(SNAPSHOT)可以正常开发Spring Boot DevToolsspring项目热部署工具修改完代码不含application和pom配置文件即刻热部署项目Lombok通过配置快速配置对象的get、set、toStringSpring AISpring AI是一个用于AI工程的应用框架 创建完成后项目结构大体如下(这里删除了无用的maven文件内容、修改application的文件格式为yaml)
配置项目pom、application文件 注意修改pom文件重新下载spring ai依赖需要科学上网请确保网络连接没有问题 打开项目的pom文件修改spring ai的版本项目默认使用稳定版0.8.1 主要注意默认的spring ai版本和配置依赖jar包仓库maven仓库中还没有spring ai的依赖
propertiesjava.version21/java.versionspring-ai.version0.8.1/spring-ai.version
/propertiesrepositoriesrepositoryidspring-snapshots/idnameSpring Snapshots/nameurlhttps://repo.spring.io/snapshot/urlreleasesenabledfalse/enabled/releases/repositoryrepositoryidspring-milestones/idnameSpring Milestones/nameurlhttps://repo.spring.io/milestone/urlsnapshotsenabledfalse/enabled/snapshots/repository
/repositoriespluginRepositoriespluginRepositoryidspring-snapshots/idnameSpring Snapshots/nameurlhttps://repo.spring.io/snapshot/urlreleasesenabledfalse/enabled/releases/pluginRepository
/pluginRepositories配置application文件api-key的获取参考Spring AI开发前期开发指导
spring:application:name: Chatai:openai:api-key: hk-xxxbase-url: https://api.openai-hk.com #请根据自己的api-key自定义配置chat:options:model: gpt-3.5-turbo #默认model为 gpt-3.5-turbotemperature: 0.5
server:port: 8080controller接口开发
这里列举可常用接口的使用方法更详细的配置请参考官网的开发文档
import jakarta.annotation.Resource;
import org.springframework.ai.chat.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.openai.OpenAiChatClient;
import org.springframework.ai.openai.OpenAiChatOptions;
import org.springframework.ai.openai.api.OpenAiApi;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;RestController
public class ChatController {Resourceprivate OpenAiChatClient openAiChatClient;RequestMapping(/ai/chat)public String chat(RequestParam(value msg) String msg){return openAiChatClient.call(msg);}RequestMapping(/ai/chat2)public String chatCall(RequestParam(value msg) String msg){ChatResponse response openAiChatClient.call(new Prompt(msg));return response.getResult().getOutput().getContent();}RequestMapping(/ai/chat4)public String chatCall2(RequestParam(value msg) String msg){//可选参数可以覆盖 项目配置文件中的参数(以代码中内容为准)ChatResponse response openAiChatClient.call(new Prompt(msg,OpenAiChatOptions.builder().withModel(gpt-4-vision-preview) //gpt版本 可以填写字符串或者使用OpenAiApi.ChatModel中提供的常量.withTemperature(0.8F) //温度高回答创新型越高越低越准确.build()));return response.getResult().getOutput().getContent();}RequestMapping(/ai/chat5)public Object chatStream(RequestParam(value msg) String msg){FluxChatResponse flux openAiChatClient.stream(new Prompt(msg,OpenAiChatOptions.builder().withModel(OpenAiApi.ChatModel.GPT_4_VISION_PREVIEW.getValue()) //gpt版本 gpt-4-vision-preview.withTemperature(0.5F) //温度高回答创新型越高越低越准确.withMaxTokens(4096) //显示最大token.build()));flux.toStream().forEach(chatResponse - {System.out.print(chatResponse.getResult().getOutput().getContent());});return flux.collectList();}
}接口测试
http://localhost:8080/ai/chat4?msg河南大学大礼堂被烧毁了请作一首诗表示悲痛