Chained chat / ability to retain history / chat against conversation, csv upload

Wonderful product, but I’d request:

a). Chained chat (i.e. not require ChatGPT in a langchain format, where Vectara is embeddings but Vectara also have the ability to ask questions against itself).
b). Ability to ingest CSV (I believe I’ve seen some items about ‘flattening’ a table into question/answers) so perhaps still the best path

Thank you @Ali_Madison
a) I assume here you mean the ability to retain history and have subsequent questions be aware of previous ones, correct?
b) Can you please clarify what you have in mind here? CSV (or any similar table as source data) usually comes with numerical and/or textual columns. You can always easily process that CSV programatically and pick the textual fields you need to query against and ingest them into Vectara with the API. Often some of the numerical fields can be used as meta-data fields. Can you please clarify what do you mean by “ingest CSV”? what is your specific need here?

Thank you Ofer for clarifying:

a). Correct, retain history, and subsequent questions be aware of previous ones (and I only want to use Vectara, I don’t want to use say OpenAI, or Vertex AI, etc.) I know it doesn’t always make sense to have every feature in one product - but curious (I’d rather stay in your ecosystem exclusively)
b). You’re right, some plain csv (i x j, i = columns, j = rows), i.e.
| columnText | columnInt | … | someOtherColumn |
| “v1” | 1 | … | … |
| “v2” | 2 | … | … |
| “v3” | 3 | … | … |

should I do some sort of ‘flattening’ so that instead of it being a set of columns and rows, that its just columns with 1 row each (and separate it by say commas), i.e.

Make a word doc, text file or Json or something to upload into Vectara?

columnText = “v1”, “v2”, “v3”,…
columnInt = 1, 2, 3,…
someOtherColumn = …

yes creating your own “documents” from each row in a way that suits your use-case is the most common pattern to deal with the CSV.

See csv_crawler in vectara-ingest for an example of how this might be done (or you can also use vectara-ingest if it suits your needs for ingesting this csv).