媒介
之前使用openai的官网的api必要科学上网,但是我们可以使用其他的署理间接实现使用chatgpt的相干模子,办理这个题目。好比:本文使用azure openai来实现这个功能。开发框架是java的springai。
1.从0开始搭建项目

天生项目和相干的pom依赖。
天生的pom文件如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>3.4.3</version>
- <relativePath/> <!-- lookup parent from repository -->
- </parent>
- <groupId>com.example</groupId>
- <artifactId>demo</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <name>demo</name>
- <description>Demo project for Spring Boot</description>
- <url/>
- <licenses>
- <license/>
- </licenses>
- <developers>
- <developer/>
- </developers>
- <scm>
- <connection/>
- <developerConnection/>
- <tag/>
- <url/>
- </scm>
- <properties>
- <java.version>21</java.version>
- <spring-ai.version>1.0.0-M6</spring-ai.version>
- </properties>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.ai</groupId>
- <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.springframework.ai</groupId>
- <artifactId>spring-ai-bom</artifactId>
- <version>${spring-ai.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
- </project>
复制代码 2.进入微软openai申请key
申请入口
https://portal.azure.com/#home
可以根据下面的文章创建服务,选择模子摆设。
https://www.zhihu.com/question/624318530/answer/3291008787
创建完成后,会得到下面的一个摆设名称,apil-key,和节点
3.设置application.yaml
- spring:
- ai:
- azure:
- openai:
- api-key: xxxsxxx
- endpoint: https://xxx.openai.azure.com/
- chat:
- options:
- maxTokens: 4096
- temperature: 0.7
- deployment-name: 上面的部署名称
复制代码 4.编写controller
- package com.example.demo.controller;
- import org.springframework.ai.azure.openai.AzureOpenAiChatModel;
- import org.springframework.ai.chat.messages.UserMessage;
- import org.springframework.ai.chat.model.ChatResponse;
- import org.springframework.ai.chat.prompt.Prompt;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- import reactor.core.publisher.Flux;
- import java.util.Map;
- @RestController
- public class ChatController {
- private final AzureOpenAiChatModel chatModel;
- @Autowired
- public ChatController(AzureOpenAiChatModel chatModel) {
- this.chatModel = chatModel;
- }
- @GetMapping("/ai/generate")
- public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
- return Map.of("generation", this.chatModel.call(message));
- }
- @GetMapping("/ai/generateStream")
- public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
- Prompt prompt = new Prompt(new UserMessage(message));
- return this.chatModel.stream(prompt);
- }
- }
复制代码 5.测试
表现可以正常问答了。
源码下载所在
https://download.csdn.net/download/baidu_21349635/90436706
总结
这篇文章先容了怎样使用Azure OpenAI API在Java Spring Boot项目中实现ChatGPT功能。文章的重要步调包罗:
- 项目搭建
天生一个Spring Boot项目并设置相干的pom.xml依赖,使用spring-boot-starter-web和spring-ai-azure-openai-spring-boot-starter作为焦点依赖。项目还使用了spring-ai-bom来管理版本。
- 获取Azure OpenAI API Key
通过微软Azure流派申请API密钥,并创建OpenAI服务实例。完成后,将得到一个摆设名称和API节点,用于设置API哀求。
- 设置application.yaml
在application.yaml文件中设置API密钥、API端点、谈天选项(如最大token数和温度),以及摆设名称。
- 编写Controller
创建一个ChatController类,使用AzureOpenAiChatModel与OpenAI API举行交互。提供两个接口:一个是同步天生消息的接口(/ai/generate),另一个是流式天生消息的接口(/ai/generateStream)。
- 测试
运行应用步伐并测试接口,确承认以正常通过API天生谈天复兴。
总体来说,文章通过具体的步调引导开发者在Spring Boot框架下集成Azure OpenAI,实现与ChatGPT模子的交互。
本文完
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
|