Spring AI学习 程序接入大模型(框架接入)

终于来到了使用框架来接入大模型,这里我们使用两个流行的框架来接入大模型:

Spring AI:基于 Spring 生态系统的 AI 框架

LangChain4j:专注于构建 LLM 应用的 Java 框架,提供丰富的 AI 调用组件

Spring AI

首先就是我们常见的spring家族的新成员,Spring AI,旨在简化 AI 功能与 Spring 应用的集成。他集成了多种模型和各种AI常用的特性,比如RAG知识库、Tools 工具调用和 MCP 模型上下文协议,简化了AI的应用开发。

话不多说,直接快速开始:

引入依赖

复制代码
<dependency>
    <groupId>com.alibaba.cloud.ai</groupId>
    <artifactId>spring-ai-alibaba-starter</artifactId>
    <version>1.0.0-M6.1</version>
</dependency>

编写配置:

复制代码
spring:
  application:
    name: TT-ai-agent
  ai:
    dashscope:
      api-key: ${DASHSCOPE_API_KEY}
      chat:
        options:
          model: qwen-plus

编写示例代码:

复制代码
@Component
public class SpringAiAiInvoke implements CommandLineRunner {
    @Resource
    private ChatModel dashscopeChatModel;

    @Override
    public void run(String... args) throws Exception {
        AssistantMessage output = dashscopeChatModel.call(new Prompt("你好 我现在正在学习spring ai 你可以给我一些学习建议吗"))
                .getResult().getOutput();
        System.out.println(output.getText());
    }
}

这里简单说一下spring boot中的CommandLineRunner 接口,它是一个函数式接口,用于在Spring Boot应用程序启动后执行一些初始化操作。它提供了一个run方法,该方法在应用程序启动后被调用。

上述代码中我们是通⁠过 ChatModel 对象调用大模型,适合简单‌的对话场景。后续我们会学到ChatClient 调用方式,提供更‎多高级功能,比如会话记忆等,适合复杂的场景。

启动项目:

LangChain4j

同样引入依赖:

复制代码
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-community-dashscope</artifactId>
    <version>1.0.0-beta2</version>
</dependency>

编写代码:

复制代码
public class Langchain4jAiInvoke {
    public static void main(String[] args) {
        QwenChatModel build = QwenChatModel
                .builder()
                .apiKey("sk-XXXXXXXXXXXXXX").modelName("qwen-max").build();
        String chat = build.chat("hello i am bbtat how are you");
        System.out.println(chat);
    }
}

执行结果:

从上面我们可以发现,使用框架实现程序接入大模型,代码更加整洁,清晰易懂。

相关推荐
aircrushin2 小时前
从春晚看分布式实时协同算法与灵巧手工程实现
人工智能·机器人
恋猫de小郭2 小时前
Apple 的 ANE 被挖掘,AI 硬件公开,宣传的 38 TOPS 居然是"数字游戏"?
前端·人工智能·ios
银河系搭车客指南2 小时前
AI Agent 的失忆症:我是怎么给它装上"第二个大脑"的
人工智能
张拭心2 小时前
春节后,有些公司明确要求 AI 经验了
android·前端·人工智能
我的username3 小时前
极致简单的openclaw安装教程
人工智能
小锋java12343 小时前
【技术专题】嵌入模型与Chroma向量数据库 - Chroma 集合操作
人工智能
七月丶3 小时前
别再手动凑 PR 了:这个 AI Skill 会按仓库习惯自动建分支、拆提交、提 PR
人工智能·设计模式·程序员
用户5191495848453 小时前
CVE-2024-10793 WordPress插件权限提升漏洞利用演示
人工智能·aigc
chaors3 小时前
从零学RAG0x01之向量化
人工智能·aigc·ai编程
chaors3 小时前
从零学RAG0x02向量数据库
人工智能·aigc·ai编程