1. A computer-implemented method comprising: receiving, via a user interface of a client device, a first input from a user, wherein the first input includes a first text word or a first speech input; transmitting, via a transmit module of the client device, a portion of the first input to a server, wherein the server includes a language model; receiving, via a receive module of the client device, a first plurality of responses generated by the language model based on the portion of the first input, wherein each of the first plurality of the responses includes words likely to follow the first input; displaying, on a display of the client device, a tree structure that includes the first plurality of responses arranged into a plurality of levels, wherein words in a first portion of each of the first plurality of responses are included in a first level of the plurality of levels and are shown on the display, and wherein words in a second portion of each of the first plurality of responses are included in a second level and subsequent levels of the plurality of levels and are not shown on the display; receiving a second input from the user, wherein the second input includes (i) a second text word or a second speech input entered by the user or (ii) a word selected by the user by zooming in on the words in the second level or one of the subsequent levels; appending the second input to the first input to obtain an appended input; transmitting a portion of the appended input to the server; receiving a second plurality of responses generated by the language model based on the portion of the appended input; and updating the tree structure based on the second plurality of responses.