mirror of
https://github.com/transformerlab/transformerlab-api.git
synced 2025-04-19 19:36:18 +03:00
Make the api run through uv
This commit is contained in:
@@ -277,6 +277,9 @@ install_dependencies() {
|
||||
fi
|
||||
fi
|
||||
|
||||
#install uv
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
|
||||
echo "HAS_GPU=$HAS_GPU"
|
||||
|
||||
if [ "$HAS_GPU" = true ] ; then
|
||||
@@ -285,7 +288,7 @@ install_dependencies() {
|
||||
|
||||
echo "Installing requirements:"
|
||||
# Install the python requirements
|
||||
pip install --upgrade -r "$TLAB_CODE_DIR"/requirements.txt
|
||||
uv pip install --upgrade -r "$TLAB_CODE_DIR"/requirements-uv.txt
|
||||
|
||||
# Install Flash Attention separately - it doesn't play well in requirements file
|
||||
# Using instructions from https://github.com/Dao-AILab/flash-attention
|
||||
@@ -298,7 +301,7 @@ install_dependencies() {
|
||||
echo "https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#pre-installation-actions"
|
||||
echo "Installing Tranformer Lab requirements without GPU support"
|
||||
|
||||
pip install --upgrade -r "$TLAB_CODE_DIR"/requirements-no-gpu.txt
|
||||
uv pip install --upgrade -r "$TLAB_CODE_DIR"/requirements-no-gpu-uv.txt
|
||||
fi
|
||||
|
||||
# Check if the uvicorn command works:
|
||||
|
||||
340
requirements-no-gpu-uv.txt
Normal file
340
requirements-no-gpu-uv.txt
Normal file
@@ -0,0 +1,340 @@
|
||||
# This file was autogenerated by uv via the following command:
|
||||
# uv pip compile requirements.in -o requirements-no-gpu-uv.txt
|
||||
absl-py==2.1.0
|
||||
# via
|
||||
# rouge-score
|
||||
# tensorboard
|
||||
accelerate==1.3.0
|
||||
# via
|
||||
# -r requirements.in
|
||||
# peft
|
||||
aiofiles==24.1.0
|
||||
# via -r requirements.in
|
||||
aiohappyeyeballs==2.4.4
|
||||
# via aiohttp
|
||||
aiohttp==3.11.11
|
||||
# via
|
||||
# datasets
|
||||
# fschat
|
||||
# fsspec
|
||||
aiosignal==1.3.2
|
||||
# via aiohttp
|
||||
aiosqlite==0.20.0
|
||||
# via -r requirements.in
|
||||
annotated-types==0.7.0
|
||||
# via pydantic
|
||||
anyio==4.8.0
|
||||
# via
|
||||
# httpx
|
||||
# starlette
|
||||
# watchfiles
|
||||
attrs==25.1.0
|
||||
# via aiohttp
|
||||
brotli==1.1.0
|
||||
# via py7zr
|
||||
certifi==2022.12.7
|
||||
# via
|
||||
# httpcore
|
||||
# httpx
|
||||
# requests
|
||||
charset-normalizer==2.1.1
|
||||
# via requests
|
||||
click==8.1.8
|
||||
# via
|
||||
# nltk
|
||||
# uvicorn
|
||||
datasets==2.19.1
|
||||
# via
|
||||
# -r requirements.in
|
||||
# evaluate
|
||||
dill==0.3.8
|
||||
# via
|
||||
# datasets
|
||||
# evaluate
|
||||
# multiprocess
|
||||
einops==0.8.0
|
||||
# via -r requirements.in
|
||||
evaluate==0.4.3
|
||||
# via -r requirements.in
|
||||
fastapi==0.115.7
|
||||
# via
|
||||
# -r requirements.in
|
||||
# fschat
|
||||
filelock==3.13.1
|
||||
# via
|
||||
# datasets
|
||||
# huggingface-hub
|
||||
# torch
|
||||
# transformers
|
||||
frozenlist==1.5.0
|
||||
# via
|
||||
# aiohttp
|
||||
# aiosignal
|
||||
fschat==0.2.36
|
||||
# via -r requirements.in
|
||||
fsspec==2024.2.0
|
||||
# via
|
||||
# datasets
|
||||
# evaluate
|
||||
# huggingface-hub
|
||||
# torch
|
||||
grpcio==1.70.0
|
||||
# via tensorboard
|
||||
h11==0.14.0
|
||||
# via
|
||||
# httpcore
|
||||
# uvicorn
|
||||
httpcore==1.0.7
|
||||
# via httpx
|
||||
httpx==0.28.1
|
||||
# via fschat
|
||||
huggingface-hub==0.28.0
|
||||
# via
|
||||
# accelerate
|
||||
# datasets
|
||||
# evaluate
|
||||
# peft
|
||||
# tokenizers
|
||||
# transformers
|
||||
idna==3.4
|
||||
# via
|
||||
# anyio
|
||||
# httpx
|
||||
# requests
|
||||
# yarl
|
||||
inflate64==1.0.1
|
||||
# via py7zr
|
||||
jinja2==3.1.4
|
||||
# via torch
|
||||
joblib==1.4.2
|
||||
# via nltk
|
||||
latex2mathml==3.77.0
|
||||
# via markdown2
|
||||
loralib==0.1.2
|
||||
# via -r requirements.in
|
||||
markdown==3.7
|
||||
# via tensorboard
|
||||
markdown-it-py==3.0.0
|
||||
# via rich
|
||||
markdown2==2.5.3
|
||||
# via fschat
|
||||
markupsafe==2.1.5
|
||||
# via
|
||||
# jinja2
|
||||
# werkzeug
|
||||
mdurl==0.1.2
|
||||
# via markdown-it-py
|
||||
mpmath==1.3.0
|
||||
# via sympy
|
||||
multidict==6.1.0
|
||||
# via
|
||||
# aiohttp
|
||||
# yarl
|
||||
multiprocess==0.70.16
|
||||
# via
|
||||
# datasets
|
||||
# evaluate
|
||||
multivolumefile==0.2.3
|
||||
# via py7zr
|
||||
networkx==3.3
|
||||
# via torch
|
||||
nh3==0.2.20
|
||||
# via fschat
|
||||
nltk==3.9.1
|
||||
# via rouge-score
|
||||
numpy==2.1.2
|
||||
# via
|
||||
# accelerate
|
||||
# datasets
|
||||
# evaluate
|
||||
# fschat
|
||||
# pandas
|
||||
# peft
|
||||
# rouge-score
|
||||
# scipy
|
||||
# tensorboard
|
||||
# torchvision
|
||||
# transformers
|
||||
nvidia-ml-py3==7.352.0
|
||||
# via -r requirements.in
|
||||
packaging==24.1
|
||||
# via
|
||||
# -r requirements.in
|
||||
# accelerate
|
||||
# datasets
|
||||
# evaluate
|
||||
# huggingface-hub
|
||||
# peft
|
||||
# tensorboard
|
||||
# transformers
|
||||
pandas==2.2.3
|
||||
# via
|
||||
# datasets
|
||||
# evaluate
|
||||
peft==0.14.0
|
||||
# via -r requirements.in
|
||||
pillow==11.0.0
|
||||
# via torchvision
|
||||
prompt-toolkit==3.0.50
|
||||
# via fschat
|
||||
propcache==0.2.1
|
||||
# via
|
||||
# aiohttp
|
||||
# yarl
|
||||
protobuf==5.29.3
|
||||
# via tensorboard
|
||||
psutil==6.1.1
|
||||
# via
|
||||
# -r requirements.in
|
||||
# accelerate
|
||||
# peft
|
||||
# py7zr
|
||||
py7zr==0.22.0
|
||||
# via -r requirements.in
|
||||
pyarrow==19.0.0
|
||||
# via datasets
|
||||
pyarrow-hotfix==0.6
|
||||
# via datasets
|
||||
pybcj==1.0.3
|
||||
# via py7zr
|
||||
pycryptodomex==3.21.0
|
||||
# via py7zr
|
||||
pydantic==2.10.6
|
||||
# via
|
||||
# -r requirements.in
|
||||
# fastapi
|
||||
# fschat
|
||||
pydantic-core==2.27.2
|
||||
# via pydantic
|
||||
pygments==2.19.1
|
||||
# via
|
||||
# markdown2
|
||||
# rich
|
||||
pyppmd==1.1.1
|
||||
# via py7zr
|
||||
python-dateutil==2.9.0.post0
|
||||
# via pandas
|
||||
python-multipart==0.0.20
|
||||
# via -r requirements.in
|
||||
pytz==2024.2
|
||||
# via pandas
|
||||
pyyaml==6.0.2
|
||||
# via
|
||||
# accelerate
|
||||
# datasets
|
||||
# huggingface-hub
|
||||
# peft
|
||||
# transformers
|
||||
# wavedrom
|
||||
pyzstd==0.16.2
|
||||
# via py7zr
|
||||
regex==2024.11.6
|
||||
# via
|
||||
# nltk
|
||||
# tiktoken
|
||||
# transformers
|
||||
requests==2.28.1
|
||||
# via
|
||||
# datasets
|
||||
# evaluate
|
||||
# fschat
|
||||
# huggingface-hub
|
||||
# tiktoken
|
||||
# transformers
|
||||
rich==13.9.4
|
||||
# via fschat
|
||||
rouge-score==0.1.2
|
||||
# via -r requirements.in
|
||||
safetensors==0.5.2
|
||||
# via
|
||||
# accelerate
|
||||
# peft
|
||||
# transformers
|
||||
scipy==1.15.1
|
||||
# via -r requirements.in
|
||||
sentencepiece==0.2.0
|
||||
# via -r requirements.in
|
||||
setuptools==70.2.0
|
||||
# via
|
||||
# tensorboard
|
||||
# torch
|
||||
shortuuid==1.0.13
|
||||
# via fschat
|
||||
six==1.17.0
|
||||
# via
|
||||
# python-dateutil
|
||||
# rouge-score
|
||||
# tensorboard
|
||||
# wavedrom
|
||||
sniffio==1.3.1
|
||||
# via anyio
|
||||
starlette==0.45.3
|
||||
# via fastapi
|
||||
svgwrite==1.4.3
|
||||
# via wavedrom
|
||||
sympy==1.13.1
|
||||
# via torch
|
||||
tensorboard==2.18.0
|
||||
# via -r requirements.in
|
||||
tensorboard-data-server==0.7.2
|
||||
# via tensorboard
|
||||
texttable==1.7.0
|
||||
# via py7zr
|
||||
tiktoken==0.8.0
|
||||
# via
|
||||
# -r requirements.in
|
||||
# fschat
|
||||
tokenizers==0.21.0
|
||||
# via transformers
|
||||
torch==2.6.0+cpu
|
||||
# via
|
||||
# -r requirements.in
|
||||
# accelerate
|
||||
# peft
|
||||
# torchaudio
|
||||
# torchvision
|
||||
torchaudio==2.6.0+cpu
|
||||
# via -r requirements.in
|
||||
torchvision==0.21.0+cpu
|
||||
# via -r requirements.in
|
||||
tqdm==4.66.5
|
||||
# via
|
||||
# datasets
|
||||
# evaluate
|
||||
# huggingface-hub
|
||||
# nltk
|
||||
# peft
|
||||
# transformers
|
||||
transformers==4.47.1
|
||||
# via
|
||||
# -r requirements.in
|
||||
# peft
|
||||
typing-extensions==4.12.2
|
||||
# via
|
||||
# aiosqlite
|
||||
# anyio
|
||||
# fastapi
|
||||
# huggingface-hub
|
||||
# pydantic
|
||||
# pydantic-core
|
||||
# torch
|
||||
tzdata==2025.1
|
||||
# via pandas
|
||||
urllib3==1.26.13
|
||||
# via requests
|
||||
uvicorn==0.34.0
|
||||
# via fschat
|
||||
watchfiles==1.0.4
|
||||
# via -r requirements.in
|
||||
wavedrom==2.0.3.post3
|
||||
# via markdown2
|
||||
wcwidth==0.2.13
|
||||
# via prompt-toolkit
|
||||
werkzeug==3.1.3
|
||||
# via tensorboard
|
||||
xxhash==3.5.0
|
||||
# via
|
||||
# datasets
|
||||
# evaluate
|
||||
yarl==1.18.3
|
||||
# via aiohttp
|
||||
374
requirements-uv.txt
Normal file
374
requirements-uv.txt
Normal file
@@ -0,0 +1,374 @@
|
||||
# This file was autogenerated by uv via the following command:
|
||||
# uv pip compile requirements.in -o requirements-uv.txt
|
||||
absl-py==2.1.0
|
||||
# via
|
||||
# rouge-score
|
||||
# tensorboard
|
||||
accelerate==1.3.0
|
||||
# via
|
||||
# -r requirements.in
|
||||
# peft
|
||||
aiofiles==24.1.0
|
||||
# via -r requirements.in
|
||||
aiohappyeyeballs==2.4.4
|
||||
# via aiohttp
|
||||
aiohttp==3.11.11
|
||||
# via
|
||||
# datasets
|
||||
# fschat
|
||||
# fsspec
|
||||
aiosignal==1.3.2
|
||||
# via aiohttp
|
||||
aiosqlite==0.20.0
|
||||
# via -r requirements.in
|
||||
annotated-types==0.7.0
|
||||
# via pydantic
|
||||
anyio==4.8.0
|
||||
# via
|
||||
# httpx
|
||||
# starlette
|
||||
# watchfiles
|
||||
attrs==25.1.0
|
||||
# via aiohttp
|
||||
brotli==1.1.0
|
||||
# via py7zr
|
||||
certifi==2024.12.14
|
||||
# via
|
||||
# httpcore
|
||||
# httpx
|
||||
# requests
|
||||
charset-normalizer==3.4.1
|
||||
# via requests
|
||||
click==8.1.8
|
||||
# via
|
||||
# nltk
|
||||
# uvicorn
|
||||
datasets==3.2.0
|
||||
# via
|
||||
# -r requirements.in
|
||||
# evaluate
|
||||
dill==0.3.8
|
||||
# via
|
||||
# datasets
|
||||
# evaluate
|
||||
# multiprocess
|
||||
einops==0.8.0
|
||||
# via -r requirements.in
|
||||
evaluate==0.4.3
|
||||
# via -r requirements.in
|
||||
fastapi==0.115.7
|
||||
# via
|
||||
# -r requirements.in
|
||||
# fschat
|
||||
filelock==3.17.0
|
||||
# via
|
||||
# datasets
|
||||
# huggingface-hub
|
||||
# torch
|
||||
# transformers
|
||||
frozenlist==1.5.0
|
||||
# via
|
||||
# aiohttp
|
||||
# aiosignal
|
||||
fschat==0.2.36
|
||||
# via -r requirements.in
|
||||
fsspec==2024.9.0
|
||||
# via
|
||||
# datasets
|
||||
# evaluate
|
||||
# huggingface-hub
|
||||
# torch
|
||||
grpcio==1.70.0
|
||||
# via tensorboard
|
||||
h11==0.14.0
|
||||
# via
|
||||
# httpcore
|
||||
# uvicorn
|
||||
httpcore==1.0.7
|
||||
# via httpx
|
||||
httpx==0.28.1
|
||||
# via fschat
|
||||
huggingface-hub==0.28.0
|
||||
# via
|
||||
# accelerate
|
||||
# datasets
|
||||
# evaluate
|
||||
# peft
|
||||
# tokenizers
|
||||
# transformers
|
||||
idna==3.10
|
||||
# via
|
||||
# anyio
|
||||
# httpx
|
||||
# requests
|
||||
# yarl
|
||||
inflate64==1.0.1
|
||||
# via py7zr
|
||||
jinja2==3.1.5
|
||||
# via torch
|
||||
joblib==1.4.2
|
||||
# via nltk
|
||||
latex2mathml==3.77.0
|
||||
# via markdown2
|
||||
loralib==0.1.2
|
||||
# via -r requirements.in
|
||||
markdown==3.7
|
||||
# via tensorboard
|
||||
markdown-it-py==3.0.0
|
||||
# via rich
|
||||
markdown2==2.5.3
|
||||
# via fschat
|
||||
markupsafe==3.0.2
|
||||
# via
|
||||
# jinja2
|
||||
# werkzeug
|
||||
mdurl==0.1.2
|
||||
# via markdown-it-py
|
||||
mpmath==1.3.0
|
||||
# via sympy
|
||||
multidict==6.1.0
|
||||
# via
|
||||
# aiohttp
|
||||
# yarl
|
||||
multiprocess==0.70.16
|
||||
# via
|
||||
# datasets
|
||||
# evaluate
|
||||
multivolumefile==0.2.3
|
||||
# via py7zr
|
||||
networkx==3.4.2
|
||||
# via torch
|
||||
nh3==0.2.20
|
||||
# via fschat
|
||||
nltk==3.9.1
|
||||
# via rouge-score
|
||||
numpy==2.2.2
|
||||
# via
|
||||
# accelerate
|
||||
# datasets
|
||||
# evaluate
|
||||
# fschat
|
||||
# pandas
|
||||
# peft
|
||||
# rouge-score
|
||||
# scipy
|
||||
# tensorboard
|
||||
# torchvision
|
||||
# transformers
|
||||
nvidia-cublas-cu12==12.4.5.8
|
||||
# via
|
||||
# nvidia-cudnn-cu12
|
||||
# nvidia-cusolver-cu12
|
||||
# torch
|
||||
nvidia-cuda-cupti-cu12==12.4.127
|
||||
# via torch
|
||||
nvidia-cuda-nvrtc-cu12==12.4.127
|
||||
# via torch
|
||||
nvidia-cuda-runtime-cu12==12.4.127
|
||||
# via torch
|
||||
nvidia-cudnn-cu12==9.1.0.70
|
||||
# via torch
|
||||
nvidia-cufft-cu12==11.2.1.3
|
||||
# via torch
|
||||
nvidia-curand-cu12==10.3.5.147
|
||||
# via torch
|
||||
nvidia-cusolver-cu12==11.6.1.9
|
||||
# via torch
|
||||
nvidia-cusparse-cu12==12.3.1.170
|
||||
# via
|
||||
# nvidia-cusolver-cu12
|
||||
# torch
|
||||
nvidia-cusparselt-cu12==0.6.2
|
||||
# via torch
|
||||
nvidia-ml-py3==7.352.0
|
||||
# via -r requirements.in
|
||||
nvidia-nccl-cu12==2.21.5
|
||||
# via torch
|
||||
nvidia-nvjitlink-cu12==12.4.127
|
||||
# via
|
||||
# nvidia-cusolver-cu12
|
||||
# nvidia-cusparse-cu12
|
||||
# torch
|
||||
nvidia-nvtx-cu12==12.4.127
|
||||
# via torch
|
||||
packaging==24.2
|
||||
# via
|
||||
# -r requirements.in
|
||||
# accelerate
|
||||
# datasets
|
||||
# evaluate
|
||||
# huggingface-hub
|
||||
# peft
|
||||
# tensorboard
|
||||
# transformers
|
||||
pandas==2.2.3
|
||||
# via
|
||||
# datasets
|
||||
# evaluate
|
||||
peft==0.14.0
|
||||
# via -r requirements.in
|
||||
pillow==11.1.0
|
||||
# via torchvision
|
||||
prompt-toolkit==3.0.50
|
||||
# via fschat
|
||||
propcache==0.2.1
|
||||
# via
|
||||
# aiohttp
|
||||
# yarl
|
||||
protobuf==5.29.3
|
||||
# via tensorboard
|
||||
psutil==6.1.1
|
||||
# via
|
||||
# -r requirements.in
|
||||
# accelerate
|
||||
# peft
|
||||
# py7zr
|
||||
py7zr==0.22.0
|
||||
# via -r requirements.in
|
||||
pyarrow==19.0.0
|
||||
# via datasets
|
||||
pybcj==1.0.3
|
||||
# via py7zr
|
||||
pycryptodomex==3.21.0
|
||||
# via py7zr
|
||||
pydantic==2.10.6
|
||||
# via
|
||||
# -r requirements.in
|
||||
# fastapi
|
||||
# fschat
|
||||
pydantic-core==2.27.2
|
||||
# via pydantic
|
||||
pygments==2.19.1
|
||||
# via
|
||||
# markdown2
|
||||
# rich
|
||||
pyppmd==1.1.1
|
||||
# via py7zr
|
||||
python-dateutil==2.9.0.post0
|
||||
# via pandas
|
||||
python-multipart==0.0.20
|
||||
# via -r requirements.in
|
||||
pytz==2024.2
|
||||
# via pandas
|
||||
pyyaml==6.0.2
|
||||
# via
|
||||
# accelerate
|
||||
# datasets
|
||||
# huggingface-hub
|
||||
# peft
|
||||
# transformers
|
||||
# wavedrom
|
||||
pyzstd==0.16.2
|
||||
# via py7zr
|
||||
regex==2024.11.6
|
||||
# via
|
||||
# nltk
|
||||
# tiktoken
|
||||
# transformers
|
||||
requests==2.32.3
|
||||
# via
|
||||
# datasets
|
||||
# evaluate
|
||||
# fschat
|
||||
# huggingface-hub
|
||||
# tiktoken
|
||||
# transformers
|
||||
rich==13.9.4
|
||||
# via fschat
|
||||
rouge-score==0.1.2
|
||||
# via -r requirements.in
|
||||
safetensors==0.5.2
|
||||
# via
|
||||
# accelerate
|
||||
# peft
|
||||
# transformers
|
||||
scipy==1.15.1
|
||||
# via -r requirements.in
|
||||
sentencepiece==0.2.0
|
||||
# via -r requirements.in
|
||||
setuptools==75.8.0
|
||||
# via
|
||||
# tensorboard
|
||||
# torch
|
||||
shortuuid==1.0.13
|
||||
# via fschat
|
||||
six==1.17.0
|
||||
# via
|
||||
# python-dateutil
|
||||
# rouge-score
|
||||
# tensorboard
|
||||
# wavedrom
|
||||
sniffio==1.3.1
|
||||
# via anyio
|
||||
starlette==0.45.3
|
||||
# via fastapi
|
||||
svgwrite==1.4.3
|
||||
# via wavedrom
|
||||
sympy==1.13.1
|
||||
# via torch
|
||||
tensorboard==2.18.0
|
||||
# via -r requirements.in
|
||||
tensorboard-data-server==0.7.2
|
||||
# via tensorboard
|
||||
texttable==1.7.0
|
||||
# via py7zr
|
||||
tiktoken==0.8.0
|
||||
# via
|
||||
# -r requirements.in
|
||||
# fschat
|
||||
tokenizers==0.21.0
|
||||
# via transformers
|
||||
torch==2.6.0
|
||||
# via
|
||||
# -r requirements.in
|
||||
# accelerate
|
||||
# peft
|
||||
# torchaudio
|
||||
# torchvision
|
||||
torchaudio==2.6.0
|
||||
# via -r requirements.in
|
||||
torchvision==0.21.0
|
||||
# via -r requirements.in
|
||||
tqdm==4.67.1
|
||||
# via
|
||||
# datasets
|
||||
# evaluate
|
||||
# huggingface-hub
|
||||
# nltk
|
||||
# peft
|
||||
# transformers
|
||||
transformers==4.47.1
|
||||
# via
|
||||
# -r requirements.in
|
||||
# peft
|
||||
triton==3.2.0
|
||||
# via torch
|
||||
typing-extensions==4.12.2
|
||||
# via
|
||||
# aiosqlite
|
||||
# anyio
|
||||
# fastapi
|
||||
# huggingface-hub
|
||||
# pydantic
|
||||
# pydantic-core
|
||||
# torch
|
||||
tzdata==2025.1
|
||||
# via pandas
|
||||
urllib3==2.3.0
|
||||
# via requests
|
||||
uvicorn==0.34.0
|
||||
# via fschat
|
||||
watchfiles==1.0.4
|
||||
# via -r requirements.in
|
||||
wavedrom==2.0.3.post3
|
||||
# via markdown2
|
||||
wcwidth==0.2.13
|
||||
# via prompt-toolkit
|
||||
werkzeug==3.1.3
|
||||
# via tensorboard
|
||||
xxhash==3.5.0
|
||||
# via
|
||||
# datasets
|
||||
# evaluate
|
||||
yarl==1.18.3
|
||||
# via aiohttp
|
||||
4
run.sh
4
run.sh
@@ -71,7 +71,7 @@ fi
|
||||
echo "▶️ Starting the API server:"
|
||||
if [ "$RELOAD" = true ]; then
|
||||
echo "🔁 Reload the server on file changes"
|
||||
uvicorn api:app --reload --port ${PORT} --host ${HOST}
|
||||
uv run -v uvicorn api:app --reload --port ${PORT} --host ${HOST}
|
||||
else
|
||||
uvicorn api:app --port ${PORT} --host ${HOST} --no-access-log
|
||||
uv run -v uvicorn api:app --port ${PORT} --host ${HOST} --no-access-log
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user