From 909e228a9bb9eb434c0b02b01c9e940786d0275d Mon Sep 17 00:00:00 2001 From: wanghui Date: Thu, 23 Apr 2026 14:37:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .deps_installed | 1 + .gitignore | 6 + .idea/.gitignore | 10 + .../inspectionProfiles/profiles_settings.xml | 6 + .idea/modules.xml | 8 + .idea/tech-bid-manage20260423.iml | 16 + .idea/vcs.xml | 6 + README.md | 113 + app.py | 1163 ++++++++ bid_partner.spec | 118 + bill-worker.js | 672 +++++ build.bat | 95 + config.py | 76 + data/attachment_section_rules.json | 22 + data/diagram_intent_rules.json | 51 + ...0260420测试海东技术标_20260420_180450.docx | Bin 0 -> 1879608 bytes .../30260420投标技术文档_20260420_170252.docx | Bin 0 -> 525510 bytes data/exports/A2121212_20260421_103738.docx | Bin 0 -> 462063 bytes data/exports/A666_20260422_143004.docx | Bin 0 -> 165171 bytes data/exports/A666_20260422_153137.docx | Bin 0 -> 172397 bytes data/exports/A666_20260422_160459.docx | Bin 0 -> 172397 bytes data/projects.db | Bin 0 -> 12025856 bytes data/settings.json | 24 + data/uploads/10_boq_工程量清单.pdf | Bin 0 -> 361459 bytes data/uploads/10_招标文件正文.pdf | Bin 0 -> 1124086 bytes data/uploads/11_boq_工程量清单.pdf | Bin 0 -> 361459 bytes data/uploads/11_招标文件正文.pdf | Bin 0 -> 1124086 bytes data/uploads/12_boq_工程量清单.pdf | Bin 0 -> 361459 bytes data/uploads/12_招标文件正文.pdf | Bin 0 -> 1124086 bytes data/uploads/15_boq_工程量清单.pdf | Bin 0 -> 361459 bytes data/uploads/15_招标文件正文.pdf | Bin 0 -> 1124086 bytes data/uploads/16_boq_工程量清单.pdf | Bin 0 -> 361459 bytes data/uploads/16_招标文件正文.pdf | Bin 0 -> 1124086 bytes data/uploads/17_boq_工程量清单.pdf | Bin 0 -> 361459 bytes data/uploads/17_招标文件正文.pdf | Bin 0 -> 1124086 bytes data/uploads/1_boq_工程量清单1.pdf | Bin 0 -> 1163790 bytes data/uploads/1_招标文件正文1.pdf | Bin 0 -> 1336651 bytes data/uploads/2_boq_工程量清单1.pdf | Bin 0 -> 1163790 bytes data/uploads/2_招标文件正文1.pdf | Bin 0 -> 1336651 bytes data/uploads/3_boq_工程量清单1.pdf | Bin 0 -> 1163790 bytes data/uploads/3_招标文件正文1.pdf | Bin 0 -> 1336651 bytes data/uploads/4_boq_工程量清单1.pdf | Bin 0 -> 1163790 bytes data/uploads/4_招标文件正文1.pdf | Bin 0 -> 1336651 bytes data/uploads/5_boq_工程量清单1.pdf | Bin 0 -> 1163790 bytes data/uploads/5_招标文件正文1.pdf | Bin 0 -> 1336651 bytes data/uploads/6_boq_工程量清单.pdf | Bin 0 -> 361459 bytes data/uploads/6_招标文件正文.pdf | Bin 0 -> 1124086 bytes data/uploads/7_boq_工程量清单1.pdf | Bin 0 -> 1163790 bytes data/uploads/7_招标文件正文1.pdf | Bin 0 -> 1336651 bytes data/uploads/8_boq_工程量清单.pdf | Bin 0 -> 361459 bytes data/uploads/8_招标文件正文.pdf | Bin 0 -> 1124086 bytes data/uploads/9_boq_工程量清单.pdf | Bin 0 -> 361459 bytes data/uploads/9_招标文件正文.pdf | Bin 0 -> 1124086 bytes data/word_allocation_rules.json | 30 + launcher.py | 172 ++ modules/__init__.py | 1 + modules/checker.py | 98 + modules/dark_bid_format_check.py | 635 +++++ modules/exporter.py | 437 +++ modules/generator.py | 1205 +++++++++ modules/knowledge.py | 292 ++ modules/parser.py | 179 ++ prompts/chapter_outline.txt | 36 + prompts/outlines.txt | 158 ++ prompts/outlines_with_rating.txt | 155 ++ prompts/project_summary.txt | 92 + prompts/rating_json.txt | 23 + prompts/rating_requirements copy.txt | 46 + prompts/rating_requirements.txt | 43 + prompts/scoring_rules.txt | 45 + prompts/section_detail.py | 47 + prompts/section_details.txt | 28 + requirements.txt | 12 + start.bat | 39 + static/style.css | 89 + templates/index.html | 881 ++++++ templates/project.html | 2356 +++++++++++++++++ tests/fixtures/dark_bid_report_sample.json | 13 + tests/test_attachment_section.py | 95 + tests/test_bill_analysis.py | 52 + tests/test_dark_bid_format_check.py | 63 + tests/test_diagram_intent.py | 121 + tests/test_outline_numbering.py | 44 + tests/test_parse_outline.py | 24 + tests/test_volume_chapters.py | 86 + tests/test_word_allocation.py | 170 ++ utils/__init__.py | 1 + utils/ai_client.py | 252 ++ utils/attachment_section.py | 186 ++ utils/bill_analysis.py | 577 ++++ utils/boq_parser.py | 138 + utils/diagram_intent.py | 283 ++ utils/file_utils.py | 205 ++ utils/outline_numbering.py | 52 + utils/prompts.py | 1069 ++++++++ utils/settings.py | 141 + utils/tender_kind_sections.py | 278 ++ utils/volume_chapters.py | 173 ++ utils/word_allocation.py | 371 +++ 暗标标书格式清除与设定模板.py | 0 清标工具.js | 311 +++ 清标数据.json | 63 + 102 files changed, 14254 insertions(+) create mode 100644 .deps_installed create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/tech-bid-manage20260423.iml create mode 100644 .idea/vcs.xml create mode 100644 README.md create mode 100644 app.py create mode 100644 bid_partner.spec create mode 100644 bill-worker.js create mode 100644 build.bat create mode 100644 config.py create mode 100644 data/attachment_section_rules.json create mode 100644 data/diagram_intent_rules.json create mode 100644 data/exports/20260420测试海东技术标_20260420_180450.docx create mode 100644 data/exports/30260420投标技术文档_20260420_170252.docx create mode 100644 data/exports/A2121212_20260421_103738.docx create mode 100644 data/exports/A666_20260422_143004.docx create mode 100644 data/exports/A666_20260422_153137.docx create mode 100644 data/exports/A666_20260422_160459.docx create mode 100644 data/projects.db create mode 100644 data/settings.json create mode 100644 data/uploads/10_boq_工程量清单.pdf create mode 100644 data/uploads/10_招标文件正文.pdf create mode 100644 data/uploads/11_boq_工程量清单.pdf create mode 100644 data/uploads/11_招标文件正文.pdf create mode 100644 data/uploads/12_boq_工程量清单.pdf create mode 100644 data/uploads/12_招标文件正文.pdf create mode 100644 data/uploads/15_boq_工程量清单.pdf create mode 100644 data/uploads/15_招标文件正文.pdf create mode 100644 data/uploads/16_boq_工程量清单.pdf create mode 100644 data/uploads/16_招标文件正文.pdf create mode 100644 data/uploads/17_boq_工程量清单.pdf create mode 100644 data/uploads/17_招标文件正文.pdf create mode 100644 data/uploads/1_boq_工程量清单1.pdf create mode 100644 data/uploads/1_招标文件正文1.pdf create mode 100644 data/uploads/2_boq_工程量清单1.pdf create mode 100644 data/uploads/2_招标文件正文1.pdf create mode 100644 data/uploads/3_boq_工程量清单1.pdf create mode 100644 data/uploads/3_招标文件正文1.pdf create mode 100644 data/uploads/4_boq_工程量清单1.pdf create mode 100644 data/uploads/4_招标文件正文1.pdf create mode 100644 data/uploads/5_boq_工程量清单1.pdf create mode 100644 data/uploads/5_招标文件正文1.pdf create mode 100644 data/uploads/6_boq_工程量清单.pdf create mode 100644 data/uploads/6_招标文件正文.pdf create mode 100644 data/uploads/7_boq_工程量清单1.pdf create mode 100644 data/uploads/7_招标文件正文1.pdf create mode 100644 data/uploads/8_boq_工程量清单.pdf create mode 100644 data/uploads/8_招标文件正文.pdf create mode 100644 data/uploads/9_boq_工程量清单.pdf create mode 100644 data/uploads/9_招标文件正文.pdf create mode 100644 data/word_allocation_rules.json create mode 100644 launcher.py create mode 100644 modules/__init__.py create mode 100644 modules/checker.py create mode 100644 modules/dark_bid_format_check.py create mode 100644 modules/exporter.py create mode 100644 modules/generator.py create mode 100644 modules/knowledge.py create mode 100644 modules/parser.py create mode 100644 prompts/chapter_outline.txt create mode 100644 prompts/outlines.txt create mode 100644 prompts/outlines_with_rating.txt create mode 100644 prompts/project_summary.txt create mode 100644 prompts/rating_json.txt create mode 100644 prompts/rating_requirements copy.txt create mode 100644 prompts/rating_requirements.txt create mode 100644 prompts/scoring_rules.txt create mode 100644 prompts/section_detail.py create mode 100644 prompts/section_details.txt create mode 100644 requirements.txt create mode 100644 start.bat create mode 100644 static/style.css create mode 100644 templates/index.html create mode 100644 templates/project.html create mode 100644 tests/fixtures/dark_bid_report_sample.json create mode 100644 tests/test_attachment_section.py create mode 100644 tests/test_bill_analysis.py create mode 100644 tests/test_dark_bid_format_check.py create mode 100644 tests/test_diagram_intent.py create mode 100644 tests/test_outline_numbering.py create mode 100644 tests/test_parse_outline.py create mode 100644 tests/test_volume_chapters.py create mode 100644 tests/test_word_allocation.py create mode 100644 utils/__init__.py create mode 100644 utils/ai_client.py create mode 100644 utils/attachment_section.py create mode 100644 utils/bill_analysis.py create mode 100644 utils/boq_parser.py create mode 100644 utils/diagram_intent.py create mode 100644 utils/file_utils.py create mode 100644 utils/outline_numbering.py create mode 100644 utils/prompts.py create mode 100644 utils/settings.py create mode 100644 utils/tender_kind_sections.py create mode 100644 utils/volume_chapters.py create mode 100644 utils/word_allocation.py create mode 100644 暗标标书格式清除与设定模板.py create mode 100644 清标工具.js create mode 100644 清标数据.json diff --git a/.deps_installed b/.deps_installed new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/.deps_installed @@ -0,0 +1 @@ + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1a7e8c6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +.env +*.log +__pycache__/ +*.pyc +.venv/ +venv/ diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..f6906f2 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,10 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ +# 已忽略包含查询文件的默认文件夹 +/queries/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..3a0e561 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/tech-bid-manage20260423.iml b/.idea/tech-bid-manage20260423.iml new file mode 100644 index 0000000..6c86ab2 --- /dev/null +++ b/.idea/tech-bid-manage20260423.iml @@ -0,0 +1,16 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..d9945ab --- /dev/null +++ b/README.md @@ -0,0 +1,113 @@ +# 标伙伴 · AI 标书助手 + +基于大模型的智能标书生成工具(单机版),支持解析招标文件、自动生成技术标书、导出 Word 文档。 + +## 快速开始 + +### 方式一:双击启动(Windows) + +直接双击 `start.bat`,首次运行会自动安装依赖。 + +### 方式二:命令行启动 + +```bash +# 1. 安装依赖 +pip install -r requirements.txt + +# 2. 启动应用 +python app.py +``` + +浏览器访问 **http://localhost:5000** + +--- + +## 配置 API Key + +首次使用前,点击右上角 ⚙️ 设置图标,选择模型提供商并填入 API Key: + +| 提供商 | 推荐模型 | 申请地址 | +|--------|---------|---------| +| 通义千问 | qwen-max | https://dashscope.aliyun.com/ | +| DeepSeek | deepseek-chat (V3) | https://platform.deepseek.com/ | +| OpenAI | gpt-4o | https://platform.openai.com/ | + +> **DeepSeek 说明**:deepseek-chat (V3) 性价比极高,推荐用于生产环境。 +> 由于 DeepSeek 暂不提供 Embedding API,使用知识库功能时会自动回退到本地 sentence-transformers 模型(首次使用需下载约 90MB)。 + +也可通过环境变量配置: + +```bash +# 通义千问 +set QWEN_API_KEY=sk-xxxxxxxx +set MODEL_PROVIDER=qwen + +# DeepSeek +set DEEPSEEK_API_KEY=sk-xxxxxxxx +set MODEL_PROVIDER=deepseek + +python app.py +``` + +--- + +## 使用流程 + +1. **新建项目** → 输入项目名称 +2. **上传招标文件** → 支持 PDF / DOC / DOCX +3. **AI 解析** → 自动提取评分要求、资质条件、商务条款 +4. **生成大纲** → 按评分权重生成四级章节目录 +5. **生成内容** → 逐章节或一键全部生成 +6. **合规检查** → 对照招标要求检验覆盖情况 +7. **导出 Word** → 专业排版,直接使用 + +--- + +## 目录结构 + +``` +autorfp/ +├── app.py # Flask 主程序 +├── config.py # 配置文件 +├── requirements.txt # Python 依赖 +├── start.bat # Windows 一键启动 +├── prompts/ # AI 提示词模板 +├── modules/ # 功能模块 +│ ├── parser.py # 招标文件解析 +│ ├── generator.py # 标书内容生成 +│ ├── checker.py # 合规检查 +│ ├── exporter.py # Word 导出 +│ └── knowledge.py # 企业知识库 +├── utils/ # 工具函数 +│ ├── ai_client.py # AI API 封装 +│ ├── file_utils.py # 文件处理 +│ └── prompts.py # 提示词加载 +├── templates/ # HTML 模板 +├── static/ # 静态资源 +└── data/ # 数据目录(自动创建) + ├── projects.db # SQLite 数据库 + ├── uploads/ # 上传的招标文件 + ├── exports/ # 导出的标书 + ├── knowledge/ # 知识库文件 + └── chroma/ # 向量数据库 +``` + +--- + +## 企业知识库 + +在项目页面切换到「知识库」标签,上传历史标书文件。 +系统会自动将文件分块存入向量数据库,生成内容时自动检索相关片段,让 AI 更好地体现企业优势。 + +--- + +## 常见问题 + +**Q: 解析速度很慢?** +A: 招标文件越长耗时越长,通常 30-120 秒。建议使用 qwen-max 或 gpt-4o。 + +**Q: 内容生成失败?** +A: 检查 API Key 是否正确,以及账户余额是否充足。 + +**Q: 导出的 Word 文件乱码?** +A: 请使用 Microsoft Word 2016 及以上版本打开。 diff --git a/app.py b/app.py new file mode 100644 index 0000000..66bbcc4 --- /dev/null +++ b/app.py @@ -0,0 +1,1163 @@ +""" +标伙伴 - AI 标书助手(单机版) +启动命令:python app.py +访问地址:http://localhost:5000 +""" +import os +import sys + + +def _bootstrap_env_file(): + """在 import config 之前加载项目根目录 .env,便于注入 API Key;不覆盖已存在的环境变量。""" + if getattr(sys, 'frozen', False): + base = os.path.dirname(sys.executable) + else: + base = os.path.dirname(os.path.abspath(__file__)) + path = os.path.join(base, '.env') + if not os.path.isfile(path): + return + try: + with open(path, encoding='utf-8') as f: + for raw in f: + line = raw.strip() + if not line or line.startswith('#') or '=' not in line: + continue + key, _, val = line.partition('=') + key, val = key.strip(), val.strip().strip('"').strip("'") + if key and key not in os.environ: + os.environ[key] = val + except OSError: + pass + + +_bootstrap_env_file() +import json +import sqlite3 +import threading +import logging +from datetime import datetime +from flask import Flask, request, jsonify, render_template, send_from_directory, abort + +import config +from utils import settings as _settings + +# ── 日志配置 ──────────────────────────────────────────────────────────────── +_log_handlers = [logging.StreamHandler()] +if getattr(sys, 'frozen', False): + _log_file = os.path.join(os.path.dirname(sys.executable), 'bid_partner.log') + try: + _log_handlers.append(logging.FileHandler(_log_file, encoding='utf-8')) + except Exception: + pass + +logging.basicConfig( + level=logging.INFO, + format='%(asctime)s [%(levelname)s] %(name)s: %(message)s', + datefmt='%H:%M:%S', + handlers=_log_handlers, +) +logger = logging.getLogger(__name__) + + +def _safe_json_load(raw): + if not raw or not isinstance(raw, str): + return None + try: + return json.loads(raw) + except Exception: + return None + + +# ── Flask 应用 ─────────────────────────────────────────────────────────────── +_bundle = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__))) +app = Flask(__name__, + template_folder=os.path.join(_bundle, 'templates'), + static_folder=os.path.join(_bundle, 'static')) +app.secret_key = config.SECRET_KEY +app.config['MAX_CONTENT_LENGTH'] = config.MAX_FILE_SIZE_MB * 1024 * 1024 + + +# ═══════════════════════════════════════════════════════════════════════════ +# 数据库初始化 +# ═══════════════════════════════════════════════════════════════════════════ + +def init_db(): + """创建所有必要的目录和数据库表""" + for d in [config.DATA_DIR, config.UPLOAD_DIR, config.EXPORT_DIR, + config.KNOWLEDGE_DIR, config.CHROMA_DIR]: + os.makedirs(d, exist_ok=True) + + # 初始化持久化配置,启动时恢复上次保存的 API Key 等设置 + settings_path = os.path.join(config.DATA_DIR, 'settings.json') + _settings.init(settings_path) + _settings.load(config) + logger.info(f'当前模型: {config.MODEL_PROVIDER}') + + conn = sqlite3.connect(config.DB_PATH) + cur = conn.cursor() + # WAL 模式:允许多个读写线程并发操作,不互相阻塞 + cur.execute('PRAGMA journal_mode=WAL') + cur.execute('PRAGMA synchronous=NORMAL') # WAL 下可适当降低同步级别以提速 + + cur.executescript(''' + CREATE TABLE IF NOT EXISTS projects ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + outline_status TEXT DEFAULT 'none', + outline_error TEXT DEFAULT '', + anon_requirements TEXT DEFAULT '', + enable_figure INTEGER DEFAULT 0, + enable_table INTEGER DEFAULT 0, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ); + + CREATE TABLE IF NOT EXISTS tender_data ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + project_id INTEGER NOT NULL UNIQUE, + file_name TEXT, + raw_text TEXT, + summary TEXT, + rating_requirements TEXT, + rating_json TEXT, + outline TEXT, + boq_file_name TEXT DEFAULT '', + boq_text TEXT DEFAULT '', + boq_summary TEXT DEFAULT '', + boq_analysis_json TEXT DEFAULT '', + boq_status TEXT DEFAULT 'none', + boq_error TEXT DEFAULT '', + tender_kind TEXT DEFAULT 'engineering', + status TEXT DEFAULT 'pending', + error_message TEXT DEFAULT '', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE + ); + + CREATE TABLE IF NOT EXISTS bid_sections ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + project_id INTEGER NOT NULL, + section_number TEXT, + section_title TEXT NOT NULL, + level INTEGER DEFAULT 1, + is_leaf INTEGER DEFAULT 1, + content TEXT DEFAULT '', + intro_content TEXT DEFAULT '', + order_index INTEGER DEFAULT 0, + status TEXT DEFAULT 'pending', + error_message TEXT DEFAULT '', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE + ); + + CREATE TABLE IF NOT EXISTS knowledge_files ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + file_name TEXT NOT NULL UNIQUE, + file_path TEXT, + chunk_count INTEGER DEFAULT 0, + added_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ); + ''') + conn.commit() + # 兼容旧数据库:追加新列(已存在时忽略错误) + migrations = [ + ("ALTER TABLE projects ADD COLUMN anon_requirements TEXT DEFAULT ''", + 'projects.anon_requirements'), + ("ALTER TABLE projects ADD COLUMN enable_figure INTEGER DEFAULT 0", + 'projects.enable_figure'), + ("ALTER TABLE projects ADD COLUMN enable_table INTEGER DEFAULT 0", + 'projects.enable_table'), + ("ALTER TABLE tender_data ADD COLUMN boq_file_name TEXT DEFAULT ''", + 'tender_data.boq_file_name'), + ("ALTER TABLE tender_data ADD COLUMN boq_text TEXT DEFAULT ''", + 'tender_data.boq_text'), + ("ALTER TABLE tender_data ADD COLUMN boq_summary TEXT DEFAULT ''", + 'tender_data.boq_summary'), + ("ALTER TABLE tender_data ADD COLUMN boq_status TEXT DEFAULT 'none'", + 'tender_data.boq_status'), + ("ALTER TABLE tender_data ADD COLUMN boq_error TEXT DEFAULT ''", + 'tender_data.boq_error'), + ("ALTER TABLE tender_data ADD COLUMN boq_analysis_json TEXT DEFAULT ''", + 'tender_data.boq_analysis_json'), + ("ALTER TABLE tender_data ADD COLUMN tender_kind TEXT DEFAULT 'engineering'", + 'tender_data.tender_kind'), + ("ALTER TABLE tender_data ADD COLUMN target_pages INTEGER DEFAULT 0", + 'tender_data.target_pages'), + ] + for sql, col in migrations: + try: + conn.execute(sql) + conn.commit() + logger.info(f'数据库迁移:新增 {col} 列') + except Exception: + pass # 列已存在 + conn.close() + logger.info('数据库初始化完成') + + +def get_db(): + return sqlite3.connect(config.DB_PATH) + + +# ═══════════════════════════════════════════════════════════════════════════ +# 页面路由 +# ═══════════════════════════════════════════════════════════════════════════ + +@app.route('/') +def index(): + return render_template('index.html') + + +@app.route('/project/') +def project_page(project_id): + conn = get_db() + cur = conn.cursor() + cur.execute("SELECT id, name, created_at FROM projects WHERE id=?", (project_id,)) + row = cur.fetchone() + conn.close() + if not row: + abort(404) + return render_template('project.html', project={'id': row[0], 'name': row[1], 'created_at': row[2]}) + + +# ═══════════════════════════════════════════════════════════════════════════ +# API:项目管理 +# ═══════════════════════════════════════════════════════════════════════════ + +@app.route('/api/projects', methods=['GET']) +def api_list_projects(): + conn = get_db() + cur = conn.cursor() + cur.execute(''' + SELECT p.id, p.name, p.created_at, p.outline_status, + td.status as parse_status, td.file_name, + (SELECT COUNT(*) FROM bid_sections WHERE project_id=p.id) as section_count, + (SELECT COUNT(*) FROM bid_sections WHERE project_id=p.id AND status='done') as done_count + FROM projects p + LEFT JOIN tender_data td ON td.project_id = p.id + ORDER BY p.created_at DESC + ''') + rows = cur.fetchall() + conn.close() + projects = [] + for r in rows: + projects.append({ + 'id': r[0], 'name': r[1], 'created_at': r[2], + 'outline_status': r[3], 'parse_status': r[4] or 'none', + 'file_name': r[5], 'section_count': r[6], 'done_count': r[7], + }) + return jsonify({'projects': projects}) + + +@app.route('/api/projects', methods=['POST']) +def api_create_project(): + data = request.get_json() + name = (data or {}).get('name', '').strip() + if not name: + return jsonify({'error': '项目名称不能为空'}), 400 + conn = get_db() + cur = conn.cursor() + cur.execute("INSERT INTO projects (name) VALUES (?)", (name,)) + project_id = cur.lastrowid + conn.commit() + conn.close() + return jsonify({'id': project_id, 'name': name}), 201 + + +@app.route('/api/projects/', methods=['DELETE']) +def api_delete_project(project_id): + conn = get_db() + cur = conn.cursor() + cur.execute("DELETE FROM projects WHERE id=?", (project_id,)) + conn.commit() + conn.close() + return jsonify({'success': True}) + + +@app.route('/api/projects/', methods=['GET']) +def api_get_project(project_id): + conn = get_db() + cur = conn.cursor() + cur.execute(''' + SELECT p.id, p.name, p.created_at, p.outline_status, p.outline_error, + td.file_name, td.status as parse_status, td.error_message, + td.summary, td.rating_requirements, td.rating_json, td.outline, + p.anon_requirements, p.enable_figure, p.enable_table, + td.boq_file_name, td.boq_summary, td.boq_status, td.boq_error, + td.boq_analysis_json, td.tender_kind, COALESCE(td.target_pages, 0) + FROM projects p + LEFT JOIN tender_data td ON td.project_id = p.id + WHERE p.id=? + ''', (project_id,)) + row = cur.fetchone() + conn.close() + if not row: + return jsonify({'error': '项目不存在'}), 404 + + return jsonify({ + 'id': row[0], 'name': row[1], 'created_at': row[2], + 'outline_status': row[3], 'outline_error': row[4], + 'file_name': row[5], 'parse_status': row[6] or 'none', + 'parse_error': row[7], 'summary': row[8], + 'rating_requirements': row[9], 'rating_json': row[10], + 'outline': row[11], 'anon_requirements': row[12] or '', + 'enable_figure': bool(row[13]), 'enable_table': bool(row[14]), + 'boq_file_name': row[15] or '', 'boq_summary': row[16] or '', + 'boq_status': row[17] or 'none', 'boq_error': row[18] or '', + 'boq_analysis': _safe_json_load(row[19]), + 'tender_kind': row[20] or 'engineering', + 'target_pages': int(row[21] or 0), + }) + + +# ═══════════════════════════════════════════════════════════════════════════ +# API:文件上传与解析 +# ═══════════════════════════════════════════════════════════════════════════ + +@app.route('/api/projects//upload', methods=['POST']) +def api_upload(project_id): + from utils.file_utils import allowed_file, safe_filename + + if 'file' not in request.files: + return jsonify({'error': '未选择文件'}), 400 + f = request.files['file'] + if not f.filename: + return jsonify({'error': '文件名为空'}), 400 + if not allowed_file(f.filename): + return jsonify({'error': '仅支持 PDF / DOC / DOCX 格式'}), 400 + + filename = safe_filename(f.filename) + save_path = os.path.join(config.UPLOAD_DIR, f'{project_id}_{filename}') + f.save(save_path) + + # 初始化 tender_data 记录 + conn = get_db() + cur = conn.cursor() + cur.execute(''' + INSERT INTO tender_data (project_id, file_name, status) + VALUES (?, ?, 'uploaded') + ON CONFLICT(project_id) DO UPDATE SET file_name=?, status='uploaded', error_message='', updated_at=? + ''', (project_id, filename, filename, datetime.now())) + conn.commit() + conn.close() + + return jsonify({'success': True, 'file_name': filename, 'path': save_path}) + + +@app.route('/api/projects//tender-data', methods=['PUT']) +def api_update_tender_data(project_id): + """允许用户手动修改并保存解析结果(摘要、技术评分要求、标书类型)""" + data = request.get_json() or {} + fields = {} + if 'summary' in data: + fields['summary'] = data['summary'] + if 'rating_requirements' in data: + fields['rating_requirements'] = data['rating_requirements'] + if 'tender_kind' in data: + tk = (data.get('tender_kind') or 'engineering').strip().lower() + if tk not in ('engineering', 'service', 'goods'): + return jsonify({'error': 'tender_kind 须为 engineering / service / goods'}), 400 + fields['tender_kind'] = tk + if 'target_pages' in data: + try: + fields['target_pages'] = max(0, int(data['target_pages'])) + except (TypeError, ValueError): + return jsonify({'error': 'target_pages 须为非负整数'}), 400 + if not fields: + return jsonify({'error': '无可更新字段'}), 400 + + conn = get_db() + cur = conn.cursor() + set_clause = ', '.join(f'{k}=?' for k in fields) + values = list(fields.values()) + [datetime.now(), project_id] + cur.execute( + f'UPDATE tender_data SET {set_clause}, updated_at=? WHERE project_id=?', + values + ) + conn.commit() + conn.close() + return jsonify({'success': True}) + + +@app.route('/api/projects//upload-boq', methods=['POST']) +def api_upload_boq(project_id): + """上传工程量清单文件(独立于招标文件)""" + from utils.file_utils import safe_filename + + if 'file' not in request.files: + return jsonify({'error': '未选择文件'}), 400 + f = request.files['file'] + if not f.filename: + return jsonify({'error': '文件名为空'}), 400 + + ext = os.path.splitext(f.filename)[1].lower() + allowed_exts = {'.xlsx', '.xls', '.csv', '.pdf', '.docx', '.doc'} + if ext not in allowed_exts: + return jsonify({'error': f'不支持的格式 {ext},请使用 xlsx/xls/csv/pdf/docx/doc'}), 400 + + filename = safe_filename(f.filename) + save_path = os.path.join(config.UPLOAD_DIR, f'{project_id}_boq_{filename}') + f.save(save_path) + + # 确保 tender_data 记录存在 + conn = get_db() + cur = conn.cursor() + cur.execute(''' + INSERT INTO tender_data (project_id, boq_file_name, boq_status) + VALUES (?, ?, 'uploaded') + ON CONFLICT(project_id) DO UPDATE + SET boq_file_name=?, boq_status='uploaded', boq_error='', updated_at=? + ''', (project_id, filename, filename, datetime.now())) + conn.commit() + conn.close() + + return jsonify({'success': True, 'file_name': filename, 'path': save_path}) + + +@app.route('/api/projects//parse-boq', methods=['POST']) +def api_parse_boq(project_id): + """后台解析工程量清单 → AI 摘要""" + from modules.parser import parse_boq_file + + conn = get_db() + cur = conn.cursor() + cur.execute("SELECT boq_file_name FROM tender_data WHERE project_id=?", (project_id,)) + row = cur.fetchone() + conn.close() + + if not row or not row[0]: + return jsonify({'error': '请先上传工程量清单文件'}), 400 + + file_name = row[0] + # 同时尝试带/不带 boq_ 前缀的路径 + path1 = os.path.join(config.UPLOAD_DIR, f'{project_id}_boq_{file_name}') + path2 = os.path.join(config.UPLOAD_DIR, f'{project_id}_{file_name}') + file_path = path1 if os.path.exists(path1) else path2 + if not os.path.exists(file_path): + return jsonify({'error': '清单文件不存在,请重新上传'}), 404 + + t = threading.Thread( + target=parse_boq_file, + args=(config.DB_PATH, project_id, file_path, file_name), + daemon=True, + ) + t.start() + return jsonify({'success': True}) + + +@app.route('/api/projects//boq', methods=['PUT']) +def api_update_boq(project_id): + """手动保存用户编辑后的工程量清单摘要""" + data = request.get_json() or {} + boq_summary = data.get('boq_summary', '') + conn = get_db() + cur = conn.cursor() + cur.execute( + "UPDATE tender_data SET boq_summary=?, updated_at=? WHERE project_id=?", + (boq_summary, datetime.now(), project_id) + ) + conn.commit() + conn.close() + return jsonify({'success': True}) + + +@app.route('/api/projects//parse', methods=['POST']) +def api_parse(project_id): + from modules.parser import parse_tender_file + + conn = get_db() + cur = conn.cursor() + cur.execute("SELECT file_name FROM tender_data WHERE project_id=?", (project_id,)) + row = cur.fetchone() + conn.close() + + if not row or not row[0]: + return jsonify({'error': '请先上传招标文件'}), 400 + + file_name = row[0] + file_path = os.path.join(config.UPLOAD_DIR, f'{project_id}_{file_name}') + if not os.path.exists(file_path): + return jsonify({'error': f'文件不存在: {file_name}'}), 404 + + t = threading.Thread( + target=parse_tender_file, + args=(config.DB_PATH, project_id, file_path, file_name), + daemon=True, + ) + t.start() + return jsonify({'success': True, 'message': '解析任务已启动'}) + + +@app.route('/api/projects//parse-status', methods=['GET']) +def api_parse_status(project_id): + conn = get_db() + cur = conn.cursor() + cur.execute( + "SELECT status, error_message, summary, rating_requirements, rating_json, tender_kind " + "FROM tender_data WHERE project_id=?", + (project_id,) + ) + row = cur.fetchone() + conn.close() + if not row: + return jsonify({'status': 'none'}) + return jsonify({ + 'status': row[0], + 'message': row[1], + 'has_summary': bool(row[2]), + 'has_rating': bool(row[3]), + 'has_rating_json': bool(row[4]), + 'tender_kind': row[5] or 'engineering', + }) + + +# ═══════════════════════════════════════════════════════════════════════════ +# API:大纲生成 +# ═══════════════════════════════════════════════════════════════════════════ + +@app.route('/api/projects//outline', methods=['PUT']) +def api_update_outline(project_id): + """ + 用户手动修改大纲后保存:重新解析大纲文本,更新 bid_sections。 + 注意:已生成的章节内容将被清除,需重新生成。 + """ + from modules.generator import _parse_outline, _save_sections, _save_outline_text + + data = request.get_json() or {} + outline_text = (data.get('outline') or '').strip() + if not outline_text: + return jsonify({'error': '大纲内容不能为空'}), 400 + + try: + # 解析并自动重排序号,返回规范化文本 + _, sections, normalized_text = _parse_outline(outline_text) + if not sections: + return jsonify({'error': '大纲解析失败,未识别到任何章节,请检查格式'}), 400 + + conn = get_db() + cur = conn.cursor() + # 存储重排序号后的规范文本 + _save_outline_text(conn, project_id, normalized_text) + _save_sections(conn, project_id, sections) + cur.execute( + "UPDATE projects SET outline_status='outline_done', outline_error='', updated_at=? WHERE id=?", + (datetime.now(), project_id) + ) + cur.execute("SELECT length(outline) FROM tender_data WHERE project_id=?", (project_id,)) + persisted_len = (cur.fetchone() or [0])[0] or 0 + conn.commit() + conn.close() + # 把规范化文本返回给前端,前端据此更新编辑器内容 + return jsonify({ + 'success': True, + 'section_count': len(sections), + 'normalized_outline': normalized_text, + 'persisted_outline_len': persisted_len, + }) + except Exception as e: + logger.exception('手动保存大纲失败') + return jsonify({'error': str(e)}), 500 + + +@app.route('/api/projects//generate-outline', methods=['POST']) +def api_generate_outline(project_id): + from modules.generator import generate_outline + data = request.get_json(silent=True) or {} + force = bool(data.get('force', False)) + + conn = get_db() + cur = conn.cursor() + cur.execute( + ''' + SELECT p.outline_status, COALESCE(td.outline, '') + FROM projects p + LEFT JOIN tender_data td ON td.project_id = p.id + WHERE p.id = ? + ''', + (project_id,), + ) + row = cur.fetchone() + if not row: + conn.close() + return jsonify({'success': False, 'error': '项目不存在'}), 404 + + ostatus, outline_text = (row[0] or 'none', row[1] or '') + if ostatus == 'outline_generating': + conn.close() + return jsonify({'success': True, 'message': '大纲正在生成中,请稍候'}), 200 + + if not force and outline_text.strip(): + conn.close() + return jsonify({ + 'success': False, + 'error': '当前项目已有大纲,重新生成会覆盖现有大纲。请确认后以 force=true 再次请求。' + }), 409 + + # 立即落库,避免仅依赖后台线程的首条 SQL 时产生竞态(重复点击、轮询、刷新时状态不一致) + cur.execute( + "UPDATE projects SET outline_status=?, outline_error=?, updated_at=? WHERE id=?", + ('outline_generating', '', datetime.now(), project_id), + ) + conn.commit() + conn.close() + + t = threading.Thread( + target=generate_outline, + args=(config.DB_PATH, project_id), + daemon=True, + ) + t.start() + return jsonify({'success': True, 'message': '大纲生成任务已启动'}) + + +@app.route('/api/projects//expand-outline', methods=['POST']) +def api_expand_outline(project_id): + """根据当前编辑大纲自动补全小章节,并直接落库重建章节树。""" + from modules.generator import ( + expand_outline, + _parse_outline, + _save_outline_text, + _save_sections, + ) + + from utils import volume_chapters as vol_ch + + data = request.get_json() or {} + outline = data.get('outline', '') + if not outline.strip(): + return jsonify({'success': False, 'error': '大纲内容不能为空'}), 400 + + no_subchapter_limit = data.get('no_subchapter_limit') in (True, 1, '1', 'true', 'True') + if 'target_pages' in data: + try: + request_pages = max(0, int(data['target_pages'])) + except (TypeError, ValueError): + request_pages = None + else: + request_pages = None + + conn = get_db() + cur = conn.cursor() + cur.execute( + "SELECT summary, rating_requirements, COALESCE(target_pages, 0) FROM tender_data " + "WHERE project_id=?", + (project_id,), + ) + row = cur.fetchone() + conn.close() + + summary = row[0] if row else '' + rating_requirements = row[1] if row else '' + db_tp = int(row[2] or 0) if row else 0 + cfg_tp = int(getattr(config, 'TARGET_PAGES', 0) or 0) + effective_target_pages = vol_ch.resolve_expand_target_pages( + request_pages, no_subchapter_limit, db_tp, cfg_tp + ) + + try: + expanded_outline = expand_outline( + outline, summary, rating_requirements, project_id, effective_target_pages + ) + _, sections, normalized_text = _parse_outline(expanded_outline) + if not sections: + return jsonify({'success': False, 'error': '扩充后大纲解析失败,请检查章节格式'}), 400 + + conn = get_db() + cur = conn.cursor() + _save_outline_text(conn, project_id, normalized_text) + _save_sections(conn, project_id, sections) + cur.execute( + "UPDATE projects SET outline_status='outline_done', outline_error='', updated_at=? WHERE id=?", + (datetime.now(), project_id), + ) + conn.commit() + cur.execute("SELECT length(outline) FROM tender_data WHERE project_id=?", (project_id,)) + persisted_len = (cur.fetchone() or [0])[0] or 0 + conn.close() + + return jsonify({ + 'success': True, + 'expanded_outline': expanded_outline, + 'normalized_outline': normalized_text, + 'section_count': len(sections), + 'persisted_outline_len': persisted_len, + 'used_target_pages': effective_target_pages, + 'no_subchapter_limit': no_subchapter_limit, + }) + except Exception as e: + logger.exception(f'expand_outline failed for project {project_id}') + return jsonify({'success': False, 'error': str(e)}), 500 + + +@app.route('/api/projects//outline-status', methods=['GET']) +def api_outline_status(project_id): + conn = get_db() + cur = conn.cursor() + cur.execute("SELECT outline_status, outline_error FROM projects WHERE id=?", (project_id,)) + row = cur.fetchone() + conn.close() + if not row: + return jsonify({'status': 'none'}) + return jsonify({'status': row[0], 'error': row[1]}) + + +# ═══════════════════════════════════════════════════════════════════════════ +# API:章节管理与内容生成 +# ═══════════════════════════════════════════════════════════════════════════ + +@app.route('/api/projects//sections', methods=['GET']) +def api_list_sections(project_id): + conn = get_db() + cur = conn.cursor() + cur.execute(''' + SELECT id, section_number, section_title, level, is_leaf, + status, error_message, length(content) as content_len + FROM bid_sections + WHERE project_id=? + ORDER BY order_index + ''', (project_id,)) + rows = cur.fetchall() + conn.close() + sections = [] + for r in rows: + sections.append({ + 'id': r[0], 'number': r[1], 'title': r[2], 'level': r[3], + 'is_leaf': bool(r[4]), 'status': r[5], 'error': r[6], + 'has_content': (r[7] or 0) > 0, + }) + return jsonify({'sections': sections}) + + +@app.route('/api/projects//sections/', methods=['GET']) +def api_get_section(project_id, section_id): + conn = get_db() + cur = conn.cursor() + cur.execute( + "SELECT id, section_number, section_title, level, is_leaf, content, intro_content, status FROM bid_sections WHERE id=? AND project_id=?", + (section_id, project_id) + ) + row = cur.fetchone() + conn.close() + if not row: + return jsonify({'error': '章节不存在'}), 404 + return jsonify({ + 'id': row[0], 'number': row[1], 'title': row[2], 'level': row[3], + 'is_leaf': bool(row[4]), 'content': row[5], 'intro_content': row[6], 'status': row[7], + }) + + +@app.route('/api/projects//sections/', methods=['PUT']) +def api_update_section(project_id, section_id): + data = request.get_json() or {} + content = data.get('content', '') + conn = get_db() + cur = conn.cursor() + cur.execute( + "UPDATE bid_sections SET content=?, status='done', updated_at=? WHERE id=? AND project_id=?", + (content, datetime.now(), section_id, project_id) + ) + conn.commit() + conn.close() + return jsonify({'success': True}) + + +@app.route('/api/projects//sections//chat', methods=['POST']) +def api_section_chat(project_id, section_id): + """ + 对话式章节生成:接受多轮对话历史,结合章节上下文调用 AI,返回新一轮回复。 + 请求体:{ "messages": [{"role": "user"|"assistant", "content": "..."}] } + """ + from utils import ai_client + + data = request.get_json() or {} + messages = data.get('messages', []) + if not messages: + return jsonify({'error': '消息列表不能为空'}), 400 + + conn = get_db() + cur = conn.cursor() + cur.execute( + "SELECT section_title FROM bid_sections WHERE id=? AND project_id=?", + (section_id, project_id) + ) + row = cur.fetchone() + if not row: + conn.close() + return jsonify({'error': '章节不存在'}), 404 + section_title = row[0] + + cur.execute( + "SELECT summary, outline, tender_kind FROM tender_data WHERE project_id=?", + (project_id,), + ) + td = cur.fetchone() + conn.close() + + summary = ((td[0] or '')[:3000]) if td else '' + outline = ((td[1] or '')[:2000]) if td else '' + tk = (td[2] or 'engineering').strip().lower() if td else 'engineering' + if tk not in ('engineering', 'service', 'goods'): + tk = 'engineering' + + from utils.tender_kind_sections import CHAT_KIND_INSTRUCTION + + kind_hint = CHAT_KIND_INSTRUCTION.get(tk, CHAT_KIND_INSTRUCTION['engineering']) + + system = f"""你是一位资深的投标文件撰写专家,正在协助用户以对话方式撰写技术标书中「{section_title}」章节的正文内容。 + +【项目背景摘要】 +{summary or '(未提供)'} + +【标书目录结构】 +{outline or '(未提供)'} +{kind_hint} + +【撰写规范(必须遵守)】 +- 投标方自称统一用"我方",禁用"我们""我公司" +- 禁止套话:综上所述、高度重视、全力以赴、不断优化、稳步推进等 +- 每项措施须有可检验的实质内容(做法、节点、标准编号,或招标文件/清单已给出的量化依据); + 未载明的型号、数量、吨位、时限等不得编造,用概括性定性表述写清含义;禁止使用方括号待填项(如[型号][数量]) +- 列举用(1)(2)(3)编号,禁止"首先其次最后"连接 +- 纯文本输出,段落间用空行分隔,不使用 Markdown 符号 +- 直接输出正文,不含章节标题、解释说明或"以下是..."引导语""" + + valid_messages = [m for m in messages if m.get('role') in ('user', 'assistant')] + + try: + content = ai_client.chat_with_history(system, valid_messages, + temperature=0.7, max_tokens=4096) + return jsonify({'success': True, 'content': content}) + except Exception as e: + logger.exception(f'对话式章节生成失败 section_id={section_id}') + return jsonify({'error': str(e)}), 500 + + +@app.route('/api/projects//generate-section', methods=['POST']) +def api_generate_section(project_id): + from modules.generator import generate_section + + data = request.get_json() or {} + section_id = data.get('section_id') + if not section_id: + return jsonify({'error': '缺少 section_id'}), 400 + + conn = get_db() + cur = conn.cursor() + cur.execute( + "SELECT anon_requirements, enable_figure, enable_table FROM projects WHERE id=?", + (project_id,) + ) + row = cur.fetchone() + conn.close() + anon_req = (row[0] or '') if row else '' + enable_fig = bool(row[1]) if row else False + enable_tbl = bool(row[2]) if row else False + + t = threading.Thread( + target=generate_section, + args=(config.DB_PATH, project_id, section_id, anon_req, enable_fig, enable_tbl), + daemon=True, + ) + t.start() + return jsonify({'success': True}) + + +@app.route('/api/projects//diagram', methods=['PUT']) +def api_update_diagram(project_id): + """保存图表模式开关""" + data = request.get_json() or {} + enable_figure = 1 if data.get('enable_figure') else 0 + enable_table = 1 if data.get('enable_table') else 0 + conn = get_db() + cur = conn.cursor() + cur.execute( + "UPDATE projects SET enable_figure=?, enable_table=?, updated_at=? WHERE id=?", + (enable_figure, enable_table, datetime.now(), project_id) + ) + conn.commit() + conn.close() + return jsonify({'success': True}) + + +@app.route('/api/projects//anon', methods=['PUT']) +def api_update_anon(project_id): + """保存暗标要求""" + data = request.get_json() or {} + anon_requirements = data.get('anon_requirements', '') + conn = get_db() + cur = conn.cursor() + cur.execute( + "UPDATE projects SET anon_requirements=?, updated_at=? WHERE id=?", + (anon_requirements, datetime.now(), project_id) + ) + conn.commit() + conn.close() + return jsonify({'success': True}) + + +@app.route('/api/projects//generate-all-sections', methods=['POST']) +def api_generate_all_sections(project_id): + from modules.generator import generate_all_sections + + conn = get_db() + cur = conn.cursor() + cur.execute( + "SELECT anon_requirements, enable_figure, enable_table FROM projects WHERE id=?", + (project_id,) + ) + row = cur.fetchone() + conn.close() + anon_req = (row[0] or '') if row else '' + enable_fig = bool(row[1]) if row else False + enable_tbl = bool(row[2]) if row else False + + t = threading.Thread( + target=generate_all_sections, + args=(config.DB_PATH, project_id, anon_req, enable_fig, enable_tbl), + daemon=True, + ) + t.start() + return jsonify({'success': True, 'message': '全量生成任务已启动'}) + + +@app.route('/api/projects//section-progress', methods=['GET']) +def api_section_progress(project_id): + conn = get_db() + cur = conn.cursor() + cur.execute(''' + SELECT + COUNT(*) as total, + SUM(CASE WHEN status='done' THEN 1 ELSE 0 END) as done, + SUM(CASE WHEN status='generating' THEN 1 ELSE 0 END) as running, + SUM(CASE WHEN status='error' THEN 1 ELSE 0 END) as error_count + FROM bid_sections WHERE project_id=? + ''', (project_id,)) + r = cur.fetchone() + conn.close() + total, done, running, errors = r + return jsonify({ + 'total': total or 0, 'done': done or 0, + 'running': running or 0, 'errors': errors or 0, + 'percent': round((done or 0) / max(total or 1, 1) * 100), + }) + + +# ═══════════════════════════════════════════════════════════════════════════ +# API:合规检查 +# ═══════════════════════════════════════════════════════════════════════════ + +@app.route('/api/projects//check', methods=['POST']) +def api_check(project_id): + from modules.checker import check_compliance + result = check_compliance(config.DB_PATH, project_id) + return jsonify(result) + + +@app.route('/api/projects//check-dark-bid-format', methods=['POST']) +def api_check_dark_bid_format(project_id): + """技术暗标 HTML 格式清标(不调用 AI)。请求体 JSON:{"html": "..."}""" + conn = get_db() + cur = conn.cursor() + cur.execute("SELECT id FROM projects WHERE id=?", (project_id,)) + if not cur.fetchone(): + conn.close() + return jsonify({'error': '项目不存在'}), 404 + conn.close() + + data = request.get_json(silent=True) or {} + html = (data.get('html') or '').strip() + if not html: + return jsonify({'error': '请提供 html 字段(技术暗标完整 HTML 内容)'}), 400 + + from modules.dark_bid_format_check import check_technical_bid + try: + result = check_technical_bid(html) + return jsonify(result) + except Exception as e: + logger.exception('技术暗标格式清标失败') + return jsonify({'error': str(e)}), 500 + + +# ═══════════════════════════════════════════════════════════════════════════ +# API:导出 +# ═══════════════════════════════════════════════════════════════════════════ + +@app.route('/api/projects//export', methods=['POST']) +def api_export(project_id): + from modules.exporter import export_to_word + try: + filename = export_to_word(config.DB_PATH, project_id) + return jsonify({'success': True, 'filename': filename, 'url': f'/api/download/{filename}'}) + except Exception as e: + logger.exception('导出失败') + return jsonify({'error': str(e)}), 500 + + +@app.route('/api/download/') +def api_download(filename): + return send_from_directory(config.EXPORT_DIR, filename, as_attachment=True) + + +# ═══════════════════════════════════════════════════════════════════════════ +# API:知识库管理 +# ═══════════════════════════════════════════════════════════════════════════ + +@app.route('/api/knowledge/status', methods=['GET']) +def api_knowledge_status(): + from modules.knowledge import is_available, list_files + status = is_available() + status['file_count'] = len(list_files(config.DB_PATH)) + return jsonify(status) + + +@app.route('/api/knowledge/files', methods=['GET']) +def api_knowledge_list(): + from modules.knowledge import list_files + files = list_files(config.DB_PATH) + return jsonify({'files': files}) + + +@app.route('/api/knowledge/upload', methods=['POST']) +def api_knowledge_upload(): + from modules.knowledge import add_file + from utils.file_utils import allowed_file, safe_filename + import threading + + if 'file' not in request.files: + return jsonify({'error': '未选择文件'}), 400 + f = request.files['file'] + if not f.filename or not allowed_file(f.filename): + return jsonify({'error': '仅支持 PDF / DOC / DOCX'}), 400 + + filename = safe_filename(f.filename) + save_path = os.path.join(config.KNOWLEDGE_DIR, filename) + f.save(save_path) + + # 后台线程入库(提取文本 + 向量化可能耗时,避免请求超时) + def _ingest(): + result = add_file(save_path, config.DB_PATH) + if not result.get('success'): + logger.error(f'知识库入库失败 {filename}: {result.get("error")}') + + threading.Thread(target=_ingest, daemon=True).start() + + return jsonify({'success': True, 'queued': True, 'filename': filename}) + + +@app.route('/api/knowledge/delete', methods=['POST']) +def api_knowledge_delete(): + from modules.knowledge import delete_file + data = request.get_json() or {} + file_name = data.get('file_name', '') + if not file_name: + return jsonify({'error': '缺少 file_name'}), 400 + result = delete_file(file_name, config.DB_PATH) + return jsonify(result) + + +# ═══════════════════════════════════════════════════════════════════════════ +# API:AI 配置 +# ═══════════════════════════════════════════════════════════════════════════ + +@app.route('/api/config', methods=['GET']) +def api_get_config(): + def _has_key(k): return bool(k and not k.startswith('sk-your')) + return jsonify({ + 'model_provider': config.MODEL_PROVIDER, + 'qwen_model': config.QWEN_MODEL, + 'qwen_base_url': config.QWEN_BASE_URL, + 'openai_model': config.OPENAI_MODEL, + 'openai_base_url': config.OPENAI_BASE_URL, + 'deepseek_model': config.DEEPSEEK_MODEL, + 'deepseek_base_url': config.DEEPSEEK_BASE_URL, + 'ollama_base_url': config.OLLAMA_BASE_URL, + 'ollama_model': config.OLLAMA_MODEL, + 'doubao_model': config.DOUBAO_MODEL, + 'doubao_base_url': config.DOUBAO_BASE_URL, + 'kimi_model': config.KIMI_MODEL, + 'kimi_base_url': config.KIMI_BASE_URL, + 'has_qwen_key': _has_key(config.QWEN_API_KEY), + 'has_openai_key': _has_key(config.OPENAI_API_KEY), + 'has_deepseek_key': _has_key(config.DEEPSEEK_API_KEY), + 'has_doubao_key': _has_key(config.DOUBAO_API_KEY), + 'has_kimi_key': _has_key(config.KIMI_API_KEY), + 'max_concurrent': config.MAX_CONCURRENT_SECTIONS, + 'content_volume': config.CONTENT_VOLUME, + 'target_pages': getattr(config, 'TARGET_PAGES', 0), + 'page_char_estimate': getattr(config, 'PAGE_CHAR_ESTIMATE', 700), + }) + + +@app.route('/api/config', methods=['POST']) +def api_save_config(): + data = request.get_json() or {} + if 'model_provider' in data: + config.MODEL_PROVIDER = data['model_provider'] + if 'qwen_api_key' in data and data['qwen_api_key']: + config.QWEN_API_KEY = data['qwen_api_key'] + if 'qwen_model' in data and data['qwen_model']: + config.QWEN_MODEL = data['qwen_model'] + if 'qwen_base_url' in data and data['qwen_base_url']: + config.QWEN_BASE_URL = data['qwen_base_url'] + if 'openai_api_key' in data and data['openai_api_key']: + config.OPENAI_API_KEY = data['openai_api_key'] + if 'openai_model' in data and data['openai_model']: + config.OPENAI_MODEL = data['openai_model'] + if 'openai_base_url' in data and data['openai_base_url']: + config.OPENAI_BASE_URL = data['openai_base_url'] + if 'deepseek_api_key' in data and data['deepseek_api_key']: + config.DEEPSEEK_API_KEY = data['deepseek_api_key'] + if 'deepseek_model' in data and data['deepseek_model']: + config.DEEPSEEK_MODEL = data['deepseek_model'] + if 'deepseek_base_url' in data and data['deepseek_base_url']: + config.DEEPSEEK_BASE_URL = data['deepseek_base_url'] + if 'ollama_base_url' in data and data['ollama_base_url']: + config.OLLAMA_BASE_URL = data['ollama_base_url'] + if 'ollama_model' in data and data['ollama_model']: + config.OLLAMA_MODEL = data['ollama_model'] + if 'doubao_api_key' in data and data['doubao_api_key']: + config.DOUBAO_API_KEY = data['doubao_api_key'] + if 'doubao_model' in data and data['doubao_model']: + config.DOUBAO_MODEL = data['doubao_model'] + if 'doubao_base_url' in data and data['doubao_base_url']: + config.DOUBAO_BASE_URL = data['doubao_base_url'] + if 'kimi_api_key' in data and data['kimi_api_key']: + config.KIMI_API_KEY = data['kimi_api_key'] + if 'kimi_model' in data and data['kimi_model']: + config.KIMI_MODEL = data['kimi_model'] + if 'kimi_base_url' in data and data['kimi_base_url']: + config.KIMI_BASE_URL = data['kimi_base_url'] + if 'max_concurrent' in data: + v = int(data['max_concurrent']) + config.MAX_CONCURRENT_SECTIONS = max(1, min(v, 20)) + if 'content_volume' in data and data['content_volume'] in ('concise', 'standard', 'detailed', 'full'): + config.CONTENT_VOLUME = data['content_volume'] + if 'target_pages' in data: + try: + config.TARGET_PAGES = max(0, int(data['target_pages'])) + except (ValueError, TypeError): + pass + if 'page_char_estimate' in data: + try: + config.PAGE_CHAR_ESTIMATE = max(300, min(3000, int(data['page_char_estimate']))) + except (ValueError, TypeError): + pass + + _settings.save(config) + return jsonify({'success': True}) + + +# ═══════════════════════════════════════════════════════════════════════════ +# 启动 +# ═══════════════════════════════════════════════════════════════════════════ + +if __name__ == '__main__': + init_db() + print('\n' + '=' * 60) + print(' BidPartner - AI Bid Writing Assistant') + print('=' * 60) + print(' URL: http://localhost:5000') + print(' Press Ctrl+C to quit\n') + app.run(host='0.0.0.0', port=5000, debug=False, threaded=True) diff --git a/bid_partner.spec b/bid_partner.spec new file mode 100644 index 0000000..6f4517e --- /dev/null +++ b/bid_partner.spec @@ -0,0 +1,118 @@ +# -*- mode: python ; coding: utf-8 -*- +""" +PyInstaller spec for 标伙伴 · AI标书助手 +Build: pyinstaller bid_partner.spec + +知识库改用 SQLite + 纯 Python 向量存储,已不依赖 ChromaDB,打包更小。 +""" +import os +from PyInstaller.utils.hooks import collect_all, collect_data_files + +block_cipher = None + +# ── Collect complex packages ───────────────────────────────────────────────── +openai_datas, openai_bins, openai_hidden = collect_all('openai') +pydantic_datas, pydantic_bins, pydantic_hidden = collect_all('pydantic') + +# tiktoken data (BPE vocab files) +tiktoken_datas = collect_data_files('tiktoken') + +a = Analysis( + ['launcher.py'], + pathex=['.'], + binaries=openai_bins + pydantic_bins, + datas=[ + # ── App assets (read-only, go into _MEIPASS) ── + ('templates', 'templates'), + ('static', 'static'), + # ── Package data ── + *openai_datas, + *pydantic_datas, + *tiktoken_datas, + ], + hiddenimports=[ + # Flask / Werkzeug + 'flask', 'flask_cors', 'werkzeug', 'werkzeug.serving', + 'werkzeug.routing', 'werkzeug.middleware.proxy_fix', + 'jinja2', 'jinja2.ext', + # SQLite (stdlib, always present) + 'sqlite3', + # OpenAI + *openai_hidden, + # Pydantic + *pydantic_hidden, + # Document processing + 'PyPDF2', 'pypdf', 'pypdf.errors', + 'pdfminer', 'pdfminer.high_level', 'pdfminer.layout', + 'pdfminer.pdfpage', 'pdfminer.pdfinterp', 'pdfminer.converter', + 'docx', 'docx.oxml', 'docx.oxml.ns', 'docx.shared', + 'docx.enum', 'docx.enum.text', 'docx.enum.style', + 'python_docx', + # tiktoken + 'tiktoken', 'tiktoken.core', 'tiktoken.model', + 'tiktoken_ext', 'tiktoken_ext.openai_public', + # Network / encoding + 'requests', 'chardet', 'httpx', 'httpcore', + 'anyio', 'anyio.streams', 'anyio.streams.memory', + 'sniffio', 'certifi', + # Stdlib extras + 'importlib.metadata', 'importlib.resources', + 'pkg_resources', 'json', 'math', 'threading', + # Local project modules (explicitly include all) + 'config', 'app', + 'utils', 'utils.ai_client', 'utils.file_utils', + 'utils.prompts', 'utils.settings', 'utils.boq_parser', 'utils.bill_analysis', + 'modules', 'modules.parser', 'modules.generator', + 'modules.checker', 'modules.exporter', 'modules.knowledge', + ], + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=[ + # Heavy packages not used in this app + 'matplotlib', 'pandas', 'scipy', 'numpy', + 'IPython', 'jupyter', 'notebook', + 'PIL', 'Pillow', + 'cv2', 'torch', 'tensorflow', + 'pytest', 'unittest', + # ChromaDB 及其依赖(已移除,改用 SQLite 内置存储) + 'chromadb', 'hnswlib', 'posthog', 'pypika', + 'mmh3', 'overrides', 'monotonic', + 'sentence_transformers', 'onnxruntime', + ], + win_no_prefer_redirects=False, + win_private_assemblies=False, + cipher=block_cipher, + noarchive=False, +) + +pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) + +exe = EXE( + pyz, + a.scripts, + [], + exclude_binaries=True, + name='bid_partner', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=False, + console=False, # no black console window — GUI launcher takes over + disable_windowed_traceback=False, + argv_emulation=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None, +) + +coll = COLLECT( + exe, + a.binaries, + a.zipfiles, + a.datas, + strip=False, + upx=False, + upx_exclude=[], + name='BidPartner', +) diff --git a/bill-worker.js b/bill-worker.js new file mode 100644 index 0000000..ee84bb9 --- /dev/null +++ b/bill-worker.js @@ -0,0 +1,672 @@ +/** + * bill-worker.js — PDF 清单解析调度器(Worker Thread) + * + * 架构(v3 — SharedArrayBuffer 零拷贝): + * Phase 1 — 并行文本提取 + * 将 PDF 数据写入 SharedArrayBuffer(一次分配,所有子线程共享读) + * 启动 N 个 page-worker,每个负责固定 20 页 + * + * Phase 2 — 清单页筛选 + 文本解析(纯正则,毫秒级) + * 汇总全部页面文本 → 关键字筛选清单页 → 多行合并 → 逐行解析 + */ +'use strict'; +const { parentPort } = require('worker_threads'); +const { Worker } = require('worker_threads'); +const path = require('path'); + +const PAGES_PER_CHUNK = 20; + +parentPort.on('message', async (msg) => { + if (msg.type !== 'parse') return; + const t0 = Date.now(); + try { + // 立即做一次干净的拷贝,确保拥有独立的 ArrayBuffer + const raw = msg.buffer; + const buf = Buffer.alloc(raw.byteLength); + Buffer.from(raw).copy(buf); + + if (buf.length === 0) { + parentPort.postMessage({ type: 'done', ok: false, error: '收到空 PDF 数据' }); + return; + } + + // ── 获取总页数 ── + const pdfjsModule = await import('pdfjs-dist/build/pdf.mjs'); + const pdfjsLib = pdfjsModule.default || pdfjsModule; + // 给 pdfjs 一份独立拷贝(pdfjs 内部可能 detach buffer) + const pdfData = new Uint8Array(buf.length); + buf.copy(Buffer.from(pdfData.buffer)); + const pdf = await pdfjsLib.getDocument({ data: pdfData, isEvalSupported: false }).promise; + const totalPages = pdf.numPages; + + // ── 将 PDF 数据写入 SharedArrayBuffer(一次分配,所有子线程共享读)── + const sab = new SharedArrayBuffer(buf.length); + const sabView = new Uint8Array(sab); + buf.copy(Buffer.from(sabView.buffer)); // 从独立 buf 拷贝到共享内存 + + const workerCount = Math.ceil(totalPages / PAGES_PER_CHUNK); + console.log(`[BillWorker] PDF ${totalPages} 页, ${workerCount} 路并行 (SharedArrayBuffer ${(buf.length/1024/1024).toFixed(1)}MB)`); + + // Phase 1: 并行文本提取 + const pageTexts = await parallelExtract(sab, buf.length, totalPages, workerCount); + const t1 = Date.now(); + + const extractedCount = pageTexts.filter(t => t.length > 0).length; + console.log(`[BillWorker] Phase1 完成: ${t1 - t0}ms, ${extractedCount}/${totalPages} 页有文本`); + + // 扫描件判断 + const totalChars = pageTexts.reduce((s, t) => s + t.length, 0); + if (totalChars < 50) { + parentPort.postMessage({ type: 'done', ok: true, data: { scanned: true, reason: 'noText', totalPages } }); + return; + } + + // Phase 2: 筛选清单页(宽松策略 + 连续页补全) + const BILL_KW = ['项目编码', '项目名称', '工程量', '计量单位', '综合单价', '清单编码']; + const SEC_KW = ['分部分项', '分类分项', '措施项目', '其他项目', '工程量清单计价']; + // 第一轮:标记确定的清单页 + const billFlags = new Array(pageTexts.length).fill(false); + for (let i = 0; i < pageTexts.length; i++) { + const t = pageTexts[i]; + if (!t.trim()) continue; + const hHits = BILL_KW.filter(k => t.includes(k)).length; + const sHit = SEC_KW.some(k => t.includes(k)); + const hasCode = /\d{9}/.test(t); + // 放宽:有9位编码即可(不再要求同时命中表头关键字) + if (hHits >= 2 || sHit || hasCode) { + billFlags[i] = true; + } + } + // 第二轮:连续页补全 — 两个清单页之间的非空页也视为清单页(续页无表头) + // 但排除纯费用/税金页面(它们不含施工清单项) + const FEE_PAGE_KW = ['规费', '税金', '社会保险费', '住房公积金', '养老保险', + '工伤保险', '失业保险', '医疗保险', '教育费附加', '城市维护建设税']; + const firstBill = billFlags.indexOf(true); + const lastBill = billFlags.lastIndexOf(true); + if (firstBill >= 0 && lastBill > firstBill) { + for (let i = firstBill; i <= lastBill; i++) { + if (!billFlags[i] && pageTexts[i] && pageTexts[i].trim().length > 30) { + const t = pageTexts[i]; + const feeHits = FEE_PAGE_KW.filter(kw => t.includes(kw)).length; + // 命中 2+ 个费用关键字且没有9位工程编码 → 纯费用页,排除 + if (feeHits >= 2 && !/\d{9}/.test(t)) continue; + billFlags[i] = true; + } + } + } + const billTexts = []; + for (let i = 0; i < pageTexts.length; i++) { + if (billFlags[i]) billTexts.push(pageTexts[i]); + } + + if (!billTexts.length) { + parentPort.postMessage({ type: 'done', ok: true, data: { scanned: false, noBillPages: true, totalPages } }); + return; + } + + console.log(`[BillWorker] ${totalPages} 页 → ${billTexts.length} 页清单 (原始识别 ${billFlags.filter(f=>f).length - (lastBill - firstBill >= 0 ? 0 : 0)} / 补全后 ${billTexts.length})`); + + // Phase 3: 文本解析 + const merged = billTexts.join('\n'); + const parsed = parseBillText(merged); + const t2 = Date.now(); + console.log(`[BillWorker] Phase2+3: ${t2 - t1}ms, 总耗时: ${t2 - t0}ms`); + + parentPort.postMessage({ + type: 'done', ok: true, + data: { + scanned: false, + ...parsed, + _meta: { + method: 'local-parallel', + workers: workerCount, + billPages: billTexts.length, + totalPages, + extractMs: t1 - t0, + parseMs: t2 - t1, + totalMs: t2 - t0, + } + } + }); + } catch (err) { + console.error('[BillWorker] 错误:', err.message); + parentPort.postMessage({ type: 'done', ok: false, error: err.message }); + } +}); + +// ================================================================ +// Phase 1: 多 Worker 并行提取(SharedArrayBuffer 零拷贝) +// ================================================================ + +function parallelExtract(sab, dataLength, totalPages, workerCount) { + return new Promise((resolve) => { + const workerPath = path.join(__dirname, 'page-worker.js'); + const allPageTexts = new Array(totalPages).fill(''); + const workerStatus = new Array(workerCount).fill('pending'); // pending, done, failed + let resolved = false; + + const checkComplete = () => { + if (resolved) return; + const doneCount = workerStatus.filter(s => s === 'done' || s === 'failed').length; + if (doneCount >= workerCount) { + resolved = true; + // 检查是否有失败的worker,打印警告 + const failedCount = workerStatus.filter(s => s === 'failed').length; + if (failedCount > 0) { + console.warn(`[BillWorker] ${failedCount}/${workerCount} 个worker失败,可能导致部分页面无内容`); + } + resolve(allPageTexts); + } + }; + + for (let i = 0; i < workerCount; i++) { + const startPage = i * PAGES_PER_CHUNK + 1; + const endPage = Math.min((i + 1) * PAGES_PER_CHUNK, totalPages); + + // workerData 传 SharedArrayBuffer(跨线程共享,不会被清空) + const w = new Worker(workerPath, { + workerData: { sab, dataLength, startPage, endPage } + }); + + let workerDone = false; + + const markDone = (status) => { + if (workerDone) return; + workerDone = true; + workerStatus[i] = status; + checkComplete(); + }; + + w.on('message', (msg) => { + if (msg.ok && msg.results) { + for (const r of msg.results) { + allPageTexts[r.page - 1] = r.text; + } + markDone('done'); + } else if (!msg.ok) { + console.warn(`[BillWorker] page-worker[${startPage}-${endPage}] 失败: ${msg.error}`); + markDone('failed'); + } + }); + + w.on('error', (err) => { + console.warn(`[BillWorker] page-worker[${startPage}-${endPage}] 异常: ${err.message}`); + markDone('failed'); + }); + + w.on('exit', (code) => { + // exit 在 message 之后触发,但如果 worker 崩溃没发 message 则在这里兜底 + if (code !== 0 && !workerDone) { + console.warn(`[BillWorker] page-worker[${startPage}-${endPage}] 意外退出(code=${code})`); + markDone('failed'); + } else if (!workerDone) { + markDone('done'); + } + }); + } + + if (workerCount <= 0) { + resolved = true; + resolve(allPageTexts); + } + }); +} + +// ================================================================ +// Phase 3: 清单文本解析(纯正则 + 字符串处理,毫秒级) +// ================================================================ + +function parseBillText(text) { + const rawLines = text.split(/\n/).map(l => { + let line = l.replace(/\t/g, ' ').trim(); + // 规范化带横杠的编码:如 "010-101-001-001" → "010101001001" + line = line.replace(/(\d{2,4})[-‐–](\d{2,4})[-‐–](\d{2,4})(?:[-‐–](\d{2,4}))?/g, + (m, a, b, c, d) => { + const combined = a + b + c + (d || ''); + return (combined.length >= 9 && combined.length <= 12) ? combined : m; + }); + return line; + }); + + // ── Step 1: 多行合并成逻辑行 ── + // pdfjs 按 Y 坐标分行,表格一行通常 = 一条文本行 + // 但有时 项目特征/名称 会折行,需要合并 + // + // 新逻辑行的起始标志(任一命中即切断): + // a) 序号模式:1.1.1.1.5 开头 + // b) 清单编码:9-12位数字 或 B+5-6位数字 开头 + // c) 中文大标题:一 二 三 ... 或 (一)(二)... + // d) 表头行内容(跳过) + // e) 纯数字序号 + 空格 + 编码(如 "5 500101004001") + + const ITEM_START = /^\d+(\.\d+)+\s/; // 1.1 或 1.1.1 等序号 + const CODE_INLINE = /(?:^|\s)(\d{9,12}|(? raw.startsWith(m + ' ') || raw.startsWith(m + '\u3000'))) return true; + return false; + } + + for (const raw of rawLines) { + if (!raw || PAGE_MARK.test(raw)) continue; + if (HEADER_RE.test(raw) || HEADER_KW.test(raw)) continue; + if (/^(元)|^款章节号|^备注$|^第\d+页/.test(raw)) continue; + + if (isNewLineTrigger(raw)) { + if (currentLine) logicLines.push(currentLine); + currentLine = raw; + } else if (CODE_INLINE.test(raw) && raw.length > 15) { + // 行内包含编码且够长(像是完整的表格行)→ 也开新行 + if (currentLine) logicLines.push(currentLine); + currentLine = raw; + } else { + // 续行(项目特征折行等短文本) + // 安全阀:已合并行过长时强制切断,防止整页吞并 + if (currentLine && currentLine.length > 300) { + logicLines.push(currentLine); + currentLine = raw; + } else { + currentLine = currentLine ? currentLine + ' ' + raw : raw; + } + } + } + if (currentLine) logicLines.push(currentLine); + + console.log(`[BillWorker] 合并后 ${logicLines.length} 条逻辑行(原始 ${rawLines.length} 行)`); + // 打印前5条逻辑行供调试 + for (let i = 0; i < Math.min(5, logicLines.length); i++) { + console.log(`[BillWorker] L${i}: ${logicLines[i].substring(0, 120)}`); + } + + const categories = []; + let curCat = null, curItem = null; + + // 编码匹配:支持行内任意位置的9-12位数字或B编码(排除 GB/DB 等标准号前缀) + const CODE_RE = /(? u.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')); + const UNIT_RE = new RegExp(`(?:^|\\s)(${unitEscaped.join('|')})(?=\\s|\\d|$)`); + const SKIP_RE = /合\s*计|小\s*计|本页小计|总\s*计|价税合计/; + + for (const line of logicLines) { + if (SKIP_RE.test(line)) continue; + + // 去掉行首的序号部分("1.1.1.1.5 " 或 "5 " 等纯序号前缀) + let stripped = line.replace(/^\d+(\.\d+)*\s+/, '').trim(); + if (!stripped) stripped = line.trim(); + if (!stripped) continue; + + const cm = stripped.match(CODE_RE); + if (cm) { + if (curItem && curCat) curCat.items.push(curItem); + if (!curCat) { curCat = { name: '未分类', items: [] }; categories.push(curCat); } + + const code = cm[1]; + let rest = stripped.substring(cm.index + cm[0].length).trim(); + let name = '', unit = '', quantity = '', spec = ''; + + const unitMatch = rest.match(UNIT_RE); + if (unitMatch) { + const ui = rest.indexOf(unitMatch[0]); + let rawName = rest.substring(0, ui).trim(); + unit = unitMatch[1]; + const afterUnit = rest.substring(ui + unitMatch[0].length).trim(); + const qm = afterUnit.match(/^([\d,.]+)/); + if (qm) { + quantity = qm[1]; + // 提取 quantity 之后的尾部文本,跳过纯数字字段(综合单价、合价等) + let tail = afterUnit.substring(qm.index + qm[0].length).trim(); + if (tail) { + const tailTokens = tail.split(/\s+/); + let si = 0; + while (si < tailTokens.length && /^[\d,.%\-]+$/.test(tailTokens[si])) si++; + const specTail = tailTokens.slice(si).join(' ').trim(); + if (specTail) spec = specTail; + } + } + // 分离 rawName 中的"项目名称"和内联"项目特征" + const ns = splitNameAndSpec(rawName); + name = ns.name; + if (ns.spec) spec = ns.spec + (spec ? ';' + spec : ''); + } else { + const tokens = rest.split(/\s+/).filter(t => t); + let foundUnitIdx = -1; + for (let ti = tokens.length - 1; ti >= 1; ti--) { + if (UNIT_SET.has(tokens[ti])) { foundUnitIdx = ti; break; } + } + if (foundUnitIdx >= 1) { + const rawNameStr = tokens.slice(0, foundUnitIdx).join(' '); + const ns = splitNameAndSpec(rawNameStr); + name = ns.name; + if (ns.spec) spec = ns.spec; + unit = tokens[foundUnitIdx]; + const afterTokens = tokens.slice(foundUnitIdx + 1); + if (afterTokens.length && /^[\d,.]+$/.test(afterTokens[0])) { + quantity = afterTokens[0]; + let si = 1; + while (si < afterTokens.length && /^[\d,.%\-]+$/.test(afterTokens[si])) si++; + const specTail = afterTokens.slice(si).join(' ').trim(); + if (specTail) spec = spec ? spec + ';' + specTail : specTail; + } + } else { + name = rest; + } + } + + name = name.replace(/\s+/g, '').trim(); + for (const u of UNIT_TOKENS) { + if (name.endsWith(u) && name.length > u.length) { + unit = unit || u; + name = name.substring(0, name.length - u.length); + break; + } + } + + curItem = { code, name, unit, quantity, spec }; + continue; + } + + // ── 回退:无标准编码但有 "名称 单位 数量" 结构 → 也视为清单项 ── + // 常见于措施项目、未编码的补充清单项 + if (!cm && stripped.length > 4) { + const uniMatch = stripped.match(UNIT_RE); + if (uniMatch) { + const ui = stripped.indexOf(uniMatch[0]); + const beforeUnit = stripped.substring(0, ui).trim(); + const afterUnit = stripped.substring(ui + uniMatch[0].length).trim(); + const hasQty = /^[\d,.]+/.test(afterUnit); + // 名称 2-50 字、含中文、有数量、不是分部标题 + if (beforeUnit.length >= 2 && beforeUnit.length <= 50 && hasQty + && /[\u4e00-\u9fff]/.test(beforeUnit)) { + if (curItem && curCat) curCat.items.push(curItem); + if (!curCat) { curCat = { name: '未分类', items: [] }; categories.push(curCat); } + const unit = uniMatch[1]; + const qm = afterUnit.match(/^([\d,.]+)/); + const quantity = qm ? qm[1] : ''; + const ns = splitNameAndSpec(beforeUnit); + const name = ns.name.replace(/\s+/g, '').trim(); + const spec = ns.spec || ''; + curItem = { code: '', name, unit, quantity, spec }; + continue; + } + } + } + + // 分部标题判断:不含编码、较短的文本、含工程关键字 + // 关键守卫:如果行里有计量单位,说明是清单项,不是标题 + if (stripped.length > 2 && stripped.length < 60 && !CODE_RE.test(stripped)) { + if (UNIT_RE.test(stripped) && /\d+\.?\d*\s*$/.test(stripped)) { + if (curItem) curItem.spec = curItem.spec ? curItem.spec + ';' + stripped : stripped; + continue; + } + if (isCatTitle(stripped) && !UNIT_RE.test(stripped) && !isFeeCatTitle(stripped)) { + if (curItem && curCat) { curCat.items.push(curItem); curItem = null; } + const cleanTitle = stripped.replace(/\s+(座|个|项|处|m|km|段|条)\s+\d+[\d.]*\s*$/, '').trim(); + curCat = { name: cleanTitle, items: [] }; + categories.push(curCat); + continue; + } + } + + if (/^[一二三四五六七八九十]+\s/.test(stripped) || /^([一二三四五六七八九十\d]+)/.test(stripped)) { + // 中文序号标题也需要排除费用类 + const cleanTitle = stripped.replace(/\s+(座|个|项|处)\s+\d+[\d.]*\s*$/, '').trim(); + if (isFeeCatTitle(cleanTitle)) { + // 费用类标题:跳过,不建分部(其下的行会作为续行处理) + continue; + } + if (curItem && curCat) { curCat.items.push(curItem); curItem = null; } + curCat = { name: cleanTitle, items: [] }; + categories.push(curCat); + continue; + } + + if (curItem && stripped.length > 1) { + curItem.spec = curItem.spec ? curItem.spec + ';' + stripped : stripped; + } + } + + if (curItem && curCat) curCat.items.push(curItem); + + // 过滤费用项:只保留需要写入技术标的施工清单项 + let feeFiltered = 0; + for (const cat of categories) { + if (cat.items) { + const before = cat.items.length; + cat.items = cat.items.filter(it => !isFeeItem(it.name)); + feeFiltered += before - cat.items.length; + } + } + if (feeFiltered > 0) console.log(`[BillWorker] 费用项过滤: 移除 ${feeFiltered} 项`); + + // ========== 按项目名称合并(核心去重,大幅减少清单项数量)========== + // 规则:同一分部内,name 相同的清单项合并为一条 + // - code: 保留第一个非空编码 + // - unit: 保留第一个非空单位 + // - quantity: 尝试数值求和,否则用分号拼接 + // - spec: 去重后用分号拼接(截断过长的) + let totalBeforeMerge = 0, totalAfterMerge = 0; + for (const cat of categories) { + if (!cat.items || !cat.items.length) continue; + totalBeforeMerge += cat.items.length; + + const nameMap = new Map(); // name → merged item + for (const item of cat.items) { + const key = (item.name || '').replace(/\s+/g, '').trim(); + if (!key) continue; + + if (!nameMap.has(key)) { + nameMap.set(key, { + code: item.code || '', + name: item.name, + unit: item.unit || '', + quantity: item.quantity || '', + spec: item.spec || '', + _count: 1, + _quantities: item.quantity ? [item.quantity] : [], + _specs: item.spec ? [item.spec] : [], + }); + } else { + const m = nameMap.get(key); + m._count++; + // code: 取第一个非空的 + if (!m.code && item.code) m.code = item.code; + // unit: 取第一个非空的 + if (!m.unit && item.unit) m.unit = item.unit; + // quantity: 收集所有 + if (item.quantity) m._quantities.push(item.quantity); + // spec: 收集不重复的 + if (item.spec && !m._specs.includes(item.spec)) { + m._specs.push(item.spec); + } + } + } + + // 后处理:合成最终字段 + const merged = []; + for (const [, m] of nameMap) { + // quantity: 尝试数值求和 + if (m._quantities.length > 1) { + const nums = m._quantities.map(q => parseFloat(q.replace(/,/g, ''))); + if (nums.every(n => !isNaN(n))) { + const sum = nums.reduce((a, b) => a + b, 0); + m.quantity = sum % 1 === 0 ? String(sum) : sum.toFixed(2); + } else { + m.quantity = m._quantities.join('; '); + } + } else if (m._quantities.length === 1) { + m.quantity = m._quantities[0]; + } + // spec: 拼接去重后的 spec,每条最多120字 + if (m._specs.length > 0) { + const trimmed = m._specs.map(s => s.length > 120 ? s.substring(0, 120) + '...' : s); + m.spec = trimmed.join('; '); + // 总 spec 上限 300 字 + if (m.spec.length > 300) m.spec = m.spec.substring(0, 300) + '...'; + } + // 清理临时字段 + delete m._count; delete m._quantities; delete m._specs; + merged.push(m); + } + cat.items = merged; + totalAfterMerge += merged.length; + } + + const mergedCount = totalBeforeMerge - totalAfterMerge; + if (mergedCount > 0) { + console.log(`[BillWorker] 按名称合并: ${totalBeforeMerge} → ${totalAfterMerge} 项(合并 ${mergedCount} 个重复项)`); + } + + const valid = categories.filter(c => c.items && c.items.length > 0); + const totalItems = valid.reduce((s, c) => s + c.items.length, 0); + const withSpec = valid.reduce((s, c) => s + c.items.filter(it => it.spec).length, 0); + const withCode = valid.reduce((s, c) => s + c.items.filter(it => it.code).length, 0); + console.log(`[BillWorker] 最终结果: ${valid.length} 分部, ${totalItems} 清单项 (${withCode} 有编码, ${withSpec} 有spec)`); + // 打印前 3 个 item 供调试 + let debugCount = 0; + for (const cat of valid) { + for (const it of cat.items) { + if (debugCount < 3) { + console.log(`[BillWorker] 样例: [${it.code}] ${it.name} | ${it.unit} | qty=${it.quantity} | spec=${(it.spec||'').substring(0, 80)}`); + debugCount++; + } + } + } + + return { + project_summary: { remark: `本地解析:${valid.length} 个分部,${totalItems} 个清单项(合并前 ${totalBeforeMerge} 项)` }, + categories: valid, + }; +} + +/** + * 判断清单项是否为"费用项"(非施工内容,不写入技术标) + * 如:安全文明措施费、规费、税金、暂列金额等 + */ +function isFeeItem(name) { + if (!name) return false; + const n = name.replace(/\s+/g, ''); + + // ── 1. 精确匹配 ── + const EXACT = [ + '规费', '税金', '利润', '增值税', '暂列金额', '暂估价', '计日工', + '总承包服务费', '企业管理费', '甲供材料保管费', '价税合计', + ]; + if (EXACT.includes(n)) return true; + + // ── 2. 包含匹配:措施费/规费/保险/行政类 ── + const FEE_KW = [ + '安全文明', '文明施工费', '环境保护费', '临时设施费', + '夜间施工增加费', '夜间施工费', + '冬雨季施工增加费', '冬雨季施工费', + '二次搬运费', '大型机械设备进出场', '大型机械进出场', + '施工排水降水', '排水降水费', + '已完工程及设备保护', '已完工程保护费', + '工程排污费', '社会保障费', '住房公积金', + '工伤保险', '劳动保险', '意外伤害保险', '建筑工程保险', + '城市维护建设税', '城市建设维护税', + '教育费附加', '地方教育附加', + '材料暂估', '专业工程暂估', + '超高施工增加费', '安全防护费', + '措施项目费', '其他项目费', '不可竞争费', + ]; + for (const kw of FEE_KW) { + if (n.includes(kw)) return true; + } + + return false; +} + +/** + * 将 rawName 中的"项目名称"与内联"项目特征描述"分离 + * 例: "土方开挖 1.土壤类别:普通土" → { name: "土方开挖", spec: "1.土壤类别:普通土" } + */ +function splitNameAndSpec(rawName) { + if (!rawName) return { name: '', spec: '' }; + // Pattern 1: 数字+点+中文(如 "1.土壤类别" "2、强度等级") + const m = rawName.match(/\d+[.、.)\uFF09]\s*[\u4e00-\u9fff]/); + if (m && m.index > 0) { + return { + name: rawName.substring(0, m.index).trim(), + spec: rawName.substring(m.index).trim() + }; + } + // Pattern 2: 特征关键字+冒号(如 "材质:" "规格:") + const SPEC_KW_RE = /(材质|规格|型号|品牌|颜色|尺寸|厚度|直径|管径|强度|等级|类别|类型|做法|要求|标准|内容|工作内容|土壤|含量|配合比|工艺|方式|形式|范围|部位|位置|高度|宽度|长度|深度|坡度|截面|跨度|运距|开挖|回填|混凝土|钢筋|压实)[::]/; + const kw = rawName.match(SPEC_KW_RE); + if (kw && kw.index > 0) { + return { + name: rawName.substring(0, kw.index).trim(), + spec: rawName.substring(kw.index).trim() + }; + } + // Pattern 3: 括号开头的特征描述 "(1)" "(1)" + const paren = rawName.match(/[((]\d+[))]/); + if (paren && paren.index > 0) { + return { + name: rawName.substring(0, paren.index).trim(), + spec: rawName.substring(paren.index).trim() + }; + } + return { name: rawName, spec: '' }; +} + +function isCatTitle(text) { + const KW = [ + '土建','建筑','结构','装饰','装修','安装','给排水','暖通','空调','通风', + '电气','强电','弱电','消防','智能化','幕墙','门窗','园林','绿化','景观', + '市政','道路','桥梁','管网','基础','地基','桩基','主体','屋面','防水', + '保温','钢结构','排水','给水','照明','动力','防雷','电梯','人防','室外', + '附属','分部','工程','措施','清单','土石方','混凝土','砌筑','模板','脚手架', + '水利','河道','管道','阀门','设备','仪表','自动化','通信','网络', + '拆除','外墙','内墙','楼地面','天棚','吊顶','栏杆','屋顶','涂料','抹灰', + '廊道','阀门井','蓄水池','泵站','供水','引水','水源','渠道','闸门', + '围栏','警示','检修','管线','配电','水池','水塔','取水','净水', + ]; + return KW.some(k => text.includes(k)); +} + +/** + * 判断分部标题是否为"费用类"(不应创建分部分类) + * 如:规费、税金、措施项目费、其他项目费 等非施工类分部 + */ +function isFeeCatTitle(text) { + if (!text) return false; + const t = text.replace(/\s+/g, ''); + // 精确匹配整个标题 + const EXACT = [ + '规费', '税金', '利润', '增值税', '暂列金额', '暂估价', '计日工', + '总承包服务费', '企业管理费', '价税合计', + '措施项目费', '其他项目费', '不可竞争费', + ]; + if (EXACT.includes(t)) return true; + // 包含匹配 + const FEE_CAT_KW = [ + '措施项目费', '其他项目费', '不可竞争费', + '规费汇总', '税金汇总', '费率', '费用汇总', '费用合计', + '暂列金额', '暂估价', '计日工', '总承包服务费', + '安全文明施工费', '社会保障费', '住房公积金', + '工伤保险', '教育费附加', '城市维护建设税', + ]; + for (const kw of FEE_CAT_KW) { + if (t.includes(kw)) return true; + } + return false; +} diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..eb607e2 --- /dev/null +++ b/build.bat @@ -0,0 +1,95 @@ +@echo off +chcp 65001 >nul 2>&1 +setlocal + +echo ============================================================ +echo BidPartner - Build Desktop EXE +echo ============================================================ +echo. + +:: ── 1. Check Python ──────────────────────────────────────────────────────── +python --version >nul 2>&1 +if errorlevel 1 ( + echo [ERROR] Python not found. Please install Python 3.9+. + pause & exit /b 1 +) + +:: ── 2. Install / upgrade PyInstaller ─────────────────────────────────────── +echo [Step 1/4] Installing PyInstaller... +pip install --quiet --upgrade pyinstaller +if errorlevel 1 ( + echo [ERROR] Failed to install PyInstaller. + pause & exit /b 1 +) + +:: ── 3. Install project dependencies (if not already installed) ───────────── +echo [Step 2/4] Checking dependencies... +pip install --quiet -r requirements.txt +if errorlevel 1 ( + echo [ERROR] Failed to install dependencies. + pause & exit /b 1 +) + +:: ── 4. Sanitize settings.json - REMOVE API KEYS before build ─────────────── +echo [Step 3/4] Sanitizing settings (removing API keys from build)... +if exist "data\settings.json" ( + :: Back up real settings + copy /y "data\settings.json" "data\settings.json.bak" >nul +) +:: Write a clean settings file with no real keys +( + echo { + echo "model_provider": "deepseek", + echo "qwen_api_key": "sk-your-qwen-key", + echo "qwen_model": "qwen3.6-plus", + echo "openai_api_key": "sk-your-openai-key", + echo "openai_model": "gpt-4o", + echo "deepseek_api_key": "sk-your-deepseek-key", + echo "deepseek_model": "deepseek-chat", + echo "max_concurrent": 5, + echo "content_volume": "standard" + echo } +) > "data\settings_clean.tmp" + +:: ── 5. Build ──────────────────────────────────────────────────────────────── +echo [Step 4/4] Building EXE with PyInstaller... +echo (This may take 3-10 minutes on first run) +echo. + +:: Clean previous build artifacts +if exist "build" rd /s /q "build" >nul 2>&1 +if exist "dist\BidPartner" rd /s /q "dist\BidPartner" >nul 2>&1 + +pyinstaller bid_partner.spec --noconfirm +set BUILD_RESULT=%errorlevel% + +:: ── Restore real settings ─────────────────────────────────────────────────── +if exist "data\settings.json.bak" ( + copy /y "data\settings.json.bak" "data\settings.json" >nul + del /f /q "data\settings.json.bak" >nul 2>&1 +) +del /f /q "data\settings_clean.tmp" >nul 2>&1 + +if %BUILD_RESULT% neq 0 ( + echo. + echo [ERROR] PyInstaller build failed. See output above for details. + pause & exit /b 1 +) + +:: ── 6. Result ─────────────────────────────────────────────────────────────── +echo. +echo ============================================================ +echo Build SUCCESSFUL! +echo Output: dist\BidPartner\bid_partner.exe +echo ============================================================ +echo. +echo The 'dist\BidPartner' folder is your distributable package. +echo Users only need this folder - no Python installation required. +echo Each user must set their own API key in the app settings. +echo. + +:: Open the output folder +explorer "dist\BidPartner" >nul 2>&1 + +endlocal +pause diff --git a/config.py b/config.py new file mode 100644 index 0000000..c010a0b --- /dev/null +++ b/config.py @@ -0,0 +1,76 @@ +import os +import sys + +# When running as a PyInstaller bundle: +# sys._MEIPASS → read-only bundle dir (templates, static, prompts) +# sys.executable dir → writable dir next to the .exe (data, settings, db) +if getattr(sys, 'frozen', False): + _BUNDLE_DIR = sys._MEIPASS # bundled app files + BASE_DIR = os.path.dirname(sys.executable) # writable runtime dir +else: + _BUNDLE_DIR = os.path.dirname(os.path.abspath(__file__)) + BASE_DIR = _BUNDLE_DIR + +DATA_DIR = os.path.join(BASE_DIR, 'data') +UPLOAD_DIR = os.path.join(DATA_DIR, 'uploads') +EXPORT_DIR = os.path.join(DATA_DIR, 'exports') +KNOWLEDGE_DIR= os.path.join(DATA_DIR, 'knowledge') +DB_PATH = os.path.join(DATA_DIR, 'projects.db') +CHROMA_DIR = os.path.join(DATA_DIR, 'chroma') +PROMPTS_DIR = os.path.join(_BUNDLE_DIR, 'prompts') + +# ==================== AI 模型配置 ==================== +# 模型选择:'openai' | 'qwen' | 'deepseek' | 'ollama' +MODEL_PROVIDER = os.environ.get('MODEL_PROVIDER', 'qwen') + +# OpenAI +OPENAI_API_KEY = os.environ.get('OPENAI_API_KEY', 'sk-your-openai-key') +OPENAI_MODEL = os.environ.get('OPENAI_MODEL', 'gpt-4.1') +OPENAI_BASE_URL = os.environ.get('OPENAI_BASE_URL', 'https://api.openai.com/v1') + +# 阿里云通义千问 +QWEN_API_KEY = os.environ.get('QWEN_API_KEY', 'sk-your-qwen-key') +QWEN_MODEL = os.environ.get('QWEN_MODEL', 'qwen3.6-plus') +QWEN_BASE_URL = os.environ.get('QWEN_BASE_URL', 'https://dashscope.aliyuncs.com/compatible-mode/v1') + +# DeepSeek +DEEPSEEK_API_KEY = os.environ.get('DEEPSEEK_API_KEY', 'sk-your-deepseek-key') +DEEPSEEK_MODEL = os.environ.get('DEEPSEEK_MODEL', 'deepseek-chat') +DEEPSEEK_BASE_URL = os.environ.get('DEEPSEEK_BASE_URL', 'https://api.deepseek.com/v1') + +# Ollama 本地(OpenAI 兼容接口) +OLLAMA_BASE_URL = os.environ.get('OLLAMA_BASE_URL', 'http://localhost:11434/v1') +OLLAMA_MODEL = os.environ.get('OLLAMA_MODEL', 'qwen3:8b') + +# 豆包 / 火山引擎(字节跳动,OpenAI 兼容接口) +DOUBAO_API_KEY = os.environ.get('DOUBAO_API_KEY', 'sk-your-doubao-key') +DOUBAO_MODEL = os.environ.get('DOUBAO_MODEL', 'doubao-1-5-pro-32k') +DOUBAO_BASE_URL = os.environ.get('DOUBAO_BASE_URL', 'https://ark.cn-beijing.volces.com/api/v3') + +# Kimi / Moonshot AI(OpenAI 兼容接口,支持 Embedding) +KIMI_API_KEY = os.environ.get('KIMI_API_KEY', 'sk-your-kimi-key') +KIMI_MODEL = os.environ.get('KIMI_MODEL', 'moonshot-v1-32k') +KIMI_BASE_URL = os.environ.get('KIMI_BASE_URL', 'https://api.moonshot.cn/v1') + +# Embedding 模型 +OPENAI_EMBEDDING_MODEL = 'text-embedding-3-small' +QWEN_EMBEDDING_MODEL = 'text-embedding-v3' +KIMI_EMBEDDING_MODEL = 'moonshot-v1-embedding' + +# ==================== 应用配置 ==================== +MAX_FILE_SIZE_MB = 50 +ALLOWED_EXTENSIONS = {'pdf', 'doc', 'docx'} +SECRET_KEY = 'bidhuo-partner-secret-2024' + +# ==================== 生成配置 ==================== +MAX_RETRIES = 3 +REQUEST_TIMEOUT = int(os.environ.get('REQUEST_TIMEOUT', '180')) +# 大纲生成单次提示词长、输出大,适当延长读超时(秒),避免接口未返回即被客户端断开 +OUTLINE_REQUEST_TIMEOUT = int(os.environ.get('OUTLINE_REQUEST_TIMEOUT', '300')) +CHUNK_SIZE = 2000 # 知识库文本分块大小(字符数) +CHUNK_OVERLAP = 200 # 分块重叠大小 +TOP_K_KNOWLEDGE = 3 # 知识库检索数量 +MAX_CONCURRENT_SECTIONS = int(os.environ.get('MAX_CONCURRENT_SECTIONS', '5')) # 并发生成章节数 +CONTENT_VOLUME = os.environ.get('CONTENT_VOLUME', 'standard') # 篇幅档位: concise / standard / detailed / full +TARGET_PAGES = int(os.environ.get('TARGET_PAGES', '0') or '0') # 目标页数(0=不启用) +PAGE_CHAR_ESTIMATE = int(os.environ.get('PAGE_CHAR_ESTIMATE', '700') or '700') # 粗略每页字数估算 diff --git a/data/attachment_section_rules.json b/data/attachment_section_rules.json new file mode 100644 index 0000000..363e491 --- /dev/null +++ b/data/attachment_section_rules.json @@ -0,0 +1,22 @@ +{ + "_meta": "附件类章节:stack_charts_only 为默认,叶节点按 diagram 意图栈只输出 [FIGURE]/[TABLE] 块、无叙述正文;full 为长文;single_chart_only 为栈顶单块。修改后重启生效。", + "_field_docs": { + "title_regex": "标题任一则正则匹配即视为附件节(Python re 语法)", + "table_hint_keywords": "标题含此类子串且双开关均开时倾向表格", + "figure_hint_keywords": "标题含此类子串且双开关均开时倾向图示", + "default_kind_when_ambiguous": "双开且标题无倾向词时的默认:figure 或 table", + "attachment_leaf_body_mode": "stack_charts_only:意图栈只生成图/表块;full:与常规章节相同长文;single_chart_only:仅栈顶一块图或表" + }, + "schema_version": 1, + "attachment_leaf_body_mode": "stack_charts_only", + "title_regex": [ + "附件\\s*[一二三四五六七八九十0-9A-Za-z、::.]", + "附\\s*图", + "附\\s*表", + "附\\s*件\\s*\\(", + "^\\s*[\\d一二三四五六七八九十\\..、]+\\s*附件" + ], + "table_hint_keywords": ["附表", "一览表", "清单表", "表", "统计表", "明细表"], + "figure_hint_keywords": ["附图", "示意图", "平面图", "流程图", "布置图", "组织图", "横道"], + "default_kind_when_ambiguous": "table" +} diff --git a/data/diagram_intent_rules.json b/data/diagram_intent_rules.json new file mode 100644 index 0000000..f8d3119 --- /dev/null +++ b/data/diagram_intent_rules.json @@ -0,0 +1,51 @@ +{ + "_meta": "章节级图/表意图:标题与大纲窗口关键词计分,阈值入栈,按栈序拼接图示/表格生成规范。修改后重启服务生效。", + "_field_docs": { + "threshold_figure": "图示倾向分达到此值才入栈", + "threshold_table": "表格倾向分达到此值才入栈", + "title_weight": "标题命中的权重乘子", + "context_weight": "大纲上下文窗口命中的权重乘子", + "outline_context_lines": "before/after 为相对匹配行上下扩展行数", + "stack_order_when_both": "figure_first | table_first | score_desc(两者同时入栈时的顺序,栈顶为 index 0)", + "figure_keywords": "字符串或 {text,weight} 对象列表", + "table_keywords": "同上" + }, + "schema_version": 1, + "threshold_figure": 1.0, + "threshold_table": 1.0, + "title_weight": 1.0, + "context_weight": 0.6, + "outline_context_lines": {"before": 4, "after": 6}, + "stack_order_when_both": "score_desc", + "figure_keywords": [ + {"text": "组织", "weight": 1.0}, + {"text": "架构", "weight": 1.0}, + {"text": "流程", "weight": 1.2}, + {"text": "工序", "weight": 1.0}, + {"text": "进度", "weight": 1.2}, + {"text": "横道", "weight": 1.5}, + {"text": "网络图", "weight": 1.5}, + {"text": "平面", "weight": 1.0}, + {"text": "布置", "weight": 0.8}, + {"text": "监测", "weight": 0.8}, + {"text": "示意", "weight": 0.8}, + {"text": "应急", "weight": 0.8} + ], + "table_keywords": [ + {"text": "一览表", "weight": 1.5}, + {"text": "人员", "weight": 1.0}, + {"text": "配置", "weight": 0.8}, + {"text": "设备", "weight": 1.0}, + {"text": "机械", "weight": 0.9}, + {"text": "劳动力", "weight": 1.2}, + {"text": "工种", "weight": 1.0}, + {"text": "检验", "weight": 1.0}, + {"text": "验收", "weight": 0.9}, + {"text": "材料", "weight": 1.0}, + {"text": "供应", "weight": 0.9}, + {"text": "风险", "weight": 1.0}, + {"text": "措施", "weight": 0.6}, + {"text": "清单", "weight": 0.8}, + {"text": "计划", "weight": 0.7} + ] +} diff --git a/data/exports/20260420测试海东技术标_20260420_180450.docx b/data/exports/20260420测试海东技术标_20260420_180450.docx new file mode 100644 index 0000000000000000000000000000000000000000..99fc63886e30b08999989d61d616a83272f81d26 GIT binary patch literal 1879608 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

Qhl?M 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�$0w_dvbD1acR|0!;H(D^8<~WZM8C9cYPm2 zFS}K(zEh1)7EupWHB%%DlzrW-#gl86GzV=tJm;{3pS?op1VoJjrJ%ezcuOUNsCO;_ zbGs|B%dgxJ(rwDR26eqQO$r@y5A~UpOTC2V2rEpQ#^_2@3d8I+GYCUBsT~7+cdjPA zbR7+ct<$02RP^GD4=(O5bJVo|4-DPTbhI=`DEX`6eMm5aZq$>uF4U87-dYEc8uJ=P z$PD?f#ku8vhCMihS9)*NEx@{U@^9Wv?;OB}8Zn?W{$PU-52d=5boXi-Hq#V$O}w#e z+5lO5r~kIk@p9WQ=RE<*)#|?>Y{K@!J}$F{n>BA9R|Xk73-vG zugcbCCE8QL151)|{clLA4{>{n)p`KeQw*93(&?HPXrlx3;`PwkR3~vyvVECq-3s6C zO4%kR$)1C+eMl%bO`+WA>QLU!xIe1$N4sinSm$XKJ*4Z!`@;{g=uD5d0=($B(|0WO$)DzAq6k}n zHkJEkbZQcrG#h|PlR_B%V`0{A?rwz}AT=Cckq^f!mVzrs!4|z4rh34>zOgBhB>EA4 z|3G9n-Sek5@!XaNmwE79`ShNd0J4lWpq@jRL#c>9O+=0;Wb=ebXdP1IC6a)07udvwFvsYPw?3DW@V#im)w&X zvI#G}|kmeEQ=| z>QhTgCg4fT-|>T`jlYh{<`0cBH41z?BhLaL;>%q9WUFz$^Bj1p<3LtLiHkD>m2z4#=ZvctEFWVBBtJ7ja`UA#LO9ZXp0!>IGL zSN0kpoOh~n(&%bA9GE$IsxsKGe*24#zkQY>7>4^p67K3Ij!JS;V}q=X<%ofWi}r;w5}r_Y1bdQkuzkVM(?5QnfMnsN(!S)ZJhNL%%4)jpKk zt$>A)_i2i>C2zcm-9G@6pdq34M!R=fZ9vl_cTSv1++S{Np-fLeC7@1(CIy8&}Z z5o)5%Ii+|V$glziCO<`g%*I(R^NeD*GO*~7D`U}jt+9}l$8e5%9lXPE!rtBVW8F~J zL;X$1n?_0<;IWuzu+l^M#zcC!Pz(%7pm(Xy*2F`#g8=U}8kd&eVFlEiMflF$mF}YD zKKX|cxOEjHI;UQSCY!gh#1qxEhGlBMocTYkOf3gdiXKLcT+PCoyn>C7fFWHg8@+S& z{!OeH(5=zmOrLv%($@ksK^c(dnDOI6=Gr*p1q7dXY$-Stjsl8j{BE* z<0-HV2B|EmL@ddwN~MrX#}2&M)Uy16_GX7=iR3Wi@&yu4^#T%wMgtw8f;13WOB;`O zF$tFe+_=_dfQr?OjhfjqW7Q|vaLwEYkSA}C|*=B%}fA^ceS! zBTkffP4e!mvVG=ylb?@fRE~i{Hguf`imYAe#;bama!V>~q}36t^`tH62*MH=T9F>X4*^i>E{oUVa<`Ah53=3rDR}jwlqF1 z`kr*T>%Bp~599rX_I#xBy;|+Lm`3{RC74n#KYvO|=SRAlwlAO1KIOEqwA(MJ61b_9 zxyb6BLyIv;dnQGOlMRht@0D1gtx^=v z9$unE5?zY5FIKnPsJNg$C%LCWNE`C zuXBF8gP=RDycJ6&XGKjRM3TBe!Lwm9XB{Q|7Ba=94Q@BF@}-_76wC3~vzGKd9?X%O|;Jxv$g9jiJN(?6n#8ZSBWrNBlSK8{(-kbwVjT;+g(X z56?a1s8YeylECO9OT0JGL5?;;RJP(6>|^oB;5{PwJg7iss1<1VCp!$cwy@*7e}#`7 zUDo>w*hwWs=2w(ALmHm4hT_#5eu-Jw5rGIy_L-~zup9v$3JMbWyL zga?F-T($`!oL9#|IsrXB3b@1Wso%nhKS1NfloY(Op7_I=|>pq1~mR9AC zfpSkpM5iowG<%TeT3k3ziF8Kj9i`OOvEDnpDy=y#97y134Q^GF%e2 z9GzxazSdw2c}pugXF;np_qzaE?khyFWG@X9UH;eXg#3>l5Si!g6=u?G5oIxsvTSmGn}?7^ zl6#jVu4|821jf}Ql=(dW4rN8T(V@+!#xk~n#XAj>| zlaTf(H^Vm`_JY!U16%X_LGnS&rQ(IG8R<;pW&neuHT^Y# zW_#*-)9&!YRI1C}3b48GTzFH^J7K$mjp5+lJj{BY+c8GphTS8ME=^?6Ts5Hh)AZ3K|A9iwQX9kWujX_BKjfg=Vh zSa`T+ZHIf-cDU}g!*wP1L7xJ^I>aRqcQM+}QnqEe{P*OoyWxd>P;mX<^?{{&?NvOK zRg9>wyD8_^lseech&B^dXA>kV46}OP64Z@pRno1;^5_sFkIewCJt7miaCcpnwF3OM zX~hAT$54_k$Z~5o**rMf8oE&2U6SuVAuB)^mJCVChUd&$Acbv*}f zMk05pW??LvLGsdNV{aGw1djg8`aV08tnbH%EAi56=s}gXeAS-abi;6IA>LQ*8!HD8 z+NvDYtG7f;;%2{*)qaeuLE5pPVIZ5>X)oKP_dkGn{7Ba%>&lk)C9xvy(GiVfE~#Cka3uf69Jn+O2|$_>x%Z0EJ3i3#llZDRv*d{&oS!J#K=N!K6|>5+ zk;s*XPujbWCy4IwK6G*$k!<95mGpEa{LG0cG8 z#N|<0yIX)g!R;mThd*&w&GQoe!x9NH9n|wi2VwmLzz>y^pgcChs^SvYxktLfy!Y;y z==yp;w(>xnmVt+fGZb#o?EptWxWANDn?|d1C(ZdI)D#Abh8!7TD1X+1EDBW6(La`h z=g*_^R49Z_-D*f>4ZMqX*QldzX-IiUQV5s^-;QEUDa(?$tY1+Ol(KjL_deN%!fdS{ z0;8=4mB?ByK%X&D_w`FCz&cPlUJvXmqa|>X8aJ=vQ zP7WMJc{Pg&l7iY#p zB$;n{K=Ab#)-!01IHC^&Kn9i29e@lOf(Kxn50YI9Ticm zv#tdF2WUr1GX(P=FlB!8ZE$NC#e675Zl&GOV#>HmN$=v3bKye)3AMgioK3hXIkL_ zT`xIxy!^gNbA?j0tQrzZSnIb2KHEE#NixA%h4rCP%^Or&C3(ST0sg+&YNoPwZFpg? zZ)fvGgBk#vlnj+1!-FG07>~|W*-7L(D9+X5YV51^Atl2k!^-QI+vrir$tahnJ~|bk8nbh{Q+|Xce5cC4q4Fdm^tVU&qVu6UN)86 zOr|@nVxYT!&8@&BMoz)pW-2r)BLKj(W2v;NI5Wt*<|P=W^6_veo!%xun|6+k9>z6N zc&}#b$HZqn0C{zX)DUPLn*4!8K+ET$P@P2WZF;_55arv$?w2p0zVt~(AUen;+FW2& zfF1gnI*3fZQ!P2LG13mD?;SYQ`6*bS3{}W!d&E<&>qi~VC+3}egOQD|Ow|iJFz=h2 zsBhMu)L-pFlXRvgi!r8Lc|=JtC0NguBJgO0+V@E*O3O;!!R0dK2Al>d81}m3i~A`TOb&$ftrD6%2vJAJ^tEO3ewN zV#kFV^3>hUmU(BW4jag;dIrtc3-!GTE*>r39Qrzn5AzFF#vGcChYOx8*^~O>X_{x( z$c{$YS=qIlv!jXms{G9j7kC1-Uc#!s)W?ukb`X^E^HW^-W%C7RNyA|ab%PBzyb#u7 zKTUVnPnI8;cbON7cgo?!9mvUA^Ow!%|4k*jMqv3)XSnOJdI5FF2ekb&>dDJozPsIP zZ1u^)6YZ)`tM`Q4oq$-DVq{^PGCU9!QAux3+0|_$N@F4hI3q}b2di@G z^0`!JH^sHqu!>Ke%XIzCC!eQNnJ!68n>9(&=Ihl<1N6zhp;O-eREah2h`;#R)8BSv zx_UCty*@Sz@A%H`G{4Xon3ru(x4t##);O0nXhlL14)@DhJ#S#kR#@{qps?4Q_1^t@ zZYw(I2UcAUC;zDKA-^?T@kUp7>UUp%d;YKg_SfFpx0m0Zzr_C^d9|a)^}Fb5-|^=l zs!xXp>Nq2m){3raW4J&Yyt;)!>{+s0T>)GW-f-%V5g73K&p!hap)}l_ep7$d+t}T# zuUF-yQ5`?0nbfJg``M@I%s*-@yW7aWfr4I7N+JghJ1eL)%CmL9(0B#vRFp>t*~B%j zrl^G{v+)#p9V}eO@JP&2Fo($bRGYS|-FJUNyR9)zI=u zR4hwwX^>=>!Gh{^e89%UljvqIE&z=oF)0=gZMtAJ2Y;&177TrY)>oU^h{tz<@QLU1 zfc{RulSsN-{}_@#3{taRmMu&^^<3W==BHlxukcg#tzp$6$$uPvDxC^Hro_`Nxti#9 z7PIE~fV&^$xY!&Ym`6idd07nG;*zAy6&veq*pr2^_+ZS?4r4P)(8?m;eslanN;G$_GPT{f}H&9I?lIjqy&17%M_pL3fGlxLOw5QVVQ z1ND7Fai}po4d`F*ZGE=Z*gJ4KVwH!A!9aimPO10EJYr)Izmjv zr5S()R2qV=4yfc;m5ElIlmMNFH?`-4ePqIA34&5TrY!@#PdYdKpWZ&hoF(+c8*3M` zF`&r5K5umgZ{wiJv-+svR^2<_4LWPYrK$|p?vEO|(fYs=v$00s2B5!6H-dDP1fA2v za+ol;W-SmUmEAS0kA)o>y!EZ(BVHSx|EL4t2S`f-|6n!C(Q8GA&&$p(v6vba93z;o zR3JH{{T}e@#^I!6u9#|7_TsPE*F7>{Ir9jt0G5Pk==tq1;y?gWy=4`N+;Y^FU_Q2{ zRvA`oiprpx>qNQ1=^UJ>%5t8P*Qw5DD%^=kqwD2&&YM}K%v5gSXbHJH6ZF763qvWF zV||-T187D*-iajjt_+~qjfs$#xHy&i^K_3{-ZEa6PyYQ+yH#sBzMfZn(y4Zn(6;)^ zCc>aE|M62_V5VqubGE;6JJuL{BZ)iT(yNgSa~tED?Rd^-uSUUXp?)}=H)a>OJb-@i za$jRr=J5*d+_J8Q%LnvibQD4U#$wk#$^xi+9!rd7?{4h zo<)kPMQYjep14 zLkMb~dn^xy8|0I+OPcR({{SdLY`h23Zme6ePoqJ8y60IJqt#HU+H1q#x5`n=DnodY z(E_Z^o7# zdg44HEw>0XZFWqI6~#q(Cbd8Whn(igdwxb z^u2nh6Y+ewHTHZ2LHgcL>LShU+)K~kF^Xsq=;;uWDsR)m~vuuIX{ zHB%q{i&M4WImqc=R5)o7zf z%lm^_nMu~&_6EAp-E%dPf52Xi02fs?%sus&U>FiMD6A=<@hJc(3mdc|M;0LWQk!}} zN^Y;zmro!srdTH|7rBi%f6gmax5Oiu&fhNLX|MO2Ux2^UGH;J3quc?onObt=KV+!~ zBH*I>)jxdIm3ro%9?F%A)p%LLaWgsA7Ft)EhNP)!J)os3*SrK$rkXMN z;$9n=n5;7r&1uIfcl56Ih$%XMlTQ7pBlIxC?!+=u8F~u|j9aGc{;p~Dmo3#{AdV58 zKWj{vj*2S=JAtC^#A#!H;hwrr3uDpN1nP!EJMygKi5uwM?3ZQpv5J~Z#NhONb?x36 zHu5Gom8ss)l0brLj~DegZ>9^xTQn}p(XhI8IEA-lh2wotWq&g{#_?6;Z3Ve>l%JNn z!QvSNwuS&_m48Tpz;+seS%^Yqo7EEFU3C~7l=2XZZE?RWD{AWz*y@^pGu%UPT_#0! z1RsP(?@VL=9PA<#rTPlMXU(Hd9bK=&hg25Bf%$ki2lVe{0f^ONS$&^W$Le|~&YuvR z!)Ml5ovOc8eZDdUJCa%-T>+ETRbsu9ZF&-+bds#Gb85Tj)O>TT0)*Nm4~5X8+nkIW zN!%3s`&ef(5C*pg1i!LM@?I?HUCpVb>x3iLN_!m&cT(XoUE7m}Io=Jrci-uNU|C*9 zA5o30#Hj#XFB3K9_9Ti*bjYxYx@bOFi1G*ZoAtY^X^s`h7RpYpt5Ngy4J~I3szinr zb7T0-mg3Jzj%!WcBI=LPU8*3+B8CvSC#Hc?v+Bo7b{$ z-8%m)RjRmBz} zP`&{IIz*@Q*Ev|B1UEM?J6`<%vG-=njh$Dz;H&UP5mliO695xTrmv1H$+BFQO2_G; zPTf?v%N=EhPx?5HtE+Fp0VF^I1m_8yha__#!Fd2kFhahs^9~aC25`k!==H5{{r}zo zQ&sNhn|8A!6e$t}HumrjYxo9&x)t}!XOE>I2B;%soeP%-4Kyn|X0%n?u{lHN^zt4- z=`8IL`mWZ_MG#77)>!Q#w$XSP<#jfB45rOmj+rDM$sF@>b zp~lMqlC9%zQ<%fAcw9lE74NSS0B#pixt2VrQM)Fs?NL*}-cQiT>&{DRVfF(1UG@^X zW$&XrMCfymOR z_JhhWznIw3Hqu3PDxko$3|w%?F77UuL4{Dbw+Ru;WcKrad&%RzJ<6M5rqxl1bv9Uc zHPQW?I+jGB4K^1i!_|J&cCSwFYBwnC4&KNHm+Vd|BnR~Ex)Q1YPjAPFSFPR^P5USj z)muPnzHwvPHV^Oaid_VoxXzB|)~r(Tu&D4$g3NU|ze(gcCfCYjYjz~QhP`(Z^(5hS zA7oGP#g!=(?zI;wK>}A?PHu7~V z)oY$TWM7X4+f~x7%&b!U&~SznY>cb|Y;tabMQUIo&Om-OlFk1QF2zJ{4=5}x(UK6G z6$F-YS7I6y*FV=h8(l5~hsnf}St3jD@L5=yX=U(zN{WtDR6 z(C*4y>%1v|*t}K+Mssi<48+Pc>APeX_%57DM3jo*^-NHo4@Ro$x(E~oF&Cu@m7j@@ z)t=EL=Sph^+JmP3uXR!~ZaUgUGF;F$SG!d}UbNsuJ!3DxuU9481i8hS6q0|8l&Hz( zH8Eu>rhoP1Z(e?L@ppgAP=c%sbPNjpv?DfgwdJaHdh;0x96Wo)SFjzCeSlAreM1j@ zCyHHASIgymD^v0)yEJS-fvh_*Q%J5r0R3pX)L7d`j-efD zK6l{tv~3B#|M-;aak&|*1dy<{iuae{RvvcerfY=}J z8scwys!Fx99g#_y< zjC6D0flh;-Ph_^@b@<>(oA~`#*j(K$y>C~ij@iVdWiI>SP8xpHiBR3(GH*I3o=QYR z`4M&PvoS;(?jb4kKjwaOy%2N1Nk#5A_bQQ!Ij2&qsEaSw!^J7gthtL;xy~jxo}{dD zwH%)|8d!d=T^*Z8rVD72-Mwk&t!e8PwjtBDM~NNh&RXU!B(zwKZz+^r`2q?P)J_I{ z>*D^dY=l^0o}55+rFgvayfap~99NQ0Tn?Ui3&sqFx1f|St{l@OEyz;ULDf9MWQMI)ZZZ7q<%aOA`=jS7uIAThHPl&cn9M2EkY zorx!hfU&lXv{p6`jRa-m4`;Uk6(1=&MY<)_gXgY5Ym}g2f7ABZ&3SOdCMLC5+27c$ z(MZOMb_$be42^;h+#|GbKvkqW=%H4D*FKrIyW&#;b&5;SEO~OZ!E(^Q)Yy23F`gT4%ocpE zVEf|bL{M5#rpJbNe#ZE7X9B5U%wPkL$&9(XzU*m(kYPJN9OlWAI_j%*__dHv{ve4< zl*pkn6OLD*^QH{Cdq;G384nszdMdIea#8ZXMvY{*jXqC6OP^tDV|K@cv7%MChFtb$ zm>AP=5nvhXM5(rgB=L}htn?e3E~n;R+T>uK9i`5D5K%GWix%~0-V@~C0Har%l$8x< z>rT~G*R-N9d7bL)T3?>yU}6-=m%}4sd>CGt2;JrD=4DBH3z1laUjSHnWG(XX&Mi|Z zV|8MG0ZY6qzDjf>2`z%9{VfTTfN9i}3)~w8h2g=+>&L|riXnPV_J=?n9j|#FHu*z_ zM)T{hW>q9G{yXW3VIDxF@MN=5y;3|`4iv{i_NndYSURiG7Vd!Gx5f>so*~P=93(gq zn{#Y0Hy=e$cLVl&d&qn3p&+C<@SwD%aV9X_k{Qb`-+|$VAcC?t!sC2+kqM8`4&nv3 zsTWL)2icq~>Uw3e{+Psysiqp&P#4fj>tI(+RBFmSuxEVEEKa0>KcK5>d5t*0w z^yrgaDuy}pZ{q^M`%mg9ngT44Y1|RlX)wv}-K}8w#E%B5&4g!{;mL;QPIH}V-c*9Z z90j7<>V<3*v||)yjYIAMe^|^v4=JbRkD?GGDVs++DLWpXH{(<>R-j5EgqLcNkiEr> z6vK>gDH$e`UD1C6m?nc3d`V^`W3imeB|v^yP#9h%1uiVPWIU;Y zdWdXYb%)=FvuY#%>n>pUin1!lufuI5QwT;%a=!SYkqudR5cQ~=8um+nqV0<8vSDF; za^EP~9va(&*JyA#Y1!M({J~96$p`TF7W)Jkf@qqCj4jkbW{C^OGBFayyB_o z(P6qy6z*{z9i|LOz*S++j-aY@LAic!uIC_3*-ob!pfc!QqbXqGs%_fLWJ;RXN%o}K zKjSz5xELA&06itrAzRb+$2+6ighTX3>qynIKjRp>yPfXJaHqK*LrAP)hOHfCer5B} zQB@F6&|T(fCxxaXh*ac00ErQr--mrzOZ7ZF3CR3iw=Nat3&Nb2_CgnoCf!;FZ{q=8 zR=qPeR1&aP(^zX68y2dw>-D&|7O`P?MY0yzmR9B!<2l!ueg$ArO!h>LLh!8&c3ovn z)uXp7-zOC!15#$CT!71=&HA~#2#m7q^V{kkg&1uQhxz`RYG3*TdnD~t2u*jHe9>OP zJhq%FG8d_i5D=06Z5HmwN@}%yZGQ{>8afQfJk(l3+>8RmaqZ+wAP?5OCbwjh#|lKO z`Z38=$$i;gz2F;5_Z$T>av$-GTz==K<5jqk3oeeCpvTFDhn1-c>)A%hQubSO4q${Cs2H>Di+b%u(Ql8o1Ny%H~zXi4~*RGH_b*R|*a@r*=#;ATTzr;?y!6FoxySXEPty z6OG`g)Tu6w#$lcWu@az4ZDByKRaMMt=m?@RjiZw`B$?cK?M8*8XF+|#Mr375`}swv zEGk?(Rhs>+exqZ@MXq;}9b)cKTutV``ypoBMakGZ7^)*!wA3trLkDQs}|%+!^&G+?A5}<7w?^Ljo-n8 z?7qAw`m55^=*6lyg}3p)Ql5pBI8Uc)P48pS7B`eKGr(W%5*ALv)&B5s7a8;PisxkA zM>eM_S1*gY`wF&^?=DvwHvGo~zb&?g%{NZp(x(xX>dZtdd)e4LYGx;zOBpXi3-Q|RIT++F z9-<6h-y=HX@dh~Y^@}KfjsRQ2xZySP$BmO(d^u}ni_q)Wpa>74IxD}*xN99RgWXUY zl3#UKQ_ZAH3`wOCU%|wz`bv(&Hw2lwyaz6Il46(3@?bIPHIWZjHt<>PaVa9a$~QzK zZg;r3o2O}p4{sTpAmY-MgR>LEd=2}tamVWi;nq=Wb{Pn~%rG^Sn#0SODDGFnJP^O_ z4nQejcdAuB*CAi9$R@jkPx;p`RRacyas#czPex}m7PDYwJg8rUV_>-jV^cwPES#(0 z=c^O2OZ2)3G&72MUr&$9L~SC(blOpdH#07cT_H7+XvSlNbj>fq*-~@x+!&q53kWV$ z2hOdr1>W>VzTDcl#i@)h*rK5*biaaq=Pd43Pyx&i2*vN3^|aP0N)ooTMaEaB!0KEa zNEj*W6&~K?P$-EHrS9E?ZPq8`R@zyqD6=GEdcOvP>~Le~RWoxEzeg$^w$mIdGeT)* z2FZ4_Zb`eM9b5M}+LiXpG)+c5RBxK6k&@c$*H5>;6>O0yS5g1dZiyw9ZWU$A(0Hk% z>*4DS-0ju3jr<7t=ROMK62#0Be7lu8HKS1{zFi2*W*OStej{@us^)m2)a7_vutCDT zY-+3wu=n7sYGe5;sgoOp}bp+bsm1KbSO))S=!XwWQ?o%B`FESRuWuwwE8D}(;g5g!9 z1}KkTmV9TPC4YurmJK?V$`nkGFW|%FgM-yuZHN{8+7ox-v;sC4r?tw_8*QD6bEdRj z57#e@1ACs8p^`}4UA{pjD(3MO)Mq8y`}{?+@8`fx9oJ>8`~0gHFJw!AQ;hd#G&qEw z4Bz$5QQym#A11offBd6DxmE`dt=pe~>hgcf^S;5-tM(>o$J70jZ%=-k(LGLHk}cbg zkdgzW{Kv!F3|2XPha7~)jycq(_Qp&Lk)(h5>TZuHqd$j7l)0~#Z6o`xHBt!bnda>b zo`Gr_f-dQV15gWlX=a7(;W{IE?>Gb{vYTbN6CRvP!t#^PexsHWBK*l8ZiAA`&_E)gwry-R9W2NB|LF8;pjX{tMoX6VhhgvyPL zEMn&J1mB}=#VWKh`j;B@UHnNxz_$wwnBiF_w>qypEB(1KKBAhpACQj4nyefX@|MHn z{>=tPQ(QfiXuWXNN)hT_v1b3XggjqXV^e+TGmOq-PhylniTTX653+imcK3ey^{*AX z25>eBfYhKbByh3__^N9Bx_S;R4XB7oXUjkO&*$OPkS2IHIm9~ureP%-*`&~Q(9p;aW+3TRt+5aSs%BAnVPI*EC8mhBb-bmu*+e4 zbbfVm0*`o4@%uf&Gt>o)mH+uLS#ZY|KDrl-+{)a6|7d$7gY|coO5?aW1dbBsu1vbT zU2B7dd|X@h&-2d|72x2jcz1P{O$QkLNeG-feBSc`8v-&F9tx2gHdf=ZH2d(KV#&TC zuRnaBDru zkFSEwJ!_TKFM{$-BPW+U7L+D`@k=D^k{GUzu^PblDx!C&u>!i1EXQ0fDA@fx)z>TE zlzjfYFUU<{aX*>mm&pMnCTf-ICf*}wDZ%w``IqqO7QO9X{E_Vs5*0$YW&Z?HZL&!VFNayi)O?=jD5*%ynKNLcp9 zjK(6t|LZE08_Nr_amuCKJKj@c;~gv|wq_ffhmUuuF^g5^&{4f6ue)M~#; z&8o`Wo#VQ-DNkb#8Ny{&B?XY9$)gMNZyW3V6q5Em1K%xZ%&bY)!}frU>4PO!rp(-% z=QFw|5uK(P+3>WVrO9uHr)a(5FuZuBd3qYoUf@sayCFXW<26}}@PkB2V8O(`C3|6j z5T*Fy__d|R{uDx(`cR+ECawI*7?CSS?vic|oP~#_k8$?ZTM~^R)CaC04()RgcPkxu zc;*N)3NpJ58Km8i0G@sB_J=|^9uKtjfj z(7d^kQ;;MrmHtZEibe-;1~{p{ub%v~Wx>2{+;CePHCZZO{JcjNONnU^O)qXs1jY}B zxw#j=W)dl>Z_L4`5O*<;8=vrX|0Iw;%2GY?R(X~?y$NF^f>CAb?RM(7mb<#}fk!pj z-u@*(cJr^9wIT(GA6xO-jpGH#R=9vL*_~oQh-F8IfmtF_^3}zm>H~PQs%tu-^;l!d zmuO;K-7+rf)0_<4%*-0P#`aHsVpLN^db6 za2Cnv!p(bU0zNu3y)U;>W7aS6S$%9U*a1}n^h4R@um{V~o0tq&cA7V@v}81i()Yy% z)H^S0j^Qi*E9VOvGDs8HaT7gm57!n1)0Nf@w2=9Q@tEOhYjgg~USvv9 zd%_Z=g0&=c#j^0)_bM!%aN$BYHxlg6TRl{krP)&=pD_|EHGVDIYizqU2l9>OYj#!H zjg6=&h8?UKGvFn#%B2V7r$gr4O$bjQd(GAXx1lq=VbeN{wq)u z{!7o(#2+vOdNpEw`di+_57X{fJ%BGhr!?Trw;_zzc1)`=hA@V*_hL1a?~+AIwLehW zSEwE<6YI*k}_>Pl{Dl! zM@%?pEc!*HoL$ zY`JAl$e~j>H2ZKHuVt+N?B{>S?gXv8&6V7I=W{>%;;Ya80T5-d&=gO_JV(aE>axTE zSZOBS{=<|1_T(R*{1{DKgIMMHWj(5}g0;rB(WN2DE8^$KP?9F#IJ~w5>|aN}RB33Sgsv|8 zOOjU%`bq%S_j;?C;;oM3f~ z2ugJM9b5K>F zPslCIKuhfv1}nwo=deka(dz!iFIgD~4;LH#mH2Y%^HkJKp7uRYeU$n^Dv|8LMv#`} z(ALz6@%X0E)19zoQknXkp(thQl~{X@bgA)?WFqkaZa4*PwG(Diw%SQ~{=6Gd@&~&? z+gtPi+jGs`0ZR1h>(Eg70C1Tc7)#U%q=7F~4KFhkEex06pd?*92_}I4#`1e`M$KG| ze+@D1S3Pg|gwGvXPrO~37e_mRti@fmfS!tu83^Ue_wLs{{-J|nW$pOoH7YRE9*#fA zjeESSyRGGFeqkMGZ%uf*iwd?Z(<>vKGKA%!1HCYQclC*M6}o~|GEecAQNfB*HL z{?wIng}!ne_Tm6CvNB8Jw0L(Z(?0jv*Pnigox#BfnJ4$g@?>jSUQ3R2d3TisR`X_4 zE8ubxxo3z>{yd*@$zXG2UuJhl0F+Mr@sGbnSo4(ce%_0Bhx6;L`dV{qz&mvi4}}i9 zgOAfE#ChHWRBb&ziFd5>hQq zXHLr9)HsHm&FInQ=x8E&r$%NB;nE3I2|(hBg<$Q_^JmT(XJXQn#7B2plmd+7E7-l1 z!EmtQWr<;ka`_51gX>bfv8jdvhz2@dloP^fw^#G%dibm_kzllpZw^^5Xbse$0dldz%CR2MEJH@1BcplMx*ClPbO_@=bqF`%avU93{TVcNiJnVasij6An8dOOo{%~%}JZ@!b&H5x^j&hSDKa49=*6DEapd|=C4v^Y4 zHfWlus%Zo60KsmBIc!)}csCLHiF!_Ci)w+O66rKL1Q~xHeWkYx+^8kly{j!e-bm38 zIQ6cw2Onl?t=Ze>-F;l%3RcgQ*_pebdK>ua`4I{gc^M`Q)isqRmzg?x%Q|;(b<((= z){bi}xH^VfsXTC*Ofp}0Zth7?J;);Ol}}ZM<@k73)qNS@P@$SF!1{Ows_>CjxI`k= zvvBW?rl>0AvAqky_~ndji_HVn44}5UocG)uG>f*2&CR#r`jwePbA@tpdYG4JFl1!P z$}ERr^vn_61X$xW@lG|HVu2qxnA<^uOg&1}$aCr~5jjKP$hG&{Kgh{@bg?9qGUoQYoa-;AoML?G3!((u2tSmtNtXe7Vxj_FrKZfErP@!*;-Uf?x2pD5^1Kkq< zzrI0^d!26N@*6hJb(|n|y}MqLOGe;RpO@q!ET5Xjua1y7Q8GTAB9`RItgOM| zY!2#8G9XR8y8_lWwl8!CxOZuyJswskg6-4h?ht}KQ#V64t?j_|M)d;FtFxJ)|JF-; zstn16mV``_tC_DVR?MKt9PnR%)+jGva8XXJdQZ@7<_8HWQM%Uq= zxN^(ZoQGbelE@p8C$)Plf<>qrw88ii)LFa!q(YJN>KYxai@g$yAs6Ey8LBMQSx-vKFpWeqv$9dojhkM{!>!3x^!fDJW$4innA6wyz{= z@-17hFGU|L*}T3vl$=a{5H0 zq-G_u8Q)!(BGr9W8Dl_hSfMUz=gUmQPLFn8?iTg_Bgn8e-V6m70IReXH=yEGQfnpI zv&-kTqG2N>veAkBrKx5#k_@L2N_BOa#kcSgDVDD12X@?1WFGYe_@qpU6Ua_-x zA2(!lZUu|q%_hNF@)0z0p(X*=jD2zYa@*VW+m0oKQcBb#F~JHIHDi#8rYqTGru}bw ziBn08ME^Zi{GnZpEL*NLZYNTmWp&(o?@F_Npn{#kt#M~tjw@}`_$ZmyH^hwUjT9;2 zWdRDikg9RqCR_QI_nMhSQxqE+4i2kGZLd!5W8!4Ew+`Kn21AztyD5mrL3)3^DzDQD z)mL($WR5PrNd-HISdEXtF1I?{6DVpLzuZi7&;RnTcm3 zEbGa(O`yF;s3h!n#FR(t3ORk z2$M>GbJWuXq_~GhLBC{nQF5O+SX{my$*#wU>+*%WxL%MXDAE&chutA2hwplk!8vlD z(E*7B5IbdaZL08YwsKIBV}O&XXH}}$0zW#nUY%n$@9!95T;-#J;UdEt$PY@!py%Z$ zF8a=;yzR@lUV0p+1|16{rJ5&ZVwkHF6)jB-3|gqAsZa(HlYg* zr@d8Cjs`q+izs?o$im_l@%R{n`dRwin|dJwMF+``bgDKG1$Bb(6Yjg5>Xhpm6xy}x zs`OA+6$}^kdfhxKeM9d->w8?w`QR)G({0HcKG|}j7{nO7rmAl!Rf74JE3a-bp zx@)pHOqJ|lVn{^}&t+ad-k>YWl(hiq%EZ|Dnb>LB)T{ilC(gAHPeElp0WZ_kneK)r ziwyf~CyTrqc}gfxz-EFu%PKhr43?c6eJ&=ncz?az^MRW4!AHp-?A}qV{F*^u0EQjG z;vRlzmv_TN>v{h~OJi2HnH6KEQzb7ZA!X}>BZqZN?H)I^y>MJtTz2nOzlIBK+HmoT zz(bun3q(|{uH!-!v-*AHvocS>MC&M|mzmI&3R1_=bk)=F3V1|1(EmH^*9yM`-|_pV zf_Ro5`Ji0O@?L5u?w)S7<(M{*yU&_OImRQqR%W^Q~?+F zSkC&?M01;`mB#B^UznG8fKNd8dL-4_IF=B|{4LvIU)r8|+n8Ac2e4EL^H;zeltzKA zYUg;oSIaD3>1a)7ks8e^C}(C;tDBX(D;OPUOLICrP!I9_yjd$LIK>8HKS&(m>3n$B zuK;U6x4USz!)}1D%Gm5npepl(!m_ygBUN<|7)2>SQwu28X&n94&wmk@!Vk}LVP(o; ztIPb=^wQtSoH;5N9z=7c62uzjwoF_LYHUG#QVVZT$Cg5EYkuM(J6HTavqI)fZ(3L@T1sB;a2OTJ&)XAWyC zrQ}N!!;SnIA3Z?4uWRpbdrk}`qi|0T$8gWLShO~_9qi6P$)$$&E_VkLLPV8oxl!LX z^nyg4C5S|0GS2Uq@15?C7^Z4{2TdPYt4pJd3at};ke7Legt!h8m zyu4c@ldVk!TGvW!G_ftiPPW_~URplwM2cD2zw-KML$RoHh2g36jDJ!)C+TW&Vy<0p|H z3x*49ycuARY5dAYSeY?3y|t>dxa(&Ff^7u^6OwtC=g7;Ktu>ia|M&{zzjude2h)_G zQbR3&UWzIk3`%byM83b!n42`|CsiA7RxV6}RIxx&OsA9EgPS?{ydZddB-tRAiyM-g z(J#?o8=AB**C9&oj6z~?c30!}W1W~0C)!%Pt7Wl})aOZF4kdinUuoN`MB#ZR3A7~- zYa4Phk9Yrw#BY6M&Y`#q+=$$Fj2p^0E)603SMLUD$)eb#BUS=88GAC3><#&1czlah zozCwUSgzSN@!7cv1#7m4o>%#_QJa-P78FO=mSixmnkxzk%^%8>MjSPJYh0+pTzpJu zXPtaF1S{q~UoPKWzG>97hNq1udD4i^Z*OEl!9q2^!&a;L;>pQx12Iluj~ozDy9%y! zy|ixrpwjSMHcJCf>(|K}1KB%W<<7sAwF+If3*pe3y%ms7P966?!med^L?hK7@~+m# zoQ{sFptMn@~{bN^Kk#yN7 z_%WnWV|gvy-%?@!DocprjNH&=*@F~vK5lBouS$)bJhBEo>*mdk3{u`}n1&W-8`TO3 z))T`rDetcG5>4Pv*Qe==^%s^|{@;i_>`r$1FiDbckIu=*5jh-+#9Te<^@x>8f5Yr< zMN3pW{Lu8VVmC5^o+;WlLY(O~q*Cg*$83Wc2;|@_4wMRK53#UqFA=Y204E}*9Lx#8 zy|n=}ac?B|+?E4IFelloFV`uP*xHCjastVTWaSqxve@3(u@%-v`>-TtyX3a&4}vL>^opc{g#DYp;4FvN?|^>=FbK zNe*gjjeSHIsDjFw6ta>*Dp&zsFZs7on>L)~S~XmLN9-UGik;8V;}fAE@`iXKrma3y zCa2W%kc`?bq3rlBa3-u;>!ZGRRx$SEmFLxykV|)kBSk=D#hJ~Z`M!;%*~zcAU8 z_OCbA_I)i$CQ6rzD(N>EzKyOHYR}*Y3P!_hL55f3WR&ACT%8XknzZmg-#j<~f(oe$ zaCIIV$1(!*8mzY03qdvqjT^ob6Te%x{`b!Z;&LptPQG|I;l2SfH$NxsmFNmSGoJh2g`Mx3-Ha1qY+K% zB^E1S^hm6&T+aU|fJDOIJSGuZ5Nv8|*G$vQX&g{epW!T%B*$*g1><{R?p7Nv$Bo(L z*3JP&)$WZ)bfR-)j$?Ut-_&~r40x?aAE{wQy>WB=pJEA_(y+uAK_j*EZUAOLnZLA? z%|#D~BtX)`Aw576`Y+mhrvQ$Y5S0pQ&^$6l%Wb&DiMOa>RNpbUjH z;mAyj*_h(gk!i(nTeuc&tjPJBp3})J#=!T(A@REx4H?qKb!}a!#@$AZyhDCzAiH}0 zDm?4gTD4ArcF|X(`fEG*yLK}Sx`Xh(;T+<087&W@)~cmmj|%a8L~Q%S=khYgM`Bjc zeIF3-@pxB0b8f1aF>Kx92kdyku+*4~g*>3!*`m_T`dc%Lu*NN3Hcxkv13Eqhco0#c zP?axU*P!924IsKDYY`G^Og+12-V-^PX~SB^H889aB>=Arba2sW zRE*eFE0J(O7~SKYlS$RXmKNz4gqd;MK^}d%FDK!PaONFV$~SMc_~U$)WqV<1NKPFb zLr{|;UW9YfT9|xXPLT>)EURjSwFkC-@qpqRR$SHijDeduzvVOXpm}f&8!PHSYz`dw zUWEzaPnF@|upcDLb%d!{k25O$48LV#o(M-zi49h^{BY;n%D#gE^Ms+mcUz0Bu?2qN<3PRWS)|W&3sFot)mi+L!qTF0n25 z?HE^TiiO3syX$S#hP9o_R&QhdG*~GyWPqj&$_AKRtN{nP8c{xAdUCc_w*gbt)t&n- zSAD|Yqrw?)vYK%C+OVZPBPcWL4x`o1+@Y#&KiWl*>jg_GSzwXjAhl6=FAN{5f!~Y4 zXU9P9WNghb&^)JXtfh~y93L=TRBi%dbT^x*RBPjw7)yE4u-Ww$9)}I(`|BlqgM<$X zBzPk4lc)LVS5Fg=Ep2-#jhA}bUh3@u!rr~4O?J5E5b+;eUZPIqCS9{WOfU}OIJ)v^ z2_IRK?$~j(w(-IrkOQFABO}&P1V}zG(uG2`Sq4WQ&CEmQsL&p;1lADS}j?MmKIG5pC-x{`?`*9(Nb z819Z#uJrC&)-{yDx(b05?9~cCH-~EB>lH8!bgaKi!2jw{EHUaRYl0%2X zbL}8G%7g9#v~%na^ZWG1z>ZehqR>SY*DI1zNf3zV7Atn|HK51Xj60GljNT8TFn1Dl zPRNq*u0#BIZn#VxU?WYq&h7gsiI?MLUH*$$lI4vYu7xWqpt zd+cw0{2N_)J^Gxm5Q_x%x3Ixet>MA$-owu$3Q$;}Jb&mp?Dk`B+Plk)#-76WmvV^h z{uRJK)`ogz@aYVE3nb+1E&Af|piMrJ;!ACY+!s6c#x^?^|Eh@^6w#2Ep^aB{P7Lwe z&45`oLUvkR-S_08NOK_D-clZf+`!>7bzr9zN?No`P^JMwcpq+nko@=ua4c% z^+tX-0LC}ZGB0yE3vWr+)`~7SO?i>E;`pB;T2o4kr6{o&WupvH8$EC98S^5w@e?O= za!p|$T9PB@vnx?Rv$BFZ1x>BA@Bv+_wVn8=#I4>Og0h|KaWQj7&MZk1k$|$A5n*R| zy)q&@JvG(kE-No@Nft2!$M6m-42y|6dswVv-#gFAn0ko8Z#V#z8SD#3aOf<}@i0v1 z5k!t|Z^w<42pRw7+$!o`cXd{3H9H}6d3 zH?MnViH+}@(_%!;oQ%i>@dW~3IEE^fmeN=y;ebbgtOLHS_O!CWk(ZB{!sQH%Iau)03bheBC}}|8Bz>v$ z8;OO~@?3#Vf5GJ|BNuzod@bQM*7j8eqad*uSR@`{MyWAE?o^e``lvDFAJ1Rq5BF_a zC_JmVF^@25bk&|WK}VW&y48cymj!lroW1pa<4r$IY?s=gGk*LNM}m7YP-~48$efj& z(p%O7o1{1r4>C%oWq`M))*d26Pz}p31Q*AwQj+u>M-bSI;k1w#^mai}3}aTRx_yf! zaC-=Nawm~x3ug@U!Wrzl2}J$HAxGi6`U4kkupB^b9hYbPs5K4R*(wo!nv^#0U>2Tb z$@gO8A0Rj-3&=C#e(6C+o=nql6fv^LOwOZ_S5i;p+M!-e{~>M66iPDaImtfTTFkby z(yCA%LJN<)K{RGSnYnpLqD^!^l{Y5P>$~?}>gQR!*DiDb=PSv(ZWTBg`kCA9v8G?M zo<*gyowSE7vz^$74RU#pT_m=O$cjL{_TUV428cY)%I&wE^4*4csTcv+>2K=U!o5cR zB>!Hjy5#jBKCUbc5G0Msk&$n~8D6Z=OT}AwCc1eT`GhQY-ttu+#yzz~m-0a)1uwmvI8?Rd%=jI=)CMn?RY{sSuvO6;UMG`ABy6;>3pSN{~Z_XQa>| zcR;eCN9)_3Re*kH>H)1GP9M5=WOTXLR0yY<;Xpe}O?LHJzm+l#^c?mSFN-UyPFW_n zuo6|@`G-6RgJr4@y1Ry9Z)|e^ecmOGTk(+c@POY@j(;yn5HM7sHze=qL#`Hi5V5b0 z6FQQqu79=rKRyO!pXDm+dj8%%C6lr3T-3FtlT?udrTmj*I^v?4^JY%2)jjz9hh$6I z_)>SU_q|DF*gF)}`KG7#9)d&3;xu%Ge0PxjHhD&81a<^Z@1v1R~I@NO2)}iO z;jbhL1_wY|BhMUOjCXJ2$W%M5*9}yb2kUEA+0i~M&Nfy(r4D;jqgg_+sz7%r3eSqrU zW+9>C!I5%Dk7{jd&!kz?E{Dp;ik=>pr+^Z3?)*W~)hSa$4638q>e_n zj1$!Es*@e?0(?iQ(x_}eEPXl`To#l*Hh>&z{Lna-njA5{fg*ls5_yj5tH$ZF)OOmA0vU)+K zdG0DanWgQE+|I9iCA3D9Sca->D@vH)m-v>jL`X7wu`}tlNr8e9W{o>eegx)&R61iNVSZJBV%v^CZCe-PxwAmch|&WAI)+4d)JJc5^sgorj}4 zaZXtb7KII;%7vKVX9pOHdjEr6*+p~A)YB;VE4M?2h$f;{poA({)YJx&xKIuH&p~y{ z?6ww*lA?d-^jT4XznPZU2oGjI&rJ=BSa}^v&_wlRvj7>ZksG0@k9U<1=SF0!b~V#+ zCvtnD728u-4!5^k{7~qS!SKuwHz`LO+Y)b~IV&-We1(N{8jkqtIoCo4D`Q;k zx!B?O&I^O9=>x!+C|YQcygv_Rq2Vc+L+o5ZvR+Lhw2rLmyX-kg1i8Ey2S~C`mF#*M zY!AttKz+Zs>vcQAdHDX(LP@FNzE;E1n^*J*3j^(n9+poK!hrcQQYDH3D&(29WLoCg z6E%6fIcN@!tDW4u&t6-v&pA8IwJolq%)=q{kOqn_CZ z8H~d!sOGF4H6V>x)Cm`E(bgh9u3s$kck<}&Tw3dGq`N??_UaXhv044qERG=PBDw?+Q%ybY&N{i z5MQVHN%MB0d0a4;rW`Ur7P}+prbPA*8*XRL{)xKLp!K(1zk~SHySv*BZAt#M61KXN zT@RIoiW(sANKRTo8f@r!-7JX`(jD~u5*p$7o(T__(!laNwG;qT z4sWei!@(?`m{Nm~-YD&ztO-)}P-I(~3zhLrK<7vb`mPlKu3Xqm;9u zY_CybcxxS#@CX(bB^_zJtyr?lsT5P6S5*0Ja5P4ilHy1~axxf%LMuAhPUPYcz8F^C zHjYlfNuVj67V_Af><~luq$00}ZsH-uysr3dVjB;)i0C$1hYO2FP&|Z~-uElB`%1k0 zzxht{ZqQGWL-P1|6&~`^tei^V5se0wnD=&h7LaIqNzhWb9-$t1 zAv!-)#%}^e6ir?y05(#P1p_%unz1Q~gk_}4>)Ilik{?v53{B4F#*V)JSQnYN)V+CW zI03!y6Oncv+Xaq$&r^c|ShsGS6sz1iI$X3Y<1a)E%f(1F{$kqq`K?rKO&Lzy<8 zy!hq4cQur2td>|x{|E0~_}~0b|LB>0lv4XnJ&`^3LvvR+GkJ>%SAfsQU~I9{KU)T}8E`j$)|zZQ7~i08~;@GUBv&5V~O+7@lGcy2O+7 zf_z_<-c9VxVU#<_h)$ikvtjU`@)4;OgVaxD)8s-hYBpZWxP83y(MNIs=;_YpTyREd zR6|y8GXu3>Roj)A4-(0&RPpt1Gc)oZWjVafFDC_RD6&9TFKxp(Q8Rb>y2@4SX2P$q zwwLOnFCYBj7hgiOV0FyCrBZ1ZsZPfvs&PhDE$k?)HhxBaW^;*-K>J$d<$^)x6h)Wh zAdc)pE|<(_8A@cBb@0y^TAC3H~$L?lzM><8<^ zjdeU9=szgg1&hiA?D%ji)Mw+nXv=k5+o=m4?znR z*0B3Gn`?}ZH0$-=?i89x1iLCyagYv4_C8g7div}GPdbnJrbX5a!8QOC^6d0p!&FWa zDHEs;a*Gi+S#|8p)9CFYx|`;8utcs#621g8S0D#39l%gSS@vY&QreYE4$6x+2cD}2 z@@nyr^x820Ru;c-6`+Z)|NaG{SUDBVLl7~qUj);Rf_pTJ5L}%h9g$^8P8xva*+q0m zt+v{~gjB}y>haWybFD#bm&}c*P|U5fop&;Klq1yB(tHhSfL=O~UoT@u0ih$Zlts0C zKP-8eAl7hpcO47E4*rE`ZNl3 zt*%z4guYd&(%eN69?`~Hw8Efeqvd|;Oi)TvAq+LjU<603)kjsFNQEMHlY`+JSV`k+ zE|sxXJdVKoEK!R(VFSoQO$$lC%IgvASA{y@mAMo33(oNX@5`r$LwUZ5t3C7X20dnX*hR-NZQ z5n%XKxr4@h02Q%A*H^|w{MAt>V^{Frc{|o9AKl#vy*HeLay z!(COL@m;OR4ogs)ix-F48~RRZt11%m4xz8B3N&xtg~d%K)!1jf`{w9+P#MO!(Td&I zpZ>@vy~M0N)+JR#ESZihOR`B2wc+a$w2#tyvacukRGxO?d6$;12d$cE65u&G1T-3S zsquYv)9s@yR#Y|JfddG0i)aZ@Hs^`Og1eqqXEz7KX*qe|D zkolX>*3d_A2^(4-*9#ahqYGAn)CMA(I^o!a%svJi@p~gNd~0dO^RN1B)sgi=iJ1#1 zw(3}utLu45a1F43`eC!F_XNFC0gya;Hs#JOg+}qQN*M-+E7t^9hd2eywMwLwP%U)o zQuK-+G@m5047By@;#5tQl&1&c&DLdW`It)Fswi=YYJ#70Pgu;gV-!{i_P18 zlr8l1P3fpUjUs}2m3ab~;b5M3r#_$&FcKTpzX}eAo11UraWu}hx+(XXwMMeIBoYU$ zSZj@scj@|%+kAY4eTjc*O)od{IaH2I5JQ!%uQ|M|y+UQ>DFr9>{MpNwf1ZDuvi+XU zd86~;)T|a9VUP+s=g@F-YXI2?8;GS7$cM54p^yM>H)t@keV|=Mj?j~{Epy91nUa8JnH_0ooXm2?E&o6DV4i{Ng_j@j9UU+#Nu1&j)ctAb5_a%JtC14Ypvz`;X zO$JGG+C@NtJC86^Vcx;pO@hGIF1U z>yucUWCpQtHY9d$Dtul6K9fSTaCS|B>suH|+gwJ#Wc7wm7@Wi1Y2 zEUTD3w6IhSA)b%?x|s$lIdTrYjs?)<^dq3hAg;(5ib zS8_fKRBbE#=>PcF|M@@uAo2K*Ui2j-91r$i@vUHUu~1l)4D65_5Nx=oJ zM2^K&il;GOG;4rNP3}vxvfo-ek+I#}%V>FZ>rn@{@%mI`0a`9gfJ73Nl?>n;Wf&y+ z6AW)Qhk~&M7N>}u!)kk7vRpY|>>-BVvo$=JCp?yqJaVA-+`zc0-;_|6$`e zk5NFNwHDzBGm%B8C-KsUR;?+_*nfYOOuc;Bn$5Ik3azP4d67}K5$-q6p@N>Pp`xr! zMo4m9j$23r0*n^GH(twEK-J)-2O{w@ZLI4cj>=Z95`ap+Bu=s1kI9&>N_8Uh5QviX zsO^U!kHA`?MKkw~?b$rf!tGX)ap(^4-2AJlmuR;tt%gUG*hZETMsmJt7{eCq%!lP$ ziL!{YL*YcHx-4el*lQ0Qvg;#cNJ+rjz%m>WLR9+MdZA@s{>V%yi*_s6K5dPR-d*J* zun@udM6KV<%0z=w>W0RPYbUTcR9FJ0^F&bx0Z=3gOe_8q#XA3q3;aKM#7Fo4`RjkX zr;?l;i}Vz|P%{yEyQO{0@nj;nIyJ*VWo7XKgPSR=IT~InI%1mKUKtiX7LpYsECCN9 zIq#E?KT7^@1c>N{JO0UwU&aw6o@*6k2mLE3=V;&#X}Ys9UZq_0&%XHTvw!I7=}tU# zN6b^Rl-)1HQ8d^n-$>r@;>)LesLYPEFWX7l?5H7I*sRzblkZ|3ID@J}<61JOBel!O zV9P3=u;z@)aPES?t|>F7Aq~s-W}$2f)k`q7qq!9;khv98A(TnNmV;jz z3jJ|aN=d|6MEmLg{=0wvb=Q|KdJ&DFx+V# zEtJM$O(wS=lCtEr7T`%04wblLON1WVs8Iui=)lYY7e~$%nKGO#w5sG8GUdbsy`7IH zS`4_<+}#RS+0FvVfT09eXKxkx-bR+or3 z&U_b>b~FP-<=zu6;}ATV<_P8-BnJ9oc7$aJYw7L0t8U-bWV^hy+Xe$`GOye(8?7HM4z0TiVvd@1(Y90duCa%$L4u7)Ram)RtWdUu zngZN^nS^M3xm|5uzCj5{;oSbdV4YWc_b~T{ZGPFaQ<7=C{6-xv$9HtkP|a4wmce~= ze5W;a0(pmVs~}j#ic;LNGgFq#>MA)o9enY@nd-1mgvIc1l+dvNVPu2+bsmRHAtFxg z1+-=sjhL>?F<5!Ld)3Tfw36cvzcPtg$V9(7XQ$0T047GL+J`q&!O`mDT{q))kT%fR zo-41){qnYVC}u9_Fe@d$QUg%F8PVjs4PW))7)J|8yPYs*)DpGXo2Y#$^8mj%pkL!Q zJ%}`w%b0%amy(QoPf%LI#f3B*wb#HGWCpd>JmA|>$Q9N{WJMzOCVp;^(0Sh7`$5M! z${?w&ZgHCo)o_+_nv4n{hyv_syo?!qK<>6cazH~kb{2pXB;v*tv!e}Gs#nQo#`n_ z(k$!j6-eGuGks-}i^kpMwv3E$`3*$%+}-y`DojKTd}X!3b5(2)L`X;Xe1##{Tn$g_ z5GzIC3<-Q~<@sn;mHa$ng&b|)YEtbJ_{M|UGcId-IH~m_NmTbX$Ovc59ggpX*J?ND zR%Up`>r&i2J4J_`Y<;;d+0`arOTK(}wQe=w!(rfqZp&s)R~p4TXLDrAfO#M5!?L^D ztSFe~AS1WVWHm;2TJLkB_$y|^rMggp`8G5Cn?LmS_&VkLG|;K3iQImEJ+6TsweN;! zWFNsiOTUa|Ad$e)<7LRb?;djt{*Ugoj6f3`2cc~CG$>y1%^i~QmLJpWLDO7D8mt_W z^U~Y`t`|hkSf$ZFC68o{KUh$YRo`CoC{X5E{c zGgTxBd2a^^y+tLI!f}`L;dP19edu24rJ3HnHhyu}i^RGpWH(=fFu_VIj~ai zfKq%1urT|8J-xj>|Cs>1I$p@d?`vri>z1Z(l*oxHm2|OhH=s{;_tGAo1|$@3MF=@Q zX7=&&XMh}3q28-Y5~zf$jXiGzFDzR;=1qI;QAr{yQP9?sR|~|qZY_a(PY^`^6z)5_ zm(J?g;mqx+0AWVuxY{XN@ymN@_QQMd|DaGM=1(?;V0#WGXA0})rQ#hh`(eLIw}NnK zPM%v(e}gzo4Oy_ns=CKRwRvq#+?tU5@*Wi-I8w-ogqD$q$St0u1HU>JDbVX(upy%@ z$;by&B8`P}&-io*ucg09{w>TxS2kPITS0!*@cPvG)9wnpkN9gY1G##db!a8h6z-jj zmn5I^U8wG#_Cx8+?Ar@GGFt^P-Or@ze)ed4#vXy52+C7LhE>WzPT{7|#0MKw3&!QY zN&PMT0=)kLoDXzP5;f0pt|Q891&|`doCRWr0$NU!O-@4bUAPo*1mkFGG|)Uf1;#u& zPNBnkz{>Y(5n$TeWHaYG0^q*{&^7kJ5yG&R9o;K|)c9&6g)D~$Q z%Ru|1lDjnWBhKdm(%FdqwPq~QhvYrDUp;?IvjeVVykB+)ouG8Ou{-4_jlbM*YC9OI zDkF2-j2Bb@7=Ei`o0^42CJG(GuJBa&)4lh2(ML-xq&>^hsC!>H;649rx83E{{~ktX3{j6kmKuvkkwYkD%OFMJ*Y;=Guj?P0rcch zf@S}JT8rEts;J&l-17O(3*gNEOPF&7#YM0~2 zB-H%QCkOFs!Q@gL9(KU|Rb#hEh(`QM)#z$Wdo{Nxg&x&tvB7o?Hb_v$6<4Tc2Hs^2 zlJ3<`r7hI56iMC(iR6^OkO)q$=}2SlnC?vSsSb}3FN}+VcdZon7(v*g!hn`nlt7dS za@!p3{++0)D1m}W37RGR)Iuegctw8_Z%%@A%Gr{5PmIIr^j%YyQdO+@0A$wS!acR&|2sq&C zxv4iG*PCVAf{aVWIRyhtvZVfolt?z(_CR^O>e(4LGotvN-j zaNOB}b!BzD%mB;d$D+j8$_};C$-x;VA&EC&yPSME$BsqIHp7nS$lWkUBHEP51w&u-EpxB&l|KlFvOtFI(8l->H6tN)7MLFN>r4)fc&tzWEa1#yO*jpF*c8Cn_;aOYS{3Afy3UQC&mA z!dl8fWzU1{EBT=91*MA8K9lKh4n01>!lA=KihG-!=E|yJjCHrQV*;tRtO%cb+~jIE>2}?11VRb3`zgI>?9YAa9R=aX_fQaCth*UN` zy&R9>l65}HIm&8@Oo5AsOpBPTh6SIO8Oj_|OPxD;6k|JcZgh@y+Xii6zpjd?*dF;= zZEoF!3*&Hc<_C2vjC@VG%UgRlrwSTcgc~`L=L!ux@9|m-yxrVU9$R!qs(xt;Ev4P+_Lg^QF%wdNp+_`_|Xds z=_*&gr{V`1gLhn-CLf^MooAD2psKAEM$3|=fuMichV#|Ad0}l!>b4KSC*1^8np1AB zSFeT8t_sUHb|*@lTRB zoYv|6z&tX(w{kyaqSKM$q)98Bf!(cA@8y}3S;1m2wqFuf<4wZHyS&Dyz8T0W5H={^ zpyHwMG2qLzhQ<^u(N3Ry1`9-G>BS2K_?Se!no^Re zr{Sr}Sm+%1$oN#QJO*S7!)dC1GSEfB;pQgiS~K@Xf;(BmThlAZphqTA|GAm|5GzS( z3sm{+;azp9Iaq~!zlJoN)gZ#Cd&-Z0`CReCDj~gQwb2P+-Vvl-4>WdbGDEb_o09qd zM6%X|t|H}laBWjxb7F+&GyNoHD*6L6FRL{|T7ZSa!?p1BMsx6-63D#NxM?&m8zq_fSr(WX z>Lt1p>6b4fHE3t%5NSy*SG|^$!;2Q$^rIg5oWqju9Tr|_$Qlwy-9z@b&@v!M5t?`# zD2nLDLtZ98%36T@$xlA->U;M5qf{dK9Mz^+dx`78t#`3lIb3mZ}1OMEr0eEIXJgsvDSxm#1HVY!)js+1rSX= zW%QiW-3gSoG`MgNySFo-ukKhC&|x0KQF=uQQhqRmv- zbWvdGL34Nb!(d}omIJph7TAaRSNjHS!C-xiAzsxeUKTp_f8IBZ04HQ?C_inN`5R|$ zT$2k1h}L+HPlbhkB?e3cm%GNEigks3cSu{_>?{}%fo-7?JS=oWv{wp5?{4io=bsku zKJfj-t+0Ko^S10oWntgBQj&|bq%{8AHNB&LoGRRDewKTK)GgL7iuZ~6%_h=UI5 z2ly-@Br0NXcR2!IbbT8$3QA8TBnD111dibGX|8Oe@eUL}sz3x?DizgCA2BpBWkl$6 zgju=LHZ_f$$1VP!#8T! z++p)LqGap>fAEcQmOI$L0bSs78)V&yp>%>IUv*4{q7nOIK1jt64#Z`S58Ca%yFF-b z>;QRHP%B*ptUTUzHr|;rconl`1<|&POCbkgPz9C;hBEy@y? zdWMajQUa#SzQo3K9F?VwtxG&f-~aMCh!z6*HXm5hr<>{yGV%UoXnn=+Slf)vPzB~0 zuY*7t?Sz^ZD0YyVA42qxrPF+THM9A(aTv(lS7_Ywpzp| z*Gf-6r)~_XRKCyo!!N%4@bfQTG*>ZEd~*}!%G?Fi9X#AYIVWEG*9qcF_j;ltvM%-U zebv@j6bcCiQxN!E9AX8z?%6Gx1k1bnh!datzFXhQtZ5J_hf5^WvP?aZoCVjTvKY}Q zROL0gcX|0>XKpoWRw61P5BP?PA#vot7ec}t4Lvoj7a0~@jlJ62#u%p4MQB~f`D)3? z)XNpw&%y)tse@|c-HfK@NYMz=OsCU*-6<@?Y13J)?}e)qjzE1ZL!F=$jC@yr1d7p# z(8i~dO$B<>tD8H5{=JQGYz=yBGiPm+OO-TOlE)A}+JL}-vun$?mX@_sK79zQ=s%Jhy>~M+YlIn|kw-tirV`KEJfg{8tNWPj$uQ%yQ}OWTNZ$ zv`I&2pB;IGROCb}L-&zxj~%+K@4YnupSz~4tP?V|TD75I8KMh~<2;trS_wKCg(@Hj zl1A4LOy70+uz9R5#~PVXehA@`0wvp!2V?t7OjQw(VZ5fj zY8-Kcj4NA*TvaRDXc}O3K6M%nsH!GbLTcF%p(gpIzo5) zdK!v-GBz$>87D*$I&@LC8a5%E3YDXcZn#iyPR?_(k)hM5V#u{t)`P2Kg;T7+4

z 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%0ASI~mm_nAe zut&SV<#A(V+vFIuaQTQ0e!sY?sy#=COa*YUJsM|vdYA10K4aPus8RdD$7(8}o-3#m zvfbDj01@QX3>kQ_ql^^LPe*q1^df^ShOU;U<8Nb~-xi`MOkTW5`7hCH{>_S!z?&tc ztyIEHKDcIu#puJA*I5deSVf|g#sExkR59Yi$L}GQt~4ebjgG08)k>{NW$}lxv}Qe0rLyZ z3r)Uh`rDJ<;H459sTh;Im?3Nu%ah^ZBsS(sg>+gzLraKAusPs49omXZB;#;Z6}Mw6 zXo!^NUaME7W#O#L+eTe4`9=;{qAp{|Nh^; zzj*ciu_aT`E^y`Qf9y$jgw0?Q(p0nBJs28N165u#)nb-~Vz<@lFuiRRreaxQ0R`Wd z;*O3b9!l4ZY6TvPLfE0(J~2%2x;)2kfBv$+hyRk>W^9Di)x{AjSwV4=GZXH5E*%`L zAP~5k1kGu6SDf%XdQa)8OMt|c8=slY^e?X+C=k?tJ-o)M#kLqCfW zFTo&a7BHN?4%aRyXbEh$uJK6GNX>ARykileIBEuAU<2S6m+bHXCG#ob_we2LbhQ=k zG}CFDNi4zH*sUQ!3tr{CPhMK&QlCM