94057c3d3e
PR Test (NPU) / check-changes (push) Has been cancelled
PR Test (NPU) / pr-gate (push) Has been cancelled
PR Test (NPU) / set-image-config (push) Has been cancelled
PR Test (NPU) / stage-b-test-1-npu-a2 (0) (push) Has been cancelled
PR Test (NPU) / stage-b-test-1-npu-a2 (1) (push) Has been cancelled
PR Test (NPU) / stage-b-test-2-npu-a2 (0) (push) Has been cancelled
PR Test (NPU) / stage-b-test-2-npu-a2 (1) (push) Has been cancelled
PR Test (NPU) / stage-b-test-4-npu-a3 (push) Has been cancelled
PR Test (NPU) / stage-b-test-16-npu-a3 (push) Has been cancelled
PR Test (NPU) / multimodal-gen-test-1-npu-a3 (push) Has been cancelled
PR Test (NPU) / multimodal-gen-test-2-npu-a3 (push) Has been cancelled
PR Test (Arm64) / pr-gate (push) Has been cancelled
PR Test (Arm64) / check-changes (push) Has been cancelled
PR Test (Arm64) / build-test (push) Has been cancelled
PR Test (sgl-router) / gate (push) Has been cancelled
PR Test (sgl-router) / tier-1 — lint (push) Has been cancelled
PR Test (sgl-router) / tier-2 — build + test (push) Has been cancelled
PR Test (sgl-router) / tier-3 — docker (placeholder) (push) Has been cancelled
PR Test (sgl-router) / tier-3 — k8s integration (push) Has been cancelled
PR Test (sgl-router) / tier-3 — e2e (push) Has been cancelled
PR Test (sgl-router) / finish (push) Has been cancelled
PR Test (NPU) / single-node-poc (map[name:qwen3_6_27b_w8a8_1p_in64k_out1k_50ms runner:linux-aarch64-a3-2 test_case:test/registered/ascend/performance/qwen3_6_27b/test_npu_qwen3_6_27b_w8a8_1p_in64k_out1k_50ms.py test_type:perf]) (push) Has been cancelled
PR Test (NPU) / pr-test-npu-finish (push) Has been cancelled
PR Test (Xeon) / pr-gate (push) Has been cancelled
PR Test (Xeon) / check-changes (push) Has been cancelled
PR Test (Xeon) / build-test (, xeon-gnr, base-b-test-cpu) (push) Has been cancelled
PR Test (XPU) / check-changes (push) Has been cancelled
PR Test (XPU) / pr-gate (push) Has been cancelled
PR Test (XPU) / stage-a-test-1-gpu-xpu (push) Has been cancelled
PR Test (XPU) / wait-for-stage-a (push) Has been cancelled
PR Test (XPU) / stage-b-test-1-gpu-xpu (push) Has been cancelled
PR Test (XPU) / finish (push) Has been cancelled
CI Model Inventory / build-inventory (push) Has been cancelled
Lint / lint (push) Has been cancelled
PR Benchmark (SMG Components) / Benchmark Compilation Check (push) Has been cancelled
PR Benchmark (SMG Components) / Benchmark - Manual Policy (push) Has been cancelled
PR Benchmark (SMG Components) / Benchmark - Request Processing (push) Has been cancelled
PR Benchmark (SMG Components) / Benchmark Summary (push) Has been cancelled
PR Test (SMG) / build-wheel (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on windows (x86_64 - auto) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on macos (x86_64 - auto) (push) Has been cancelled
PR Test (SMG) / python-unit-tests (push) Has been cancelled
PR Test (SMG) / unit-tests (push) Has been cancelled
PR Test (SMG) / benchmarks (push) Has been cancelled
PR Test (SMG) / chat-completions (push) Has been cancelled
PR Test (SMG) / chat-completions-4gpu (push) Has been cancelled
PR Test (SMG) / e2e (push) Has been cancelled
PR Test (SMG) / docker-build-test (push) Has been cancelled
PR Test (SMG) / k8s-integration (push) Has been cancelled
PR Test (SMG) / finish (push) Has been cancelled
PR Test (SMG) / summarize-benchmarks (push) Has been cancelled
Release SGLang Model Gateway Docker Image / publish (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on macos (aarch64 - auto) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on linux (aarch64 - auto) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on linux (x86_64 - auto) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on linux (aarch64 - musllinux_1_1) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on linux (x86_64 - musllinux_1_1) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / Build SDist (push) Has been cancelled
Release SGLang Model Gateway to PyPI / Upload to PyPI (push) Has been cancelled
Release SGLang Kernels / build-cu129-matrix (aarch64, 12.9, 3.10, arm-kernel-build-node) (push) Has been cancelled
Release SGLang Kernels / build-cu129-matrix (x86_64, 12.9, 3.10, x64-kernel-build-node) (push) Has been cancelled
Release SGLang Kernels / release-cu129 (push) Has been cancelled
Release SGLang Kernels / build-cu130-matrix (aarch64, 13.0, 3.10, arm-kernel-build-node) (push) Has been cancelled
Release SGLang Kernels / build-cu130-matrix (x86_64, 13.0, 3.10, x64-kernel-build-node) (push) Has been cancelled
Release SGLang Kernels / release-cu130 (push) Has been cancelled
Release SGLang Kernels / build-rocm-matrix (3.10, 700) (push) Has been cancelled
Release SGLang Kernels / build-rocm-matrix (3.10, 720) (push) Has been cancelled
Release SGLang Kernels / release-rocm700 (push) Has been cancelled
Release SGLang Kernels / release-rocm720 (push) Has been cancelled
Release SGLang Kernels / build-musa43 (43, 3.10) (push) Has been cancelled
Release SGLang Kernels / release-musa43 (push) Has been cancelled
104 lines
3.2 KiB
Python
104 lines
3.2 KiB
Python
# NOTE: Currently this can only be run through HTTP requests.
|
|
from concurrent.futures import ThreadPoolExecutor
|
|
|
|
from json_decode import character_regex
|
|
|
|
from sglang.utils import http_request
|
|
|
|
character_names = ["Hermione Granger", "Ron Weasley", "Harry Potter"]
|
|
|
|
base_url = "http://localhost:30000"
|
|
|
|
prompt = "is a character in Harry Potter. Please fill in the following information about this character.\n"
|
|
|
|
|
|
def openai_api_request(name):
|
|
data = {
|
|
"model": "",
|
|
"prompt": name + prompt,
|
|
"temperature": 0,
|
|
"max_tokens": 128,
|
|
"regex": character_regex,
|
|
"logprobs": 3,
|
|
}
|
|
res = http_request(base_url + "/v1/completions", json=data).json()
|
|
|
|
# with open(f"json_logprobs_{name.replace(' ', '_')}_tmp.json", "w") as fout:
|
|
# fout.write(json.dumps(res, indent=4))
|
|
|
|
logprobs = res["choices"][0]["logprobs"]
|
|
usage = res["usage"]
|
|
assert len(logprobs["token_logprobs"]) == len(logprobs["tokens"])
|
|
assert len(logprobs["token_logprobs"]) == len(logprobs["top_logprobs"])
|
|
assert len(logprobs["token_logprobs"]) == usage["completion_tokens"] - 1
|
|
|
|
return res
|
|
|
|
|
|
def srt_api_request(name):
|
|
data = {
|
|
"text": name + prompt,
|
|
"sampling_params": {
|
|
"temperature": 0,
|
|
"max_new_tokens": 128,
|
|
"regex": character_regex,
|
|
},
|
|
"return_logprob": True,
|
|
"logprob_start_len": 0,
|
|
"top_logprobs_num": 3,
|
|
"return_text_in_logprobs": True,
|
|
}
|
|
|
|
res = http_request(base_url + "/generate", json=data).json()
|
|
|
|
# with open(f"json_logprobs_{name.replace(' ', '_')}_tmp.json", "w") as fout:
|
|
# fout.write(json.dumps(res, indent=4))
|
|
|
|
meta_info = res["meta_info"]
|
|
assert len(meta_info["input_token_logprobs"]) == len(
|
|
meta_info["input_top_logprobs"]
|
|
)
|
|
assert len(meta_info["output_token_logprobs"]) == len(
|
|
meta_info["output_top_logprobs"]
|
|
)
|
|
assert len(meta_info["input_token_logprobs"]) == meta_info["prompt_tokens"]
|
|
assert len(meta_info["output_token_logprobs"]) == meta_info["completion_tokens"] - 1
|
|
|
|
return res
|
|
|
|
|
|
def pretty_print(res):
|
|
meta_info = res["meta_info"]
|
|
|
|
print("\n\n", "=" * 30, "Prefill", "=" * 30)
|
|
for i in range(len(meta_info["input_token_logprobs"])):
|
|
print(f"{str(meta_info['input_token_logprobs'][i][2].encode()): <20}", end="")
|
|
top_ks = (
|
|
[str(t[2].encode()) for t in meta_info["input_top_logprobs"][i]]
|
|
if meta_info["input_top_logprobs"][i]
|
|
else []
|
|
)
|
|
for top_k in top_ks:
|
|
print(f"{top_k: <15}", end="")
|
|
print()
|
|
|
|
print("\n\n", "=" * 30, "Decode", "=" * 30)
|
|
for i in range(len(meta_info["output_token_logprobs"])):
|
|
print(f"{str(meta_info['output_token_logprobs'][i][2].encode()): <20}", end="")
|
|
top_ks = [str(t[2].encode()) for t in meta_info["output_top_logprobs"][i]]
|
|
for top_k in top_ks:
|
|
print(f"{top_k: <15}", end="")
|
|
print()
|
|
|
|
print(res["text"])
|
|
|
|
|
|
if __name__ == "__main__":
|
|
with ThreadPoolExecutor() as executor:
|
|
ress = executor.map(srt_api_request, character_names)
|
|
|
|
for res in ress:
|
|
pretty_print(res)
|
|
|
|
openai_api_request("Hermione Granger")
|