vietnamese-writing-intelligence 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vietnamese_writing_intelligence-0.2.1/.github/workflows/ci.yml +61 -0
- vietnamese_writing_intelligence-0.2.1/.github/workflows/publish.yml +42 -0
- vietnamese_writing_intelligence-0.2.1/.gitignore +44 -0
- vietnamese_writing_intelligence-0.2.1/LICENSE +21 -0
- vietnamese_writing_intelligence-0.2.1/PKG-INFO +116 -0
- vietnamese_writing_intelligence-0.2.1/README.md +97 -0
- vietnamese_writing_intelligence-0.2.1/docs/KNOWLEDGE_ARCHITECTURE_MAP.md +80 -0
- vietnamese_writing_intelligence-0.2.1/profiles/systems_architect.json +19 -0
- vietnamese_writing_intelligence-0.2.1/pyproject.toml +54 -0
- vietnamese_writing_intelligence-0.2.1/schemas/draft-manifest.schema.json +153 -0
- vietnamese_writing_intelligence-0.2.1/schemas/draft-manifest.v1.schema.json +38 -0
- vietnamese_writing_intelligence-0.2.1/schemas/voice-profile.schema.json +79 -0
- vietnamese_writing_intelligence-0.2.1/scripts/populate_gold_standard.py +1234 -0
- vietnamese_writing_intelligence-0.2.1/skills/humanizer-vi/SKILL.md +22 -0
- vietnamese_writing_intelligence-0.2.1/skills/native-drafter/SKILL.md +21 -0
- vietnamese_writing_intelligence-0.2.1/skills/translationese-cleaner-vi/SKILL.md +21 -0
- vietnamese_writing_intelligence-0.2.1/skills/vietnamese-writing-intelligence/SKILL.md +36 -0
- vietnamese_writing_intelligence-0.2.1/skills/voice-profiler/SKILL.md +18 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/__init__.py +51 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/cli.py +547 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/drafting/__init__.py +19 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/drafting/drafter.py +70 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/drafting/planner.py +117 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/drafting/providers.py +277 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/interfaces.py +110 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/linguistics/__init__.py +55 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/linguistics/context_rules.py +493 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/linguistics/findings.py +32 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/linguistics/normalization.py +48 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/linguistics/phrase_analysis.py +84 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/linguistics/pos.py +190 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/linguistics/segmentation.py +128 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/mcp_server.py +174 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/migrations/__init__.py +5 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/migrations/manifest_v1_to_v2.py +74 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/orchestrator.py +57 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/pipeline.py +223 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/resources.py +54 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/upstream_adapter.py +284 -0
- vietnamese_writing_intelligence-0.2.1/src/vn_writing_intel/validators.py +78 -0
- vietnamese_writing_intelligence-0.2.1/tests/__init__.py +1 -0
- vietnamese_writing_intelligence-0.2.1/tests/data/linguistic_gold_standard.jsonl +200 -0
- vietnamese_writing_intelligence-0.2.1/tests/test_cli.py +235 -0
- vietnamese_writing_intelligence-0.2.1/tests/test_drafting.py +140 -0
- vietnamese_writing_intelligence-0.2.1/tests/test_edge_cases.py +138 -0
- vietnamese_writing_intelligence-0.2.1/tests/test_interfaces.py +87 -0
- vietnamese_writing_intelligence-0.2.1/tests/test_linguistic_benchmark.py +173 -0
- vietnamese_writing_intelligence-0.2.1/tests/test_linguistics.py +124 -0
- vietnamese_writing_intelligence-0.2.1/tests/test_mcp_server.py +105 -0
- vietnamese_writing_intelligence-0.2.1/tests/test_migration.py +125 -0
- vietnamese_writing_intelligence-0.2.1/tests/test_orchestrator.py +53 -0
- vietnamese_writing_intelligence-0.2.1/tests/test_validators.py +36 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
- 'feat/**'
|
|
8
|
+
pull_request:
|
|
9
|
+
branches:
|
|
10
|
+
- main
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
test:
|
|
14
|
+
name: Test (${{ matrix.os }} - Python ${{ matrix.python-version }})
|
|
15
|
+
runs-on: ${{ matrix.os }}
|
|
16
|
+
strategy:
|
|
17
|
+
fail-fast: false
|
|
18
|
+
matrix:
|
|
19
|
+
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
20
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
21
|
+
|
|
22
|
+
steps:
|
|
23
|
+
- name: Checkout repository
|
|
24
|
+
uses: actions/checkout@v4
|
|
25
|
+
|
|
26
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
27
|
+
uses: actions/setup-python@v5
|
|
28
|
+
with:
|
|
29
|
+
python-version: ${{ matrix.python-version }}
|
|
30
|
+
|
|
31
|
+
- name: Install dependencies
|
|
32
|
+
run: |
|
|
33
|
+
python -m pip install --upgrade pip
|
|
34
|
+
python -m pip install -e ".[dev,mcp]"
|
|
35
|
+
|
|
36
|
+
- name: Run Ruff linter
|
|
37
|
+
run: |
|
|
38
|
+
ruff check .
|
|
39
|
+
|
|
40
|
+
- name: Run Pytest test suite
|
|
41
|
+
run: |
|
|
42
|
+
pytest -v
|
|
43
|
+
|
|
44
|
+
- name: Build Wheel & Source Distribution
|
|
45
|
+
run: |
|
|
46
|
+
python -m pip install build
|
|
47
|
+
python -m build
|
|
48
|
+
|
|
49
|
+
- name: Isolated Wheel Smoke Test
|
|
50
|
+
shell: bash
|
|
51
|
+
run: |
|
|
52
|
+
# Cài đặt file wheel vừa đóng gói vào môi trường
|
|
53
|
+
python -m pip install --force-reinstall dist/*.whl
|
|
54
|
+
|
|
55
|
+
# Chuyển ra thư mục tạm bên ngoài repo để đảm bảo kiểm tra độc lập
|
|
56
|
+
mkdir -p /tmp/smoke_test || mkdir -p ./smoke_test
|
|
57
|
+
cd /tmp/smoke_test 2>/dev/null || cd ./smoke_test
|
|
58
|
+
|
|
59
|
+
# Kiểm tra entrypoint CLI và tài nguyên schemas / benchmark nhúng trong wheel
|
|
60
|
+
vn-intel --help
|
|
61
|
+
vn-intel benchmark --json
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
push:
|
|
7
|
+
tags:
|
|
8
|
+
- "v*"
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
build-and-publish:
|
|
12
|
+
name: Build & Publish to PyPI
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
environment:
|
|
15
|
+
name: pypi
|
|
16
|
+
url: https://pypi.org/p/vietnamese-writing-intelligence
|
|
17
|
+
permissions:
|
|
18
|
+
id-token: write # Bắt buộc cho Trusted Publishing (OIDC)
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- name: Checkout repository
|
|
22
|
+
uses: actions/checkout@v4
|
|
23
|
+
|
|
24
|
+
- name: Set up Python
|
|
25
|
+
uses: actions/setup-python@v5
|
|
26
|
+
with:
|
|
27
|
+
python-version: "3.11"
|
|
28
|
+
|
|
29
|
+
- name: Install build tool
|
|
30
|
+
run: |
|
|
31
|
+
python -m pip install --upgrade pip
|
|
32
|
+
python -m pip install build
|
|
33
|
+
|
|
34
|
+
- name: Build sdist and wheel
|
|
35
|
+
run: |
|
|
36
|
+
python -m build
|
|
37
|
+
|
|
38
|
+
- name: Publish package distributions to PyPI
|
|
39
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
40
|
+
with:
|
|
41
|
+
packages-dir: dist/
|
|
42
|
+
skip-existing: true
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# Distribution / packaging
|
|
7
|
+
.Python
|
|
8
|
+
build/
|
|
9
|
+
develop-eggs/
|
|
10
|
+
dist/
|
|
11
|
+
downloads/
|
|
12
|
+
eggs/
|
|
13
|
+
.eggs/
|
|
14
|
+
lib/
|
|
15
|
+
lib64/
|
|
16
|
+
parts/
|
|
17
|
+
sdist/
|
|
18
|
+
var/
|
|
19
|
+
wheels/
|
|
20
|
+
share/python-wheels/
|
|
21
|
+
*.egg-info/
|
|
22
|
+
.installed.cfg
|
|
23
|
+
*.egg
|
|
24
|
+
|
|
25
|
+
# Virtual environments
|
|
26
|
+
.venv/
|
|
27
|
+
venv/
|
|
28
|
+
ENV/
|
|
29
|
+
env/
|
|
30
|
+
|
|
31
|
+
# IDE & Editor files
|
|
32
|
+
.vscode/
|
|
33
|
+
.idea/
|
|
34
|
+
*.swp
|
|
35
|
+
*.swo
|
|
36
|
+
|
|
37
|
+
# Testing & Coverage
|
|
38
|
+
.pytest_cache/
|
|
39
|
+
.coverage
|
|
40
|
+
htmlcov/
|
|
41
|
+
|
|
42
|
+
# OS specific
|
|
43
|
+
.DS_Store
|
|
44
|
+
Thumbs.db
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Van-Truong Dang
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: vietnamese-writing-intelligence
|
|
3
|
+
Version: 0.2.1
|
|
4
|
+
Summary: An agentic framework for native Vietnamese writing, voice profiling, and fact-preserving text refinement.
|
|
5
|
+
Author-email: Van-Truong Dang <vantruong-dang@users.noreply.github.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Keywords: agent-skills,humanizer,llm,mcp,nlp,vietnamese,writing
|
|
9
|
+
Requires-Python: >=3.11
|
|
10
|
+
Requires-Dist: jsonschema>=4.20.0
|
|
11
|
+
Requires-Dist: vietnamese-writing-skills<0.6.0,>=0.4.6
|
|
12
|
+
Provides-Extra: dev
|
|
13
|
+
Requires-Dist: build>=1.0.0; extra == 'dev'
|
|
14
|
+
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
15
|
+
Requires-Dist: ruff>=0.4.0; extra == 'dev'
|
|
16
|
+
Provides-Extra: mcp
|
|
17
|
+
Requires-Dist: mcp>=1.1.0; extra == 'mcp'
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
|
|
20
|
+
# 🇻🇳 Vietnamese Writing Intelligence — Orchestration Foundation (v0.1.0)
|
|
21
|
+
|
|
22
|
+
> **An extensible framework for Vietnamese writing intelligence, currently providing orchestration, structured validation, and an evolving roadmap toward native language understanding and generation.**
|
|
23
|
+
|
|
24
|
+
[](LICENSE)
|
|
25
|
+
[](pyproject.toml)
|
|
26
|
+
[](#-triết-lý-kiến-trúc-llm-brain--deterministic-sensors)
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 📌 Triết lý Kiến trúc: "LLM Brain + Deterministic Sensors"
|
|
31
|
+
|
|
32
|
+
Dự án không tìm cách biến mọi đặc trưng ngôn ngữ học thành các luật cứng (hard rules) cực đoan. Chúng tôi áp dụng mô hình lai (Neuro-symbolic approach):
|
|
33
|
+
1. **LLM làm bộ não (Brain):** Xử lý ngữ cảnh, lập dàn ý, tư duy cấu trúc Đề – Thuyết và sinh bản thảo tự nhiên.
|
|
34
|
+
2. **NLP truyền thống làm cảm biến (Sensors):** Đo lường bề mặt, phân tích ranh giới từ, phát hiện sáo ngữ và kiểm toán ngữ âm/nhịp điệu mà không can thiệp thô bạo.
|
|
35
|
+
3. **JSON Schema & Anchor Guardrails:** Rào chắn dữ liệu (`immutable_anchors`) ngăn chặn việc làm biến dạng số liệu, tên riêng hoặc đảo ngược chuỗi nhân quả kỹ thuật khi biên tập.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 🚀 Tính năng cốt lõi trong v0.1.0
|
|
40
|
+
|
|
41
|
+
- **State Machine 4 trạng thái:** Phân định rõ ràng giữa `clean_rewrite`, `no_change`, `review_comment`, và `needs_author_decision`.
|
|
42
|
+
- **Anti-Corruption Adapter (`upstream_adapter.py`):** Tách biệt và bảo vệ hệ thống khỏi sự thay đổi của upstream linter (`vietnamese-writing-skills`), tự động kích hoạt bộ quy tắc nội tại khi chạy độc lập, đồng thời che chắn code fences, URLs, emails để chống báo lỗi giả.
|
|
43
|
+
- **Fail-Fast Schema Validation:** Kiểm định cấu trúc `VoiceProfile` và `DraftManifest` theo chuẩn JSON Schema Draft 2020-12 ngay tại thời điểm khởi tạo.
|
|
44
|
+
- **Anchor-based Semantic Integrity Checks:** Đối soát các điểm neo dữ kiện bất biến (`immutable_anchors`) với cơ chế chuẩn hóa khoảng trắng, Unicode tổ hợp (NFC) và ranh giới từ, loại bỏ tình trạng báo lỗi giả và bảo toàn số liệu/thực thể.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 🗺 Lộ trình Phát triển 2 Trục Song hành (Roadmap to v1.0)
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
Trục A: Năng lực Ngôn ngữ Trục B: Năng lực Tạo sinh
|
|
52
|
+
(Deterministic NLP & Linguistic Sensors) (Agentic Drafting & Voice Profiling)
|
|
53
|
+
│ │
|
|
54
|
+
v0.1 (Current) ├─ Schema Validation & Regex ACL Adapter ├─ Basic Orchestrator & CLI
|
|
55
|
+
│ │
|
|
56
|
+
v0.2 ├─ Segmentation, Normalization & Context Rules ├─ Native Drafter (Workflow Planner)
|
|
57
|
+
│ │
|
|
58
|
+
v0.3 ├─ Register & Dialect Modeling (Bắc/Trung/Nam) ├─ Voice Profiler & Feature Extraction
|
|
59
|
+
│ │
|
|
60
|
+
v0.4 ├─ Prosody Analyzer (Nhịp điệu & Bằng - Trắc) ├─ Deep Semantic & Causal Audit
|
|
61
|
+
│ │
|
|
62
|
+
└─────────────────────────┬────────────────────────┘
|
|
63
|
+
▼
|
|
64
|
+
v1.0 Integrated Vietnamese Writing Agent
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 💻 Cài đặt & Sử dụng
|
|
70
|
+
|
|
71
|
+
### 1. Cài đặt môi trường phát triển (Python 3.11 – 3.14+)
|
|
72
|
+
```bash
|
|
73
|
+
git clone https://github.com/vantruong-dang/vietnamese-writing-intelligence.git
|
|
74
|
+
cd vietnamese-writing-intelligence
|
|
75
|
+
python -m pip install -e ".[dev]"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 2. Chạy bộ kiểm thử (Unit Tests)
|
|
79
|
+
```bash
|
|
80
|
+
pytest -v
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 3. Sử dụng qua dòng lệnh (CLI)
|
|
84
|
+
```bash
|
|
85
|
+
vn-intel audit <file_van_ban.txt> --profile profiles/systems_architect.json --manifest <file_manifest.json>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 📚 Tham khảo, Nguồn cảm hứng & Ghi công (Acknowledgments)
|
|
91
|
+
|
|
92
|
+
Dự án **Vietnamese Writing Intelligence** được xây dựng trên sự kế thừa, chắt lọc triết lý và kiến trúc từ các dự án nguồn mở tiên phong:
|
|
93
|
+
|
|
94
|
+
### 1. Dự án Thượng nguồn Trực tiếp (Upstream & Linguistic Baseline)
|
|
95
|
+
* **[longhang2004/vietnamese-humanizer](https://github.com/longhang2004/vietnamese-humanizer)** (Sản phẩm: *Vietnamese Writing Skills* / PyPI: `vietnamese-writing-skills`) của tác giả Hàng Nhựt Long (@longhang2004) và Lê Ngọc Phương Thư:
|
|
96
|
+
- *Kế thừa & tích hợp:* State Machine 4 chế độ đầu ra (`clean_rewrite`, `no_change`, `review_comment`, `needs_author_decision`), triết lý bảo toàn dữ kiện ngữ nghĩa (Semantic Preservation), và taxonomy phân loại lỗi bề mặt tiếng Việt.
|
|
97
|
+
|
|
98
|
+
### 2. Chuẩn mực Agent Skills & Khử văn phong AI (Agentic & De-AI Paradigms)
|
|
99
|
+
* **[anthropics/skills](https://github.com/anthropics/skills):** Cấu trúc đặc tả Agent Skill chuẩn hóa (`SKILL.md`) với Metadata YAML frontmatter và cơ chế phân tách Mode vận hành.
|
|
100
|
+
* **[blader/humanizer](https://github.com/blader/humanizer):** Hệ thống 25+ negative patterns nhận diện dấu vân tay máy tính của RLHF và quy trình tự phê bình (Self-Critique Loop).
|
|
101
|
+
* **[danielmiessler/fabric](https://github.com/danielmiessler/fabric):** Triết lý module hóa Unix cho prompt/pattern (`humanize`, `improve_writing`).
|
|
102
|
+
* **[JuliusBrussee/caveman](https://github.com/JuliusBrussee/caveman):** Kỹ thuật nén mật độ thông tin cao, cắt bỏ từ đệm và triệt tiêu đại từ nhân xưng thừa thãi.
|
|
103
|
+
* **[obra/superpowers](https://github.com/obra/superpowers):** Cơ chế kiểm định ngầm nội bộ (Internal Verification Gate) trước khi trả kết quả.
|
|
104
|
+
* **[ComposioHQ/awesome-claude-skills](https://github.com/ComposioHQ/awesome-claude-skills):** Tuyển tập kiến trúc kỹ năng và phương pháp phân lập ngữ vực (Persona Engineering).
|
|
105
|
+
|
|
106
|
+
### 3. Hệ sinh thái Xử lý Ngôn ngữ Tự nhiên Tiếng Việt (Vietnamese NLP Ecosystem)
|
|
107
|
+
Dự án tham chiếu các nghiên cứu và công cụ nền tảng cho Roadmap từ v0.2:
|
|
108
|
+
* **[Underthesea](https://github.com/undertheseanlp/underthesea):** Hệ thống NLP tiếng Việt phục vụ phân tích hình thái, tách từ (Word Segmentation) và gán nhãn từ loại (POS Tagging).
|
|
109
|
+
* **[VnCoreNLP](https://github.com/vncorenlp/VnCoreNLP):** Bộ công cụ xử lý ngôn ngữ tự nhiên tiếng Việt chuẩn học thuật (tách từ, gán nhãn, phân tích cú pháp phụ thuộc).
|
|
110
|
+
* **[PyVi](https://github.com/trungngv/pyvi):** Thư viện Python nhẹ cho tác vụ phân đoạn từ và nhận diện thực thể tiếng Việt.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 📄 Bản quyền (License)
|
|
115
|
+
|
|
116
|
+
Dự án được phân phối dưới giấy phép **[MIT License](LICENSE)**.
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# 🇻🇳 Vietnamese Writing Intelligence — Orchestration Foundation (v0.1.0)
|
|
2
|
+
|
|
3
|
+
> **An extensible framework for Vietnamese writing intelligence, currently providing orchestration, structured validation, and an evolving roadmap toward native language understanding and generation.**
|
|
4
|
+
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
[](pyproject.toml)
|
|
7
|
+
[](#-triết-lý-kiến-trúc-llm-brain--deterministic-sensors)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 📌 Triết lý Kiến trúc: "LLM Brain + Deterministic Sensors"
|
|
12
|
+
|
|
13
|
+
Dự án không tìm cách biến mọi đặc trưng ngôn ngữ học thành các luật cứng (hard rules) cực đoan. Chúng tôi áp dụng mô hình lai (Neuro-symbolic approach):
|
|
14
|
+
1. **LLM làm bộ não (Brain):** Xử lý ngữ cảnh, lập dàn ý, tư duy cấu trúc Đề – Thuyết và sinh bản thảo tự nhiên.
|
|
15
|
+
2. **NLP truyền thống làm cảm biến (Sensors):** Đo lường bề mặt, phân tích ranh giới từ, phát hiện sáo ngữ và kiểm toán ngữ âm/nhịp điệu mà không can thiệp thô bạo.
|
|
16
|
+
3. **JSON Schema & Anchor Guardrails:** Rào chắn dữ liệu (`immutable_anchors`) ngăn chặn việc làm biến dạng số liệu, tên riêng hoặc đảo ngược chuỗi nhân quả kỹ thuật khi biên tập.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 🚀 Tính năng cốt lõi trong v0.1.0
|
|
21
|
+
|
|
22
|
+
- **State Machine 4 trạng thái:** Phân định rõ ràng giữa `clean_rewrite`, `no_change`, `review_comment`, và `needs_author_decision`.
|
|
23
|
+
- **Anti-Corruption Adapter (`upstream_adapter.py`):** Tách biệt và bảo vệ hệ thống khỏi sự thay đổi của upstream linter (`vietnamese-writing-skills`), tự động kích hoạt bộ quy tắc nội tại khi chạy độc lập, đồng thời che chắn code fences, URLs, emails để chống báo lỗi giả.
|
|
24
|
+
- **Fail-Fast Schema Validation:** Kiểm định cấu trúc `VoiceProfile` và `DraftManifest` theo chuẩn JSON Schema Draft 2020-12 ngay tại thời điểm khởi tạo.
|
|
25
|
+
- **Anchor-based Semantic Integrity Checks:** Đối soát các điểm neo dữ kiện bất biến (`immutable_anchors`) với cơ chế chuẩn hóa khoảng trắng, Unicode tổ hợp (NFC) và ranh giới từ, loại bỏ tình trạng báo lỗi giả và bảo toàn số liệu/thực thể.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 🗺 Lộ trình Phát triển 2 Trục Song hành (Roadmap to v1.0)
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
Trục A: Năng lực Ngôn ngữ Trục B: Năng lực Tạo sinh
|
|
33
|
+
(Deterministic NLP & Linguistic Sensors) (Agentic Drafting & Voice Profiling)
|
|
34
|
+
│ │
|
|
35
|
+
v0.1 (Current) ├─ Schema Validation & Regex ACL Adapter ├─ Basic Orchestrator & CLI
|
|
36
|
+
│ │
|
|
37
|
+
v0.2 ├─ Segmentation, Normalization & Context Rules ├─ Native Drafter (Workflow Planner)
|
|
38
|
+
│ │
|
|
39
|
+
v0.3 ├─ Register & Dialect Modeling (Bắc/Trung/Nam) ├─ Voice Profiler & Feature Extraction
|
|
40
|
+
│ │
|
|
41
|
+
v0.4 ├─ Prosody Analyzer (Nhịp điệu & Bằng - Trắc) ├─ Deep Semantic & Causal Audit
|
|
42
|
+
│ │
|
|
43
|
+
└─────────────────────────┬────────────────────────┘
|
|
44
|
+
▼
|
|
45
|
+
v1.0 Integrated Vietnamese Writing Agent
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 💻 Cài đặt & Sử dụng
|
|
51
|
+
|
|
52
|
+
### 1. Cài đặt môi trường phát triển (Python 3.11 – 3.14+)
|
|
53
|
+
```bash
|
|
54
|
+
git clone https://github.com/vantruong-dang/vietnamese-writing-intelligence.git
|
|
55
|
+
cd vietnamese-writing-intelligence
|
|
56
|
+
python -m pip install -e ".[dev]"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 2. Chạy bộ kiểm thử (Unit Tests)
|
|
60
|
+
```bash
|
|
61
|
+
pytest -v
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 3. Sử dụng qua dòng lệnh (CLI)
|
|
65
|
+
```bash
|
|
66
|
+
vn-intel audit <file_van_ban.txt> --profile profiles/systems_architect.json --manifest <file_manifest.json>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 📚 Tham khảo, Nguồn cảm hứng & Ghi công (Acknowledgments)
|
|
72
|
+
|
|
73
|
+
Dự án **Vietnamese Writing Intelligence** được xây dựng trên sự kế thừa, chắt lọc triết lý và kiến trúc từ các dự án nguồn mở tiên phong:
|
|
74
|
+
|
|
75
|
+
### 1. Dự án Thượng nguồn Trực tiếp (Upstream & Linguistic Baseline)
|
|
76
|
+
* **[longhang2004/vietnamese-humanizer](https://github.com/longhang2004/vietnamese-humanizer)** (Sản phẩm: *Vietnamese Writing Skills* / PyPI: `vietnamese-writing-skills`) của tác giả Hàng Nhựt Long (@longhang2004) và Lê Ngọc Phương Thư:
|
|
77
|
+
- *Kế thừa & tích hợp:* State Machine 4 chế độ đầu ra (`clean_rewrite`, `no_change`, `review_comment`, `needs_author_decision`), triết lý bảo toàn dữ kiện ngữ nghĩa (Semantic Preservation), và taxonomy phân loại lỗi bề mặt tiếng Việt.
|
|
78
|
+
|
|
79
|
+
### 2. Chuẩn mực Agent Skills & Khử văn phong AI (Agentic & De-AI Paradigms)
|
|
80
|
+
* **[anthropics/skills](https://github.com/anthropics/skills):** Cấu trúc đặc tả Agent Skill chuẩn hóa (`SKILL.md`) với Metadata YAML frontmatter và cơ chế phân tách Mode vận hành.
|
|
81
|
+
* **[blader/humanizer](https://github.com/blader/humanizer):** Hệ thống 25+ negative patterns nhận diện dấu vân tay máy tính của RLHF và quy trình tự phê bình (Self-Critique Loop).
|
|
82
|
+
* **[danielmiessler/fabric](https://github.com/danielmiessler/fabric):** Triết lý module hóa Unix cho prompt/pattern (`humanize`, `improve_writing`).
|
|
83
|
+
* **[JuliusBrussee/caveman](https://github.com/JuliusBrussee/caveman):** Kỹ thuật nén mật độ thông tin cao, cắt bỏ từ đệm và triệt tiêu đại từ nhân xưng thừa thãi.
|
|
84
|
+
* **[obra/superpowers](https://github.com/obra/superpowers):** Cơ chế kiểm định ngầm nội bộ (Internal Verification Gate) trước khi trả kết quả.
|
|
85
|
+
* **[ComposioHQ/awesome-claude-skills](https://github.com/ComposioHQ/awesome-claude-skills):** Tuyển tập kiến trúc kỹ năng và phương pháp phân lập ngữ vực (Persona Engineering).
|
|
86
|
+
|
|
87
|
+
### 3. Hệ sinh thái Xử lý Ngôn ngữ Tự nhiên Tiếng Việt (Vietnamese NLP Ecosystem)
|
|
88
|
+
Dự án tham chiếu các nghiên cứu và công cụ nền tảng cho Roadmap từ v0.2:
|
|
89
|
+
* **[Underthesea](https://github.com/undertheseanlp/underthesea):** Hệ thống NLP tiếng Việt phục vụ phân tích hình thái, tách từ (Word Segmentation) và gán nhãn từ loại (POS Tagging).
|
|
90
|
+
* **[VnCoreNLP](https://github.com/vncorenlp/VnCoreNLP):** Bộ công cụ xử lý ngôn ngữ tự nhiên tiếng Việt chuẩn học thuật (tách từ, gán nhãn, phân tích cú pháp phụ thuộc).
|
|
91
|
+
* **[PyVi](https://github.com/trungngv/pyvi):** Thư viện Python nhẹ cho tác vụ phân đoạn từ và nhận diện thực thể tiếng Việt.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 📄 Bản quyền (License)
|
|
96
|
+
|
|
97
|
+
Dự án được phân phối dưới giấy phép **[MIT License](LICENSE)**.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Knowledge-to-Architecture Map (v0.2.0)
|
|
2
|
+
*Cơ chế chuyển hóa tri thức từ 7 Repository nguồn mở và 11 Tiên đề Ngôn ngữ học tiếng Việt thành các thành phần kiến trúc có thể đo lường.*
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## 📌 Tổng quan Chiến lược
|
|
7
|
+
|
|
8
|
+
Dự án **Vietnamese Writing Intelligence** không được định vị như một bản nâng cấp linter hay một lớp wrapper đơn giản quanh LLM. Mục tiêu của dự án là xây dựng một **nền tảng hiểu, tạo sinh, phân tích và biên tập tiếng Việt có nhận thức sâu sắc về ngôn ngữ, ngữ cảnh, thể loại và giọng văn**.
|
|
9
|
+
|
|
10
|
+
Mọi thiết kế kỹ thuật đều tuân thủ nguyên tắc phân định 3 cấp độ:
|
|
11
|
+
1. **Đã tham khảo (Referenced):** Tiếp thu ý tưởng, triết lý thiết kế.
|
|
12
|
+
2. **Đã chuyển hóa thành thiết kế (Architected):** Cụ thể hóa thành Data Contracts, Schema, Interfaces và State Machine.
|
|
13
|
+
3. **Đã triển khai & kiểm chứng (Implemented & Validated):** Có mã nguồn thực thi, có unit tests và benchmark định lượng độc lập.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 🗺 Phần I: Ma trận Chuyển hóa từ 7 Repository Mã nguồn Mở
|
|
18
|
+
|
|
19
|
+
| Repository Nguồn | Nguyên lý / Tri thức cốt lõi | Module tiếp nhận trong V3 | Cơ chế Kỹ thuật (Technical Mechanism) | Chỉ số Kiểm chứng (Evaluation Metric) |
|
|
20
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
21
|
+
| **[longhang2004/vietnamese-humanizer](https://github.com/longhang2004/vietnamese-humanizer)** | **State Machine & Preservation Sheet** | `orchestrator.py` & `validators.py` | 4 trạng thái quyết định (`clean_rewrite`, `no_change`, `review_comment`, `needs_author_decision`); cơ chế che chắn code block/URL/email (`mask_protected`). | Tỷ lệ can thiệp không cần thiết (Unnecessary Rewrite Rate $\le 5\%$). |
|
|
22
|
+
| **[anthropics/skills](https://github.com/anthropics/skills)** | **Declarative Agent Specification** | `skills/*/SKILL.md` | Định dạng chuẩn YAML Frontmatter, phân lập ranh giới `Trigger When` vs `Do Not Use When`, chuẩn hóa Input/Output context. | Khả năng tương thích parser với Claude Code CLI / Cursor rules (100% Valid YAML & Specs). |
|
|
23
|
+
| **[blader/humanizer](https://github.com/blader/humanizer)** | **Negative Patterns & Critique Loop** | `linguistics/context_rules.py` & `drafting/` | Quét dấu vân tay AI (Perplexity thấp, triadic balance) + quy trình 2-Pass: Sinh bản thảo tự do $\rightarrow$ Tự phản biện độc lập. | Giảm tỷ lệ sáo ngữ AI (AI Cliche Reduction Rate $\ge 90\%$). |
|
|
24
|
+
| **[danielmiessler/fabric](https://github.com/danielmiessler/fabric)** | **Unix Philosophy for AI Patterns** | `drafting/planner.py` | Chia nhỏ tác vụ viết thành các pattern đơn nhiệm (Single-purpose patterns): trích xuất luận điểm, dàn ý Đề-Thuyết, biên tập vi mô. | Tỷ lệ hoàn thành tác vụ chuyên biệt (Task Precision) không bị trôi ngữ cảnh. |
|
|
25
|
+
| **[JuliusBrussee/caveman](https://github.com/JuliusBrussee/caveman)** | **Information Density & Pruning** | `linguistics/phrase_analysis.py` | Cắt tỉa hư từ rỗng, triệt tiêu đại từ thừa (*nó, điều này*), tối đa hóa tỷ lệ Động từ/Danh từ thực (Verb-to-Noun signal). | Mật độ thông tin (Token-to-Fact Ratio: giảm số từ thừa mà giữ nguyên số dữ kiện). |
|
|
26
|
+
| **[obra/superpowers](https://github.com/obra/superpowers)** | **Test-First & Verification Gates** | `tests/` & `validation/semantic_audit.py` | Kiểm toán độc lập trước khi trả về kết quả; không tin tưởng đầu ra LLM nếu chưa vượt qua bài test dữ kiện bất biến. | Tỷ lệ rò rỉ dữ kiện sai (Hallucination Escape Rate $= 0\%$). |
|
|
27
|
+
| **[ComposioHQ/awesome-claude-skills](https://github.com/ComposioHQ/awesome-claude-skills)** | **Persona & Register Engineering** | `schemas/voice-profile.schema.json` | Phân lập rõ ràng giữa Ngữ vực (Register), Ngữ điệu (Tone) và Vai vế giao tiếp (Relationship) thay vì gộp chung vào một prompt mơ hồ. | Độ nhất quán văn phong giữa các phân đoạn (Cross-paragraph Tone Consistency $\ge 95\%$). |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 🇻🇳 Phần II: Ma trận Chuyển hóa từ 11 Tiên đề Ngôn ngữ học Tiếng Việt
|
|
32
|
+
|
|
33
|
+
*Nguồn cảm hứng học thuật trực tiếp từ khảo cứu của cố GS. **Cao Xuân Hạo** (*Tiếng Việt Văn Việt Người Việt*) và học giả **Nguyễn Hiến Lê** (*Cổ văn Trung Quốc*).*
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
HỆ THỐNG NGÔN NGỮ HỌC TIẾNG VIỆT
|
|
37
|
+
│
|
|
38
|
+
┌────────────────────────┬─────────────┴────────────┬────────────────────────┐
|
|
39
|
+
▼ ▼ ▼ ▼
|
|
40
|
+
[1. Ngữ dụng & Cấu trúc] [2. Cú pháp & Từ loại] [3. Ngữ âm & Nhịp điệu] [4. Ngữ vực & Xã hội]
|
|
41
|
+
- Cấu trúc Đề – Thuyết - Danh hóa có điều kiện - Phối thanh Bằng - Trắc - Ma trận Xưng hô Thân tộc
|
|
42
|
+
- Khung đề vs Chủ đề - Động từ hóa hành động - Nhịp ngắt Tiểu đối - Phân lập Ngữ vực & Phương ngữ
|
|
43
|
+
- Tỉnh lược Chủ ngữ - Hiện thực vs Giả định - Tiếng & Danh từ đơn vị - Bẫy Trùng ngữ vs Ngoại lệ
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
| Tiên đề Ngôn ngữ học | Bản chất Ngôn ngữ bản địa | Sai lầm của AI/Linter thông thường | Chuyển hóa Kỹ thuật vào Kiến trúc V3 | Phương pháp Kiểm chứng (Validation) |
|
|
47
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
48
|
+
| **1. Cấu trúc Đề – Thuyết (Topic – Comment)** | Tiếng Việt là ngôn ngữ thiên về Chủ đề (Topic-prominent). Đưa khung cảnh/đối tượng làm tiền đề (Đề), phán đoán theo sau (Thuyết). | Ép câu văn vào cấu trúc Chủ ngữ – Động từ (SVO) ngô nghê dịch từ tiếng Anh. | `drafting/planner.py` tạo `TopicCommentPlan`: bắt buộc xác định rõ "Khung cảnh/Chủ đề" trước khi gán "Vị ngữ/Hành động". | Cặp đối chứng: Câu SVO gượng ép vs Câu Đề-Thuyết tự nhiên (Human Rating). |
|
|
49
|
+
| **2. Tỉnh lược Chủ ngữ (Zero Anaphora)** | Tiếng Việt định vị chủ thể qua ngữ cảnh diễn ngôn. Khi chủ đề đã rõ, câu hoàn toàn không cần đại từ nhân xưng. | Liên tục chèn *"nó", "chúng ta", "họ", "điều này"* vào đầu mỗi câu văn. | `linguistics/phrase_analysis.py` phát hiện đại từ thừa sau dấu chấm nếu ngữ cảnh không đổi chủ thể; tự động gợi ý lược bỏ. | Tỷ lệ loại bỏ đại từ rác mà không gây mơ hồ ngữ nghĩa (Ambiguity Check). |
|
|
50
|
+
| **3. Cơ chế Danh hóa có điều kiện (Nominalization)** | Hư từ *sự/việc* đứng trước Động từ chỉ là một dạng danh hóa; nhiều trường hợp là danh từ thực (*việc này*) hoặc thành ngữ cố định (*sự tích*). | Phạt mù quáng mọi sự xuất hiện của `việc/sự + V`. | `linguistics/context_rules.py` phân tích 3 tầng: (1) Cụm cố định $\rightarrow$ Bỏ qua; (2) Chủ ngữ mệnh đề $\rightarrow$ Chấp nhận; (3) Đi sau động từ hành động $\rightarrow$ Cảnh báo. | Precision / Recall trên tập dữ liệu benchmark danh từ hóa. |
|
|
51
|
+
| **4. Hư từ & Tình thái từ (Discourse Particles)** | Hệ thống tình thái từ cuối câu (*nhỉ, cơ, chứ, đa, nghen*) và liên từ khẩu ngữ (*khổ nỗi, hóa ra*) định hình quan hệ và cảm xúc. | Nhồi nhét bừa bãi để giả làm "văn người" (gây cảm giác blogger gồng), hoặc cấm sạch khiến câu văn chết cứng. | `voice-profile.schema.json` quản lý cờ `colloquial_particles_allowed` gắn chặt với `register`. Phân định rõ văn bản học thuật (cấm) vs đàm thoại (cho phép). | Kiểm tra tính phù hợp ngữ vực (Register Compliance Rate). |
|
|
52
|
+
| **5. Cân bằng Bằng – Trắc & Nhịp điệu (Prosody)** | Văn xuôi tự nhiên của người Việt có tính nhạc ngầm: nhịp chẵn (2/2, 4/4) và phân bổ thanh điệu (Bằng: ngang/huyền; Trắc: sắc/hỏi/ngã/nặng). | Đánh giá văn phong chỉ qua số đếm từ (Word count) hoặc ép câu ngắn cụt lủn. | `linguistics/prosody.py` (chỉ đóng vai trò Sensor phân tích, không phạt cứng): cảnh báo chuỗi âm trắc gắt gỏng hoặc nhịp câu mất cân đối ở đuôi đoạn. | So sánh phân phối thanh điệu với Pre-LLM Gold Corpus (Distribution Drift). |
|
|
53
|
+
| **6. Cấu trúc Hán-Việt vs Thuần Việt** | Từ Hán-Việt mang tính trừu tượng, trang trọng, cô đọng; từ thuần Việt mang tính gợi hình, đời thường, cụ thể. | Trộn lẫn từ Hán-Việt cổ với khẩu ngữ hiện đại trong cùng một đoạn văn. | `linguistics/pos.py` & `lexical_audit.py` đo mật độ Hán-Việt (`sino_vietnamese_density`) theo 3 mức: *bình dân, cân bằng, học thuật cao*. | Tỷ lệ lệch tông từ vựng (Lexical Tone Drift $\le 2\%$). |
|
|
54
|
+
| **7. Phân tầng Ngữ vực (Registers) độc lập với Phương ngữ** | Một nhà khoa học miền Nam viết báo cáo khoa học vẫn dùng từ toàn dân trang trọng; người miền Bắc viết kịch vẫn dùng phương ngữ Nam Bộ. | Đồng nhất "phương ngữ" với "từ sai chuẩn" hoặc đánh đồng ngữ vực thân mật với phương ngữ. | Tách rời 2 trục trong schema: `register` (học thuật, hành chính, thân mật...) và `dialect_bias` (Bắc, Trung, Nam, Toàn dân). | Ma trận kiểm thử chéo 4 Ngữ vực $\times$ 3 Vùng miền. |
|
|
55
|
+
| **8. Quan hệ Xưng hô Thân tộc hóa (Kinship Honorifics)** | Tiếng Việt không có đại từ trung tính tuyệt đối như *You/I*; đại từ phản ánh vị thế xã hội, tuổi tác, sự tôn trọng và khoảng cách quyền lực. | AI dùng lộn xộn *"bạn - tôi"*, *"chúng tôi - chúng ta"* (bao gồm hay loại trừ người nghe). | `validation/register_audit.py` kiểm tra tính nhất quán của ngôi xưng: cấm lẫn lộn giữa *chúng tôi* (exclusive) và *chúng ta* (inclusive). | Consistency Check trên toàn văn bản (Pronoun Drift $= 0$). |
|
|
56
|
+
| **9. Phân định Khung đề (Range Topic) vs. Chủ đề (Instance Topic) & Triệt tiêu Câu khuyết tật** | Khung đề giới hạn phạm vi không gian/thời gian (*Trong tình hình này*), Chủ đề là thực thể trung tâm. Không được biến Khung đề thành chủ ngữ cho vị từ hành động. | AI và báo chí tạo câu khuyết tật: `*Trong tình hình này đòi hỏi...`, `*Bằng những hình tượng sắc nét đã cho thấy...`. | `linguistics/phrase_analysis.py` phát hiện Giới ngữ mở đầu đi kèm vị từ ngoại động thiếu Chủ đề thực sự; tự động cảnh báo hoặc tái cấu trúc chuẩn bản địa. | Tỷ lệ phát hiện câu khuyết tật không vị ngữ (Crippled Sentence Detection $\ge 90\%$). |
|
|
57
|
+
| **10. Phạm trù Hiện thực vs. Giả định (`Tuy` vs. `Dù`) & Khoảng cách Thời gian** | `Tuy / Mặc dầu` chỉ dùng cho sự việc đã/đang có thật. `Dù / Cho dù` chỉ dùng cho sự thể giả định, chưa xảy ra. Khoảng cách thời gian ưu tiên Khung đề (*Ba ngày nữa John về*). | AI lẫn lộn: `*Ngày mai tuy mưa to tôi vẫn đến` (sai logic); dịch thô: `*John sẽ về trong ba ngày`. | `linguistics/context_rules.py` phân tích tính giả định qua trạng ngữ thời gian để phát hiện dùng sai `dù` vs `tuy`; chuyển đổi cấu trúc thời gian thô sang Khung đề. | Test cases phân biệt `Dù` vs `Tuy` đạt độ chính xác 100%. |
|
|
58
|
+
| **11. Thực thể tính của Danh từ đơn vị (Unitizers) & Kiểm soát Trùng ngữ (Pleonasm)** | *Cái, con, bức, tấm* là Danh từ đơn vị mang đầy đủ vật tính (reity). Trùng ngữ logic cần loại bỏ, nhưng phải miễn trừ cho ngữ nghĩa thân tộc bản địa (*anh trai, chị gái* = ruột thịt). | Phạt nhầm danh từ đơn vị độc lập (*Tôi ăn hai cái*); hoặc phạt nhầm danh từ thân tộc ruột thịt (*anh trai, chị gái*). | `validation/lexical_audit.py` tích hợp từ điển trùng ngữ logic (`tối ưu nhất`, `nguyên nhân là vì`) đồng thời cấu hình danh sách miễn trừ thân tộc. | False Positive trên danh từ đơn vị và từ thân tộc $= 0\%$. |
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 🎯 Phần III: Tiêu chuẩn Nghiệm thu Định lượng cho Sprint v0.2.0
|
|
63
|
+
|
|
64
|
+
### 1. Cổng Kiểm định Ngôn ngữ (Linguistic Quality Gate - Trục A)
|
|
65
|
+
* **Tập dữ liệu kiểm chuẩn (Benchmark Corpus):** Tạo `tests/data/linguistic_gold_standard.jsonl` gồm **200 câu tiếng Việt** có gán nhãn thủ công (Ground Truth) chia đều cho 4 nhóm:
|
|
66
|
+
- **Nhóm 1 (50 câu):** Danh từ hóa 3 tầng (*danh từ gốc, chủ ngữ trừu tượng hợp lệ, danh từ hóa sáo rỗng `sự/việc`*).
|
|
67
|
+
- **Nhóm 2 (50 câu):** Cấu trúc Đề – Thuyết và phát hiện câu khuyết tật Khung đề vs Chủ đề (*"Trong tình hình này đòi hỏi..."*), tác tử phân giới `thì`.
|
|
68
|
+
- **Nhóm 3 (50 câu):** Hiện thực vs. Giả định (`Tuy` vs `Dù`), khoảng cách thời gian (*"ba ngày nữa"*), bẫy trùng ngữ (`tối ưu nhất` vs miễn trừ `anh trai/chị gái`).
|
|
69
|
+
- **Nhóm 4 (50 câu):** Bảo vệ thuật ngữ, code block, công thức số liệu và văn biền ngẫu đối xứng tầng bậc (ngữ liệu từ Nguyễn Hiến Lê).
|
|
70
|
+
* **Chỉ số đo lường (Metrics):**
|
|
71
|
+
- **Context-Rule Precision:** $\ge 85\%$ (không được báo lỗi oan cho câu danh hóa hợp lệ).
|
|
72
|
+
- **Context-Rule Recall:** $\ge 80\%$ (bắt được các cấu trúc dịch thô sáo rỗng thực sự).
|
|
73
|
+
- **False Positive trên Code/Thuật ngữ/Danh từ đơn vị:** $0\%$ (nhờ tầng che chắn và từ điển miễn trừ).
|
|
74
|
+
|
|
75
|
+
### 2. Cổng Kiểm định Tạo sinh (Generative Quality Gate - Trục B)
|
|
76
|
+
* **Bảo toàn dữ kiện (Anchor Preservation):**
|
|
77
|
+
- Mọi bản nháp sinh ra từ `DraftPlanner` + `BaseLLMProvider` khi chạy qua `SemanticAuditor` phải đạt:
|
|
78
|
+
$$\text{Metrics Retention} = 100\% \quad \text{và} \quad \text{Domain Terms Retention} = 100\%$$
|
|
79
|
+
* **Không phụ thuộc Vendor (Vendor Agnostic):**
|
|
80
|
+
- Có thể thay thế liền mạch giữa `MockLLMProvider` (dùng cho CI/CD), `OllamaProvider` (chạy local offline) và `Anthropic/OpenAIProvider` mà không phải sửa code trong `DraftPlanner`.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profile_id": "systems_architect",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"syntactic_signature": {
|
|
5
|
+
"clause_chaining_style": "hypotactic_causal",
|
|
6
|
+
"allow_long_sentences": true,
|
|
7
|
+
"max_sentence_word_budget": 70
|
|
8
|
+
},
|
|
9
|
+
"lexical_preferences": {
|
|
10
|
+
"sino_vietnamese_density": "high_academic_precision",
|
|
11
|
+
"colloquial_particles_allowed": false,
|
|
12
|
+
"english_term_retention": "strict_preserve_technical"
|
|
13
|
+
},
|
|
14
|
+
"pattern_overrides": {
|
|
15
|
+
"NOMINALIZATION_HEAVY": {
|
|
16
|
+
"enforcement": "disabled"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "vietnamese-writing-intelligence"
|
|
7
|
+
version = "0.2.1"
|
|
8
|
+
description = "An agentic framework for native Vietnamese writing, voice profiling, and fact-preserving text refinement."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "Van-Truong Dang", email = "vantruong-dang@users.noreply.github.com" }
|
|
14
|
+
]
|
|
15
|
+
keywords = ["vietnamese", "nlp", "llm", "agent-skills", "writing", "humanizer", "mcp"]
|
|
16
|
+
dependencies = [
|
|
17
|
+
"jsonschema>=4.20.0",
|
|
18
|
+
"vietnamese-writing-skills>=0.4.6,<0.6.0",
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
[project.optional-dependencies]
|
|
22
|
+
dev = [
|
|
23
|
+
"pytest>=8.0.0",
|
|
24
|
+
"ruff>=0.4.0",
|
|
25
|
+
"build>=1.0.0",
|
|
26
|
+
]
|
|
27
|
+
mcp = [
|
|
28
|
+
"mcp>=1.1.0",
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
[project.scripts]
|
|
32
|
+
vn-intel = "vn_writing_intel.cli:main"
|
|
33
|
+
|
|
34
|
+
[tool.hatch.build.targets.wheel]
|
|
35
|
+
packages = ["src/vn_writing_intel"]
|
|
36
|
+
|
|
37
|
+
[tool.hatch.build.targets.wheel.force-include]
|
|
38
|
+
"schemas" = "vn_writing_intel/schemas"
|
|
39
|
+
"tests/data/linguistic_gold_standard.jsonl" = "vn_writing_intel/data/linguistic_gold_standard.jsonl"
|
|
40
|
+
|
|
41
|
+
[tool.ruff]
|
|
42
|
+
target-version = "py311"
|
|
43
|
+
line-length = 100
|
|
44
|
+
|
|
45
|
+
[tool.ruff.lint]
|
|
46
|
+
select = ["E", "F", "W", "I", "UP", "B", "C4", "RUF"]
|
|
47
|
+
ignore = [
|
|
48
|
+
"BLE001", # Cho phép CLI bắt Exception cấp cao để in thông báo thân thiện
|
|
49
|
+
"E501", # Cho phép chuỗi văn bản tiếng Việt / regex dài trong dữ liệu và luật
|
|
50
|
+
"RUF001", # Cho phép dấu nháy đơn cong (‘ ’) trong module chuẩn hóa dấu câu tiếng Việt
|
|
51
|
+
]
|
|
52
|
+
|
|
53
|
+
[tool.ruff.lint.isort]
|
|
54
|
+
combine-as-imports = true
|