Files
chatballs/apps/backend/hub_platform/channels/runtime.py
T
AndreyandClaude Fable 5 a086675283 refactor(ai): упрощение агента и знаний (ADR-HUB-0023)
Знания: плоская сущность Knowledge (заголовок, описание, MD) + файловые
вложения с оригинальными именами (retrieval из md/txt/pdf/docx, публичная
ссылка для клиента). Агент: без релизов, инструкции из трёх частей
(персонализация/тон/инструкции) + выбор знаний из библиотеки; лимит
диалогов упразднён (остался dailyCostUsd). channel.system_prompt/model
удалены — AI-поведение только на агенте. Продукт — техническая запись
без summary/sales_description. Data-миграция переносит опубликованные
документы и активные релизы в новую модель. Internal-UI: раздел Знания,
новая карточка агента, упрощённые продукты, release-страницы удалены.
ADR-0005/0007/0017 → superseded; SPEC-HUB-0012 переписан.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 17:08:50 +03:00

16 lines
881 B
Python

from hub_platform.ai.provider.base import ChatResult, ProviderError
from hub_platform.ai.runtime import run_agent_turn
def run_channel_turn(*, channel, message: str, history: list[dict] | None = None) -> ChatResult:
"""One AI turn for a processing channel (ADR-HUB-0019/0023).
AI-поведение канала целиком определяет его агент. Без активного агента
AI-ответа нет: вызывающий код (ingest/support) обрабатывает ProviderError
как «AI недоступен» и передаёт диалог оператору.
"""
agent = getattr(channel, "ai_agent", None)
if agent is None or not agent.is_active:
raise ProviderError("Channel has no active AI agent")
return run_agent_turn(agent=agent, message=message, history=history, style_guard=True).result