integrate question table generate function
This commit is contained in:
11
app/main.py
11
app/main.py
@@ -24,6 +24,7 @@ from app.analyzer import (
|
||||
from app.config import load_api_config
|
||||
from app.docx_parser import parse_docx
|
||||
from app.report_generator import generate_docx_report, generate_markdown_report
|
||||
from app.review_filler import fill_review_docx_from_analysis
|
||||
from app.skill_loader import load_skill_catalog
|
||||
|
||||
|
||||
@@ -33,6 +34,7 @@ OUTPUT_DIR = ROOT_DIR / "outputs"
|
||||
SKILL_ROOT = ROOT_DIR / "skills"
|
||||
DEFAULT_SKILL_COLLECTION = "GJB438C-2021_prd_skills"
|
||||
CONFIG_PATH = ROOT_DIR / "configs" / "api_config.yaml"
|
||||
REVIEW_DOCX_TEMPLATE = ROOT_DIR / "test" / "附录A文档审查.docx"
|
||||
MAX_UPLOAD_BYTES = 30 * 1024 * 1024
|
||||
MAX_SKILL_ARCHIVE_BYTES = 50 * 1024 * 1024
|
||||
ProgressCallback = Callable[[int, str], None]
|
||||
@@ -263,14 +265,21 @@ def analyze_saved_docx(
|
||||
|
||||
progress(85, "正在生成 Markdown 分析文档")
|
||||
markdown_path = generate_markdown_report(report, OUTPUT_DIR)
|
||||
progress(92, "正在生成 DOCX 文档审查单")
|
||||
review_docx_path = markdown_path.with_name(f"{markdown_path.stem}_review.docx")
|
||||
fill_review_docx_from_analysis(markdown_path, REVIEW_DOCX_TEMPLATE, review_docx_path)
|
||||
progress(100, "分析完成")
|
||||
|
||||
return {
|
||||
"source_filename": parsed.filename,
|
||||
"summary": report.summary,
|
||||
"matched_skills": report.matched_skills,
|
||||
"downloads": {"markdown": f"/download/{markdown_path.name}"},
|
||||
"downloads": {
|
||||
"markdown": f"/download/{markdown_path.name}",
|
||||
"review_docx": f"/download/{review_docx_path.name}",
|
||||
},
|
||||
"markdown_filename": markdown_path.name,
|
||||
"review_docx_filename": review_docx_path.name,
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ const skillUploadStatus = document.querySelector("#skill-upload-status");
|
||||
const result = document.querySelector("#result");
|
||||
const summary = document.querySelector("#summary");
|
||||
const skills = document.querySelector("#skills");
|
||||
const reviewDocxLink = document.querySelector("#download-review-docx");
|
||||
const mdLink = document.querySelector("#download-md");
|
||||
const progressBar = document.querySelector("#analysis-progress");
|
||||
const statusText = document.querySelector("#analysis-status");
|
||||
@@ -120,6 +121,7 @@ form.addEventListener("submit", async (event) => {
|
||||
item.textContent = name;
|
||||
skills.appendChild(item);
|
||||
});
|
||||
reviewDocxLink.href = task.downloads.review_docx;
|
||||
mdLink.href = task.downloads.markdown;
|
||||
} catch (error) {
|
||||
summary.textContent = error.message;
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
<p id="summary"></p>
|
||||
<div id="skills" class="skills"></div>
|
||||
<div class="downloads">
|
||||
<!-- <a id="download-docx" href="#">下载 DOCX 报告</a> -->
|
||||
<a id="download-review-docx" href="#">下载 DOCX 审查单</a>
|
||||
<a id="download-md" href="#">下载 Markdown 报告</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
Reference in New Issue
Block a user