mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-14 09:51:24 -06:00
feat: openai send images
This commit is contained in:
parent
fb93c890ca
commit
3ef80bd6c5
@ -1356,14 +1356,51 @@ export class OpenaiService {
|
|||||||
|
|
||||||
const message = response?.data[0].content[0].text.value;
|
const message = response?.data[0].content[0].text.value;
|
||||||
|
|
||||||
await instance.textMessage(
|
const regex = /!?\[(.*?)\]\((.*?)\)/g;
|
||||||
{
|
|
||||||
number: remoteJid.split('@')[0],
|
const result = [];
|
||||||
delay: settings?.delayMessage || 1000,
|
let lastIndex = 0;
|
||||||
text: message,
|
|
||||||
},
|
let match;
|
||||||
false,
|
while ((match = regex.exec(message)) !== null) {
|
||||||
);
|
if (match.index > lastIndex) {
|
||||||
|
result.push({ text: message.slice(lastIndex, match.index).trim() });
|
||||||
|
}
|
||||||
|
|
||||||
|
result.push({ caption: match[1], url: match[2] });
|
||||||
|
|
||||||
|
lastIndex = regex.lastIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lastIndex < message.length) {
|
||||||
|
result.push({ text: message.slice(lastIndex).trim() });
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const item of result) {
|
||||||
|
if (item.text) {
|
||||||
|
await instance.textMessage(
|
||||||
|
{
|
||||||
|
number: remoteJid.split('@')[0],
|
||||||
|
delay: settings?.delayMessage || 1000,
|
||||||
|
text: item.text,
|
||||||
|
},
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.url) {
|
||||||
|
await instance.mediaMessage(
|
||||||
|
{
|
||||||
|
number: remoteJid.split('@')[0],
|
||||||
|
delay: settings?.delayMessage || 1000,
|
||||||
|
mediatype: 'image',
|
||||||
|
media: item.url,
|
||||||
|
caption: item.caption,
|
||||||
|
},
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
await this.prismaRepository.integrationSession.update({
|
await this.prismaRepository.integrationSession.update({
|
||||||
where: {
|
where: {
|
||||||
@ -1606,14 +1643,51 @@ export class OpenaiService {
|
|||||||
|
|
||||||
const message = response?.data[0].content[0].text.value;
|
const message = response?.data[0].content[0].text.value;
|
||||||
|
|
||||||
await instance.textMessage(
|
const regex = /!?\[(.*?)\]\((.*?)\)/g;
|
||||||
{
|
|
||||||
number: remoteJid.split('@')[0],
|
const result = [];
|
||||||
delay: settings?.delayMessage || 1000,
|
let lastIndex = 0;
|
||||||
text: message,
|
|
||||||
},
|
let match;
|
||||||
false,
|
while ((match = regex.exec(message)) !== null) {
|
||||||
);
|
if (match.index > lastIndex) {
|
||||||
|
result.push({ text: message.slice(lastIndex, match.index).trim() });
|
||||||
|
}
|
||||||
|
|
||||||
|
result.push({ caption: match[1], url: match[2] });
|
||||||
|
|
||||||
|
lastIndex = regex.lastIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lastIndex < message.length) {
|
||||||
|
result.push({ text: message.slice(lastIndex).trim() });
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const item of result) {
|
||||||
|
if (item.text) {
|
||||||
|
await instance.textMessage(
|
||||||
|
{
|
||||||
|
number: remoteJid.split('@')[0],
|
||||||
|
delay: settings?.delayMessage || 1000,
|
||||||
|
text: item.text,
|
||||||
|
},
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.url) {
|
||||||
|
await instance.mediaMessage(
|
||||||
|
{
|
||||||
|
number: remoteJid.split('@')[0],
|
||||||
|
delay: settings?.delayMessage || 1000,
|
||||||
|
mediatype: 'image',
|
||||||
|
media: item.url,
|
||||||
|
caption: item.caption,
|
||||||
|
},
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
await this.prismaRepository.integrationSession.update({
|
await this.prismaRepository.integrationSession.update({
|
||||||
where: {
|
where: {
|
||||||
@ -1747,14 +1821,51 @@ export class OpenaiService {
|
|||||||
|
|
||||||
const message = completions.choices[0].message.content;
|
const message = completions.choices[0].message.content;
|
||||||
|
|
||||||
await instance.textMessage(
|
const regex = /!?\[(.*?)\]\((.*?)\)/g;
|
||||||
{
|
|
||||||
number: remoteJid.split('@')[0],
|
const result = [];
|
||||||
delay: settings?.delayMessage || 1000,
|
let lastIndex = 0;
|
||||||
text: message,
|
|
||||||
},
|
let match;
|
||||||
false,
|
while ((match = regex.exec(message)) !== null) {
|
||||||
);
|
if (match.index > lastIndex) {
|
||||||
|
result.push({ text: message.slice(lastIndex, match.index).trim() });
|
||||||
|
}
|
||||||
|
|
||||||
|
result.push({ caption: match[1], url: match[2] });
|
||||||
|
|
||||||
|
lastIndex = regex.lastIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lastIndex < message.length) {
|
||||||
|
result.push({ text: message.slice(lastIndex).trim() });
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const item of result) {
|
||||||
|
if (item.text) {
|
||||||
|
await instance.textMessage(
|
||||||
|
{
|
||||||
|
number: remoteJid.split('@')[0],
|
||||||
|
delay: settings?.delayMessage || 1000,
|
||||||
|
text: item.text,
|
||||||
|
},
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.url) {
|
||||||
|
await instance.mediaMessage(
|
||||||
|
{
|
||||||
|
number: remoteJid.split('@')[0],
|
||||||
|
delay: settings?.delayMessage || 1000,
|
||||||
|
mediatype: 'image',
|
||||||
|
media: item.url,
|
||||||
|
caption: item.caption,
|
||||||
|
},
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
await this.prismaRepository.integrationSession.update({
|
await this.prismaRepository.integrationSession.update({
|
||||||
where: {
|
where: {
|
||||||
@ -1944,14 +2055,51 @@ export class OpenaiService {
|
|||||||
|
|
||||||
const message = completions.choices[0].message.content;
|
const message = completions.choices[0].message.content;
|
||||||
|
|
||||||
await instance.textMessage(
|
const regex = /!?\[(.*?)\]\((.*?)\)/g;
|
||||||
{
|
|
||||||
number: remoteJid.split('@')[0],
|
const result = [];
|
||||||
delay: settings?.delayMessage || 1000,
|
let lastIndex = 0;
|
||||||
text: message,
|
|
||||||
},
|
let match;
|
||||||
false,
|
while ((match = regex.exec(message)) !== null) {
|
||||||
);
|
if (match.index > lastIndex) {
|
||||||
|
result.push({ text: message.slice(lastIndex, match.index).trim() });
|
||||||
|
}
|
||||||
|
|
||||||
|
result.push({ caption: match[1], url: match[2] });
|
||||||
|
|
||||||
|
lastIndex = regex.lastIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lastIndex < message.length) {
|
||||||
|
result.push({ text: message.slice(lastIndex).trim() });
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const item of result) {
|
||||||
|
if (item.text) {
|
||||||
|
await instance.textMessage(
|
||||||
|
{
|
||||||
|
number: remoteJid.split('@')[0],
|
||||||
|
delay: settings?.delayMessage || 1000,
|
||||||
|
text: item.text,
|
||||||
|
},
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.url) {
|
||||||
|
await instance.mediaMessage(
|
||||||
|
{
|
||||||
|
number: remoteJid.split('@')[0],
|
||||||
|
delay: settings?.delayMessage || 1000,
|
||||||
|
mediatype: 'image',
|
||||||
|
media: item.url,
|
||||||
|
caption: item.caption,
|
||||||
|
},
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
await this.prismaRepository.integrationSession.update({
|
await this.prismaRepository.integrationSession.update({
|
||||||
where: {
|
where: {
|
||||||
|
Loading…
Reference in New Issue
Block a user