41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
import { getJanDataFolderPath, normalizeFilePath } from '@janhq/core/node'
|
|
import { retrieval } from './retrieval'
|
|
import path from 'path'
|
|
|
|
export function toolRetrievalUpdateTextSplitter(
|
|
chunkSize: number,
|
|
chunkOverlap: number
|
|
) {
|
|
retrieval.updateTextSplitter(chunkSize, chunkOverlap)
|
|
}
|
|
export async function toolRetrievalIngestNewDocument(
|
|
file: string,
|
|
model: string,
|
|
engine: string
|
|
) {
|
|
const filePath = path.join(getJanDataFolderPath(), normalizeFilePath(file))
|
|
const threadPath = path.dirname(filePath.replace('files', ''))
|
|
retrieval.updateEmbeddingEngine(model, engine)
|
|
return retrieval
|
|
.ingestAgentKnowledge(filePath, `${threadPath}/memory`)
|
|
.catch((err) => {
|
|
console.error(err)
|
|
})
|
|
}
|
|
|
|
export async function toolRetrievalLoadThreadMemory(threadId: string) {
|
|
return retrieval
|
|
.loadRetrievalAgent(
|
|
path.join(getJanDataFolderPath(), 'threads', threadId, 'memory')
|
|
)
|
|
.catch((err) => {
|
|
console.error(err)
|
|
})
|
|
}
|
|
|
|
export async function toolRetrievalQueryResult(query: string) {
|
|
return retrieval.generateResult(query).catch((err) => {
|
|
console.error(err)
|
|
})
|
|
}
|