It seems you are looking for a classical operation called multiplexer. It is possible to build such operation with Qiskit's uniformly controlled gates (UCGate
). More info in here.
However, this way might not be the easier way. After reading Cryoris' answer, here is my version of your example (which piggyback on Cryoris' great answer):
Let's set your current circuit:
from qiskit import *
a_input = QuantumRegister(4, name='a')
b_input = QuantumRegister(4, name='b')
inputs = QuantumCircuit(a_input, b_input)
inputs.initialize('1110', a_input)
inputs.initialize('0111', b_input)
inputs.draw('mpl')

(side note, if your run inputs.decompose().draw('mpl')
you will notice that the order of the $X$ gates are going to be "in reverse". That's because Qiskit endianness.)
Now, time to create the multiplexer. This scales up the Cryoris' answer:
from qiskit.circuit.library import CXGate
indicator = QuantumRegister(1, name='indicator')
a_or_b = QuantumRegister(4, name='aORb')
multiplexer = QuantumCircuit(a_input, b_input, indicator, a_or_b)
for i in range(4):
# If indicator is 0, copy from A
multiplexer.append(CXGate().control(1, ctrl_state='0'), [indicator, a_input[i], a_or_b[i]])
multiplexer.barrier(a_input, b_input)
for i in range(4):
# If indicator is 1, copy from B
multiplexer.append(CXGate().control(1, ctrl_state='1'), [indicator, b_input[i], a_or_b[i]])
multiplexer.draw('mpl')

The register a_or_b
needs to be measured:
output = ClassicalRegister(4, name='output')
measure = QuantumCircuit(a_or_b)
measure.measure_all(a_or_b)
The composed result:
circuit = inputs + multiplexer + measure
circuit.draw('mpl')

Finally, we need to "set" the indicator
qubit. Once circuit for each possibility:
indicator0 = QuantumCircuit(indicator)
indicator0.initialize('0', indicator)
indicator1 = QuantumCircuit(indicator)
indicator1.initialize('1', indicator)
Time to test how it works:
job = execute(indicator0 + circuit, backend=BasicAer.get_backend('qasm_simulator'))
job.result().get_counts().keys()
dict_keys(['1110'])
job = execute(indicator1 + circuit, backend=BasicAer.get_backend('qasm_simulator'))
job.result().get_counts().keys()
dict_keys(['0111'])