langchain4j对接阿里云百炼平台

发布于:2025-03-18 ⋅ 阅读:(25) ⋅ 点赞:(0)

1. 主流的java大模型开发框架介绍

1.1 LangChain4J

  1. 提供标准化API,支持超过15个主流大模型提供商和嵌入存储。
  2. 提供工具箱,从低级提示词模板到高级AI服务,适合构建聊天机器人和检索增强生成(RAG)管道。
  3. 社区支持活跃,能够快速整合最新的AI技术,便于Java开发者将AI功能集成到现有项目中。
  4. 官网地址:https://docs.langchain4j.dev

1.2 Spring AI:

  1. 深度集成到Spring框架中,Java开发者可以轻松将AI功能嵌入到现有Spring项目中。
  2. 尽管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);
    }
}