AIGC入门,为什么你的大模型应用这么慢又贵?RAG架构的降本增效革命

大模型/ChatGPT/AIGC、论文审稿、具身智能、RAG等11大系列集锦 学术论文GPT的源码解读与二次开发:从ChatPaper到gpt_academic// 待更… 阅读详情

为什么你的大模型应用这么慢又贵?RAG架构的降本增效革命

引言:一个常见的"反模式"

很多开发者在使用大模型处理文档时,会采用一种看似简单的方案:将整个文档和问题一起发送给大模型,让它从中查找信息。这种"直接投喂"的方法直觉上很直接,但在实际应用中却会带来灾难性的后果。

# 反模式示例:直接投喂整个文档
response = llm.query(
    prompt=f"请在这个文档中查找关于'{keyword}'的内容:\n{document}"
)

这种方案在企业级应用中尤其危险。本文将深入分析这种"反模式"的问题,并介绍RAG(检索增强生成)架构如何解决这些问题。

一、两种方案架构对比

1.1 问题方案:直接投喂文档

高成本处理

每次请求都执行

用户请求

文档预处理

加载整个文档到内存

构建超长提示词
文档+关键词

调用大模型 API

模型读取整个文档
海量tokens

在文档中搜索关键词
上下文定位

提取相关信息

生成答案

返回答案给用户

关键特征:

  • 每次请求都处理整个文档
  • 大模型承担搜索和定位的双重任务
  • 上下文窗口被大量占用

1.2 解决方案:RAG架构

轻量处理

一次处理,多次复用

原始文档

文档切片

向量化嵌入

存入向量数据库

用户请求

关键词/问题向量化

向量相似度搜索

检索Top-K相关片段

构建精炼提示词
问题+相关片段

调用大模型 API

模型读取少量文本
几个片段

基于给定内容生成答案

返回答案+引用来源

核心优势:

  • 预处理一次,无限次查询
  • 向量检索替代模型搜索
  • 仅发送相关片段,减少token消耗

二、并发场景下的性能灾难

当用户量增大时,"直接投喂"方案的问题会呈指数级放大:

RAG方案:轻松扩展

用户1请求

向量搜索
文档A索引

用户2请求

向量搜索
文档A索引

用户N请求

向量搜索
文档A索引

检索3个片段
共3KB

检索3个片段
共3KB

检索3个片段
共3KB

发送3KB到大模型

发送3KB到大模型

发送3KB到大模型

快速响应

快速响应

快速响应

用户1获得答案

用户2获得答案

用户N获得答案

直接投喂方案:无法扩展

用户1请求

加载文档A
500KB

用户2请求

加载文档A
500KB

用户N请求

加载文档A
500KB

发送500KB到大模型

发送500KB到大模型

发送500KB到大模型

高延迟响应

高延迟响应

可能超时或失败

用户1获得答案

用户2获得答案

用户N获得答案

三、量化对比:数字不说谎

3.1 成本对比(假设GPT-4定价)

指标直接投喂方案RAG方案节省比例
输入token(500页文档)约125万token/次约3千token/次99.76%
单次API成本$3.75/次$0.009/次99.76%
1000次查询总成本$3,750$999.76%
响应时间10-30秒1-3秒70-90%

3.2 性能对比

维度直接投喂方案RAG方案改进
最大并发用户5-10100-100010-100倍
系统吞吐量10-20 QPS100-1000 QPS10-50倍
知识更新成本重新训练模型($)更新向量库(¢)100倍
答案准确率60-80%85-95%提升25%

四、实现示例:从"反模式"到"最佳实践"

4.1 问题方案实现(反模式)

import openai
import PyPDF2

class NaiveDocumentQA:
    """直接投喂整个文档的反模式实现"""
    
    def __init__(self, api_key, model="gpt-4"):
        self.api_key = api_key
        self.model = model
        
    def extract_text_from_pdf(self, pdf_path):
        """提取PDF全文"""
        text = ""
        with open(pdf_path, 'rb') as file:
            pdf_reader = PyPDF2.PdfReader(file)
            for page in pdf_reader.pages:
                text += page.extract_text() + "\n"
        return text
    
    def ask_question(self, pdf_path, question):
        """直接投喂整个文档提问"""
        # 1. 每次请求都读取整个文档
        document_text = self.extract_text_from_pdf(pdf_path)
        
        # 2. 构建超长提示词
        prompt = f"""请阅读以下文档并回答问题:

文档内容:
{document_text}

问题:{question}

请从文档中找到相关信息并回答。"""
        
        # 3. 调用大模型(消耗大量tokens)
        response = openai.ChatCompletion.create(
            model=self.model,
            messages=[{"role": "user", "content": prompt}],
            api_key=self.api_key,
            max_tokens=500
        )
        
        return response.choices[0].message.content

# 使用示例(灾难的开始)
qa = NaiveDocumentQA(api_key="your-api-key")
# 每次调用都上传500页文档!
answer = qa.ask_question("500_page_manual.pdf", "如何设置参数X?")
print(answer)

4.2 RAG方案实现(最佳实践)

脚本1: create_vector_store.py
作用:提前预处理文档,对文档进行向量化操作,并存储下来

import os
import sys
from typing import List
import chromadb
from chromadb.config import Settings
import PyPDF2
from langchain_text_splitters import RecursiveCharacterTextSplitter
import requests
import json


class PDFVectorizer:
    def __init__(self, pdf_path: str, collection_name: str = "my_documents"):
        """
        初始化PDF向量化器

        Args:
            pdf_path: PDF文件路径
            collection_name: 向量数据库集合名称
        """
        self.pdf_path = pdf_path
        self.collection_name = collection_name

        # 初始化ChromaDB客户端(持久化到磁盘)
        self.client = chromadb.PersistentClient(
            path="./chroma_db",  # 数据存储目录
            settings=Settings(anonymized_telemetry=False)  # 禁用遥测
        )

        # 创建或获取集合
        self.collection = self.client.get_or_create_collection(
            name=collection_name,
            metadata={"hnsw:space": "cosine"}  # 使用余弦相似度
        )

        # 初始化文本分割器
        self.text_splitter = RecursiveCharacterTextSplitter(
            chunk_size=500,  # 每个文本块约500字符
            chunk_overlap=50,  # 块间重叠50字符,保持上下文连贯
            separators=["\n\n", "\n", "。", "!", "?", " ", ""]
        )

    def extract_text_from_pdf(self) -> List[str]:
        """
        从PDF提取文本
        """
        print(f"正在读取PDF文件: {self.pdf_path}")

        try:
            with open(self.pdf_path, 'rb') as file:
                pdf_reader = PyPDF2.PdfReader(file)
                pages_text = []

                for page_num, page in enumerate(pdf_reader.pages):
                    text = page.extract_text()
                    if text.strip():  # 确保页面有内容
                        pages_text.append({
                            "text": text,
                            "page": page_num + 1,
                            "source": os.path.basename(self.pdf_path)
                        })
                        print(f"已提取第 {page_num + 1} 页内容")

                return pages_text

        except Exception as e:
            print(f"读取PDF失败: {e}")
            sys.exit(1)

    def get_embedding_from_ollama(self, text: str) -> List[float]:
        """
        使用Ollama的嵌入模型生成向量
        需要确保Ollama服务正在运行:ollama serve
        """
        url = "http://localhost:11434/api/embeddings"

        payload = {
            "model": "phi3:mini",  # 或您下载的其他嵌入模型
            "prompt": text
        }

        try:
            response = requests.post(url, json=payload, timeout=60)
            if response.status_code == 200:
                data = response.json()
                return data["embedding"]
            else:
                print(f"Ollama API错误: {response.status_code}")
                print(f"响应: {response.text}")
                return None
        except Exception as e:
            print(f"调用Ollama API失败: {e}")
            print("请确保Ollama服务正在运行: ollama serve")
            return None

    def create_embeddings_and_store(self):
        """
        主流程:提取文本 -> 分割 -> 向量化 -> 存储
        """
        # 1. 提取PDF文本
        print("步骤1: 提取PDF文本...")
        pages_data = self.extract_text_from_pdf()

        # 2. 分割文本
        print("步骤2: 分割文本为块...")
        all_chunks = []

        for page_data in pages_data:
            chunks = self.text_splitter.split_text(page_data["text"])

            for i, chunk in enumerate(chunks):
                if chunk.strip():  # 跳过空块
                    all_chunks.append({
                        "text": chunk,
                        "page": page_data["page"],
                        "source": page_data["source"],
                        "chunk_id": i
                    })

        print(f"共分割为 {len(all_chunks)} 个文本块")

        # 3. 向量化并存储
        print("步骤3: 向量化并存储到ChromaDB...")

        for idx, chunk_data in enumerate(all_chunks):
            if idx % 10 == 0:
                print(f"处理进度: {idx}/{len(all_chunks)}")

            # 获取文本向量
            embedding = self.get_embedding_from_ollama(chunk_data["text"])

            if embedding is None:
                print(f"跳过第 {idx} 个块(向量化失败)")
                continue

            # 准备元数据
            metadata = {
                "page": chunk_data["page"],
                "source": chunk_data["source"],
                "chunk_id": chunk_data["chunk_id"]
            }

            # 生成唯一ID
            doc_id = f"{chunk_data['source']}_p{chunk_data['page']}_c{chunk_data['chunk_id']}"

            # 添加到向量数据库
            self.collection.add(
                documents=[chunk_data["text"]],
                embeddings=[embedding],
                metadatas=[metadata],
                ids=[doc_id]
            )

        print("步骤4: 向量化完成!")
        print(f"成功存储 {self.collection.count()} 个文档块到集合 '{self.collection_name}'")
        print(f"数据保存在: ./chroma_db")


# 使用示例
if __name__ == "__main__":
    # 配置参数
    PDF_PATH = "/Users/mac/Downloads/第二曲线创新.pdf"  # 替换为您的PDF路径
    COLLECTION_NAME = "my_books"  # 集合名称

    # 创建向量化器并执行
    vectorizer = PDFVectorizer(PDF_PATH, COLLECTION_NAME)
    vectorizer.create_embeddings_and_store()

脚本2: rag_qa.py
作用:与大模型交互查询

import chromadb
from chromadb.config import Settings
import requests


class RAGSystem:
    def __init__(self, collection_name: str = "my_documents"):
        # 初始化向量数据库
        self.client = chromadb.PersistentClient(
            path="./chroma_db",
            settings=Settings(anonymized_telemetry=False)
        )
        self.collection = self.client.get_collection(collection_name)

    def retrieve_context(self, query: str, n_results: int = 4):
        """检索相关上下文"""
        # 生成查询向量(使用Ollama)
        url = "http://localhost:11434/api/embeddings"
        payload = {
            "model": "phi3:mini",  # 或您下载的其他嵌入模型
            "prompt": query
        }
        response = requests.post(url, json=payload)
        query_embedding = response.json()["embedding"]

        # 搜索
        results = self.collection.query(
            query_embeddings=[query_embedding],
            n_results=n_results,
            include=["documents", "metadatas"]
        )

        # 组合上下文
        context_parts = []
        for doc, meta in zip(results['documents'][0], results['metadatas'][0]):
            context_parts.append(f"[来源: {meta['source']} 第{meta['page']}页]\n{doc}")

        return "\n\n".join(context_parts)

    def ask_question(self, question: str):
        """完整的RAG问答"""
        # 1. 检索上下文
        print("正在检索相关文档...")
        context = self.retrieve_context(question)

        # 2. 构建提示词
        prompt = f"""请基于以下提供的参考资料回答问题。

参考资料:
{context}

问题:{question}

请根据参考资料提供准确、详细的回答。如果参考资料中没有相关信息,请诚实地说明不知道。

回答:"""

        # 3. 调用phi3模型生成答案
        print("正在生成回答...")
        url = "http://localhost:11434/api/generate"
        payload = {
            "model": "phi3:mini",
            "prompt": prompt,
            "stream": False,
            "options": {
                "temperature": 0.1,  # 低温度以获得更确定的答案
                "num_predict": 500  # 最大生成长度
            }
        }

        response = requests.post(url, json=payload)
        result = response.json()

        return result["response"]


if __name__ == "__main__":
    # 初始化RAG系统
    rag = RAGSystem("my_books")

    # 交互式问答
    print("=== RAG问答系统(基于本地PDF) ===\n")

    while True:
        question = input("请输入您的问题(输入 'quit' 退出): ")
        if question.lower() == 'quit':
            break

        answer = rag.ask_question(question)
        print(f"\n答案: {answer}\n")
        print("-" * 50)

五、企业级RAG架构演进

随着业务规模扩大,基础RAG架构可以演变为更复杂的企业级系统:

遇到性能瓶颈

增加优化

进一步扩展

企业级特性

多数据源

实时更新

访问控制

使用分析

自动优化

高级RAG架构

查询理解

多路检索

重排序

上下文压缩

智能生成

传统方案
直接投喂文档

基础RAG
检索+生成

企业级特性包括:

  • 多数据源集成:支持数据库、API、文档库等多种数据源
  • 实时更新:监控数据源变化,自动更新向量索引
  • 访问控制:基于角色的内容访问权限
  • 使用分析:监控查询模式,优化检索策略
  • 自动优化:根据反馈自动调整分块策略和检索参数

六、最佳实践建议

6.1 何时使用直接投喂方案?

仅在以下场景考虑:

  • 文档极小(< 1页)
  • 查询频率极低(< 10次/月)
  • 对延迟不敏感
  • 无成本约束

6.2 RAG实施路线图

  1. 阶段一:MVP验证

    • 选择关键文档试点
    • 实现基础RAG流程
    • 验证准确性和性能
  2. 阶段二:生产化

    • 建立文档预处理流水线
    • 实现监控和日志
    • 优化向量检索策略
  3. 阶段三:规模化

    • 支持多数据源
    • 实现缓存和CDN
    • 建立自动更新机制
  4. 阶段四:智能化

    • 加入查询理解
    • 实现个性化检索
    • 建立反馈学习循环

6.3 常见陷阱与规避

陷阱表现规避策略
分块不合理信息被切断使用重叠分块,按语义边界分割
检索质量差找不到相关内容尝试不同嵌入模型,加入重排序
上下文过长依然发送过多内容动态调整top-K,使用上下文压缩
知识陈旧回答过时信息建立定期更新机制
成本失控API费用超预期实施用量监控和限流

七、结论:为什么必须选择RAG?

通过本文的分析,我们可以得出明确结论:

  1. 经济性:RAG可以将大模型API成本降低99%以上
  2. 性能:响应时间从秒级降至亚秒级,并发能力提升10-100倍
  3. 准确性:基于精准检索,减少大模型"幻觉"
  4. 可维护性:知识更新无需重新训练模型
  5. 可扩展性:支持从个人使用到企业级部署的平滑演进

直接投喂整个文档的方案,虽然在概念上简单,但在工程实践中是不可持续的。RAG架构通过"预处理-检索-生成"的分层设计,将计算负担合理分配,是大模型应用能够规模化落地的关键技术。

随着大模型技术的普及,RAG已经从"可选优化"变为"必备架构"。任何计划在生产环境中部署大模型文档问答系统的团队,都应该将RAG作为基础架构的首选方案。

AIGC 实战教程 —— AIGC 摩天大楼 阅读详情

相关推荐

AIGC大模型应用开发入门:从提示工程到RAG实战指南

人工智能生成内容(AIGC)是当前技术革新的核心驱动力,它基于大语言模型的涌现能力,通过理解和生成自然语言、代码、图像等多模态内容,重塑了人机交互范式。其技术价值在于将海量知识转化为可编程的智能服务,显著提升了内容创作、代码生成、数据分析等场景的生产力。在实际工程实践中,开发者无需从零训练模型,而是通过提示工程、检索增强生成(RAG)等关键技术,将预训练大模型与业务逻辑结合,快速构建智能应用。本文聚焦于AIGC应用开发的基础路径,通过拆解智能体框架与工具调用原理,并以构建一个基于RAG的文档问答助手为例,系

weixin_33979203的博客 379

从ChatPDF到超级RAG:看大模型与RAG如何在AIGC时代强强联合

这是一本全面讲解RAG技术原理、实战应用与系统构建的著作。作者结合自身丰富的实战经验,详细阐述了RAG的基础原理、核心组件、优缺点以及使用场景,同时探讨了RAG在大模型应用开发中的变革与潜力。书中不仅揭示了RAG技术背后的数学原理,还通过丰富的案例与代码实现,引导读者从理论走向实践,轻松掌握RAG系统的构建与优化。无论你是深度学习初学者,还是希望提升RAG应用技能的开发者,本书都将为你提供宝贵的参考与指导。

程序边界 7911

UE5新手必看:如何在UMG控件中嵌入浏览器实现Web页面展示(附完整步骤)

本文为UE5新手提供了在UMG控件中无缝集成Web浏览器的完整实战指南。详细介绍了从启用WebBrowser插件、创建并配置WebBrowser控件蓝图,到编写动态加载与交互逻辑,以及在游戏关卡中实例化UI的全过程。文章还分享了性能优化技巧与常见问题排查方法,帮助开发者高效实现游戏UI内的Web页面展示与交互。

weixin_29243063的博客 713

AIGC实战之如何构建出更好的大模型RAG系统

本文介绍了如何构建出更好的大模型RAG系统,希望能对学习大语言模型和RAG的同学们有所帮助。 文章目录 1. 前言 2. S1 初级RAG 3. S2 高级RAG 3.1 模型测 3.2 策略测 3.3 模型微调测 4. S3 超级RAG 5. 本书作者 6. 内容简介 7. 购买链接

weixin_43178406的博客 3万+

Win10下Altera USB-Blaster驱动安装详解:禁用数字签名与排查指南

在嵌入式开发和FPGA调试过程中,驱动安装是工程师绕不开的环节,尤其是当操作系统对驱动签名有严格限制时,硬件往往无法被正常识别。数字签名是系统验证驱动程序来源和完整性的重要机制,Win10出于安全考虑,默认拒绝加载未经签名的驱动,这正是Altera USB-Blaster下载器在设备管理器中显示未知设备或黄色感叹号的根本原因。通过理解设备管理器的排查逻辑,掌握临时禁用驱动强制签名或开启测试模式的方法,配合正确的驱动文件路径选择与手动安装操作,即可解决Quartus无法检测到下载器的问题。这一流程同样适用于许

weixin_29164497的博客 248

基于51单片机扫地机器人(全套Proteus仿真+原理图+程序+说明书)

(内含源程序代码,原理图,仿真,讲解视频,元件清单等,【精品】值得推荐!!!扫地机器人是以单片机为主控制器。通过单片机控制小车行驶、除尘、蜂鸣。扫地机器人使用双电机驱动,以提高整车运动的平稳性;在智能车进驶过程中,采用双超声波模块实现避障。

2301_76434107的博客 1897

大模型 AIGC、Agent、MCP、RAG、Function Call分别是什么?

定义:人工智能生成内容,泛指由 AI 自动生成文本、图像、音频、视频等内容。原理基础:依赖于大规模预训练语言模型(LLM)、扩散模型(如 Stable Diffusion)、语音合成模型等。典型应用文本创作(新闻稿、小说、营销文案)图像生成(Midjourney、DALL·E)视频生成(Sora、Runway)音乐/语音合成(ElevenLabs)✅定位:AIGC 是目标层——即“要做什么”,是大模型能力的最终输出形态。

weixin_37926313的博客 1326

39-Halcon-- fit_primitives_object_model_3d函数功能(从3D数据中提取几何基元)

Halcon算子fit_primitives_object_model_3d工业应用精要 该算子专为3D几何特征提取设计,支持平面、球体、圆柱等基元拟合。核心优势: 参数化输出:返回几何元素的数学参数(如平面方程、球心半径) 智能控制:通过max_dist、min_size等参数调节拟合精度 工业场景适配:针对薄壁件、孔系等提供专用优化方案 典型应用流程: 数据预处理(点云降噪/采样) 基元类型与参数设置 多阶段拟合(先平面后圆柱) 几何精度验证 误差控制在0.1%-1.2%范围内(视点云密度而定),适用于

weixin_45590420的博客 1163

大模型应用终极地图:RAG、AIGC、Agent,看懂这篇就够了!

别再混淆了!RAG、Agent是“发动机”,智能问答、生成工具才是“车”——一文讲透大模型的技术与应用场景

m0_59163425的博客 903

NVIDIA AI 学习与认证指南:从入门到精通

NVIDIA的AI学习与认证体系,凭借其先进的技术背景、丰富的课程资源以及强大的行业认可度,已成为AI学习者和从业者的宝贵资源。通过深入学习NVIDIA的课程和获得认证,学习者可以快速掌握最前沿的AI技术,提升自己的职业竞争力。从基础课程到专业认证,NVIDIA为不同层次的学习者提供了量身定制的学习资源,帮助他们掌握AI的核心技能,提升职业竞争力。是其中的一个亮点,它结合了信息检索与生成式AI的能力,使AI可以从外部知识库中实时提取信息,生成更具深度和准确性的内容。,帮助学习者快速掌握该领域的核心技术。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1881

【YOLOv8系列】在Windows上离线搭建YOLOv8运行环境

我们都知道,通过 pip安装YOLOv8是非常方便的,但是有时候网络环境受到限制,比如公司的工作站(无法连接网络)或者机房的教学机器等等,只能通过离线的方式安装YOLOv8;今天就来记录一下离线搭建YOLOv8运行环境的过程。并记录了遇到的问题及解决过程。

AnChenliang_1002的博客 2007

大模型开发应用-RAG、AIGC与Agent

本章了解与学习RAG、Agent、AIGC的基础概念、关系、核心技术等

qq_43252507的博客 828

基于YOLOv5s的RK3588多线程部署16FPS暴涨到120FPS 轻量化深度学习部署实战教程(包括性能优化与加速)37

本文介绍了如何在RK3588平台上利用线程池优化YOLOv5模型的推理性能。RK3588内置3个NPU核心,支持多核并行处理。作者设计了一个线程池架构:1个线程负责数据读取,10个线程处理NPU运算,1个线程输出结果。该架构包含任务队列、线程管理和工作线程三个核心组件,通过合理设置线程数、任务队列大小等参数确保性能稳定。文章提供了详细的C++实现代码,包括线程池初始化、任务提交、结果获取等功能模块,并讨论了多线程同步和内存管理的关键技术要点。该方案可显著提升深度学习模型在嵌入式设备上的部署效率。

FJN110的博客 9230

一文详解AI大模型AGI、RAG、AIGC,通俗易懂

看了很多关于AI大模型的文章,发现其中高频出现了一些专业名词,比如AGI、RAG、AIGC等。看着很高大上,但这些名词到底是什么意思,又预示着什么,普通人很难通俗易懂的理解。 这篇文章,我尝试用通俗易懂的语言,讲清楚这些名词到底是什么意思,作用是什么,帮助大家更好地理解AI。

2401_85373691的博客 1775

Linux 下安装 openjdk 17【详细步骤】

JDK17,安装教程。

甘蓝的专栏 7510

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

一口气讲清楚:AGI、RAG、AIGC

看了很多关于AI大模型的文章,发现其中高频出现了一些专业名词,比如AGI、RAG、AIGC等。看着很高大上,但这些名词到底是什么意思,又预示着什么,普通人很难通俗易懂的理解。这篇文章,我尝试用通俗易懂的语言,讲清楚这些名词到底是什么意思,作用是什么,帮助大家更好地理解AI。。指的是具备人类水平广泛认知能力的智能系统,能够在多种领域自主适应、学习并执行复杂任务,而不仅限于特定预设场景。通俗来说,要具备AGI的能力,意味着AI工具要具备一个正常成年人的知识储备、认知、思考和解决问题能力。

m0_63171455的博客 1601

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

AI大模型入门必看:AGI、RAG、AIGC核心概念详解,收藏不迷路

文章用通俗易懂的语言解释了AI大模型的三大核心术语:AGI(通用人工智能,具备人类水平广泛认知能力)、RAG(检索增强生成,结合外部知识库提升内容准确性)和AIGC(人工智能生成内容,自动创建文本、图像等多种形式内容)。文章分析了这些技术的特征、作用和应用场景,帮助读者理解AI大模型的关键概念和发展现状。

2401_85390073的博客 1120

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【AIGC】如何构建出优质的大模型 RAG 系统

在人工智能生成内容(AIGC)领域,大模型检索增强生成(RAG)系统正成为处理大规模非结构化数据和复杂用户查询的核心技术方案。随着各行业对智能问答、知识服务、内容生成等需求的不断提升,构建高效、精准且鲁棒的 RAG 系统成为技术落地的关键挑战。本文将从系统架构、核心模块优化、工程化落地等方面,结合实战经验,探讨如何打造更优的大模型 RAG 系统。

shuizhudan223的博客 1419

大模型入门新书:大模型RAG实战-RAG原理、应用与系统构建

来啦,很久没给大家更新大模型的新书了,这次拿到了这本24年9月的新书,给大家详细介绍一波,就是这本 《大模型RAG实战-RAG原理、应用与系统构建》

瓦罗兰特顶级C位的博客 1156

【科普】AI、AGI、AIGC、AI Agent、RAG:深度解析定义、特点与应用

在科技飞速发展的今天,人工智能(AI)已然成为人们茶余饭后热议的焦点。随之而来,AGI、AIGC、AI Agent、RAG 等术语也频繁出现,让人既好奇又困惑。这些概念究竟是什么意思?它们各自有何特点和应用场景?接下来,就让我们深入探究一番。

kaka0722ww的博客 3139

AIGC实战之如何构建出更好的大模型RAG系统_ai大模型rag

ChatGPT爆火之后,以ChatPDF为首的产品组合掀起了知识库问答的热潮。在过去一整年中,大多数人都在完成RAG系统到高级RAG系统的迭代升级。但是技术发展是迅速的,如何深入了解RAG的发展,做出更好的RAG系统,其实还是非常困难的。大模型爆火后的RAG系统发展,大体可以将其分为3个阶段,初级、高级、超级。初级阶段更多的是搭建起系统的pipeline;高级阶段是在召回生成测修修补补,根据badcase反推流程上的优化技巧;

HUANGXIN9898的博客 1122

大模型技术揭秘:RAG、AIGC、Agent如何推动千行百业发展!

“ 别再混淆了!RAG、Agent是“发动机”,智能问答、生成工具才是“车”——一文讲透大模型的技术与应用场景 ” 做了这么长时间的人工智能应用,慢慢发现很多人到现在还分不清哪些是技术,哪些是应用场景,甚至很多时候会把这两个不同的东西混为一谈。 首先我们要明确一件事,人工智能是一项技术,然后利用这些技术去解决实际问题,而解决的这些问题是应用场景;技术本身是没有价值的,技术价值的体现就是在其应用场景。 技术与应用

2401_84204207的博客 961

【干货收藏】AI大模型入门必知:AGI、RAG、AIGC三大术语详解

文章通俗易懂地解析了AI大模型三大高频术语:AGI(通用人工智能)具备人类水平认知能力;RAG(检索增强生成)通过整合外部知识库提升生成内容准确性;AIGC(人工智能生成内容)利用AI自动生成各类内容。文章强调学习大模型技术的重要性,指出其在多个领域的应用价值和催生的高薪岗位,并提供系统学习资料,帮助读者入门AI大模型领域。

2401_84815887的博客 886

MCP、RAG、Agent、Function Call、AIGC:我们真的理解它们的本质区别吗?

在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。

2401_84815887的博客 1213
上一篇: 机器学习入门,微积分之导数概念
下一篇: AIGC入门,在Mac上基于Ollama和phi3:mini的完整Agent/Subagent例子
明月(Alioo)
博客等级 码龄18年 267粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月(Alioo)

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值