Java AIGC案例

wen java案例 1

本文目录导读:

Java AIGC案例

  1. 智能客服 / 对话机器人(基于 LLM)
  2. AI 图像生成(DALL·E / Stable Diffusion)
  3. 自动生成代码(GitHub Copilot 风格的代码补全)
  4. 文本摘要与内容改写(自然语言处理)
  5. 语音转文字(STT) + 文本转语音(TTS)
  6. 企业级 RAG(检索增强生成)案例
  7. 总结对比表
  8. 推荐快速上手路径

这里为你整理了几个经典的 Java + AIGC(人工智能生成内容) 实际案例,涵盖了文本生成、图像生成、代码生成、对话机器人等核心场景,每个案例都附带了核心代码思路和关键库说明。


智能客服 / 对话机器人(基于 LLM)

功能:用户输入问题,Java 后端调用大语言模型(如 OpenAI GPT-4、阿里通义千问、DeepSeek)生成回答。

技术栈Spring Boot + HttpClient/WebClient + OpenAI SDK 或 自定义 API 调用。

核心代码示例(调用 OpenAI API)

import com.theokanning.openai.service.OpenAiService;
import com.theokanning.openai.completion.chat.*;
@Service
public class ChatService {
    @Value("${openai.api.key}")
    private String apiKey;
    public String chat(String userMessage) {
        OpenAiService service = new OpenAiService(apiKey);
        ChatCompletionRequest request = ChatCompletionRequest.builder()
            .model("gpt-4")  // 或 "deepseek-chat", "qwen-plus"
            .messages(java.util.List.of(
                new ChatMessage(ChatMessageRole.SYSTEM.value(), "你是一个友好且知识渊博的助手。"),
                new ChatMessage(ChatMessageRole.USER.value(), userMessage)
            ))
            .temperature(0.7)
            .build();
        ChatCompletionResult result = service.createChatCompletion(request);
        String reply = result.getChoices().get(0).getMessage().getContent();
        return reply;
    }
}

其他常用框架

  • LangChain4j:Java 版 LangChain,支持链式调用、RAG(检索增强生成)。
  • Spring AI:Spring 官方 AI 抽象层,集成 OpenAI、HuggingFace、Ollama。

AI 图像生成(DALL·E / Stable Diffusion)

功能:Java 后端接收提示词(Prompt),调用图像生成 API,返回图片 URL 或 Base64 数据。

技术栈REST API 调用 + Jackson 序列化

核心代码示例(调用 OpenAI Image API 生成图片)

import org.springframework.web.client.RestTemplate;
@Service
public class ImageGenerationService {
    @Value("${openai.api.key}")
    private String apiKey;
    public String generateImage(String prompt) {
        RestTemplate restTemplate = new RestTemplate();
        String url = "https://api.openai.com/v1/images/generations";
        // 构建请求体(JSON)
        String requestBody = """
            {
                "model": "dall-e-3",
                "prompt": "%s",
                "n": 1,
                "size": "1024x1024"
            }
            """.formatted(prompt);
        // 设置请求头
        HttpHeaders headers = new HttpHeaders();
        headers.set("Authorization", "Bearer " + apiKey);
        headers.setContentType(MediaType.APPLICATION_JSON);
        HttpEntity<String> request = new HttpEntity<>(requestBody, headers);
        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, 
            request, String.class);
        // 解析返回的 JSON,提取图片 URL
        // 此处仅演示,实际使用 Jackson 或 JSONPath
        JSONObject jsonResponse = new JSONObject(response.getBody());
        String imageUrl = jsonResponse.getJSONArray("data")
                            .getJSONObject(0)
                            .getString("url");
        return imageUrl;
    }
}

注意:若使用本地 Stable Diffusion(如通过 WebUI API),类似地调用 http://localhost:7860/sdapi/v1/txt2img


自动生成代码(GitHub Copilot 风格的代码补全)

功能:根据上下文或注释,自动补全 Java 代码。

技术栈TabNine SDK / OpenAI Codex API / HuggingFace CodeGen

核心思路(调用 OpenAI Codex 补全代码)

public class CodeCompletionService {
    public String completeCode(String codeContext) {
        OpenAiService service = new OpenAiService("your-api-key");
        CompletionRequest request = CompletionRequest.builder()
            .model("code-davinci-002")  // 或 "gpt-3.5-turbo-instruct"
            .prompt(codeContext)          // "public int add(int a, int b) {\n    "
            .maxTokens(128)
            .temperature(0.0)            // 代码生成建议低温度
            .stop(List.of("\n"))         // 换行停止
            .build();
        CompletionResult result = service.createCompletion(request);
        return result.getChoices().get(0).getText();
    }
}

实际应用:集成到 IDE 插件(如 Eclipse、IntelliJ IDEA 插件开发)中,实时提供补全建议。


文本摘要与内容改写(自然语言处理)

功能:将长文本自动压缩为摘要,或按指定风格重新表达。

技术栈HuggingFace Java Client / Stanford CoreNLP + LLM

使用 HuggingFace API 配置

// 依赖: com.konghq:unirest-java, com.fasterxml.jackson
public class TextSummarizer {
    public String summarize(String text) throws Exception {
        HttpResponse<JsonNode> response = Unirest.post("https://api-inference.huggingface.co/models/facebook/bart-large-cnn")
            .header("Authorization", "Bearer HF_API_KEY")
            .body("{\"inputs\": \"" + text + "\"}")
            .asJson();
        return response.getBody().getArray()
                .getJSONObject(0)
                .getString("summary_text");
    }
}

注意:也可以直接用 ChatGPT/GPT-4 完成:

// 只需在 Chat API 的 system 中设置 "请将以下文本总结为 3 句话"

语音转文字(STT) + 文本转语音(TTS)

功能:用户语音输入 → 识别为文本 → LLM 回复 → 合成语音播报。
完整链路Java WebSocket 接收音频 → 调用 Whisper API → 对话 → 调用 TTS API → 返回音频流。

语音转文字(Whisper API)

// 利用 HttpClient 上传音频文件
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.openai.com/v1/audio/transcriptions"))
    .header("Authorization", "Bearer " + apiKey)
    .POST(HttpRequest.BodyPublishers.ofFile(audioFile))
    .build();

文字转语音(OpenAI TTS)

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.openai.com/v1/audio/speech"))
    .header("Authorization", "Bearer " + apiKey)
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString("""
        {
            "model": "tts-1",
            "input": "你好,我是你的智能助手。",
            "voice": "alloy",
            "response_format": "mp3"
        }
        """))
    .build();

企业级 RAG(检索增强生成)案例

功能:根据企业知识库(PDF、数据库、维基百科)回答问题,减少幻觉。

技术栈LangChain4j + Elasticsearch/ChromaDB + Embedding模型

核心实现(基于 LangChain4j)

// 1. 导入文档并分割
Document document = Document.from("您的知识文本...");
DocumentSplitter splitter = DocumentSplitters.recursive(500, 100);
List<TextSegment> segments = splitter.split(document);
// 2. 创建嵌入存储器(使用本地向量数据库)
EmbeddingStore<TextSegment> embeddingStore = InMemoryEmbeddingStore.<TextSegment>builder()
    .addAll(segments, embeddingModel)
    .build();
// 3. 构建检索链
ChatLanguageModel model = OpenAiChatModel.builder()
    .apiKey("your-api-key")
    .modelName("gpt-4")
    .build();
ConversationalRetrievalChain chain = ConversationalRetrievalChain.builder()
    .chatLanguageModel(model)
    .retriever(EmbeddingStoreRetriever.from(embeddingStore))
    .build();
// 4. 提问
String answer = chain.execute("我们的退款政策是什么?");

总结对比表

案例方向 核心 API / 模型 Java 集成方式 典型应用
对话/文本生成 GPT-4, DeepSeek OpenAI Java SDK, Spring AI 客服、助手、文案生成
图像生成 DALL·E, Stable Diffusion HttpClient + 自定义 JSON 广告配图、设计素材
代码生成 Codex, CodeLlama 代码补全 SDK IDE 自动补全、代码审查
RAG 知识问答 向量数据库 + LLM LangChain4j, LlamaIndex Java 企业内部知识库、FAQ
多模态(语音) Whisper (STT), TTS WebClient / RestTemplate 音频流 语音助手、会议记录

推荐快速上手路径

  1. 新手:直接用 Spring Boot + OpenAI API 实现一个聊天接口(上面第一个案例)。
  2. 进阶:加入 LangChain4j 实现文档问答(RAG)。
  3. 生产级:使用 Spring AI 统一适配不同云厂商(Azure、AWS Bedrock、阿里云)。

抱歉,评论功能暂时关闭!