Andreas Seppi booked his place in the final of the Serbia Open with a three-set win over David Nalbandian.