Files
stampy-chat/web/api/semantic_search.py
T
2023-03-29 00:15:27 -04:00

35 lines
918 B
Python

# ---------------------------------- web code ----------------------------------
import json
import dataclasses
from api.get_blocks import get_top_k_blocks
from http.server import BaseHTTPRequestHandler
@dataclasses.dataclass
class Block:
title: str
author: str
date: str
url: str
tags: str
text: str
class Encoder(json.JSONEncoder):
def default(self, o):
return dataclasses.asdict(o) if dataclasses.is_dataclass(o) else super().default(o)
class handler(BaseHTTPRequestHandler):
def do_POST(self):
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
content_length = int(self.headers['Content-Length'])
post_data = self.rfile.read(content_length)
data = json.loads(post_data)
self.wfile.write(json.dumps(get_top_k_blocks(data['query']), cls = Encoder).encode('utf-8'))