planRun / some_base_method /degpt_getmodels.py
sanbo
update sth. at 2025-01-09 12:09:41
ea17589
raw
history blame
3.65 kB
import requests
import re
import json
def get_default_models():
# 发送 GET 请求
url = "https://www.degpt.ai/api/config"
headers = {
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
# 打印响应
print("Response Status Code:", response.status_code)
print("Response Body:", response.json())
# print("Response models:", response.json()['models'])
def get_from_js():
import requests
import re
import json
# 获取 JavaScript 文件内容
# url = "https://www.degpt.ai/_app/immutable/chunks/index.83d92b06.js"
url = "https://www.degpt.ai/_app/immutable/chunks/index.4aecf75a.js"
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
js_content = response.text
# print("js_content", js_content)
# 查找 'models' 的部分
pattern = r'models\s*:\s*\[([^\]]+)\]'
match = re.search(pattern, js_content)
# print("match", match)
if match:
# 提取到的 models 部分
models_data = match.group(1)
# print("models_data", models_data)
# 添加双引号到键名上
models_data = re.sub(r'(\w+):', r'"\1":', models_data)
# print("models_data1", models_data)
# 将所有单引号替换为双引号(防止 JSON 格式错误)
models_data = models_data.replace("'", '"')
# print("models_data2", models_data)
# 将提取到的 models 部分解析为 Python 数据结构(列表)
try:
# 通过添加方括号,将字符串转换为有效的 JSON 数组格式
models_data = f"[{models_data}]"
models = json.loads(models_data)
print(json.dumps(models, indent=4)) # 打印格式化后的模型数据
except json.JSONDecodeError as e:
print("JSON 解码错误:", e)
else:
print("未找到 'models' 数据")
else:
print("请求失败,状态码:", response.status_code)
def get_alive_models():
"""
获取活的版本
"""
import requests
import time
# 发送 GET 请求
url = 'https://www.degpt.ai/api/config'
headers = {'Content-Type': 'application/json'}
response = requests.get(url, headers=headers)
# 检查响应是否成功
if response.status_code == 200:
data = response.json() # 解析响应 JSON 数据
default_models = data.get("default_models", "").split(",") # 获取默认模型并分割成列表
# print(default_models)
# 获取当前时间戳(以秒为单位)
timestamp_in_seconds = time.time()
# 转换为毫秒(乘以 1000)
timestamp_in_milliseconds = int(timestamp_in_seconds * 1000)
# 根据 default_models 生成 models 数据结构
models = {
"object": "list",
"version": data.get("version", ""),
"provider": data.get("name", ""),
"time": timestamp_in_milliseconds,
"data": []
}
for model in default_models:
models["data"].append({
"id": model.strip(),
"object": "model",
"created": 0,
"owned_by": model.split("-")[0] # 假设所有模型的所有者是模型名的前缀
})
# 打印结果
print(models)
else:
print(f"请求失败,状态码: {response.status_code}")
if __name__ == '__main__':
get_from_js()
get_alive_models()