Spaces:
Runtime error
Runtime error
| from gpt4all import GPT4All | |
| import asyncio | |
| import sys | |
| from websockets.server import serve | |
| import json | |
| from prompt_parser import GPT4AllWeb | |
| import nest_asyncio | |
| import uuid | |
| nest_asyncio.apply() | |
| host="localhost" | |
| port=8765 | |
| event_loop = asyncio.get_event_loop() | |
| message_loop = asyncio.new_event_loop() | |
| async def main(): | |
| print("Starting server: " +host + ":" +str(port)) | |
| bot = GPT4AllWeb(model="gpt4all-lora-unfiltered-quantized") | |
| bot.open() | |
| async def echo(websocket): | |
| async for message in websocket: | |
| print("Received message " + str(message)) | |
| m=json.loads(message) | |
| if (m["type"] == 'prompt'): | |
| correlation_id=f'{uuid.uuid4()}' | |
| async def send_coroutine(prompt, payload, type, correlation_id): | |
| sys.stdout.write(payload) | |
| sys.stdout.flush() | |
| response = {"type": type, "payload": payload, "correlationId": correlation_id, "prompt": prompt} | |
| await websocket.send(json.dumps(response)) | |
| callback = lambda x:message_loop.run_until_complete(send_coroutine(m["prompt"], x, 'response', correlation_id)) | |
| bot.prompt_callback(m["prompt"], callback = callback) | |
| print("Bot opened") | |
| async with serve(echo, host, port): | |
| try: | |
| await event_loop.create_future() # run forever | |
| finally: | |
| print('closing event loop') | |
| event_loop.close() | |
| asyncio.run(main()) |