Which approach can I use to generate text based on multiple inputs?
Generally, text generators work by modeling the joint distribution of the text by its Bayesian forward decomposition  

$
\begin{align*}  
p(w_1, w_2, ..., w_n) &amp;= p(w_1) * p(w_2|w_1) * p(w_3|w_2, w_1) *\ ...\ * p(w_n|\{w_i\}_{i&lt;n})\\
&amp;= \prod_{i=1}^n p(w_i|\{w_k\}_{k&lt;i})\\  
\end{align*}
$  

From a modeling perspective, this looks right up RNN's ally, where you can have a state holding information from $\{w_k\}_{k&lt;i}$ to learn a representation of $w_i$  

Now, in your specific case, you're interested in a conditional text-generator, so you are trying to model $p(w_1, w_2, ..., w_n | \{v_j\}_j)$, but this same tactic works.  

$
\begin{align*}  
p(w_1, w_2, ..., w_n| \{v_j\}_j) &amp;= p(w_1|\{v_j\}_j) * p(w_2|w_1, \{v_j\}_j) * p(w_3|w_2, w_1, \{v_j\}_j) *\ ...\ * p(w_n|\{w_i\}_{i&lt;n}, \{v_j\}_j)\\
&amp;= \prod_{i=1}^n p(w_i|\{w_k\}_{k&lt;i}, \{v_j\}_j)\\  
\end{align*}
$  

So, in your RNN or forward-based model, you can use the exact same approach just additionally embed the conditional inputs you have and somehow infuse it into the model (in practice, I have seen this through attention, concatenation, or some other common approach).

My recommendation (depending on the computational power you have) is to take advantage of the recent fad of pre-trained language models. Specifically, ones trained on next word prediction will probably do the job best. A good example is gpt-2, and, if you check out their GitHub, their code is very readable and easy to adjust for adding conditional input in the ways I have described.