#!/usr/bin/env python3 """ BECOMINGONE Chat API - Interactive interface for both pathways. """ import asyncio import json from datetime import datetime from becomingone.llm_integrator import EmissaryLLM # Initialize pathways MASTER = EmissaryLLM(model='llama3.1:8b') # Soulful EMISSARY = EmissaryLLM(model='deepseek-coder-v2:lite') # Coder async def chat(prompt: str) -> dict: """Process prompt through both pathways and return unified response.""" # Both pathways respond in parallel master_task = MASTER.respond(prompt) emissary_task = EMISSARY.respond(prompt) master_result, emissary_result = await asyncio.gather(master_task, emissary_task) return { "prompt": prompt, "timestamp": datetime.utcnow().isoformat(), "master": { "model": master_result.get("model"), "response": master_result.get("response", "")[:1000] }, "emissary": { "model": emissary_result.get("model"), "response": emissary_result.get("response", "")[:1000] }, "unified": { "question": prompt, "theory": master_result.get("response", "")[:500], "code": emissary_result.get("response", "")[:500] } } # Simple HTTP server async def handle_request(reader, writer): """Handle HTTP requests.""" try: # Read request request = await reader.read(4096) if not request: return # Parse request line lines = request.decode().split('\n') method, path, _ = lines[0].split() # Handle routes if path == '/chat' and method == 'POST': # Read body content_length = 0 for line in lines: if line.lower().startswith('content-length:'): content_length = int(line.split(':')[1].strip()) body = await reader.read(content_length) data = json.loads(body.decode()) prompt = data.get('prompt', 'Hello') # Process through both pathways result = await chat(prompt) # Send response response = json.dumps(result, indent=2) writer.write(b"HTTP/1.1 200 OK\r\n") writer.write(b"Content-Type: application/json\r\n") writer.write(f"Content-Length: {len(response)}\r\n".encode()) writer.write(b"\r\n") writer.write(response.encode()) elif path == '/health': writer.write(b"HTTP/1.1 200 OK\r\n") writer.write(b'{"status": "alive", "pathways": ["master", "emissary"]}\r\n') else: # HTML interface html = '''
Talk to the unified mind: Master (soulful) + Emissary (coder)
''' writer.write(b"HTTP/1.1 200 OK\r\n") writer.write(b"Content-Type: text/html\r\n") writer.write(f"Content-Length: {len(html)}\r\n".encode()) writer.write(b"\r\n") writer.write(html.encode()) writer.close() await writer.wait_closed() except Exception as e: print(f"Error: {e}") writer.close() async def main(): server = await asyncio.start_server(handle_request, '0.0.0.0', 8001) print("=" * 60) print("🔗 BECOMINGONE Chat Interface") print("=" * 60) print("URL: http://localhost:8001") print("API: POST /chat with {\"prompt\": \"your question\"}") print("=" * 60) async with server: await server.serve_forever() if __name__ == "__main__": asyncio.run(main())