处理知识库文件
最近在做部门知识库,选用的dify,作为rag的工具,但是经过多个对比,最后发现,
比较好用的是,纳米搜索,但是可惜纳米搜索无法在内网使用,无法把知识库放到本地,导致
有信息安全问题无法使用。
再则,知识库文件导入的时候,测试发现excel文件,直接导入,不如直接转换成pdf文件导入效果要好,纳米搜索对文档的解析,效果更好一些。但是转换pdf文件,如果使用微软的excel,效果不好,只能转换当前页,使用wps效果很好,可以转换所有页,但是,一个一个的去转换效果太慢了。所以自己就做了一个批量,把excel文件转换为pdf的脚本,其实就是一个powershell的脚本文件,直接右键运行就可以了。运行之前,先打开一个excel文件,待处理的。
然后等待脚本自动处理就可以了。
# 利用wps自动保存为pdf # 做知识库用,知识库中对pdf的支持会更好一些。AutoKeyPress.ps1 Add-Type -TypeDefinition @' using System; using System.Runtime.InteropServices; # Mouse鼠标操作 public class MouseAction { [DllImport("user32.dll")] public static extern bool SetCursorPos(int X, int Y); [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, UIntPtr dwExtraInfo); private const uint MOUSEEVENTF_LEFTDOWN = 0x02; private const uint MOUSEEVENTF_LEFTUP = 0x04; private const uint MOUSEEVENTF_RIGHTDOWN = 0x08; private const uint MOUSEEVENTF_RIGHTUP = 0x10; public static void LeftClick() { mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, UIntPtr.Zero); } public static void RightClick() { mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, UIntPtr.Zero); } public static void LeftClickAt(int x, int y) { SetCursorPos(x, y); mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, UIntPtr.Zero); } public static void RightClickAt(int x, int y) { SetCursorPos(x, y); mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, UIntPtr.Zero); } } '@ $WShell = New-Object -ComObject wscript.shell while($true) { Start-Sleep -Seconds 4 # Alt+F 先打开一个文件excel,然后,在文件列表选中最后一个,他会一个个向上处理 # 打开文件以后,首先按下alt+f 打开文件 菜单 $WShell.SendKeys("%f") Start-Sleep -Seconds 2 # A 按下A,选中另存为 $WShell.SendKeys("a") Start-Sleep -Seconds 1 # M 按下M,打开另存为的窗口 $WShell.SendKeys("m") Start-Sleep -Seconds 1 # Tab 然后tab选中要保存的格式选项 $WShell.SendKeys("{TAB}") Start-Sleep -Seconds 1 # End 找到pdf格式 $WShell.SendKeys("{END}") Start-Sleep -Seconds 1 # Alt+S 保存pdf文件开始 $WShell.SendKeys("%s") Start-Sleep -Seconds 6 # Enter 关闭 pdf保存完成窗口 保存以后关闭pdf窗口 $WShell.SendKeys("{ENTER}") Start-Sleep -Seconds 1 #关闭当前文档 处理以后 关闭当前文档 $WShell.SendKeys("^w") Start-Sleep -Seconds 1 #然后按下n,关闭当前文档 $WShell.SendKeys("n") Start-Sleep -Seconds 1 # Alt+Tab # 然后按下alt+tab这个不用了,之前用的 #$WShell.SendKeys("%{TAB}") #Start-Sleep -Seconds 3 #然后打开运行窗口 # 创建 Shell.Application 对象并调用 FileRun 方法 # 这里是打开运行,运行中注意,默认要显示需要打开的文件夹 $shell = New-Object -ComObject "Shell.Application" $shell.FileRun() Start-Sleep -Seconds 1 #这里就打开对应的运行显示的文件夹 运行中要提前把对应的文件夹路径贴里面去 $WShell.SendKeys("{ENTER}") Start-Sleep -Seconds 1 #按下鼠标左键,选中当前的文件 # 左键单击当前位置 #[MouseAction]::LeftClick() # 发送Alt+D(定位到地址栏) #这个是为了定位到文件列表 $wshell.SendKeys("%d") Start-Sleep -Milliseconds 200 # 发送3次Tab键(切换到文件列表) $wshell.SendKeys("{TAB}") Start-Sleep -Milliseconds 100 $wshell.SendKeys("{TAB}") Start-Sleep -Milliseconds 100 $wshell.SendKeys("{TAB}") #向上选择 处理下一个文件 # Up Arrow $WShell.SendKeys("{UP}") Start-Sleep -Seconds 2 #按下enter打开下一个文件 # Enter $WShell.SendKeys("{ENTER}") # 停顿2秒 Start-Sleep -Seconds 2 }
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。