When to use assistant file object vs message file object?

When do you use assistant file object vs message file object?
In order to ask assistant to do something with certain files, I need to include all the necessary files in the message. It doesn’t seem to be able to reference files attached to the assistant that the message is running inside.
Thanks!

This response is just based on some very limited testing via Playground, where I wanted to have some per Assistant files that were not message specific but then have some additional files that were message specific.

This didn’t seem to work for me.
If I sent a message without files it would seem to use the Assistant files.
But if I also attached files to the message it seemed to only use the message files.

I was confused about this as well. It seemed counter-intuitive to me to attach files to an assistant and then need to explicitly tell the assistant to reference those files in a message. Due to my confusion I asked GPT about it. We had a long back and forth conversation where he explained that in order to reference a file I needed to include the file in the file_ids property of the message object. BUT, both GPT and I realized during the conversation that he was “unaware” of the ability to attach files to an assistant. His understanding was that files just lived out there on the OpenAI Server associated with an account and NOT any particular assistant. GPT said that this functionality must have been added since his last training session.

So I am now convinced that the file_ids property on the message object is a vestige of a version of the API before files could be directly associated with Assistants. Although, I believe it could still be useful to, as martin10 described, instruct an assistant by saying “hey, out of the X number of files you have at your disposal, I want you to use this and only this one to respond to this message”. It could also be useful in referencing files that are on your account, but not explicitly attached to the assistant.

I’m stuck on this too.
When I attach files to the message, I get the following response:
“I noticed you’ve uploaded a file, but due to the method of upload, I can’t directly open it with my current toolset. Could you please re-upload the file using the paperclip icon? This will allow me to access and analyze the document for you”

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