From f43e0af9186dc8db5b79be0b1eb61e48ffd42c00 Mon Sep 17 00:00:00 2001 From: sebseb7 Date: Fri, 22 Aug 2025 22:43:27 +0000 Subject: [PATCH] Update ModelDialog to accept options for model selection and enhance error handling for invalid models. Modify CLI to use the new model configuration and update interrogation command for improved functionality. --- cli2.js | 21 +++++++++++++++++++-- modelDialog.js | 16 ++++++++++++---- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/cli2.js b/cli2.js index 4504646..6f6c802 100644 --- a/cli2.js +++ b/cli2.js @@ -7,7 +7,7 @@ import chalk from 'chalk'; -const modelDialog = new ModelDialog(); +const modelDialog = new ModelDialog({model: 'gpt-5-mini'}); modelDialog.on('outputUpdate', (output) => { //console.log(chalk.blue('output event'),output); @@ -50,7 +50,24 @@ const price = { //const output = await modelDialog.interrogate('Can you remember "seven" ?'); //console.log(output.output,JSON.stringify(output.reasoning,null,2)); //const output2 = await modelDialog.interrogate('read a file that is what you remebered plus 1 as a word with txt ending, check that file.'); - const output2 = await modelDialog.interrogate('Hi, use the list files tools and the read files tool on /readme.txt in same variations to test it. use the tools in parallel.'); + + + + const output2 = await modelDialog.interrogate('schau dich mal um und wenn du html dateien findest, dann invertiere den gradient.'); + + + + + + + + + + + + + + console.log('final output:',output2.output); console.log('reasoning:',output2.reasoning); //Ti: { 'gpt-5-2025-08-07': 3019 } Tc: { 'gpt-5-2025-08-07': 0 } To: { 'gpt-5-2025-08-07': 751 } diff --git a/modelDialog.js b/modelDialog.js index 06e291a..7e123dd 100644 --- a/modelDialog.js +++ b/modelDialog.js @@ -42,7 +42,8 @@ if (!Array.fromAsync) { } class ModelDialog { - constructor() { + constructor(options) { + this.options = options; this.messages = [systemprompt]; this.messagesSent = []; this.isActive = false; @@ -91,8 +92,11 @@ class ModelDialog { console.log(chalk.blue('sending messages:'),messagesToSend.length); //console.log(chalk.blue('messages:'),JSON.stringify(messagesToSend,null,2)); this.messagesSent.push(...messagesToSend); - - const model = 'gpt-5-mini'; + + const model = this.options.model || 'gpt-5-mini'; + if(!['gpt-5', 'gpt-5-mini', 'gpt-5-nano', 'gpt-4.1', 'gpt-4.1-mini'].includes(model)){ + throw new Error('Invalid model: ' + model); + } const call = { model: model, @@ -101,7 +105,8 @@ class ModelDialog { tools: Object.values(toolsByFile).map(t => t.def), store: true, previous_response_id: this.previousResponseId, - parallel_tool_calls: true + parallel_tool_calls: true, + include: ['reasoning.encrypted_content'] } if(model.startsWith('gpt-5')){ call.reasoning = { effort: 'low', summary: 'detailed' }; @@ -110,6 +115,7 @@ class ModelDialog { this.currentStream = openai.responses.stream(call); + this.currentStream.on('response.created', (event) => { this.previousResponseId = event.response.id; }); @@ -174,7 +180,9 @@ class ModelDialog { await Array.fromAsync(this.currentStream); + console.log(chalk.green('Tico'),[Object.values(this.inputTokens),Object.values(this.cachedTokens),Object.values(this.outputTokens)]); console.log(chalk.green('Do we need to loop? messages in array = '),this.messages.length) + } while(this.messages.length > 0); this.isActive = false;