Support async responses to a webhook url to unblock clients waiting too long

Currently performing a chat request request from a background job will block the worker a long time waiting for the openai response. It should be posible to create a job in openai for a request and then to process the response when is done in other worker when the response is sent through a webhook or something similar.

This will allow the workers to sit idle waiting minutes waiting for the response.

Streaming is not useful when you need the full response.