Initial submission of FAQ-бот: add src/mcp_tool.py
This commit is contained in:
@@ -0,0 +1,41 @@
|
|||||||
|
import json
|
||||||
|
from http.server import BaseHTTPRequestHandler, HTTPServer
|
||||||
|
import threading
|
||||||
|
import time
|
||||||
|
|
||||||
|
# Simple mock server data
|
||||||
|
COURSE_META = {
|
||||||
|
"schedule": "Понедельник 10:00-12:00, Среда 14:00-16:00",
|
||||||
|
"instructor": "Dr. Иванов"
|
||||||
|
}
|
||||||
|
|
||||||
|
class MetaHandler(BaseHTTPRequestHandler):
|
||||||
|
def do_GET(self):
|
||||||
|
if self.path.startswith("/meta"):
|
||||||
|
self.send_response(200)
|
||||||
|
self.send_header("Content-Type", "application/json")
|
||||||
|
self.end_headers()
|
||||||
|
self.wfile.write(json.dumps(COURSE_META).encode())
|
||||||
|
else:
|
||||||
|
self.send_response(404)
|
||||||
|
self.end_headers()
|
||||||
|
|
||||||
|
def log_message(self, format, *args):
|
||||||
|
return # Suppress console logs
|
||||||
|
|
||||||
|
|
||||||
|
def start_meta_server(port=8000):
|
||||||
|
server = HTTPServer(("", port), MetaHandler)
|
||||||
|
thread = threading.Thread(target=server.serve_forever, daemon=True)
|
||||||
|
thread.start()
|
||||||
|
return server
|
||||||
|
|
||||||
|
# Client wrapper
|
||||||
|
import httpx
|
||||||
|
|
||||||
|
def fetch_course_meta(query: str):
|
||||||
|
"""GET /meta and return JSON. Query is ignored for mock."""
|
||||||
|
url = "http://localhost:8000/meta"
|
||||||
|
response = httpx.get(url)
|
||||||
|
response.raise_for_status()
|
||||||
|
return response.json()
|
||||||
Reference in New Issue
Block a user