cleaned up stuff

This commit is contained in:
MaxRobinsonTheGreat 2024-10-02 00:57:28 -05:00
parent 6b170e492f
commit 166c01c52b
5 changed files with 49 additions and 50 deletions

View file

@ -7,18 +7,18 @@ export default
"profiles": [ "profiles": [
"./andy.json", "./andy.json",
// add more profiles here, check ./profiles/ for more // add more profiles here, check ./profiles/ for more
// more than 1 profile will require you to /msg each bot indivually // more than 1 profile will require you to /msg each bot indivually
], ],
"load_memory": false, // load memory from previous session "load_memory": false, // load memory from previous session
"init_message": "Say hello world and your name", // sends to all on spawn "init_message": "Say hello world and your name", // sends to all on spawn
"language": "en", // translate to/from this language. Supports these language names: https://cloud.google.com/translate/docs/languages
"allow_insecure_coding": false, // allows newAction command and model can write/run code on your computer. enable at own risk "allow_insecure_coding": false, // allows newAction command and model can write/run code on your computer. enable at own risk
"code_timeout_mins": 10, // minutes code is allowed to run. -1 for no timeout "code_timeout_mins": 10, // minutes code is allowed to run. -1 for no timeout
"max_commands": -1, // max number of commands to use in a response. -1 for no limit "max_commands": -1, // max number of commands to use in a response. -1 for no limit
"verbose_commands": true, // show full command syntax "verbose_commands": true, // show full command syntax
"narrate_behavior": true, // chat simple automatic actions ('Picking up item!') "narrate_behavior": true, // chat simple automatic actions ('Picking up item!')
"language": "spanish", // the bot will respond/message in this language. All language names are based on google translate's names.
} }

View file

@ -8,7 +8,7 @@ import { NPCContoller } from './npc/controller.js';
import { MemoryBank } from './memory_bank.js'; import { MemoryBank } from './memory_bank.js';
import { SelfPrompter } from './self_prompter.js'; import { SelfPrompter } from './self_prompter.js';
import settings from '../../settings.js'; import settings from '../../settings.js';
import { handleTranslation, handleEnglishTranslation } from './translator.js'; import { handleTranslation, handleEnglishTranslation } from '../utils/translator.js';
export class Agent { export class Agent {
async start(profile_fp, load_mem=false, init_message=null) { async start(profile_fp, load_mem=false, init_message=null) {
@ -79,8 +79,8 @@ export class Agent {
this.handleMessage('system', init_message, 2); this.handleMessage('system', init_message, 2);
} }
else { else {
const translation = await handleTranslation("Hello world! I am"); const translation = await handleTranslation("Hello world! I am "+this.name);
this.bot.chat(translation+" "+this.name); this.bot.chat(translation);
this.bot.emit('finished_executing'); this.bot.emit('finished_executing');
} }
@ -90,12 +90,17 @@ export class Agent {
} }
async cleanChat(message) { async cleanChat(message, translate_up_to=-1) {
let to_translate = message;
let remainging = '';
if (translate_up_to != -1) {
to_translate = to_translate.substring(0, translate_up_to);
remainging = message.substring(translate_up_to);
}
message = (await handleTranslation(to_translate)).trim() + " " + remainging;
// newlines are interpreted as separate chats, which triggers spam filters. replace them with spaces // newlines are interpreted as separate chats, which triggers spam filters. replace them with spaces
message = message.replaceAll('\n', ' '); message = message.replaceAll('\n', ' ');
const preferred_lang = settings.preferred_language; return this.bot.chat(message);
let translation = await handleTranslation(message);
return this.bot.chat(translation);
} }
shutUp() { shutUp() {
@ -165,7 +170,7 @@ export class Agent {
this.self_prompter.handleUserPromptedCmd(self_prompt, isAction(command_name)); this.self_prompter.handleUserPromptedCmd(self_prompt, isAction(command_name));
if (settings.verbose_commands) { if (settings.verbose_commands) {
this.cleanChat(res); this.cleanChat(res, res.indexOf(command_name));
} }
else { // only output command name else { // only output command name
let pre_message = res.substring(0, res.indexOf(command_name)).trim(); let pre_message = res.substring(0, res.indexOf(command_name)).trim();

View file

@ -285,6 +285,5 @@ export const actionsList = [
agent.bot.emit('idle'); // to trigger the goal agent.bot.emit('idle'); // to trigger the goal
return 'Set npc goal: ' + agent.npc.data.curr_goal.name; return 'Set npc goal: ' + agent.npc.data.curr_goal.name;
} }
} },
]; ];

View file

@ -2,13 +2,10 @@ import * as skills from './library/skills.js';
import * as world from './library/world.js'; import * as world from './library/world.js';
import * as mc from '../utils/mcdata.js'; import * as mc from '../utils/mcdata.js';
import settings from '../../settings.js' import settings from '../../settings.js'
import { handleTranslation, handleEnglishTranslation } from './translator.js'; import { handleTranslation } from '../utils/translator.js';
async function say(agent, message) { async function say(agent, message) {
const preferred_lang = settings.preferred_language;
if (agent.shut_up || !settings.narrate_behavior) return; if (agent.shut_up || !settings.narrate_behavior) return;
var translation = await handleTranslation(message); var translation = await handleTranslation(message);
agent.bot.chat(translation); agent.bot.chat(translation);

View file

@ -1,32 +1,30 @@
import translate from 'google-translate-api-x'; import translate from 'google-translate-api-x';
import settings from '../../settings.js'; import settings from '../../settings.js';
const preferred_lang = settings.language; const preferred_lang = settings.language;
export async function handleTranslation(message) { export async function handleTranslation(message) {
try { try {
if (preferred_lang.toLowerCase() === 'en' || preferred_lang.toLowerCase() === 'english') { if (preferred_lang.toLowerCase() === 'en' || preferred_lang.toLowerCase() === 'english') {
return message; return message;
} else { } else {
const lang = String(preferred_lang); // Ensure lang is a string const lang = String(preferred_lang);
const translation = await translate(message, { to: lang }); const translation = await translate(message, { to: lang });
return translation.text || message; // Ensure translation.text is a string return translation.text || message;
} }
} catch (error) { } catch (error) {
console.error('Error translating message:', error); console.error('Error translating message:', error);
return message; // Fallback to the original message if translation fails return message;
} }
} }
export async function handleEnglishTranslation(message) { export async function handleEnglishTranslation(message) {
try { try {
const translation = await translate(message, { to: 'english' }); const translation = await translate(message, { to: 'english' });
return translation.text || message; // Ensures translation.text is a string return translation.text || message;
} catch (error) { } catch (error) {
console.error('Error translating message:', error); console.error('Error translating message:', error);
return message; // Fallback to the original message if translation fails return message;
} }
} }