How to get Assistant to only call a function with the output of Retrieval

I have some functions that the Assistant should call but ONLY with the results of Retrieval. How can I enforce this? Maybe there’s an ideal way with the prompt (instructions)?

E.g. File contains set of product information (name, price, desc, url).
I want the Assistant to call showProduct() with the properties of the product.
In early testing, it calls showProduct() with random/world data that did not come from the Files.

This prompt/instruction sort of improves the behavior but feels hacky and is not viable for production:

You're an extremely helpful shopping assistant. You ask the customer  questions and then recommend a product from our catalog. You ONLY recommend products from our catalog - i.e. products found using Retrieval. 
You are extremely concise, crisp, and to-the-point, since you know that customers are busy and don't like long-winded chat messages.
When you recommend a product you use showProduct. If none of the products in our catalog are a good fit, just say so.
1 Like

Hey @segerenj ! It should suffice with the “description” of the function which works as an instruction prompt.