什么是RAG?

RAG 是 "Retrieval-Augmented Generation" 的缩写,这是一种结合信息检索和生成模型的自然语言处理技术。RAG 模型通常用于提高生成模型在特定任务(如问答、对话生成等)中的性能。

1.大模型的缺陷

知识局限性:缺少垂直领域/非公开知识

知识时效性:训练周期长,成本高

幻觉问题:模型生成的内容与现实世界事实或用户输入不一致

2.RAG系统工作流程图解:

3.向量检索

3.1 检索的方式

1.关键字搜索:通过用户输入的关键字来查找文本数据。

2.语义搜索:不仅考虑关键字的匹配,还考虑词汇之间的语义(文字,语音,语词...)关系,以提供更精准的搜索。

3.2向量与Embeddings(嵌入)的定义

1.向量:向量是一个具有大小和方向的数学对象,通常被表示为有序的数值列表。向量可以存在于任意维度中.

2.Embeddings(嵌入):嵌入是将高维数据映射到低维空间的技术,通常用于捕捉数据中的潜在关系和语义信息。嵌入在自然语言处理中特别常见,用于将单词、句子或其他离散数据表示为向量。

- 词嵌入(Word Embeddings):如Word2Vec、GloVe等模型,将单词转换为固定长度的向量,使得语义相似的单词在向量空间中彼此接近。这有助于在机器学习模型中进行文本分析和理解。

- 图像嵌入(Image Embeddings):在计算机视觉中,图像可以被转换为向量表示,以便进行分类和识别等任务。

嵌入的主要优点是能有效压缩数据维度,同时保留重要的结构和语义信息。通过这种方式,模型可以更好地理解和处理复杂的数据。

from openai import OpenAI
import os

api_key=os.getenv("OPENAI_API_KEY")

client=OpenAI(api_key=api_key)

# 参数一 =》 texts 是一个包含要获取嵌入表示的文本列表
# 参数二 =》 model 则是用来指定要使用的模型的名称

def get_embeddings(texts,model="text-embedding-3-large"):
    # 创建一个嵌入向量,结果存储在data中
    data =client.embeddings.create(input=texts,model=model).data
    # 列表推导式
    return [x.embedding for x in data]

if __name__ == '__main__':
    test_query=["我爱你"]
    vec=get_embeddings(test_query)
    print("--------------------")
    # "我爱你"文本嵌入表示的列表。
    print(vec)
    # "我爱你" 文本的嵌入表示
    print(vec[0])
    # "我爱你" 文本的嵌入表示的维度=3072
    print(len(vec[0]))

3.3向量间的相似的计算

1.欧式距离

2.余弦距离

源码地址: https://pan.quark.cn/s/d1f41682e390 miyoubiAuto 米游社每日米游币自动化Python脚本(务必使用Python3) 8更新:更换cookie的获取地址 注意:禁止在B站、贴吧、或各大论坛大肆传播! 作者已退游,项目不维护了。 如果有能力的可以pr修复。 小引一波 推荐关注几个非常可爱有趣的女孩! 欢迎B站搜索: @嘉然今天吃什么 @向晚大魔王 @乃琳Queen @贝拉kira 第三方库 食用方法 下载源码 在Global.py中设置米游社Cookie 运行myb.py 本地第一次运行时会自动生产一个文件储存cookie,请勿删除 当前仅支持单个账号! 获取Cookie方法 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 按刷新页面,按下图复制 Cookie: How to get mys cookie 当触发时,可尝试按关闭,然后再次刷新页面,最后复制 Cookie。 也可以使用另一种方法: 复制代码 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 控制台粘贴代码并运行,获得类似的输出信息 部分即为所需复制的 Cookie,点击确定复制 部署方法--腾讯云函数版(推荐! ) 下载项目源码和压缩包 进入项目文件夹打开命令行执行以下命令 xxxxxxx为通过上面方式或取得米游社cookie 一定要用双引号包裹!! 例如: png 复制返回内容(包括括号) 例如: QQ截图20210505031552.png 登录腾讯云函数官网 选择函数服务-新建-自定义创建 函数名称随意-地区随意-运行环境Python3....
### RAG框架概念 检索增强生成(Retrieval-Augmented Generation, RAG)是一种结合了传统信息检索技术和现代自然语言处理中的生成模型的方法。这种方法允许机器学习系统不仅依赖于训练数据内部的知识,还能动态访问外部知识源,在面对新问题时获取最新、最准确的信息[^4]。 RAG 技术特别适用于那些需要持续更新或扩展背景资料的任务场景,比如问答系统、对话代理以及文档摘要等应用。通过引入外部资源作为补充材料,可以有效地减少由纯神经网络预测带来的不确定性——即所谓的“幻觉”现象,从而提高输出内容的真实性和可靠性。 ### 开源实现汇总 #### 1. **RAGFlow** 作为一个新兴的开源项目,RAGFlow 致力于简化基于 RAG 架构的应用开发过程。此工具包提供了多个预先配置好的模块和支持自动化的工作流设计,使得开发者能够更便捷地集成各种类型的数据库和服务接口,进而加速原型搭建和技术验证的速度[^2]。 - 显著特性: - 提供了一套完整的预构建组件; - 支持多种主流的数据存储方案; - 集成了先进的索引机制以优化查询效率; ```python from ragflow import PipelineBuilder pipeline = PipelineBuilder().add_retriever('elasticsearch').add_generator('transformers') ``` #### 2. **基于ChatGLM 和LangChain 实现的大规模离线部署方案** 这类解决方案专注于为企业级用户提供安全可控且高效的本地化部署选项。借助强大的中文理解能力(如 ChatGLM),再加上灵活易用的应用编程接口(APIs),这套组合拳可以在不连接互联网的情况下完成复杂的语义理解和响应生成任务[^3]。 ```bash git clone https://github.com/your-repo/chatglm-langchain.git cd chatglm-langchain pip install -r requirements.txt python app.py ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值