#!/usr/bin/env python3 """WEVIA SSE v4 — uses requests instead of urllib""" import http.server, json, requests as req PORT = 5899 KEY = 'csk-4wrrhkpr568ry9xx49k9mcynwdx483nx53dd62yh5xedfckh' GROQ = '' try: for l in open('/etc/weval/secrets.env'): if l.startswith('GROQ_KEY='): GROQ = l.split('=',1)[1].strip() except: pass def ask_cerebras(q): r = req.post('https://api.cerebras.ai/v1/chat/completions', json={'model':'qwen-3-235b-a22b-instruct-2507','messages':[{'role':'system','content':'Tu es WEVIA Master. 33 IAs, 146 outils, 4 serveurs, 913 skills. Reponds en francais, en detail.'},{'role':'user','content':q}],'max_tokens':2000}, headers={'Authorization':f'Bearer {KEY}'},timeout=60) return r.json()['choices'][0]['message']['content'] def ask_groq(q): r = req.post('https://api.groq.com/openai/v1/chat/completions', json={'model':'llama-3.3-70b-versatile','messages':[{'role':'user','content':q}],'max_tokens':1000}, headers={'Authorization':f'Bearer {GROQ}'},timeout=15) return r.json()['choices'][0]['message']['content'] class H(http.server.BaseHTTPRequestHandler): def do_POST(self): body = self.rfile.read(int(self.headers.get('Content-Length',0))).decode() q = json.loads(body).get('message','') if body else '' self.send_response(200) self.send_header('Content-Type','text/event-stream') self.send_header('Access-Control-Allow-Origin','*') self.end_headers() try: self.wfile.write(f"data: {json.dumps({'t':'[WEVIA] Processing...'})}\n\n".encode()); self.wfile.flush() try: answer = ask_cerebras(q) except: answer = ask_groq(q) for i in range(0,len(answer),80): self.wfile.write(f"data: {json.dumps({'t':answer[i:i+80]})}\n\n".encode()); self.wfile.flush() self.wfile.write(b"data: [DONE]\n\n"); self.wfile.flush() except Exception as e: self.wfile.write(f"data: {json.dumps({'error':str(e)})}\n\n".encode()); self.wfile.flush() def do_GET(self): self.send_response(200); self.send_header('Content-Type','application/json'); self.end_headers() self.wfile.write(b'{"ok":true,"engine":"WEVIA SSE v4","port":5899}') def do_OPTIONS(self): self.send_response(200); self.send_header('Access-Control-Allow-Origin','*'); self.send_header('Access-Control-Allow-Methods','POST'); self.send_header('Access-Control-Allow-Headers','Content-Type'); self.end_headers() def log_message(self,*a): pass print(f"WEVIA SSE v4 :{PORT} cerebras={'OK'} groq={'OK' if GROQ else 'NO'}") http.server.HTTPServer(('0.0.0.0',PORT),H).serve_forever()