Loading module
Resolving locale, route permissions, and workspace projection.
Resolving locale, route permissions, and workspace projection.
Текущая область: Гость
Категория: 10_normative | Версия: v1.0.0
Владелец: DOCUMENT_CUSTODIAN | Цикл пересмотра: 90 дней
Утверждающий орган: GOVERNANCE_ADMIN
Портал документации доступен только для чтения. Редактирование и mutation endpoints отключены.
Платформа Kvary изначально создана на грузинском языке. Там, где существует грузинская версия, именно грузинский язык является авторитетным для UI платформы, документации и юридического толкования.
Переводы на другие языки предоставляются только для удобства. Отдельные записи и flow могут изначально существовать на других языках и иметь собственный source/legal locale, но там, где доступна грузинская версия, для формулировок и толкования на уровне платформы приоритет имеет грузинский текст.
Метаданные неполные: Document ID, Version, Status, Owner Role, Last Review Date, Next Review Date, Change Log
Preferred ingestion path is deterministic parser (xlsx -> JSON payload -> upsert).
Use RAG/chunking only for semantic search and assistant UX, not as source-of-truth ingest.
butkhuzi_norms supports localized titles via title_i18n JSON map.
Upsert payload row can include:
{
"title": "Основной заголовок",
"titleI18n": {
"ru": "Основной заголовок",
"en": "Primary heading",
"ka": "ძირითადი სათაური"
}
}
Component rows can also include localized labels via components[].labelI18n.
127.0.0.1:5432services/api and services/svc-tenders)openpyxl is required for XLSX parser)/mnt/c/Users/User/Downloads/სახარჯთაღრიცხვო გაანგარიშება_ ტომი V-2.xlsxnpm --prefix services/svc-tenders run migrate
This creates butkhuzi_norms table.
npm run butkhuzi:build-payload:xlsx -- \
--inputXlsx "/mnt/c/Users/User/Downloads/სახარჯთაღრიცხვო გაანგარიშება_ ტომი V-2.xlsx" \
--sourceVersion "SNIP-2026-Q1"
Outputs:
tmp/outputs/butkhuzi_upsert_payload_xlsx.json (or custom --output)tmp/outputs/butkhuzi_build_report_xlsx.json (or custom --report)Direct python invocation (WSL-safe):
python3 scripts/butkhuzi-build-payload-xlsx.py \
--inputXlsx "/mnt/c/Users/User/Downloads/სახარჯთაღრიცხვო გაანგარიშება_ ტომი V-2.xlsx" \
--sourceVersion "SNIP-2026-Q1" \
--output "tmp/outputs/butkhuzi_upsert_payload_v2_xlsx.json" \
--report "tmp/outputs/butkhuzi_build_report_v2_xlsx.json"
npm run butkhuzi:build-payload -- --sourceVersion "SNIP-2026-02"
Optional (fast test on first files only):
npm run butkhuzi:build-payload -- --maxFiles 3
npm run butkhuzi:upsert
Upsert custom payload path (recommended after XLSX parse):
npm run butkhuzi:upsert -- --input tmp/outputs/butkhuzi_upsert_payload_v2_xlsx.json
Dry run:
npm run butkhuzi:upsert -- --dry-run
Default URL:
http://localhost:4001/api/v1/butkhuzi/upsertNotes:
sourceVersion is strongly recommended per import batch (for example: SNIP-2026-Q1).UNVERSIONED.Direct svc-tenders URL:
npm run butkhuzi:upsert -- --url http://localhost:4020/butkhuzi/upsert
curl "http://localhost:4001/api/v1/butkhuzi/norms?page=1&pageSize=20&sourceKey=SNIP&sourceVersion=SNIP-2026-Q1"
curl "http://localhost:4001/api/v1/butkhuzi/suggest?query=1-1&limit=10&sourceKey=SNIP&sourceVersion=SNIP-2026-Q1"
npm run butkhuzi:smoke
After norms are upserted, rebuild chunk index:
curl -X POST "http://localhost:4001/api/v1/butkhuzi/chunks/rebuild" \
-H "content-type: application/json" \
-d '{"sourceKey":"SNIP","sourceVersion":"SNIP-2026-Q1"}'
Search chunks:
curl "http://localhost:4001/api/v1/butkhuzi/search?query=экскаваторы&sourceKey=SNIP&sourceVersion=SNIP-2026-Q1&page=1&pageSize=25"