Explain how you would implement asynchronous processing in Python when calling multiple external AI APIs.
Write a function that accepts a list of request payloads and a maximum concurrency limit, then returns one result per request in the same order. Each request should be processed asynchronously, and failures should be captured per item instead of stopping the whole batch.
def fetch_ai_responses(requests, max_concurrency):