orc/__init__.py (25 lines of code) (raw):
import logging
import azure.functions as func
import json
import os
from . import orchestrator
LOGLEVEL = os.environ.get('LOGLEVEL', 'DEBUG').upper()
logging.basicConfig(level=LOGLEVEL)
async def main(req: func.HttpRequest) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
req_body = req.get_json()
conversation_id = req_body.get('conversation_id')
question = req_body.get('question')
# Get client principal information
client_principal_id = req_body.get('client_principal_id', '00000000-0000-0000-0000-000000000000')
client_principal_name = req_body.get('client_principal_name', 'anonymous')
client_group_names = req_body.get('client_group_names', '')
client_principal = {
'id': client_principal_id,
'name': client_principal_name,
'group_names': client_group_names
}
if question:
result = await orchestrator.run(conversation_id, question, client_principal)
return func.HttpResponse(json.dumps(result), mimetype="application/json", status_code=200)
else:
return func.HttpResponse('{"error": "no question found in json input"}', mimetype="application/json", status_code=200)