v1.0.108: advisory lock + NFKC + ID-суррогаты + обогащение ops именами
This commit is contained in:
@@ -39,9 +39,9 @@ def _build_initial(doc_text: str) -> str:
|
||||
|
||||
def _build_diff(current_spec: list, doc_text: str) -> str:
|
||||
lines = []
|
||||
for r in current_spec:
|
||||
for i, r in enumerate(current_spec):
|
||||
lines.append(
|
||||
f"[hash: {r.get('hash', '?')}] {r.get('name', '?')} | "
|
||||
f"[id: r{i+1}] {r.get('name', '?')} | "
|
||||
f"цена={r.get('price', '')} | объём={r.get('qty', '')} | "
|
||||
f"сумма={r.get('sum', '')} | начало={r.get('date_start', '')}"
|
||||
)
|
||||
@@ -59,8 +59,8 @@ def _build_diff(current_spec: list, doc_text: str) -> str:
|
||||
"mode": "partial" | "full_replace",
|
||||
"ops": [
|
||||
{{"action": "ADD", "new_row": {{"name": "...", "price": число, "qty": число, "sum": число, "date_start": "YYYY-MM-DD"}}, "comment": "..."}},
|
||||
{{"action": "UPDATE", "target_hash": "hash_строки", "new_values": {{"price": число}}, "comment": "..."}},
|
||||
{{"action": "DELETE", "target_hash": "hash_строки", "comment": "..."}},
|
||||
{{"action": "UPDATE", "target_id": "rN", "new_values": {{"price": число}}, "comment": "..."}},
|
||||
{{"action": "DELETE", "target_id": "rN", "comment": "..."}},
|
||||
{{"action": "UNRESOLVED", "new_values": {{"name": "...", "price": число, ...}}, "reason": "почему не смог сопоставить"}}
|
||||
]
|
||||
}}
|
||||
@@ -68,7 +68,7 @@ def _build_diff(current_spec: list, doc_text: str) -> str:
|
||||
ПРАВИЛА:
|
||||
1. mode = "full_replace" — если в тексте есть фразы: «в следующей редакции», «заменить приложение», «излагается в следующей редакции». При full_replace — опиши ВСЕ новые строки как ADD.
|
||||
2. mode = "partial" — если ДС меняет только отдельные строки.
|
||||
3. Для UPDATE/DELETE — находи соответствующую строку по target_hash.
|
||||
3. Для UPDATE/DELETE — укажи target_id (r1, r2...) из списка текущей спецификации. НЕ придумывай новые id.
|
||||
4. new_values в UPDATE — только ИЗМЕНЁННЫЕ поля (не все).
|
||||
5. Если не можешь однозначно сопоставить строку — action: UNRESOLVED с reason.
|
||||
6. Пропускай итоговые строки и подписи.
|
||||
|
||||
Reference in New Issue
Block a user