architecture patterns for ai powered applications