Skip to content

Commit

Permalink
Add --nowebui flag for pure API mode (#4651)
Browse files Browse the repository at this point in the history
  • Loading branch information
oobabooga authored Nov 19, 2023
1 parent 0fa1af2 commit ef6feed
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 11 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,7 @@ Optionally, you can use the following command-line flags:
| `--api-port API_PORT` | The listening port for the API. |
| `--api-key API_KEY` | API authentication key. |
| `--admin-key ADMIN_KEY` | API authentication key for admin tasks like loading and unloading models. If not set, will be the same as --api-key. |
| `--nowebui` | Do not launch the Gradio UI. Useful for launching the API in standalone mode. |

#### Multimodal

Expand Down
5 changes: 4 additions & 1 deletion extensions/openai/script.py
Original file line number Diff line number Diff line change
Expand Up @@ -341,4 +341,7 @@ def on_start(public_url: str):


def setup():
Thread(target=run_server, daemon=True).start()
if shared.args.nowebui:
run_server()
else:
Thread(target=run_server, daemon=True).start()
3 changes: 2 additions & 1 deletion modules/shared.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,7 @@
parser.add_argument('--api-port', type=int, default=5000, help='The listening port for the API.')
parser.add_argument('--api-key', type=str, default='', help='API authentication key.')
parser.add_argument('--admin-key', type=str, default='', help='API authentication key for admin tasks like loading and unloading models. If not set, will be the same as --api-key.')
parser.add_argument('--nowebui', action='store_true', help='Do not launch the Gradio UI. Useful for launching the API in standalone mode.')

# Multimodal
parser.add_argument('--multimodal-pipeline', type=str, default=None, help='The multimodal pipeline to use. Examples: llava-7b, llava-13b.')
Expand Down Expand Up @@ -201,7 +202,7 @@
# Security warnings
if args.trust_remote_code:
logger.warning('trust_remote_code is enabled. This is dangerous.')
if 'COLAB_GPU' not in os.environ:
if 'COLAB_GPU' not in os.environ and not args.nowebui:
if args.share:
logger.warning("The gradio \"share link\" feature uses a proprietary executable to create a reverse tunnel. Use it with care.")
if any((args.listen, args.share)) and not any((args.gradio_auth, args.gradio_auth_path)):
Expand Down
24 changes: 15 additions & 9 deletions server.py
Original file line number Diff line number Diff line change
Expand Up @@ -226,13 +226,19 @@ def create_interface():

shared.generation_lock = Lock()

# Launch the web UI
create_interface()
while True:
time.sleep(0.5)
if shared.need_restart:
shared.need_restart = False
if shared.args.nowebui:
# Start the API in standalone mode
shared.args.extensions = [x for x in shared.args.extensions if x != 'gallery']
if shared.args.extensions is not None and len(shared.args.extensions) > 0:
extensions_module.load_extensions()
else:
# Launch the web UI
create_interface()
while True:
time.sleep(0.5)
shared.gradio['interface'].close()
time.sleep(0.5)
create_interface()
if shared.need_restart:
shared.need_restart = False
time.sleep(0.5)
shared.gradio['interface'].close()
time.sleep(0.5)
create_interface()

0 comments on commit ef6feed

Please sign in to comment.