最近在学习dify方面的知识,过程遇到的一些小困难,记录一下。
java调用的代码主要参考这个基于 Spring Boot 和 Dify 实现流式响应输出_springboot dify-CSDN博客
当然,你可能做点修改
如果你直接部署dify,没有进行其他相关配置,那么在通过java调用后,应该会输出以下的内容
流式结果:StreamResponse(event=message, id=44f74b98-22bf-43e6-916c-f738e5704d79, task_id=d05f7e19-640c-4292-bb2b-de1681e803cf, message_id=44f74b98-22bf-43e6-916c-f738e5704d79, answer=这是根据您需求生成的文件:[a0277b8185f64150bbecd372b7023c8a.xlsx](/files/tools/28f48078-8dbc-4954-aff2-ec8bc8fd7ded.xlsx?timestamp=1746515049&nonce=da4ed54481aad55f8c8d71afe5b784af&sign=VMiX1jCevCsyCQIt8dSfszA5jJCCX5An9dD3Z6wl8lE=), created_at=1746514907, conversation_id=f41acbdb-54b7-4318-82de-e7d7448928c5, data=null)
主要看/files/tools/
当我们在dify的页面下载文件时,也就是
这时候其他访问的是127.0.0.1:80/files/tools/.....;所以能下载文件,dify默认启动端口就是80,
,当用java代码调用时返回的只有/files/tools.....,然后前端点击时,会判断你这个地址正不正确,/files/tools...,没有http://或者https://,也没有端口,此时你点击访问的路径会是你前端的路径+/files/tools,例如http://localhost:1002/files/tools....,所以会访问不到,这时后只要我们修改一下。env文件就行了,找到你安装dify目录的docker目录,里面可以找到.env文件
不同版本内容可能有所差异,我的是dify1.3,FILES_URL本来是空的,这里加上dify的路径就行,我是运行在80端口,所以我这里没加端口,如果你修改了运行的端口,这里记得要加上,修改完后在dify的docker目录下命令行执行docker-compose down && docker-compose up -d即可,
如果你直接在这里停止又启动,大概率没效果,起码我是没有,所以用上面的命令启动,完成之后再次调用,此时返回的就是http://127.0.0.1/files/tools/......
此时我们在自己的页面点击就能下载文件了。
当然,获取方式有很多种,这只是其中一种而已。其他的就自行研究了