cagram commited on
Commit
6201bc6
·
1 Parent(s): 8d2dff9

allow passing of cert and key locations to uvicorn via package

Browse files
Files changed (1) hide show
  1. whisperlivekit/basic_server.py +32 -10
whisperlivekit/basic_server.py CHANGED
@@ -8,7 +8,8 @@ from whisperlivekit.audio_processor import AudioProcessor
8
 
9
  import asyncio
10
  import logging
11
- import os
 
12
 
13
  logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
14
  logging.getLogger().setLevel(logging.WARNING)
@@ -71,16 +72,37 @@ async def websocket_endpoint(websocket: WebSocket):
71
  def main():
72
  """Entry point for the CLI command."""
73
  import uvicorn
74
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
  temp_kit = WhisperLiveKit(transcription=False, diarization=False)
76
-
77
- uvicorn.run(
78
- "whisperlivekit.basic_server:app",
79
- host=temp_kit.args.host,
80
- port=temp_kit.args.port,
81
- reload=True,
82
- log_level="info"
83
- )
 
 
 
 
 
84
 
85
  if __name__ == "__main__":
86
  main()
 
8
 
9
  import asyncio
10
  import logging
11
+ import os, sys
12
+ import argparse
13
 
14
  logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
15
  logging.getLogger().setLevel(logging.WARNING)
 
72
  def main():
73
  """Entry point for the CLI command."""
74
  import uvicorn
75
+
76
+ parser = argparse.ArgumentParser(description="Run the WhisperLiveKit server.")
77
+ parser.add_argument("--ssl-certfile", type=str, help="Path to the SSL certificate file.")
78
+ parser.add_argument("--ssl-keyfile", type=str, help="Path to the SSL private key file.")
79
+ args, unknown = parser.parse_known_args()
80
+
81
+ ssl_kwargs = {}
82
+ if args.ssl_certfile or args.ssl_keyfile:
83
+ if not (args.ssl_certfile and args.ssl_keyfile):
84
+ raise ValueError("Both --ssl-certfile and --ssl-keyfile must be specified together.")
85
+ ssl_kwargs = {
86
+ "ssl_certfile": args.ssl_certfile,
87
+ "ssl_keyfile": args.ssl_keyfile
88
+ }
89
+ # Remove uvicorn-specific args from the context to avoid tripping up other parts of the stack
90
+ sys.argv = [sys.argv[0]] + unknown
91
+
92
  temp_kit = WhisperLiveKit(transcription=False, diarization=False)
93
+
94
+ uvicorn_kwargs = {
95
+ "app": "whisperlivekit.basic_server:app",
96
+ "host":temp_kit.args.host,
97
+ "port":temp_kit.args.port,
98
+ "reload": True,
99
+ "log_level": "info",
100
+ }
101
+
102
+ if ssl_kwargs:
103
+ uvicorn_kwargs = {**uvicorn_kwargs, **ssl_kwargs}
104
+
105
+ uvicorn.run(**uvicorn_kwargs)
106
 
107
  if __name__ == "__main__":
108
  main()