Spaces:
Running
Running
Major update. Support for 15 LLMs, World Flora Online taxonomy validation, geolocation, 2 OCR methods, significant UI changes, stability improvements, consistent JSON parsing
ae215ea
import streamlit.web.cli as stcli | |
import os, sys, socket | |
# pip install protobuf==3.20.0 | |
# pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117 nope | |
# pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu118 | |
# pip install protobuf==3.20.0 | |
def find_available_port(start_port, max_attempts=1000): | |
port = start_port | |
attempts = 0 | |
while attempts < max_attempts: | |
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: | |
try: | |
s.bind(("127.0.0.1", port)) | |
# If successful, return the current port | |
return port | |
except socket.error: | |
# If the port is in use, increment the port number and try again | |
port += 1 | |
attempts += 1 | |
# Optional: Return None or raise an exception if no port is found within the attempts limit | |
raise ValueError(f"Could not find an available port within {max_attempts} attempts starting from port {start_port}.") | |
def resolve_path(path): | |
resolved_path = os.path.abspath(os.path.join(os.getcwd(), path)) | |
return resolved_path | |
if __name__ == "__main__": | |
dir_home = os.path.dirname(__file__) | |
start_port = 8528 | |
try: | |
free_port = find_available_port(start_port) | |
sys.argv = [ | |
"streamlit", | |
"run", | |
resolve_path(os.path.join(os.path.dirname(__file__),"app.py")), | |
# resolve_path(os.path.join(dir_home,"vouchervision", "VoucherVision_GUI.py")), | |
"--global.developmentMode=false", | |
# "--server.port=8545", | |
f"--server.port={free_port}", | |
# Toggle below for HF vs Local | |
# "--is_hf=1", | |
# "--is_hf=0", | |
] | |
sys.exit(stcli.main()) | |
except ValueError as e: | |
print(e) |