-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
82 lines (66 loc) · 1.86 KB
/
main.py
File metadata and controls
82 lines (66 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import argparse
import os
import signal
import sys
import uvicorn
import logging_callbacks # noqa: F401 - Registers callbacks on import
from litellm.proxy.proxy_cli import run_server
def getenv(key: str, default: str) -> str:
"""Get environment variable or default."""
return os.getenv(key, default)
def main():
"""Main entry point."""
parser = argparse.ArgumentParser(
description="LocalCode Middleware Server (powered by LiteLLM)"
)
parser.add_argument(
"--config",
type=str,
default=getenv("LITELLM_CONFIG", "config.yaml"),
help="Path to LiteLLM config file (default: config.yaml)",
)
parser.add_argument(
"--port",
type=int,
default=int(getenv("LITELLM_PORT", "4242")),
help="Server port (default: 4242)",
)
parser.add_argument(
"--host",
type=str,
default=getenv("LITELLM_HOST", "0.0.0.0"),
help="Server host (default: 0.0.0.0)",
)
parser.add_argument(
"--loglevel",
type=str,
default=getenv("LITELLM_LOGLEVEL", "INFO"),
help="Logging level (default: INFO)",
)
args = parser.parse_args()
config_path = args.config
port = args.port
host = args.host
print("\n" + "#" * 80)
print("# LocalCode Middleware Server")
print(f"# Powered by LiteLLM")
print(f"# Config: {config_path}")
print(f"# Listening on http://{host}:{port}")
print("#" * 80 + "\n")
def signal_handler(signum, frame):
print("\n\nShutting down gracefully...")
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
sys.argv = [
"litellm",
"--config",
config_path,
"--port",
str(port),
"--host",
host,
]
run_server()
if __name__ == "__main__":
main()