SpringBoot集成大模型应用开发企业级项目--【篇三:SpringBoot集成大模型】

213 阅读3分钟

三、SpringBoot集成大模型

1、SpringBoot整合大模型

1.1、具体的地址

https://docs.langchain4j.dev/tutorials/spring-boot-integration

1.2、依赖如下

<!-- 基于open-ai的langchain4j接口: ChatGPT、 deepseek都是open-ai标准下的大模型 -->
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
</dependency>

1.3、配置如下

#langchain4j测试模型
langchain4j.open-ai.chat-model.api-key=demo langchain4j.open-ai.chat-model.model-name=gpt-4o
​
#请求和响应日志
langchain4j.open-ai.chat-model.log-requests=true langchain4j.open-ai.chat-model.log-responses=true
#启用日志debug级别
logging.level.root=debug

1.4、示例如下

@SpringBootTest
class LLMTest {
​
    @Test
    void testGPTDemo() {
        OpenAiChatModel model = OpenAiChatModel.builder()
                .baseUrl("http://langchain4j.dev/demo/openai/v1")
                .apiKey("demo")
                .modelName("gpt-4o-mini")
                .build();
        String answer = model.chat("你好");
        System.out.println(answer);
    }
​
​
    /**
     * 整合springBoot测试
     */
    @Autowired
    private OpenAiChatModel openAiChatModel;
​
    @Test
    void testSpringBoot() {
        // 向模型提问
        String answer = openAiChatModel.chat("你好");
        System.out.println(answer);
    }
​
    /**
     * 通义千问大模型
     */
    @Autowired
    private QwenChatModel qwenChatModel;
​
    @Test
    void testDashScopeQwen() {
        String answer = qwenChatModel.chat("你好");
        System.out.println(answer);
    }
​
    /**
     * 测试图片生成
     */
    @Test
    void testDashScopeWanx() {
        WanxImageModel wanxImageModel = WanxImageModel.builder()
                .modelName("wanx2.1-t2i-turbo")
                .apiKey(System.getenv("DASH_SCOPE_API_KEY"))
                .build();
        // 生成图片的描述
        Response<Image> response = wanxImageModel.generate("奇幻森林精灵:在一片弥漫着轻柔薄雾的古老森林深处,阳光透过茂密枝叶洒下金色光斑。一位身材娇小、长着透明薄翼的精灵少女站在一朵硕大的蘑菇上。她有着海藻般的绿色长发,发间点缀着蓝色的小花,皮肤泛着珍珠般的微光。身上穿着由翠绿树叶和白色藤蔓编织而成的连衣裙,手中捧着一颗散发着柔和光芒的水晶球,周围环绕着五彩斑斓的蝴蝶,脚下是铺满苔藓的地面,蘑菇和蕨类植物丛生,营造出神秘而梦幻的氛围。");
        // 获取图片的url
        URI url = response.content().url();
        System.out.println(url);
    }
}

2、接入其他大模型

2.1、都有哪些大模型

  • 大模型排行榜

    • https://superclueai.com/
      

SuperCLUE 是由国内 CLUE 学术社区于 2023 年 5 月推出的中文通用大模型综合性评测基准。

  • 评测目的

    • 全面评估中文大模型在语义理解、逻辑推理、代码生成等 10 项基础能力,以及涵盖数学、物理、社科等 50 多学科的专业能力,旨在回答在通用大模型发展背景下,中文大模型的效果情况,包括不同任务效果、与国际代表性模型的差距、与人类的效果对比等问题。
  • 特色优势

    • 针对中文特性任务,如成语、诗歌、字形等设立专项评测,使评测更符合中文语言特 点。通过 3700 多道客观题和匿名对战机制,动态追踪国内外主流模型,如 GPT-4、文心一言、通义千问等的表现差异,保证评测的客观性和时效性。
  • 行业影响

    • 作为中文领域权威测评社区,其评测结果被学界和产业界广泛引用,例如商汤 “日日新 5.0” 和百度文心大模型均通过 SuperCLUE 验证技术突破,推动了中文 NLP 技术生态的迭代,为中文大模型的发展和优化提供了重要的参考依据,促进了中文大模型技术的不断进步和应用。
  • LangChain4j* 支持接入的大模型*:

    • https://docs.langchain4j.dev/integrations/language-models/
      

2.2、接入DeepSeek

  1. 获取开发参数

    1. 访问官网: https://www.deepseek.com/ 注册账号,获取base_url和api_key,充值
  2. 配置开发参数

    1. 建议配置到注册中心
  3. 配置模型参数

    1. DeepSeek API* 文档:* https://api-docs.deepseek.com/zh-* *cn/**
    2. 在 LangChain4j 中,DeepSeek 和 GPT 一样也使用了 OpenAI 的接口标准,因此也使用OpenAiChatModel进行接入
    3. #DeepSeek
      langchain4j.open-ai.chat-model.base-url=https://api.deepseek.com
      langchain4j.open-ai.chat-model.api-key=${DEEP_SEEK_API_KEY} #DeepSeek-V3
      langchain4j.open-ai.chat-model.model-name=deepseek-chat #DeepSeek-R1 推理模型
      #langchain4j.open-ai.chat-model.model-name=deepseek-reasoner
      
  4. 测试(自行测试即可)

3、ollama本地部署

3.1、为什么要本地部署

Ollama 是一个本地部署大模型的工具。使用 Ollama 进行本地部署有以下多方面的原因:

  • 数据隐私与安全:对于金融、医疗、法律等涉及大量敏感数据的行业,数据安全至关重要。
  • 离线可用性:在网络不稳定或无法联网的环境中,本地部署的 Ollama 模型仍可正常运行。
  • 降低成本:云服务通常按使用量收费,长期使用下来费用较高。而 Ollama 本地部署,只需一次性投入硬件成本,对于需要频繁使用大语言模型且对成本敏感的用户或企业来说,能有效节约成本。
  • 部署流程简单:只需通过简单的命令 “ollama run < 模型名>”,就可以自动下载并运行所需的模型。
  • 灵活扩展与定制:可对模型微调,以适配垂直领域需求。

3.2、在ollama上部署DeepSeek

官网: https://ollama.com/

  • 下载并安装ollama

  • 查看模型列表,选择要部署的模型,模型列表: https://ollama.com/search

  • 执行命令:

    • ollama run  xxx
      

3.3、引入依赖

参考文档: https://docs.langchain4j.dev/integrations/language-models/ollama#get-* started*

<!-- 接入ollama -->
<dependency>
	<groupId>dev.langchain4j</groupId>
  <artifactId>langchain4j-ollama-spring-boot-starter</artifactId>
</dependency>

3.4、配置模型参数

#ollama
langchain4j.ollama.chat-model.base-url=http://localhost:11434
langchain4j.ollama.chat-model.model-name=deepseek-r1:1.5b
langchain4j.ollama.chat-model.log-requests=true
langchain4j.ollama.chat-model.log-responses=true

3.5、自行测试即可

4、接入阿里百练平台

4.1、什么是阿里百练平台

  • 阿里云百炼是 2023 年 10 月推出的。它集成了阿里的通义系列大模型和第三方大模型,涵盖文本、图像、音视频等不同模态。
  • 功能优势:集成超百款大模型 API,模型选择丰富;5-10 分钟就能低代码快速构建智能体,应用构建高效;提供全链路模型训练、评估工具及全套应用开发工具,模型服务多元;在线部署可按需扩缩容,新用户有千万 token 免费送,业务落地成本低。
  • 支持接入的模型列表: https://help.aliyun.com/zh/model-studio/models
  • 模型广场: https://bailian.console.aliyun.com/?productCode=p_efm#/model-market

4.2、配置apiKey

4.3、添加依赖

LangChain4j* 参考文档:* https://docs.langchain4j.dev/integrations/language-models/dashscope#plain-java

<dependencies>
	<!-- 接入阿里云百炼平台 -->
	<dependency>
		<groupId>dev.langchain4j</groupId>
		<artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId>
	</dependency>
</dependencies>

<dependencyManagement>
	<dependencies>
		<!--引入百炼依赖管理清单-->
		<dependency>
		<groupId>dev.langchain4j</groupId>
		<artifactId>langchain4j-community-bom</artifactId>
		<version>${langchain4j.version}</version>
		<type>pom</type>
		<scope>import</scope>
		</dependency>
</dependencies>
</dependencyManagement>

4.4、添加配置参数

#阿里百炼平台
langchain4j.community.dashscope.chat-model.api-key=${DASH_SCOPE_API_KEY}  langchain4j.community.dashscope.chat-model.model-name=qwen-max