LangChain4j入门(三)接入阿里百炼

前言

        百炼平台集成了通义系列大模型和第三方模型,涵盖文本、图像、音视频等多种模态,支持 LlamaIndex 等开源框架,提供丰富的模型选择。

        本文来实践一下使用 LangChain4j 接入通义千问和通义万象。

一、简单比较百炼和deepseek

特性阿里云百炼平台DeepSeek
模型支持多模态、多模型,支持第三方接入主要提供 DeepSeek 系列模型
应用构建智能体、工作流、插件生态主要关注模型性能和推理效率
部署方式云端托管,提供 API 接口支持开源模型,可进行私有化部署
开发工具链完善的开发工具链,支持 Prompt 优化、流程编排等提供基础的模型接口,需自行构建应用层
生态建设丰富的生态服务,支持模型和应用共享以模型为核心,生态建设相对较少
适用企业类型适合需要快速构建多模态 AI 应用的企业适合需要高性能、低成本模型部署的企业

二、创建百炼平台API-KEY

        通义大模型首页:通义大模型_AI大模型_一站式大模型推理和部署服务-阿里云,笔者在写文章的时候,通义大模型开放免费试用,后续关闭的话只能氪金了。

        进入百炼控制台后,会有一个免费试用开通的协议,根据提示勾选同意协议即可。我这里已经完成开通了。

        点击左下角的API-key,就可以进入key管理界面了,在管理界面的右上角我们点击创建我的API-KEY。

        选择默认的业务空间确认即可创建完成

        查看我的key

三、接入通义大模型

① 添加通义的依赖

        官方文档地址:DashScope (Qwen) | LangChain4j,官方文档中有直接引入 Starter 的方案,我们直接照做使用即可。

(1)父工程管理清单

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

(2)服务工程引入依赖

<!-- langchain4j-Qwen -->
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId>
</dependency>

② 添加配置

        还是按照官方文档的说明,添加配置,官方文档地址:DashScope (Qwen) | LangChain4j

        模型的名称我们可以在百炼平台的模型广场获取,先用 qwen-max 尝尝鲜。

#open-ai相关配置
langchain4j:
  open-ai:
    chat-model:
      # 这里需要你自己的 api-key
      api-key: xxxxxxxxxxxxxxxxxxxxxxxxxxx
      model-name: deepseek-chat
      log-requests: true
      log-responses: true
      base-url: https://api.deepseek.com
  ollama:
    chat-model:
      base-url: http://127.0.0.1:11434
      # 这里需要修改成自己部署运行的模型名称
      model-name: deepseek-r1:8b
      log-requests: true
      log-responses: true
  #通义配置
  community:
    dashscope:
      chat-model:
        # 这里需要你自己的 api-key
        api-key: xxxxxxxxxxxxxxx
        model-name: qwen-max

③ 创建千问的测试接口

private final QwenChatModel qwenChatModel;

/**
 * 测试LangChain4j的Qwen功能
 * 向Qwen模型发送预设问题并获取回答
 *
 * @return Result<String> 包含成功状态和模型回答结果的封装对象
 * 当调用成功时返回模型回答文本,失败时返回错误信息
 */
@Operation(summary = "测试LangChain4j功能-Qwen")
@PostMapping("/Qwen")
public Result<String> Qwen() {
    // 向 模型 提问
    String answer = qwenChatModel.chat("请说明你的模型名称以及回答我你的特长是什么");
    return Result.success(answer);
}

④ 验证功能

        此步骤直接展示接口调用结果,测试具体步骤请查看专栏第一篇文章的测试章节。

⑤ 创建万象的测试接口

        首先需要选择一个模型,点击查看详情可以获取模型名称,有好多免费试用次数。

/**
 * 测试LangChain4j的Wanxiang功能
 * 向Wanxiang模型发送预设问题并获取回答
 *
 * @return Result<String> 包含成功状态和模型回答结果的封装对象
 * 当调用成功时返回模型回答文本,失败时返回错误信息
 */
@Operation(summary = "测试LangChain4j功能-Wanxiang")
@PostMapping("/wanxiang")
public Result<String> wanxiang() {
    // 手动配置模型配置
    WanxImageModel wanxImageModel = WanxImageModel.builder()
            .modelName("wanx2.1-t2i-plus")
            .apiKey("xxxxxxxxxxxxx") // 这里需要你自己的 api-key
            .build();

    // 向 模型 提问
    Response<Image> response = wanxImageModel.generate("LOL英雄皮城女警正在参与5V5团战,战况十分激烈,正处于对抗高潮阶段");

    // 获取图片的路径
    String imageUrl = response.content().url().toString();
    return Result.success(imageUrl);
}

⑥ 验证功能

        此步骤直接展示接口调用结果,测试具体步骤请查看专栏第一篇文章的测试章节。

        生成的图片下载地址如下,感觉图片质量还不错,内容可能需要额外补充才能更准确。

https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/1d/72/20250515/4615cd53/388bb94a-bb80-4b64-90a8-8b6ea7db24842587851093.png?Expires=1747359946&OSSAccessKeyId=LTAI5tKPD3TMqf2Lna1fASuh&Signature=cOvoB32IEnvVcrDZIguNyKpkE9I%3D

后记

        按照一篇文章一个代码分支,本文的后端工程的分支都是 LangChain4j-3,前端工程的分支是 LangChain4j-1。

后端工程仓库:后端工程

前端工程仓库:前端工程

### LangChain4j 的入门教程 LangChain4j 是 Java 领域中的一个框架,旨在帮助开发者轻松集成人工智能技术到他们的应用程序中。以下是关于如何使用 LangChain4j 进行开发的一些基础知识和示例代码。 #### 1. 设置环境 为了开始使用 LangChain4j,首先需要设置项目依赖项。可以通过 Maven 或 Gradle 添加所需的库。例如,在 `pom.xml` 文件中添加以下内容: ```xml <dependency> <groupId>com.langchain4j</groupId> <artifactId>langchain4j-core</artifactId> <version>0.0.1</version> </dependency> ``` 如果计划使用 OpenAI 等外部服务,则还需要引入相应的客户端库,并确保已获取有效的 API 密钥[^3]。 #### 2. 创建第一个应用 下面是一个简单的 Hello World 示例程序,展示如何初始化 LLM 并调用其功能: ```java import com.langchain4j.llm.openai.OpenAILanguageModel; import com.langchain4j.LLMLanguageModel; public class HelloWorldExample { public static void main(String[] args) { String apiKey = "your-openai-api-key"; // 替换为您的实际密钥 LLMLanguageModel llm = new OpenAILanguageModel(apiKey); String prompt = "Tell me a joke"; String response = llm.generate(prompt); System.out.println(response); } } ``` 此代码片段展示了如何加载预训练的语言模型以及向该模型发送请求以获得响应[^4]。 #### 3. 定制化处理流程 类似于 Python 版本的功能扩展方式,Java 用户也可以定义自己的数据处理器逻辑并与现有链路相结合。比如实现一个新的分词器类 `CustomTokenizer` 来替代默认行为: ```java import com.langchain4j.processor.TextProcessor; public class CustomTokenizer implements TextProcessor { @Override public List<String> process(String input){ return Arrays.asList(input.split("\\s+")); } } // 注册自定义处理器 LangChain.registerProcessor("custom_tokenizer",new CustomTokenizer()); ``` 上述操作允许我们灵活调整输入文本的解析策略,从而更好地适配特定应用场景下的需求[^1]。 #### 4. 构建复杂对话系统 除了基本的文字生成外,还可以进一步利用 LangChain 提供的各种工具组件搭建更复杂的交互式系统。例如基于检索的知识问答、多轮次会话管理等功能都可以在此基础上逐步完善起来[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值