For your application, both the Chat API and the Assistants API could be used, but they offer different features and capabilities.
The Chat API, part of the GPT series, is a powerful tool for generating language responses. It's stateless, meaning you have to manage conversation state, tool definitions, retrieval documents, and code execution manually. It's a good choice if you want a lightweight and flexible solution, and you're comfortable managing the state of the conversation yourself (source (https://cookbook.openai.com/examples/assistants_api_overview_python)).
On the other hand, the Assistants API is a stateful evolution of the Chat API. It simplifies the creation of assistant-like experiences and enables developer access to powerful tools like Code Interpreter and Retrieval. The primitives of the Assistants API are Assistants, Threads, and Runs. Assistants encapsulate a base model, instructions, tools, and (context) documents. Threads represent the state of a conversation, and Runs power the execution of an Assistant on a Thread, including textual responses and multi-step tool use (source (https://cookbook.openai.com/examples/assistants_api_overview_python)). Assistants are designed to be created by developers using the OpenAI API and can leverage models, tools, and knowledge to respond to user queries (source (https://help.openai.com/en/articles/8673914-gpts-vs-assistants#h_5740051b75)).
As for the costs, the pricing for the Chat API (GPTs) and the Assistants API is different. GPTs are included in ChatGPT on Plus/Team/Enterprise plans, while the Assistants API is billed based on the usage of different Assistant features (source (https://help.openai.com/en/articles/8673914-gpts-vs-assistants#h_7569ffca53)).