说说如何接入AI大模型(整理分享)

开发过程中有些细节容易被忽略,今天挑几个重点聊一聊。

🌈
个人主页: Hygge_Code

🔥
热门专栏:从0开始学习Java | Linux学习 | 计算机网络

💫
个人格言: “既然选择了远方,便不顾风雨兼程”

文章目录

接入AI大模型的三种方法 🐦‍🔥🍂🐦‍🔥 AI软件平台接入 程序接入 🍂 在程序中调用AI大模型的四种方法 🧾

AI大模型概念 📖

什么是AI大模型?🤔

下面是度娘给出的答案:

即:AI大模型是一种超大规模参数(数十亿~数万亿)的深度学习模型,通过海量数据能力训练,具备多模态数据处理能力,能理解并生成人类语言,展现出强大的推理与创作能力。

AI大模型的分类

AI大模型也能从模态、开源性、规模、用途等几个角度进行划分

  • 按模态分类
单模态模型:只能处理单一类型的数据,像是文本数据(如早期的GPT)
  • 多模态模型:能处理多种类型的数据,像是文本+图像等数据(如Gemini)
按开源性分类
  • 闭源模型:不公开模型权重和算法(如Claude、Gemini)
  • 开源模型:公开模型权重,允许下载和自行部署(如GPT-OSS-20B / 120B、DeepSeek)
按规模分类
  • 超大规模模型:参数量在数千亿到数万亿(如GPT-OSS 120B、Qwen2.5 110B)
  • 中小规模模型:参数在几十亿到百亿(Gemma 2B、Qwen 1.8B)
按用途分类
  • 通用模型:能处理广泛的任务(通义千问 Qwen、Gemma)
  • 特定领域模型:针对特定领域优化(Qwen-Code、医疗 GLM)

如何选择咱们需要的大模型?

大模型种类繁多,不同的大模型支持的功能不一样,那么咱们怎么找到我们需要的大模型呢?

一般来说我们需要考虑以下几个方面:准确度 + 功能支持 + 性能 + 成本成本

作为开发者,我们经常需要通过开发框架来让程序对接大模型,因此也能通过一些官方的开发文档来快速了解不同的大模型的功能和支持,举个例子:

接入AI大模型的三种方法 🐦‍🔥🍂🐦‍🔥

AI应用平台接入

通过云服务商提供的AI应用平台来用AI大模型,以下举例三个我常用的平台,具体如何用自行到对应平台探索

阿里云百炼平台

硅基流动

火山引擎

AI软件平台接入

除了平台,还也能通过AI软件客户端来用大模型的能力

Cursor(IDE类型平台)

Claude Code(CLI类型平台)

程序接入 🍂

可以通过编程在自己的项目中调用AI大模型,其中又可以分为两种方式

1. 直接调用AI大模型,比如指定调用Qwen-turbo(更原生)

这种方式,既可以使用特定平台提供的 SKD 或 API ,结合平台文档接入;也可以使用AI开发该框架,如 Spring AI 、Spring AI Alibaba、LangChain4j 等来选择大模型进行调用,能灵活切换使用的大模型而几乎不用怎么修改代码

2. 调用AI大模型平台创建的应用或智能体(更方便)

这种方式一般只能使用特定平台提供的 SDK 或 API,参考平台的文档来接入,每个大模型服务平台的调用代码都不一样(以下是通过火山引擎调用GLM大模型的示例)

在程序中调用AI大模型的四种方式 🧾

我们重点讲解如何在程序中接入AI大模型,下面我以阿里云百炼平台为例

SDK接入

SDK(软件开发工具包)是,大模型厂商给开发者提供的官方工具包,帮我们封装好了使用代码,只管调用就行

1. 按照官方文档安装SDK,阿里云百炼平台安装SDK官方指南

引入Maven依赖,在选择SDK版本时,去Maven仓库查看最新的版本号:Maven官方仓库


    com.alibaba
    dashscope-sdk-java
    2.22.17

1. 在百炼平台中申请一个API Key:

3. 我们调用 Qwen3.6-Plus

import java.util.Arrays;
import java.util.Collections;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;

public class Main {

    static {Constants.baseHttpApiUrl="https://dashscope.aliyuncs.com/api/v1";}

    public static void simpleMultiModalConversationCall()
            throws ApiException, NoApiKeyException, UploadFileException {
        MultiModalConversation conv = new MultiModalConversation();
        MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
                .content(Arrays.asList(
                        Collections.singletonMap("image", "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"),
                        Collections.singletonMap("text", "图中描绘的是什么景象?"))).build();
        MultiModalConversationParam param = MultiModalConversationParam.builder()
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen3.6-plus")
                .messages(Arrays.asList(userMessage))
                .build();
        MultiModalConversationResult result = conv.call(param);
        System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
    }
    public static void main(String[] args) {
        try {
            simpleMultiModalConversationCall();
        } catch (ApiException | NoApiKeyException | UploadFileException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}

1. 运行成功,看到AI的回复

HTTP接入

对于SDK不支持的编程语言 或者 需要更灵活的控制场景,可以使用HTTP请求调用AI大模型的API

可以让AI将上面的 CURL 代码转换为 Java的网络请求代码 之后直接cv到程序里就行了

Spring AI

以下均摘自Spring AI官方文档

Spring AI 提供以下功能:

  • 跨 AI 提供商支持 Chat、文本转图像和嵌入模型的可移植 API。同时支持同步和流式API选项。还可访问模型专属功能。
  • 支持所有主要的人工智能模型提供商,如Anthropic、OpenAI、Microsoft、亚马逊、谷歌和Ollama。支持的模型类型包括:聊天搞定、嵌入、文本转图像、音频转录、文本转语音、调节、结构化输出
  • 将AI模型输出映射到POJO。
  • 支持所有主要矢量数据库提供商,如 Apache Cassandra、Azure Cosmos DB、Azure 矢量搜索、Chroma、Elasticsearch、GemFire、MariaDB、Milvus、MongoDB Atlas、Neo4j、OpenSearch、Oracle、PostgreSQL/PGVector、Pinecone、Qdrant、Redis、SAP Hana、Typesense 和 Weaviate。
  • 跨向量存储提供商的可移植API,包括一个新颖的类SQL元数据过滤API。
  • 工具/函数调用——允许模型请求客户端工具和函数的执行,从而根据需要访问必要的实时信息并采取行动。
  • 可观察性——提供关于人工智能相关操作的洞察。
  • 用于数据工程的文档摄取ETL框架。
  • AI模型评估——帮助评估生成东西并防止幻觉反应的实用工具。
  • Spring Boot 自动配置和 AI 模型及向量存储的入门。
  • ChatClient API - 用于与 AI 聊天模型通信的流畅 API,习语上类似于 WebClient 和 RestClient API。
  • Advisors API - 封装反复出现的生成式人工智能模式,转换与语言模型(LLM)之间的数据转换,并提供跨多种模型和用例的可移植性。
  • 支持聊天对话、记忆和检索增强生成(RAG)。
从下图Spring AI官方模型对比中可以看出,Spring AI只支持那么几个国内的大模型(MiniMax、Moonshot AI 月之暗面、QianFan 百度千帆、ZhiPu 智谱)。

因此,如果我们想调用阿里系的大模型(如通义千问),我们需要用阿里自主封装的 Spring AI Alibaba框架,它不仅直接继承阿里系模型,封装度高,用起来方便,而且跟标准的Spring AI兼容。

参考Spring AI Alibaba框架官方文档:添加依赖、配置 API Key、构建一个基础的Agent(自行修改),得到以下代码:

/**
 * Spring AI Alibaba 调用示例
 * 实现 CommandLineRunner 接口:项目启动完毕后自动执行 run 方法
 */
@Component
public class SpringAiAlibabaInvoke implements CommandLineRunner {

    @Override
    public void run(String... args) throws Exception {
        // 初始化 ChatModel
        DashScopeApi dashScopeApi = DashScopeApi.builder()
                .apiKey(TestApiKey.API_KEY)
                .build();

        ChatModel chatModel = DashScopeChatModel.builder()
                .dashScopeApi(dashScopeApi)
                .build();

        ReactAgent agent = ReactAgent.builder()
                .name("test")
                .model(chatModel)
                .systemPrompt("You are a helpful assistant")
                .saver(new MemorySaver())
                .build();

        // 运行 agent
        AssistantMessage response = agent.call("你好,我是青衫码上行");
        System.out.println(response.getText());
    }
}

运行结果如下:

LangChain4j

LangChain4j官方文档
与Spring AI一样,LangChain4j也是集成了大模型的Java框架

参考 官方引入DashScope文档 来编写引入Qwen和示例代码:

public class LangChain4jAiInvoke {

    public static void main(String[] args) {
        ChatModel qwenModel = QwenChatModel.builder()
                .apiKey(TestApiKey.API_KEY)
                .modelName("qwen3.6-plus")
                .build();

        String chat = qwenModel.chat("你好啊,我是CSDN博主青衫码上行");
        System.out.println(chat);
    }
}

运行结果:

什么时候用哪个?🤔

一张图片给你讲明白:

总结:轻松项目用 SDK/HTTP,Spring 项目优先用 Spring AI,麻烦 AI 应用就选 LangChain4j



以上就是这次整理的全部内容,希望对你有所启发。如果有不同见解,欢迎在评论区交流讨论。

评论 (0)

暂无评论