/
alexefan136
/
flowstack
Обзор
Документация
Войти
/
alexefan136
/
flowstack
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
core/engine/src/llm/__init__.py
150 строк
5 KB
Alexander Efanov
Обновление репозитория
15 июл 2026, 12:19
15 июл 2026, 12:19
76704c6
Код
Авторство
О чём код?
""" LLM модуль — мульти-модельная система для работы с языковыми моделями. Архитектура: - client.py: HTTP-клиент для OpenAI-compatible API - config.py: Настройки провайдеров и LLMConfig - model_registry.py: Статический + динамический реестр моделей - model_discovery.py: Автоматическое обнаружение моделей через API - model_classifier.py: Авто-классификация моделей по ID - model_router.py: Интеллектуальный выбор модели под задачу - routes.py: FastAPI endpoints """ from __future__ import annotations # ============================================================================= # CORE: Client & Config (основа) # ============================================================================= from .client import LLMClient, LLMClientError, get_llm_client from .config import ( AVAILABLE_MODELS, LLMConfig, LLMSettings, get_available_models_for_provider, get_settings, ) # ============================================================================= # REGISTRY: Статический + динамический реестр моделей # ============================================================================= from .model_registry import ( # Enums ModelCategory, ModelProvider, # Data classes ModelCapabilities, ModelInfo, # Static registry MODEL_REGISTRY, get_all_categories, get_default_model, get_model, get_models_by_category, get_registry_stats, register_model, search_models, unregister_model, # Dynamic (merged with discovered) get_all_categories_dynamic, get_available_models, get_models_by_category_dynamic, merge_with_discovered, search_models_dynamic, ) # ============================================================================= # DISCOVERY: Автоматическое обнаружение моделей через API провайдеров # ============================================================================= from .model_discovery import ( DiscoveredModel, ModelDiscovery, ModelDiscoveryCache, start_background_refresh, stop_background_refresh, ) # ============================================================================= # CLASSIFIER: Авто-классификация моделей по ID # ============================================================================= from .model_classifier import ( CLASSIFICATION_RULES, classify_model, extract_tags, infer_context_window, ) # ============================================================================= # ROUTER: Интеллектуальный выбор модели под задачу # ============================================================================= from .model_router import ( ModelRouter, RoutingDecision, get_model_router, reset_model_router, ) # ============================================================================= # ROUTES: FastAPI endpoints # ============================================================================= from .routes import router # ============================================================================= # PUBLIC API # ============================================================================= __all__ = [ # --- Client & Config --- "LLMClient", "LLMClientError", "get_llm_client", "LLMConfig", "LLMSettings", "get_settings", "AVAILABLE_MODELS", # legacy "get_available_models_for_provider", # legacy # --- Registry: enums & types --- "ModelCategory", "ModelProvider", "ModelCapabilities", "ModelInfo", "MODEL_REGISTRY", # --- Registry: static access --- "get_model", "get_models_by_category", "get_all_categories", "get_default_model", "search_models", "register_model", "unregister_model", "get_registry_stats", # --- Registry: dynamic (merged) --- "merge_with_discovered", "get_available_models", "get_models_by_category_dynamic", "get_all_categories_dynamic", "search_models_dynamic", # --- Discovery --- "ModelDiscovery", "ModelDiscoveryCache", "DiscoveredModel", "start_background_refresh", "stop_background_refresh", # --- Classifier --- "classify_model", "extract_tags", "infer_context_window", "CLASSIFICATION_RULES", # --- Router --- "ModelRouter", "RoutingDecision", "get_model_router", "reset_model_router", # --- Routes --- "router", ]