From 7f25311d26f95cebd4825d00c005c2c3a477e908 Mon Sep 17 00:00:00 2001 From: Akarshan Date: Mon, 23 Jun 2025 16:32:26 +0530 Subject: [PATCH] Add tool type to chat completion requests --- .../browser/extensions/engines/AIEngine.ts | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/core/src/browser/extensions/engines/AIEngine.ts b/core/src/browser/extensions/engines/AIEngine.ts index a0ce5669c..c3288d241 100644 --- a/core/src/browser/extensions/engines/AIEngine.ts +++ b/core/src/browser/extensions/engines/AIEngine.ts @@ -22,10 +22,26 @@ export interface InputAudio { format: 'mp3' | 'wav' | 'ogg' | 'flac' // Add more formats as needed/llama-server seems to support mp3 } -export interface chatCompletionRequest { - model: string // Model ID, though for local it might be implicit via sessionInfo - messages: chatCompletionRequestMessage[] +export interface ToolFunction { + name: string; // Required: a-z, A-Z, 0-9, _, - (max length: 64) + description?: string; // Optional + parameters?: Record; // Optional: JSON Schema object + strict?: boolean | null; // Optional: defaults to false + type: 'function' +} +export interface ToolCall { + function: ToolFunction; +} + +export interface ToolDefinition { + tools?: ToolCall[]; +} + +export interface chatCompletionRequest { + model: string; // Model ID, though for local it might be implicit via sessionInfo + messages: chatCompletionRequestMessage[]; + tools?: ToolFunction[]; // Core sampling parameters temperature?: number | null dynatemp_range?: number | null