Spaces:
Sleeping
Sleeping
Update scripts/sync_bailian_models.py
Browse files- scripts/sync_bailian_models.py +17 -13
scripts/sync_bailian_models.py
CHANGED
|
@@ -4,6 +4,7 @@ import sys
|
|
| 4 |
import sqlite3
|
| 5 |
import json
|
| 6 |
import urllib.request
|
|
|
|
| 7 |
from datetime import datetime
|
| 8 |
|
| 9 |
DB_PATH = "/app/server/data/freeapi.db"
|
|
@@ -37,12 +38,10 @@ def ensure_provider_table(conn):
|
|
| 37 |
|
| 38 |
def get_or_create_bailian_provider(conn, provider_table):
|
| 39 |
cursor = conn.cursor()
|
| 40 |
-
# 尝试查找已有百炼记录
|
| 41 |
cursor.execute(f"SELECT id FROM {provider_table} WHERE base_url LIKE '%dashscope.aliyuncs.com%' LIMIT 1")
|
| 42 |
row = cursor.fetchone()
|
| 43 |
if row:
|
| 44 |
return row[0]
|
| 45 |
-
# 插入新记录
|
| 46 |
cursor.execute(f"""
|
| 47 |
INSERT INTO {provider_table} (name, base_url, api_key, created_at)
|
| 48 |
VALUES (?, ?, ?, ?)
|
|
@@ -74,15 +73,10 @@ def main():
|
|
| 74 |
provider_table = ensure_provider_table(conn)
|
| 75 |
provider_id = get_or_create_bailian_provider(conn, provider_table)
|
| 76 |
|
| 77 |
-
# 获取 models 表的列
|
| 78 |
model_columns = get_table_columns(conn, "models")
|
| 79 |
print(f"models table columns: {model_columns}")
|
| 80 |
|
| 81 |
-
|
| 82 |
-
insert_cols = []
|
| 83 |
-
for col in ['id', 'provider_id', 'enabled', 'created_at', 'name']:
|
| 84 |
-
if col in model_columns:
|
| 85 |
-
insert_cols.append(col)
|
| 86 |
if not insert_cols:
|
| 87 |
print("❌ models table missing expected columns")
|
| 88 |
return 1
|
|
@@ -115,11 +109,21 @@ def main():
|
|
| 115 |
conn.commit()
|
| 116 |
conn.close()
|
| 117 |
print(f"✅ Sync completed. New models added: {added}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 118 |
return 0
|
| 119 |
|
| 120 |
if __name__ == "__main__":
|
| 121 |
-
sys.exit(main())
|
| 122 |
-
# 在 main() 函数最后,return 之前
|
| 123 |
-
if added > 0:
|
| 124 |
-
print("Triggering immediate backup to persist new models...")
|
| 125 |
-
subprocess.run(["python3", "/app/scripts/backup_to_dataset.py"], check=False)
|
|
|
|
| 4 |
import sqlite3
|
| 5 |
import json
|
| 6 |
import urllib.request
|
| 7 |
+
import subprocess # 新增:用于调用备份脚本
|
| 8 |
from datetime import datetime
|
| 9 |
|
| 10 |
DB_PATH = "/app/server/data/freeapi.db"
|
|
|
|
| 38 |
|
| 39 |
def get_or_create_bailian_provider(conn, provider_table):
|
| 40 |
cursor = conn.cursor()
|
|
|
|
| 41 |
cursor.execute(f"SELECT id FROM {provider_table} WHERE base_url LIKE '%dashscope.aliyuncs.com%' LIMIT 1")
|
| 42 |
row = cursor.fetchone()
|
| 43 |
if row:
|
| 44 |
return row[0]
|
|
|
|
| 45 |
cursor.execute(f"""
|
| 46 |
INSERT INTO {provider_table} (name, base_url, api_key, created_at)
|
| 47 |
VALUES (?, ?, ?, ?)
|
|
|
|
| 73 |
provider_table = ensure_provider_table(conn)
|
| 74 |
provider_id = get_or_create_bailian_provider(conn, provider_table)
|
| 75 |
|
|
|
|
| 76 |
model_columns = get_table_columns(conn, "models")
|
| 77 |
print(f"models table columns: {model_columns}")
|
| 78 |
|
| 79 |
+
insert_cols = [col for col in ['id', 'provider_id', 'enabled', 'created_at', 'name'] if col in model_columns]
|
|
|
|
|
|
|
|
|
|
|
|
|
| 80 |
if not insert_cols:
|
| 81 |
print("❌ models table missing expected columns")
|
| 82 |
return 1
|
|
|
|
| 109 |
conn.commit()
|
| 110 |
conn.close()
|
| 111 |
print(f"✅ Sync completed. New models added: {added}")
|
| 112 |
+
|
| 113 |
+
# 如果有新增模型,立即触发一次备份,确保重启后不丢失
|
| 114 |
+
if added > 0:
|
| 115 |
+
print("Triggering immediate backup to persist new models...")
|
| 116 |
+
backup_script = "/app/scripts/backup_to_dataset.py"
|
| 117 |
+
if os.path.exists(backup_script):
|
| 118 |
+
result = subprocess.run(["python3", backup_script])
|
| 119 |
+
if result.returncode == 0:
|
| 120 |
+
print("Backup completed successfully.")
|
| 121 |
+
else:
|
| 122 |
+
print("Backup failed, but models were added.")
|
| 123 |
+
else:
|
| 124 |
+
print("Backup script not found, skipping immediate backup.")
|
| 125 |
+
|
| 126 |
return 0
|
| 127 |
|
| 128 |
if __name__ == "__main__":
|
| 129 |
+
sys.exit(main())
|
|
|
|
|
|
|
|
|
|
|
|