基于Spring Ai 快速创建一个AI会话

发布于:2024-05-09 ⋅ 阅读:(23) ⋅ 点赞:(0)

前期准备
在OpenAI 注册页面创建帐户并在API 密钥页面生成令牌。 Spring AI 项目定义了一个配置属性,您应该将其设置为从 openai.com 获取的spring.ai.openai.api-key

1、创建SpringBoot项目

注意,SpringAi要求JDK17~
在这里插入图片描述
在这里插入图片描述

2、引入依赖

首先,添加仓库配置

<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
          	<enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <releases>
          	<enabled>false</enabled>
        </releases>
    </repository>
</repositories>

其次,集中管理依赖版本

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-bom</artifactId>
            <version>0.8.1-SNAPSHOT</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

引入需要的依赖项

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>

3、修改配置文件

在OpenAI 注册页面创建帐户并在API 密钥页面生成令牌。这里小编是开了灰机,大家可以通过国内的三方,比如:https://api.mnzdna.xyz

spring:
  ai:
    openai:
      # Api密钥
      api-key: sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      # 要连接的URL
      base-url: https://api.openai.com

4、一个简单的会话

实现一个简单的对话~

package com.gw.ai.easyai.controller;

import org.springframework.ai.openai.OpenAiChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

/**
 * Description: 聊天
 *
 * @author LinHuiBa-YanAn
 * @date 2024/5/7 20:58
 */
@RestController
@RequestMapping("/api/v1/chat")
public class ChatController {

    private final OpenAiChatClient chatClient;

    @Autowired
    public ChatController(OpenAiChatClient chatClient) {
        this.chatClient = chatClient;
    }

    @GetMapping("/single")
    public Map<String, String> generate(@RequestParam(value = "message", defaultValue = "给我打个招呼") String message) {
        return Map.of("generation", chatClient.call(message));
    }
}

在这里插入图片描述
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到