小众AI

wdoc
wdoc - 大量异构文档处理和总结
一个功能强大的 RAG(检索增强生成)系统,旨在汇总、搜索和查询各种文件类型的文档。
  官网   代码仓

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

主要功能

  • 旨在同时支持任何文件类型和来自所有文件类型的查询(已经实现了 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 编写的脚本


更多...


ai-financial-agent
探索人工智能在投资研究中的应用。
Meetily
一个 AI 驱动的会议助手,可捕获实时会议音频、实时转录并生成摘要,同时确保用户隐私。
watermark-removal
使用基于机器学习的图像修复方法从图像中去除水印,这与图像的真实版本完全没有区别。