278 lines
13 KiB
YAML
278 lines
13 KiB
YAML
name: llm_ai
|
|
service_id: 163
|
|
service_display_name: LLM
|
|
service_short_name: llmAi
|
|
service_man: '## 1. Общая информация<br/><br/>LLMaaS (Large Language Model as a Service) — это сервис для доступа к языковым моделям через OpenAI-совместимое API.<br/>Платформа позволяет создавать организации
|
|
(тенанты), команды, выпускать и управлять API-ключами, устанавливать лимиты на использование.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create** — Создание организации в LLMaaS<br/>-
|
|
**delete** — Удаление организации<br/><br/>- **create_team** — Создание команды внутри организации<br/>- **modify_team** — Редактирование команды (модели, RPM, TPM)<br/>- **delete_team** —
|
|
Удаление команды<br/><br/>- **create_secrets** — Создание API-ключа<br/>- **update_secrets** — Обновление параметров API-ключа<br/>- **delete_secrets** — Удаление API-ключа<br/><br/>---<br/><br/>##
|
|
2. Параметры создания организации<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании организации:<br/><br/>* **Платформа для развертывания**<br/> Выбирается автоматически, изменять
|
|
не нужно.<br/><br/>* **Период бюджета**<br/> Срок жизни организации в днях.<br/> Пример: `30`<br/><br/><br/>---<br/><br/>## 3. Параметры создания команды<br/><br/>* **Имя команды**<br/> Уникальное
|
|
имя команды в рамках организации.<br/> Пример: `production`<br/><br/>* **Модель**<br/> Название модели, доступной для команды.<br/> Пример: `gpt-oss-120b`<br/><br/>* **Лимит запросов в минуту (RPM)**<br/> Максимальное
|
|
количество запросов к API в минуту.<br/> Пример: `60`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Максимальное количество токенов (входящих + исходящих) в минуту.<br/> Пример: `100000`<br/><br/>---<br/><br/>##
|
|
4. Параметры редактирования команды<br/><br/>Для существующей команды можно изменить:<br/><br/>* **Модель**<br/> Новая модель для команды.<br/> Пример: `gpt-oss-20b`<br/><br/>* **Лимит запросов в минуту
|
|
(RPM)**<br/> Новое значение RPM.<br/> Пример: `120`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Новое значение TPM.<br/> Пример: `200000`<br/><br/>---<br/><br/>## 5. Параметры создания API-ключа<br/><br/>Ниже
|
|
перечислены параметры, которые необходимо указать при создании API-ключа:<br/><br/>* **Имя ключа**<br/> Уникальное имя ключа в рамках организации.<br/> Пример: `prod-key`<br/><br/>* **Команда**<br/> Имя
|
|
команды для привязки ключа. Если не указано — ключ привязывается к команде `main`.<br/> Пример: `production`<br/><br/>* **Модель**<br/> Название модели, доступной для данного ключа.<br/> Пример: `gpt-oss-120b`<br/><br/>*
|
|
**Лимит запросов в минуту (RPM)**<br/> Максимальное количество запросов к API в минуту.<br/> Пример: `60`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Максимальное количество токенов (входящих
|
|
+ исходящих) в минуту.<br/> Пример: `100000`<br/><br/>**Важно:** Лимиты API-ключа не могут превышать лимиты команды, к которой он привязан.<br/>При превышении операция будет отклонена с ошибкой.<br/>Перед
|
|
созданием ключа убедитесь, что `RPM <= team.RPM` и `TPM <= team.TPM`.<br/><br/><br/>---<br/><br/>## 6. Параметры обновления API-ключа<br/><br/>Для уже существующего ключа можно изменить параметры. Все
|
|
параметры являются опциональными:<br/><br/>* **Имя ключа**<br/> Имя обновляемого ключа.<br/> Пример: `prod-key`<br/><br/>* **Модель**<br/> Новое название модели.<br/> Пример: `gpt-oss-20b`<br/><br/>*
|
|
**Лимит запросов в минуту (RPM)**<br/> Новое значение RPM.<br/> Пример: `120`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Новое значение TPM.<br/> Пример: `200000`<br/><br/>**Важно:** При обновлении
|
|
лимитов API-ключа новые значения не могут превышать лимиты команды.<br/>Если указать значения выше командных, операция завершится ошибкой.<br/>Указывайте `RPM <= team.RPM` и `TPM <= team.TPM`.<br/><br/>Команда
|
|
определяется автоматически по стейту услуги — изменить привязку к другой команде через эту операцию нельзя.<br/><br/>---<br/><br/>## 7. Параметры удаления API-ключа<br/><br/>* **Команда**<br/> Имя команды,
|
|
к которой привязан ключ.<br/> Пример: `production`<br/><br/>* **Имя ключа**<br/> Имя удаляемого ключа.<br/> Пример: `prod-key`<br/><br/>---<br/><br/>## 8. Параметры удаления команды<br/><br/>* **Имя
|
|
команды**<br/> Имя удаляемой команды.<br/> Пример: `production`<br/><br/>---<br/><br/>## 9. Параметры удаления организации<br/><br/>Удаление организации не требует дополнительных параметров — удаляется
|
|
вся организация со всеми командами и ключами.<br/><br/>---<br/><br/>## 10. Выходные параметры<br/><br/>После успешного создания организации платформа возвращает:<br/><br/>* **connectionUrl**<br/> URL
|
|
для доступа к inference API (OpenAI-совместимый).<br/> Пример: `https://api.aillm.ru`<br/><br/>---<br/><br/><br/>## 12. Пример использования API<br/><br/>После получения API-ключа клиент может обращаться
|
|
к LLMaaS напрямую:<br/><br/>**Запрос к chat completions:**<br/><br/>```bash<br/>curl https://api.aillm.ru/v1/chat/completions \<br/> -H "Authorization: Bearer sk-..." \<br/> -H "Content-Type: application/json"
|
|
\<br/> -d ''{<br/> "model": "gpt-oss-120b",<br/> "messages": [<br/> {"role": "user", "content": "Привет!"}<br/> ]<br/> }''<br/>```<br/><br/>**Получение списка доступных моделей:**<br/><br/>```bash<br/>curl
|
|
https://api.aillm.ru/v1/models \<br/> -H "Authorization: Bearer sk-..."<br/>```<br/>'
|
|
lifecycle:
|
|
suspendOnDestroyDefault: false
|
|
adoptExistingOnCreateDefault: false
|
|
operations:
|
|
- svcOperationId: 271
|
|
operation: create
|
|
kind: instance
|
|
action: create
|
|
- svcOperationId: 274
|
|
operation: create_secrets
|
|
kind: subresource
|
|
action: create
|
|
- svcOperationId: 278
|
|
operation: create_team
|
|
kind: subresource
|
|
action: create
|
|
- svcOperationId: 273
|
|
operation: delete
|
|
kind: instance
|
|
action: delete
|
|
- svcOperationId: 275
|
|
operation: delete_secrets
|
|
kind: subresource
|
|
action: delete
|
|
- svcOperationId: 280
|
|
operation: delete_team
|
|
kind: subresource
|
|
action: delete
|
|
- svcOperationId: 279
|
|
operation: modify_team
|
|
kind: subresource
|
|
action: modify
|
|
- svcOperationId: 277
|
|
operation: update_secrets
|
|
kind: subresource
|
|
action: update
|
|
stateOut:
|
|
secrets: {}
|
|
teams: {}
|
|
cfsParams:
|
|
- svcOperationCfsParamId: 826
|
|
svcOperationCfsParam: resourceRealm
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: llmAi.aillm.ru
|
|
isModifiable: false
|
|
valueList:
|
|
- llmAi.aillm.ru
|
|
- svcOperationCfsParamId: 833
|
|
svcOperationCfsParam: models
|
|
dataType: array
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 834
|
|
svcOperationCfsParam: rpmLimit
|
|
dataType: integer > 0
|
|
isRequired: true
|
|
defaultValue: '60'
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 835
|
|
svcOperationCfsParam: tpmLimit
|
|
dataType: integer > 0
|
|
isRequired: true
|
|
defaultValue: '100000'
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 857
|
|
svcOperationCfsParam: keyName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 859
|
|
svcOperationCfsParam: teamName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 1083
|
|
svcOperationCfsParam: variablesKeys
|
|
dataType: array-map-fixed
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: false
|
|
dataDescriptor:
|
|
teamName:
|
|
dataType: string
|
|
defaultValue: ''
|
|
isRequired: true
|
|
isModifiable: false
|
|
keyName:
|
|
dataType: string
|
|
defaultValue: ''
|
|
isRequired: true
|
|
isModifiable: false
|
|
models:
|
|
dataType: string
|
|
defaultValue: ''
|
|
isRequired: true
|
|
isModifiable: false
|
|
valueList:
|
|
- '{}'
|
|
tpmLimit:
|
|
dataType: integer > 0
|
|
defaultValue: '100000'
|
|
isRequired: true
|
|
isModifiable: false
|
|
rpmLimit:
|
|
dataType: integer > 0
|
|
defaultValue: '60'
|
|
isRequired: true
|
|
isModifiable: false
|
|
count:
|
|
dataType: integer > 0
|
|
defaultValue: '1'
|
|
isRequired: true
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 858
|
|
svcOperationCfsParam: teamName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 860
|
|
svcOperationCfsParam: models
|
|
dataType: array
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 861
|
|
svcOperationCfsParam: rpmLimit
|
|
dataType: integer > 0
|
|
isRequired: true
|
|
defaultValue: '60'
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 862
|
|
svcOperationCfsParam: tpmLimit
|
|
dataType: integer > 0
|
|
isRequired: true
|
|
defaultValue: '100000'
|
|
isModifiable: false
|
|
- svcOperationCfsParamId: 836
|
|
svcOperationCfsParam: keyName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 876
|
|
svcOperationCfsParam: teamName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 868
|
|
svcOperationCfsParam: teamName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 864
|
|
svcOperationCfsParam: teamName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 865
|
|
svcOperationCfsParam: models
|
|
dataType: array
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 873
|
|
svcOperationCfsParam: rpmLimit
|
|
dataType: integer > 0
|
|
isRequired: true
|
|
defaultValue: '60'
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 874
|
|
svcOperationCfsParam: tpmLimit
|
|
dataType: integer > 0
|
|
isRequired: true
|
|
defaultValue: '100000'
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 852
|
|
svcOperationCfsParam: keyName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 853
|
|
svcOperationCfsParam: models
|
|
dataType: array
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 854
|
|
svcOperationCfsParam: rpmLimit
|
|
dataType: integer > 0
|
|
isRequired: true
|
|
defaultValue: '60'
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 855
|
|
svcOperationCfsParam: tpmLimit
|
|
dataType: integer > 0
|
|
isRequired: true
|
|
defaultValue: '100000'
|
|
isModifiable: true
|
|
- svcOperationCfsParamId: 875
|
|
svcOperationCfsParam: teamName
|
|
dataType: string
|
|
isRequired: true
|
|
defaultValue: ''
|
|
isModifiable: true
|
|
cfsParamsByOp:
|
|
271:
|
|
- 826
|
|
274:
|
|
- 833
|
|
- 834
|
|
- 835
|
|
- 857
|
|
- 859
|
|
- 1083
|
|
278:
|
|
- 858
|
|
- 860
|
|
- 861
|
|
- 862
|
|
273: []
|
|
275:
|
|
- 836
|
|
- 876
|
|
280:
|
|
- 868
|
|
279:
|
|
- 864
|
|
- 865
|
|
- 873
|
|
- 874
|
|
277:
|
|
- 852
|
|
- 853
|
|
- 854
|
|
- 855
|
|
- 875
|
|
stateParams:
|
|
resourceRealm: llmAi.aillm.ru
|