Введение
В этом документе подробно описаны интерфейсы и структуры данных, необходимые для реализации плагинов моделей Интеллос. Он служит техническим справочником для разработчиков, интегрирующих ИИ-модели с платформой Интеллос.Прежде чем переходить к этому справочнику по API, рекомендуем прочитать Правила проектирования моделей, чтобы понять концептуальную модель, и Создание нового поставщика модели — пошаговое руководство.
Быстрое решение: какой метод реализовывать?
Каждый поставщик также реализует
validate_provider_credentials (аутентификация на уровне поставщика) и, если модель настраивается пользователем, validate_credentials для каждого типа модели.
Реализация поставщика
Узнайте, как реализовать классы поставщика модели для различных поставщиков ИИ-сервисов
Типы моделей
Детали реализации пяти поддерживаемых типов моделей: LLM, Embedding, Rerank, Speech2Text и Text2Speech
Структуры данных
Полный справочник по всем структурам данных, используемым в API модели
Обработка ошибок
Рекомендации по правильному сопоставлению ошибок и обработке исключений
Поставщик модели
Каждый поставщик модели должен наследоваться от базового класса__base.model_provider.ModelProvider и реализовывать интерфейс проверки учётных данных.
Проверка учётных данных поставщика
dict
Информация об учётных данных, как определено в YAML-конфигурации поставщика в разделе
provider_credential_schema.
Обычно включает такие поля, как api_key, organization_id и т. п.Модели
Интеллос поддерживает пять различных типов моделей, каждый из которых требует реализации определённых интерфейсов. При этом все типы моделей разделяют некоторые общие требования.Общие интерфейсы
Каждая реализация модели, независимо от типа, должна реализовывать эти два основных метода:1. Проверка учётных данных модели
string
required
Идентификатор конкретной модели для проверки (например, “gpt-4”, “claude-3-opus”)
dict
required
Информация об учётных данных, как определено в конфигурации поставщика
2. Сопоставление ошибок
Доступные типы ошибок
Доступные типы ошибок
Реализация LLM
Чтобы реализовать поставщика большой языковой модели, наследуйтесь от базового класса__base.large_language_model.LargeLanguageModel и реализуйте эти методы:
1. Вызов модели
Этот основной метод обрабатывает как потоковые, так и непотоковые вызовы API языковых моделей.Параметры
Параметры
string
required
Идентификатор модели (например, “gpt-4”, “claude-3”)
dict
required
Учётные данные для аутентификации в API
list[PromptMessage]
required
Список сообщений в стандартизированном формате Интеллос:
- Для моделей
completion: включите единственное сообщениеUserPromptMessage - Для моделей
chat: включитеSystemPromptMessage,UserPromptMessage,AssistantPromptMessage,ToolPromptMessageпо необходимости
dict
required
Параметры, специфичные для модели (temperature, top_p и т. п.), как определено в YAML-конфигурации модели
list[PromptMessageTool]
Определения инструментов для возможностей вызова функций
list[string]
Последовательности остановки, при обнаружении которых генерация модели прекращается
boolean
default:true
Возвращать ли потоковый ответ
string
Идентификатор пользователя для мониторинга API
Возвращаемые значения
Возвращаемые значения
2. Подсчёт токенов
Если модель не предоставляет токенизатор, для приемлемой оценки можно использовать метод базового класса
_get_num_tokens_by_gpt2(text).3. Схема пользовательской модели (необязательно)
Этот метод необходим только для поставщиков, которые поддерживают пользовательские модели. Он позволяет пользовательским моделям наследовать правила параметров от базовых моделей.
Реализация TextEmbedding
Модели текстовых эмбеддингов преобразуют текст в высокоразмерные векторы, отражающие семантический смысл, что полезно для поиска, поиска по сходству и классификации.
__base.text_embedding_model.TextEmbeddingModel:
1. Основной метод эмбеддинга
Параметры
Параметры
Возвращаемое значение
Возвращаемое значение
object
required
Структурированный ответ, содержащий:
- model: модель, использованная для эмбеддинга
- embeddings: список эмбеддинг-векторов, соответствующих входным текстам
- usage: метаданные об использовании токенов и стоимости
2. Метод подсчёта токенов
Реализация Rerank
Реранкинг-модели помогают улучшить качество поиска, переупорядочивая набор документов-кандидатов на основе их релевантности запросу, как правило, после начального этапа поиска.
__base.rerank_model.RerankModel:
Параметры
Параметры
string
required
Идентификатор реранкинг-модели
dict
required
Учётные данные для аутентификации в API
string
required
Текст поискового запроса
list[string]
required
Список текстов документов для реранкинга
float
Необязательный минимальный порог оценки для фильтрации результатов
int
Необязательное ограничение на количество возвращаемых результатов
string
Идентификатор пользователя для мониторинга API
Возвращаемое значение
Возвращаемое значение
object
required
Структурированный ответ, содержащий:
- model: модель, использованная для реранкинга
- docs: список объектов RerankDocument с полями index, text и score
Реализация Speech2Text
Модели распознавания речи преобразуют устную речь из аудиофайлов в письменный текст, делая возможными такие приложения, как сервисы транскрипции, голосовые команды и функции доступности.
__base.speech2text_model.Speech2TextModel:
Параметры
Параметры
Возвращаемое значение
Возвращаемое значение
string
required
Текст, транскрибированный из аудиофайла
Реализация Text2Speech
Модели синтеза речи преобразуют письменный текст в естественно звучащую речь, делая возможными такие приложения, как голосовые ассистенты, программы чтения с экрана и генерация аудиоконтента.
__base.text2speech_model.Text2SpeechModel:
Параметры
Параметры
Возвращаемое значение
Возвращаемое значение
Реализация Moderation
Модели модерации анализируют контент на наличие потенциально вредоносного, неуместного или небезопасного материала, помогая поддерживать безопасность платформы и соблюдение политик в отношении контента.
__base.moderation_model.ModerationModel:
Параметры
Параметры
Возвращаемое значение
Возвращаемое значение
boolean
required
Булево значение, указывающее на безопасность контента:
- False: контент безопасен
- True: контент содержит вредоносный материал
Сущности
PromptMessageRole
Роль сообщенияPromptMessageContentType
Тип содержимого сообщения, разделённый на обычный текст и изображения.PromptMessageContent
Базовый класс содержимого сообщения, используется только для объявления параметров, не может быть инициализирован.TextPromptMessageContent и ImagePromptMessageContent.
TextPromptMessageContent
content.
ImagePromptMessageContent
content.
data может быть url или строкой изображения в кодировке base64.
PromptMessage
Базовый класс для всех тел сообщений Role, используется только для объявления параметров, не может быть инициализирован.UserPromptMessage
Тело сообщения UserMessage, представляет сообщения пользователя.AssistantPromptMessage
Представляет сообщения-ответы модели, обычно используется дляfew-shots или ввода истории чата.
tool_calls — это список tool call, возвращаемый моделью после передачи ей tools.
SystemPromptMessage
Представляет системные сообщения, обычно используется для задания системных инструкций модели.ToolPromptMessage
Представляет сообщения инструментов, используется для передачи результатов модели для планирования следующего шага после того, как инструмент был выполнен.content базового класса передаёт результат выполнения инструмента.
PromptMessageTool
LLMResult
LLMResultChunkDelta
Сущность delta для каждой итерации в потоковом ответеLLMResultChunk
Сущность итерации в потоковом ответеLLMUsage
TextEmbeddingResult
EmbeddingUsage
RerankResult
RerankDocument
Связанные ресурсы
- Правила проектирования моделей — изучите стандарты конфигурации моделей
- Введение в плагины моделей — быстро ознакомьтесь с базовыми концепциями плагинов моделей
- Быстрая интеграция новой модели — узнайте, как добавить новые модели к существующим поставщикам
- Создание нового поставщика модели — узнайте, как разрабатывать совершенно новых поставщиков моделей
Edit this page | Report an issue

