From e41dfc4520af1e57b55ffe62ff7e40c9fc1ca908 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tetsing?= Date: Mon, 26 Aug 2024 18:17:30 +0200 Subject: [PATCH] updated llama31 prompts --- .../src/lib/InferenceServerManager.ts | 28 +++++++++++++++---- .../src/inferencers/remote/remoteInference.ts | 2 +- .../src/prompts/promptBuilder.ts | 4 +-- libs/remix-ai-core/src/types/models.ts | 2 +- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/apps/remixdesktop/src/lib/InferenceServerManager.ts b/apps/remixdesktop/src/lib/InferenceServerManager.ts index 7fc090951a..02d992f700 100644 --- a/apps/remixdesktop/src/lib/InferenceServerManager.ts +++ b/apps/remixdesktop/src/lib/InferenceServerManager.ts @@ -243,6 +243,23 @@ export class InferenceManager implements ICompletions { } + private async _handleExistingServer() { + // check if the server is already running, kill it + try { + const options = { headers: { 'Content-Type': 'application/json', } } + const state = await axios.get(this.inferenceURL+"/state", options) + + if (state.data?.status) { + console.log('Found existing Inference server running') + this.stopInferenceServer() + await axios.post(this.inferenceURL+"/kill", options) + } + } catch (error) { + // catch connection refused + console.log('No existing Inference server running') + } + } + private async _startServer() { const serverAvailable = await this._downloadInferenceServer() if (!serverAvailable) { @@ -250,6 +267,9 @@ export class InferenceManager implements ICompletions { return } + // kill existing server if running + this._handleExistingServer() + return new Promise((resolve, reject) => { let serverPath = "" try { @@ -274,7 +294,7 @@ export class InferenceManager implements ICompletions { const spawnArgs = [this.port]; - console.log(`Spawning process: ${serverPath} ${spawnArgs.join(' ')}`); + // console.log(`Spawning process: ${serverPath} ${spawnArgs.join(' ')}`); this.inferenceProcess = spawn(serverPath, spawnArgs); this.inferenceProcess.stdout.on('data', (data) => { @@ -455,11 +475,11 @@ export class InferenceManager implements ICompletions { } let modelOP = undefined for (const model of this.selectedModels) { - if (model?.modelOP) { + if (model.modelType === ModelType.GENERAL) { modelOP = model.modelOP } } - const prompt = buildSolgptPromt(userPrompt, this.selectedModels[0]?.modelOP) + const prompt = buildSolgptPromt(userPrompt, modelOP) if (GenerationParams.stream_result) { return this._streamInferenceRequest('solidity_answer', { prompt, ...params }) @@ -468,6 +488,4 @@ export class InferenceManager implements ICompletions { } } - // kill dangling process making use of the port - } \ No newline at end of file diff --git a/libs/remix-ai-core/src/inferencers/remote/remoteInference.ts b/libs/remix-ai-core/src/inferencers/remote/remoteInference.ts index 1c35c3373e..a23c0481db 100644 --- a/libs/remix-ai-core/src/inferencers/remote/remoteInference.ts +++ b/libs/remix-ai-core/src/inferencers/remote/remoteInference.ts @@ -10,7 +10,7 @@ export class RemoteInferencer implements ICompletions { api_url: string completion_url: string max_history = 7 - model_op = RemoteBackendOPModel.DEEPSEEK + model_op = RemoteBackendOPModel.DEEPSEEK // default model operation change this to llama if necessary event: EventEmitter constructor(apiUrl?:string, completionUrl?:string) { diff --git a/libs/remix-ai-core/src/prompts/promptBuilder.ts b/libs/remix-ai-core/src/prompts/promptBuilder.ts index 89b48701b0..0fab3837c9 100644 --- a/libs/remix-ai-core/src/prompts/promptBuilder.ts +++ b/libs/remix-ai-core/src/prompts/promptBuilder.ts @@ -2,7 +2,7 @@ import { RemoteBackendOPModel } from "../types/types" import { ChatHistory } from "./chat" export const PromptBuilder = (inst, answr, modelop) => { - if (modelop === RemoteBackendOPModel.CODELLAMA) return "" + if (modelop === RemoteBackendOPModel.CODELLAMA) return `<|start_header_id|>user<|end_header_id|>${inst}<|eot_id|><|start_header_id|>assistant<|end_header_id|> ${answr}` if (modelop === RemoteBackendOPModel.DEEPSEEK) return "\n### INSTRUCTION:\n" + inst + "\n### RESPONSE:\n" + answr if (modelop === RemoteBackendOPModel.MISTRAL) return "" } @@ -22,7 +22,7 @@ export const buildSolgptPromt = (userPrompt:string, modelOP:RemoteBackendOPModel else newPrompt += PromptBuilder(question, answer, modelOP) } // finaly - newPrompt = "sol-gpt " + newPrompt + PromptBuilder(userPrompt.split('sol-gpt')[1], "", modelOP) + newPrompt = "sol-gpt " + newPrompt + PromptBuilder(userPrompt.split('gpt')[1], "", modelOP) return newPrompt } } \ No newline at end of file diff --git a/libs/remix-ai-core/src/types/models.ts b/libs/remix-ai-core/src/types/models.ts index 3d669e5c0d..e3ed62fe74 100644 --- a/libs/remix-ai-core/src/types/models.ts +++ b/libs/remix-ai-core/src/types/models.ts @@ -75,7 +75,7 @@ const GenerationParams:IParams = { topK: 40, topP: 0.92, max_new_tokens: 2000, - stream_result: true, + stream_result: false, } export { DefaultModels, CompletionParams, InsertionParams, GenerationParams } \ No newline at end of file