94057c3d3e
CI Model Inventory / build-inventory (push) Waiting to run
Lint / lint (push) Waiting to run
PR Benchmark (SMG Components) / Benchmark Compilation Check (push) Waiting to run
PR Benchmark (SMG Components) / Benchmark - Manual Policy (push) Waiting to run
PR Benchmark (SMG Components) / Benchmark - Request Processing (push) Waiting to run
PR Benchmark (SMG Components) / Benchmark Summary (push) Blocked by required conditions
Release SGLang Model Gateway Docker Image / publish (push) Waiting to run
Release SGLang Model Gateway to PyPI / build on macos (aarch64 - auto) (push) Waiting to run
Release SGLang Model Gateway to PyPI / build on windows (x86_64 - auto) (push) Waiting to run
Release SGLang Model Gateway to PyPI / build on macos (x86_64 - auto) (push) Waiting to run
Release SGLang Model Gateway to PyPI / build on linux (aarch64 - auto) (push) Waiting to run
Release SGLang Model Gateway to PyPI / build on linux (x86_64 - auto) (push) Waiting to run
Release SGLang Model Gateway to PyPI / build on linux (aarch64 - musllinux_1_1) (push) Waiting to run
Release SGLang Model Gateway to PyPI / build on linux (x86_64 - musllinux_1_1) (push) Waiting to run
Release SGLang Model Gateway to PyPI / Build SDist (push) Waiting to run
Release SGLang Model Gateway to PyPI / Upload to PyPI (push) Blocked by required conditions
Release SGLang Kernels / build-cu129-matrix (aarch64, 12.9, 3.10, arm-kernel-build-node) (push) Waiting to run
Release SGLang Kernels / build-cu129-matrix (x86_64, 12.9, 3.10, x64-kernel-build-node) (push) Waiting to run
Release SGLang Kernels / release-cu129 (push) Blocked by required conditions
Release SGLang Kernels / build-cu130-matrix (aarch64, 13.0, 3.10, arm-kernel-build-node) (push) Waiting to run
Release SGLang Kernels / build-cu130-matrix (x86_64, 13.0, 3.10, x64-kernel-build-node) (push) Waiting to run
Release SGLang Kernels / release-cu130 (push) Blocked by required conditions
Release SGLang Kernels / build-rocm-matrix (3.10, 700) (push) Waiting to run
PR Test (SMG) / build-wheel (push) Waiting to run
PR Test (SMG) / python-unit-tests (push) Blocked by required conditions
PR Test (SMG) / unit-tests (push) Waiting to run
PR Test (SMG) / benchmarks (push) Blocked by required conditions
PR Test (SMG) / chat-completions (push) Blocked by required conditions
PR Test (SMG) / chat-completions-4gpu (push) Blocked by required conditions
PR Test (SMG) / e2e (push) Blocked by required conditions
PR Test (SMG) / docker-build-test (push) Waiting to run
PR Test (SMG) / k8s-integration (push) Waiting to run
PR Test (SMG) / finish (push) Blocked by required conditions
PR Test (SMG) / summarize-benchmarks (push) Blocked by required conditions
Release SGLang Kernels / build-rocm-matrix (3.10, 720) (push) Waiting to run
Release SGLang Kernels / release-rocm700 (push) Blocked by required conditions
Release SGLang Kernels / release-rocm720 (push) Blocked by required conditions
Release SGLang Kernels / build-musa43 (43, 3.10) (push) Waiting to run
Release SGLang Kernels / release-musa43 (push) Blocked by required conditions
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
127 lines
3.1 KiB
Plaintext
127 lines
3.1 KiB
Plaintext
---
|
|
title: "OpenAI APIs - Embedding"
|
|
metatags:
|
|
description: "This tutorial covers the embedding APIs for embedding models."
|
|
---
|
|
SGLang provides OpenAI-compatible APIs to enable a smooth transition from OpenAI services to self-hosted local models.
|
|
A complete reference for the API is available in the [OpenAI API Reference](https://platform.openai.com/docs/guides/embeddings).
|
|
|
|
This tutorial covers the embedding APIs for embedding models. For a list of the supported models see the [corresponding overview page](../supported-models)
|
|
|
|
|
|
|
|
## Launch A Server
|
|
|
|
Launch the server in your terminal and wait for it to initialize. Remember to add `--is-embedding` to the command.
|
|
|
|
|
|
|
|
```python Example
|
|
from sglang.test.doc_patch import launch_server_cmd
|
|
from sglang.utils import wait_for_server, print_highlight, terminate_process
|
|
|
|
embedding_process, port = launch_server_cmd(
|
|
"""
|
|
python3 -m sglang.launch_server --model-path Alibaba-NLP/gte-Qwen2-1.5B-instruct \
|
|
--host 0.0.0.0 --is-embedding --log-level warning
|
|
"""
|
|
)
|
|
|
|
wait_for_server(f"http://localhost:{port}")
|
|
```
|
|
|
|
## Using cURL
|
|
|
|
|
|
|
|
```python Example
|
|
import subprocess, json
|
|
|
|
text = "Once upon a time"
|
|
|
|
curl_text = f"""curl -s http://localhost:{port}/v1/embeddings \
|
|
-H "Content-Type: application/json" \
|
|
-d '{{"model": "Alibaba-NLP/gte-Qwen2-1.5B-instruct", "input": "{text}"}}'"""
|
|
|
|
result = subprocess.check_output(curl_text, shell=True)
|
|
|
|
print(result)
|
|
|
|
text_embedding = json.loads(result)["data"][0]["embedding"]
|
|
|
|
print_highlight(f"Text embedding (first 10): {text_embedding[:10]}")
|
|
```
|
|
|
|
## Using Python Requests
|
|
|
|
|
|
|
|
```python Example
|
|
import requests
|
|
|
|
text = "Once upon a time"
|
|
|
|
response = requests.post(
|
|
f"http://localhost:{port}/v1/embeddings",
|
|
json={"model": "Alibaba-NLP/gte-Qwen2-1.5B-instruct", "input": text},
|
|
)
|
|
|
|
text_embedding = response.json()["data"][0]["embedding"]
|
|
|
|
print_highlight(f"Text embedding (first 10): {text_embedding[:10]}")
|
|
```
|
|
|
|
## Using OpenAI Python Client
|
|
|
|
|
|
|
|
```python Example
|
|
import openai
|
|
|
|
client = openai.Client(base_url=f"http://127.0.0.1:{port}/v1", api_key="None")
|
|
|
|
# Text embedding example
|
|
response = client.embeddings.create(
|
|
model="Alibaba-NLP/gte-Qwen2-1.5B-instruct",
|
|
input=text,
|
|
)
|
|
|
|
embedding = response.data[0].embedding[:10]
|
|
print_highlight(f"Text embedding (first 10): {embedding}")
|
|
```
|
|
|
|
## Using Input IDs
|
|
|
|
SGLang also supports `input_ids` as input to get the embedding.
|
|
|
|
|
|
|
|
```python Example
|
|
import json
|
|
import os
|
|
from transformers import AutoTokenizer
|
|
|
|
os.environ["TOKENIZERS_PARALLELISM"] = "false"
|
|
|
|
tokenizer = AutoTokenizer.from_pretrained("Alibaba-NLP/gte-Qwen2-1.5B-instruct")
|
|
input_ids = tokenizer.encode(text)
|
|
|
|
curl_ids = f"""curl -s http://localhost:{port}/v1/embeddings \
|
|
-H "Content-Type: application/json" \
|
|
-d '{{"model": "Alibaba-NLP/gte-Qwen2-1.5B-instruct", "input": {json.dumps(input_ids)}}}'"""
|
|
|
|
input_ids_embedding = json.loads(subprocess.check_output(curl_ids, shell=True))["data"][
|
|
0
|
|
]["embedding"]
|
|
|
|
print_highlight(f"Input IDs embedding (first 10): {input_ids_embedding[:10]}")
|
|
```
|
|
|
|
|
|
```python Example
|
|
terminate_process(embedding_process)
|
|
```
|
|
|
|
## Multi-Modal Embedding Model
|
|
Please refer to [Multi-Modal Embedding Model](../supported-models)
|