Skip to content

Use Cases Quick Dev with OpenAI

Mike edited this page May 28, 2026 · 2 revisions

Cases: Quick Dev with OpenAI

Этот сценарий подходит, когда приложение уже написано под официальную Python библиотеку openai, но на этапе разработки хочется быстро запускать запросы локально, без внешнего API.

Когда использовать

  • нужно проверить prompt, agents, RAG или tool-calling glue локально;
  • хочется оставить текущий OpenAI-compatible client code почти без изменений;
  • нужен стабильный локальный /v1 endpoint для тестов;
  • важно, чтобы inference шел в native режиме, а не в browser runtime.

Recommended pattern for OpenAI tests

import xlocllm
from openai import OpenAI

unit = xlocllm.unit("LLM", "Qwen-3.5-0.8b", quant="q4")
unit1 = xlocllm.unit("embedding", "multilingual-e5-small")

rt = xlocllm.runtime([unit, unit1], mode="native", port=1146)
rt.run()

# Existing OpenAI client code starts here.
client = OpenAI(base_url=rt.url, api_key="xlocllm")
response = client.chat.completions.create(
    model=unit.model,
    messages=[
        {"role": "system", "content": "You are a concise local dev assistant."},
        {"role": "user", "content": "Draft a test plan for a login form."},
    ],
    temperature=0,
    max_tokens=256,
)
print(response.choices[0].message.content)

rt.close()

Все, что ниже client = OpenAI(...), остается обычным кодом OpenAI library: client.chat.completions.create(...), client.embeddings.create(...), wrappers ваших тестов, fixtures и application code.

Что меняется в существующем коде

OpenAI cloud code xlocllm native quick-dev code
OpenAI(api_key=...) OpenAI(base_url=rt.url, api_key="xlocllm")
remote model name unit.model from xlocllm.unit(...)
external hosted inference mode="native" local runtime
cloud billing/network dependency local cache + local loopback API

Модели выбираются через xlocllm.unit(...), runtime получает список [unit, unit1, ...], а дальше клиент работает как с обычным OpenAI-compatible сервером. Для quick dev обычно достаточно заменить base_url; значение model должно указывать на локальный unit.model.

Clone this wiki locally