Руководство пользователя Платформы быстрого и выгодного запуска моделей искусственного интеллекта "compressa"

Руководство пользователя Платформы быстрого и выгодного запуска моделей искусственного интеллекта "compressa"

1. Введение и аутентификация

Платформа быстрого и выгодного запуска моделей искусственного интеллекта "compressa" (далее Compressa) предоставляет набор API для интеграции генеративных AI-технологий в ваши приложения. Это руководство описывает, как использовать все доступные модули и интерфейсы.

Базовый URL и аутентификация
Все API-запросы отправляются на базовый URL вашего сервера, например, http://ваш_адрес:8080. Для аутентификации используйте ваш user_API_ключ, передавая его в заголовке Authorization.
-H 'Authorization: Bearer Ваш_user_API_ключ'

2. Использование LLM моделей

Вы можете взаимодействовать с LLM через OpenAI-совместимый API или нативную библиотеку для Langchain.

2.1. OpenAI-совместимый API (cURL)

Этот способ позволяет использовать привычный формат запросов OpenAI.

curl -X POST 'http://ваш_адрес:8080/v1/chat/completions' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer Ваш_user_API_ключ' \
-d '{
  "model": "Compressa-LLM",
  "messages": [
    {
      "role": "system",
      "content": "Ты полезный ассистент."
    },
    {
      "role": "user",
      "content": "Расскажи о преимуществах использования локальных LLM."
    }
  ],
  "max_tokens": 256,
  "temperature": 0.7,
  "stream": false
}'

Для получения ответа по частям (стриминг) установите "stream": true.

2.2. Python-клиент Langchain

Для удобной интеграции в Python-проекты используйте библиотеку langchain-compressa.

from langchain_compressa import ChatCompressa

llm = ChatCompressa(
    base_url="http://ваш_адрес:8080/v1", 
    api_key="Ваш_user_API_ключ",
    model="Compressa-LLM",
    temperature=0.7,
    max_tokens=256
)

messages = [("human", "Я люблю программирование.")]
ai_msg = llm.invoke(messages)
print(ai_msg.content)

3. Модуль ETL: Обработка документов

Модуль ETL позволяет извлекать текст из документов и нарезать его на чанки (фрагменты) для дальнейшего использования в RAG-системах.

Запрос на обработку файла (cURL)

Отправьте файл для анализа, указав стратегию и другие параметры.

curl -X POST "http://ваш_адрес:8080/v1/layout" \
-H "Authorization: Bearer Ваш_API_ключ_Compressa" \
-H "accept: application/json" \
-F "files=@/path/to/your/document.pdf" \
-F "strategy=hi_res" \
-F "max_characters=1000" \
-F "overlap=100"
Основные параметры ETL:
  • strategy: fast (быстрая, на правилах), hi_res (качественная, на модели), auto (автоматический выбор).
  • max_characters: Максимальный размер одного чанка.
  • overlap: Количество символов перекрытия между чанками.

4. Модуль Embeddings: Создание векторов

Используйте этот модуль для преобразования текста в числовые векторы (эмбеддинги) для семантического поиска.

Создание эмбеддингов (cURL)

curl -X 'POST' 'http://ваш_адрес:8080/v1/embeddings' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer Ваш_API_ключ_Compressa' \
-d '{
  "model": "Compressa-Embedding",
  "input": ["Первый текстовый документ.", "Второй документ для векторизации."]
}'

5. Модуль Rerank: Ранжирование документов

Rerank-модели повышают точность поиска, сортируя документы по их релевантности к запросу.

Запрос на ранжирование (cURL)

curl -X POST "http://ваш_адрес:8080/v1/rerank" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Ваш_API_ключ_Compressa" \
-d '{
    "model": "Compressa-ReRank",
    "query": "Какая столица у США?",
    "documents": [
      "Париж - столица Франции.",
      "Вашингтон, округ Колумбия - столица США.",
      "Берлин - столица Германии."
    ]
}'

6. Управление моделями (Management API)

Management API (/pod-1/api/v1/) позволяет управлять жизненным циклом моделей на вашем сервере.

Важно: Все запросы к Management API требуют аутентификации, но токен может отличаться от пользовательского. Уточните у администратора.

6.1. Работа с библиотекой моделей

Получить список всех доступных моделей:

curl -X GET 'http://ваш_адрес:8080/pod-1/api/v1/models/'

Скачать новую модель с Hugging Face:

curl -X POST 'http://ваш_адрес:8080/pod-1/api/v1/models/add/?model_id=openchat/openchat-3.5-0106'

6.2. Развертывание (деплой) моделей

Запустить модель для инференса:

curl -X POST 'http://ваш_адрес:8080/pod-1/api/v1/deploy/' \
-H 'Content-Type: application/json' \
-d '{
  "model_id": "openchat/openchat-3.5-0106",
  "adapter_ids": []
}'

Проверить статус текущего деплоя:

curl -X GET 'http://ваш_адрес:8080/pod-1/api/v1/deploy/status/'

Остановить (отключить) текущую модель:

curl -X POST 'http://ваш_адрес:8080/pod-1/api/v1/deploy/interrupt/' -d ''

7. Дообучение моделей (Fine-tuning API)

Вы можете дообучать модели на собственных данных для улучшения их производительности на конкретных задачах.

7.1. Подготовка и загрузка данных

Данные должны быть в формате JSON Lines (.jsonl), где каждая строка — это диалог. Пример:

{"messages": [{"role": "user", "content": "Вопрос 1"}, {"role": "bot", "content": "Ответ 1"}]}

Загрузить датасет на сервер:

curl -X POST 'http://ваш_адрес:8080/pod-1/api/v1/datasets/upload/?description=Мой_датасет' \
-H 'Content-Type: multipart/form-data' \
-F 'file=@/path/to/your/train.jsonl'

7.2. Запуск процесса дообучения

Получить список моделей, доступных для дообучения:

curl -X GET 'http://ваш_адрес:8080/pod-1/api/v1/finetune/models/'

Запустить дообучение:

curl -X POST 'http://ваш_адрес:8080/pod-1/api/v1/finetune/' \
-H 'Content-Type: application/json' \
-d '{
  "name": "My_FineTuned_Adapter",
  "model_id": "NousResearch/Llama-2-7b-chat-hf",
  "dataset_id": "ID_вашего_датасета_из_ответа_на_загрузку"
}'

Проверить статус дообучения:

curl -X GET 'http://ваш_адрес:8080/pod-1/api/v1/finetune/status/'

8. Веб-интерфейсы

Для удобства тестирования и управления платформа Compressa предоставляет несколько веб-интерфейсов:

  • Chat UI: http://ваш_адрес:8080/pod-1/chat/ — для интерактивного тестирования LLM.
  • Fine-tuning UI: http://ваш_адрес:8080/pod-1/finetune/ — для дообучения моделей через интерфейс.
  • Swagger UI: http://ваш_адрес:8080/pod-1/api/docs/ — для интерактивной работы с Management API.