history length
This commit is contained in:
parent
4d98e3e67a
commit
aede2b64a9
13
geminibot.ts
13
geminibot.ts
@ -32,7 +32,8 @@ import * as config from './config.js';
|
|||||||
if (attach.ok) {
|
if (attach.ok) {
|
||||||
let body = await attach.arrayBuffer(),
|
let body = await attach.arrayBuffer(),
|
||||||
resized: Buffer
|
resized: Buffer
|
||||||
if (attachment.type === 'image' && (attachment.url.toString().toLowerCase().endsWith('.png') || attachment.url.toString().toLowerCase().match(/.*\.(jpe?g)$/))) {
|
if (attachment.type === 'image' && (attachment.url.toString().toLowerCase().endsWith('.png') ||
|
||||||
|
attachment.url.toString().toLowerCase().match(/.*\.(jpe?g)$/))) {
|
||||||
const image = await Jimp.read(Buffer.from(body))
|
const image = await Jimp.read(Buffer.from(body))
|
||||||
if (image.getWidth() > 512) {
|
if (image.getWidth() > 512) {
|
||||||
if (image.getMIME() === 'image/jpeg') {
|
if (image.getMIME() === 'image/jpeg') {
|
||||||
@ -61,7 +62,7 @@ import * as config from './config.js';
|
|||||||
if (status && status.visibility !== 'direct' && status.account.acct !== nick && status.content.trim() !== '') {
|
if (status && status.visibility !== 'direct' && status.account.acct !== nick && status.content.trim() !== '') {
|
||||||
try {
|
try {
|
||||||
const query = await client.search({
|
const query = await client.search({
|
||||||
index: index,
|
index,
|
||||||
size: 100,
|
size: 100,
|
||||||
sort: [{ timestamp: { order: 'desc' } }],
|
sort: [{ timestamp: { order: 'desc' } }],
|
||||||
query: {
|
query: {
|
||||||
@ -78,7 +79,7 @@ import * as config from './config.js';
|
|||||||
acc.concat(h.entry.sort((a, b) => a.role < b.role ? 1 : -1)) : acc, [])
|
acc.concat(h.entry.sort((a, b) => a.role < b.role ? 1 : -1)) : acc, [])
|
||||||
}
|
}
|
||||||
const content = ('' + status.content).replace(/<[^>]*>?/gm, '').trim()
|
const content = ('' + status.content).replace(/<[^>]*>?/gm, '').trim()
|
||||||
let parts = []
|
let parts
|
||||||
if (content.match(new RegExp('^@' + nick + ' .* hilo.*$')) && status.inReplyToId) {
|
if (content.match(new RegExp('^@' + nick + ' .* hilo.*$')) && status.inReplyToId) {
|
||||||
let id: string, s = await rest.v1.statuses.$select(status.id).fetch()
|
let id: string, s = await rest.v1.statuses.$select(status.id).fetch()
|
||||||
do {
|
do {
|
||||||
@ -118,7 +119,7 @@ import * as config from './config.js';
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const chat = model.startChat({
|
const chat = model.startChat({
|
||||||
history: history && history.length > 0 ?
|
history: history.length > 0 ?
|
||||||
entries.length > 0 ?
|
entries.length > 0 ?
|
||||||
[...history, ...entries] :
|
[...history, ...entries] :
|
||||||
history :
|
history :
|
||||||
@ -147,10 +148,10 @@ import * as config from './config.js';
|
|||||||
role: 'model', parts: [{ text: answer }]
|
role: 'model', parts: [{ text: answer }]
|
||||||
}
|
}
|
||||||
await client.index({
|
await client.index({
|
||||||
index: index,
|
index,
|
||||||
body: {
|
body: {
|
||||||
user: status.account.acct,
|
user: status.account.acct,
|
||||||
entry: entries ? [user].concat(entries.map(entry => ({
|
entry: entries.length > 0 ? [user].concat(entries.map(entry => ({
|
||||||
role: entry.role, parts: entry.parts.filter((p: { text: any; inlineData: { mimeType: string; }; }) =>
|
role: entry.role, parts: entry.parts.filter((p: { text: any; inlineData: { mimeType: string; }; }) =>
|
||||||
p.text || p.inlineData?.mimeType === 'image/png' || p.inlineData?.mimeType === 'image/jpeg')
|
p.text || p.inlineData?.mimeType === 'image/png' || p.inlineData?.mimeType === 'image/jpeg')
|
||||||
}))).concat([bot]) : [user, bot],
|
}))).concat([bot]) : [user, bot],
|
||||||
|
Loading…
Reference in New Issue
Block a user