Added security for natrual endpoint

This commit is contained in:
2024-02-16 14:30:34 -08:00
parent c18ec26d31
commit 0ab32bf4e2
+22 -6
View File
@@ -294,21 +294,37 @@ def request_semantic_search(query):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT)) s.connect((HOST, PORT))
s.sendall(data_string) s.sendall(data_string)
print(f"sent {data_string}")
data = b'' data = b''
while True: while True:
part = s.recv(1024) part = s.recv(1024)
if not part: if not part:
break break
print(part)
data += part data += part
return json.loads(data.decode()) return json.loads(data.decode())
@app.get("/semantic/<key>/<query>") @app.get("/natural")
def do_semantic_search(key:str, query:str): def explain_natural():
if key != SECRET_API_KEY: res = 'Submit a POST request to this endpoint with the following params in the body:\n'
res += '{"token": "mytokenstring", "query" : "myquerystring"}'
return res
@app.post("/natural") # needs valid token and query in request body
def do_semantic_search():
request_data = request.get_json()
if request_data is None:
# Handle error: No JSON data sent
return jsonify({'error': 'Invalid request format'}), 400
token_string = request_data.get('token')
query_string = request_data.get('query')
if token_string is None:
# Handle error: Missing token in request
return jsonify({'error': 'Missing token in request body'}), 401
if token_string != SECRET_API_KEY:
return jsonify({'error': "Invalid Authorization"}) return jsonify({'error': "Invalid Authorization"})
result = request_semantic_search(query=query)
result = request_semantic_search(query=query_string)
return jsonify(result) return jsonify(result)
@app.get("/ref/<ref>") # find database verse_id by english scripture reference (1John5:7) @app.get("/ref/<ref>") # find database verse_id by english scripture reference (1John5:7)