/
gr.ev.vl
/
TestGen
Обзор
Документация
Войти
/
gr.ev.vl
/
TestGen
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
scripts/run_worker.txt
102 строки
3 KB
gr.ev.vl
Initial commit
06 июн 2026, 02:41
06 июн 2026, 02:41
02fb1fb
Код
Авторство
О чём код?
""" ������� ������ �����������. """ import asyncio import logging from uuid import UUID from .celery_app import celery_app logger = logging.getLogger(__name__) def _run_async(coro): """��������� ����������� �������� � ���������� ��������� Celery.""" loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) try: return loop.run_until_complete(coro) finally: loop.close() @celery_app.task( bind=True, queue="llm_low_priority", max_retries=2, default_retry_delay=60, ) def verify_question_task(self, question_id: str, verifier_model: str) -> dict: """������: ����������� �������� ������� � ������.""" async def _run(): from testgen.infrastructure.database.session import async_session_factory from testgen.services.verification import VerificationService from testgen.services.llm_manager import LLMManagerService from testgen.services.prompt import PromptService session = async_session_factory() try: llm_manager = LLMManagerService(session) prompt_service = PromptService(session) verification_service = VerificationService(session, llm_manager, prompt_service) result = await verification_service.verify_question_answer( question_id=UUID(question_id), verifier_model=verifier_model, ) return { "verification_id": str(result.id), "verdict": result.verdict, } finally: await session.close() try: result = _run_async(_run()) logger.info(f"Verification completed for question {question_id}: {result['verdict']}") return result except Exception as exc: logger.error(f"Verification failed: {exc}") raise self.retry(exc=exc) @celery_app.task( bind=True, queue="llm_low_priority", max_retries=2, default_retry_delay=60, ) def verify_distractors_task(self, question_id: str, verifier_model: str) -> dict: """������: ����������� �������� ������������.""" async def _run(): from testgen.infrastructure.database.session import async_session_factory from testgen.services.verification import VerificationService from testgen.services.llm_manager import LLMManagerService from testgen.services.prompt import PromptService session = async_session_factory() try: llm_manager = LLMManagerService(session) prompt_service = PromptService(session) verification_service = VerificationService(session, llm_manager, prompt_service) result = await verification_service.verify_distractors( question_id=UUID(question_id), verifier_model=verifier_model, ) return { "verification_id": str(result.id), "verdict": result.verdict, } finally: await session.close() try: result = _run_async(_run()) return result except Exception as exc: logger.error(f"Distractor verification failed: {exc}") raise self.retry(exc=exc)