When to use assistant file object vs message file object?

I think that files: a) at the assistant level provide background knowledge for any runs made with that assistant, b) at the thread message level contain the data about which you want “assistance”, i.e., to ask questions about. Supporting that below is what I got from Microsoft Copilot in Bing on 24mar24.

OpenAI Assistants, there are distinct trade-offs between attaching a file to the assistant itself and attaching it to a specific thread. Let’s delve into the differences:

  1. Assistant-Level Files :
  • Purpose : These files are primarily used for tools, such as Code Interpreter and Knowledge Retrieval.
  • Accessibility : Files attached at the assistant level are accessible by all runs involving that particular assistant.
  • Knowledge Base : If you want to create a knowledge base for your assistant, attaching files at this level is recommended.
  • Cost Consideration : These files do not contribute to additional billing costs, making them a more efficient choice.
  • Maintenance : Keeping the assistant’s knowledge up-to-date is simpler when files are part of the assistant.
  • Example : You might use this level to store reference documents, FAQs, or other essential information1.
  1. Thread-Level Files :
  • Purpose : Files attached at the thread level are specific to individual threads between the assistant and users.
  • Limited Scope : They persist only within the context of the particular thread where they are shared.
  • Billing Impact : If used as knowledge bases, files in thread messages can lead to increased storage costs per hour as threads multiply.
  • User-Relevant Data : These files should ideally contain data relevant only to the user within that specific conversation.
  • Example : If a user shares a specific document during a thread, it remains accessible only within that conversation1