Java集成Dify AI服务的客户端工具包

项目源码

Dify Java SDK是为Java开发者设计的开源工具包,专门用于与Dify AI平台的无缝对接。该工具包全面覆盖了Dify平台的各项API功能,使开发者能够便捷地在Java应用中调用AI服务。

核心功能

本工具包具备以下主要特性:

1. 多场景应用支持

  • 智能对话系统:通过专用接口实现多轮对话管理
  • 文本自动生成:支持各类文本内容的智能创作
  • 流程化对话:适用于复杂业务流程的对话管理
  • 自动化流程:实现多步骤任务的智能编排
  • 知识图谱:提供知识库的创建与检索功能

2. 多样化交互方式

  • 同步请求:即时获取完整响应内容
  • 实时流传输:支持内容的分段接收
  • 多媒体处理:包含语音文字互转等功能

3. 对话系统管理

  • 会话的创建与维护
  • 历史记录查询
  • 会话信息修改
  • 反馈信息提交
  • 智能问题推荐

4. 知识库全周期管理

  • 知识库的建立与维护
  • 文档的上传与管理
  • 内容分块处理
  • 语义化搜索

5. 可定制化配置

  • 连接时长设置
  • 读写超时调整
  • 自定义HTTP客户端

环境配置

运行要求

  • JDK 1.8及以上版本
  • Maven 3.x或Gradle 4.x以上

Maven引入

<dependency>
<groupId>io.github.imfangs</groupId>
<artifactId>dify-java-client</artifactId>
<version>1.0.4</version>
</dependency>

Gradle引入

implementation 'io.github.imfangs:dify-java-client:1.0.4'

初始化指南

客户端创建

// 创建通用客户端
DifyClient client = DifyClientFactory.createClient("https://api.dify.ai/v1", "your-api-key");
// 创建专用客户端
DifyChatClient chatClient = DifyClientFactory.createChatClient("https://api.dify.ai/v1", "your-api-key");
// 自定义配置创建
DifyConfig config = DifyConfig.builder()
.baseUrl("https://api.dify.ai/v1")
.apiKey("your-api-key")
.connectTimeout(5000)
.readTimeout(60000)
.writeTimeout(30000)
.build();
DifyClient customClient = DifyClientFactory.createClient(config);

应用示例

1. 智能对话系统

同步模式
DifyChatClient chatClient = DifyClientFactory.createChatClient("https://api.dify.ai/v1", "your-api-key");
ChatMessage message = ChatMessage.builder()
.query("请做自我介绍")
.user("user-123")
.responseMode(ResponseMode.BLOCKING)
.build();
ChatMessageResponse response = chatClient.sendChatMessage(message);
System.out.println("响应内容: " + response.getAnswer());
实时模式
chatClient.sendChatMessageStream(message, new ChatStreamCallback() {
@Override
public void onMessage(MessageEvent event) {
System.out.println("实时内容: " + event.getAnswer());
}
@Override
public void onMessageEnd(MessageEndEvent event) {
System.out.println("消息ID: " + event.getMessageId());
}
});

2. 文本生成服务

同步请求
DifyCompletionClient completionClient = DifyClientFactory.createCompletionClient("https://api.dify.ai/v1", "your-api-key");
Map<String, Object> inputs = new HashMap<>();
inputs.put("content", "科技");
CompletionRequest request = CompletionRequest.builder()
.inputs(inputs)
.responseMode(ResponseMode.BLOCKING)
.user("user-123")
.build();
CompletionResponse response = completionClient.sendCompletionMessage(request);
System.out.println("生成内容: " + response.getAnswer());

3. 知识库管理

文档操作
DifyDatasetsClient datasetsClient = DifyClientFactory.createDatasetsClient("https://api.dify.ai/v1", "your-api-key");
CreateDocumentByTextRequest docRequest = CreateDocumentByTextRequest.builder()
.name("示例文档")
.text("文档示例内容")
.indexingTechnique("high_quality")
.build();
DocumentResponse docResponse = datasetsClient.createDocumentByText(datasetId, docRequest);
System.out.println("文档ID: " + docResponse.getDocument().getId());

接口说明

客户端分类

类型 说明 功能
通用客户端 全功能支持 所有API调用
对话客户端 专注对话场景 对话管理与反馈
文本客户端 文本生成专用 内容创作控制
知识库客户端 知识管理专用 文档与检索管理
#### 响应类型
模式 枚举值 说明
---- -------- -----
同步 BLOCKING 即时完整响应
实时 STREAMING 分段内容接收
### 高级设置
#### 自定义HTTP配置
DifyConfig config = DifyConfig.builder()
.baseUrl("https://api.dify.ai/v1")
.apiKey("your-api-key")
.connectTimeout(5000)
.readTimeout(60000)
.writeTimeout(30000)
.build();
DifyClient client = DifyClientFactory.createClient(config);

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/9336.html

(0)
LomuLomu
上一篇 2025 年 5 月 13 日 上午1:57
下一篇 2025 年 5 月 13 日 上午2:58

相关推荐

  • Java MDC技术详解:实现高效日志链路追踪的实战指南

    一、MDC技术概述 MDC(映射诊断上下文)是SLF4J日志框架提供的一项线程级数据存储功能。作为线程安全的容器,它能够在特定线程范围内保存多组键值数据,并自动将这些信息嵌入日志记录中,从而实现日志信息的上下文关联。 二、MDC的核心价值 功能 描述 应用实例 请求追踪 完整记录请求处理路径 微服务调用链路分析 参数传递 跨方法共享通用数据 机构编码、用户标…

    未分类 2025 年 5 月 19 日
    22000
  • (2025自测有效!)全网最好的python配置教程【非常非常适合小白】

    前几天我的电脑刚刚重装,把python重新配置了一下。 1.Python环境部署Python3 可应用于多平台包括 Windows、Linux 和 Mac OS X。 Python官网:https://www.python.org/ 进入官网在导航栏选择Dowmloads,选择所使用的系统(以Windows为例) 进入Windows下载页之后选择需要下载的版…

    2025 年 1 月 12 日
    39300
  • 免费将PDF转换为图片的实用指南

    引言 各位朋友好,我是小徐。在日常的Java开发工作中,处理PDF文档是常见需求之一。为了提升工作效率,今天我将分享一个无需付费、无水印的PDF转图片方法。让我们一起来探索吧! 轻松实现PDF转图片(零成本) 第一步,通过微信搜索功能,输入”PDF编辑器小帮手”进行查找,认准正确的小程序图标进入。您也可以直接点击文中的小程序链接快速访问。进入后,在功能界面选…

    2025 年 5 月 15 日
    19100
  • java: JDK isn‘t specified for module ‘product-service‘问题解决

    目录 问题 解决方法 1.打开File->Project Structure… 2.将Project SDK修改为17 Oracle OpenJDK 17.0.12,并Apply,OK 问题 添加module后报错:java: JDK isn’t specified for module ‘product-service’ 查看pom.xml文件也添加了…

    2025 年 1 月 19 日
    36700
  • Java MyBatis 面试题

    谈谈MyBatis的启动过程? 加载配置文件: MyBatis的配置文件是一个XML文件,包含了数据库连接信息、映射文件的位置等配置信息。在启动过程中,MyBatis会读取并解析这个配置文件。 创建SqlSessionFactory对象: SqlSessionFactory是MyBatis的核心对象,用于创建SqlSession对象。在启动过程中,MyBat…

    未分类 2025 年 1 月 14 日
    36000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信