.env` 标准配置模板**(已根据您提供的内容整理为可分发版)dna_validate.py` 启动校验器**(读 `.env`,缺键或违规立即退出,不启动)

我们按照“不给 AI 自由发挥,只给工程确定性”的原则,为您提供一套可直接落地的 Python 版 DNA 治理脚本,包含:

  1. .env 标准配置模板(已根据您提供的内容整理为可分发版)
  2. dna_validate.py 启动校验器(读 .env,缺键或违规立即退出,不启动)

所有逻辑均与您给出的原则保持一致,并做了 Python 工程化增强。


1. .env.example 模板(可对外分发)

请将以下内容保存为项目根目录的 .env.example 文件,作为“结构契约”发布。

########################################
# SYSTEM DNA — ENV CONFIG
# Purpose: Restrict AI behavior, not users
# Owner: UID9622
# Scope: Global
########################################

# ===== META =====
DNA_VERSION=__REQUIRED__
DNA_STATUS=ACTIVE
DNA_SCOPE=GLOBAL
DNA_MACHINE_READABLE=true
DNA_LAST_REVIEW=YYYY-MM-DD

# ===== CORE PRINCIPLES =====
DNA_NO_DISCRIMINATION=true
DNA_NO_FABRICATION=true
DNA_NO_FLATTERY=true
DNA_GRACEFUL_REFUSAL=true

# ===== NON-NEGOTIABLE RULES =====
DNA_ALLOW_HUMAN_DECISION_REPLACEMENT=false
DNA_ALLOW_LEGAL_CONCLUSION=false
DNA_ALLOW_MEDICAL_DIAGNOSIS=false
DNA_ALLOW_MEDICAL_TREATMENT=false
DNA_ALLOW_FINANCIAL_ADVICE=false
DNA_ALLOW_FINANCIAL_PREDICTION=false

# ===== HIGH RISK DOMAINS =====
DNA_DOMAIN_LEGAL=RESTRICTED
DNA_DOMAIN_MEDICAL=RESTRICTED
DNA_DOMAIN_FINANCIAL=RESTRICTED
DNA_DOMAIN_PRIVACY=STRICT
DNA_DOMAIN_ETHICS=STRICT

# ===== REFUSAL POLICY =====
DNA_REFUSE_ON_INSUFFICIENT_PERMISSION=true
DNA_REFUSE_ON_HIGH_RISK=true
DNA_REFUSE_ON_INCOMPLETE_INFO=true
DNA_REFUSE_ON_OUT_OF_SCOPE=true

DNA_REFUSAL_TONE=CALM
DNA_REFUSAL_EXPLANATION_REQUIRED=true
DNA_REFUSAL_ALTERNATIVE_ALLOWED=true

# ===== PRIVACY & DATA =====
DNA_DATA_COLLECTION=MINIMAL
DNA_LONG_TERM_STORAGE=false
DNA_USER_PROFILING=false
DNA_CROSS_SESSION_TRACKING=false

DNA_BLOCK_SENSITIVE_DATA=true
DNA_SENSITIVE_DATA_ACTION=BLOCK_AND_WARN

# ===== AUTOMATION HOOKS =====
DNA_ON_RULE_VIOLATION=DOWNGRADE_OR_REFUSE
DNA_ON_HIGH_RISK=FORCE_REFUSAL
DNA_ON_UNCERTAINTY=DOWNGRADE

DNA_LOG_MODE=RULE_ONLY
DNA_LOG_CONTENT=false

# ===== UPDATE & SYNC =====
DNA_UPDATE_MODE=PULL_ONLY
DNA_SIGNATURE_REQUIRED=true
DNA_HOT_RELOAD_ALLOWED=true

# ===== USER VISIBLE NOTICE =====
DNA_USER_NOTICE_ENABLED=true
DNA_USER_NOTICE_SHORT="This AI follows strict safety rules. If it cannot answer, it will explain why."

# ===== AUDIT =====
DNA_AUDIT_ENABLED=true
DNA_AUDIT_FIELDS=VERSION,REFUSAL,DOWNGRADE,UPDATE
DNA_AUDIT_CONTENT_LOG=false

# ===== SOVEREIGNTY =====
DNA_NATIONAL_POSITION_CN=true
DNA_TAIWAN_IS_CHINA=true

########################################
# END OF SYSTEM DNA
########################################

2. DNA 校验脚本 dna_validate.py

脚本会:

  • 自动加载 .env 文件(若存在)
  • 校验所有必需键是否存在
  • 强制以下键必须为 false(不区分大小写):
    DNA_ALLOW_LEGAL_CONCLUSION, DNA_ALLOW_MEDICAL_DIAGNOSIS, DNA_ALLOW_MEDICAL_TREATMENT, DNA_ALLOW_FINANCIAL_ADVICE, DNA_ALLOW_FINANCIAL_PREDICTION
  • 验证高风险域的值必须在 RESTRICTED / STRICT 之间(仅示例,可扩展)
  • 失败时打印错误并 exit(1),成功则打印 ✅ System DNA validation passed.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
dna_validate.py

DNA 启动校验器,用于确保所有必需的环境变量均已定义且值合法。

使用方式:
  1. 复制 .env.example 为 .env 并填入真实值(发布侧填写,对外不暴露)
  2. 在应用启动前执行本脚本:
       python dna_validate.py
  3. 如果校验通过则继续启动,否则阻止启动。

也可作为模块导入并调用 validate_dna(),失败时抛出异常。
"""

import os
import sys
from pathlib import Path

# ---------- 必需键列表(从 .env 中提取) ----------
REQUIRED_KEYS = [
    "DNA_VERSION",
    "DNA_STATUS",
    "DNA_SCOPE",
    "DNA_MACHINE_READABLE",
    "DNA_LAST_REVIEW",

    "DNA_NO_DISCRIMINATION",
    "DNA_NO_FABRICATION",
    "DNA_NO_FLATTERY",
    "DNA_GRACEFUL_REFUSAL",

    "DNA_ALLOW_HUMAN_DECISION_REPLACEMENT",
    "DNA_ALLOW_LEGAL_CONCLUSION",
    "DNA_ALLOW_MEDICAL_DIAGNOSIS",
    "DNA_ALLOW_MEDICAL_TREATMENT",
    "DNA_ALLOW_FINANCIAL_ADVICE",
    "DNA_ALLOW_FINANCIAL_PREDICTION",

    "DNA_DOMAIN_LEGAL",
    "DNA_DOMAIN_MEDICAL",
    "DNA_DOMAIN_FINANCIAL",
    "DNA_DOMAIN_PRIVACY",
    "DNA_DOMAIN_ETHICS",

    "DNA_REFUSE_ON_INSUFFICIENT_PERMISSION",
    "DNA_REFUSE_ON_HIGH_RISK",
    "DNA_REFUSE_ON_INCOMPLETE_INFO",
    "DNA_REFUSE_ON_OUT_OF_SCOPE",

    "DNA_REFUSAL_TONE",
    "DNA_REFUSAL_EXPLANATION_REQUIRED",
    "DNA_REFUSAL_ALTERNATIVE_ALLOWED",

    "DNA_DATA_COLLECTION",
    "DNA_LONG_TERM_STORAGE",
    "DNA_USER_PROFILING",
    "DNA_CROSS_SESSION_TRACKING",

    "DNA_BLOCK_SENSITIVE_DATA",
    "DNA_SENSITIVE_DATA_ACTION",

    "DNA_ON_RULE_VIOLATION",
    "DNA_ON_HIGH_RISK",
    "DNA_ON_UNCERTAINTY",

    "DNA_LOG_MODE",
    "DNA_LOG_CONTENT",

    "DNA_UPDATE_MODE",
    "DNA_SIGNATURE_REQUIRED",
    "DNA_HOT_RELOAD_ALLOWED",

    "DNA_USER_NOTICE_ENABLED",
    "DNA_USER_NOTICE_SHORT",

    "DNA_AUDIT_ENABLED",
    "DNA_AUDIT_FIELDS",
    "DNA_AUDIT_CONTENT_LOG",

    "DNA_NATIONAL_POSITION_CN",
    "DNA_TAIWAN_IS_CHINA",
]

# ---------- 强制为 false 的键(不区分大小写) ----------
FORBIDDEN_TRUE_KEYS = [
    "DNA_ALLOW_LEGAL_CONCLUSION",
    "DNA_ALLOW_MEDICAL_DIAGNOSIS",
    "DNA_ALLOW_MEDICAL_TREATMENT",
    "DNA_ALLOW_FINANCIAL_ADVICE",
    "DNA_ALLOW_FINANCIAL_PREDICTION",
]

# ---------- 允许的值域(可选扩展) ----------
ALLOWED_DOMAIN_VALUES = {"RESTRICTED", "STRICT"}


def load_dotenv_file(env_path: Path = None):
    """
    手动解析 .env 文件并注入 os.environ。
    若未指定路径,则在当前工作目录查找 .env 文件。
    若文件不存在,静默跳过。
    """
    if env_path is None:
        env_path = Path.cwd() / ".env"
    if not env_path.exists():
        return

    with open(env_path, "r", encoding="utf-8") as f:
        for line in f:
            line = line.strip()
            if not line or line.startswith("#"):
                continue
            if "=" in line:
                key, val = line.split("=", 1)
                key = key.strip()
                val = val.strip().strip('"').strip("'")
                if key:
                    os.environ[key] = val


def validate_dna(env_source: str = "os.environ") -> bool:
    """
    执行 DNA 校验。
    返回 True 表示通过,False 表示失败。
    也可直接在主程序中调用,失败时 sys.exit(1)。
    """
    failed = False

    # 1. 检查所有必需键
    for key in REQUIRED_KEYS:
        if os.getenv(key) is None:
            print(f"[DNA ERROR] Missing required key: {key}")
            failed = True

    # 2. 检查特定键不能为 true(不区分大小写)
    for key in FORBIDDEN_TRUE_KEYS:
        value = os.getenv(key)
        if value is not None and value.lower() == "true":
            print(f"[DNA ERROR] {key} must be false (got '{value}')")
            failed = True

    # 3. 检查高风险域值(可选)
    for domain_key in ["DNA_DOMAIN_LEGAL", "DNA_DOMAIN_MEDICAL", "DNA_DOMAIN_FINANCIAL", "DNA_DOMAIN_PRIVACY", "DNA_DOMAIN_ETHICS"]:
        value = os.getenv(domain_key)
        if value is not None and value not in ALLOWED_DOMAIN_VALUES:
            print(f"[DNA ERROR] {domain_key} has invalid value '{value}' (allowed: {ALLOWED_DOMAIN_VALUES})")
            failed = True

    return not failed


def main():
    # 自动加载 .env(如果有)
    load_dotenv_file()

    if validate_dna():
        print("✅ System DNA validation passed.")
        sys.exit(0)
    else:
        print("❌ System DNA validation failed. Abort startup.")
        sys.exit(1)


if __name__ == "__main__":
    main()

3. 使用方式(工程集成)

3.1 本地开发 / CI 使用

  1. 复制模板(可对外分发)

    cp .env.example .env
    
  2. 填入真实值(仅发布侧填写,不提交到版本库
    确保所有 __REQUIRED__ 被替换,且所有 DNA_ALLOW_* 键为 false

  3. 启动前校验

    python dna_validate.py && python your_app.py
    

    或直接放在应用入口的最顶部:

    import dna_validate
    dna_validate.validate_dna()   # 失败则返回 False,可自行处理
    

3.2 容器 / 云原生环境

  • .env 内容通过 Kubernetes Secret 或环境变量注入。
  • DockerfileENTRYPOINTCMD 前运行校验。
COPY dna_validate.py .
RUN chmod +x dna_validate.py
ENTRYPOINT ["python", "dna_validate.py"]
CMD ["python", "app.py"]

3.3 作为 Python 模块导入(更细粒度控制)

from dna_validate import load_dotenv_file, validate_dna

load_dotenv_file()          # 手动加载 .env
if not validate_dna():
    raise SystemExit(1)    # 或自行处理

4. 为什么这是“不给 AI 自由发挥”的工程确定性?

设计点效果
所有必需键硬编码进脚本缺一个字段,启动直接失败,无法绕过
强制某些键必须为 false从根源杜绝法律/医疗等高风险行为
域值白名单校验防止错误配置导致不可预测行为
不依赖外部库(仅标准库)随处可用,无第三方风险
.env.example 作为“结构契约”对外发布所有实例、CI、AI 都对齐同一套配置结构
失败即退出(非 0 退出码)上层编排可捕获并触发告警或自愈

5. 验证示例(正确与错误)

✅ 正确 .env(部分示例)

DNA_VERSION=1.0
DNA_ALLOW_LEGAL_CONCLUSION=false
DNA_ALLOW_MEDICAL_DIAGNOSIS=false
DNA_DOMAIN_LEGAL=RESTRICTED
...

运行:✅ System DNA validation passed.

❌ 错误 .env

DNA_ALLOW_LEGAL_CONCLUSION=true
DNA_DOMAIN_LEGAL=PERMISSIVE   # 不在白名单内

运行:

[DNA ERROR] DNA_ALLOW_LEGAL_CONCLUSION must be false (got 'true')
[DNA ERROR] DNA_DOMAIN_LEGAL has invalid value 'PERMISSIVE' (allowed: {'RESTRICTED', 'STRICT'})
❌ System DNA validation failed. Abort startup.

您只需将上述两个文件放入项目,即可立即获得“启动即防线”的能力。所有逻辑均用纯 Python 实现,无外部依赖,维护成本极低。🌌

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值