三、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
-
获取开发参数
- 访问官网: https://www.deepseek.com/ 注册账号,获取base_url和api_key,充值
-
配置开发参数
- 建议配置到注册中心
-
配置模型参数
- DeepSeek API* 文档:* https://api-docs.deepseek.com/zh-* *cn/**
- 在 LangChain4j 中,DeepSeek 和 GPT 一样也使用了 OpenAI 的接口标准,因此也使用OpenAiChatModel进行接入
-
#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
-
测试(自行测试即可)
3、ollama本地部署
3.1、为什么要本地部署
Ollama 是一个本地部署大模型的工具。使用 Ollama 进行本地部署有以下多方面的原因:
- 数据隐私与安全:对于金融、医疗、法律等涉及大量敏感数据的行业,数据安全至关重要。
- 离线可用性:在网络不稳定或无法联网的环境中,本地部署的 Ollama 模型仍可正常运行。
- 降低成本:云服务通常按使用量收费,长期使用下来费用较高。而 Ollama 本地部署,只需一次性投入硬件成本,对于需要频繁使用大语言模型且对成本敏感的用户或企业来说,能有效节约成本。
- 部署流程简单:只需通过简单的命令 “ollama run < 模型名>”,就可以自动下载并运行所需的模型。
- 灵活扩展与定制:可对模型微调,以适配垂直领域需求。
3.2、在ollama上部署DeepSeek
-
下载并安装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
- 申请* apiKey****:** https://bailian.console.aliyun.com/?apiKey=1&productCode=p_efm#/api-* key*
- 配置* apiKey***:配置在环境变量DASH_SCOPE_API_KEY**中
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