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

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: 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功能。文章的主要步骤包括:

  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.kler.cn/a/564653.html

相关文章:

  • 基于springboot+vue的融合多源高校画像数据与协同过滤算法的高考择校推荐系统
  • 课程2. 用PyTorch训练神经网络与梯度下降
  • 关于回溯算法中的剪枝是否需要for循环的总结归纳
  • Docker如何启动SuperSet实现报表功能
  • GPT 与BERT的异同
  • 事务性质ACID
  • WPF13-MVVM进阶
  • java面试项目介绍,详细说明
  • HarmonyOS NEXT 原生应用/元服务-自定义运行/调试配置
  • Sqli-labs
  • 港澳金融机构入股境内保险公司门槛取消
  • # C# 中堆(Heap)与栈(Stack)的区别
  • 可以免费无限次下载PPT的网站
  • 怎么快速对mysql全表扫描
  • C#上位机--二级运算符
  • C语言综合案例:学生成绩管理系统
  • 【FL0080】基于SSM和微信小程序的宠物寄养平台
  • Docker Desktop 社区版安装配置全流程指南(Windows平台)
  • 47.matlab 中filter design工具设计的滤波器如何在.m代码中调用
  • DeepSeek-R1:大语言模型推理能力强化的创新探索