pub async fn stream_openai( api_key: &str, base_url: &str, model: &str, prompt: &str, tools: Option<&[Value]>, tx: Sender<StreamChunk>, cancel_token: CancellationToken, ) -> Result<(), AppError>