发布时间:2025-03-13 18:49:25编辑:123阅读(47)
大模型加知识库检索核心概念:
随着对大模型的了解深入,人们发现其在知识的时效性和生成内容的可靠性方面存在缺陷,因此大家就想到了与搜索引擎技术结合,先利用搜索的方式,尝试获取到最新的、具体相关的事实和数据,作为上下文背景知识,结合原始问题和Prompt一并给到大模型,增强模型自身的知识和内容生成,从而缓解内容幻觉和知识及时性的问题。这也就是目前很火的RAG(检索增强生成)
大模型加智库的核心技术:RAG架构
RAG架构介绍
RAG(Retrieval-Augmented Generation)架构是一种结合了知识检索和生成模型的智能架构,旨在通过外部知识检索来增强AI生成的内容准确性和相关性。 RAG架构有多种变体,每种变体在检索与生成的结合方式上有所不同,适用于不同的场景需求。以下是几种主要的RAG架构及其特点和适用场景:
Naive RAG 这是最基础的架构,包含简单的文档检索、处理和生成响应的流程。其优点是简单易实现,计算成本低,但容易出现事实错误或语义不一致,适用于基础的问答任务,对精度要求不高,数据量较小的情况。
Retrieve-and-rerank 基础RAG上增加了重排序步骤,可以优化检索结果的相关性,减少噪声数据的影响。适用于高精度问答,如法律文档、技术文档的精准查询和回答。
Multimodal RAG 能够处理多模态输入(文本、图像、视频等),利用多模态嵌入和生成模型进行检索和生成。适用于涉及多模态数据的问答,如电商推荐、图像描述生成、视频问答。
Graph RAG 将文档表示为图结构(图数据库),通过图节点和边的关联挖掘文档之间的语义和逻辑关系。适用于需要处理文档之间关系的任务。
Hybrid RAG 结合了多种技术的优势,包含图结构和传统检索方法,能够更好地理解文档间的关系。
Agentic RAG Router 使用AI Agent来路由和处理查询,选择最适合的处理路径。
Agentic RAG Multi-Agent 使用多个专门的AI Agent协同工作,可以调用不同的工具(如向量搜索、网页搜索、Slack、Gmail等)。
这些架构的多样性展示了技术的发展趋势,针对不同应用场景进行了优化设计。RAG架构的核心组件包括嵌入模型、生成模型、重排序模型、向量数据库等,这些组件共同作用,使得AI生成的内容更加准确和全面。
标准版RAG架构
标准RAG架构是RAG技术的基础版本,它将检索与生成结合起来,通过外部数据源增强语言模型的生成能力。在此架构下,系统会根据输入查询,从外部文档中检索相关信息,并将其与语言模型的生成能力结合,从而生成更符合上下文的回答,并且支持实时信息检索,能够在几秒内生成高质量的响应。
主要由三个概念组成
1 LLM(大语言模型) 是一种通过自监督学习方法利用大量未标注文本进行训练的语言模型。其核心思想是通过大规模的无监督训练学习自然语言的模式和结构,模拟人类的语言认知和生成过程。相比传统的NLP模型,LLM能够更好地理解和生成自然文本,同时表现出一定的逻辑思维和推理能力。
2 Embedding(嵌入) 通过一个专门的模型来把你上传的txt,excel,word,pdf,csv,json,视频,图片,语音等本地文件处理成机器能理解的“数字代码”(向量化),相似的文本在这个向量空间中距离会更近。
3 Vector Database(向量数据库) 用来存储上一步处理好的“数字代码”的数据库,它能够高效的存储和检索这些向量。
上面三个概念的协作就组成了RAG架构。
AnythingLLM介绍
AnythingLLM支持几乎所有的主流大模型和多种文档类型,具有高度可配置性和多用户管理功能,能够轻松地将文档,
资源或内容片段转化为大语言模型(LLM)在聊天中可以利用的相关上下文
主要功能和使用场景
文档处理:AnythingLLM能够将任何文档、资源(如网址链接、音频、视频)或内容片段转换为个人知识库,供LLM在聊天过程中作为参考
多用户管理 支持多用户管理和权限设置,允许用户灵活选择使用不同的大语言模型和向量数据库,满足个性化需求
隐私保护 高度重视用户数据的隐私与安全,所有文档和信息都存储在本地机器上,确保数据不会泄露或与其他用户共享
高度可配置性 用户可以根据具体需求定制模型和插件,扩展其功
anythingllm官网地址:https://anythingllm.com/ 选择对应的操作系统版本下载即可.
打开anythingllm选择ollama模型,会自动读取本地已安装的模型
下一步
下一步
下一步
进去之后,点击设置
点击设置语言,可以改为中文
初始完成后,测试一下是否正常
知识库设置,知识库的质量决定了模型回答是否准确。ai友好的数据结构应该是层次清晰,易于检索。
这里为了方便测试,使用之前硅基流动的页面(不清楚的可以看上一篇文章:http://www.py3study.com/Article/details/id/20085.html)
让Ai帮我们生成一组测试的基础数据
点击在线体验
让Ai帮生成一组基于测试的数据
用户信息
ID 用户名 真实姓名 邮箱 手机号
1 用户1 张三 zhangsan@123.com 1234567890
2 用户2 李四 lisi@4567.com 2345678901
3 用户3 王五 wang5@7890.com 3456789012
4 用户4 陈六 chen6@0123.com 4567890123
5 用户5 赵七 zhuo7@4567.com 5678901234
产品信息
ID 产品名称 价格 销量 评论数 上架时间 库存量 促销信息
1 书包 88 200 150 2023-01-01 50 满500减50
2 耳机 199 180 120 2023-01-02 30 限时抢购:100元抵150元
3 洗衣机 1299 50 30 2023-01-03 20 送运费险
4 电饭煲 599 300 200 2023-01-04 100 打八折
5 手机 2999 80 50 2023-01-05 10 首单立减500元
订单信息
ID 用户ID 产品ID 支付方式 订单状态 金额
1 1 1 银行卡 已完成 880
2 2 2 支付宝 已完成 199
3 3 3 银行卡 已完成 1299
4 4 4 支付宝 已完成 599
5 5 5 银行卡 已完成 2999
评价信息
ID 订单ID 用户ID 评价内容 评分
1 1 1 好东西,质量不错,推荐! 5
2 2 2 音质很好,性价比高! 5
3 3 3 用了之后效果很好! 4
4 4 4 服务很好,快递及时! 5
5 5 5 价格合适,质量很好! 5
收藏信息
ID 订单ID 用户ID 时间
1 1 1 2023-01-05 10:00:00
2 2 2 2023-01-04 15:00:00
3 3 3 2023-01-03 09:00:00
4 4 4 2023-01-02 12:00:00
5 5 5 2023-01-01 14:00:00
短信信息
ID 用户ID 短信内容 发送时间
1 1 "您好,您的书包已送达,请注意查收。" 2023-01-05 09:00:00
2 2 "您的耳机已发货,预计明天送达。" 2023-01-04 10:00:00
3 3 "感谢您的关注,商品已发送。" 2023-01-03 11:00:00
4 4 "您的订单已处理,请查看。" 2023-01-02 12:00:00
5 5 "收到您的订单,请注意查收。" 2023-01-01 13:00:00
优惠信息
ID 产品ID 优惠内容 优惠时间 优惠人数 折扣率
1 1 满500减50 2023-01-01 到2023-01-05 100 0.8
2 2 限时抢购:100元抵150元 2023-01-02 到2023-01-04 50 0.666
3 3 送运费险 2023-01-03 到2023-01-07 200 0.8
商品信息
ID 商品名称 价格 销量 评论数 上架时间 库存量 促销信息
1 书包 88 200 150 2023-01-01 50 满500减50
2 耳机 199 180 120 2023-01-02 30 限时抢购:100元抵150元
3 洗衣机 1299 50 30 2023-01-03 20 送运费险
4 电饭煲 599 300 200 2023-01-04 100 打八折
5手机299980502023-01-0510首单立减500元
也可以使用自己的数据,有了数据后,返回anythingllm ,在桌面新建一个text_data.txt的文件把数据复制进去保存,点击上传图标上传上去,(相当于有了自己私有数据,可以AI根据私有数据进行回答)
点击云图标
选择text_data文件上传,点击move to workspace
点击save and embed上传
返回提问页面进行测试
ID1的邮箱,支付方式,购买的商品,商品价格,商品上架时间,商品库存量
然后与文本里面的内容对比
可以看到模型很准确的回答出了问题
现在相当于拥有了一个带本地数据库的可以联网的大模型,而且完全不用担心本地数据信息泄露,卡顿,付费等这些问题。
但是在客户端下使用还是太局限了,anythingllm本身也支持API调用能力,这样的话我们就可以通过代码来灵活的指定使用场景,可以做很多的事情,比如说去搭建私人的知识管理工具,可以去搭建企业内部的智能客服等等。
AnythingLLM API使用
点击anythingllm的设置,工具里面创建API密钥
API文档
复制密钥点击验证
把api密钥贴进去
测试接口
python代码如下:
import requests def main(): url = 'http://localhost:3001/api/v1/workspace/my_text' headers = {'accept': 'application/json', 'Authorization': 'Bearer xxxxxxxxxxxxxxxxxx'} r = requests.get(url=url, headers=headers, timeout=30) print(r.json()) if __name__ == '__main__': main()
返回结果如下
上一篇: Ai之本地部署大模型超详细-实战1
下一篇: 没有了
48217
46972
37882
35172
29691
26353
25296
20309
19983
18440
47°
43°
74°
6071°
6784°
6270°
6240°
7363°
6190°
6320°