Files
contracts/History/opus-prompt-v2.md
2026-06-23 09:07:26 +04:00

3.3 KiB

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(). Поэтому фигурные скобки оставляем одинарными.

Статус

  • Opus выдал готовые промпты
  • Заменить в llm_prompt.py
  • Обновить в БД (сохранить как новую версию)
  • Bump + пуш + синк VM