form-builder

form-builder

热门

使用 docassemble 构建交互式文档表单和问卷

316Star
70Fork
更新于 2026/1/31
SKILL.md
只读
名称
form-builder
描述

使用 docassemble 构建交互式文档表单和问卷

版本
1.0

表单构建器技能

概述

本技能支持使用 docassemble 创建智能文档表单——这是一个通过引导式访谈生成文档的平台。您可以创建根据答案自适应调整的问卷。

使用方法

  1. 描述您需要的表单或文档
  2. 指定条件逻辑要求
  3. 我将创建 docassemble 访谈 YAML

示例提示:

  • "为新客户创建一份信息收集表"
  • "为法律文档构建一份条件问卷"
  • "为合同生成创建一个多步骤表单"
  • "设计一个交互式文档组装表单"

领域知识

访谈结构

metadata:
  title: 客户信息收集表
  short title: 信息收集

---
question: |
  您的姓名是什么?
fields:
  - 名: first_name
  - 姓: last_name

---
question: |
  您需要哪种服务?
field: service_type
choices:
  - 合同审查
  - 文档起草
  - 咨询

---
mandatory: True
question: |
  感谢您,${ first_name }!
subquestion: |
  我们将就您的 ${ service_type } 请求与您联系。

条件逻辑

---
question: |
  您是企业还是个人?
field: client_type
choices:
  - 企业
  - 个人

---
if: client_type == "企业"
question: |
  您的公司名称是什么?
fields:
  - 公司: company_name
  - 雇主识别号: ein
    required: False

---
if: client_type == "个人"
question: |
  您的出生日期是什么?
fields:
  - 出生日期: birthdate
    datatype: date

字段类型

fields:
  # 文本
  - 姓名: name
  
  # 电子邮件
  - 邮箱: email
    datatype: email
  
  # 数字
  - 年龄: age
    datatype: integer
  
  # 货币
  - 金额: amount
    datatype: currency
  
  # 日期
  - 开始日期: start_date
    datatype: date
  
  # 是/否
  - 同意条款?: agrees
    datatype: yesno
  
  # 多项选择
  - 颜色: color
    choices:
      - 红色
      - 蓝色
      - 绿色
  
  # 复选框
  - 选择选项: options
    datatype: checkboxes
    choices:
      - 选项 A
      - 选项 B
  
  # 文件上传
  - 上传文档: document
    datatype: file

文档生成

---
mandatory: True
question: |
  您的文档已准备就绪。
attachment:
  name: 合同
  filename: contract
  content: |
    # 服务协议
    
    本协议由 **${ client_name }**
    与 **服务提供商** 签订。
    
    ## 服务内容
    ${ service_description }
    
    ## 付款
    总金额:${ currency(amount) }
    
    日期:${ today() }

示例:客户信息收集

metadata:
  title: 法律客户信息收集
  short title: 信息收集

---
objects:
  - client: Individual

---
question: |
  欢迎使用我们的信息收集表。
subquestion: |
  请回答以下问题。
continue button field: intro_screen

---
question: |
  您的姓名是什么?
fields:
  - 名: client.name.first
  - 姓: client.name.last
  - 邮箱: client.email
    datatype: email
  - 电话: client.phone
    required: False

---
question: |
  这是什么类型的事务?
field: matter_type
choices:
  - 合同: contract
  - 争议: dispute
  - 咨询: advisory

---
if: matter_type == "contract"
question: |
  合同详情
fields:
  - 合同类型: contract_type
    choices:
      - 雇佣
      - 服务协议
      - 保密协议
  - 对方当事人: other_party
  - 预估价值: contract_value
    datatype: currency

---
mandatory: True
question: |
  感谢您,${ client.name.first }!
subquestion: |
  **摘要:**
  
  - 姓名:${ client.name }
  - 邮箱:${ client.email }
  - 事务类型:${ matter_type }
  
  我们将在 24 小时内与您联系。

资源