refactor: services/ → compare/ + drhider/ (разделение Сверки и Хайдера)
Deploy contracts-flask / validate (push) Successful in 0s
Deploy contracts-flask / validate (push) Successful in 0s
This commit is contained in:
@@ -17,7 +17,7 @@ subprocess.Popen создаёт отдельный питон-процесс с
|
|||||||
import sys, os
|
import sys, os
|
||||||
sys.path.insert(0, os.path.dirname(__file__))
|
sys.path.insert(0, os.path.dirname(__file__))
|
||||||
|
|
||||||
from services.classify import classify_batch
|
from compare.classify import classify_batch
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
if len(sys.argv) < 2:
|
if len(sys.argv) < 2:
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@ import os
|
|||||||
# Ensure deploy/ is on path for imports
|
# Ensure deploy/ is on path for imports
|
||||||
sys.path.insert(0, os.path.dirname(__file__))
|
sys.path.insert(0, os.path.dirname(__file__))
|
||||||
|
|
||||||
from services.llm_client import FakeLLMClient
|
from compare.llm_client import FakeLLMClient
|
||||||
from repository import MemRepository
|
from repository import MemRepository
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -46,9 +46,9 @@ except Exception as _db_err:
|
|||||||
|
|
||||||
# ── Services ──────────────────────────────────────────────────────────────
|
# ── Services ──────────────────────────────────────────────────────────────
|
||||||
if DB_OK:
|
if DB_OK:
|
||||||
from services.upload import handle_upload
|
from compare.upload import handle_upload
|
||||||
from services.unzip import handle_unzip
|
from compare.unzip import handle_unzip
|
||||||
from services.process import run_pipeline
|
from compare.process import run_pipeline
|
||||||
from llm_prompt import build_prompt
|
from llm_prompt import build_prompt
|
||||||
else:
|
else:
|
||||||
handle_upload = handle_unzip = run_pipeline = None
|
handle_upload = handle_unzip = run_pipeline = None
|
||||||
@@ -247,7 +247,7 @@ class Handler(BaseHTTPRequestHandler):
|
|||||||
if not batch_id:
|
if not batch_id:
|
||||||
self._json({"ok": False, "error": "batch required"}, 400)
|
self._json({"ok": False, "error": "batch required"}, 400)
|
||||||
return
|
return
|
||||||
from services.grouping import group_documents
|
from compare.grouping import group_documents
|
||||||
result = group_documents(batch_id)
|
result = group_documents(batch_id)
|
||||||
self._json(result)
|
self._json(result)
|
||||||
|
|
||||||
@@ -325,7 +325,7 @@ class Handler(BaseHTTPRequestHandler):
|
|||||||
if not batch_id:
|
if not batch_id:
|
||||||
self._json({"ok": False, "error": "batch_id required"}, 400)
|
self._json({"ok": False, "error": "batch_id required"}, 400)
|
||||||
return
|
return
|
||||||
from services.grouping import apply_groups
|
from compare.grouping import apply_groups
|
||||||
result = apply_groups(batch_id, groups)
|
result = apply_groups(batch_id, groups)
|
||||||
self._json(result)
|
self._json(result)
|
||||||
|
|
||||||
@@ -509,7 +509,7 @@ class Handler(BaseHTTPRequestHandler):
|
|||||||
# ── /llm-ops (debug) ──────────────────────────────────────────────────
|
# ── /llm-ops (debug) ──────────────────────────────────────────────────
|
||||||
|
|
||||||
def _handle_llm_ops(self):
|
def _handle_llm_ops(self):
|
||||||
from services.llm import call_llm
|
from compare.llm import call_llm
|
||||||
length = int(self.headers.get("Content-Length", 0))
|
length = int(self.headers.get("Content-Length", 0))
|
||||||
body = json.loads(self.rfile.read(length))
|
body = json.loads(self.rfile.read(length))
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ def _hash(name, date_start=None):
|
|||||||
import hashlib
|
import hashlib
|
||||||
key = name.strip().lower()
|
key = name.strip().lower()
|
||||||
if date_start:
|
if date_start:
|
||||||
from services.metrics import normalize_date
|
from compare.metrics import normalize_date
|
||||||
nd = normalize_date(str(date_start))
|
nd = normalize_date(str(date_start))
|
||||||
if nd:
|
if nd:
|
||||||
key += "|" + nd
|
key += "|" + nd
|
||||||
|
|||||||
+25
-5
@@ -1,21 +1,41 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Деплой прокси-слоя на ВМ (5.172.178.213)
|
# Деплой прокси-слоя на ВМ (5.172.178.213)
|
||||||
# Запускать из папки contractor/
|
# Запускать из папки contracts-flask/
|
||||||
|
|
||||||
VM="naeel@5.172.178.213"
|
VM="naeel@5.172.178.213"
|
||||||
SSH_KEY="$HOME/.ssh/naeel_vm_id_ed25519"
|
SSH_KEY="$HOME/.ssh/naeel_vm_id_ed25519"
|
||||||
SSH="ssh -i $SSH_KEY"
|
SSH="ssh -i $SSH_KEY"
|
||||||
SCP="scp -i $SSH_KEY"
|
SCP="scp -i $SSH_KEY"
|
||||||
|
DST="/home/naeel/contracts"
|
||||||
|
|
||||||
|
echo "=== Копирую compare/ ==="
|
||||||
|
$SSH $VM "mkdir -p $DST/compare"
|
||||||
|
$SCP deploy/compare/*.py $VM:$DST/compare/
|
||||||
|
|
||||||
|
echo "=== Копирую drhider/ ==="
|
||||||
|
$SSH $VM "mkdir -p $DST/drhider"
|
||||||
|
$SCP deploy/drhider/*.py $VM:$DST/drhider/
|
||||||
|
|
||||||
echo "=== Копирую конвертер .doc ==="
|
echo "=== Копирую конвертер .doc ==="
|
||||||
$SCP deploy/convert_server.py $VM:/home/naeel/contracts/convert_server.py
|
$SCP deploy/convert_server.py $VM:$DST/convert_server.py
|
||||||
$SCP deploy/convert_doc.py $VM:/home/naeel/contracts/convert_doc.py
|
$SCP deploy/convert_doc.py $VM:$DST/convert_doc.py
|
||||||
|
|
||||||
echo "=== Перезапуск конвертера ==="
|
echo "=== Копирую db/ ==="
|
||||||
$SSH $VM 'pkill -f convert_server.py; sleep 1; nohup python3 /home/naeel/contracts/convert_server.py &>/dev/null &'
|
$SSH $VM "mkdir -p $DST/db"
|
||||||
|
$SCP deploy/db/*.py $VM:$DST/db/
|
||||||
|
|
||||||
|
echo "=== Перезапуск convert_server (systemd) ==="
|
||||||
|
$SSH $VM 'sudo systemctl restart contracts'
|
||||||
|
|
||||||
|
echo "=== Перезапуск drhider_server (systemd) ==="
|
||||||
|
$SSH $VM 'sudo systemctl restart contracts-drhider'
|
||||||
|
|
||||||
|
echo "=== Статус сервисов ==="
|
||||||
|
$SSH $VM 'systemctl is-active contracts contracts-drhider'
|
||||||
|
|
||||||
echo "=== Проверка nginx конфига ==="
|
echo "=== Проверка nginx конфига ==="
|
||||||
$SSH $VM 'sudo nginx -t 2>&1'
|
$SSH $VM 'sudo nginx -t 2>&1'
|
||||||
|
|
||||||
echo "=== Готово ==="
|
echo "=== Готово ==="
|
||||||
echo "Проверка: curl https://contracts.kube5s.ru/convert-doc"
|
echo "Проверка: curl https://contracts.kube5s.ru/convert-doc"
|
||||||
|
echo "Проверка: curl https://contracts.kube5s.ru/api/drhider"
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
"""
|
"""
|
||||||
import sys, os, io, zipfile, json, base64
|
import sys, os, io, zipfile, json, base64
|
||||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
||||||
from services.drhider import obfuscate_files, TwoPassObfuscator, COMPANY_PATTERN, PERSON_PATTERN
|
from drhider.drhider import obfuscate_files, TwoPassObfuscator, COMPANY_PATTERN, PERSON_PATTERN
|
||||||
|
|
||||||
TEST_ZIP = "/home/naeel/nubes/contracts/dogovora/примеры_договоров_для_ИИ.zip"
|
TEST_ZIP = "/home/naeel/nubes/contracts/dogovora/примеры_договоров_для_ИИ.zip"
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
"""Test classify_batch with MemRepository + FakeLLM."""
|
"""Test classify_batch with MemRepository + FakeLLM."""
|
||||||
from services.classify import classify_batch
|
from compare.classify import classify_batch
|
||||||
from services.llm_client import FakeLLMClient
|
from compare.llm_client import FakeLLMClient
|
||||||
from repository import MemRepository
|
from repository import MemRepository
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
"""Unit tests — no DB, no network, just pure logic."""
|
"""Unit tests — no DB, no network, just pure logic."""
|
||||||
import pytest
|
import pytest
|
||||||
from contracts import ParseResult, ClassifyResult, GroupingResult, CompareOp
|
from contracts import ParseResult, ClassifyResult, GroupingResult, CompareOp
|
||||||
from services.upload import parse_multipart
|
from compare.upload import parse_multipart
|
||||||
from services.classify import _is_garbage_by_filename, _is_garbage_by_header
|
from compare.classify import _is_garbage_by_filename, _is_garbage_by_header
|
||||||
|
|
||||||
|
|
||||||
class TestContracts:
|
class TestContracts:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
"""Unit tests for LLM client and Repository — with fakes."""
|
"""Unit tests for LLM client and Repository — with fakes."""
|
||||||
from services.llm_client import FakeLLMClient
|
from compare.llm_client import FakeLLMClient
|
||||||
from repository import MemRepository
|
from repository import MemRepository
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user