引言

Spring AI集成Alibaba百炼大模型

引言背景
Alibaba百炼大模型是阿里巴巴推出的企业级大语言模型平台,提供文本生成、知识问答、代码补全等AI能力。Spring AI作为Spring生态的AI集成框架,通过标准化接口简化了大模型接入流程。二者的集成使开发者能在Spring应用中快速调用百炼的先进AI能力,适用于智能客服、内容生成等场景。

前序:Spring AI 和 Spring AI Alibaba的关系

Spring AI Alibaba 是 Spring AI 项目的官方子项目,专门用于对接和集成阿里巴巴的AI大模型服务(主要是通义千问)。

  • Spring AI

      由 Spring 官方(VMware)主导的一个顶层项目。它的目标是提供一个统一的、和框架无关的 API,让开发者能够以一致的方式与各种人工智能模型和服务进行交互,而不需要关心底层是 OpenAI、Azure、Anthropic 还是其他任何供应商。它的核心理念是“一次编写,随处运行”(在AI模型层面)。

    • Spring AI Alibaba

        是 Spring AI 项目旗下的一个官方子项目或模块。它的具体职责是实现 Spring AI 定义的核心接口(如 ChatClientEmbeddingClient),并将这些接口的调用适配(Adapt)到阿里巴巴达摩院的通义千问(Qwen)大模型 API 上。


      环境准备

      1.注册账号并创建API-KEY

      • 第1步: 注册阿里云百炼大模型用户

          https://www.aliyun.com/product/tongyi

        注意:保存好Key

        在Windows系统桌面中按Win+Q键,在搜索框中搜索编辑系统环境变量,单击打开系统属性界面。在系统属性窗口,单击环境变量,然后在系统变量区域下单击新建变量名填入DASHSCOPE_API_KEY变量值填入您的DashScope API Key。

        依次单击三个窗口的确定,关闭系统属性配置页面,完成环境变量配置。

        打开CMD(命令提示符)窗口或Windows PowerShell窗口,执行如下命令检查环境变量是否生效。

        保存好应用ID,注意区分KEY与ID。

        2.创建Java工程

        以下代码片段展示了如何在Maven项目的pom.xml文件中添加Alibaba Cloud AI DashScope的Spring Boot Starter依赖:

        <dependency>
            <groupId>com.alibaba.cloud.ai</groupId>
            <artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
            <version>1.0.0.2</version>
        </dependency>
         
        

        配置application

        # 大模型应用ID,如未配置环境变量,请在这里替换为实际的值
        spring.ai.dashscope.agent.options.app-id=自己的智能体应用ID
        # 百炼API Key,如未配置环境变量,请在这里替换为实际的值
        spring.ai.dashscope.api-key=${DASHSCOPE_API_KEY}

        创建controller.Controller

        import com.alibaba.cloud.ai.dashscope.agent.DashScopeAgent;
        import com.alibaba.cloud.ai.dashscope.agent.DashScopeAgentOptions;
        import com.alibaba.cloud.ai.dashscope.api.DashScopeAgentApi;
        import lombok.extern.slf4j.Slf4j;
        import org.springframework.ai.chat.model.ChatResponse;
        import org.springframework.ai.chat.prompt.Prompt;
        import org.springframework.beans.factory.annotation.Value;
        import org.springframework.web.bind.annotation.GetMapping;
        import org.springframework.web.bind.annotation.RequestMapping;
        import org.springframework.web.bind.annotation.RestController;
        
        @Slf4j
        @RestController
        @RequestMapping("/ai")
        public class BaiLianAgentController {
            //创建DashScopeAgent对象,用于调用百炼大模型API
            private DashScopeAgent agent;
            @Value("${spring.ai.dashscope.agent.options.app-id}")
            private String appId;
        
            public BaiLianAgentController(DashScopeAgentApi dashScopeAgentApi) {
                this.agent = new DashScopeAgent(dashScopeAgentApi);
            }
        
            @GetMapping("/bailian/agent/call")
            public String call(String message){
                log.debug("百炼大模型API调用:message={}",message);
                log.debug("百炼大模型API调用:appId={}",appId);
                ChatResponse response = agent.call(new Prompt(message, DashScopeAgentOptions.builder().withAppId(appId).build()));
                log.debug("百炼大模型API调用结果:response={}",response);
                String content = response.getResult().getOutput().getText();
                return content;
            }
        }

        然后通过AI生成一个聊天对话页面,即可实现。

        Logo

        有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

        更多推荐