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

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

相关推荐
AI码上来4 分钟前
小智Pro支持固件在线更新:原理+流程拆解(续)
人工智能
while(1){yan}4 分钟前
图书管理系统(超详细版)
spring boot·spring·java-ee·tomcat·log4j·maven·mybatis
编程(变成)小辣鸡5 分钟前
Redisson 知识点及使用场景
java·redisson
沫儿笙5 分钟前
安川机器人二保焊省气阀
人工智能·机器人
Chasing Aurora8 分钟前
C++后端开发之旅(一)
java·开发语言·c++
冷存储观察8 分钟前
Gigaom雷达报告反映的非结构化数据管理技术应用趋势
大数据·人工智能·云计算·数据安全·企业数据管理·数据基础设施
不惑_9 分钟前
通俗理解经典CNN架构:LeNet
人工智能·神经网络·cnn
Rabbit_QL9 分钟前
【Token分析】从单轮到多轮:Ark / OpenAI 风格大模型 API 的上下文管理与 Token 成本分析
人工智能
king王一帅10 分钟前
Incremark 0.3.0 发布:双引擎架构 + 完整插件生态,AI 流式渲染的终极方案
前端·人工智能·开源
木头程序员11 分钟前
AI驱动的时序索引与查询优化:从存储检索到认知检索的跨越
人工智能·深度学习·时序数据库