From 37894ebd08ad3b7884d0fe7e20a4bced0869b22f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Sun, 14 Jun 2026 08:06:24 +0400 Subject: [PATCH] =?UTF-8?q?feat(test):=20action=20'extract'=20=E2=80=94=20?= =?UTF-8?q?=D0=B8=D0=B7=D0=B2=D0=BB=D0=B5=D1=87=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D1=81=D1=82=D1=80=D0=BE=D0=BA=20=D1=81=D0=BF=D0=B5=D1=86=D0=B8?= =?UTF-8?q?=D1=84=D0=B8=D0=BA=D0=B0=D1=86=D0=B8=D0=B8=20=D1=87=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=B7=20LLM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- site/test_routes.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/site/test_routes.py b/site/test_routes.py index 0f3a133..9fb098f 100644 --- a/site/test_routes.py +++ b/site/test_routes.py @@ -17,6 +17,7 @@ from psycopg2 import sql as psysql from flask import Blueprint, jsonify, request import db import llm_client +import extractor test_bp = Blueprint("test", __name__) @@ -41,6 +42,7 @@ def test(): "POST /test tables — список таблиц", "POST /test exec {...} — INSERT/UPDATE/DDL (без fetch)", "POST /test llm {...} — тест LLM (промпт → ответ)", + "POST /test extract {...} — извлечь строки из parsed_text", "POST /test sql {...} — SELECT (с fetch)", ], }) @@ -116,6 +118,29 @@ def test(): return jsonify(result), 500 return jsonify(result) + if action == "extract": + # Извлечь строки спецификации из текста документа + doc_id = data.get("document_id") + if doc_id: + # Взять текст из БД + doc, err = db.query_one( + "SELECT parsed_text FROM documents WHERE id = %s AND status = 'parsed'", + (doc_id,), + ) + if err or not doc: + return jsonify({"error": f"document not found: {err}"}), 404 + parsed_text = doc["parsed_text"] + else: + parsed_text = data.get("text", "") + + if not parsed_text: + return jsonify({"error": "no parsed_text"}), 400 + + result = extractor.extract(parsed_text) + if "error" in result: + return jsonify(result), 500 + return jsonify(result) + if action == "debug": # Показать переменные окружения (с маскировкой ключей) import os as _os