使用langchain与你自己的数据对话(四):问答(question answering)_max marginal relevance search

LangChain与OpenAI集成实战:从原理到企业级RAG应用开发 在构建基于大语言模型的智能应用时,开发者常面临如何让模型具备记忆、调用工具和处理长文档等工程挑战。其核心原理在于通过框架将语言模型与外部组件(如工具、数据库)进行标准化连接,形成可编排的工作流。这一技术价值在于实现了AI应用的快速工程化,将开发重点从底层架构转向业务逻辑。典型的应用场景包括构建带记忆的智能客服、基于私有知识库的问答系统以及结构化数据提取。本文聚焦于LangChain与OpenAI的深度集成,详细解析了其通过模型封装、提示词模板、链式工作流和代理决策等核心抽象,如何系统性地解决上述问题,并提供 阅读详情

之前我已经完成了使用langchain与你自己的数据对话的前三篇博客,还没有阅读这三篇博客的朋友可以先阅读一下:

今天我们来继续讲解deepleaning.AI的在线课程“LangChain: Chat with Your Data”的第五门课:问答(question answering)

Langchain在实现与外部数据对话的功能时需要经历下面的5个阶段,它们分别是:Document Loading->Splitting->Storage->Retrieval->Output,如下图所示:

在上一篇博客:检索(Retrieval) 中我们介绍了基本语义相似度(Basic semantic similarity),最大边际相关性(Maximum marginal relevance,MMR), 过滤元数据, LLM辅助检索等内容,接下来就来到了最后一个环节:output

在最后的输出环节中,我们会将前一阶段检索(Retrieval)的结果,也就是与用户问题相关的文档块(可能会存在多个相关的文档块),连同用户的问题一起喂给LLM,最后LLM返回给我们所需要的答案:

在默认的情况下,我们会将所有的相关文档一次性的全部传给LLM,即所谓的“stuff”的chain type方式。这在我之前写的博客中有详细的说明,stuff方式虽然很方便,但是也存在缺点,就是当检索出来的相关文档很多时,就会报超出最大 token 限制的错。除了stuff方式还有如下几种chain type的方式如下图所示:

加载向量数据库

在讨论这些新技术之前,先让我们完成一些基础性工作,比如设置一下openai的api key:

import os
import openai
import sys
sys.path.append('../..')

from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv()) # read local .env file

openai.api_key  = os.environ['OPENAI_API_KEY']

接下来我们需要先加载一下在之前的博客中我们在本地创建的关于吴恩达老师的机器学习课程cs229课程讲义(pdf)的向量数据库:

from langchain.vectorstores import Chroma
from langchain.embeddings.openai import OpenAIEmbeddings

persist_directory = 'docs/chroma/'

embedding = OpenAIEmbeddings()
vectordb = Chroma(persist_directory=persist_directory, 
                  embedding_function=embedding)

#打印向量数据库中的文档数量
print(vectordb._collection.count())

这里我们加载了之前保存在本地的向量数据库,并查询了数据库中的文档数量为209,这与我们之前创建该数据库时候的文档数量是一致的,接下来我们提出一个问题:“What are major topics for this class?”,即“ 这门课的主要主题是什么?” 然后用similarity_search方法来查询一下与该问题相关的文档块:

question = "What are major topics for this class?"
docs = vectordb.similarity_search(question,k=3)
len(docs)

这里我们看到similarity_search方法搜索到了3给与该问题相关的文档块。接下来我们查看一下这3个文档:

docs

这里我们看到similarity_search返回的3给文档中,第一,第二篇文档的内容是相同的,这是因为我们在创建这个向量数据库时重复加载了一篇文档(pdf),这导致similarity_search搜索出来文档存在重复的可能性,要解决这个问题,可以使用max_marginal_relevance_search方法,该方法可以让结果的相关性和多样性保持均衡。

RetrievalQA chain

接下来我们要创建一个检索问答链(RetrievalQA),然后将相关文档的搜索结果以及用户的问题喂给RetrievalQA,让它来产生最终的答案,不过首先我们需要创建一个openai的LLM:

from langchain.chat_models import ChatOpenAI

#创建llm
llm = ChatOpenAI(temperature=0)
llm

这里我们创建的openai的llm默认使用了“gpt-3.5-turbo”模型,同时我们还设置了temperature参数为0,这样做是为了降低llm给出答案的随机性。下面我们来创建一个检索问答链(RetrievalQA),然后我们将llm和检索器(retriever)作为参数传给RetrievalQA,这样RetrievalQA就可以根据之前的问题,给出最终的答案了。

from langchain.chains import RetrievalQA


qa_chain = RetrievalQA.from_chain_type(
    llm,
    retriever=vectordb.as_retriever()
)

question = "What are major topics for this class?"
result = qa_chain({"query": question})
result["result"]

这里我们看到,RetrievalQA给出了一个答案,该答案是在对向量数据库检索到的3给文档的基础上总结出来的。为了让RetrievalQA给出一个格式化的答案,我们还可以创建一个prompt,在这个prompt中我们将会告诉llm,它应该给出一个怎样的答案,以及答案的格式是怎么样的:

from langchain.prompts import PromptTemplate

# Build prompt
template = """Use the following pieces of context to answer the question at the end. \
If you don't know the answer, just say that you don't know, don't try to make up an answer. \
Use three sentences maximum. Keep the answer as concise as possible. Always say "thanks for asking!" \
at the end of the answer. 
{context}
Question: {question}
Helpful Answer:"""

QA_CHAIN_PROMPT = PromptTemplate.from_template(template)

我们把这个prompt翻译成中文,这样便于大家理解:

在这个prompt中的{context}变量中会保存检索器搜索出来的相关文档的内容,而{question}变量保存的是用户的问题。

下面我们来测试一下加入了prompt的RetrievalQA的返回结果,不过首先我们还是需要重新定义一个RetrievalQA,并将prompt作为参数传给它,同时设置return_source_documents=True,这样RetrievalQA在回答问题的时候会同时返回与问题相关的文档块。

# Run chain
qa_chain = RetrievalQA.from_chain_type(
    llm,
    retriever=vectordb.as_retriever(),
    return_source_documents=True,
    chain_type_kwargs={"prompt": QA_CHAIN_PROMPT}
)

下面我们让RetrievalQA来回答一下问题:

question = "What are major topics for this class?"
result = qa_chain({"query": question})
result["result"]

这里我们看到qa_chain根据模板的要求给出了一个简洁的答案,并在最后加上了 “thanks for asking!”。接下来我们查看一下qa_chain返回的相关文档:

result["source_documents"]

这里我们看到qa_chain返回的相关文档和我们之前用向量数据库的similarity_search方法搜索的相关文档基本是一致的,只不过在similarity_search方法中我们设置了k=3,所以similarity_search方法只返回3给相关文档,而RetrievalQA方法默认使用的是“stuff”方式,因此它会让向量数据库检索所有相关文档,所以最后检索到了4篇文档,其中第一第二篇,第三第四篇文档都是相同的,这是因为我们在创建向量数据库时将第一个文档(Lecture01.pdf)加载了两篇,导致向量数据库最后会搜索出内容重复的文档。接下来我们再让qa_chain回答一个问题:

question = "Is probability a class topic?"
result = qa_chain({"query": question})
result["result"]

下面我们查看一下该问题的相关文档:

result["source_documents"]

同样,对于该问题,qa_chain也返回了4给相关文档,并且也是重复的,从元数据中可以看到它们来自于Lecture01.pdf 和Lecture03.pdf 这个原始的pdf文件。

RetrievalQA chain types

接下来我们来更改一下RetrievalQA的chain_type参数,将原来默认的“stuff”改成“map_reduce”:

qa_chain_mr = RetrievalQA.from_chain_type(
    llm,
    retriever=vectordb.as_retriever(),
    chain_type="map_reduce"
)

question = "Is probability a class topic?"
result = qa_chain_mr({"query": question})
result["result"]

这里我们看到针对前面的同一个问题:“Is probability a class topic?”,这次由于我们设置了chain_type=map_reduce, qa_chain_mr却没有给出肯定的答案。这个主要的原因是由于map_reduce的机制所导致的,map_reduce在执行过程中会让LLM对向量数据库中的每个文档块做一次总结,最后把所有文档块的总结汇总在一起再做一次最终的总结,因此它不像“stuff”那样,直接搜索所有文档块,只输出相关文档块,抛弃掉不相关的文档块,因此map_reduce在做最终总结的时候它的输入仍然包含了大量的不相关文档的总结内容,最终导致焦点被模糊了,无法给出正确的答案。下面我们再尝试一下refine,map_rerank这两种方式:

qa_chain_refine = RetrievalQA.from_chain_type(
    llm,
    retriever=vectordb.as_retriever(),
    chain_type="refine"
)

question = "Is probability a class topic?"
result = qa_chain_refine({"query": question})
result["result"]

这里我们看到refine方式给出的答案也类似map_reduce的结果,它也没有给出肯定的答案,主要原因也是由于refine的工作机制也类似于map_reduce,llm会对每一个文档块进行总结,并且逐步汇总一个总结,这使得最终总结中也包含了大量不相关的总结内容,最终导致焦点被模糊了,没有给出正确的答案。

qa_chain_mr = RetrievalQA.from_chain_type(
    llm,
    retriever=vectordb.as_retriever(),
    chain_type="map_rerank"
)

question = "Is probability a class topic?"
result = qa_chain_mr({"query": question})
result["result"]

我们看到map_rerank方式的给出来肯定的结果,这是因为在执行map_rerank时LLM会对每一个文档块进行打分,那么与问题相关的文档块自然会得到高分,而那些和问题不相关的文档块则会得到低分,那么在做最终总结时LLM只选取分数高的文档块,而那些分数低的文档块会被丢弃,所以它能得到肯定的答案。

总结

今天我们介绍了如何通过答链RetrievalQA,来检索向量数据库并回答用户的问题。其中我们介绍了几种RetrievalQA检索向量数据库的工作方式,也就是chain type方式,其实默认方式是stuff,除此之外还有map_reduce,refine, map_rerank等几种方式,它们都有各自的优缺点。同时我们还介绍了通过使用prompt模板,可以让LLM返回格式化的结果。希望今天的内容对大家学习langchain有所帮助!

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】
【LangChain】Retrieval QA 您可以传入自定义prompt来进行问答。这些提示与您可以传递到基本问答链的提示相同。{context}Answer in Italian:""" PROMPT = PromptTemplate(template = prompt_template , input_variables = [ "context" , "question" ]) # 自定义 chain prompt chain_type_kwargs = { 阅读详情

相关推荐

大模型应用开发框架 LangChain 学习笔记

一时间大模型如百花齐放,百鸟争鸣,并在向各个行业领域渗透,让人感觉通用人工智能仿佛就在眼前。基于大模型开发的应用和产品也如雨后春笋,让人目不暇接,每天都有很多新奇的应用和产品问世,有的可以充当你的朋友配你聊天解闷,有的可以充当你的老师帮你学习答疑,有的可以帮你写文章编故事,有的可以帮你写代码改 BUG,大模型的崛起正影响着我们生活中的方方面面。正是在这样的背景下,为了方便和统一基于大模型的应用开发,一批大模型应用开发框架横空出世,LangChain 就是其中最流行的一个。正如前文所述,LangChain 是

Mr_WYJ的博客 3258

使用langchain与你自己的数据对话(四):问答(question answering)

今天我们介绍了如何通过答链RetrievalQA,来检索向量数据库并回答用户的问题。其中我们介绍了几种RetrievalQA检索向量数据库的工作方式,也就是chain type方式,其实默认方式是stuff,除此之外还有map_reduce,refine, map_rerank等几种方式,它们都有各自的优缺点。同时我们还介绍了通过使用prompt模板,可以让LLM返回格式化的结果。希望今天的内容对大家学习langchain有所帮助!

weixin_42608414的博客 8330

如何快速用LangChain打造一个智能问答小客服?仅需40行代码!(含代码)

我们该如何应用LangChain进行多种的开发呢?在写一些项目的时候我们经常离不开要阅读一些开源产品的代码,而这个智能问答小客服就是在LangChain源代码上进行微小改动写出来的,能够更加清晰LangChain的结构。一起来看看吧!希望通过这个例子能帮助大家更加理解LangChain。

chatKnowhow的博客 772

基于 InternLM模型 和 LangChain框架搭建知识库

运行方式与上面知识库搭建运行相同。

m0_54169072的博客 956

LangChain框架解析:从RAG到Agent的LLM应用开发实战

大语言模型(LLM)应用开发中,如何高效整合模型、数据和工具是关键挑战。传统方法往往导致代码臃肿、难以维护,而编排框架通过提供标准化组件和设计模式,实现了模块化与可移植性。其技术价值在于将复杂工作流抽象为可组合的单元,显著提升开发效率和系统可维护性。在应用场景上,检索增强生成(RAG)技术通过向量化存储和相似度检索,为模型提供外部知识库,有效缓解幻觉问题;而智能体(Agent)则通过工具调用赋予模型行动能力,实现复杂任务自动化。本文以LangChain为例,深入探讨其核心架构与实战应用,涵盖模型I/O、检索

weixin_33849215的博客 428

大模型-LangChain

注:提示词模板调用invoke返回的就是PromptValue,可以直接传入大模型中。A链的结果可以输出,也可以作为输入传递给B链,B链执行结束,最终输出结果。A链的输出作为输入传递给B链,B链执行结束,最终输出结果。:阻塞式调用,等待所有结果生成后一次性输出。:流式调用,逐块输出生成结果。

ch_atu的博客 234

LangChain生产级工程手记:RAG、多语言翻译、维基检索与合成数据实战

RAG(检索增强生成)是构建企业级AI应用的核心范式,其本质是将外部知识精准注入大模型生成过程,解决幻觉与知识滞后问题;多语言对话翻译则依赖上下文记忆与术语强约束,考验LLM指令遵循能力而非泛化能力。本文聚焦LangChain v0.2+在真实业务场景中的工程落地——涵盖PDF/Word/Excel等异构文档的鲁棒加载、中文语义敏感的文本分块策略、Chroma向量库的本地化调试实践,以及维基百科结构化检索与合成医疗数据生成两大高阶任务。所有方案均经金融、医疗、教育行业客户现场验证,直击OCR错误、chunk

weixin_30566111的博客 411

LangChain工程实践:从PDF合同加载到智能审查的全链路避坑指南

向量数据库与大语言模型协同是构建AI应用的核心范式,其本质是通过嵌入(Embedding)将非结构化文本映射为可计算的语义向量,并依托向量检索实现上下文增强。这一技术路径在法律、金融等垂直领域尤为关键,直接决定RAG系统能否准确召回条款、规避幻觉。实践中,文档加载器选择、文本切分策略、嵌入模型适配及元数据治理共同构成效果瓶颈。本文聚焦采购合同智能审查这一典型场景,深入解析PyPDFLoader与UnstructuredPDFLoader的适用边界、RecursiveCharacterTextSplitter

weixin_30275415的博客 406

基于魔搭社区与RAG技术构建金融领域大模型问答机器人实践

大语言模型(LLM)作为人工智能领域的前沿技术,其核心原理是通过海量数据预训练获得强大的语言理解和生成能力。在工程实践中,如何让LLM在特定领域(如金融)中提供精准、可靠的答案,是技术落地的关键挑战。检索增强生成(RAG)技术通过结合外部知识库与LLM的生成能力,有效缓解了模型的“幻觉”问题,提升了回答的准确性与可追溯性。结合知识图谱(GraphRAG)的进阶方法,更能增强答案的逻辑关联性。在应用层面,金融、法律、医疗等对信息准确性要求极高的领域,是RAG技术最具价值的落地场景。本文以魔搭社区为平台,详细阐

weixin_34280237的博客 429

AI编排:企业级LLM应用落地的中枢调度架构

AI编排(AI Orchestration)是一种面向生产环境的工程范式,旨在弥合大语言模型与企业遗留系统之间的数据断层。其核心原理是将AI推理能力与企业集成能力解耦协同,通过混合架构实现数据可信获取、上下文精准供给与结果合规交付。技术价值在于保障低延迟、高韧性、强治理的端到端AI流水线,支撑销售风险预测、智能客服、自动化报告等关键业务场景。本文聚焦MuleSoft与LangChain协同实践,深入解析企业数据资产守门人与AI推理精密手术刀的职责边界与集成契约。

aikb6223的博客 463

LangChain从入门到进阶(8):学会RAG(检索增强生成)「喂饭教程」

本文介绍了RAG(检索增强生成)技术的基本原理和实现步骤。RAG通过先检索相关文档再生成回答,解决了传统AI无法处理私有数据和实时信息的局限。文章详细讲解了RAG的四个核心步骤:文档加载(支持PDF、Word、CSV等多种格式)、文本分割(优化检索精度)、向量存储(FAISS数据库)和检索生成(结合上下文回答问题)。通过代码示例展示了如何从零开始构建一个RAG系统,让AI能够基于企业文档库准确回答问题。该技术适用于知识库问答、智能客服等场景,无需重新训练模型即可实现私有数据的高效利用。

blues_C的博客 706

LangChain实战:从零构建企业级AI应用与RAG知识库系统

大语言模型(LLM)作为当前AI应用的核心,其强大的理解和生成能力为智能系统开发提供了基础。然而,如何让通用大模型与特定业务数据、外部工具及复杂工作流有效协同,成为工程实践中的关键挑战。这涉及到提示词工程、上下文管理、工具调用等核心技术原理。LangChain框架应运而生,它通过模块化设计,将模型I/O、提示词模板、链式工作流、检索增强生成(RAG)及智能代理等复杂环节标准化,极大降低了AI应用开发门槛。其技术价值在于提供了一套可复用的“脚手架”,使开发者能聚焦业务逻辑,快速构建从简单对话到复杂企业级系统(

weixin_34292402的博客 424

wifi/BT芯片RTL8723DS驱动移植和测试之一wifi篇

本文主要介绍如何在stm32mp157中移植并测试芯片RTL8723DS的wifi功能。

汉尼拔勇闯天涯 8741

LangChain RAG系统构建指南:从原理到AI Agent集成实战

检索增强生成(RAG)技术通过将外部知识库与大型语言模型结合,解决了传统LLM在知识时效性、领域专业性和事实准确性方面的局限。其核心原理是将用户查询在向量空间中进行语义匹配,从知识库中检索最相关的文档片段,然后增强提示词供LLM生成精准答案。这种架构的技术价值在于实现知识可更新、来源可追溯和成本可控,特别适用于需要专业知识的应用场景。在AI Agent开发中,RAG系统扮演着长期记忆和专业知识库的角色,为决策支持、工具使用和多轮对话提供精准的知识检索能力。本文基于LangChain框架,深入解析如何构建高质

weixin_30736301的博客 411

RISC-V IP中的ITCM/DTCM与Slave-AHB接口设计解析

本文深入解析RISC-V IP中ITCM/DTCM与Slave-AHB接口的设计要点,涵盖TCM架构原理、总线协议实现及性能优化策略。通过实际案例展示如何实现单周期访问延迟,解决跨时钟域同步等关键问题,为嵌入式系统提供确定性内存访问方案。特别探讨了AHB总线仲裁机制和RTL实现技巧,助力开发者构建高效可靠的RISC-V处理器子系统。

weixin_28419039的博客 529

锐捷交换机堆叠配置举例

一、组网需求: 1)四台S2628G进行堆叠; 2)设备在堆叠前先设置好优先级; 3)使用光口堆叠的设备如RG-S2928G-E相关配置 二、组网拓扑 三、配置要点: 普通堆叠设备不需要配置,只要把堆叠模块和线缆连接好即可 堆叠模块不支持热插拔,即插在模块连上线缆后不能立即生效,需要重启设备才生效。 如果拔掉堆叠插槽后,想再插上模块堆叠,那么必须重启设备才生效 设备堆叠需要协商参数,时间会比较久,请耐心等待 堆叠时设备建议是...

dongsheng_9234的专栏 8285

LangChain实战:从零构建企业级智能客服助手

大语言模型(LLM)作为当前人工智能领域的核心技术,其强大的文本生成和理解能力为应用开发带来了新的范式。然而,将LLM从演示原型转化为生产级应用,开发者面临着上下文管理、工具调用、知识增强和复杂工作流编排等核心挑战。这些挑战催生了像LangChain这样的框架,它通过提供标准化的组件和抽象层,将模型I/O、提示词管理、记忆、检索增强生成(RAG)和智能体(Agent)等复杂功能模块化,极大地提升了开发效率和应用稳定性。在工程实践中,LangChain尤其擅长构建需要结合私有知识库与外部工具调用的智能应用,例

Hi, Sun 388

AMEsim柱塞泵的建模学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、为什么要对柱塞泵进行仿真?二、Amesim中柱塞泵的模型1.amesim中自己的定排量五柱塞的斜盘柱塞泵2.压力、流量仿真总结 前言 最近在学习Amesim进行柱塞泵的仿真学习,顺便在这里记录我的学习过程,这是我的初衷 提示:以下是本篇文章正文内容,下面案例可供参考 一、为什么要对柱塞泵进行仿真? 柱塞泵是功能和动力学比较复杂的流体机械。而在实际实验中,往往没有条件或者需要对柱塞泵做一些优化,所以需要我们利用仿真...

innocent_cft的博客 8184

LangChain官方RAG架构实战拆解:从玩具Demo到生产级落地

RAG(检索增强生成)是一种将外部知识库与大语言模型协同工作的关键技术,其核心原理在于通过向量检索精准定位相关文档片段,再交由LLM进行语义整合与生成。技术价值体现在显著降低幻觉率、提升答案准确性与可溯源性,广泛应用于智能客服、企业知识库、金融研报分析等需强事实依据的场景。然而,真实工程落地远非调用as_retriever()或invoke()即可达成——它要求深入理解检索策略(如MMR重排序)、分块逻辑(chunk_size与overlap的权衡)、向量库选型(Chroma仅适合开发,Pinecone/W

weixin_33755649的博客 443

从零开始讲DDR(5)——读懂Datasheet

对于开发人员来说,需要根据实际场景和使用的需要,使用不同厂家,不同型号的DDR,虽然原理上大同小异,但是还是有一些细节上的需要注意的地方,接触一个新的DDR芯片,首先就是需要找到对应的datasheet,而能都读懂datasheet,也是一个硬件工程师的必备技能。

apple_53311083的博客 5221

【深度学习新浪潮】李飞飞团队VAGEN框架深度解析:让VLM智能体学会“三思而后行“

VAGEN框架的真正价值,不仅在于性能指标的突破,更在于重新定义了VLM智能体的发展方向——人工智能的进步不应只追求"做得对",更要实现"想得清"。李飞飞团队通过强制显式思考、动态表示适配和精细化奖励三大创新,让智能体第一次具备了可解释的世界建模能力。正如人类通过"观察-预测-行动"认识世界,VAGEN为AI注入的这种思考范式,或许正是通往通用人工智能的关键一步。对于开发者而言,开源的VAGEN框架不仅提供了强大的工具,更揭示了一个重要理念:让AI学会思考,比让它学会执行更重要。

专注:太空算力、AI infra、异构调度、大模型成本工程 280

NodeGui LayoutMode 枚举详解:掌控 QListView 的单遍与批量布局策略

`LayoutMode` 是 NodeGui 中随 `QListView` 一并导出的枚举类型,用于指定列表视图中条目布局的执行方式:一次性完成(SinglePass)或分批进行(Batched)。本篇文章将以 `website/docs/api/generated/enums/layoutmode.md` 为骨架,结合 `QListView` 的 TypeScript 封装、C++ 绑定层与属性

gitblog_00469的博客 1079

制作INCA和CANape通用的A2L

CANape和INCA通用的A2L配置与修改

赞的博客 5962

AI大模型应用开发实战:从提示词工程到RAG与Agent系统构建

人工智能大模型作为当前AI技术的核心突破,通过海量参数和预训练机制实现了强大的语言理解与生成能力。其技术原理基于Transformer架构,通过自注意力机制处理序列数据,具备上下文感知和语义推理功能。在工程实践中,提示词工程成为与大模型交互的关键技术,通过结构化指令设计引导模型输出符合预期的结果。RAG(检索增强生成)技术通过结合外部知识库检索与大模型生成能力,有效扩展了模型的知识边界和应用范围。Agent智能体技术则赋予大模型规划决策能力,实现复杂任务的自动化处理。这些技术在智能客服、文档分析、代码生成等

weixin_30788619的博客 380

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

开源AI基础设施:从Google Brain遗产到构建不依赖闭源API的RAG应用

大语言模型(LLM)和检索增强生成(RAG)正成为AI应用开发的核心范式。其原理在于通过预训练海量数据获得通用语言理解能力,并结合外部知识检索来增强生成内容的准确性与时效性。这一技术价值在于为开发者提供了构建智能应用的强大基础,广泛应用于企业知识库、智能客服、内容创作等场景。当前,以OpenAI为代表的闭源API服务虽提供了便捷入口,但也引发了关于技术控制权、数据隐私和长期供应商锁定的行业思考。在此背景下,以Google Brain早期开源文化为代表的开放协作模式,以及以Llama、Mistral等开源模型

weixin_34161064的博客 331

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: 使用langchain与你自己的数据对话(三):检索(Retrieval)_langchain 数据收集
下一篇: 使用langchain与你自己的数据对话(五):聊天机器人_conversationalretrievalchain
AI大模型_学习君
博客等级 码龄3年 6137粉丝 551原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值