a8c8dd8643
VPN 打通后开发机可直连内网,原先「默认公网 + prod 覆盖内网」的双份配置 已无必要,且两套 Key/知识库 ID 完全不通用(实测互打一律 401), 留着只会造成误用。公网那套整体移除,回退到 git 历史取。 - application.yml:base-url 与 8 个应用 Key、全部知识库密钥/ID 改指内网; 原默认值来自公网,其注释同步改写 - application-dev.yml / application-prod.yml:删除 dify 覆盖段。 YAML map 是按键合并而非整体替换,保留一份与默认值相同的覆盖 只会在将来漏改时混出「一半内网一半公网」的状态 - DifyProperties:默认 baseUrl 改内网,类注释同步 修复一个上线起就坏的接口: - admin 端「竞赛历史」文档列表按 challenge-cup 取库,而该 ID b342f096-… 在**公网实例上也返回 404**(公网真实的挑战杯库是 7c812029-…,从未登记),故该接口一直不可用。改指内网「竞赛案例」 库(181d58e3-…,145 篇),实测已能列出文档。对外路径保持 /challenge-cup/documents 不变,以免影响 admin 端调用 清理失效的工作流变量(内网实测已从开始节点移除): - document-process 的 query / pdf_url,declaration 的 parse_value。 三者配置为空串以显式丢弃 —— 直接删行会退回「按原名透传」, 反而把 pdfUrl / parseValue 这类驼峰名发给 Dify。实体字段保留, 不破坏 /documentProcess/upload 的入参契约(pdfUrl 仍参与 「必须提供文件或 pdfUrl」的校验,只是不再转发) - 注:Dify 对多传变量静默忽略,故此前不报错、功能未受影响, 属「看着对其实无效」的配置 测试:改断言为内网值,并新增「不残留任何公网配置」「失效变量必须 配成空串」等防回归用例;变异验证(base-url 改回公网 / 空串改回生效名) 确认用例有真实判别力。Dify 相关 44 例全绿。 Refs: .scratch/dify-probe/README.md, .scratch/ai-assistant/map.md
69 lines
2.6 KiB
Java
69 lines
2.6 KiB
Java
package com.gxwebsoft.ai.entity;
|
|
|
|
import com.baomidou.mybatisplus.annotation.TableField;
|
|
import io.swagger.annotations.ApiModel;
|
|
import lombok.Data;
|
|
import lombok.EqualsAndHashCode;
|
|
|
|
import java.io.Serializable;
|
|
|
|
/**
|
|
* 智能文档处理系统入参(对应「医科大智能文档处理系统」工作流)。
|
|
*
|
|
* <p>业务说明:对上传的 PDF 或网络文件进行解析、清洗、分段、关键词提取,
|
|
* 处理结果导入「GXMU 团章」知识库。因此文件来源有二:上传文件或网络 PDF 地址。
|
|
*
|
|
* <p><b>字段名对齐 Dify 工作流开始节点的真实变量名</b>,取自内网实例
|
|
* 10.100.158.15 上 probe-dify.sh 的实测输出(2026-10-12 重测):
|
|
* {@code pdf_file(文件类)}。
|
|
* 早先实测还有 {@code query, pdf_url},现均已从开始节点移除;映射表已把这两个
|
|
* 字段配置为空串(丢弃),故 {@link #query} 与 {@link #pdfUrl} 不会被下发给 Dify。
|
|
*
|
|
* <p>发送时仍会经 {@code dify.workflows.document-process.fields} 映射一次,
|
|
* 保留这一层是为了让变量名再次变动时只改 yml、不改代码。
|
|
*
|
|
* @author Codex
|
|
* @since 2026-09-19
|
|
*/
|
|
@Data
|
|
@EqualsAndHashCode(callSuper = false)
|
|
@ApiModel(value = "智能文档处理对象")
|
|
public class DocumentProcessInputs implements Serializable {
|
|
|
|
/**
|
|
* 处理指令或补充说明。
|
|
*
|
|
* <p><b>当前不会下发给 Dify</b>:原对应变量 {@code query} 已从工作流开始节点移除,
|
|
* 映射表把它配置为空串以显式丢弃。字段保留是为了不破坏
|
|
* {@code /api/ai/documentProcess/upload} 的入参契约。
|
|
*/
|
|
@TableField(exist = false)
|
|
private String query;
|
|
|
|
/**
|
|
* 网络 PDF 地址。
|
|
*
|
|
* <p><b>当前不会下发给 Dify</b>:原对应变量 {@code pdf_url} 已从开始节点移除,
|
|
* 映射表配置为空串以显式丢弃。注意 {@code /documentProcess/upload} 仍接受
|
|
* {@code pdfUrl} 参数并参与"必须提供文件或 pdfUrl"的校验,只是不再转发给 Dify。
|
|
*/
|
|
@TableField(exist = false)
|
|
private String pdfUrl;
|
|
|
|
/**
|
|
* 上传的 PDF 文件。对应 Dify 变量 pdf_file(文件类)。
|
|
*
|
|
* <p>由 {@code /api/ai/documentProcess/upload} 在服务端上传到 Dify 后填充;
|
|
* JSON 直调时也可传入 Dify 文件对象或 upload_file_id。
|
|
*/
|
|
@TableField(exist = false)
|
|
private Object pdfFile;
|
|
|
|
/**
|
|
* 直接指定 inputs,非空时优先于上面的业务字段。
|
|
*/
|
|
@TableField(exist = false)
|
|
private java.util.Map<String, Object> inputs;
|
|
|
|
}
|