【Java学习】Spring AI集成指南

在 Java 中使用 Spring AI 可以简化与生成式 AI(如 OpenAI、Hugging Face 等)的集成。以下是详细步骤和示例代码,帮助你快速上手。


1. 添加依赖

首先,在项目的 pom.xml 中添加 Spring AI 的依赖(以 OpenAI 为例):

xml

复制


    org.springframework.ai
    spring-ai-openai-spring-boot-starter
    0.8.1 

运行 HTML

如果使用 Gradle:

groovy

复制

implementation 'org.springframework.ai:spring-ai-openai-spring-boot-starter:0.8.1'

注意:Spring AI 正在快速发展,版本可能频繁更新,请检查 Spring AI 官方文档 获取最新版本。


2. 配置 API 密钥

在 application.properties 或 application.yml 中配置 OpenAI 的 API 密钥:

properties

复制

# application.properties
spring.ai.openai.api-key=YOUR_API_KEY

或 YAML 格式:

yaml

复制

# application.yml
spring:
  ai:
    openai:
      api-key: YOUR_API_KEY

确保替换 YOUR_API_KEY 为实际的 OpenAI API 密钥。


3. 创建 AI 服务类

创建一个 Spring 服务类,注入 OpenAITemplate 或 ChatClient 来调用 AI 模型:

java

复制

import org.springframework.ai.client.AiClient;
import org.springframework.ai.client.AiResponse;
import org.springframework.ai.prompt.Prompt;
import org.springframework.ai.prompt.SystemPrompt;
import org.springframework.ai.prompt.messages.UserMessage;
import org.springframework.stereotype.Service;

@Service
public class AIService {

    private final AiClient aiClient;

    public AIService(AiClient aiClient) {
        this.aiClient = aiClient;
    }

    public String generateText(String prompt) {
        // 构建请求
        Prompt request = new Prompt(new UserMessage(prompt));
        
        // 调用 AI 模型
        AiResponse response = aiClient.generate(request);
        
        // 提取生成的文本
        return response.getGeneration().getText();
    }
}

4. 创建 REST 控制器

创建一个控制器,暴露 API 接口供外部调用:

java

复制

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class AIController {

    private final AIService aiService;

    public AIController(AIService aiService) {
        this.aiService = aiService;
    }

    @GetMapping("/generate")
    public String generate(@RequestParam String prompt) {
        return aiService.generateText(prompt);
    }
}

5. 运行并测试

启动 Spring Boot 应用后,通过浏览器或工具(如 Postman)测试接口:

复制

http://localhost:8080/generate?prompt=用Java写一个Hello World程序

响应示例:

java

复制

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

高级用法

自定义模型参数

在生成文本时,可以调整温度(temperature)和最大 Token 数(maxTokens)等参数:

java

复制

PromptTemplate promptTemplate = new PromptTemplate("告诉我关于 {topic} 的信息");
Prompt prompt = promptTemplate.create(Map.of("topic", "量子力学"));

GenerationOptions options = new GenerationOptions();
options.setTemperature(0.7f);
options.setMaxTokens(200);

AiResponse response = aiClient.generate(prompt, options);
流式响应

如果需要实时流式响应(逐词返回结果),可以使用流式 API:

java

复制

aiClient.generateStream(prompt)
    .subscribe(chunk -> {
        System.out.print(chunk.getGeneration().getText());
    });

切换 AI 模型供应商

Spring AI 支持多种模型供应商(如 OpenAI、Hugging Face、Azure OpenAI 等)。例如,切换到 Hugging Face

  1. 修改依赖:

xml

复制


    org.springframework.ai
    spring-ai-huggingface-spring-boot-starter
    0.8.1

运行 HTML

  1. 配置 Hugging Face 的 API 密钥:

properties

复制

spring.ai.huggingface.api-key=YOUR_HF_API_KEY

常见问题

依赖找不到?

确保添加了 Spring 的仓库(如快照仓库):

xml

复制


    
        spring-snapshots
        https://repo.spring.io/snapshot
        true
    

运行 HTML

安全性

API 密钥应通过环境变量或配置服务器管理,避免硬编码在代码中:

properties

复制

spring.ai.openai.api-key=${OPENAI_API_KEY}

通过以上步骤,你可以快速将 AI 功能集成到 Java 应用中。更多高级功能(如 Embeddings、RAG 等)可参考 Spring AI 官方文档。

你可能感兴趣的:(基于AI的Java开发,人工智能,java,学习,Spring,AI)