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

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

相关推荐
艾为电子9 小时前
【应用方案】会议&面试记录终结者-艾为AI智能录音卡方案,清晰拾音,解放双手
人工智能·ai
一 乐9 小时前
酒店预订|基于springboot + vue酒店预订系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·酒店预订系统
AI攻城狮10 小时前
Adaptive Thinking 的代价:当 AI 自己决定"想多少"
人工智能·云原生·aigc
Z.风止10 小时前
Large Model-learning(3)
人工智能·笔记·后端·深度学习
LX5677710 小时前
传统销售如何系统学习成为AI智能销售顾问?认证指南
人工智能·学习
Moe48810 小时前
Spring AI Advisors:从链式增强到递归顾问
java·后端
程序员雷欧10 小时前
大模型应用开发学习第六天
人工智能
敖正炀10 小时前
ReentrantReadWriteLock、ReentrantLock、synchronized 对比
java
Bacon10 小时前
前端转型 Agent 开发工程师
人工智能
春末的南方城市10 小时前
比肩顶尖闭源模型!京东开源240亿参数多模态模型JoyAI-Image:统一理解/生成/编辑,重塑AI图像编辑。
人工智能·深度学习·机器学习·计算机视觉·aigc