Provision LLM Engine
Языковые модели Llama 3, Qwen, Mistral и другие — в вашем периметре. Совместимый с OpenAI API интерфейс. Данные не покидают инфраструктуру. Скорость в 3–5× выше облачных API.
Инструкция по установке
Выберите платформу для пошаговой инструкции.
Trial-версия Provision OCR предназначена для ознакомления и тестирования.
Ограничения: макс. 100 страниц/день,
водяной знак в ответе,
отсутствует техподдержка.
📄 Полный документ с ограничениями (PDF)
🪟 Windows
Установка
ProvisionLLMEngine-Setup.exe
ProvisionLLMEngine.bat
WebUI
/ API будет указан URL для API
🐧 Linux
🐳 Docker
# Скачайте docker образ:
docker pull registry.provlabs.tech/hub/trial/provision_llm:latest
# Запустите контейнер:
docker run --rm -it registry.provlabs.tech/hub/trial/provision_llm:latest
- API:
http://localhost:8080/ - Swagger UI:
http://localhost:8080/docs - Health check:
http://localhost:8080/health
Совместимость
Provision LLM Engine оптимизирован для GPU с 12+ GB VRAM. Запуск на CPU также поддерживается, но значительно медленнее.
GPU
Операционные системы
API Reference
Base URL: http://localhost:8080.
Совместим с OpenAI API и Anthropic API. Аутентификация — заголовок Authorization: Bearer <token>
или x-api-key:
<token>.
Health
{ "status": "ok" }
{
"error": {
"code": 503,
"message": "Loading model",
"type": "unavailable_error"
}
}
Инференс
-1 = без ограничения
0.8)
[{"id": 0, "scale": 0.5}]
{
"content": "Сгенерированный текст...",
"stop": true,
"stop_type": "eos",
"model": "my-model",
"tokens_evaluated": 12,
"tokens_cached": 0,
"truncated": false,
"timings": { "predicted_per_second": 42.5 }
}
[{"filename": "...", "text": "..."}]
Принимает все параметры
/completion.
Ответ аналогичен.
Embeddings и ранжирование
-1=нет, 0=max_abs, 1=taxicab, 2=L2 (по умолчанию)
{ "embedding": [0.12, -0.34, 0.56] }
Утилиты
false
false
{ "tokens": [1234, 5678, 910] }
// с with_pieces: true
{ "tokens": [{"id": 1234, "piece": "Hello"}, {"id": 5678, "piece": " world"}] }
{ "content": "Hello world" }
{ "prompt": "<|system|>...<|user|>Привет<|assistant|>" }
Управление сервером
LoRA-адаптеры
[{ "id": 0, "path": "/models/lora_a.gguf", "scale": 0.5 }]
[{ "id": 0, "scale": 0.2 }, { "id": 1, "scale": 0.8 }]
OpenAI-совместимые
{
"object": "list",
"data": [
{ "id": "my-model", "object": "model", "created": 1700000000, "owned_by": "Provision LLM" }
]
}
{ role, content } requirednone | deepseek | deepseek-legacy
float (по умолчанию) | base64
Anthropic-совместимые
[{"role": "user"/"assistant", "content": "..."}] required{ "input_tokens": 42 }
Router (мульти-модель)
1 — обновить список моделей
{ "model": "ggml-org/gemma-3-4b-it-GGUF:Q4_K_M" }
{ "model": "ggml-org/gemma-3-4b-it-GGUF:Q4_K_M" }
🎚Параметры сэмплинга
Применяются в /completion, /infill и через chat_template_kwargs в
OAI-эндпоинтах.
Основные
Штрафы за повторения
Прочие
Примеры кода
Готовые сниппеты для работы с Provision LLM Engine API.
🐍 Python — OpenAI SDK
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8080/v1",
api_key="your-api-key",
)
response = client.chat.completions.create(
model="my-model",
messages=[
{"role": "system", "content": "Ты полезный ассистент."},
{"role": "user", "content": "Напиши Hello World на Python."},
],
temperature=0.7,
max_tokens=512,
)
print(response.choices[0].message.content)
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8080/v1", api_key="your-api-key")
stream = client.chat.completions.create(
model="my-model",
messages=[{"role": "user", "content": "Расскажи анекдот."}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="", flush=True)
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8080/v1", api_key="your-api-key")
result = client.embeddings.create(
model="my-model",
input=["Первый текст", "Второй текст"],
)
for item in result.data:
print(f"index={item.index}, dims={len(item.embedding)}")
import requests, json
response = requests.post(
"http://localhost:8080/completion",
headers={"Authorization": "Bearer your-api-key"},
json={
"prompt": "Сгенерируй данные пользователя:",
"json_schema": {
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "integer"},
"email": {"type": "string"}
},
"required": ["name", "age", "email"]
},
"n_predict": 200,
},
)
print(json.loads(response.json()["content"]))
🐍 Python — нативный /completion
import requests
response = requests.post(
"http://localhost:8080/completion",
headers={"Authorization": "Bearer your-api-key"},
json={
"prompt": "Список планет Солнечной системы:",
"n_predict": 200,
"temperature": 0.5,
"top_k": 40,
"repeat_penalty": 1.1,
"stop": ["\n\n"],
},
)
print(response.json()["content"])
🐍 Python — Anthropic SDK
import anthropic
client = anthropic.Anthropic(
base_url="http://localhost:8080",
api_key="your-api-key",
)
message = client.messages.create(
model="my-model",
max_tokens=1024,
messages=[{"role": "user", "content": "Объясни квантовую запутанность."}],
)
print(message.content[0].text)
⚡ curl
curl http://localhost:8080/health
curl http://localhost:8080/v1/chat/completions \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "my-model",
"messages": [{"role": "user", "content": "Привет!"}],
"temperature": 0.8
}'
curl http://localhost:8080/tokenize \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{"content": "Hello world", "with_pieces": true}'
FAQ / Поддержка
Ответы на часто задаваемые вопросы по Provision LLM Engine.
base_url в клиенте на http://localhost:8080.
models/ и укажите путь в конфиге provision.yml. LLM Engine автоматически
обнаружит и зарегистрирует модель при перезапуске.
help@provisionlabs.ru.
Для срочных вопросов — Telegram-канал поддержки.