1.Dify API接入方式
在Dify应用当中,可以在"访问API"处找到Dify对外提供的相关API接口。

可以直接使用原生HTTP的方式进行接入,这是最直接的实现方式,可以使用各种HttpClient,比如OkHttpClient/ApacheHttpClient等HTTP客户端都可以。
当然,也有现成的SDK可以使用,直接在SDK内部已经为我们封装好了各种API方法,直接使用即可。
Mave当中使用如下的依赖进行接入:
<dependency>
<groupId>io.github.imfangs</groupId>
<artifactId>dify-java-client</artifactId>
<version>1.2.5</version>
</dependency>
Gradle当中使用如下的依赖进行接入:
implementation("io.github.imfangs:dify-java-client:1.2.5")
我这里也是使用的SDK的方式进行的接入。
2.Dify API接入代码实现
可以使用如下的代码进行DifyClient的获取,对于base-url可以直接在Dify页面上进行获取(注意有后缀"/v1"),api-key可以在Dify应用右上角,点击"API密钥"进行创建并获取。
val difyClient = DifyClientFactory.createClient("${base-url}", "${api-key}")
可以使用如下的代码去获取Dify应用的详情信息:
// {"name":"问题提取","description":"","tags":[],"mode":"workflow"}
// 根据apiKey获取应用名称和应用类型, mode=workflow说明是工作流
println(objectMapper.writeValueAsString(difyClient.appInfo))
// {"toolIcons":{}}
println(objectMapper.writeValueAsString(difyClient.appMeta))
// {"openingStatement":"","suggestedQuestions":[],"suggestedQuestionsAfterAnswer":{"enabled":false},"speechToText":{"enabled":false},"retrieverResource":{"enabled":true},"annotationReply":{"enabled":false},"userInputForm":[{"text-input":{"variable":"text","label":"text","type":"text-input","max_length":48,"required":true,"options":[],"placeholder":"","default":"","hint":""}}],"fileUpload":{"image":{"enabled":false,"numberLimits":3,"transferMethods":["local_file","remote_url"]},"enabled":false,"allowedFileTypes":["image"],"allowedFileExtensions":[".JPG",".JPEG",".PNG",".GIF",".WEBP",".SVG"],"allowedFileUploadMethods":["local_file","remote_url"],"numberLimits":3,"fileUploadConfig":{"fileSizeLimit":15,"batchCountLimit":5,"imageFileSizeLimit":10,"videoFileSizeLimit":100,"audioFileSizeLimit":50,"workflowFileUploadLimit":10}},"systemParameters":{"fileSizeLimit":15,"imageFileSizeLimit":10,"audioFileSizeLimit":50,"videoFileSizeLimit":100}}
println(objectMapper.writeValueAsString(difyClient.appParameters))
评论