GPT-4 Vision for identifying unethical Advertisements

I want to use gpt4v api to give an image of an advertisement as an input and based on information available on web eg: if the company faced any legal issues etc. It should say whether the ad is complaint or not. How do I do this as the output even with few shot is very vague and not accurate.

Could you share more details about your current approach and the issues, e.g. the prompt, details about the information you are using to assess compliance, as well as more specific details about the issues with the output the model produces?

I prompted the model to classify the advertisements into one of the categories like false advertising, misleading info etc. based on advertisement language and legal practices. I also asked into look through the database if the brand has faced any legal issues with the product. Issue is the model says "I’m not sure about the category , you would have to research more about (brand) " something on those lines.

Thanks for the additional info.

It sounds like multiple different steps are required to arrive at a conclusion about the compliance of the advertisement. From your information, I cannot yet fully infer to what degree you are trying to complete these steps in a single vs. multiple API calls.

One way to approach this problem would be as follows:

  1. Use API Vision to obtain a detailed description of the ad’s contents.

  2. Compare this description with a set of “compliance indicators/criteria” that you include in your prompt as context and that are linked to your different categories (i.e. false, misleading) - this should ideally be a standardized list of indicators/criteria so your assessment across ads is consistent and verifiable. The output of this assessment can be a classification of the input into any of your categories, complete with justification for arriving at that conclusion (if needed). As part of this step, you may also add as additional context information about prior legal issues associated with the advertised product/service. You should specify as part of your instructions how that information should be considered as part of the evaluation process.

With a well constructed prompt, you may be able to combine step 1 and 2 into a single API call - personally I would split it though.

Please note: absent of more details, my guidance is still a bit abstract and may not entirely work for your use case. So please bear that in mind when reading it.


Agree with this statement. Ideally you want to split these two up so that you can better determine the output and add more parameters over time.

Thanks! So that means I should generate the description of the AD first then past that output as a context to the next prompt to see if it aligns with rules? I also want to consider cases where there are articles on the internet about how a certain product was misleading Eg: 45% less sugar etc .

Yes, exactly. As indicated earlier, for the second step you want to make sure you clearly define which role the different inputs have in the evaluation process.

Hey, Instead of splitting, I introduced a assitant role and the results have been mostly accurate. This what I wrote. Additionally I took two unethical ADs (in “user” role) and explained about what category it belongs to. Do you think the few shot prompting has a significant role to play or was it just the assistant role I added?
“role”: “assistant”,
“content”: [
“type”: “text”,
“text”: “”“You are a helpful assistant whose job is to identify if the advertisement practices are fair, true and are
complaint with legal standards.”“”