RAG开发从入门到精通:手把手教你从0到1搭建应用(非常详细),小白也能看懂,收藏这一篇就够了!

Faiss 简介 最近在做知识库问答的时候看到了Faiss,查询了一些资料了解其原理,下面做简单记录,方便以后查阅。(Facebook AI Similarity Search)是Facebook AI团队开源的针对聚类和相似性搜索库,为稠密向量提供高效相似度搜索和聚类,支持十亿级别向量的搜索,是目前较成熟的近似近邻搜索库。Faiss整体流程图如下所示:图中,Faiss主要包含两个步骤:Faiss训练和Faiss查询。 阅读详情

一、技术框架与选型

  • 这篇文章中的选型并非适用于所有场景的最佳方案,而是基于当前广泛应用和流行的技术模块。关于这些模块的具体特点以及可能的替代选型,我们会在后续文章中进行详细分析与解读。

1.1、技术框架与选型

1.1.1、LangChain
  • LangChain 是专为开发基于大型语言模型(LLM)应用而设计的全面框架,其核心目标是简化开发者的构建流程,使其能够高效创建 LLM 驱动的应用。
1.1.2、索引流程 (文档解析模块:pypdf)
  • pypdf 是一个开源的 Python 库,专门用于处理 PDF 文档。pypdf 支持 PDF 文档的创建、读取、编辑和转换操作,能够有效提取和处理文本、图像及页面内容。
1.1.3、索引流程 (文档分块模块:RecursiveCharacterTextSplitter)
  • 采用 LangChain 默认的文本分割器 -RecursiveCharacterTextSplitter。该分割器通过层次化的分隔符(从双换行符到单字符)拆分文本,旨在保持文本的结构和连贯性,优先考虑自然边界如段落和句子。
1.1.4、索引 / 检索流程 (向量化模型:bge-small-zh-v1.5)
  • bge-small-zh-v1.5 是由北京人工智能研究院(BAAI,智源)开发的开源向量模型。虽然模型体积较小,但仍然能够提供高精度和高效的中文向量检索。该模型的向量维度为 512,最大输入长度同样为 512。
1.1.5、索引 / 检索流程 (向量库:Faiss)
  • Faiss 全称 Facebook AI Similarity Search,由 Facebook AI Research 团队开源的向量库,因其稳定性和高效性在向量检索领域广受欢迎。
1.1.5、生成流程 (大语言模型:通义千问 Qwen)
  • 通义千问 Qwen 是阿里云推出的一款超大规模语言模型,支持多轮对话、文案创作、逻辑推理、多模态理解以及多语言处理,在模型性能和工程应用中表现出色。采用云端 API 服务,注册有 1,000,000 token 的免费额度。

1.2、技术框架与选型的流程图

  • 流程图

    LangChain:提供用于构建 LLM RAG 的应用程序框架。

    索引流程:使用 pypdf 对文档进行解析并提取信息;随后,采用RecursiveCharacterTextSplitter 对文档内容进行分块(chunks);最后,利用 bge-small-zh-v1.5 将分块内容进行向量化处理,并将生成的向量存储在 Faiss 向量库中。

    检索流程:使用 bge-small-zh-v1.5 对用户的查询(Query)进行向量化处理;然后,通过 Faiss 向量库对查询向量和文本块向量进行相似度匹配,从而检索出与用户查询最相似的前 top-k 个文本块(chunk)。

    生成流程:通过设定提示模板(Prompt),将用户的查询与检索到的参考文本块组合输入到 Qwen 大模型中,生成最终的 RAG 回答。

二、开发环境与技术库

  • 我们采用 Python 编程语言,Python 版本 3.8 及以上,运行于 Linux 操作系统下。结合上述的技术框架与选型,我们的开发环境需要按照以下步骤进行准备:

2.1、创建并激活虚拟环境

  • 目的是隔离项目依赖,避免项目之间冲突。先在命令行窗口中执行指令定位到具体的 RAG 项目文件夹,然后在命令行中执行以下指令:

    # 创建名为rag_env的虚拟环境python3 -m venv rag_env# 激活虚拟环境source rag_env/bin/activate
    

2.2、安装技术依赖库

2.2.1、安装技术依赖库
  • 安装langchain和langchain_community LLM RAG 的技术框架及其扩展。
  • 安装 pypdf 处理 PDF 文档的解析库。
  • 安装 sentence-transformers 运行指定文本嵌入模型 bge-small-zh-v1.5 的模型库。
  • 安装 faiss-cpu 高效相似度搜索的 Faiss 向量库。
  • 安装 dashscope 与阿里云 Qwen 大模型 API 的集成库。
2.2.2、安装技术依赖库的命令
  • 首先,升级 pip 版本,以确保兼容性,在命令行中执行以下指令。

    # 升级pip版本以确保兼容性pip install --upgrade pip
    
  • 然后,安装上述技术依赖库,在命令行中执行以下指令:

    pip install langchain langchain_community pypdf sentence-transformers faiss-cpu dashscope
    
  • 如果无法连接,可以使用国内镜像站点,在命令行中执行以下指令:

    pip install langchain langchain_community pypdf sentence-transformers faiss-cpu dashscope -i https://pypi.tuna.tsinghua.edu.cn/simple
    
2.2.3、下载 bge-small-zh-v1.5 模型
  • 该模型的文件已包含在 Gitee 上托管的项目中的 bge-small-zh-v1.5 文件夹内,你可以直接下载到 RAG 项目的根目录中,模型大小 95.8M,在命令行中执行以下指令:

    git clone https://gitee.com/techleadcy/rag_app.git
    
  • 下载完成后,检查 rag_app 项目中 bge-small-zh-v1.5 文件夹中是否包含 pytorch_model.bin 文件。该库中同时包含了本文章的 RAG 核心流程代码 rag_app_lesson2.py 及测试 PDF 文档 test_lesson2.pdf。

三、RAG 核心流程代码

  • 在实战过程中,你不仅可以快速构建 RAG 应用,还能够在研发过程中深入理解其背后的技术逻辑与核心原理。为此,我在代码的每一行添加了必要的注释,并对每段流程代码进行了归纳和解释,旨在通过实战代码增强你对 RAG 技术的理解。
  • 整个流程代码分为模块库的引入、索引流程、检索流程、生成流程以及测试代码几部分进行精细讲解,具体的代码位于 Gitee 项目库中的 rag_app_lesson2.py 文件中。

3.1、模块库的引入

  • 模块库引入的代码如下:

    from langchain_community.document_loaders import PyPDFLoader # PDF文档提取from langchain_text_splitters import RecursiveCharacterTextSplitter # 文档拆分chunkfrom sentence_transformers import SentenceTransformer # 加载和使用Embedding模型import faiss # Faiss向量库import numpy as np # 处理嵌入向量数据,用于Faiss向量检索import dashscope #调用Qwen大模型from http import HTTPStatus #检查与Qwen模型HTTP请求状态import os # 引入操作系统库,后续配置环境变量与获得当前文件路径使用os.environ["TOKENIZERS_PARALLELISM"] = "false" # 不使用分词并行化操作, 避免多线程或多进程环境中运行多个模型引发冲突或死锁# 设置Qwen系列具体模型及对应的调用API密钥,从阿里云百炼大模型服务平台获得qwen_model = "qwen-turbo"qwen_api_key = "your_api_key"
    
  • 阿里云百炼大模型服务平台获取的 Qwen 大模型的 API 密钥流程如下:

    打开阿里云百炼大模型服务平台 ,点击立即开通,登陆阿里云 / 支付宝 / 钉钉账号;

    点击模型广场,搜索 通义千问 -Turbo,点击 API 调用示例;

    点击查看我的 API-KEY,继续点击弹出框中的查看,复制 API-KEY,将 API-KEY 替换代码中 qwen_api_key = “your_api_key”;

    点击模型详情,可以看到模型 Model 英文名称,赋值 qwen_model 参数。可以看到剩余额度,当前阿里云提供 1,000,000 次的免费模型额度;

    如果需要尝试其他模型,可以对应赋值上述代码中 qwen_model 参数及 qwen_api_key 参数。

  • 上代码导入了我们在 RAG 流程中需要使用的核心模块及大模型参数等配置,这些模块和配置将在后续的索引、检索和生成流程中调用使用。

3.2、索引流程

  • 索引流程的代码如下:

    def load_embedding_model():    """    加载bge-small-zh-v1.5模型    :return: 返回加载的bge-small-zh-v1.5模型    """    print(f"加载Embedding模型中")    # SentenceTransformer读取绝对路径下的bge-small-zh-v1.5模型,非下载    embedding_model = SentenceTransformer(os.path.abspath('rag_app/bge-small-zh-v1.5'))    print(f"bge-small-zh-v1.5模型最大输入长度: {embedding_model.max_seq_length}")     return embedding_modeldef indexing_process(pdf_file, embedding_model):    """    索引流程:加载PDF文件,并将其内容分割成小块,计算这些小块的嵌入向量并将其存储在FAISS向量数据库中。    :param pdf_file: PDF文件路径    :param embedding_model: 预加载的嵌入模型    :return: 返回Faiss嵌入向量索引和分割后的文本块原始内容列表    """    # PyPDFLoader加载PDF文件,忽略图片提取    pdf_loader = PyPDFLoader(pdf_file, extract_images=False)    # 配置RecursiveCharacterTextSplitter分割文本块库参数,每个文本块的大小为512字符(非token),相邻文本块之间的重叠128字符(非token)    text_splitter = RecursiveCharacterTextSplitter(        chunk_size=512, chunk_overlap=128    )    # 加载PDF文档,提取所有页的文本内容    pdf_content_list = pdf_loader.load()    # 将每页的文本内容用换行符连接,合并为PDF文档的完整文本    pdf_text = "\n".join([page.page_content for page in pdf_content_list])    print(f"PDF文档的总字符数: {len(pdf_text)}")     # 将PDF文档文本分割成文本块Chunk    chunks = text_splitter.split_text(pdf_text)    print(f"分割的文本Chunk数量: {len(chunks)}")     # 文本块转化为嵌入向量列表,normalize_embeddings表示对嵌入向量进行归一化,用于准确计算相似度    embeddings = []    for chunk in chunks:        embedding = embedding_model.encode(chunk, normalize_embeddings=True)        embeddings.append(embedding)    print("文本块Chunk转化为嵌入向量完成")    # 将嵌入向量列表转化为numpy数组,Faiss向量库操作需要numpy数组输入    embeddings_np = np.array(embeddings)    # 获取嵌入向量的维度(每个向量的长度)    dimension = embeddings_np.shape[1]    # 使用余弦相似度创建FAISS索引    index = faiss.IndexFlatIP(dimension)    # 将所有的嵌入向量添加到FAISS索引中,后续可以用来进行相似性检索    index.add(embeddings_np)    print("索引过程完成.")    return index, chunks
    
  • 上述代码实现了 RAG 技术中的索引流程,

    首先使用 PyPDFLoader 加载并预处理 PDF 文档,将其内容提取并合并为完整文本。接着,利用

    接着,利用 RecursiveCharacterTextSplitter 将文本分割为每块 512 字符(非 token)、重叠 128 字符(非 token)的文本块,并通过预加载的 bge-small-zh-v1.5 嵌入模型将这些文本块转化为归一化的嵌入向量。

    最终,这些嵌入向量被存储在基于余弦相似度的 Faiss 向量库中,以支持后续的相似性检索和生成任务。

  • 为更清晰地展示 RAG 流程的各个细节,当前代码未涉及多文档处理、嵌入模型的效率优化与并行处理。此外,Faiss 向量目前仅在内存中存储,未考虑持久化存储问题。以及文档解析、文本分块、嵌入模型与向量库的技术选型,后续文章将逐步深入探讨,并以上述代码作为基础,持续优化。

3.3、检索流程

  • 检索流程的代码如下:

    def retrieval_process(query, index, chunks, embedding_model, top_k=3):    """    检索流程:将用户查询Query转化为嵌入向量,并在Faiss索引中检索最相似的前k个文本块。    :param query: 用户查询语句    :param index: 已建立的Faiss向量索引    :param chunks: 原始文本块内容列表    :param embedding_model: 预加载的嵌入模型    :param top_k: 返回最相似的前K个结果    :return: 返回最相似的文本块及其相似度得分    """    # 将查询转化为嵌入向量,normalize_embeddings表示对嵌入向量进行归一化    query_embedding = embedding_model.encode(query, normalize_embeddings=True)    # 将嵌入向量转化为numpy数组,Faiss索引操作需要numpy数组输入    query_embedding = np.array([query_embedding])    # 在 Faiss 索引中使用 query_embedding 进行搜索,检索出最相似的前 top_k 个结果。    # 返回查询向量与每个返回结果之间的相似度得分(在使用余弦相似度时,值越大越相似)排名列表distances,最相似的 top_k 个文本块在原始 chunks 列表中的索引indices。    distances, indices = index.search(query_embedding, top_k)    print(f"查询语句: {query}")    print(f"最相似的前{top_k}个文本块:")    # 输出查询出的top_k个文本块及其相似度得分    results = []    for i in range(top_k):        # 获取相似文本块的原始内容        result_chunk = chunks[indices[0][i]]        print(f"文本块 {i}:\n{result_chunk}")         # 获取相似文本块的相似度得分        result_distance = distances[0][i]        print(f"相似度得分: {result_distance}\n")        # 将相似文本块存储在结果列表中        results.append(result_chunk)    print("检索过程完成.")    return results
    
  • 上述代码实现了 RAG 技术中的检索流程。

    首先,用户的查询(Query)被预加载的 bge-small-zh-v1.5 嵌入模型转化为归一化的嵌入向量,进一步转换为 numpy 数组以适配 Faiss 向量库的输入格式。

    然后,利用 Faiss 向量库中的向量检索功能,计算查询向量与存储向量之间的余弦相似度,从而筛选出与查询最相似的前 top_k 个文本块。这些文本块及其相应的相似度得分被逐一输出,相似文本块存储在结果列表中,

    最终返回供后续生成过程使用。

3.4、生成流程

  • 生成流程的代码如下:

    def generate_process(query, chunks):    """    生成流程:调用Qwen大模型云端API,根据查询和文本块生成最终回复。    :param query: 用户查询语句    :param chunks: 从检索过程中获得的相关文本块上下文chunks    :return: 返回生成的响应内容    """    # 设置Qwen系列具体模型及对应的调用API密钥,从阿里云大模型服务平台百炼获得    llm_model = qwen_model    dashscope.api_key = qwen_api_key    # 构建参考文档内容,格式为“参考文档1: \n 参考文档2: \n ...”等    context = ""    for i, chunk in enumerate(chunks):        context += f"参考文档{i+1}: \n{chunk}\n\n"    # 构建生成模型所需的Prompt,包含用户查询和检索到的上下文    prompt = f"根据参考文档回答问题:{query}\n\n{context}"    print(f"生成模型的Prompt: {prompt}")    # 准备请求消息,将prompt作为输入    messages = [{'role': 'user', 'content': prompt}]    # 调用大模型API云服务生成响应    try:        responses = dashscope.Generation.call(            model = llm_model,            messages=messages,            result_format='message',  # 设置返回格式为"message"            stream=True,              # 启用流式输出            incremental_output=True   # 获取流式增量输出        )        # 初始化变量以存储生成的响应内容        generated_response = ""        print("生成过程开始:")        # 逐步获取和处理模型的增量输出        for response in responses:            if response.status_code == HTTPStatus.OK:                content = response.output.choices[0]['message']['content']                generated_response += content                print(content, end='')  # 实时输出模型生成的内容            else:                print(f"请求失败: {response.status_code} - {response.message}")                return None  # 请求失败时返回 None        print("\n生成过程完成.")        return generated_response    except Exception as e:        print(f"大模型生成过程中发生错误: {e}")        return None
    
  • 上述代码实现了 RAG 流程中的生成过程。

    首先,结合用户查询与检索到的文本块内容组织成大模型提示词(Prompt)。

    随后,代码通过调用 Qwen 大模型云端 API,将构建好的 Prompt 发送给大模型,并利用流式输出的方式逐步获取模型生成的响应内容,实时输出并汇总为最终的生成结果。

3.5、测试脚本

  • 测试脚本的代码如下:

    def main():    print("RAG过程开始.")    query="下面报告中涉及了哪几个行业的案例以及总结各自面临的挑战?"    embedding_model = load_embedding_model()    # 索引流程:加载PDF文件,分割文本块,计算嵌入向量,存储在FAISS向量库中(内存)    index, chunks = indexing_process('rag_app/test_lesson2.pdf', embedding_model)    # 检索流程:将用户查询转化为嵌入向量,检索最相似的文本块    retrieval_chunks = retrieval_process(query, index, chunks, embedding_model)    # 生成流程:调用Qwen大模型生成响应    generate_process(query, retrieval_chunks)    print("RAG过程结束.")if __name__ == "__main__":    main()
    
  • 在命令行窗口中执行指令定位到具体的 RAG 项目文件夹,在命令行中执行以下指令即可开始 RAG 应用测试:

    source rag_env/bin/activate  # 激活虚拟环境python rag_app/rag_app_lesson2.py # 执行RAG应用脚本
    
  • 测试代码通过 main() 函数串联各个步骤,从索引到生成,确保 RAG 的各个环节顺畅执行,准确完成了下面报告中涉及了哪几个行业的案例以及总结各自面临的挑战?的 RAG 问答任务。

  • 正确运行结果如下所示:

    RAG过程开始.加载Embedding模型中bge-small-zh-v1.5模型最大输入长度token: 512PDF文档的总字符数: 9135分割的文本Chunk数量: 24文本块Chunk转化为嵌入向量完成索引过程完成.查询语句: 下面报告中涉及了哪几个行业的案例以及总结各自面临的挑战?最相似的前3个文本块:文本块 0: 面的数字化转型。2.3.2面临的挑战:......相似度得分: 0.5915016531944275文本块 1: ...... 相似度得分: 0.5728524327278137文本块 2: ...... 相似度得分: 0.5637902617454529检索过程完成.生成模型的Prompt: 根据参考文档回答问题:下面报告中涉及了哪几个行业的案例以及总结各自面临的挑战?参考文档1: 面的数字化转型。2.3.2面临的挑战...参考文档2: ......参考文档3: ......生成过程开始:参考文档中涉及了三个行业的案例及其面临的挑战:1.### 制造业...... 2. ### 零售业......  3. ### 金融业......### 数字化转型解决方案概述-**制造业**:...... -**零售业**:...... -**金融业**:......这些案例强调了不同行业在数字化转型过程中面临的独特挑战......生成过程完成.RAG过程结束.
    

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

在这里插入图片描述

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

一文读懂 Faiss:开启高维向量高效检索的大门 Faiss(Facebook AI Similarity Search),如同一位身怀绝技的武林高手,为高维向量相似性搜索带来了高效的解决方案。本文将以清晰的章节结构、完整的内容和严谨的逻辑,深入剖析 Faiss,带你领略其独特的魅力。 阅读详情

相关推荐

主流向量数据库全面解析

随着大语言模型(LLM)的快速发展,RAG(检索增强生成)技术成为解决模型“幻觉”、提升专业领域回答精度的核心方案,而向量数据库则是RAG技术的底层支撑。向量数据库专门用于存储、管理和检索高维嵌入向量(Embedding),通过高效的相似度匹配算法,快速从海量数据中找到与查询向量最相关的结果。FAISS是由Meta(原Facebook)AI团队开源的轻量级向量检索库,并非严格意义上的“完整数据库”,而是专注于高维向量的高效相似度检索的核心算法库。

h a 6 6 6 c k 为 你解决复杂难题! 1745

深度学习--FAISS向量数据库

faiss 是相似度检索方案中的佼佼者,是来自 Meta AI(原 Facebook Research)的开源项目,也是目前最流行的、效率比较高的相似度检索方案之一。虽然它和相似度检索这门技术颇受欢迎,在出现在了各种我们所熟知的“大厂”应用的功能中,但毕竟属于小众场景,有着不低的掌握门槛和复杂性。

积木的笔记 2万+

python 成语接龙-连接数据库

from xpinyin import Pinyin import pymysql while 1: conn = pymysql.connect( host='localhost', #本地连接 user='root', #数据库账户名 password='password', #数据库密码 db='dic',

Hero2902的博客 598

相似向量检索库-Faiss-简介及原理

前言 由于项目需要,需要对某些种子用户进行look-alike,找到相似用户,所以近期对相似向量检索库Faiss进行一定的了解,接下来,结合相关资料,把我对这个库的了解记录在这里,也希望对你有所帮助! 一:Faiss简介 Faiss全称(Facebook AI Similarity Search)是Facebook AI团队开源的针对聚类和相似性搜索库,为稠密向量提供高效相似度搜索和聚类,支持十亿级别向量的搜索,是目前较成熟的近似近邻搜索库。 它包含多种搜索任意大小向量集(备注:向量集大小由RAM内存决定)

Catcher 3万+

武汉理工大学数据结构综合实验——连连看游戏综合实践

文章目录实验目的主要仪器设备及耗材一、实验要求二、分析与设计(非线性结构)1.数据结构的设计2.核心算法设计一条直线消子两条直线消子三条直线消子初始化游戏地图搜寻路径提示和重排3.测试用例设计4.测试效果总结 实验目的 (1)线性结构实验目的 调研连连看游戏,了解连连看游戏的功能和规则等 掌握集成开发工具VS2019的使用和C++的基础编程 了解MFC框架 了解线性结构,掌握数组的遍历、消子和胜负判断等算法 了解企业软件开发过程,应用迭代开发思路进行项目开发,养成良好的编程习惯和培养软件工程化思维 .

mo_zhe的博客 7612

从零构建腾讯滑块验证码破解引擎:逆向工程与实战对抗

本文深入解析腾讯滑块验证码(原天御验证码)的防护机制,包括环境感知层、行为分析层和验证决策层的核心技术。通过JSVMP虚拟机保护、轨迹验证算法和动态加密体系,腾讯验证码实现了高效的人机识别。文章还提供了安全研究实践指南,涵盖环境模拟和验证码识别方案,并探讨了防御对抗的演进趋势与合规研究建议。

rl6adventurer的博客 830

ai大模型应用开发:零基础入门到精通ai大模型应用开发,(非常详细)收藏我这一篇就够了!

随着大模型技术的飞速发展,我们正站在一个全新的技术前沿,探索着如何将这些强大的工具应用于实际问题的解决。如果你对AI大模型应用开发充满热情,那么你可以读一下这篇文章——一个系统全面的入门指南,专为渴望深入AI世界的你设计。先来总结下整个路径图:至今我们还没发现有其它博主如此系统和全面地写一套AI入门教程。

2401_85375298的博客 7624

10xGenomics官方可视化工具——Loupe Browser

Loupe Browser是⼀款10xGenomics开发的交互式桌⾯应⽤程序,⽤于探索10x单细胞数据,可以用来找出感兴趣的细胞、找出显著差异表达的基因、鉴定细胞类型、探索细胞亚类和数据共享。

weixin_47195452的博客 3358

手把手教你搭建AI智能体(超详细)从零入门到精通,这一篇就够了,快收藏!v

这是一篇使用Coze平台从零开始搭建AI智能体的详细教程。文章先介绍Agent概念和Coze平台,然后通过实际案例演示了一个新闻检索总结智能体的完整搭建过程,包括工作流创建、节点设置、测试和发布等步骤。教程强调,智能体开发的核心思路是将功能模块化并通过工作流标准化编排,最终集成到智能体框架中形成完整的AI应用。今天手把手带大家从0开始手搓一个非常简单但不乏实用性的智能体(Agent),就当是给大家的Agent基础入门课了!

2401_85375298的博客 2511

解决LangChain4j报错HTTP/1.1 header parser received no bytes

当使用调用自己部署的大模型服务时报错: 报错信息如下:

weixin_44455388的博客 2336

FPGA上的YOLOv8加速实现:从Verilog到高层综合

YOLOv8 采用了更高效的C2f模块与轻量化Backbone结构,模型特征包括:结构紧凑、检测头融合高低层特征;支持Anchor-free检测机制;支持INT8、FP16低精度推理;计算密度高,适合FPGA并行优化。

2501_93174773的博客 917

大模型教程(非常详细),大模型入门到精通,收藏这一篇就够了!

本文介绍了大模型的概念及其学习路径。大模型是指拥有数十亿甚至数万亿参数的深度学习模型,在文本生成、语言理解等任务中表现优异。学习大模型需要三步:1)掌握Python和Linux基础,熟悉NLP相关知识;2)学习NLP基础技术,理解Transformer等模型原理;3)实践GPT API调用、Prompt设计和模型微调。学习过程中需结合理论知识与实际操作,最终能够独立完成模型训练和部署工作。

2401_84204207的博客 998

HFSS实战项目——高带外抑制特性SIW带通滤波器

本文对单级滤波器和双级滤波器的设计、工作原理及仿真结果进行了详细分析,并验证了双级SIW带通滤波器在性能方面的优越性,为微波通信系统中滤波器的设计和应用提供了重要参考。

2401_87464239的博客 1816

RAG架构实战教程(非常详细),8种模式从入门到精通,收藏这一篇就够了!

Naive RAG 是最基础的检索增强生成架构,采用“索引-检索-生成”的经典流程。

Python_cocola的博客 936

2024美团秋招硬件开发笔试真题及答案解析

在 Linux 内核的网络设备驱动中,数据链路层的功能通常由网络协议栈的低层(如以太网驱动)实现,而不是作为网络设备驱动的一个独立层次。在 FreeRTOS 中,任务通知(Task Notifications)是一种轻量级的事件传递机制,用于在任务之间或任务与中断之间传递信号。小美正在开发一个简单的密码生成器,其中一个功能是将输入的字符串中的所有字母按字母顺序循环前移一位(即 'a' 变为 'z','B' 变为 'A',以此类推)。它包含了网络设备的各种参数和方法,用于管理网络设备的初始化、配置和操作。

XU157303764的博客 1676

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

RAG 入门到精通系列 1(非常详细),基础 RAG 从零基础到掌握,收藏这一篇就够了!

token 是模型用来表示自然语言文本的基本单位,可以直观的理解为“字”或“词”。对于英文文本来说,1 个 token 通常对应 3 至 4 个字母:

star_nwe的博客 696

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

LangGraph构建Agentic RAG实战教程(非常详细),从零开始到精通,收藏这一篇就够了!

使用自定义工具和向量数据库创建Agentic RAG 系统的分步指南,让它学会向人一样不断思考连续调用不同工具解决问题

m0_59235245的博客 1159

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

LangChain 1.0 入门基础教程(非常详细),RAG与Ollama实战从入门到精通,收藏这一篇就够了!

LangChain 1.0更接近于一个"数据流/工作流" 它解决的问题不是“怎么和模型聊天”,而是:一句用户输入,如何可靠地经过多个步骤,产出一个结果。

Python_cocola的博客 487

RAG技术架构深度解析(非常详细)零基础入门到精通,收藏这一篇就够了

本文主要介绍了RAG技术架构在AI编程中的创新应用及其面临的挑战。文章深入分析了RAG技术架构的兼容性、实时性和智能化水平等方面的问题,并提出了相应的改进措施,如加强标准化建设、引入实时数据处理技术和先进算法模型。同时,文章预测了RAG技术架构在智能化水平持续提升、跨领域融合加速以及数据隐私与安全保障方面的未来发展趋势。最后,文章回顾了RAG技术在AI编程领域的应用成果,并展望了其广阔的应用前景,同时设定了未来研究方向和目标,以推动RAG技术的进一步发展和优化。第一章 RAG技术概述与基本原理。

Javachichi的博客 3623

【AI时代】Java程序员大模型应用开发详细教程(非常详细),大模型入门到精通,收藏这一篇就够了!

大模型,全称「大语言模型」,英文「Large Language Model」,缩写「LLM是一种基于机器学习和自然语言处理技术的模型,它通过对大量的文本数据进行训练,来学习服务人类语言理解和生成的能力。eg:一个人从小学到高中毕业这整个的学习阶段 — 大模型的训练对于大家来说比较熟悉的大模型产品有两个DeepSeek | 深度求索国家对话产品大模型访问链接美国GPT-4、Phi-3(部分功能)xAI GrokGrok-1.5中国百度文心一言文心大模型4.0文心一言讯飞星火。

HUANGXIN9898的博客 2415

小白学RAG:智谱RAG技术实践总结(非常详细)零基础入门到精通,收藏这一篇就够了

相比之下,长文本的处理需要更高的成本,因为它要求模型处理更大量的文本。RAG通过首先检索相关的真实信息,然后生成基于这些信息的回答,从而显著减少生成幻觉的发生,提高回答的准确性和可信度。RAG是一种将信息检索(Retrieval)与生成模型(Generation)结合的技术,通过先检索相关信息,再生成准确和上下文相关的回答或内容,来增强语言模型的性能。传统的FAQ系统需要人工整理和维护,而RAG技术能够自动从大量的文档和知识库中检索和生成答案,减少了人工整理和更新FAQ的负担,提高了效率。

leah126的博客 1894

大模型零基础教程(非常详细),大模型入门到精通,收藏这一篇就够了!

大模型,是指在人工智能领域,特别实在自然语言处理和机器学习中,拥有大量参数的深度学习模型。这些模型通过在大规模数据集上进行训练,能够学到丰富的数据表示和模式,从而在各种任务上表现出色,如文本生成,语言理解,图像识别等。大模型是具有大量参数和复杂结构的模型,这些模型通常具数十亿甚至数万亿个参数,能够处理大规模的数据和复杂的任务。通常使用深度学习技术,如深度神经网络,可以从数据中学习并提取特征来执行各种任务。

h1453586413的博客 3886

大模型开发整体流程,大模型开发从 零基础入门到精通,非常详细收藏我这一篇就够了!

这篇文章分享了大模型开发的整体流程与学习资源。作者指出,大模型开发主要依赖Prompt Engineering而非模型调优,通过通用大模型+业务Prompt实现功能。开发流程包括确定目标、功能设计、架构搭建、数据库构建、Prompt优化、验证迭代等步骤。文末提供了从入门到精通的全套学习资源包,涵盖视频教程、学习路线图、电子书籍和技术文档等104G资料,由作者与鲁为民博士共同整理,旨在帮助开发者掌握大模型应用技术。

2401_84204207的博客 1216

RAG 入门指南:从零开始构建一个 RAG 系统(非常详细)零基础入门到精通,收藏这一篇就够了

在开始之前,我还是打算再次简要的介绍一下 RAG。在 Meta 的官方 Blog 上有这样一段话:这段话主要讲述了一个新的模型架构,也就是RAG (检索增强生成)的重要性和优势。可以概括为以下几点:1. 构建一个能够进行研究和上下文分析的模型虽然更具挑战性,但对未来的技术进步非常关键;2. 通过在知识密集的下游任务上微调,RAG 可以实现最先进的结果,比现有的最大的预训练序列到序列语言模型还要好;3. 与传统的预训练模型不同,RAG 的内部知识可以轻松地动态更改或补充。

Javachichi的博客 2188

RAG检索增强生成教程(非常详细)从入门到精通,一篇就够了,建议收藏!

Naive RAG 是最基础的检索增强生成架构,采用“索引-检索-生成”的经典流程。

Everly_的博客 1069

大模型RAG入门及实践(非常详细)零基础入门到精通,收藏这一篇就够了

说了这么多,下面我们来介绍一下什么是 RAG。RAG 是检索增强生成(Retrieval Augmented Generation )的简称,它为大语言模型 (LLMs) 提供了从数据源检索信息的能力,并以此为基础生成回答。简而言之,RAG 结合了信息检索技术和大语言模型的提示功能,即模型根据搜索算法找到的信息作为上下文来查询回答问题。无论是查询还是检索的上下文,都会被整合到发给大语言模型的提示中。RAG 的架构如图中所示。它既不是一个特定的开源代码库,也不是某个特定的应用,是一个开发框架。

Python_0011的博客 1406
上一篇: 多智能体开发框架选型:AgentScope与LangChain深度对比(非常详细),从入门到精通,收藏这一篇就够了!
下一篇: 李宏毅AI Agent核心技术精讲(非常详细),Context Engineering从入门到精通,收藏这一篇就够了!
Python_金钱豹
博客等级 码龄5年 1万+粉丝 2835原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值