Add Focal Point Operation Type, API Explorer and LLM Provider
>>> [!note] Migrated issue <!-- Drupal.org comment --> <!-- Migrated from issue #3571939. --> Reported by: [marcus_johansson](https://www.drupal.org/user/385947) Related to !1163 >>> <p>[Tracker]<br> <strong>Update Summary: </strong>[One-line status update for stakeholders]<br> <strong>Short Description: </strong>[One-line issue summary for stakeholders]<br> <strong>Check-in Date: </strong>MM/DD/YYYY<br> <em>Metadata is used by the <a href="https://www.drupalstarforge.ai/" title="AI Tracker">AI Tracker.</a> Docs and additional fields <a href="https://www.drupalstarforge.ai/ai-dashboard/docs" title="AI Issue Tracker Documentation">here</a>.</em><br> [/Tracker]</p> <h3 id="summary-problem-motivation">Problem/Motivation</h3> <p>This comes from <span class="drupalorg-gitlab-issue-link drupalorg-gitlab-link-wrapper"><a href="https://git.drupalcode.org/project/ai_initiative/-/work_items/3569554" class="drupalorg-gitlab-link">https://git.drupalcode.org/project/ai_initiative/-/work_items/3569554</a></span>. Many sites have older images that might not have focal point attached to it or might have so many images on content types, that it takes the editor a lot of time to set it. We should automate this.</p> <p>On top of that vision models like OpenAI gpt-4.1 or Mistral Medium are very good at describing images and can be utilized to find a fairly good x and y axis.</p> <p>There are also services specialized on it, like: <a href="https://learn.microsoft.com/en-us/rest/api/computervision/get-area-of-interest/get-area-of-interest?view=rest-computervision-v3.2&amp;tabs=HTTP">https://learn.microsoft.com/en-us/rest/api/computervision/get-area-of-interest/get-area-of-interest?view=rest-computervision-v3.2&amp;tabs=HTTP</a> </p> <h3 id="summary-proposed-resolution">Proposed resolution</h3> <ul> <li>Create an input that takes an ImageFile and an optional prompt.</li> <li>Create an output that gives back x and y.</li> <li>Create an API Explorer for it.</li> <li>Create an LLM version of the provider that can use the LLM Vision models for it. See solution in <span class="drupalorg-gitlab-issue-link drupalorg-gitlab-link-wrapper"><a href="https://git.drupalcode.org/project/ai_initiative/-/work_items/3569554" class="drupalorg-gitlab-link">https://git.drupalcode.org/project/ai_initiative/-/work_items/3569554</a></span></li> <li>Write documentation</li> <li>Write tests</li> </ul> <h3 id="summary-ai-usage">AI usage (if applicable)</h3> <p>[ ] AI Assisted Issue<br> This issue was generated with AI assistance, but was reviewed and refined by the creator.</p> <p>[x] AI Assisted Code<br> This code was mainly generated by a human, with AI autocompleting or parts AI generated, but under full human supervision.</p> <p>[ ] AI Generated Code<br> This code was mainly generated by an AI with human guidance, and reviewed, tested, and refined by a human.</p> <p>[ ] Vibe Coded<br> This code was generated by an AI and has only been functionally tested.</p>
issue