| 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) | |