/
pythonpractice
/
consultant-data-provider
Обзор
Документация
Войти
/
pythonpractice
/
consultant-data-provider
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
develop
src/cdp/clients/mock_client.py
46 строк
2 KB
Кузьма W600DEV Даждъбогин
TSKCNSLTNTDTP-1. base preparing. оживил проект. прописал базовые команды для мок-запроса и для реального.
15 май 2026, 16:09
15 май 2026, 16:09
cab050c
Код
Авторство
О чём код?
"""Мок-клиент для разработки и тестирования. Возвращает предсказуемые ответы без реального вызова API.""" import time from typing import Dict, List from .base import LLMClient class MockLLMClient(LLMClient): """Заглушка LLM для отладки. Полезно когда: - Нет доступа к интернету - Не хотим тратить деньги на API - Тестируем обработку ошибок """ def __init__(self, delay_seconds: float = 0.0): """Создать мок-клиент. Args: delay_seconds: Имитация задержки сети (для тестирования таймаутов) """ self.delay_seconds = delay_seconds def generate(self, prompt: str) -> str: """Эмулирует ответ LLM.""" if self.delay_seconds > 0: time.sleep(self.delay_seconds) return f"[MOCK] Я получил твой промпт: '{prompt[:50]}...' Имитирую работу LLM" def generate_with_context(self, messages: List[Dict[str, str]]) -> str: """Эмулирует ответ с учётом контекста диалога.""" if self.delay_seconds > 0: time.sleep(self.delay_seconds) # Находим последнее сообщение пользователя last_user_message = None for msg in reversed(messages): if msg.get("role") == "user": last_user_message = msg.get("content", "") break return (f"[MOCK] Диалог из {len(messages)} сообщений. " f"Последний запрос: '{last_user_message[:50] if last_user_message else 'None'}...'")