Skip to content

Commit e0d78fc

Browse files
[#145] Create health endpoint in assistant
1 parent 208eb5d commit e0d78fc

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

assistant/assistant.py

+7
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import logging
55
import chromadb
66
import nltk
7+
import threading
78

89
from time import sleep
910
from openai import OpenAI
@@ -15,6 +16,7 @@
1516
from typing import Optional
1617
from db import connect_to_sqlite, get_stable_prompt
1718
from nltk.corpus import words, stopwords
19+
from health_check_handler import run
1820

1921

2022
logger = logging.getLogger(__name__)
@@ -418,4 +420,9 @@ async def consumer():
418420
if __name__ == "__main__":
419421
logging.basicConfig(level=logging.INFO)
420422
main()
423+
424+
# Start the HTTP server in a separate thread
425+
server_thread = threading.Thread(target=run, kwargs={"port": 9001})
426+
server_thread.start()
427+
421428
asyncio.run(consumer())

assistant/health_check_handler.py

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import logging
2+
from http.server import BaseHTTPRequestHandler, HTTPServer
3+
4+
5+
logger = logging.getLogger(__name__)
6+
7+
8+
class HealthCheckHandler(BaseHTTPRequestHandler):
9+
def do_GET(self):
10+
if self.path == "/health":
11+
self.send_response(200)
12+
self.send_header("Content-type", "application/json")
13+
self.end_headers()
14+
self.wfile.write(b'{"status": "ok"}')
15+
else:
16+
self.send_response(404)
17+
self.end_headers()
18+
19+
20+
def run(server_class=HTTPServer, handler_class=HealthCheckHandler, port=9001):
21+
server_address = ("", port)
22+
httpd = server_class(server_address, handler_class)
23+
logger.info(f"Starting httpd server on port {port}")
24+
httpd.serve_forever()

0 commit comments

Comments
 (0)