llmware是一个开源框架,专注于帮助开发者快速构建企业级检索增强生成(RAG)应用。它提供超过50个小型、专用的大语言模型(LLM),支持在本地或私有云环境中运行,特别适合金融、法律和合规等对数据安全敏感的行业。llmware集成了从数据处理到模型推理的完整工具链,开发者无需复杂配置即可连接企业知识库,执行问答、分类、提取等任务。它的设计目标是降低AI开发的门槛,让初学者和专业开发者都能快速上手。框架支持多种数据库和向量存储,运行效率高,甚至可在普通笔记本电脑上使用,无需昂贵的GPU服务器。llmware由AI Bloks公司开发,遵循Apache 2.0许可证,社区活跃,鼓励用户参与贡献。
功能列表
- RAG流水线:支持从知识源接入到生成式AI模型的完整生命周期管理。
- 50+专用模型:包括SLIM、DRAGON和BLING系列模型,分别优化问答、分类、提取等任务。
- 多数据库支持:兼容MongoDB、PostgreSQL、SQLite等文本数据库,以及Milvus、PGVector等10种向量数据库。
- 高效本地运行:可在普通PC上运行小型模型,无需GPU,降低成本。
- 知识源整合:支持PDF、网页、音频等多种数据源,自动处理并嵌入模型。
- 事实检查与审计:提供证据验证、事实核查和提示历史跟踪,减少模型幻觉。
- UI示例:提供交互式界面示例,帮助开发者快速构建应用。
- 自动化脚本:提供一键安装脚本,简化环境配置和示例运行。
使用帮助
安装流程
llmware的安装过程简单,支持通过PyPI或GitHub源码安装。以下是详细步骤:
- 通过PyPI安装:
- 打开终端,运行以下命令安装基础版本:
pip3 install llmware
- 如果需要完整功能(包括OCR、向量数据库等),运行:
pip3 install 'llmware[full]'
- 注意:完整安装会包含可选依赖,如
pymilvus
、pytesseract
等,适用于需要高级功能的用户。
- 打开终端,运行以下命令安装基础版本:
- 通过GitHub源码安装:
- 克隆llmware仓库:
git clone https://github.com/llmware-ai/llmware.git
- 进入项目目录:
cd llmware
- 运行自动化安装脚本,安装依赖并配置示例:
python3 welcome_to_llmware.py
- 该脚本会自动安装
requirements.txt
中的依赖,复制示例文件,并运行welcome_example.py
以快速体验。
- 克隆llmware仓库:
- 依赖环境要求:
- 确保系统安装了Python 3.8+。
- 对于OCR功能,需手动安装Tesseract(v5.3.3)和Poppler(v23.10.0)。
- 如果使用MongoDB,需确保
mongo-c-driver
版本低于1.24.4,避免分段错误。 - 调整系统栈大小(Linux环境下):
ulimit -s 160000
- 对于Docker用户,运行时设置栈大小:
docker run --ulimit stack=32768000:32768000
主要功能操作
1. 创建RAG应用
llmware的核心是构建RAG应用,以下是一个典型操作流程:
- 创建库:使用
Library
类创建知识库,存储文档。from llmware.library import Library lib = Library().create_new_library("my_library")
- 添加文件:将PDF、文本等文件导入库。
lib.add_files("/path/to/documents")
- 生成向量嵌入:使用嵌入模型(如
industry-bert-contracts
)生成向量。from llmware.retrieval import Query q = Query(lib) q.generate_embeddings("industry-bert-contracts")
- 执行查询:通过文本或语义查询检索信息。
results = q.text_search_by_page("contract termination", page_num=1)
- 调用模型:加载模型并结合查询结果生成回答。
from llmware.prompts import Prompt prompter = Prompt().load_model("llmware/dragon-yi-6b-gguf") prompter.add_source_query_results(results) response = prompter.prompt_with_source("What is the notice period for termination?")
2. 使用SLIM模型
SLIM模型专为特定任务设计,输出结构化数据(如JSON、SQL)。操作示例:
- 加载SLIM模型:
from llmware.prompts import Prompt prompter = Prompt().load_model("llmware/slim-sentiment")
- 执行推理:
response = prompter.prompt_main("This contract is favorable to us.") print(response) # 输出:{"sentiment": "positive"}
3. 事实检查与审计
llmware提供证据验证功能,确保回答准确:
- 验证回答:
stats = prompter.evidence_comparison_stats(response) print(stats) # 输出证据匹配度
- 保存交互历史:
prompter.save_state()
4. UI示例
llmware提供交互式界面示例,位于examples/UI/
目录:
- 运行示例:
python3 examples/UI/invoice_ui.py
- 该示例支持上传PDF发票,运行BLING模型进行问答。
特色功能操作
1. 多模型Agent工作流
SLIM模型支持多步骤Agent工作流。例如,结合sentiment
和intent
模型:
- 加载多个模型:
prompter1 = Prompt().load_model("llmware/slim-sentiment") prompter2 = Prompt().load_model("llmware/slim-intent")
- 执行多步骤推理:
text = "I want to cancel my subscription." sentiment = prompter1.prompt_main(text) # 输出:{"sentiment": "negative"} intent = prompter2.prompt_main(text) # 输出:{"intent": "cancellation"}
2. 合同分析
llmware的DRAGON模型优化了合同分析:
- 分析合同:
from llmware.library import Library from llmware.retrieval import Query lib = Library().create_new_library("contracts") lib.add_files("/path/to/contracts") q = Query(lib) results = q.text_query_with_document_filter("termination", {"file_source": "contract.pdf"}) prompter = Prompt().load_model("llmware/dragon-yi-6b-gguf") prompter.add_source_query_results(results) response = prompter.prompt_with_source("Summarize termination provisions")
3. 向量数据库集成
支持多种向量数据库,如Milvus:
- 配置Milvus:
curl -o docker-compose.yaml https://raw.githubusercontent.com/llmware-ai/llmware/main/docker-compose-redis-stack.yaml docker-compose up
- 生成嵌入:
q.generate_embeddings("industry-bert-contracts", vector_db="milvus")
应用场景
- 企业合同管理
llmware可用于分析大量合同,提取关键条款(如终止条款、付款条件)。企业可将合同导入库,使用DRAGON模型进行语义查询,快速生成条款摘要,适合法律团队提高效率。 - 财务数据处理
财务团队可利用SLIM模型分析发票或财务报告,提取关键字段(如金额、日期)。支持批量处理,生成结构化JSON输出,方便集成到ERP系统。 - 知识库问答
企业可构建内部知识库,结合BLING模型实现问答功能。员工可通过自然语言查询公司政策、流程等,模型返回精准答案并附证据来源。 - 本地AI部署
对于数据敏感行业,llmware支持在本地PC或私有云运行AI模型,避免数据外泄。适合银行、医疗机构等需要高安全性的场景。
QA
- llmware是否需要GPU运行?
不需要。llmware的BLING和SLIM模型优化为在CPU上运行,适合普通笔记本电脑。DRAGON模型可能需要更高性能硬件,但仍支持无GPU环境。 - 如何处理模型幻觉?
llmware提供事实检查和证据验证功能,通过evidence_comparison_stats
和evidence_check_sources
方法核查回答,确保与知识源一致。 - 支持哪些文件格式?
支持PDF、文本、CSV、JSON、音频、网页等多种格式。OCR功能可处理图片中的文本,适用于扫描文档。 - 如何参与llmware社区?
可通过GitHub提交问题或拉取请求,加入Discord频道(https://discord.com/invite/fCztJQeV7J)讨论,或查看贡献指南。