[RFC] 064 - Dify Integration | Dify 接入 #4412
cy948
started this conversation in
RFC | 特性开发
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
背景
Dify is an open-source LLM app development platform. Its intuitive interface combines AI workflow, RAG pipeline, agent capabilities, model management, observability features and more.
Dify 提供了一套完全服务化的API接入,使得纯前端接入方案成为可能。本地只需持久化“身份信息、API鉴权信息、聊天”信息,其余均可从Dify API Endpoint获取。
挑战
以下从这几方面记录 Dify 接入的挑战
Dify 的身份管理
Dify 在进行每个请求时都需要身份信息。目前的临时实现把信息存在了原来的 Agent 设置中。目前身份信息包括:
Dify 的聊天信息管理
前端需要对后端返回的 Dify 信息流进行处理,包括
Dify Model Provider
前后端传参问题
问题源于Dify官方Saas的POST跨域。前端需给后端传递的参数有 userid, topicId?, baseurl, token
流处理问题
Dify 需要对SSE流进行处理,而 Dify 的流不兼容 OpenAI 格式,需要单独处理。
data:
前缀的 chunk,同时这个chunk不能被随意丢弃,因为它含有最有一个 character 。2024/10/27 Dify 的流又出问题了,ReadableStream无法对其进行切分,可能是因为单步 event stream 达到了最大长度而被截断。以下是处理错误时对单个 buffer 的打印:
mark1
: 此处的data
已经是一个完整的 event 了,按道理这个 stream 应该被终止;mark2
: 此处又有一个 event 跟随, 并且因为在一个 event stream 中塞入了两个data
,导致整个 event 超出了长度从而被截断Beta Was this translation helpful? Give feedback.
All reactions