feat: verified high-speed G4F server with Gemini, Cohere, HuggingSpace live models

This commit is contained in:
Alma Alexyz
2026-08-31 15:51:26 +05:00
parent d924b9222d
commit 6fbaf99a64
+37 -14
View File
@@ -3,14 +3,31 @@
""" """
Local G4F API Server for Oracle 999 Local G4F API Server for Oracle 999
Provides an OpenAI-compatible /v1/chat/completions endpoint on port 1337 Provides an OpenAI-compatible /v1/chat/completions endpoint on port 1337
Routing specifically through verified live providers:
- Gemini
- CohereForAI_C4AI_Command
- HuggingSpace
- Yqcloud
""" """
import json import json
from http.server import HTTPServer, BaseHTTPRequestHandler from http.server import HTTPServer, BaseHTTPRequestHandler
import g4f import g4f
from g4f.client import Client from g4f.client import Client
from g4f.Provider import (
Gemini,
CohereForAI_C4AI_Command,
HuggingSpace,
Yqcloud,
)
client = Client() client = Client()
PRIORITY_PROVIDERS = [
('Gemini', Gemini),
('CohereForAI', CohereForAI_C4AI_Command),
('HuggingSpace', HuggingSpace),
('Yqcloud', Yqcloud),
]
class G4FHandler(BaseHTTPRequestHandler): class G4FHandler(BaseHTTPRequestHandler):
def do_OPTIONS(self): def do_OPTIONS(self):
@@ -25,7 +42,7 @@ class G4FHandler(BaseHTTPRequestHandler):
self.send_header('Content-Type', 'application/json') self.send_header('Content-Type', 'application/json')
self.send_header('Access-Control-Allow-Origin', '*') self.send_header('Access-Control-Allow-Origin', '*')
self.end_headers() self.end_headers()
self.wfile.write(json.dumps({'status': 'running', 'service': 'Oracle 999 G4F Server'}).encode('utf-8')) self.wfile.write(json.dumps({'status': 'running', 'service': 'Oracle 999 G4F Server', 'providers': ['Gemini', 'CohereForAI', 'HuggingSpace', 'Yqcloud']}).encode('utf-8'))
def do_POST(self): def do_POST(self):
content_length = int(self.headers.get('Content-Length', 0)) content_length = int(self.headers.get('Content-Length', 0))
@@ -34,30 +51,38 @@ class G4FHandler(BaseHTTPRequestHandler):
try: try:
req_json = json.loads(post_data) req_json = json.loads(post_data)
messages = req_json.get('messages', []) messages = req_json.get('messages', [])
model = req_json.get('model', 'gpt-4o-mini')
print(f"[G4F Server] Request received for model: {model}, messages: {len(messages)}") print(f"[G4F Server] Processing request ({len(messages)} messages)...")
# 1. Try with requested model
response_text = None response_text = None
for p_name, prov in PRIORITY_PROVIDERS:
try: try:
chat_res = client.chat.completions.create( chat_res = client.chat.completions.create(
model=model, model=g4f.models.default,
provider=prov,
messages=messages, messages=messages,
timeout=12,
) )
response_text = chat_res.choices[0].message.content content = chat_res.choices[0].message.content
except Exception as e1: if content and len(content.strip()) > 15:
print(f"[G4F Server] Primary model failed ({e1}), falling back to default...") response_text = content.strip()
print(f"[G4F Server] Generated successfully via provider: {p_name}!")
break
except Exception as e:
print(f"[G4F Server] Provider {p_name} failed ({e}), trying next...")
if not response_text or len(response_text.strip()) == 0:
# Ultimate fallback to default client
try: try:
chat_res = client.chat.completions.create( chat_res = client.chat.completions.create(
model=g4f.models.default, model=g4f.models.default,
messages=messages, messages=messages,
) )
response_text = chat_res.choices[0].message.content response_text = chat_res.choices[0].message.content
except Exception as e2: except Exception:
print(f"[G4F Server] Default model failed ({e2})") pass
if not response_text or len(response_text.strip()) == 0: if not response_text:
response_text = "Оракул открывает знаки: путь разворачивается перед вами. Сосредоточьтесь на ключевом символе и следуйте зову сердца." response_text = "Оракул открывает знаки: путь разворачивается перед вами. Сосредоточьтесь на ключевом символе и следуйте зову сердца."
resp_payload = { resp_payload = {
@@ -78,7 +103,6 @@ class G4FHandler(BaseHTTPRequestHandler):
self.send_header('Access-Control-Allow-Origin', '*') self.send_header('Access-Control-Allow-Origin', '*')
self.end_headers() self.end_headers()
self.wfile.write(json.dumps(resp_payload, ensure_ascii=False).encode('utf-8')) self.wfile.write(json.dumps(resp_payload, ensure_ascii=False).encode('utf-8'))
print("[G4F Server] Successfully responded to client!")
except Exception as err: except Exception as err:
print(f"[G4F Server] Handler error: {err}") print(f"[G4F Server] Handler error: {err}")
@@ -89,13 +113,12 @@ class G4FHandler(BaseHTTPRequestHandler):
self.wfile.write(json.dumps({'error': str(err)}).encode('utf-8')) self.wfile.write(json.dumps({'error': str(err)}).encode('utf-8'))
def log_message(self, format, *args): def log_message(self, format, *args):
# Clean server logs
return return
def run(port=1337): def run(port=1337):
server_address = ('127.0.0.1', port) server_address = ('127.0.0.1', port)
httpd = HTTPServer(server_address, G4FHandler) httpd = HTTPServer(server_address, G4FHandler)
print(f"🔮 [Oracle 999] Local G4F Server is LIVE on http://127.0.0.1:{port}/v1/chat/completions") print(f"🔮 [Oracle 999] High-Speed G4F Server is LIVE on http://127.0.0.1:{port}/v1/chat/completions")
try: try:
httpd.serve_forever() httpd.serve_forever()
except KeyboardInterrupt: except KeyboardInterrupt: