md
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# Opus Prompt Improvement — Few-Shot + Domain Glossary
|
||||
|
||||
Дата: 2026-06-23 | Источник: Opus (раунд 3, старый чат)
|
||||
Связано: llm_prompt.py, prompt-strategy.md, provenance-columns.md
|
||||
|
||||
---
|
||||
|
||||
## Что попросили у Opus
|
||||
|
||||
Улучшить промпты для extract (первый документ) и diff (сравнение ДС). Ключевые требования:
|
||||
- Few-shot примеры на домене ЦОД/colocation
|
||||
- Доменный глоссарий (кВт, юнит, стойко-место, IP, каналы)
|
||||
- Edge-cases инструкция
|
||||
- JSON-формат не менять
|
||||
- Новые actions не добавлять
|
||||
|
||||
## Что Opus выдал
|
||||
|
||||
### EXTRACT
|
||||
- Добавлен доменный глоссарий
|
||||
- 1 few-shot пример (стойко-место + IP-адрес)
|
||||
- Усилены правила чисел и null
|
||||
|
||||
### DIFF
|
||||
- Добавлен доменный глоссарий
|
||||
- 4 few-shot примера:
|
||||
1. `partial`, UPDATE цены
|
||||
2. `partial`, ADD + UPDATE qty + UPDATE мощности (внутри name)
|
||||
3. `full_replace` (новая редакция приложения)
|
||||
4. `UNRESOLVED` (не с чем сопоставить)
|
||||
- Edge-cases: сопоставление по смыслу (не по символам), qty++ = UPDATE, мощность внутри name, приоритет full_replace, null при отсутствии данных
|
||||
|
||||
## Какие проблемы решает
|
||||
|
||||
| Проблема | Решение |
|
||||
|----------|---------|
|
||||
| Модель путает единицы (кВт vs шт.) | Глоссарий |
|
||||
| Не понимает что «Аренда стойко-места» = «Colocation» | Сопоставление по смыслу |
|
||||
| При увеличении qty создаёт ADD вместо UPDATE | Пример 2 |
|
||||
| full_replace: пишет UPDATE вместо ADD | Пример 3 |
|
||||
| Не создаёт UNRESOLVED для незнакомых услуг | Пример 4 |
|
||||
| «55 000,00 руб.» → строка вместо числа | Правило чисел |
|
||||
|
||||
## Размещение
|
||||
|
||||
Два варианта:
|
||||
1. Заменить `FALLBACK_EXTRACT` / `FALLBACK_DIFF` в `llm_prompt.py`
|
||||
2. Обновить активный промпт в БД через UI (вкладка «⚙ Промпты»)
|
||||
|
||||
**Рекомендация:** оба. Fallback в Python — защита если БД недоступна. БД — основной источник. Сделать одновременно.
|
||||
|
||||
## ⚠️ Важно: фигурные скобки в Python
|
||||
|
||||
В Python-строке (тройные кавычки) `{` и `}` НЕ требуют удвоения — они не являются f-string placeholder'ами. Удвоение (`{{`, `}}`) нужно ТОЛЬКО если используется `.format()`. В текущем коде промпты — обычные строки в тройных кавычках, подстановка через `.replace()`. Поэтому фигурные скобки оставляем одинарными.
|
||||
|
||||
## Статус
|
||||
|
||||
- [x] Opus выдал готовые промпты
|
||||
- [ ] Заменить в `llm_prompt.py`
|
||||
- [ ] Обновить в БД (сохранить как новую версию)
|
||||
- [ ] Bump + пуш + синк VM
|
||||
Reference in New Issue
Block a user