#LLM RAG实例

部署运行你感兴趣的模型镜像

RAG:

RAG(检索-增强-生成,Retrieval-Augmented Generation)是一种结合了信息检索与文本生成的技术框架,旨在通过动态引入外部知识提升生成模型的效果。


RAG 的核心原理

  • 检索(Retrieval):当输入问题或任务时,系统从外部知识库(如文档、数据库、网页等)中检索相关段落或信息。例如,使用语义搜索或关键词匹配找到最相关的文档。

  • 增强(Augmentation):将检索到的信息与原始输入结合,为生成模型提供上下文支持。例如,将检索到的文本拼接在用户问题后,形成增强的输入。

  • 生成(Generation):基于增强后的上下文,生成模型(如GPT、BART)输出更准确、信息丰富的回答。

实例

加载文档

loader = TextLoader("./data/**.txt")
documents = loader.load()

创建拆分器

# Split
text_splitter = RecursiveCharacterTextSplitter.from_tiktoken_encoder(
    chunk_size=300, 
    chunk_overlap=50)
# Make splits
splits_documents = text_splitter.split_documents(documents)

词向量嵌入 Embedding

model_kwargs = {"device": "cpu"}
encode_kwargs = {"normalize_embeddings": True}
embedding_model = HuggingFaceBgeEmbeddings(
    model_name="BAAI/bge-large-en-v1.5", model_kwargs=model_kwargs, encode_kwargs=encode_kwargs
)

指定 persist_directory 将会把嵌入存储到磁盘上

persist_directory = 'db'   
db = Chroma.from_documents(splits_documents, embedding_model, persist_directory='./RAG/vectors_embedding')
retriever = db.as_retriever( )###search_type="similarity_score_threshold", search_kwargs={"score_threshold": 0.2}

询问的问题

query = "What is the FLAVOR WINE?"

###加载模型
llm = ChatDeepSeek(
    model="deepseek-chat",
    temperature=0,
    max_tokens=None,
    timeout=None,
    max_retries=2,
    api_key="****************",
    # other params...
)

template = """Answer the question based only on the following context:
{context}

Question: {question}
"""
prompt = ChatPromptTemplate.from_template(template)
 
rag_chain = (           {"context": retriever, "question": RunnablePassthrough()}           | prompt           | llm           | StrOutputParser()   )      
response = rag_chain.invoke(query)  

结果:

在这里插入图片描述
可参考:langchain官网 https://python.langchain.com/v0.1/docs/modules/data_connection/retrievers/vectorstore/

您可能感兴趣的与本文相关的镜像

Qwen3-8B

Qwen3-8B

文本生成
Qwen3

Qwen3 是 Qwen 系列中的最新一代大型语言模型,提供了一整套密集型和专家混合(MoE)模型。基于广泛的训练,Qwen3 在推理、指令执行、代理能力和多语言支持方面取得了突破性进展

【直流微电网】径向直流微电网的状态空间建模与线性化:一种耦合DC-DC变换器状态空间平均模型的方法 (Matlab代码实现)内容概要:本文介绍了径向直流微电网的状态空间建模与线性化方法,重点提出了一种基于耦合DC-DC变换器状态空间平均模型的建模策略。该方法通过对系统中多个相互耦合的DC-DC变换器进行统一建模,构建出整个微电网的集中状态空间模型,并在此基础上实施线性化处理,便于后续的小信号分析与稳定性研究。文中详细阐述了建模过程中的关键步骤,包括电路拓扑分析、状态变量选取、平均化处理以及雅可比矩阵的推导,最终通过Matlab代码实现模型仿真验证,展示了该方法在动态响应分析和控制器设计中的有效性。; 适合人群:具备电力电子、自动控制理论基础,熟悉Matlab/Simulink仿真工具,从事微电网、新能源系统建模与控制研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握直流微电网中多变换器系统的统一建模方法;②理解状态空间平均法在非线性电力电子系统中的应用;③实现系统线性化并用于稳定性分析与控制器设计;④通过Matlab代码复现和扩展模型,服务于科研仿真与教学实践。; 阅读建议:建议读者结合Matlab代码逐步理解建模流程,重点关注状态变量的选择与平均化处理的数学推导,同时可尝试修改系统参数或拓扑结构以加深对模型通用性和适应性的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值