Quick Start Guide for OpenAI API Chat Server

Test the OpenAI API Server (fastapi)

prepare: pip install fastapi uvicorn openai

start server python ./dash-infer/examples/api_server/fastapi/fastapi-server.py

user may change the parameter by check fastapi-server.py -h

After sever start, server will print some log like:

INFO:     Started server process [4898]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

test with openai client python ./dash-infer/examples/api_server/fastapi/openai-client.py

This client will call with openai client with streaming and block mode.

Start OpenAI Server with Docker (fastchat)

We have provide a Docker image to start OpenAI server. This example demonstrates how to use Docker to run DashInfer as an inference engine, providing OpenAI API endpoints.

docker run \
    --shm-size=8g \
    --network=host \
    --ipc=host \
    --gpus=all \
    -v=<host_path_to_your_model>:<container_path_to_your_model> \
    dashinfer/fschat_ubuntu_cuda:v2.0 \
    -h <host> -p <port> -m -- --model-path <container_path_to_your_model> --device-list <device_list>
  • <host_path_to_your_model>: Path to your model on the host

  • <container_path_to_your_model>: Path where the model is mounted in the container

  • <device_list>: List of devices supported by the model, e.g., 0,1

  • -h: The listening address of the API server

  • -p: The listening port of the API server

  • -m: Use Modelscope to download the model

  • --model-path: Path for loading or downloading the model

  • --device-list: List of CUDA devices used to run the model

For example:

docker run  \
    --shm-size=8g \
    --network=host \
    --ipc=host \
    --gpus=all \
    -v=/mnt/models/modelscope/hub/qwen/Qwen2.5-7B-Instruct:/models/qwen/Qwen2.5-7B-Instruct \
    dashinfer/fschat_ubuntu_cuda:v2.0 \
    -h 127.0.0.1 -p 8088 -m -- --model-path /models/qwen/Qwen2.5-7B-Instruct --device-list 0

You can also build you owner fastchat Docker image by modifying the Docker file scripts/docker/fschat_ubuntu_cuda.Dockerfile.

Testing the OpenAI API Server (fastchat)

Testing with OpenAI SDK

In examples/api_server/fschat/openai-client.py, the official OpenAI SDK is used to test the API server.

python examples/api_server/fschat/openai-client.py

Testing with curl

Assuming the OpenAI Server has been started and the port number is 8088, you can use the following command:

curl http://127.0.0.1:8088/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen2-7B-Instruct",
    "messages": [{"role": "user", "content": "Hello! What is your name?"}]
  }'