Spaces:
Runtime error
Runtime error
| import subprocess | |
| import select | |
| import os | |
| from mods.btn_reset import restart_space | |
| if not os.path.exists('models/causallm_14b.Q4_0.gguf'): | |
| from huggingface_hub import snapshot_download | |
| os.mkdir("models") | |
| os.mkdir("cache") | |
| snapshot_download(repo_id='TheBloke/CausalLM-14B-GGUF', local_dir=r'models', | |
| allow_patterns='causallm_14b.Q4_0.gguf') | |
| snapshot_download(repo_id='Limour/llama-python-streamingllm-cache', | |
| repo_type='dataset', local_dir=r'cache', | |
| allow_patterns='temp') | |
| try: | |
| # 启动另一个程序,并通过管道捕获其输出 | |
| process = subprocess.Popen(["python", "gradio_streamingllm.py"], | |
| stdout=subprocess.PIPE, | |
| stderr=subprocess.PIPE, | |
| bufsize=1, universal_newlines=True) | |
| while process.poll() is None: | |
| # 使用 select 模块检查是否有可读数据 | |
| ready_reads, _, _ = select.select([process.stdout, process.stderr], [], []) | |
| if not ready_reads: | |
| print('select.select timeout') | |
| for ready in ready_reads: | |
| # 读取输出并打印 | |
| output = ready.readline() | |
| if output: | |
| print(output, end='') | |
| else: | |
| print('select.select timeout') | |
| # 读取剩余的输出 | |
| for output in process.stdout.readlines() + process.stderr.readlines(): | |
| print(output, end='') | |
| # 检查进程的返回代码以确定是否成功结束 | |
| if process.returncode == 0: | |
| print("Process has terminated successfully.") | |
| else: | |
| print(f"Process has terminated with an error. {process.returncode}") | |
| finally: | |
| # restart_space() | |
| pass | |