diff --git a/src/ts/process/files/multisend.ts b/src/ts/process/files/multisend.ts
index 66a30010..ffa38936 100644
--- a/src/ts/process/files/multisend.ts
+++ b/src/ts/process/files/multisend.ts
@@ -156,6 +156,28 @@ async function sendTxtFile(arg:sendFileArg) {
return Buffer.from(`\n${message}\n\n`).toString('base64')
}
+async function sendXMLFile(arg:sendFileArg) {
+ const hypa = new HypaProcesser('MiniLM')
+ let nodeTexts:string[] = []
+ const parser = new DOMParser();
+ const xmlDoc = parser.parseFromString(arg.file, "text/xml");
+ const nodes = xmlDoc.getElementsByTagName('*')
+ for(const node of nodes){
+ nodeTexts.push(node.textContent)
+ }
+ hypa.addText(nodeTexts)
+ const result = await hypa.similaritySearch(arg.query)
+ let message = ''
+ for(let i = 0; i5){
+ break
+ }
+ }
+ console.log(message)
+ return Buffer.from(`\n${message}\n\n`).toString('base64')
+}
+
type postFileResult = postFileResultImage | postFileResultVoid | postFileResultText
type postFileResultImage = {
@@ -211,6 +233,16 @@ export async function postChatFile(query:string):Promise{
name: file.name
}
}
+ case 'xml':{
+ return {
+ type: 'text',
+ data: await sendXMLFile({
+ file: BufferToText(file.data),
+ query: query
+ }),
+ name: file.name
+ }
+ }
case 'jpg':
case 'jpeg':
case 'png':