wdoc - 大量异构文档处理和总结

​wdoc​是一个功能强大的 RAG(检索增强生成)系统,旨在汇总、搜索和查询各种文件类型的文档。它对于处理大量不同的文档类型特别有用,非常适合处理大量信息源的研究人员、学生和专业人士。对所有其他用于查询或总结的 RAG 解决方案感到沮丧,因此将完美的解决方案放在一个包中。

​GitHub:GitHub - thiswillbeyourgithub/wdoc: Summarize and query from a lot of heterogeneous documents. Any LLM provider, any filetype, scalable (?), WIP

更多AI开源软件:发现分享好用的AI工具、AI开源软件、AI模型、AI变现 - 小众AI

主要功能

  • 旨在同时支持*任何*文件类型和来自所有文件类型的查询(已经实现了 15+!)

  • 高召回率和特异性:使用精心设计的嵌入搜索找到大量文档,然后使用语义批处理仔细地逐渐聚合每个答案,以生成一个答案,该答案提到源,指向源文档的确切部分。

  • 几乎支持任何 LLM 提供商,包括本地提供商,甚至为超级机密内容提供额外的安全层。

  • 同时使用昂贵和便宜的 LLM 来提高尽可能高的召回率,因为我们可以承受每个查询获取大量文档的费用(通过嵌入)

  • 最后,一个*有用的* AI 驱动的总结:获取作者的思考过程,而不是模糊的收获。

  • 可扩展,这既是一个工具,也是一个库。

  • **15+ 文件类型**:还支持组合递归加载或定义复杂的异构语料库,如文件列表、链接列表、正则表达式、YouTube 播放列表等。请参阅支持的文件类型。所有文件类型都可以无缝组合到同一个索引中,这意味着您可以在查询工作 PDF 的同时查询 anki 收藏夹。它也支持从音频文件和 youtube 视频中删除静音!

    **100+ LLM 和许多嵌入**:借助 litellm,支持 OpenAI、Mistral、Claude、Ollama、Openrouter 等的任何 LLM。支持的嵌入引擎列表可以在这里找到,但至少包括 Openai(或任何 openai API 兼容模型)、Cohere、Azure、Bedrock、NVIDIA NIM、Hugginface、Mistral、Ollama、Gemini、Vertex、Voyage。

    本地和私有 LLM:采取一些措施确保没有数据离开您的计算机并转到 LLM 提供商:不使用 API 密钥,所有密钥都是用户设置的,缓存与其他密钥隔离,传出连接通过过载套接字进行审查,等等。

安装和使用

*wdoc​ 主要是在 Python 3.11.7 上开发的,但我不确定所有可用的版本。如有疑问,请确保您的 Python 版本与此版本匹配。*

  1. 安装:

    • 使用 pip:pip install -U wdoc​

    • 或者获取特定的 git 分支:

      • ​dev​分支:pip install git+https://github.com/thiswillbeyourgithub/wdoc@dev​
      • ​main​分支:pip install git+https://github.com/thiswillbeyourgithub/wdoc@main​
    • 您还可以使用 uvx 或 pipx。但是由于我没有使用它们的经验,我不知道这是否会导致缓存等问题。请告诉我您是否测试过它!

      • 使用 uvx:uvx wdoc --help​
      • 使用 pipx:pipx run wdoc --help​
    • 无论如何,建议尝试使用 安装 pdftotext 并使用 添加 fasttext 支持。pip install -U wdoc[pdftotext]pip install -U wdoc[fasttext]​

    • 如果你打算做出贡献,你还需要 commit hooks。wdoc[dev]​

  2. 将后端的 API 密钥添加为环境变量:例如export OPENAI_API_KEY="***my_key***"​

  3. Launch 就像使用wdoc --task=query --path=MYDOC [ARGS]​

    • 如果由于某种原因失败,可以尝试使用 。如果一切都失败了,请尝试使用 ,或者作为最后的手段克隆这个 repo 并在里面再试一次?不要犹豫,打开一个 issue。python -m wdocuvx wdoc@latestcd​
    • 要获得 shell 自动补全:如果您使用的是 zsh:.还规定了 和 。您可以使用 生成自己的 .eval $(cat shell_completions/wdoc_completion.zsh)bashfishwdoc -- --completion MYSHELL > my_completion_file"​
    • 不要忘记,如果你使用大量文档(特别是通过递归文件类型),它可能需要很多时间(也取决于并行处理,但你可能会遇到内存错误)。
    • 查看 examples.md 以获取 shell 和 python 示例的列表。
  4. 要询问有关本地文档的问题:wdoc query --path="PATH/TO/YOUR/FILE" --filetype="auto"​

    • 如果要通过直接加载上一次运行的嵌入来减少启动时间(尽管无论如何都会缓存嵌入):add to the previous command 以将生成的嵌入保存到文件中,并在每次后续调用时替换为。--saveas="some/path"--loadfrom "some/path"​
  5. 有关更多信息,请阅读wdoc --help​

使用 wdoc 编写的脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值