2026年7月9日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

企业级 RAG 应用程序的终极工具包

发布日期:2024-12-01 22:34:45 浏览次数: 2696
作者:数翼

微信搜一搜,关注“数翼”

llmware 是一个集成框架,具有 50+ 多个小型、专业、开源模型, 用于快速开发基于 LLM 的应用程序,包括 Retrieval Augmented Generation (RAG) 和代理工作流的多步骤编排。

适用谁

该项目提供了一套全面的工具,任何人都可以使用,从初学者到最老练的 AI 开发人员,都可以快速构建工业级、基于知识的企业 LLM 应用程序。

概述

llmware 提供一个统一的框架,用于构建基于 LLM 的应用程序(例如 RAG、代理), 使用小型专用模型,这些模型可以私密部署,安全可靠地与企业知识库集成,并且经济高效地调整和适应任何业务流程。

llmware 有两个主要组件:

  • • RAG Pipeline - 用于将知识源连接到生成式 AI 模型的整个生命周期的集成组件;和

  • • 50+ 小型专用模型,针对企业流程自动化中的关键任务进行了微调,包括基于事实的问答、分类、总结和提取。

通过将这两个组件结合在一起,并集成领先的开源模型和底层技术,提供了一套全面的工具来快速构建基于知识的企业 LLM 应用程序。llmware

主要模块

llmware 的主要组件包括:

  • • Model Catalog

  • • RAG Optimized Models

  • • Agents

  • • SLIM Models

  • • Embedding Models

  • • Library

  • • Query

  • • Data Stores

  • • Prompt with Sources

  • • Vector Databases

  • • Agent Inference Server

  • • GGUF

通过这些组件可以实现我们 RAG 应用中的所有功能。下面简单介绍一下。

模型目录

通过轻松查找以相同的方式访问所有模型,而不管底层实现如何。

  • • 目录中的 150+ 型号,包括 50+ RAG 优化模型

  • • 18 个用于 Agent 用例的 SLIM 函数调用小语言模型

  • • 完全支持 GGUF、HuggingFace、Sentence Transformers 和基于 API 的主要模型

  • • 易于扩展以添加自定义模型

from llmware.models import ModelCatalog
from llmware.prompts import Prompt

#   all models accessed through the ModelCatalog
models = ModelCatalog().list_all_models()

#   to use any model in the ModelCatalog - "load_model" method and pass the model_name parameter
my_model = ModelCatalog().load_model("llmware/bling-phi-3-gguf")
output = my_model.inference("what is the future of AI?", add_context="Here is the article to read")

#   to integrate model into a Prompt
prompter = Prompt().load_model("llmware/bling-tiny-llama-v0")
response = prompter.prompt_main("what is the future of AI?", context="Insert Sources of information")

RAG 优化模型

1-7B 参数的 RAG 优化模型,专为 RAG 工作流集成而设计,可在本地流畅运行。

  • • SLIM 系列:针对函数调用和多步骤、多模型代理工作流程进行微调的小型专用模型。

  • • DRAGON 系列生产级 RAG 优化的 6-7B 参数模型。

  • • BLING 系列:基于 CPU 的小型 RAG 优化、遵循指令的 1B-3B 参数模型。

  • • 行业 BERT 模型:开箱即用的自定义训练句子转换器嵌入模型,针对以下行业进行了微调:保险、合同、资产管理、SEC。

  • • GGUF 量化:提供许多 SLIM、DRAGON 和 BLING 模型的“gguf”和“工具”版本,并针对 CPU 部署进行了优化。

代理 Agents

llmware 旨在使用专为本地和私有部署而设计的小型语言模型实现基于 Agent 和 LLM 的函数调用, 并能够利用开源模型来执行复杂的 RAG 和基于知识的工作流程自动化。

llmware 中的关键元素:

  • • SLIM 模型 - 18 个函数调用小语言模型,针对特定的提取、分类、生成或摘要活动进行了优化,并生成 python 词典和列表作为输出。

  • • LLMfx 类 - 支持各种基于代理的流程。

嵌入模型

llmware 在默认 ModelCatalog 中支持 30+ 开箱即用的嵌入模型, 并且可以轻松扩展以从 HuggingFace 或 Sentence Transformers 添加其他流行的开源嵌入模型。

要获取当前支持的嵌入模型的列表,请执行以下操作:

from llmware.models import ModelCatalog
embedding_models = ModelCatalog().list_embedding_models()
for i, models in enumerate(embedding_models):
print(f"embedding models: {i} - {models}")

支持的热门模型包括:

  • • Sentence Transformers - all-MiniLM-L6-v2all-mpnet-base-v2

  • • Jina AI - jinaai/jina-embeddings-v2-base-enjinaai/jina-embeddings-v2-small-en

  • • Nomic - nomic-ai/nomic-embed-text-v1

  • • Industry BERT - industry-bert-insuranceindustry-bert-contractsindustry-bert-asset-managementindustry-bert-secindustry-bert-loans

  • • OpenAI - text-embedding-ada-002text-embedding-3-smalltext-embedding-3-large

llmware 中的嵌入模型可以直接由 安装,但在大多数情况下, 在创建新嵌入时,嵌入模型的名称将传递给 Library 类中的处理程序。 一旦完成,嵌入模型将作为该库的嵌入记录的一部分捕获到 LibraryCard 上的 Library 元数据中, 因此,通常不需要再次显式使用,例如,

from llmware.library import Library

library = Library().create_new_library("my_library")

# parses the content from the documents in the file path, text chunks and indexes in a text collection database
library.add_files(input_folder_path="/local/path/to/my_files", chunk_size=400, max_chunk_size=600, smart_chunking=1)

# creates embeddings - and keeps synchronized records of which text chunks have been embedded to enable incremental use
library.install_new_embedding(embedding_model_name="jinaai/jina-embeddings-v2-small-en"
                              vector_db="milvus",
                              batch_size=100)

库 Library

Library 是 LLMWare 中非结构化信息的主要组织结构。 用户可以创建一个包含所有类型不同内容的大型库, 也可以创建多个库,每个库都包含有关特定主题、项目/案例/交易,甚至不同帐户/用户/部门的特定逻辑信息集合。

每个库都由以下组件组成:

  1. 1. 数据库上的集合 - 这是库的核心,通过解析文档创建,然后在文本集合数据库中自动分块和索引。这是检索的基础,也是将用作跟踪可附加到库集合的任意数量的向量嵌入的基础的集合。

  2. 2. 文件存档 - 位于 llmware_data 路径中,在 帐户 中,每个库都有一个文件夹结构。库的所有基于文件的工件都组织在这些文件夹中,包括库中添加的所有文件的副本(对于基于检索的应用程序非常有用)、从源文档中提取和索引的图像,以及派生的工件,例如 nlp 和知识图谱和数据集。

  3. 3. Library Catalog - 每个 Library 都在 LibraryCatalog 表中注册,并具有唯一的library_card,其中包含 Library 的关键属性和统计信息。

当 Library 对象传递给解析器时,解析器会自动将所有信息路由到 Library 结构中。

该库还提供了方便的方法,可以轻松地在库上安装嵌入,包括跟踪增量进度。

要解析为 Library,有非常有用的便捷方法 add_files,它将调用 Parser, 整理和路由所选文件夹路径中的文件,检查重复文件,执行解析,文本分块和插入数据库,并自动更新所有 Library 状态。

库是执行 Query 时使用的主要索引结构。在构造 Query 对象时传递 library 对象, 然后将仅针对该 Library 中的内容执行所有检索(文本、语义和混合)。

检索和查询

检索和查询是混合了文本、语义、混合、元数据和自定义筛选器的查询库。

retrieval.py 模块实现该类,这是执行搜索和检索的主要方式。 每个对象在构造时都需要在构造函数中将 Library 作为必需参数传递。 Query 对象将针对该 Library 进行操作,并可以访问 Library 的所有特定属性、元数据和方法。

llmware 中的检索利用库抽象作为执行特定查询或检索的主要单元。这提供了拥有多个不同知识库的能力, 这些知识库可能与不同的用例和/或用户、账户和权限保持一致。

#   step 1 - load a previously created library
lib = Library().load_library("my_library")

#   step 2 - create a query object
q = Query(lib)

#    step 3 - run lots of different queries  (many other options in the examples)

#    basic text query
results1 = q.text_query("text query", result_count=20, exact_mode=False)

#    semantic query
results2 = q.semantic_query("semantic query", result_count=10)

数据存储

数据存储易于扩展的数据库选项 - 可以实现从笔记本电脑到并行集群的集成数据存储。

支持了市面上常见的向量库:

from llmware.configs import LLMWareConfig

#   to set the collection database - mongo, sqlite, postgres  
LLMWareConfig().set_active_db("mongo")  

#   to set the vector database (or declare when installing)  
#   --options: milvus, pg_vector (postgres), redis, qdrant, faiss, pinecone, mongo atlas  
LLMWareConfig().set_vector_db("milvus")  

#   for fast start - no installations required  
LLMWareConfig().set_active_db("sqlite")  
LLMWareConfig().set_vector_db("chromadb")   # try also faiss and lancedb  

#   for single postgres deployment  
LLMWareConfig().set_active_db("postgres")  
LLMWareConfig().set_vector_db("postgres")

Prompt with Sources

Prompt with Sources:将知识检索与 LLM 推理相结合的最简单方法,并提供了几种高级有用的方法, 可以轻松地将检索/查询/解析步骤集成到 Prompt 中,以用作在模型上运行推理的来源。

from llmware.prompts import Prompt

#   build a prompt and attach a model
prompter = Prompt().load_model("llmware/bling-tiny-llama-v0")

#   add_source_document method: accepts any supported document type, parses the file, and creates text chunks
#   if a query is passed, then it will run a quick in-memory filtering search against the text chunks
#   the text chunks are packaged into sources with all of the accompanying metadata from the file, and made 
#   available automatically in batches to be used in prompting -

source = prompter.add_source_document("/folder/to/one/doc/""filename", query="fast query")

#   to run inference with 'prompt with sources' -> source will be automatically added to the prompt
responses = prompter.prompt_with_source("my query")

#   depending upon the size of the source (and batching relative to the model context window, there may be more than 
#   a single inference run, so unpack potentially multiple responses

for i, response in enumerate(responses):
    print("response: ", i, response)

总结

在本文中,我们简单介绍了 llmware 的基本概念和功能, 这些功能模块涉及到了我们编写 AI 应用程序的核心模块,后面我们一起看下怎么使用 llmware 来实现人工智能应用。


53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅