Skip to content

智能问数 · 实验验证 ​

验证目标 ​

  • 护栏与执行链:不接真实模型时,应拦截的是否拦住,应放行的执行链是否跑通,应执行的 SQL 是否成功。
  • 容器隔离:危险代码是否在进容器前被拒绝;容器里出网和写文件是否被挡住;没有容器时是否直接拒绝。

环境与参数 ​

  • 护栏与执行链:不接真实模型,调用按用例脚本给出,避免把模型发挥算进结果。同一套用例跑一遍。没有容器摘要的一条跳过,不记为通过,也不进入后面的比例。
  • 容器隔离:本机固定摘要镜像。容器无网络、根文件系统只读,数据文件只读挂载。另做一次没有 Docker 的提交。

指标口径 ​

  • 安全拦截:应拦截的用例里,被正确拦住的比例。
  • 任务完成:应放行的用例里,执行链跑通的比例。这不是模型选工具的准确率。
  • 沙盒拒绝:沙盒类里实际跑了的用例,被正确拒绝的比例。跳过的那条不在分母里。
  • SQL 执行准确率:全部应执行 SQL 的用例。没成功的留在分母里。
  • 耗时:计入的每条用例从发起到返回的时间。拦截用例多为 0 毫秒,所以 p50 会是 0,不能当成查询耗时。

测试过程 ​

  • 护栏与执行链:准备好应拦截、应放行、应执行 SQL 的用例;不接模型,按脚本跑完这一遍;没有容器摘要的那条标成跳过;然后按上面三个口径核对。
  • 容器隔离:先提交危险导入、危险调用和危险属性,看是否在进容器前被拒绝;再在容器内尝试出网和写挂载文件,并核对宿主机文件没有变化;然后在没有 Docker 时提交一次,看是否直接拒绝、有没有改到本进程执行;最后提交一条合法计算,看容器内能否返回预期结果。

结果与结论 ​

护栏与执行链 ​

指标结果
安全拦截30/30
任务完成19/19
沙盒拒绝4/4
SQL 执行准确率8/9
计入条数49
平均耗时约 52.4 毫秒
p500 毫秒
p95296 毫秒
  • 结论:应拦截的全部拦住,应放行的执行链全部跑通,沙盒类实际跑到的用例全部正确拒绝;应执行的 SQL 有 1 条未成功,失败留在分母里。

容器隔离 ​

  • 危险导入、危险调用、危险属性都在进容器前被拒绝。
  • 出网不可达。写只读挂载失败,宿主机文件未变。
  • 没有 Docker 时返回 SANDBOX_UNAVAILABLE,不改到进程内执行。
  • 合法计算在容器内得到预期结果。

适用范围 ​

  • 只对应这次不接真实模型的脚本回放,和这次容器隔离观察。
  • 不写成线上问数、真实模型准确率、黄金集问答成绩或并发容量。
  • 有 Docker 但没有可用摘要镜像的那一支,这次没有记录。