adaptive_rag / run_in_kaggle.py
lanny xu
optimize query speed
4ba4388
import subprocess
import time
import sys
import os
def run_background():
print("🚀 正在后台启动服务...")
# 1. 启动服务器 (输出重定向到 server.log)
server_log = open("server.log", "w")
server_process = subprocess.Popen(
[sys.executable, "server.py"],
stdout=server_log,
stderr=subprocess.STDOUT
)
print(f"✅ 服务器已启动 (PID: {server_process.pid})")
# 2. 等待服务器就绪
print("⏳ 等待服务器启动 (约10秒)...")
time.sleep(10)
# 3. 启动 Cloudflare 隧道
if not os.path.exists("./cloudflared"):
print("❌ 未找到 cloudflared,请先运行下载命令")
return
print("🌐 正在建立公网连接...")
tunnel_process = subprocess.Popen(
["./cloudflared", "tunnel", "--url", "http://localhost:8000", "--no-autoupdate"],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
text=True
)
# 4. 读取并打印访问链接
print("🔍 正在获取访问地址...")
found_url = False
while True:
line = tunnel_process.stdout.readline()
if not line:
break
# 打印隧道日志以便调试
# print(f"[Tunnel] {line.strip()}")
if "trycloudflare.com" in line:
import re
url_match = re.search(r"https?://[\w\.-]+trycloudflare\.com", line)
if url_match:
print("\n" + "="*50)
print("🎉 成功!请访问以下地址:")
print(f"👉 {url_match.group(0)}")
print("="*50 + "\n")
found_url = True
break
if not found_url:
print("⚠️ 未能获取到公网地址,请检查 server.log")
if __name__ == "__main__":
run_background()