in chat.py [0:0]
def send_question_to_rest_api(uri, x_functions_key, question, conversation_id):
"""
Send the question to the orchestrator API and return the response.
Args:
uri (str): The API endpoint URI.
x_functions_key (str): The API access key.
question (str): The question to send.
conversation_id (str): The conversation ID.
Returns:
dict: The API response parsed as a JSON object.
"""
headers = {
'x-functions-key': x_functions_key,
'Content-Type': 'application/json'
}
body = {
'conversation_id': conversation_id,
'question': question
}
try:
response = requests.post(uri, headers=headers, json=body)
response.raise_for_status() # Raises HTTPError for bad responses
try:
response_data = response.json()
if not isinstance(response_data, dict):
logger.error("Response JSON is not a dictionary.")
return {"error": "Invalid response format from orchestrator API."}
return response_data
except json.JSONDecodeError:
logger.error("Response is not valid JSON.")
return {"error": "Response is not valid JSON."}
except requests.exceptions.RequestException as e:
logger.exception(f"HTTP Request failed: {e}")
return {"error": f"HTTP Request failed: {e}"}