import os | |
import g4f | |
import requests | |
import json | |
import time | |
import pytz | |
from datetime import datetime | |
files = os.listdir("g4f/Provider/Providers") | |
files = [f for f in files if os.path.isfile(os.path.join("g4f/Provider/Providers", f))] | |
files.sort(key=str.lower) | |
while True: | |
status = {'data':[]} | |
for file in files: | |
if file.endswith(".py"): | |
name = file[:-3] | |
try: | |
p = getattr(g4f.Provider,name) | |
status['data'].append({ | |
"provider": name, | |
"model": [], | |
"url":p.url | |
}) | |
for i in p.model: | |
status['data'][-1]['model'].append({i:{'status':''}}) | |
try: | |
response = g4f.ChatCompletion.create(model=i, provider=p, messages=[{"role": "user", "content": "Say 'Hello World!'"}], stream=False) | |
if 'Hello World' in response or 'Hello' in response or 'hello' in response or 'world' in response or 'th' in response or 'images' in response: | |
status['data'][-1]['model'][-1][i]['status'] = 'Active' | |
else: | |
status['data'][-1]['model'][-1][i]['status'] = 'Inactive' | |
except: | |
status['data'][-1]['model'][-1][i]['status'] = 'Inactive' | |
except: | |
pass | |
print(status) | |
status['key'] = "test" | |
tz = pytz.timezone('Asia/Shanghai') | |
now = datetime.now(tz) | |
print(now) | |
status['time'] = now.strftime("%Y-%m-%d %H:%M:%S") | |
r = requests.post("https://gpt.lemonsoftware.eu.org/v1/status",data=json.dumps(status),headers={"content-type": "application/json"}) | |
print(r.text) | |
time.sleep(300) | |