forked from phoenix/litellm-mirror
Merge pull request #5078 from BerriAI/litellm_fwd_server_root_path
UI - fwd UI requests from server root path
This commit is contained in:
commit
d6db6f3ee6
2 changed files with 15 additions and 61 deletions
|
@ -166,61 +166,3 @@ def missing_keys_form(missing_key_names: str):
|
|||
</html>
|
||||
"""
|
||||
return missing_keys_html_form.format(missing_keys=missing_key_names)
|
||||
|
||||
|
||||
def setup_admin_ui_on_server_root_path(server_root_path: str):
|
||||
"""
|
||||
Helper util to setup Admin UI on Server root path
|
||||
"""
|
||||
from litellm._logging import verbose_proxy_logger
|
||||
|
||||
if server_root_path != "":
|
||||
print("setting proxy base url to server root path") # noqa
|
||||
if os.getenv("PROXY_BASE_URL") is None:
|
||||
os.environ["PROXY_BASE_URL"] = server_root_path
|
||||
|
||||
# re-build admin UI on server root path
|
||||
# Save the original directory
|
||||
original_dir = os.getcwd()
|
||||
|
||||
current_dir = (
|
||||
os.path.dirname(os.path.abspath(__file__))
|
||||
+ "/../../../ui/litellm-dashboard/"
|
||||
)
|
||||
build_ui_path = os.path.join(current_dir, "build_ui_custom_path.sh")
|
||||
package_path = os.path.join(current_dir, "package.json")
|
||||
|
||||
print(f"Setting up Admin UI on {server_root_path}/ui .......") # noqa
|
||||
|
||||
try:
|
||||
# Change the current working directory
|
||||
os.chdir(current_dir)
|
||||
|
||||
# Make the script executable
|
||||
subprocess.run(["chmod", "+x", "build_ui_custom_path.sh"], check=True)
|
||||
|
||||
# Run npm install
|
||||
subprocess.run(["npm", "install"], check=True)
|
||||
|
||||
# Run npm run build
|
||||
subprocess.run(["npm", "run", "build"], check=True)
|
||||
|
||||
# Run the custom build script with the argument
|
||||
subprocess.run(
|
||||
["./build_ui_custom_path.sh", f"{server_root_path}/ui"], check=True
|
||||
)
|
||||
|
||||
print("Admin UI setup completed successfully.") # noqa
|
||||
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"An error occurred during the Admin UI setup: {e}") # noqa
|
||||
|
||||
except Exception as e:
|
||||
print(f"An unexpected error occurred: {e}") # noqa
|
||||
|
||||
finally:
|
||||
# Always return to the original directory, even if an error occurred
|
||||
os.chdir(original_dir)
|
||||
print(f"Returned to original directory: {original_dir}") # noqa
|
||||
|
||||
pass
|
||||
|
|
|
@ -138,7 +138,6 @@ from litellm.proxy.auth.user_api_key_auth import user_api_key_auth
|
|||
from litellm.proxy.caching_routes import router as caching_router
|
||||
from litellm.proxy.common_utils.admin_ui_utils import (
|
||||
html_form,
|
||||
setup_admin_ui_on_server_root_path,
|
||||
show_missing_vars_in_env,
|
||||
)
|
||||
from litellm.proxy.common_utils.debug_utils import init_verbose_loggers
|
||||
|
@ -285,8 +284,6 @@ except Exception as e:
|
|||
|
||||
server_root_path = os.getenv("SERVER_ROOT_PATH", "")
|
||||
print("server root path: ", server_root_path) # noqa
|
||||
if server_root_path != "":
|
||||
setup_admin_ui_on_server_root_path(server_root_path)
|
||||
_license_check = LicenseCheck()
|
||||
premium_user: bool = _license_check.is_premium()
|
||||
ui_link = f"{server_root_path}/ui/"
|
||||
|
@ -388,6 +385,21 @@ try:
|
|||
src = os.path.join(ui_path, filename)
|
||||
dst = os.path.join(folder_path, "index.html")
|
||||
os.rename(src, dst)
|
||||
|
||||
if server_root_path != "":
|
||||
print( # noqa
|
||||
f"server_root_path is set, forwarding any /ui requests to {server_root_path}/ui"
|
||||
) # noqa
|
||||
if os.getenv("PROXY_BASE_URL") is None:
|
||||
os.environ["PROXY_BASE_URL"] = server_root_path
|
||||
|
||||
@app.middleware("http")
|
||||
async def redirect_ui_middleware(request: Request, call_next):
|
||||
if request.url.path.startswith("/ui"):
|
||||
new_path = request.url.path.replace("/ui", f"{server_root_path}/ui", 1)
|
||||
return RedirectResponse(new_path)
|
||||
return await call_next(request)
|
||||
|
||||
except:
|
||||
pass
|
||||
app.add_middleware(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue