跳转到主要内容

轻松创建基于语义搜索的LLM应用程序

项目描述

LangSearch: 轻松创建基于语义搜索的LLM应用程序

这是什么?

LangSearch是一个用于检索增强生成(RAG)的Python包,它有助于利用ChatGPT等大型语言模型(LLM)在非公开数据上的力量。与其他仅关注检索和生成的包不同,此包还负责数据发现(例如爬取)、数据持久化(更新数据时)和数据预处理。这意味着您可以快速开始实际用例,无需太多的配置。

此包站在巨人的肩膀上,并使用以下知名Python包和开源工具来完成繁重的工作。

  • Scrapy用于爬取
  • Apache Tika用于文本提取(支持超过1000种MIME类型)
  • Mozilla Readability用于减少样板代码
  • Inscriptis用于从HTML中提取文本
  • OpenAI Whisper用于音频和视频转录
  • Weaviate向量数据库用于语义搜索
  • Langchain用于RAG

LangSearch可定制和可扩展。几乎每个方面都可以通过设置进行修改。它还支持设置自定义爬虫和自定义预处理器。

展示代码

例如,对LangChain文档进行RAG的代码非常简单。

crawler.py

from langsearch.spiders import WebSpider


class Crawler(WebSpider):
    name = "langchain"

settings.py

from langsearch.pipelines import assemble, DetectItemTypePipeline, GenericHTMLPipeline

LANGSEARCH_WEB_SPIDER_START_URLS = ["https://python.langchain.ac.cn/docs/get_started/introduction"]
LANGSEARCH_WEB_SPIDER_LINK_EXTRACTOR_ALLOW = [
    "https://python\.langchain\.com/docs/get_started",
    "https://python\.langchain\.com/docs/modules",
    "https://python\.langchain\.com/docs/guides",
    "https://python\.langchain\.com/docs/ecosystem",
    "https://python\.langchain\.com/docs/additional_resources"
]
AUTOTHROTTLE_ENABLED = True

ITEM_PIPELINES = {
    DetectItemTypePipeline: 100,
    **assemble(GenericHTMLPipeline)
}

在命令行中

>>> from langsearch.chains import QAChain
>>> chain_output = QAChain()({"question": "How can I install langchain?"})
>>> print(chain_output["output_text"])
To install LangChain, you can use either conda or pip. 

If you prefer using conda, you can run the following command:

conda install langchain -c conda-forge

If you prefer using pip, there are two options depending on the modules you need. 

To install the modules needed for the common LLM providers, you can run:

pip install langchain[llms]

To install all modules needed for all integrations, you can run:

pip install langchain[all]

Note that if you are using zsh, you'll need to quote square brackets when passing them as an argument to a command. For example:

pip install 'langchain[all]'

安装

pip install langsearch

文档

我们的文档(WIP)可以在 这里 找到。代码示例位于顶级 examples 文件夹中。

功能

  1. 自动和可定制的网站和本地数据发现(爬取)
  2. 支持包括html、pdf、docx、txt、png、mp3、mp4等超过1000种MIME类型。
  3. 包含电池的预处理数据管道
  4. 爬取数据持久化,以便您能够高效地与数据保持同步
  5. 使用text2vec-transformers模型(用于文本)和CLIP模型进行图像嵌入。
  6. 简单的QA和HyDE等RAG方法

待办事项

  • 改进文档
  • 编写测试
  • 制作CI管道以进行代码风格检查、构建和测试
  • 在传入数据上微调语言模型
  • 处理元数据并在检索中使用它
  • 在开始爬取之前允许身份验证(登录)
  • 支持PageRank + 向量相似度分数 + BM25组合
  • Frontera集成?
  • 设置GUI
  • 图像中的重复检测
  • QA中的集成方法

贡献

我们非常高兴从社区中获得贡献。请随意尝试此包,提交错误报告,提交拉取请求(即使是改进文档也大有帮助)。如果您需要任何帮助,请随时通过dibyachakravorty@gmail.com联系我。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

langsearch-0.1.9.tar.gz (18.5 kB 查看散列)

上传时间 源代码

构建分发

langsearch-0.1.9-py2.py3-none-any.whl (37.3 kB 查看散列)

上传时间 Python 2 Python 3

支持者