Add OpenRouter and Llava to captioning plugin.

This commit is contained in:
Cohee
2023-11-17 23:19:21 +02:00
parent a8c819e293
commit 0608c0afac
5 changed files with 172 additions and 48 deletions

View File

@ -0,0 +1,28 @@
import { getRequestHeaders } from "../../script.js";
import { extension_settings } from "../extensions.js";
/**
* Generates a caption for an image using a multimodal model.
* @param {string} base64Img Base64 encoded image
* @param {string} prompt Prompt to use for captioning
* @returns {Promise<string>} Generated caption
*/
export async function getMultimodalCaption(base64Img, prompt) {
const apiResult = await fetch('/api/openai/caption-image', {
method: 'POST',
headers: getRequestHeaders(),
body: JSON.stringify({
image: base64Img,
prompt: prompt,
api: extension_settings.caption.multimodal_api || 'openai',
model: extension_settings.caption.multimodal_model || 'gpt-4-vision-preview',
}),
});
if (!apiResult.ok) {
throw new Error('Failed to caption image via OpenAI.');
}
const { caption } = await apiResult.json();
return caption;
}