dify 当在知识文档名称中指定超过252个字符时,会发生内部服务器错误(代码:未知),

cfh9epnr  于 6个月前  发布在  其他
关注(0)|答案(1)|浏览(45)

自我检查

  • 这仅用于提交错误报告,如果您想提问,请访问 Discussions
  • 我已在 search for existing issues 中搜索了现有问题,包括已关闭的问题。
  • 我确认我使用英语提交此报告(我已阅读并同意 Language Policy )。
  • 请不要修改此模板 :) 并填写所有必填字段。

Dify版本

0.6.11

云或自托管

自托管(Docker)

重现步骤

curl --location --request POST 'https://xxxxxxxxxx/v1/datasets/ca90acc9-2ead-490b-bd38-63254425db10/document/create_by_text' \
--header 'Authorization: Bearer dataset-XXXXXXXXXXXXXX' \
--header 'Content-Type: application/json' \
--data-raw '{"name": "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012","text": "--","indexing_technique": "high_quality","process_rule": {"mode": "automatic"}}'
{"message": "Internal Server Error", "code": "unknown"}

这可能是一个特殊用途,但我为知识文档名称指定JSON,在回答时将上下文文件名解码为JSON,并在答案中包含该信息。
这可能导致文档名称更长。
我们检查后发现,如果文档名称超过252个字符,则会发生内部服务器错误。
这是一个特殊用途,但非常有用,我们希望能够使名称尽可能长。

✔️ 预期行为

除了内部服务器错误之外的其他错误发生,并且显示超过字符的错误消息。

❌ 实际行为

内部服务器错误

kq0g1dla

kq0g1dla1#

你遇到的问题是由于数据库约束限制了知识文档名称的长度。具体来说,Tag表中的name字段被定义为db.String(255),这将长度限制在255个字符1(https://github.com/langgenius/dify/blob/main/api/models/model.py)内。
要解决这个问题,你可以考虑以下步骤:

  1. 更新数据库架构:如果需要,修改架构以增加name字段的长度。这涉及到修改数据库迁移文件中的列定义。
  2. 输入验证:实施输入验证,确保文档名称不超过允许的长度。可以在API请求处理逻辑中实现这一点,以提供更友好的用户错误信息,而不是内部服务器错误。
  3. 配置参数:检查是否有任何影响文档名称最大长度的配置参数或环境变量,并相应地进行调整2(https://github.com/langgenius/dify/blob/main/web/config/index.ts)。
    通过遵循这些步骤,你可以防止内部服务器错误,并在文档名称超过允许长度时向用户提供适当的反馈。
  • 要继续与Dosu交谈,请提及@dosu。*

相关问题