initial commit
This commit is contained in:
44
server.py
Normal file
44
server.py
Normal file
@@ -0,0 +1,44 @@
|
||||
import http.server
|
||||
import socketserver
|
||||
import json
|
||||
import sys
|
||||
|
||||
from chat_qwen import ChatQwen
|
||||
|
||||
bot = ChatQwen(sys.argv[1]) if len(sys.argv) > 1 else ChatQwen()
|
||||
|
||||
|
||||
class Server(socketserver.TCPServer):
|
||||
# Avoid "address already used" error when frequently restarting the script
|
||||
allow_reuse_address = True
|
||||
|
||||
|
||||
class Handler(http.server.BaseHTTPRequestHandler):
|
||||
def do_GET(self):
|
||||
self.send_response(200)
|
||||
self.end_headers()
|
||||
self.wfile.write("Use POST with JSON body of the format \n"
|
||||
"[{\"role\": \"user\", \"content\": \"message\"}] \n"
|
||||
"or \n"
|
||||
"[{\"role\": \"user\", \"content\": \"message\"}, "
|
||||
"{\"role\": \"assistant\", \"content\": \"message\"}, "
|
||||
"{\"role\": \"user\", \"content\": \"message\"}]".encode("utf-8"))
|
||||
|
||||
def do_POST(self):
|
||||
try:
|
||||
content_len = int(self.headers.get('Content-Length'))
|
||||
post_body = self.rfile.read(content_len)
|
||||
json_body = json.loads(post_body)
|
||||
|
||||
response = bot.generate(json_body)
|
||||
|
||||
self.send_response(200)
|
||||
self.end_headers()
|
||||
self.wfile.write(json.dumps(response).encode("utf-8"))
|
||||
except:
|
||||
self.send_response(400)
|
||||
self.end_headers()
|
||||
|
||||
|
||||
with Server(("0.0.0.0", 8900), Handler) as httpd:
|
||||
httpd.serve_forever()
|
||||
Reference in New Issue
Block a user