- 博客(303)
- 收藏
- 关注
原创 02-三层架构设计:前端+业务+AI层的职责划分
本文介绍了企业级AI Agent系统的三层架构设计,包括前端层、业务层和AI层。前端层采用Next.js+React技术栈,负责用户界面、身份认证和实时通信;业务层基于FastAPI实现核心逻辑,处理用户管理和数据存储;AI层使用LangChain等工具,专注于RAG检索和内容生成。各层通过HTTP/SSE协议通信,实现职责分离、独立扩展和团队并行开发。这种分层架构解决了传统单体应用的耦合问题,提升了系统的可维护性和扩展性。
2025-12-30 08:20:37
585
原创 01-从0到1:构建企业级AI Agent框架的完整思路
本文分享了企业级AI Agent框架的构建思路,针对企业AI应用的数据隐私、定制化等痛点,提出本地化部署方案。采用三层架构设计(前端Next.js、后端FastAPI、AI层LangChain+Ollama),核心实现RAG检索增强生成和流式对话功能。通过SSE实现实时交互,JWT保障认证安全,完整的数据流转流程支持问答和知识库导入。该架构优势在于数据不出内网、可二次开发、零API成本,为企业提供安全可控的AI解决方案。
2025-12-29 10:30:01
569
原创 25-客服工单系统实战(二):RAG检索与智能问答
本文介绍了基于RAG技术的客服工单智能问答系统实现。主要内容包括:RAG与传统LLM的区别,通过向量检索相似历史工单,使用Weaviate进行高效搜索,设计Prompt模板增强回答质量,以及利用LCEL构建问答链。文章提供了完整的Python代码示例,展示了从问题检索到答案生成的全流程,包括相似度搜索实现、Prompt工程设计和问答链构建方法。该系统能根据历史工单自动推荐解决方案,显著提升客服效率。
2026-01-04 10:46:31
509
原创 24-客服工单系统实战(一):CSV数据导入与向量化存储
本文介绍了客服工单系统实战的第一部分,重点讲解如何将CSV格式的历史工单数据导入向量数据库Weaviate。文章首先分析了业务场景需求,包括快速检索、智能推荐等功能,并详细说明了工单数据结构。技术架构采用Pandas进行数据清洗,Ollama实现文本向量化,最终存储到Weaviate数据库中。代码实现部分展示了数据导入模块的核心功能,包括数据加载、清洗、文本描述构建等关键步骤,为后续构建智能问答系统奠定了基础。本方案可显著提升客服效率,实现历史经验的复用和沉淀。
2026-01-04 10:45:37
296
原创 23-性能优化:从响应时间到并发处理
本文介绍了AI Agent系统的性能优化策略,涵盖数据库、缓存、并发和监控四个方面。数据库优化包括索引创建、连接池配置和批量操作;缓存优化采用多级缓存和预热机制;并发控制通过限流和信号量实现;性能监控则关注响应时间和慢查询日志。这些方法共同提升系统性能,适用于后端开发者和性能工程师。文章最后预告了下一篇关于智能客服系统的内容。
2026-01-04 10:43:41
141
原创 22-生产环境配置:环境变量与安全管理
本文介绍了生产环境配置的最佳实践,重点包括:1) 使用Pydantic管理环境变量,规范数据库、Redis等配置;2) .env文件的标准格式及注意事项;3) 敏感信息安全管理方法,如.gitignore排除真实配置文件;4) 环境区分实现方案,通过ENVIRONMENT变量控制不同环境行为。文章为运维和开发人员提供了生产环境配置管理的实用指南,确保系统安全性和可维护性。
2026-01-04 10:43:07
173
原创 21-Loguru日志系统:分布式应用的调试利器
本文介绍了使用Loguru构建结构化日志系统的方法,适合后端开发者和运维工程师。主要内容包括:1) Loguru基础配置,实现控制台和文件输出;2) 日志使用示例,包括不同级别日志记录和异常处理;3) FastAPI请求日志中间件实现;4) 结构化日志技巧,通过bind和contextualize添加上下文信息。文章还预告了下篇将探讨生产环境配置与安全管理。
2026-01-04 10:41:35
204
原创 20-Docker容器化:一键部署完整AI系统
本文介绍了使用Docker容器化部署完整AI系统的方案。通过Docker Compose配置整合了前端、后端、AI Agent、PostgreSQL、Redis、Weaviate向量数据库和Ollama LLM服务等组件,并提供了各服务的Dockerfile示例。文章详细说明了启动脚本流程,包括服务启动、数据库迁移和模型下载,同时介绍了健康检查配置和日志管理方法。该方案实现了AI系统的一键部署,适合运维工程师和后端开发者参考使用。
2026-01-04 10:38:52
211
原创 19-LCEL问答链:构建流式AI对话系统
本文介绍了如何使用LCEL(LangChain Expression Language)构建流式AI对话系统。主要内容包括:1)LCEL基础语法,通过管道操作符连接提示模板、LLM和输出解析器;2)RAG链实现,结合向量检索和文档格式化;3)流式执行方法,支持同步/异步逐块输出;4)批量处理多问题;5)完整FastAPI示例,实现实时流式对话接口。文章面向AI工程师和后端开发者,展示了如何快速构建高效AI对话系统。
2026-01-04 10:34:18
127
原创 18-RAG检索增强生成:让AI拥有专业知识
RAG(检索增强生成)技术通过结合外部知识库和LLM,显著提升AI回答的准确性和时效性。其核心流程包括:向量化问题、检索相关文档、组装上下文Prompt、LLM生成答案。优化手段涉及混合检索、MMR检索、重排序等技术,还能实现流式响应。相比传统LLM,RAG具有知识可更新、答案更专业等优势,适合需要精准专业知识的应用场景。
2026-01-04 10:33:25
226
原创 17-Ollama本地部署:llama3.2模型的实战应用
本文介绍了使用Ollama本地部署llama3.2模型的完整流程。首先指导安装Ollama并下载模型,包括对话模型和Embedding模型。然后展示了命令行交互和Python集成方法,包括同步/异步调用和流式输出。文章还提供了模型配置模板,可自定义温度、上下文长度等参数,并给出性能优化建议,如使用量化模型和调整并发设置。适合AI工程师和运维人员快速上手本地大模型部署与应用。
2026-01-04 10:30:40
344
原创 16-向量数据库Weaviate:语义搜索的底层原理
本文深入解析了向量数据库Weaviate的工作原理与应用实践。首先介绍了向量搜索的基本原理,包括文本转换为高维向量及相似度计算方法。接着详细展示了Weaviate的Schema设计、数据导入流程(结合LangChain生成向量)以及三种检索方式(纯向量搜索、混合搜索和过滤搜索)。最后提供了HNSW索引的性能优化参数配置。文章面向AI工程师和数据工程师,完整呈现了从数据建模到高效检索的向量数据库使用全流程,为构建RAG系统提供了实用指导。
2026-01-04 10:28:45
283
原创 15-LangChain入门:构建你的第一个RAG应用
本文介绍了如何使用LangChain框架构建RAG(检索增强生成)应用。内容涵盖RAG基础概念、环境准备、数据清洗与分块、向量化存储(使用Weaviate)、RAG链构建、流式生成等核心环节,并提供了完整的Python代码示例。文章适合AI工程师和后端开发者,通过分步讲解展示了从数据预处理到API接口实现的全流程,最后还预告了关于Weaviate向量数据库的后续内容。整个应用采用开源技术栈(Ollama+Weaviate),可快速搭建本地AI问答系统。
2026-01-04 10:27:45
259
原创 14-Alembic数据库迁移:团队协作的最佳实践
Alembic数据库迁移工具团队协作指南:介绍了Alembic的初始化配置、迁移文件创建与执行方法,包含自动生成迁移脚本和手动编写示例。重点阐述了团队协作流程:拉取代码后执行迁移、创建新迁移文件并检查后提交。提供了常用命令如升级/降级版本、查看迁移历史等操作说明,帮助开发团队有效管理数据库schema变更。文章适合后端开发者和DBA阅读,下一篇将介绍LangChain的RAG应用构建。
2026-01-03 10:58:38
136
原创 13-JWT双Token机制:access_token + refresh_token实现
本文介绍了在FastAPI中实现JWT双Token认证的完整方案,包含access_token(30分钟有效)和refresh_token(7天有效)机制。详细讲解了Token生成、登录接口、Token刷新流程、认证依赖注入以及受保护路由的实现方法,涵盖了从用户认证到API保护的完整链路。文章提供了可直接使用的代码示例,包括Token验证、密码哈希处理等安全细节,适合后端开发者和安全工程师参考实现安全的认证系统。
2026-01-03 10:58:01
318
原创 12-Redis缓存策略:提升API响应速度10倍
本文介绍了使用Redis实现高效缓存系统的策略,可显著提升API性能。主要内容包括:1) Redis异步客户端配置;2) 三种核心缓存模式(Cache-Aside、Write-Through和失效策略);3) 缓存装饰器简化实现;4) 缓存预热和穿透防护技巧。通过Python代码示例展示了具体实现方法,包括缓存键生成、空值处理和过期设置等关键细节,为后端开发者提供了实用的性能优化方案。
2026-01-03 10:57:31
258
原创 11-SQLAlchemy 2.0异步ORM实战指南
本文介绍了SQLAlchemy 2.0异步ORM的使用方法,涵盖模型定义、CRUD操作、关系查询、事务管理和性能优化。主要内容包括:使用Mapped和mapped_column定义数据模型;实现异步的增删改查操作;处理一对多关系查询;通过async with管理事务;以及批量插入、预加载等优化技巧。适合需要构建高性能数据库访问层的开发者学习使用SQLAlchemy 2.0的新特性。
2026-01-03 10:56:55
184
原创 10-FastAPI异步编程:高性能API服务的秘密
FastAPI异步编程摘要:本文深入解析FastAPI异步特性如何实现高性能API服务。通过对比同步阻塞(10请求需10秒)与异步非阻塞(10请求仅1秒)的代码示例,展示异步并发优势。重点讲解异步路由设计、数据库操作(SQLAlchemy异步配置与CRUD实现)以及正确使用异步的场景(如I/O密集型操作)。文章提供完整的异步数据库配置和API路由实现示例,帮助开发者构建高并发后端服务。
2026-01-03 10:56:23
554
原创 09-JWT认证在Next.js中的最佳实践
本文介绍了在Next.js中实现JWT认证的最佳实践。首先讲解了JWT的基本结构(Header、Payload、Signature)和双Token机制(短期的Access Token和长期的Refresh Token)。接着详细设计了完整的认证流程和Token刷新机制。最后提供了Token管理工具类和认证API服务的具体实现代码,包括登录、注册、获取用户信息、刷新Token和登出等功能。文章强调使用httpOnly Cookie存储Refresh Token以提高安全性,并展示了如何在前端应用中有效管理JW
2026-01-02 09:32:59
270
原创 08-SSE流式传输:实现打字机效果的AI回复
摘要:SSE流式传输实现打字机效果 本文介绍了使用SSE(Server-Sent Events)技术实现流式传输AI回复的打字机效果。SSE是一种服务器向客户端推送数据的单向通信技术,适合实现实时对话体验。文章分为三部分:1) SSE基础概念和消息格式;2) 前端实现方案,包括原生EventSource和使用fetch-event-source库;3) 打字机效果的具体实现,提供了React组件示例和实时流式处理方案。通过这种方法,开发者可以创建流畅的AI对话界面,提升用户体验。
2026-01-02 09:32:04
441
原创 07-TailwindCSS打造优雅的对话UI组件
本文介绍了如何使用TailwindCSS构建现代化的AI对话界面组件。首先详细讲解了TailwindCSS的安装配置和自定义样式系统,包括颜色定义和动画效果。然后重点展示了消息气泡组件的实现,包含基础版本和带动画效果的版本,涵盖了用户和AI消息的样式区分、时间戳显示以及平滑的入场动画效果。通过代码示例演示了如何利用TailwindCSS的原子化类名快速构建优雅的对话UI,同时结合Framer Motion实现流畅的交互动画。
2026-01-02 09:27:29
973
原创 06-Next.js 13构建现代化AI聊天界面
Next.js 13构建AI聊天界面摘要 本文介绍如何使用Next.js 13构建现代化AI聊天界面,涵盖项目初始化、App Router优势及核心组件实现。 关键点: 项目初始化使用create-next-app创建,采用TypeScript和Tailwind CSS App Router相比Pages Router优势明显,支持服务端组件和更简洁的数据获取方式 聊天界面包含认证检查、对话管理、消息发送等功能 使用useEffect实现消息自动滚动,优化用户体验 技术栈: Next.js 13、TypeS
2026-01-02 09:26:14
532
原创 05-本地化部署的优势:Ollama + Weaviate保护数据隐私
本文探讨了本地化AI部署的优势,重点介绍Ollama和Weaviate构建私有AI系统的方案。文章首先分析了云端API的隐私风险(数据泄露、训练数据使用、黑客攻击)和成本问题,随后详细介绍了本地部署架构,包括物理/逻辑数据隔离机制。技术实现部分展示了Ollama的安装使用、模型选择建议和性能优化技巧,以及Weaviate向量数据库的部署方法和Schema创建流程。这种本地化方案确保所有数据处理都在企业内网完成,既保障数据隐私,又能降低长期成本,特别适合对数据安全要求高的企业应用场景。
2026-01-01 09:17:22
913
原创 04-SSE vs WebSocket:实时AI对话的最佳实践
SSE vs WebSocket:AI对话系统实时通信协议选择 在构建AI对话系统时,选择合适的实时通信协议对用户体验至关重要。本文对比了SSE(Server-Sent Events)和WebSocket两种协议,特别针对AI对话场景进行分析。AI对话需要低延迟、单向推送、流式传输等特性,SSE因其简单实现、自动重连和HTTP兼容性成为更优选择。技术对比显示,SSE在服务器推送场景中复杂度更低,而WebSocket更适合双向通信需求。文章详细展示了SSE在FastAPI后端的实现方案,包括思考状态、检索结果
2026-01-01 09:15:37
802
原创 03-技术选型背后的思考:为什么选择Next.js + FastAPI + LangChain
技术选型的核心思路:✅成熟稳定- 选择经过生产验证的技术✅性能优先- 满足业务性能需求✅生态完整- 周边工具和社区支持✅成本可控- 考虑长期TCO✅团队匹配- 符合团队技术栈《SSE vs WebSocket:实时AI对话的最佳实践》资深开发者,创业者。专注于视频通讯技术领域。国内首本Flutter著作《Flutter技术入门与实战》作者,另著有《Dart语言实战》及《WebRTC音视频开发》等书籍。
2025-12-31 10:53:35
744
原创 WebRTC视频会议案例-APP(Flutter+Golang)
WebRTC技术经过多年的发展,已经非常成熟,它提供了HTML5流媒体技术的一整套解决方案及API,可用来实现一对一视频通话,视频会议,远程教育以及远程会诊等应用。尤其现在5G时代已经到来,WebRTC技术为必备技能。本课程为WebRTC的实战案例课程,使用Flutter+Golang+WebRTC实现视频会议系统。使用Flutter实现APP Desktop Web跨平台会议终端,Golang实现房间管理及转发消息。流媒体采用RTC领域流行开源流媒体ion-sfu.讲师介绍讲师:亢少军资深开发者,
2021-08-03 11:34:30
2904
1
原创 GitHub双重认证问题
最近被GitHub双重认证问题搞的头疼。这里给大家分享点儿经验。1:双重认证设置成功后需要把那一串code保存好2:如果要恢复双重认证,点击two-factor recovery来恢复3:之前保存的这些code用一行即可,不要把整个复制进来4: 最后一招,实在不行就给Github发邮件,哈哈。如下图所示如果更换手机或者手机重新安装了身份验证器,可以点击下面按钮恢复。注意:重新安装身份验证器或换手机时,网页端的GitHub不要退出,以免后续恢复麻烦。请关注我的站点:https://ww
2021-07-29 18:20:41
4140
原创 WebRTC视频会议H5(React+Golang+ION-SFU)
WebRTC技术经过多年的发展,已经非常成熟,它提供了HTML5流媒体技术的一整套解决方案及API,可用来实现一对一视频通话,视频会议,远程教育以及远程会诊等应用。尤其现在5G时代已经到来,WebRTC技术为必备技能。本课程为WebRTC的实战案例课程,使用React+Golang+WebRTC实现视频会议系统。使用React实现浏览器PC Web,Golang实现房间管理及转发消息。流媒体采用RTC领域流行开源流媒体ion-sfu.讲师介绍讲师:亢少军资深开发者,创业者。专注于视频通讯技术领域。国
2021-07-13 11:13:19
2292
转载 ion-sfu架构与模块
上面给一个简单架构图,很多细节表示不出来,需要看代码。1、简介得益于GO,ion-sfu整体代码精简,拥有极高的开发效率。结合现有SDK使用,可以避免很多坑:ion-sdk-js等。ion-sfu基于pion/webrtc,所以代码风格偏标准webrtc,比如:PeerConnection因为是使用了标准API,熟悉了之后很容易看懂其他工程,比如:ion-sdk-go/js/flutter。这样从前到后,整体门槛都降低了。2、工程组织这里给出主要模块列表├── Makefile //用来.
2021-06-19 14:18:32
1916
转载 ION的来由和发展
ION的来由和发展项目地址:https://github.com/pion/ionstar 数量:2.5K一、行业发展作为ION的发起人之一,同时也是PION的核心开发者。作者一直从事互联网直播和在线教育行业的研发,一直在关注流媒体开源项目的发展,也一直关注LVS等行业论坛。行业内有个趋势:传统RTMP+FLV+FLASH的技术栈在逐渐向RTMP+FLV+RTC,甚至纯RTC发展。二、语言发展开发语言是底子,底子好才能发展好;语言决定项目的整体发展和方方面面的成本和效率;比如,CNCF里毕
2021-06-16 17:31:18
621
原创 如何运行PION/ION(分布式流媒体系统)
相信很多小伙伴不知道如何将PION/ION项目跑起来,这里整理了一些具体步骤,希望能帮助到大家。依赖基础环境nats.ioredisGolang (latest version)1. 安装 Nats.ioMacOS> brew update> brew install nats-serverWindows> choco install nats-serverLinux> curl -L https://github.com/nats-io/nats-s
2021-04-19 14:46:33
2563
13
原创 Flutter+Dart入门与实战套餐(含电子商城系统)
套餐(全): https://ke.qq.com/course/package/23970?tuin=2c77f7f0课程目标掌握Dart语言及Flutter跨平台开发技术适用人群零基础,小白,Dart,Flutter开发爱好者课程简介课程中包含大量应用示例,不仅可以学会理论知识还可以灵活应用。课程中的示例基于Flutter环境开发,在学习到Dart语言知识的同时还学会了Flutter框架技术。课程中通过接近商业的一个商城案例详细阐述了如何使用Flutter开发App,内容完整步骤清晰,提供
2021-03-26 14:19:10
1015
2
原创 WebRTC通话原理-信令服务-连接建立
作者: 亢少军信令服务从上面我们知道了2个客户端协商媒体信息和网络信息,那怎么去交换?是不是需要一个中间商去做交换?所以我们需要一个信令服务器(Signal server)转发彼此的媒体信息和网络信息。我们在基于WebRTC API开发应用(App)时,可以将彼此的App连接到信令服务器(Signal Server,一般搭建在公网,或者两端都可以访问到的局域网),借助信令服务器,就可以实现SDP媒体信息及Candidate网络信息交换。信令服务器不只是交互媒体信息SDP和网络信息Candidate,
2021-03-24 13:43:10
1020
原创 WebRTC通话原理-网络协商-NAT-ICE-STUN-TURN
作者: 亢少军彼此要了解对方的网络情况,这样才有可能找到一条相互通讯的链路。需要做以下两个处理。获取外网IP地址映射。通过信令服务器(signal server)交换“网络信息”。理想的网络情况是每个浏览器的电脑都是公网IP,可以直接进行点对点连接。如图所示。实际情况是我们的电脑和电脑之间都是在某个局域网中并且有防火墙,需要NAT(Network Address Translation,网络地址转换),如图所示。在解决WebRTC使用过程中的上述问题的时候,我们需要用到STUN和TURN
2021-03-24 13:38:51
1002
原创 WebRTC通话原理-SDP协议
作者: 亢少军会话描述协议Session Description Protocol (SDP) 是一个描述多媒体连接内容的协议,例如分辨率,格式,编码,加密算法等。所以在数据传输时两端都能够理解彼此的数据。本质上,这些描述内容的元数据并不是媒体流本身。从技术上讲,SDP并不是一个真正的协议,而是一种数据格式,用于描述在设备之间共享媒体的连接。SDP包含内容非常多,如下面内容所示为一个SDP信息。//版本v=0//<username> <sess-id> <sess-v
2021-03-23 11:31:59
550
原创 WebRTC通话原理-媒体协商
作者: 亢少军首先两个客户端(Peer-A和Peer-B)想要创建连接,一般来说需要有一个双方都能访问的服务器来帮助它们交换连接所需要的信息。有了交换数据的中间人之后,它们首先要交换的数据是Session Description Protocol(SDP),这里面描述了连接双方想要建立怎样的连接。彼此要了解对方支持的媒体格式。比如,PeerA端可支持VP8、H264多种编码格式,而PeerB端支持VP9、H264,要保证二端都正确的编解码,最简单的办法就是取它们的交集H264。如下图所示。有一个
2021-03-22 11:10:56
781
原创 WebRTC通话原理-基本流程
WebRTC通话最典型的应用场景就是一对一音视频通话,如微信或QQ音视频聊天。通话的过程是比较复杂的,这里我们简化这个流程,把最主要的步骤提取出来,如图所示。通话原理基本流程假定通话的双方为Peer-A和Peer-B。双方要建立起通话,主要的步骤如下所示。1 PeerA与PeerB通过信令服务器进行媒体协商,如双方使用的音视频编码格式。双方交换的媒体数据由SDP协议描述。2 PeerA与PeerB通过STUN服务器获取到各自自己的网络信息,如IP和端口。然后通过信令服务器转发互相交换各种的网络信息
2021-03-20 09:32:43
1346
原创 RTMP视频直播系统(PC网页/微信小程序/播放器/流媒体)毕业设计
课程简介带领大家一步步搭建视频直播及文字聊天系统。学习地址:https://ke.qq.com/course/1708578?tuin=2c77f7f0所学知识:掌握RTMP协议理论掌握HLS协议理论掌握OBS推流工具使用掌握播放器配置及使用掌握流媒体Nginx-Rtmp安装配置及使用掌握流媒体集群配置方法理解连麦原理理解并掌握源服务器朝边缘服务分发技术掌握React实现IM客户端技术掌握Node实现IM服务端技术熟练使用WebSocket收发消息讲师介绍亢少军展翼科技联合
2021-03-18 10:25:05
1096
原创 WebRTC一对一视频通话(Flutter+React+Go+WebRTC方案)
一对一视频通话学习: https://ke.qq.com/course/package/29474?tuin=2c77f7f0WebRTC交流学习群:425778886WebRTC技术经过多年的发展,已经非常成熟,它提供了HTML5流媒体技术的一整套解决方案及API,可用来实现一对一视频通话,视频会议,远程教育以及远程会诊等应用。尤其现在5G时代已经到来,WebRTC技术为必备技能。课程介绍:本课程为WebRTC音视频开发系列课程,包含了PC Web iOS Android终端以及中转及信令服务器的
2021-03-17 09:06:57
2229
原创 WebRTC音视频开发-多对多视频通话SFU方案(Flutter+React+Go+WebRTC)
学习地址:https://ke.qq.com/course/3134372?tuin=2c77f7f0WebRTC技术经过多年的发展,已经非常成熟,它提供了HTML5流媒体技术的一整套解决方案及API,可用来实现一对一视频通话,视频会议,远程教育以及远程会诊等应用。尤其现在5G时代已经到来,WebRTC技术为必备技能。本课程为WebRTC的实战案例课程,使用Flutter+React+Golang+WebRTC实现多对多通话的完整解决方案。使用React实现浏览器PC Web,Flutter实现移
2020-12-18 14:40:55
2482
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅