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.执行查看结果

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

相关推荐
邂逅and回眸7 小时前
AI Agent 四大核心模块深度拆解:ReAct、Planning、Memory 与 Tool Use
人工智能
陕西企来客7 小时前
陕西旅游酒店 GEO 服务市场深度调查:AI 搜索优化格局与真实服务真相
大数据·人工智能·旅游
橙淮7 小时前
并发编程(五)
java
薛定猫AI7 小时前
【深度解析】Hermes Agent Velocity Release:长期记忆、自进化技能与多智能体任务编排实践
网络·人工智能
五月君_7 小时前
继 React、Vue 之后,Three.js 也有 Skills 了!AI 写 3D 终于不“晕”了
javascript·vue.js·人工智能·react.js·3d
小崽崽17 小时前
如何实现React 19+Vite+TypeScript技术栈告别高薪主播!从零打造 24 小时“AI 销冠”:星云数字人直播间全链路实战
人工智能·react.js·typescript
过期动态7 小时前
【LeetCode 热题 100】无重复字符的最长子串
java·数据结构·spring boot·算法·leetcode·职场和发展
土星云SaturnCloud7 小时前
基于铁塔基站的反无人机系统应用场景分析:边缘计算重构低空防御体系
服务器·人工智能·ai·边缘计算
zhang_adrian7 小时前
【使用Github Copilot自动按规范文档生成全部代码】
人工智能·github·copilot
Yeats_Liao7 小时前
好复杂的 IoT 世界:工业数据采集技术栈全景解析
java·物联网·struts