#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 在推理、指令执行、代理能力和多语言支持方面取得了突破性进展

内容概要:本文详细介绍了“秒杀商城”微服务架构的设计与实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现与配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪与Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试与监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值