feat: добавлен функционал для извлечения и отправки описания PR в Telegram

- Реализована возможность получения тела последнего объединенного PR по коммиту в GitHub Actions.
- Добавлен шаг для отправки описания PR в важные логи через Telegram.
- Обновлены тесты для проверки нового функционала и улучшения логики обработки сообщений.
This commit is contained in:
2026-01-26 22:40:05 +03:00
parent feee7f010c
commit be8af704ba
10 changed files with 100 additions and 47 deletions

View File

@@ -7,17 +7,12 @@
- ScoringManager - объединение всех сервисов скоринга
"""
from .base import ScoringResult, ScoringServiceProtocol, CombinedScore
from .exceptions import (
ScoringError,
ModelNotLoadedError,
VectorStoreError,
DeepSeekAPIError,
InsufficientExamplesError,
TextTooShortError,
)
from .rag_client import RagApiClient
from .base import CombinedScore, ScoringResult, ScoringServiceProtocol
from .deepseek_service import DeepSeekService
from .exceptions import (DeepSeekAPIError, InsufficientExamplesError,
ModelNotLoadedError, ScoringError, TextTooShortError,
VectorStoreError)
from .rag_client import RagApiClient
from .scoring_manager import ScoringManager
__all__ = [

View File

@@ -3,8 +3,8 @@
"""
from dataclasses import dataclass, field
from typing import Optional, Protocol, Dict, Any
from datetime import datetime
from typing import Any, Dict, Optional, Protocol
@dataclass

View File

@@ -6,12 +6,11 @@ DeepSeek API сервис для скоринга постов.
import asyncio
import json
from typing import Optional, List
from typing import List, Optional
import httpx
from helper_bot.utils.metrics import track_errors, track_time
from logs.custom_logger import logger
from helper_bot.utils.metrics import track_time, track_errors
from .base import ScoringResult
from .exceptions import DeepSeekAPIError, ScoringError, TextTooShortError

View File

@@ -4,13 +4,15 @@ HTTP клиент для взаимодействия с внешним RAG се
Использует REST API для получения скоров и отправки примеров.
"""
from typing import Optional, Dict, Any
from typing import Any, Dict, Optional
import httpx
from helper_bot.utils.metrics import track_errors, track_time
from logs.custom_logger import logger
from helper_bot.utils.metrics import track_time, track_errors
from .base import ScoringResult
from .exceptions import ScoringError, InsufficientExamplesError, TextTooShortError
from .exceptions import (InsufficientExamplesError, ScoringError,
TextTooShortError)
class RagApiClient:

View File

@@ -8,13 +8,14 @@
import asyncio
from typing import Optional
from helper_bot.utils.metrics import track_errors, track_time
from logs.custom_logger import logger
from helper_bot.utils.metrics import track_time, track_errors
from .base import CombinedScore, ScoringResult
from .rag_client import RagApiClient
from .deepseek_service import DeepSeekService
from .exceptions import ScoringError, InsufficientExamplesError, TextTooShortError
from .exceptions import (InsufficientExamplesError, ScoringError,
TextTooShortError)
from .rag_client import RagApiClient
class ScoringManager:

View File

@@ -130,11 +130,8 @@ class BaseDependencyFactory:
Вызывается лениво при первом обращении к get_scoring_manager().
"""
from helper_bot.services.scoring import (
ScoringManager,
RagApiClient,
DeepSeekService,
)
from helper_bot.services.scoring import (DeepSeekService, RagApiClient,
ScoringManager)
scoring_config = self.settings['Scoring']