import {Meta} from '@storybook/addon-docs/blocks'

<Meta title='@dxtmisha/ru/scripts/Classes/AiClaudeLite - Легковесный класс Claude AI'/>

# Класс AiClaudeLite

Класс `AiClaudeLite` представляет собой легковесную реализацию `AiAbstract`, которая оборачивает Anthropic SDK. Он обеспечивает поддержку накопления контекста промптов, мультимодального ввода (изображений) и надежной генерации текста с использованием моделей Claude.

## Ключевые особенности

- **Мультимодальная поддержка** — преобразует накопленные изображения в ожидаемый Anthropic формат base64 для блоков контента типа `image`.
- **Структурированная обработка контента** — форматирует как простой текст, так и изображения base64 в структурированное содержимое сообщения перед отправкой запроса.
- **Извлечение текста** — анализирует массив блоков контента из ответа Anthropic и объединяет текстовые блоки для возврата чистой строки.

## Инициализация

`AiClaudeLite` требует ручной передачи учетных данных через конструктор.

**Параметры конструктора:**
- `key: string` — API-ключ для сервиса Anthropic.
- `model: string` — начальный идентификатор модели (например, 'claude-3-5-sonnet-20241022').

```typescript
import { AiClaudeLite } from '@dxtmisha/scripts'

const ai = new AiClaudeLite(process.env.ANTHROPIC_API_KEY, 'claude-3-5-sonnet-20241022')
```

## Методы

### Внутренние хуки реализации

Эти защищенные методы реализуют обязательный интерфейс расширения `AiAbstract`:

- `init(): void` — Инициализирует экземпляр клиента `Anthropic` с использованием предоставленного ключа.
- `toImages(): any` — Преобразует накопленные `images` в структурированный массив `{ type: 'image', source: { ... } }` для Claude.
- `toContents(): any` — Преобразует накопленное дополнительное содержимое `contents` в структурированный массив `{ type: 'text', text: content }`.
- `response(model: string, contents: string): Promise<string>` — Выполняет вызов API `messages.create`, передавая все отформатированные блоки, и парсит текстовый ответ.
