Spring AI学习 程序接入大模型

在程序开发中,我们有很多方式来接入大模型,这里介绍四种Java中接入大模型的方式。

  1. SDK 接入:使用官方提供的软件开发工具包,最直接的集成方式
  2. HTTP 接入:通过 REST API 直接发送 HTTP 请求调用模型
  3. Spring AI:基于 Spring 生态系统的 AI 框架,更方便地接入大模型
  4. LangChain4j:专注于构建 LLM 应用的 Java 框架,提供丰富的 AI 调用组件

SDK 接入

这里我们以阿里的大模型为例

1.首先需要按照官方文档来安装sdk:安装 SDK 官方指南

选择Java版本

在 pom.xml 中引入依赖(注意版本号):

复制代码
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dashscope-sdk-java</artifactId>
    <version>2.19.1</version>
</dependency>

2.在百炼平台生成自己的API key

3.查看官方文档示例来实现程序调用大模型通过 API 调用通义千问

4.编写代码

复制代码
 public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
    // 创建Generation对象:SDK 提供的调用类,用于发送请求和处理响应。
        Generation gen = new Generation(); 
    // 构建系统消息,定义AI助手的角色。
        Message systemMsg = Message.builder()
                .role(Role.SYSTEM.getValue())
                .content("You are a helpful assistant.")
                .build();
    // 构建用户消息,包含用户的实际输入。  这里可以输入我们想要调用大模型的具体问题
        Message userMsg = Message.builder()
                .role(Role.USER.getValue())
                .content("你好 我正在学习ai智能体开发 请给我一段祝福")
                .build();
    // 构建生成参数,包括API密钥、模型选择等配置。
        GenerationParam param = GenerationParam.builder()//GenerationParam是SDK提供的生成参数类,采用构建者模式创建,用于配置 API Key、模型名称、消息列表等。
                // 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:.apiKey("sk-xxx")
                .apiKey("sk-XXXXXXXXXXXXXXXXXXXXXX")//这里替换为你的apiKey,安全起见将apiKey存到环境变量中,从环境变量中获取
                // 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
                .model("qwen-plus")//这里可查看上方文档来选择适合自己的大模型
                .messages(Arrays.asList(systemMsg, userMsg)) // 设置对话消息列表
                .resultFormat(GenerationParam.ResultFormat.MESSAGE) // 设置返回格式为消息格式
                .build();
    // 调用生成模型并返回结果
        return gen.call(param);
    }
    public static void main(String[] args) {
        try {
            GenerationResult result = callWithMessage();
            System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent());
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.err.println("错误信息:"+e.getMessage());
            System.out.println("请参考文档:https://help.aliyun.com/zh/model-studio/developer-reference/error-code");
        }
        System.exit(0);
    }

5.执行查看结果

好了 下期再讲剩下的三种方式

相关推荐
小姜前线技术12 小时前
AI流式渲染打字机效果抖动?节流方案踩坑实录
人工智能
用户0183493016912 小时前
AI对话状态管理:useReducer还是XState
人工智能
先锋部队12 小时前
给AI对话加「停止生成」按钮:abort SSE实战
人工智能
新新技术迷12 小时前
移动端H5接AI对话的坑:键盘顶起与滚动到底
人工智能
行者全栈架构师12 小时前
Maven dependency:tree 的 8 个高级用法
java·后端
aqi0015 小时前
15天学会AI应用开发(七)有了大模型为什么还要引入RAG
人工智能·python·大模型·ai编程·ai应用
用户51914958484516 小时前
libcurl Headers API 释放后重利用漏洞:跨请求复用头句柄导致堆内存安全风险
人工智能·aigc
踩蚂蚁16 小时前
自定义语音唤醒词:从训练到部署的完整链路实践
人工智能
用户51914958484516 小时前
CVE-2025-1094 PostgreSQL SQL注入与WebSocket劫持远程代码执行利用工具
人工智能·aigc