springai系列(二)从0开始搭建和接入azure-openai实现智能问答

[复制链接]
发表于 2025-10-24 17:42:59 | 显示全部楼层 |阅读模式
媒介

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


天生项目和相干的pom依赖。
天生的pom文件如下:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3.         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4.         <modelVersion>4.0.0</modelVersion>
  5.         <parent>
  6.                 <groupId>org.springframework.boot</groupId>
  7.                 <artifactId>spring-boot-starter-parent</artifactId>
  8.                 <version>3.4.3</version>
  9.                 <relativePath/> <!-- lookup parent from repository -->
  10.         </parent>
  11.         <groupId>com.example</groupId>
  12.         <artifactId>demo</artifactId>
  13.         <version>0.0.1-SNAPSHOT</version>
  14.         <name>demo</name>
  15.         <description>Demo project for Spring Boot</description>
  16.         <url/>
  17.         <licenses>
  18.                 <license/>
  19.         </licenses>
  20.         <developers>
  21.                 <developer/>
  22.         </developers>
  23.         <scm>
  24.                 <connection/>
  25.                 <developerConnection/>
  26.                 <tag/>
  27.                 <url/>
  28.         </scm>
  29.         <properties>
  30.                 <java.version>21</java.version>
  31.                 <spring-ai.version>1.0.0-M6</spring-ai.version>
  32.         </properties>
  33.         <dependencies>
  34.                 <dependency>
  35.                         <groupId>org.springframework.boot</groupId>
  36.                         <artifactId>spring-boot-starter-web</artifactId>
  37.                 </dependency>
  38.                 <dependency>
  39.                         <groupId>org.springframework.ai</groupId>
  40.                         <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>
  41.                 </dependency>
  42.                 <dependency>
  43.                         <groupId>org.springframework.boot</groupId>
  44.                         <artifactId>spring-boot-starter-test</artifactId>
  45.                         <scope>test</scope>
  46.                 </dependency>
  47.         </dependencies>
  48.         <dependencyManagement>
  49.                 <dependencies>
  50.                         <dependency>
  51.                                 <groupId>org.springframework.ai</groupId>
  52.                                 <artifactId>spring-ai-bom</artifactId>
  53.                                 <version>${spring-ai.version}</version>
  54.                                 <type>pom</type>
  55.                                 <scope>import</scope>
  56.                         </dependency>
  57.                 </dependencies>
  58.         </dependencyManagement>
  59.         <build>
  60.                 <plugins>
  61.                         <plugin>
  62.                                 <groupId>org.springframework.boot</groupId>
  63.                                 <artifactId>spring-boot-maven-plugin</artifactId>
  64.                         </plugin>
  65.                 </plugins>
  66.         </build>
  67. </project>
复制代码
2.进入微软openai申请key

申请入口
https://portal.azure.com/#home

可以根据下面的文章创建服务,选择模子摆设。
https://www.zhihu.com/question/624318530/answer/3291008787
创建完成后,会得到下面的一个摆设名称,apil-key,和节点

3.设置application.yaml

  1. spring:
  2.   ai:
  3.     azure:
  4.       openai:
  5.         api-key: xxxsxxx
  6.         endpoint: https://xxx.openai.azure.com/
  7.         chat:
  8.           options:
  9.             maxTokens: 4096
  10.             temperature: 0.7
  11.             deployment-name: 上面的部署名称
复制代码
4.编写controller

  1. package com.example.demo.controller;
  2. import org.springframework.ai.azure.openai.AzureOpenAiChatModel;
  3. import org.springframework.ai.chat.messages.UserMessage;
  4. import org.springframework.ai.chat.model.ChatResponse;
  5. import org.springframework.ai.chat.prompt.Prompt;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.web.bind.annotation.GetMapping;
  8. import org.springframework.web.bind.annotation.RequestParam;
  9. import org.springframework.web.bind.annotation.RestController;
  10. import reactor.core.publisher.Flux;
  11. import java.util.Map;
  12. @RestController
  13. public class ChatController {
  14.     private final AzureOpenAiChatModel chatModel;
  15.     @Autowired
  16.     public ChatController(AzureOpenAiChatModel chatModel) {
  17.         this.chatModel = chatModel;
  18.     }
  19.     @GetMapping("/ai/generate")
  20.     public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
  21.         return Map.of("generation", this.chatModel.call(message));
  22.     }
  23.     @GetMapping("/ai/generateStream")
  24.         public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
  25.         Prompt prompt = new Prompt(new UserMessage(message));
  26.         return this.chatModel.stream(prompt);
  27.     }
  28. }
复制代码
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企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表