| 1234567891011121314151617181920212223242526272829 |
- const { runWithModel } = require('./shared')
- /**
- * 入参:prompt, model, imageUrl
- * imageUrl:单张 data URL / https,或 **多张 URL 的数组**(与 OpenAI 多图 content 一致)
- */
- async function executeImg2text ({ prompt, model, imageUrl, folderPath }) {
- const p = prompt != null ? String(prompt).trim() : ''
- let url
- if (Array.isArray(imageUrl)) {
- url = imageUrl.map((u) => String(u || '').trim()).filter(Boolean)
- } else {
- url = imageUrl != null ? String(imageUrl).trim() : ''
- }
- if (!url || (Array.isArray(url) && url.length === 0)) {
- return { success: false, error: 'img2text 缺少 imageUrl(或非空 URL 数组)' }
- }
- try {
- const result = await runWithModel('img2text', 'doubao_img2text', [p, url], model)
- if (!result.success) return { success: false, error: result.error || 'img2text 失败' }
- const data = result.data
- const text = data?.choices?.[0]?.message?.content ?? data?.choices?.[0]?.text ?? ''
- return { success: true, value: typeof text === 'string' ? text : String(text) }
- } catch (e) {
- return { success: false, error: (e && (e.message || String(e))) || 'img2text 异常' }
- }
- }
- module.exports = { executeImg2text }
|