2025-05-15 17:09:58 +07:00

57 lines
1.4 KiB
TypeScript

import { Assistant, AssistantExtension, ToolManager } from '@janhq/core'
import { RetrievalTool } from './tools/retrieval'
export default class JanAssistantExtension extends AssistantExtension {
async onLoad() {
// Register the retrieval tool
ToolManager.instance().register(new RetrievalTool())
}
/**
* Called when the extension is unloaded.
*/
onUnload(): void {}
async getAssistants(): Promise<Assistant[]> {
return [this.defaultAssistant]
}
/** DEPRECATED */
async createAssistant(assistant: Assistant): Promise<void> {}
async deleteAssistant(assistant: Assistant): Promise<void> {}
private defaultAssistant: Assistant = {
avatar: '',
thread_location: undefined,
id: 'jan',
object: 'assistant',
created_at: Date.now() / 1000,
name: 'Jan',
description: 'A default assistant that can use all downloaded models',
model: '*',
instructions: '',
tools: [
{
type: 'retrieval',
enabled: false,
useTimeWeightedRetriever: false,
settings: {
top_k: 2,
chunk_size: 1024,
chunk_overlap: 64,
retrieval_template: `Use the following pieces of context to answer the question at the end.
----------------
CONTEXT: {CONTEXT}
----------------
QUESTION: {QUESTION}
----------------
Helpful Answer:`,
},
},
],
file_ids: [],
metadata: undefined,
}
}