sgl-router: experimental Rust HTTP router for SGLang worker pools (#25851)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
aae04b1241
commit
6e8fe176be
@@ -0,0 +1,37 @@
|
||||
"""
|
||||
Smoke test for /v1/tokenize and /v1/detokenize round-trip.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import httpx
|
||||
|
||||
MODEL = "Qwen/Qwen3-0.6B"
|
||||
TEXT = "Hello, world!"
|
||||
|
||||
|
||||
def test_tokenize_round_trip(router: str) -> None:
|
||||
"""POST /v1/tokenize then /v1/detokenize must recover the original text."""
|
||||
# Tokenize
|
||||
tok_resp = httpx.post(
|
||||
f"{router}/v1/tokenize",
|
||||
json={"model": MODEL, "prompt": TEXT},
|
||||
timeout=30,
|
||||
)
|
||||
assert tok_resp.status_code == 200, tok_resp.text
|
||||
tokens = tok_resp.json()["tokens"]
|
||||
assert (
|
||||
isinstance(tokens, list) and len(tokens) > 0
|
||||
), f"Expected non-empty token list, got: {tokens}"
|
||||
|
||||
# Detokenize
|
||||
detok_resp = httpx.post(
|
||||
f"{router}/v1/detokenize",
|
||||
json={"model": MODEL, "tokens": tokens},
|
||||
timeout=30,
|
||||
)
|
||||
assert detok_resp.status_code == 200, detok_resp.text
|
||||
recovered = detok_resp.json()["text"]
|
||||
assert (
|
||||
TEXT in recovered or recovered in TEXT
|
||||
), f"Round-trip mismatch: original={TEXT!r}, recovered={recovered!r}"
|
||||
Reference in New Issue
Block a user