newton-search / server.py
Kolyadual's picture
Upload folder using huggingface_hub
44b851e verified
# ~/NewTonBot/newton_server.py
from http.server import BaseHTTPRequestHandler, HTTPServer
import json
import urllib.parse
import sys
import os
# Добавляем путь к твоему модулю
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
# Импортируем твою функцию поиска/генерации
# Предположим, у тебя есть функция `generate_answer(query)`
from run import generate_response as generate_answer
class NewtonHandler(BaseHTTPRequestHandler):
def do_POST(self):
if self.path == "/ask":
content_length = int(self.headers['Content-Length'])
post_data = self.rfile.read(content_length).decode('utf-8')
data = json.loads(post_data)
query = data.get("query", "").strip()
try:
answer = generate_answer(query) # ← твоя функция
response = {"answer": answer}
self.send_response(200)
self.send_header("Content-type", "application/json")
self.send_header("Access-Control-Allow-Origin", "*")
self.end_headers()
self.wfile.write(json.dumps(response, ensure_ascii=False).encode('utf-8'))
except Exception as e:
self.send_response(500)
self.end_headers()
self.wfile.write(f"Ошибка: {str(e)}".encode())
def do_OPTIONS(self):
self.send_response(200)
self.send_header("Access-Control-Allow-Origin", "*")
self.send_header("Access-Control-Allow-Methods", "POST, OPTIONS")
self.send_header("Access-Control-Allow-Headers", "Content-Type")
self.end_headers()
if __name__ == "__main__":
server = HTTPServer(('localhost', 8000), NewtonHandler)
print("Newton Search сервер запущен на http://localhost:8000")
print("Открой GitHub Pages и работай!")
server.serve_forever()