|
from proxy_server import app, save_worker_config |
|
import uvicorn |
|
import random |
|
import subprocess, json |
|
import os |
|
|
|
host = "0.0.0.0" |
|
port = 8000 |
|
api_base = None |
|
api_version = "2023-07-01-preview" |
|
model = None |
|
alias = None |
|
add_key = None |
|
headers = None |
|
save = False |
|
debug = False |
|
detailed_debug = False |
|
temperature = 0.0 |
|
max_tokens = 1000 |
|
request_timeout = 10 |
|
drop_params = True |
|
add_function_to_prompt = True |
|
config = None |
|
max_budget = 100 |
|
telemetry = False |
|
test = False |
|
local = False |
|
num_workers = 1 |
|
test_async = False |
|
num_requests = 1 |
|
use_queue = False |
|
health = False |
|
version = False |
|
|
|
|
|
def run_ollama_serve(): |
|
try: |
|
command = ["ollama", "serve"] |
|
|
|
with open(os.devnull, "w") as devnull: |
|
process = subprocess.Popen(command, stdout=devnull, stderr=devnull) |
|
except Exception as e: |
|
print( |
|
f""" |
|
LiteLLM Warning: proxy started with `ollama` model\n`ollama serve` failed with Exception{e}. \nEnsure you run `ollama serve` |
|
""" |
|
) |
|
|
|
def is_port_in_use(port): |
|
import socket |
|
|
|
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: |
|
return s.connect_ex(("localhost", port)) == 0 |
|
|
|
if model and "ollama" in model and api_base is None: |
|
run_ollama_serve() |
|
|
|
else: |
|
if headers: |
|
headers = json.loads(headers) |
|
save_worker_config( |
|
model=model, |
|
alias=alias, |
|
api_base=api_base, |
|
api_version=api_version, |
|
debug=debug, |
|
detailed_debug=detailed_debug, |
|
temperature=temperature, |
|
max_tokens=max_tokens, |
|
request_timeout=request_timeout, |
|
max_budget=max_budget, |
|
telemetry=telemetry, |
|
drop_params=drop_params, |
|
add_function_to_prompt=add_function_to_prompt, |
|
headers=headers, |
|
save=save, |
|
config=config, |
|
use_queue=use_queue, |
|
) |
|
|
|
if port == 8000 and is_port_in_use(port): |
|
port = random.randint(1024, 49152) |
|
|
|
|
|
if __name__ == "__main__": |
|
uvicorn.run(app, host=host, port=port) |