当前位置: 首页 > news >正文

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

文章目录

    • 前言
    • 1.从0开始搭建项目
    • 2.进入微软openai申请key
    • 3.配置application.yaml
    • 4.编写controller
    • 5.测试
    • 源码下载地址
    • 总结

前言

之前使用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: xxxsxxxendpoint: https://xxx.openai.azure.com/chat:options:maxTokens: 4096temperature: 0.7deployment-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;@Autowiredpublic 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功能。文章的主要步骤包括:

  1. 项目搭建
    生成一个Spring Boot项目并配置相关的pom.xml依赖,使用spring-boot-starter-web和spring-ai-azure-openai-spring-boot-starter作为核心依赖。项目还使用了spring-ai-bom来管理版本。
  2. 获取Azure OpenAI API Key
    通过微软Azure门户申请API密钥,并创建OpenAI服务实例。完成后,将获得一个部署名称和API节点,用于配置API请求。
  3. 配置application.yaml
    在application.yaml文件中配置API密钥、API端点、聊天选项(如最大token数和温度),以及部署名称。
  4. 编写Controller
    创建一个ChatController类,使用AzureOpenAiChatModel与OpenAI API进行交互。提供两个接口:一个是同步生成消息的接口(/ai/generate),另一个是流式生成消息的接口(/ai/generateStream)。
  5. 测试
    运行应用程序并测试接口,确认可以正常通过API生成聊天回复。
    总体来说,文章通过详细的步骤指导开发者在Spring Boot框架下集成Azure OpenAI,实现与ChatGPT模型的交互。

本文完

http://www.lryc.cn/news/544003.html

相关文章:

  • Apache部署Vue操作手册(SSL部分)
  • 人类驾驶的人脑两种判断模式(反射和预判)-->自动驾驶两种AI模式
  • Docker和K8S中pod、services、container的介绍和关系
  • 【uniapp】在UniApp中实现持久化存储:安卓--生成写入数据为jsontxt
  • DeepSeek-R1本地部署保姆级教程
  • Python常见面试题的详解25
  • DeepSeek赋能大模型内容安全,网易易盾AIGC内容风控解决方案三大升级
  • 阿里开源正式开园文生视频、图生视频模型-通义万相 WanX2.1
  • 【Python爬虫(73)】用Python爬虫开启交通数据宝藏,畅行出行未来
  • 和鲸科技携手四川气象,以 AI 的力量赋能四川气象一体化平台建设
  • spring boot 2.7 + seata +微服务 降级失败问题修复
  • python-leetcode-最长公共子序列
  • centos 7 停更后如何升级kernel版本 —— 筑梦
  • WPF-3天快速WPF入门并达到企业级水准
  • 爬虫反爬:CSS位置偏移反爬案例分析与实战案例
  • Ubuntu20.04安装Redis
  • Ubuntu 22.04 安装Nvidia驱动加速deepseek
  • OkHttp、Retrofit、RxJava:一文讲清楚
  • 星环科技推出DeepSeek全场景解决方案:即开即用、企业级部署、端侧智能三位一体
  • Redis缓存一致性难题:如何让数据库和缓存不“打架”?
  • 动态部署Web应用程序与web.xml配置详解
  • 2025年软考报名费用是多少?全国费用汇总!
  • DeepSeek 15天指导手册——从入门到精通 PDF(附下载)
  • 【Javascript】js精度丢失
  • 让Word插上AI的翅膀:如何把DeepSeek装进Word
  • 秒杀系统的常用架构是什么?怎么设计?
  • 【文件基础操作】小笔记
  • RabbitMQ系列(七)基本概念之Channel
  • 本地搭建Koodo Reader书库结合内网穿透打造属于自己的移动图书馆
  • DeepSeek R1 训练策略4个阶段解析