1. 主流的java大模型开发框架介绍
1.1 LangChain4J
- 提供标准化API,支持超过15个主流大模型提供商和嵌入存储。
- 提供工具箱,从低级提示词模板到高级AI服务,适合构建聊天机器人和检索增强生成(RAG)管道。
- 社区支持活跃,能够快速整合最新的AI技术,便于Java开发者将AI功能集成到现有项目中。
- 官网地址:https://docs.langchain4j.dev
1.2 Spring AI:
- 深度集成到Spring框架中,Java开发者可以轻松将AI功能嵌入到现有Spring项目中。
- 尽管Spring AI仍处于发展阶段,尚未发布正式版本,但其凭借Spring生态系统,具备了极强的扩展性和集成能力。
对比
对比 | LangChain4J | Spring AI |
---|---|---|
功能成熟度 | 功能全面,适合大规模AI应用 | 仍在发展,功能有待完善 |
集成能力 | 支持多种LLM和嵌入存储,适合多样化场景 | 集成到Spring项目中,扩展性强 |
社区支持 | 社区活跃,反馈迅速 | 项目正在成长,API变更较大 |
2. 阿里云百炼平台
2.1平台地址:https://bailian.console.aliyun.com
2.2前往平台申请apiKey
3. 引入相关jar包
3.1 langchain4j-bom版本控制依赖
引入版本控制后子jar包不需要写版本号
<dependencyManagement>
<dependencies>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-bom</artifactId>
<version>1.0.0-beta1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
3.2 langchain4j相关jar
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-dashscope</artifactId>
<version>1.0.0-beta1</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-reactor</artifactId>
</dependency>
4.代码示例
代码获取: www.yulaoban.club/ca
视频地址
4.1 注入聊天模型到容器
@Bean
public ChatLanguageModel chatLanguageModel(){
return OpenAiChatModel.builder()
.apiKey("your apikey from dashscope")
.modelName("qwen-turbo")
.baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")
.build();
}
4.2 定义聊天助手接口
public interface AssistantService {
String chat(@UserMessage String msg);
}
4.3 绑定聊天模型到聊天助手
@Bean
public AssistantService assistantService(ChatLanguageModel chatLanguageModel){
return AiServices.builder(AssistantService.class)
.chatLanguageModel(chatLanguageModel)
.chatMemoryProvider(memoryId -> MessageWindowChatMemory.withMaxMessages(10))
.build();
}
4.4 controller示例
@RestController
@RequestMapping("/chat")
public class ChatController {
@Resource
private AssistantService assistantService;
@GetMapping("/generate")
public String simple(@RequestParam("msg") String msg){
return assistantService.chat(msg);
}
}