#强大的开源项目RAG-GPT:5分钟实现LLM大模型应用到你的网站!

python实战(七)——基于LangChain的RAG实践 本文详细介绍了使用LangChain构建RAG程序的各个流程,并给出了对应的python实现代码。 阅读详情

 引言
随着chatgpt等大型语言模型(LLM)能力越来越强大,如何将这些模型精准地应用于特定垂直领域,让各行业开发者快速利用LLM赋能也成为热点和痛点。众所周知,LLM在处理超出其训练数据或涉及最新实事时,常会产生“幻觉”现象,简单理解就是会出现一本正经的胡说八道,回答不准确。针对此问题,RAG通过从外部知识库检索相关文档作为上下文输入到LLM有效地减少了生成内容不符合实际的情况。

## RAG技术原理介绍
在介绍RAG-GPT项目之前,我们首先要理解RAG的基本原理,RAG在问答系统中的一个典型应用主要包括三个模块,分别是:

- Indexing(索引):将文档分割成chunk,编码成向量,并存储在向量数据库中。
- Retrieval(检索):根据用户输入query和向量数据库中chunks语义相似度检索与问题最相关的前k个chunk,形成本次问答的上下文。
- Generation(生成):将原始问题和检索到的chunks整合形成合适的prompt一起输入到LLM中,让LLM输出与上下文有关的回答。


RAG的基本流程可以用一张图说明,上图中展示了一个完整的问答流程:
- 用户发起query
- Retieval模块根据query检索出Indexing中的相似的chunks,
- 形成合适的prompt后输入到LLM大模型中,最后输出答案。

以上是对RAG技术的基本介绍,如果想深入了解技术细节可以参考这篇文章:[RAG技术全解析:打造下一代智能问答系统](https://github.com/AI-Inception/RAG-In-Action/blob/main/doc/rag_overview.md),技术细节很深入。

## 如何快速实现RAG的智能问答系统?
从RAG的原理介绍中可以看到要实现RAG整套架构还是存在一定工作量,需要构建索引、检索、集成LLM、prompt优化等一系列模块,具有一定的难度。

基于此,RAG-GPT提供了一整套开源解决方案,它基于Flask框架,旨在利用LLM和RAG技术快速搭建一个全功能的客服解决方案。该项目包括前端用户界面、后端服务和管理员控制台,为企业利用LLM搭建智能客服等对话场景提供了一个完整的自动化解决方案,可以帮助开发者快速搭建一个智能问答系统,且代码完全开源。


### RAG-GPT的基本架构
**RAG-GPT关键特性:**
- 内置LLM支持:无缝集成chatgpt、智普AI等大型语言模型,利用其丰富的语言理解能力,生成答案。
- 知识库支持丰富:支持各类本地文件,网站地址作为知识库进行检索。
- 快速部署集成:仅需Python环境,无需额外的中间件或依赖,可以在**五分钟**内部署生产级别的对话服务机器人并一键集成对话机器人到你的网站上。
- 灵活配置:用户友好的后台管理界面,支持定制化设置,简化维护流程。

从特性可以知道,RAG相比一些商业收费的基于知识库的问答系统优势在于
- 易用、快速搭建
- 能自主管理知识库,避免商业秘密和知识产权泄漏
- 可以自主选择LLM模型和甚至扩展部署本地模型。


以下是RAG-GPT的技术架构图:

从上图可以看到,RAG-GPT对基本的RAG流程进行了多方面优化:
- 1.在query阶段支持query改写、query扩展、query routing等功能;
- 2.在Indexing和Retrieval阶段,索引和检索阶段支持向量数据库、类ES的BM25索引数据库,增强了索引和检索的准确性;
- 3.在Generation阶段,构建prompt时引入了历史对话作为上下文进行结果生成。

###  用RAG-GPT 5分钟搭建智能问答系统
RAG-GPT的基本组成分为三部分:
- 一是智能问答后端服务
- 二是管理后台系统
- 三是用户使用的chatbot UI。

下面,将介绍如何启动RAG-GPT项目和使用这三个模块,将RAG-GPT集成到你的网站只需要**5个步骤:**

##### 1. 下载源代码,通过Git克隆RAG-GPT的GitHub仓库:
```bash
git clone https://github.com/open-kf/RAG-GPT.git && cd RAG-GPT
```

##### 2.配置环境变量
复制env环境变量文件
```python
cp env_template .env
```
修改配置项
```python
OPENAI_API_KEY="你的openai api key"
URL_PREFIX="http://127.0.0.1:7000/"
```
在启动RAG-GPT服务之前,需要修改`.env`文件中的相关配置。
- 修改OPENAI_API_KEY="此为你的openai api key",在[open ai api keys](https://platform.openai.com/api-keys)申请api key(RAG-GPT官方马上将支持国内的智普AI,使用智普ai的api key替换即可)
- 本地启动时,修改URL_PREFIX="http://127.0.0.1:7000/"
##### 3.执行启动命令
分别执行以下命令,即可启动,
先安装python依赖项
```shell
python3 -m venv myenv
 ```
 ```shell
source myenv/bin/activate
 ```
 ```shell
pip install -r requirements.txt
 ```
 启动项目即可:
 ```shell
python create_sqlite_db.py
python rag_gpt_app.py

 ```

##### 4.快速体验聊天效果
- 1.启动服务后先打开管理后台,
首先要登录到管理后台,浏览器输入:http://127.0.0.1:7000/open-kf-admin/#/login账号为:**`admin`** 密码 :**`open_kf_AIGC@2024`**

- 2.导入知识库,以open im网站为例,在管理后台切换到source tab,输入open im官网地址:https://docs.openim.io/, 点fetch即可一键爬取网站内容作为知识库。

等待爬取完成后,点击update即可在向量数据库中建立索引,用于问答时检索内容

浏览器打开http://127.0.0.1:7000/open-kf-chatbot/,  即可开始问答


##### 5.一键嵌入到网站
RAG-GPT提供了将聊天机器人嵌入到网站的方法,使得用户可以直接在网站上使用智能问答服务。
打开管理后台菜单切换到embed,复制两个代码即可实现一键嵌入,这两个代码片效果分别如下:一个是iframe嵌入一个聊天窗口,一个是在页面右下角点击弹出聊天窗口。
可以新建一个文本文件,将代码复制进去,用浏览器打开就可以看到嵌入效果啦:
```html
<iframe 
src="http://127.0.0.1:7000/open-kf-chatbot"
title="Chatbot"
style="min-width: 420px;min-height: 60vh"
frameborder="0"
></iframe>

<script 
src="http://127.0.0.1:7000/open-kf-chatbot/embed.js" 
bot-domain="http://127.0.0.1:7000/open-kf-chatbot" 
defer
></script>
```

##### 6.管理后台其他功能
- 1. 管理员可以通过仪表板查看用户的历史请求记录,以便进行分析和优化。
可以按照时间、用户查询聊天记录和修改问答对的答案以更符合自身需求。

- 2. 配置聊天对话的UI
用户可以定制化聊天对话框的风格,使其更符合自身网站的风格特性。

### 结语
RAG-GPT项目具备开源免费、易于部署集成、开箱即用和功能丰富的特点,为LLM大模型在特定领域的应用落地提供了一套企业级的解决方案。接下来,RAG-GPT官方将引入本地文件知识库,集成国内LLM大模型等特性,使得RAG-GPT满足更多样化的需求。
### 关于我们

五分钟搭建私有知识库智能问答系统:RAG-GPT实战指南 检索增强生成(RAG)是一种将信息检索与大型语言模型生成能力相结合的技术范式,旨在解决大模型的知识滞后与幻觉问题。其核心原理是通过向量化技术将私有知识库转换为语义向量,在用户提问时进行相似度检索,并将检索到的相关上下文与大模型提示相结合,从而生成准确、有据可依的回答。这项技术的核心价值在于,它能在不重新训练模型的前提下,低成本、高效率地让大模型掌握最新、最准确的私有知识,实现数据安全可控。在应用场景上,RAG技术特别适用于构建企业智能客服、内部知识库问答、个性化内容生成等系统。本文以开源框架RAG-GPT为 阅读详情

相关推荐

LLM落地实战:AI Agent与RAG工程化落地指南

大语言模型(LLM)从实验室走向生产环境,核心在于工程化落地能力。AI Agent通过状态管理与目标分解,实现多步任务自动编排;RAG则构建动态知识注入机制,解决模型幻觉与知识滞后问题。二者协同形成‘Agentic RAG’范式,显著提升系统自主求解能力。技术价值体现在可复现、可部署、可监控的最小可行单元(MVP)构建——如基于Ollama+LangChain+Chroma快速搭建PDF智能问答系统,或用AutoGen编排会议纪要生成流水线。典型应用场景覆盖法律文书审查、供应链风险预警、企业知识库问答等。本

weixin_30235225的博客 382

使用RAG-GPT快速搭建LangChain官网智能客服

Indexing(索引):将文档分割成chunk,编码成向量,并存储在向量数据库中。Retrieval(检索):根据用户输入query和向量数据库中chunks语义相似度检索与问题最相关的前k个chunk,形成本次问答的上下文。Generation(生成):将原始问题和检索到的chunks整合形成合适的prompt一起输入到LLM中,让LLM输出与上下文有关的回答。用户发起query结合Bot实际应用场景,评估是否对query进行rewrite。

alysblmd 3914

AI Agent如何通过RAG与工具调用实现企业级智能应用

最近在技术社区和海外开发者圈子中,一个话题的热度持续攀升:Google 推出的新协议或功能,似乎能让 AI Agent(智能体)瞬间理解并融入一个公司的运作体系。这听起来像是科幻电影里的情节,但结合 Google 在 AI 领域的持续发力,尤其是其 Gemini 系列模型的演进,这背后可能预示着企业级 AI 应用范式的又一次重大变革。对于开发者、技术决策者乃至普通用户而言,理解这一趋势背后的技术逻辑、潜在影响以及我们如何应对,变得至关重要。 本文将从技术角度深入剖析这一现象。我们将首先厘清 AI Agent

diaomeijiao3430的博客 409

10 个顶级的 RAG 框架,开源的

检索增强生成(RAG)已成为一种强大的技术,用于增强大型语言模型的能力。RAG框架结合了基于检索的系统的优点和生成模型的优点,能够提供更准确、更具上下文意识且更及时的响应。随着对复杂AI解决方案的需求不断增长,GitHub上出现了许多开源的RAG框架,每个框架都提供了独特的功能和能力。

star_nwe的博客 4643

GLM-5技术解析:国产大模型如何实现中文推理能力跃迁

大语言模型(LLM)的推理能力是其从通用工具迈向专业智能的核心指标,其本质依赖于思维链(Chain-of-Thought)建模与可验证推理(Chain-of-Verification)机制。随着中文场景对长文本理解、跨文档逻辑缝合与结构化输出的需求激增,传统Decoder-only架构在法律、政务、教育等垂直领域面临上下文稀释、验证不可溯、部署成本高等瓶颈。GLM-5通过Hybrid Decoder-Encoder微调适配器(HDEA)与工程化CoV推理引擎,首次在128K上下文下实现稳定、可审计、低延迟的

weixin_33863087的博客 480

python实现RAG相关思路与过程

python实现大模型向量检索RAG

NLP与推荐算法 1025

Dify实战指南:从零构建企业级AI应用,快速集成LLM与RAG

最近在尝试将AI能力集成到业务系统中时,很多开发者都面临一个共同难题:从零开始构建一个稳定、可扩展的AI应用,需要处理模型调用、提示工程、上下文管理、数据持久化等一系列复杂问题,开发周期长且门槛高。Dify的出现,恰好为这个痛点提供了一个优雅的解决方案。它通过可视化的方式,将AI应用开发的核心流程标准化,让开发者能像搭积木一样快速构建AI应用。 本文将以2026年的技术视角,为你带来一份从零开始的Dify实战指南。无论你是想快速验证一个AI想法,还是需要为企业构建一个生产级的AI助手,通过本文,你都能掌握D

banshen0201的博客 447

RAG模型的开源工具与资源:快速搭建自己的知识检索增强系统

1. 背景介绍 1.1 什么是知识检索增强系统 知识检索增强系统(Knowledge Retrieval Augmented System)是一种结合了知识检索和自然语言处理技术的智能系统,旨在帮助用户快速、准确地获取所需信息。这类系统在搜索引擎、问答系统、智能助手等领域有着广泛的应用。

AI天才研究院 847

生成式AI在电商领域的应用:从Adobe Blog看零售网站流量提升的技术实现

多模态交互:结合图像、视频和3D模型的沉浸式购物实时个性化:基于会话上下文的动态内容生成自主代理:AI购物助手完成比价、下单全流程生成质量与业务指标的关联性推理成本控制用户体验的量化评估通过从0打造个人豆包实时通话AI这类实践项目,开发者可以快速掌握AI集成的方法论。我在实际测试中发现,合理设计的生成系统能在2周内实现关键指标的可度量提升。基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。

2600_94960202的博客 556

abaqus2matlab的安装与使用:如何用matlab提取abaqus的odb结果

官网abaqus2matlab官网地址matlab社区地址matlab社区地址在这里可以看到.m文件的源码论文:Abaqus2Matlab: A suitable tool for finite element post-processingabaqus2matlab可以处理.inp、.fil、.odb三种类型的文件。.inp文件:处理功能就在于只是单纯的输出inp文件,由于我自己写了自己的函数,不需要用到这个功能。

qianxin1234的博客 2018

android HTTPS未校验服务器证书漏洞修复

上述代码是重写了域名校验的逻辑,每个证书里携带的域名是不可更改的,如果证书是合法的证书签发机构签发的,并且域名是和你要请求的域名对的上的,基本上就能确认你访问就服务器地址就是要访问的服务器地址,这样才是安全的。上述代码就是重新了证书校验的逻辑,信任所有的证书,正确的逻辑是要校验证书是否是可信任的证书签发机构所认证的,如果不校验的话你虽然是用了https加密传输,只要你的客户端用户信任了其他的证书哪怕是非法的证书,一样能够请求通过,而这个证书的服务器就可以解密你的报文,拿到你的隐私信息了。

kyzycyey的专栏 2623

如何用Crawl4AI实现智能网页数据采集:5分钟从零到专家指南

在数据驱动的时代,你是否还在为获取网页数据而烦恼?面对动态加载、反爬机制和杂乱无章的HTML,传统爬虫工具往往力不从心。今天,我要向你介绍一个革命性的解决方案——Crawl4AI,这是一个开源的LLM友好型智能网页爬虫和抓取器,它能将你的数据采集效率提升10倍以上!🚀 ## 为什么你需要智能网页采集工具? 想象一下这个场景:你需要从竞争对手网站收集产品信息,但页面内容通过JavaScript

gitblog_00393的博客 611

西门子PLC与汇川SV660P伺服速度模式配置实战指南

本文详细介绍了西门子S7-1200 PLC与汇川SV660P伺服驱动器在速度模式下的配置实战指南。从硬件接线、伺服参数配置到TIA Portal软件组态和PLC程序编写,提供了全面的操作步骤和实用技巧,帮助工程师快速解决伺服系统调试中的常见问题,确保系统稳定运行。

weixin_30316097的博客 500

如何在5分钟内用Rig构建你的第一个AI智能体应用

你是否曾经想过构建自己的AI助手,却被复杂的API集成和模型选择搞得头疼?Rig框架正是为了解决这个问题而生!作为基于Rust构建的全栈智能体框架,Rig让构建AI应用变得前所未有的简单和高效。无论你是Rust新手还是有经验的开发者,都能在几分钟内创建功能强大的AI智能体。 ## 为什么选择Rig框架? Rig的设计理念是**轻量级、模块化、便携式**,这意味着你可以轻松创建从简单聊天机器人到

gitblog_00566的博客 1037

有限时间 vs 固定时间 vs 预定时间滑模:稳定性分析与仿真验证方法对比(中)

有限时间滑模控制(FTSMC)和固定时间滑模控制(FixTSMC)是两种重要的控制策略,旨在实现系统状态的快速收敛。FTSMC通过设计滑模面和控制律,确保系统状态在有限时间内收敛到原点,但其收敛时间与初始状态相关。FixTSMC则进一步优化,使收敛时间与初始状态无关,适用于高动态环境,具有更强的鲁棒性和更平滑的控制信号。两种方法均通过李雅普诺夫函数证明其稳定性,并通过仿真验证其有效性。FixTSMC在工程应用中更为可靠,尤其适合安全关键系统。

Lyajpunov的博客 3224

MatGPT:在MATLAB中集成AI助手,实现代码生成与调试自动化

大语言模型(LLM)通过API接口为开发者提供了强大的自然语言理解和代码生成能力,其核心原理是基于海量数据训练的Transformer架构,能够根据上下文预测并生成连贯的文本或代码。这一技术为工程实践带来了革命性价值,特别是在科学计算和算法开发领域,能够显著提升开发效率,实现智能化的代码辅助和问题解答。在实际应用中,开发者常需在IDE与AI工具间频繁切换,导致工作流中断。MatGPT作为一个开源项目,通过深度集成ChatGPT API到MATLAB环境,有效解决了这一痛点。它支持多模态输入、预设提示词管理和

weixin_42388898的博客 500

Flowise入门必看:拖拽式构建LLM应用全流程详解

本文介绍了如何在星图GPU平台上自动化部署Flowise镜像,实现拖拽式构建大语言模型应用。通过该平台,用户无需编程即可快速搭建智能问答机器人等AI应用,显著降低开发门槛并提升效率,特别适合企业知识库管理和客户服务场景。

weixin_36019375的博客 122

x265开源编码器源码框架深度解析

x265开源编码器源码框架深度解析

世界那么大,我想去看看~【随心更新,看世界去了😄】 669

Dify 新手入门指南:30分钟快速上手AI应用开发平台

对于刚接触 Dify 的开发者或业务人员来说,最大的障碍往往不是理解 AI 模型本身,而是如何快速上手一个功能强大的平台。Dify 作为一个集成了智能体工作流、RAG 知识库和多种模型支持的 AI 应用开发平台,其界面和功能模块相当丰富。如果一开始没有理清账号体系、核心界面和基本操作逻辑,后续无论是构建聊天机器人、设计复杂工作流还是管理知识库,都会感到无从下手。本文将从零开始,带你完成 Dify 的账号开通,并系统性地导览其核心界面与功能模块,让你在 30 分钟内建立起对 Dify 平台的清晰认知,为后续的

chuozhi7142的博客 418

Python爬虫实战:如何从Google Maps和OpenStreetMap抓取地理坐标数据

地点名称:地理位置的名称或地址。地理坐标:经度和纬度。类别信息:比如餐馆、商店、公园等。评论数据:如果可用,获取用户评论。本文介绍了如何使用Python爬虫从Google Maps和OpenStreetMap抓取地理坐标数据,并展示了如何存储和分析这些数据。通过实际的代码示例,您可以学习到如何处理不同类型的地图数据抓取任务,以及如何应对反爬虫机制。掌握这些技术后,您可以进行更广泛的地理数据分析,提供更有价值的地理信息服务。

2201_76125261的博客 1041

国科大学习资料--现代数字信号处理I(张颢)--2020年期末考试试卷

国科大学习资料–现代数字信号处理I(张颢)–2020年期末考试试卷 国科大学习资料–现代数字信号处理I(张颢)–2020年期末考试试卷 国科大学习资料–现代数字信号处理I(张颢)–2020年期末考试试卷 =========================================================================================================================================================

无名何许人的博客 3574

3分钟掌握智能网页采集:Crawl4AI让你的数据获取效率飙升10倍

还在为网页数据采集头疼吗?面对复杂的JavaScript动态加载、反爬虫机制和数据清洗难题,你是否经常花费数小时甚至数天时间却收效甚微?现在,Crawl4AI为你带来了全新的解决方案——这是一款开源的AI友好型网页爬虫,让数据采集变得前所未有的简单高效。 ## 当传统爬虫遇到现代网站时,你会遇到什么挑战? 想象一下,你需要从新闻网站获取最新的财经资讯,或者从电商平台收集产品价格信息。传统爬虫工

gitblog_00754的博客 807

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

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

AI应用开发实战指南:从Python、RAG到Coze/Dify的三层能力模型

如果你在2026年还在纠结“AI应用开发到底该学什么”,或者面对Python、Prompt、RAG、Coze、Dify这些层出不穷的工具感到无从下手,那么这篇文章就是为你准备的。这不仅仅是一份课程清单,而是一张帮你从“知道很多名词”到“能做出东西”的实战路线图。 过去两年,AI应用开发领域经历了从“调API”到“搭系统”的深刻转变。单纯调用大模型API已经无法满足企业级需求,开发者需要掌握从提示词工程、知识库构建到智能体编排、可视化部署的全链路能力。然而,市场信息极度碎片化:Python教程只讲语法,Pro

weixin_30235225的博客 352

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Dify开源AI应用开发平台:一站式构建RAG与Agent工作流实战指南

在AI应用开发领域,你是否曾面临这样的困境:面对OpenAI、Claude、通义千问等众多大模型,每个项目都要重新编写复杂的集成代码;想要构建一个智能客服或文档分析Agent,却卡在RAG检索、工作流编排和API部署的繁琐细节上;团队内部希望快速验证AI创意,但开发周期长、技术栈复杂,导致想法难以落地。如果你正在寻找一个能一站式解决这些问题的平台,那么Dify正是你需要的答案。 Dify作为一个开源的AI应用开发平台,它并非另一个需要你从零搭建的框架,而是一个“开箱即用”的生产力工具。它将大模型集成、可视化

ithome 387

【技术教程】LaVague大模型浏览网页开源项目

LaVague 代表了在 Web 自动化领域的一次成功实践。它将自然语言理解、大模型推理与经典浏览器自动化工具深度融合,创造出“说一句话就能操作网页”的全新范式。凭借模块化架构、强大的可观测性、成本可控能力以及活跃的社区,LaVague 正在从技术 Demo 逐步走向企业级生产应用。随着开源社区数据收集与模型微调的持续推进,未来 LaVague 有望在通用性、鲁棒性和多步复杂任务处理能力上实现质的飞跃。对于任何希望把重复性 Web 操作变成智能、高效、零代码。

Chandler2017的博客 521

OpenChat终极指南:10分钟搭建专属AI聊天机器人平台

OpenChat是一个革命性的AI聊天机器人平台,让每个人都能快速构建和部署个性化的智能聊天助手。无论你是开发者、企业主还是AI爱好者,OpenChat都能帮助你在10分钟内创建功能强大的专属聊天机器人,支持PDF文档、网站内容和代码库等多种数据源,打造真正智能的对话体验。 ## 为什么你需要OpenChat?🚀 在人工智能快速发展的今天,搭建一个智能聊天机器人往往需要复杂的技术栈和大量的开

gitblog_01194的博客 406
上一篇: 稳扎稳打 部署丝滑 开源即时通讯(IM)项目OpenIM源码部署流程(linux windows mac)
下一篇: 通过重新排序改进检索增强生成 (RAG)
OpenIM
博客等级 码龄5年 295粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值