Midjourney接口
posthttp://8.217.90.53:22021/chatstreamGk?apiKey=
注意参数类型全部为字符串
名称 | 是否必选 | 参数可选值 | 含义 |
---|---|---|---|
message | 是 | 图像内容描述 | |
modelid | 是 | Midjourney | |
mjType | 是 | 0或1 | 0为极速模式 1为慢速模式 |
mjTimeout | 否 | 超时时间,单位为秒,示例值:480 |
接口返回值说明: 慢速模式,结果会推送到mjCallback对应的地址,推送请求的body格式为:
{ raw_image_url: 图片url地址 }
极速模式 接口返回为流式文本。 图片消息格式为
assmdx[Image]assmdx图片url地址assmdx[Image]assmdx
结束时消息格式为assmdx[DONE]assmdx+JSON字符串,示例值如下:
assmdx[DONE]assmdx{"conversationId":"","tokens":189}
const runner = async () => { try { const response = await fetch(`${CHAT_SERVER_API}/chatstreamGk`, { method: 'post', body: JSON.stringify({ modelid: 'GPT-4', openid: '123', memory: '[]', message: '你好', conversationId: '', device: '3', websearch: '0' }), headers: {'Content-Type': 'application/json'}, timeout: 30000 }) const read = async body => { let error; body.on('error', err => { error = err console.log(err, "请求网络数据失败") }) for await (const chunk of body) { const nstrArr = chunk.toString().split('\n').map(s => s.replace('data:', '').replaceAll('assmdx[Enter]assmdx', '\n')) for (let nstr of nstrArr) { if (nstr === '') { continue } else if (nstr.indexOf('assmdx[DONE]assmdx') === 0) { nstr = nstr.replace('assmdx[DONE]assmdx', '').trim() try { const ress = JSON.parse(nstr) console.log('conversationId 是', ress.conversationId) console.log('消耗token数:', ress.tokens) } catch(e) { console.error(e, "请求网络数据失败") } } else if (nstr.indexOf('assmdx[Image]assmdx') === 0) { // 解析图片url nstr = nstr.replaceAll('assmdx[Image]assmdx', '').trim() }else if (nstr.indexOf('assmdx[Error]assmdx') === 0) { console.log('服务器错误') } else { console.log('收到了服务器返回的内容:', nstr) } } } return new Promise((resolve, reject) => { body.on('close', () => { error ? reject(error) : resolve(); }); }); }; await read(response.body); } catch (e) { console.error('出错了', e) } } runner()