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

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

相关推荐
鲨鱼辣钊14 分钟前
【FastAPI筑基-Day19】APScheduler定时任务全实战|自动执行、动态启停、后台常驻
java·spring·fastapi
漂流瓶jz3 小时前
【AI】大模型本地部署与量化:Ollama、transformers、llama.cpp实践
人工智能·llm·ai编程
飞哥数智坊4 小时前
AI时代,我们到底该学什么、用什么,为什么还没提效?
人工智能
学长毕业设计5 小时前
基于SpringBoot的公益基金管理系统(源码+文档+讲解视频)
java·spring boot·后端
飞哥数智坊5 小时前
GPT 做架构,国内模型写代码:这条 AI 开发路线能跑通吗?
人工智能·ai编程
东小西5 小时前
【SAA实战】第 3 篇 · 工具调用全攻略:把业务能力交给 Agent 自己调度
java·后端·spring
东小西5 小时前
【SAA实战】第 4 篇 · Agent 短期记忆:saver 让 Agent 跨轮记得住(threadId 隔离)
java·后端·spring
许彰午5 小时前
22-DataCenter报文序列化
java·低代码·架构·状态模式
2601_962065255 小时前
[MySQL] SQL优化之性能分析
java·sql·mysql
AI_AGENT_DEV_AI5 小时前
AI 智能体的开发与上线
人工智能