AI Gateway Logo

AI Gateway

Единый API для интеграции языковых моделей Ollama и Hugging Face

Поддержка OpenAI API

Полная эмуляция OpenAI API, включая структуру запросов и ответов. Позволяет интеграцию с существующими клиентами OpenAI без изменения кода.

Поддержка Ollama

Интеграция с локальным сервера Ollama в качестве бэкенда и использование его для инференса моделей в формате GGUF.

Расширенная поддержка LLM

Поддержка репозиториев моделей Ollama и Hugging Face, с автоматическим маппингом имён моделей на соответствующие бэкенды. Единый пользовательский интерфейс независимо от формата модели (PyTorch, GGUF, etc.)

Локальный кэш моделей

Кеширование весов моделей в локальном хранилище для ускорения последующих загрузок. Предоставляется API управления кэшем.

Классификация запросов

Использование lightweight-моделей (BERT) для классификации типа пользовательского запроса (текст/изображение) на основе семантики.

Автоматическое перефразирование

Модель-аугментатор превращает короткие пользовательские запросы в детализированные промпты для генерации более качественных и детальных изображений.

Аутентификация

Контроль доступа к API помощью токенов авторизации.

Монироринг

Системный мониторинг работы приложения, включая диагностику PyTorch и бэкенда Ollama.

Архитектура системы

                        %%{init: {'theme': 'dark', 'themeVariables': {
                            'fontSize': '20px',
                            'primaryColor': '#1E293B',
                            'lineColor': '#334155',
                            'textColor': '#F8FAFC',
                            'nodeBorder': '#2F80ED',
                            'nodeTextColor': '#F8FAFC'
                        }, 'flowchart': {
                            'useMaxWidth': false,
                            'htmlLabels': true,
                            'nodeSpacing': 50,
                            'rankSpacing': 80
                        }}}%%
                        
                        graph TD
                            A[Клиент] -->|REST API| B[API Сервер]
                            B --> C{Тип запроса}
                            C -->|Текст| D[Классификатор BERT]
                            C -->|Изображение| E[Диффузионные модели Hugging Face]
                            D --> F{Тип вывода}
                            F -->|Текст-в-текст| G[Текстовые модели Ollama/Hugging Face]
                            F -->|Текст-в-изображение| H[Модели Ollama\nОптимизация промптов]
                            H --> E
                            B --> I[Кэш моделей]
                            B --> J[Системный мониторинг]
                            G --> K[(Хранилище моделей)]
                            E --> K
                            I --> K
                            
                            %% Вертикальная компоновка метрик
                            J --> L[Диагностика Torch/Ollama]
                            J --> M[Метрики CPU/RAM/GPU]
                            
                            %% Невидимые связи для выравнивания
                            M ~~~ L
                        
                            style A fill:#2F80ED,stroke:#2563EB,color:white,font-size:24px
                            style B fill:#1E293B,stroke:#334155,color:white,font-size:24px
                            style D fill:#F39C12,stroke:#E67E22,color:white,font-size:24px
                            style E fill:#EB5757,stroke:#D64545,color:white,font-size:24px
                            style C fill:#9B59B6,stroke:#8E44AD,color:white,font-size:24px
                            style I fill:#F39C12,stroke:#E67E22,color:white,font-size:24px
                            style J fill:#3498DB,stroke:#2980B9,color:white,font-size:24px
                            style K fill:#1ABC9C,stroke:#16A085,color:white,font-size:24px
                            style G fill:#27AE60,stroke:#219653,color:white,font-size:24px
                            style H fill:#27AE60,stroke:#219653,color:white,font-size:24px
                            style F fill:#8E44AD,stroke:#7D3C98,color:white,font-size:24px
                            
                            %% Стили для метрик
                            style L fill:#3498DB,stroke:#2980B9,color:white
                            style M fill:#3498DB,stroke:#2980B9,color:white
                        
                            classDef default font-size:20px,stroke-width:2px