/
Paff
/
declarant
Обзор
Документация
Войти
/
Paff
/
declarant
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
test_final.py
43 строки
2 KB
1pash1985-gif
Unified doc list UI + AI prompt for FORM_A
05 авг 2026, 10:09
05 авг 2026, 10:09
e439f08
Код
Авторство
О чём код?
"""Final test: ensemble with deepseek-chat + URL stripping on the actual file.""" import sys, os, logging sys.path.insert(0, '/app/web') os.chdir('/app/web') logging.basicConfig(level=logging.INFO, format='%(name)s - %(levelname)s - %(message)s') from ai_parser import extract_text_from_excel from ai_ensemble import parse_invoice_with_ensemble from config import DEEPSEEK_MODEL xls_path = '/tmp/test_invoice.xls' print(f'Model: {DEEPSEEK_MODEL}') print(f'Reading: {xls_path}') text = extract_text_from_excel(xls_path) print(f'Extracted text: {len(text)} chars (~{len(text)//4} tokens)') print(f'First 200 chars: {repr(text[:200])}') print('---') print('Starting ensemble parse...') result = parse_invoice_with_ensemble(text) print('=== RESULT ===') if isinstance(result, dict): if 'error' in result: print(f'ERROR: {result["error"]}') else: print(f'Supplier: {result.get("supplier_name", result.get("supplier", "N/A"))}') print(f'Invoice number: {result.get("invoice_number", "N/A")}') print(f'Date: {result.get("invoice_date", result.get("date", "N/A"))}') items = result.get('items', []) print(f'Items: {len(items)}') if items: print(f' First item: {items[0]}') meta = result.get('_ensemble_meta', {}) print(f'Ensemble status: {meta.get("status", "N/A")}') print(f'Debate rounds: {meta.get("debate_rounds", "N/A")}') print(f'Total tokens: {meta.get("total_tokens", "N/A")}') print(f'Latency: {meta.get("total_latency_sec", "N/A")}s') for mo in meta.get('model_outputs', []): print(f' Model: {mo["model"]}, error: {mo.get("error")}, tokens: {mo.get("tokens")}, latency: {mo.get("latency_sec")}s') else: print(f'Unexpected result type: {type(result)}') print(result)