项目源码
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