jan/web/hooks/useUpdateBot.ts
2023-10-26 09:54:43 +07:00

38 lines
897 B
TypeScript

import { DataService } from '@janhq/core'
import { executeSerial } from '@services/pluginService'
export default function useUpdateBot() {
const updateBot = async (
bot: Bot,
updatableField: UpdatableField
): Promise<void> => {
try {
// TODO: if bot does not changed, no need to update
for (const [key, value] of Object.entries(updatableField)) {
if (value !== undefined) {
//@ts-ignore
bot[key] = value
}
}
await executeSerial(DataService.UpdateBot, bot)
console.debug('Bot updated', JSON.stringify(bot, null, 2))
} catch (err) {
alert(`Update bot error: ${err}`)
console.error(err)
return
}
}
return { updateBot }
}
export type UpdatableField = {
presencePenalty?: number
frequencyPenalty?: number
maxTokens?: number
customTemperature?: number
systemPrompt?: number
}