return_tensors and return_text in TextGenerationPipeline don't work or partially work
### System Info

- transformers version: 4.24.0
- python version: 3.8.11

### Who can help?

Library:
- Text generation: @patrickvonplaten, @Narsil, @gante
- Pipelines: @Narsil

Documentation: @sgugger, @stevhliu

### Information

- [ ] The official example scripts
- [X] My own modified scripts

### Tasks

- [ ] An officially supported task in the `examples` folder (such as GLUE/SQuAD, ...)
- [X] My own task or dataset (give details below)

### Reproduction

1. initialize TextGenerationPipeline, assume we call it `pipeline` below
2. run the following code snips:
```python
results = pipeline(text_input, return_text=True, return_full_text=False, return_tensors=False)[0]
```
```python
results = pipeline(text_input, return_text=True, return_full_text=False, return_tensors=True)[0]
```
```python
results = pipeline(text_input, return_text=False, return_full_text=False, return_tensors=True)[0]
```
```python
results = pipeline(text_input, return_text=False, return_full_text=False, return_tensors=False)[0]
```
3. all the four code snips return the same dict with only one key `generated_text`

### Expected behavior

1. when `return_text=True` and `return_tensors=False`, return a dict contains only one key `generated_text`
2. when `return_text=False` and `return_tensors=True`, return a dict contains only  one key `generated_token_ids`
3. when `return_text=True` and `return_tensors=True`, return a dict contains both `generated_text` and `generated_token_ids`
This is perfectly normal as any value being set will choose its value in order.

boolean were a bad choice since some combinations don't mean anything.

https://github.com/huggingface/transformers/blob/main/src/transformers/pipelines/text_generation.py#L132<|||||>@Narsil, thanks for responding! 

Well then I think there may have some misguided on the [documentation](https://huggingface.co/docs/transformers/main_classes/pipelines#transformers.TextGenerationPipeline.__call__), where demonstrates `return_text`, `return_full_text` and `return_tensors` are boolean and default to True or False, also there is no pamareter called `return_type` in `__call__` but undert the hood it's the real one that decide what will be returned. And the document also not clearly demonstrates the relationship of `return_text` and `return_tensors`.

And I remember back to the earlier versions (4.1x and earlier I think) we can decide what will be returned (only `generated_text`, only `generated_token_ids` or both of them) by using the combinations of the three parameters.<|||||>I may be wrong, but I think `return_type` is an internal parameter, but you can still decide what to return with the other three parameters.

As far as I can tell, you can't return a combination of `generated_text` and `generated_token_ids`. You can only return one or the other, which I guess is why some of those combinations don't do anything. Would it help if there was a note in the docs about this?<|||||>> I may be wrong, but I think `return_type` is an internal parameter, but you can still decide what to return with the other three parameters.
> 
> As far as I can tell, you can't return a combination of `generated_text` and `generated_token_ids`. You can only return one or the other, which I guess is why some of those combinations don't do anything. Would it help if there was a note in the docs about this?

@stevhliu thanks for the replying! Now I'm clear with the functionality and relationship  between `return_text` and `return_tensors`, and I think it would be clear to more people if the documentation also target this out. 😄 <|||||>Yes the docs could use some polish here, maybe even soft deprecate `return_text` & co in favor of `return_type`.
Soft deprecate meaning we don't ever have to actually remove them, just don't make them as prominent since they are indeed confusing.