{结对编程/大模型} 实践营项目案例 | 基于RAG搭建政策问答智能聊天助手

Dify与RAG实战:从零搭建企业智能知识库问答系统 在大模型应用开发中,检索增强生成(RAG)是解决私有知识问答与AI幻觉问题的关键技术,它通过向量检索从知识库中召回相关片段,再交由大模型生成有依据的回答。然而从零实现文档分段、向量化、检索排序和模型调用,工程链路复杂。开源LLM应用开发平台Dify将这一流程产品化,提供可视化知识库管理、工作流编排与API发布能力。本文面向零基础开发者,以Docker Compose部署为例,完整演示Dify环境准备、文档导入、分段与嵌入、检索设置、智能问答应用编排、API调用和性能优化,并覆盖常见问题排查。适合企业内部知识 阅读详情

img

在构建政策问答智能聊天助手的过程中,我们采用了 RAG(Retrieval-Augmented Generation)技术。RAG 是一种结合了检索和生成的混合型自然语言处理技术,它通过检索相关信息来增强生成模型的上下文理解能力。RAG 的主要优点在于能够有效减少生成式模型的“幻觉”问题,即模型生成与现实不符的内容,从而提高回答的准确性和可靠性。我们将整个搭建过程分为三个关键阶段:数据预处理、推理和评价。

imgRAG 通用框架



01. 数据预处理

在预处理阶段,我们完成了清洗、分词并提取特征,确保数据质量。首先,我们将 PDF 政策文本转化成 TXT ,这一步基于开源项目 tesseract-ocr 的简体中文版本实现。

def process_pages(pdf_path, start_page, end_page):
    images = convert_from_path(pdf_path, dpi=300, first_page=start_page, last_page=end_page)
    text_pages = {}

    for i, image in enumerate(images, start=start_page):
        gray_image = ImageOps.grayscale(image)
        text = pytesseract.image_to_string(gray_image, lang='chi_sim+eng')
        print(f"\nPage {i} Text:\n{text}")  # Print recognized text
        text_pages[i] = text + "\n"

    return text_pages

在实施时,我们选取的政策文档为43页,经过 jieba 分词后,得到13194字,共471句话。

words = jieba.lcut(text)
num_words = len(words)

# Matches Chinese period, exclamation, question marks, and newlines
sentence_delimiters = r'[。!?]'  
sentences = re.split(sentence_delimiters, text)

sentences = [s.strip() for s in sentences if s.strip()]
num_sentences = len(sentences)

接下来是分段即 chunking 环节。我们调研了多种常用的分段方法,并着重实验了其中两种。

方法一:等字符分段法

这也是最常见的分段方法。为适应大模型每次输入 token 的最大数量限制,并且考虑到单句平均28个字符,我们采用 width=300,overlapping=50 的分割法。

while start < total_words:
        end = start + W
        chunk_words = words[start:end]
        chunk_text = ''.join(chunk_words)  # Concatenate words without spaces
        chunks.append(chunk_text)
        start = end - overlap  # Move the window forward with overlap

方法二:语义双重合并分段

语义双重合并分段(semantic chunking double-pass merging)中有双重过程,其中 First Pass 的目的是准确识别主题的差异,将最明显的句子连接在一起。而 Second Pass 进一步将以上小块组成主题各异的大块。对于主题的变化判定,我们设定了阈值 threshold = 0.7。

这里采用的 sentence tokenizer 是 sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2,为句子生成84维的向量。

chunks = []
    current_chunk = []
    i = 0
    while i < len(sentences):
        sentence = sentences[i]
        is_item = bool(item_pattern.match(sentence))
        if is_item:
            # Start a new chunk for the itemized list
            if current_chunk:
                chunks.append(current_chunk)
            current_chunk = [sentence]
            i += 1
            # Add subsequent itemized entries to the current chunk
            while i < len(sentences) and (bool(item_pattern.match(sentences[i])) or sentences[i].startswith(('(', '('))):
                current_chunk.append(sentences[i])
                i += 1
            # Add the completed itemized list chunk
            chunks.append(current_chunk)
            current_chunk = []
        else:
            # Regular sentence processing with semantic similarity
            if not current_chunk:
                current_chunk = [sentence]
            else:
                # Compute similarity with the previous sentence
                embedding_prev = get_sentence_embedding(current_chunk[-1])
                embedding_curr = get_sentence_embedding(sentence)
                sim = cosine_similarity(
                    embedding_prev.reshape(1, -1),
                    embedding_curr.reshape(1, -1)
                )[0][0]
                if sim >= 0.7:  # Adjust the threshold as needed
                    current_chunk.append(sentence)
                else:
                    chunks.append(current_chunk)
                    current_chunk = [sentence]
            i += 1

    # Add any remaining chunk
    if current_chunk:
        chunks.append(current_chunk)

在实践中,我们发现使用同样的大模型,第二种语义分段法的预测效果要优于第一种等字符分段法。这可能是因为在方法二的初始分段过程中,我们注意到了句块过于零散的情况:

img

条例化的信息在这里被视为分段的标志,而相反他们正应被归为一类。于是我们确保“()”级别的 itemization 都能被正确合并。

item_pattern = re.compile(r'^(\(?[一二三四五六七八九十0-9]+\)?[.。、])')  

以上两种分段法得到的结果,我们都以 chunks.pkl 和 chunk_embeddings.pkl 形式存储。

02. 推理环节

在推理环节中,我们利用大模型的深度学习功能,通过微调和优化来提高模型的理解和回答能力。我们需要依据用户提问找到相关联的文本,设计提示词,随后调用大模型作答。

先对 query 进行 tokenization,找到相似度最高的 top K 段落(K=5):

def get_top_k_chunks(query_embedding, chunk_embeddings, K):
    similarities = []
    for idx, chunk_embedding in enumerate(chunk_embeddings):
        sim = cosine_similarity(
            query_embedding.reshape(1, -1),
            chunk_embedding.reshape(1, -1)
        )[0][0]
        similarities.append((idx, sim))
    similarities.sort(key=lambda x: x[1], reverse=True)
    top_k = similarities[:K]
    return top_k 

为兼顾模型性能与潜在的参数优化可行性,我们选择 Llama-2-7b-hf 作为大模型。设计一组 prompt 后即可开始问答。

context = ''
    for idx, sim in top_k_chunks:
        chunk_text = ''.join(chunks[idx]) if isinstance(chunks[idx], list) else chunks[idx]
        context += f"【内容{idx+1}】\n{chunk_text}\n\n"
    prompt = f"""你是一名智能助理,请根据以下提供的政策内容,回答用户的问题。请确保回答准确且基于提供的内容。如果无法找到答案,请告知用户。

{context}
用户提问:
{query}
你的回答:
"""
 terminal>>
请输入您的问题:杭州市海外高层次人才创新创业有哪些补助?
生成的回答:
参照中国杭州大学生创业大赛在杭落地项目资助条目

可见该回答虽言之成理,仍存在改进空间。问题在于,如何量化评价这一模型的回答准确度?为此,我们引入了多项选择题(MCQ)作为评价集。

03. 评价环节

鉴于大模型生成的自然语言回答存在不确定性,量化其准确性变得颇具挑战。为此,构建一个包含确切答案的评价集显得尤为关键。我们期望该评价集满足以下特点:

首先,每个问题应有一个正确答案,而其他三个错误答案在常识范围内应具有一定的合理性,这样可以确保判断是基于检索到的文档内容,而非模型的先验知识。

其次,正确答案应在选项中随机分布,以避免在训练过程中出现过度拟合。通过人工标注与 AI 技术的辅助,我们成功构建了30组评价问答题,确保了评价集的质量和实用性。

以下是示例问题:

{
        "query": "哪些企业能获得杭州市的创业补助?",
        "options": {
            "A": "所有注册在杭的企业均可申请。",
            "B": "符合政府补助要求的创新型企业。",
            "C": "补助只提供给年收入超过一定标准的企业。",
            "D": "只限于科技创新型企业。"
        },
        "ground_truth": "B"
    },

在这组评价集上,我们分别验证了两种分段法。鉴于生成的回答不总是如指令里声明的那样,仅仅给出 ABCD 中的选项,我们提取回答中首个出现的合法大写字母作为 predicted answer。

  for char in predicted_answer:
        if char in ['A', 'B', 'C', 'D']:
            return char
    return None

经多组实验,等字符分段法取得了13.3%-20%的准确率,而语义分段法取得了26.7%-50%的准确率。总体而言,语义分段法所产生的文本在该评价集上更加可靠,除了上述提及的合并 itemization 的原因,还可能是因为等字符分段法恒定的 top K chunks 输入宽度过大,导致大模型更难准确理解指示。此处展示正确和错误的预测案例各一组以供参考:

img

img

至此为止,我们可以对不同大模型与分段法在该评价集上的性能搭配进行总结。

img

不同大模型与分段方法搭配的准确率

💡注:显示的准确率为多组实验取得的最高值。当调用更小模型时,我们相应更改了分段的策略。例如对于 microsoft/phi-2,我们选取 W=80,overlap=40。对于 Open_llama_7b,我们选取 top K=3。

img

在学员们利用 RAG 技术搭建政策问答智能聊天助手的流程中,他们经历了详尽的调研和调试,已经从最初的探索者成长为能够独立处理复杂任务的专家。然而,这个项目方案仍有提升空间。

我们注意到,模型的训练和推理过程并未完全分离,导致超参数(hyperparameters)的设定过于依赖初始设计,缺乏迭代优化的过程,这是机器学习早期的常见问题。随着深度学习技术的不断进步,出现了多种调参方法。在这些方法中,LoRA 因其能够在较低成本下实现大模型的局部微调而备受青睐。通过引入 LoRA 技术,我们可以更有效地优化模型,实现更精准的调整,从而提升整体性能。

01. 什么是 LoRA?

LoRA(low-rank adaptation,低秩适应)是一种高效的机器学习模型微调技术,它能够迅速使模型适应新环境。与 RAG 专注于特定数据集不同,LoRA 使模型能够更好地适应特定的任务需求。在面对多样化的细分任务时,全面微调一个大型模型往往成本过高,而 LoRA 提供了一种经济且快速的解决方案。通过在模型的 QKV(Query, Key, Value)部分引入低秩矩阵,即形式为 Bmxr x Arxn 的结构,其中 r 远小于 m 和 n,LoRA 只需训练两个残差(residual)矩阵A和B。这种方法显著减少了训练的参数量,同时对模型的自注意力层和交叉注意力层产生影响,从而实现对模型的快速且有效的微调。

02. 把 LoRA 应用到 RAG Chatbot

我们先将先前的评价集 dataset.json 以 20:5:5 拆成 train:valid:test。设置 lora_config 的参数。

def fine_tune_lora(model_name, train_dataset, valid_dataset):
    # Load the pre-trained LLaMA model
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto")

    # Apply LoRA to the model
    lora_config = LoraConfig(
        r=8,  # Low-rank approximation factor
        lora_alpha=16,  # Scaling factor for the LoRA weights
        target_modules=["q_proj", "k_proj", "v_proj"],  # Target the attention layers
        lora_dropout=0.1  # Dropout rate for LoRA layers
    )

    model = get_peft_model(model, lora_config)

把 evaluation_metric 设置为 accuracy。定义可训练的参数,以及训练器。为节约 GPU 资源,可下调精度。

training_args = TrainingArguments(
        output_dir='./results',
        num_train_epochs=3,
        per_device_train_batch_size=2,  
        per_device_eval_batch_size=2,
        gradient_accumulation_steps=4, 
        fp16=True,  # Enable mixed precision
        evaluation_strategy="epoch",
        save_strategy="epoch",
        logging_dir='./logs',
        logging_steps=10,
# Train the model
    trainer.train()

    # Save the fine-tuned LoRA model
    model.save_pretrained('fine_tuned_lora_llama')
    tokenizer.save_pretrained('fine_tuned_lora_llama'

最后预计需要 64.00 MiB GPU 空间。技术原理已经阐明,限于算力资源,工程部分留作将来的拓展实践。

​

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

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

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

政务机器人智能问答数据集。 faq_data.zip 政务机器人智能问答数据集。 立即下载

相关推荐

【自然语言处理】基于LangChain和RAG的文档问答与Web搜索ChatBot系统设计:Python环境下的多源数据处理与交互式应用构建

内容概要:本文介绍了基于LangChain和RAG(检索增强生成)技术的三种实用案例,分别是PDF文档问答ChatBot、基于Web URL的问答ChatBot以及基于SQL的CSV数据分析问答。每个案例都详细描述了实现步骤,包括环境配置、代码编写和运行效果展示。首先,PDF文档问答ChatBot通过上传PDF、TXT或DOC/DOCX格式的文件,利用OpenAI的嵌入模型和FAISS向量存储进行文本分割和相似度搜索,最终实现文档内容的问答交互。其次,基于Web URL的问答ChatBot通过爬取维基百科页面,提取并处理文本,再结合OpenAI API实现对特定主题的问答。最后,基于SQL的CSV数据分析问答通过整合SQLite数据库和LangChain,实现了对CSV数据的智能查询和分析,支持自然语言输入和SQL语句查询。 适合人群:具有Python编程基础,对自然语言处理和机器学习有一定了解的研发人员和技术爱好者。 使用场景及目标:①帮助用户快速搭建文档问答系统,适用于企业内部知识库查询、技术支持等场景;②提供基于Web的实时问答服务,方便用户获取权威信息;③实现CSV数据的智能化查询,提升数据分析效率,适用于零售、金融等领域。 阅读建议:本文提供了详细的代码实现和环境配置指南,建议读者在学习过程中动手实践,逐步理解和掌握各个组件的工作原理。同时,可以通过调整参数和优化代码,探索更多应用场景和可能性。

KBQA-问答数据集:QALD

QALD是一系列关于在关联数据上回答问题的评估活动, 其使用的知识库是DBpedia。QALD是一个开放的挑战,它针对的是在用户(用自然语言表达他或她的信息需求)和结构化(特别是RDF)数据之间进行交互(mediate)的所有系统。我们的目标是得到一个最先进的系统的优点和缺点,以及了解如何开发方法处理数据量巨大的RDF数据,这些数据分布在不同的数据集,并且是异构的,有噪音的,有时甚至不一致。任务: 参与者的一般任务如下:给定一个或几个RDF数据集和自然语言问题,返回正确的答案或检索这些答案的SPARQL查询

u013250861的博客 794

从ACTF2020看文件上传漏洞:你以为改后缀就完事了?这些坑我都帮你踩过了

本文通过ACTF2020的Upload题目深入剖析文件上传漏洞的复杂性和防御策略。文章揭示了常见误区,如仅修改文件后缀的局限性,并详细解析了绕过技巧和高级防御机制。从开发角度提供了构建安全上传功能的实用建议,帮助读者全面理解文件上传漏洞的本质与防护方法。

weixin_29278805的博客 246

从零构建垂直领域RAG知识库:打造专属智能问答助手,让学习效率飞跃

文章介绍了如何从零构建垂直领域RAG知识库,以"智能菜谱问答助手"为例,详细讲解了数据理解、架构设计和工程化挑战。针对检索粒度矛盾、语义检索局限和用户意图模糊三大问题,提出了父子文档索引、混合检索和查询重写等解决方案。文章强调了亲手构建RAG系统的价值,包括白盒化调试能力、极致灵活性和技术迁移性,为开发者提供了打造专属智能问答助手的技术路径。

2301_82275412的博客 1234

Windows游戏玩家必看:用Process Lasso优化CPU优先级和核心绑定,告别卡顿

本文为Windows游戏玩家详细介绍了如何使用Process Lasso优化系统性能。通过设置CPU优先级和核心绑定,可以智能管理进程资源,确保游戏获得最高调度权限,有效减少因后台程序干扰或Windows调度机制不完善导致的卡顿与帧数波动,从而提升游戏流畅度与稳定性。

weixin_29299807的博客 2218

在Proteus中用80C51模拟4线SPI点亮OLED屏幕

在Proteus里用80C51模拟4线SPI控制OLED屏幕使其显示图案(汇编实现)。

Connor3093的博客 5003

基于RAG架构搭建医疗智能问答系统

LLM大语言模型的出现,让许多系统或产品都有了更大的构建空间。这篇文章介绍了自己基于主流的RAG架构搭建一个医学智能问答系统的过程,一起来看看本文的梳理和解读。医疗智能问答是一个比较经典的医疗应用场景,在该场景下用户首先在对话系统中描述自己的症状,然后问答系统会根据输入的信息回复初步的医学建议。传统实现方法如规则引擎和知识图谱等由于缺乏对语境和语义的深层理解,导致无法处理过于复杂的问题。

weixin_58753619的博客 3258

Android逆向实战:用Xposed Hook微信消息发送(附完整代码)

本文提供了一份Android逆向实战指南,详细讲解如何使用Xposed框架Hook微信消息发送功能。内容涵盖环境搭建、逆向分析定位关键方法、编写Hook模块代码以及调试部署的全过程,并附有完整代码示例,帮助开发者深入理解Android应用底层交互与Hook技术。

weixin_29196315的博客 1118

PieDataCS助力结对{大模型/编程}实践营 ,搭建基于RAG政策问答智能聊天助手

作为联合发起方之一,拓数派携手1024基金会共同推进 AI4AI (Al for All Initiative)公益普及。结对{大模型/编程}实践营 是 AI4AI 雏鹰计划(Al for YoungEagle)的亮点项目,为零基础学生群体量身定制,体现了 AI4AI 的核心理念一一让 AI 从精英专属走向大众普及。本项目由拓数派大模型数据计算系统PieDataCS 提供技术和平台的强力支撑,为学员们提供了“低门槛”的实践体验,更为项目的落地高效赋能。

OpenPie的博客 1280

【Apollo学习笔记】——规划模块TASK之SPEED_HEURISTIC_OPTIMIZER

在Apollo星火计划学习笔记——Apollo路径规划算法原理与实践与【Apollo学习笔记】——Planning模块讲到……Stage::Process的函数会依次调用task_list中的TASK,本文将会继续以LaneFollow为例依次介绍其中的TASK部分究竟做了哪些工作。由于个人能力所限,文章可能有纰漏的地方,还请批评斧正。在配置文件中,我们可以看到LaneFollow所需要执行的所有task。本文将继续介绍LaneFollow的第10个TASK——动态规划规划目标加速度尽可能小。

sinat_52032317的博客 3425

使用 Simulink 进行电力电子系统的大信号模型仿真

电力电子系统(Power Electronics System)包括各种功率转换器(如 DC-DC 转换器、逆变器等)。这些设备中的关键组件(如 MOSFET、IGBT、电容器、电感器等)不仅影响系统的性能,还直接关系到系统的稳定性、效率和可靠性。因此,在设计阶段进行详细的建模和仿真至关重要。大信号模型仿真的目的是通过模拟系统在非线性条件下的真实行为,评估其瞬态响应、稳态性能以及对不同负载和输入电压变化的响应。通过本教程,我们介绍了如何使用 Simulink 进行电力电子系统的大信号模型仿真。背景介绍。

xiaoheshang_123的博客 303

从零开始搭建 RAG 智能问答系统:一个完整的实战案例|附源码

你是否曾经为处理大量文档而烦恼?是否希望有一个智能助手,能够快速回答你关于文档的任何问题?今天,我将分享一个完整的实战案例,教你如何从零开始搭建一个基于 RAG 技术的智能问答系统。引言还记得上次为了找一个文档中的关键信息,花了整整一个下午翻找的经历吗?或者为了回答客户的问题,不得不反复查阅产品手册的困扰?在信息爆炸的时代,如何高效地管理和利用文档资源,已经成为每个企业和个人都面临的挑战。今天,我要分享一个解决方案:使用 RAG(检索增强生成)技术构建智能问答系统。这个系统不仅能理解你的问题,还能从海量文档

zhishi0000的博客 4564

【语音识别】基于MFCC特征实现说话人语音识别matlab源码

1 模型 采用能够反映人对语音的感知特性的Mel频率倒谱系数(MFCC)作为特征参数,以及为避免时间规整问题采用矢量量化技术开发的说话人识别系统.MFCC主要的是模拟人耳的听觉过程,相对于其它参数它对语音波形的变化不敏感,更加稳定,系统取得很好的识别结果,实验表明系统训练和识别的计算量和存储量都比较低. 2 部分代码 functionvarargout=Main(varargin) % MAIN M-file for Main.fig % MAIN, by itself...

qq_59747472的博客 848

Dify构建本地知识库聊天助手RAG,大模型入门到精通,收藏这篇就足够了!

通过本章节我们可以基于dify快速构建基于本地知识库+Qwen/Qwen3-32B聊天助手,作为学习使用我们使用魔搭社区的免费的Qwen/Qwen3-32B接口调用来实现,让我们快速的了解RAG是如何构建的

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

太阳敏感器:卫星姿态控制的“指南针

在卫星姿态控制系统中,太阳敏感器(Sun Sensor) 是至关重要的光学姿态敏感器之一。它通过探测太阳光的方向,为卫星提供关键的姿态参考信息,确保卫星能够正确调整自身方位,维持稳定的对日定向,保障能源供应和任务执行。

ScilogyHunter的博客 1730

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Dify构建本地知识库聊天助手RAG(02)大模型入门到精通,收藏这篇就足够了!

通过本章节我们可以基于dify快速构建基于本地知识库+Qwen/Qwen3-32B聊天助手,作为学习使用我们使用魔搭社区的免费的Qwen/Qwen3-32B接口调用来实现,让我们快速的了解RAG是如何构建的

2401_82469710的博客 1086

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

全网首发!RAG智能问答系统保姆级实战:零基础3天搭建企业级知识库,收藏这篇就够了!

你是否曾经为处理大量文档而烦恼?是否希望有一个智能助手,能够快速回答你关于文档的任何问题?今天,我将分享一个完整的实战案例,教你如何从零开始搭建一个基于RAG 技术的智能问答系统。

m0_59163425的博客 1057

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【终极指南】RAG智能问答系统搭建,看这篇就够了!从0到1实战,附完整源码!

你是否曾经为处理大量文档而烦恼?是否希望有一个智能助手,能够快速回答你关于文档的任何问题?今天,我将分享一个完整的实战案例,教你如何从零开始搭建一个基于 RAG 技术的智能问答系统。

m0_59235245的博客 1434

Dify+RAG搭建企业级AI知识库与智能问答系统实战指南

RAG(检索增强生成)是大模型落地私有知识库问答的关键技术,其核心原理是在模型生成回答前先从外部知识库中检索相关片段,再结合提示词生成更精准的答案。这一机制能有效缓解大模型幻觉,并让企业文档、产品手册等私有资料安全地接入AI应用。然而,从零实现完整RAG链路涉及文档解析、向量化、召回、重排等复杂环节,技术门槛较高。Dify作为开源大模型应用开发平台,通过可视化编排将RAG能力产品化,开发者无需深入向量数据库底层,即可完成知识库创建、分段设置、检索测试和问答应用发布。本文基于实际部署经验,系统讲解如何使用Do

weixin_34347651的博客 343

从沟通压力到智能助手:5 分钟上手构建公益 AI 问答系统

公益项目经常面临沟通负担重、响应不及时的问题。本文通过一个可运行的 Demo,手把手教你用 LangChain 和 RAG 架构搭建一个 AI 聊天助手,让它来帮你自动回答常见问题、对接知识库,大幅提升沟通效率。这个 AI 聊天助手虽然是个“小项目”,但实用性超高。尤其是对于沟通压力大的公益团队,它能高效解答重复问题,让人力资源用在更关键的事上。通过 LangChain + 向量检索,你可以快速打造一个适配自己组织的 AI 服务助手,而且可拓展性也很强。

记录从移动端、鸿蒙到物联网与AI的完整实战与思考。专注于分享可复用的工程方案与产品思维,尤其深入鸿蒙生态与全栈开发。以十年工程与管理沉淀,为你提供清晰的技术纵深路径。坚信技术的价值在于“贯通”与“落地”。 1368

入门篇--人工智能发展史-9- RAG:让国产大模型“有料又靠谱”的核心玩法

摘要: RAG(检索增强生成)技术为DeepSeek等国产大模型提供了解决知识滞后、私有数据缺失和幻觉问题的关键方案。通过构建向量化知识库,RAG让模型在回答前先检索相关文档,确保答案准确可溯源。其四步流程(知识库构建、问题检索、信息整合、生成回答)显著提升了模型在企业内部文档、实时政策等场景的实用性。DeepSeek的中文原生支持和开源特性,使其与RAG结合成为中小企业低成本落地的优选方案,有效实现从通用模型到专属智能顾问的升级。

weisian的博客 3万+

FastGPT 智能问答接入企业微信:30 分钟零代码把团队知识库变成聊天助手

照这篇走完,约 30 分钟即可把 FastGPT 的智能问答机器人接进企业微信:团队知识库会直接变成企业聊天窗口里的问答助手。全程只操作两个网页后台——FastGPT 的发布渠道页和企业微信管理后台,不写一行代码。回答由你建好的 FastGPT 应用给出,企业微信只是问题进来的入口。 ## 🏗️ 这套集成是怎么工作的 企业微信是门店,机器人就是门口的接待台,员工每天在这里提问。FastGPT

gitblog_00904的博客 1124

RAG技术爆火!手把手教你搭建智能问答系统,轻松搞定海量文档!

本文介绍如何基于RAG技术搭建智能问答系统,实现高效文档管理。系统支持Word/PDF等多种格式,能快速检索文档内容并给出精准回答,同时提供答案来源追溯功能。文章详细讲解环境搭建、文档预处理、RAGFlow知识库构建、API集成等关键步骤,并分享图文混排文档处理的最佳实践。通过Gradio构建的交互界面,用户可轻松提问获取专业解答,适用于企业知识库、客服系统等场景。

m0_74942241的博客 273

从0到1教你快速搭建自己的AI智能客服系统:RAG知识库、AI流式对话、Vue聊天助手接入实战

这是一篇面向实战的 AI 智能客服搭建教程。文章不讲复杂理论,而是基于 AI-Agent-Node 开源项目,带你一步步完成一个可运行的 AI 客服系统:配置模型 Key、准备本地知识库、修改客服提示词、裁剪无关 tool / skill、接入 Vue 前端聊天组件,并通过 /api/chat 实现流式对话。教程目标是降低上手门槛,让新手也能快速体验和搭建自己的 AI 智能客服系统。

qq_48896417的博客 907

大模型应用开发Dify 安装、使用(小白超详细所用功能2026)

没有提示词 = AI 乱回答有提示词 = AI 按你的要求乖乖回答变量 = 让 AI 能 “读取外部数据” 的通道没有变量 = AI 只能瞎编有变量 = AI 能使用真实业务数据在 Dify 中,知识库(Knowledge Base)是基于RAG(检索增强生成)技术的核心模块,专门用来解决大模型“知识过时、不懂专业内容、容易瞎编(幻觉)”三大痛点。提示词定规矩,变量传数据,知识库给 “真知识”。Dify 文本生成(Text Generator)是一种一次性、单向、无对话记忆。

xin_yao_xin的博客 2万+
上一篇: 使用 FastGPT 工作流搭建 GitHub Issues 自动总结机器人
下一篇: 非计算机专业学生如何转行 AI,并找到大模型算法 offer?
AI大模型_学习君
博客等级 码龄3年 6137粉丝 551原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值