欢迎光临
我们一直在努力

如何接入AI大模型

🌈
个人主页: Hygge_Code

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

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

在这里插入图片描述

文章目录

  • AI大模型概念 📖
    • 什么是AI大模型?🤔
    • AI大模型的分类
    • 如何选择我们需要的大模型?
  • 接入AI大模型的三种方式 🐦‍🔥🍂🐦‍🔥
    • AI应用平台接入
      • 阿里云百炼平台
      • 硅基流动
      • 火山引擎
    • AI软件平台接入
      • Cursor(IDE类型平台)
      • Claude Code(CLI类型平台)
    • 程序接入 🍂
      • 1. 直接调用AI大模型,比如指定调用Qwen-turbo(更原生)
      • 2. 调用AI大模型平台创建的应用或智能体(更方便)
  • 在程序中调用AI大模型的四种方式 🧾
    • SDK接入
    • HTTP接入
    • Spring AI
    • LangChain4j
    • 什么时候用哪个?🤔

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)

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

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

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

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

  • LangChain4j 支持的大模型对比:https://docs.langchain4j.dev/integrations/language-models/
  • Spring AI 支持的大模型对比文档:https://docs.spring.io/spring-ai/reference/1.0/api/chat/comparison.html

在这里插入图片描述

接入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(软件开发工具包)是,大模型厂商给开发者提供的官方工具包,帮我们封装好了使用代码,只管调用就行

  • 按照官方文档安装SDK,阿里云百炼平台安装SDK官方指南
  • 引入Maven依赖,在选择SDK版本时,去Maven仓库查看最新的版本号:Maven官方仓库

    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dashscope-sdk-java</artifactId>
    <version>2.22.17</version>
    </dependency>

  • 在百炼平台中申请一个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);
    }
    }

  • 运行成功,看到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)
    未经允许不得转载:171主机测评 » 如何接入AI大模型
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址