阿里面试官挑眉:AI 项目不用 FastAPI?你用 C++ 写的?我:用C++写的,高并发+AI推理!想问项目难点吗?
作者:微信文章现在AI很火,对于开发岗来说,掌握 AI应用相关开发技术,是很加分的。
之前,知识星球里发布了 HTTP服务框架 这个项目。
用C++开发一个 基础HTTP服务框架,在这个框下来,可以更容易开发各种 应用。
这次,在 HTTP服务框架 基础上,我们做一个【AI 应用服务平台】,旨在帮助 C++录友们入门AI应用开发。
如果 大家学过 HTTP服务框架 这个项目,基本 7天内,就可以入门 该项目,如果没有项目实战经验直接学该项目,可能需要 1-2个月。
该项目亮点
✅ AI 聊天(多轮会话 + 会话记忆):把大语言模型的 API 嵌入 C++ 服务,支持上下文记忆与历史同步。✅ AI 图像识别(MobileNetV2 + ONNXRuntime):图片 → 预处理 → 模型推理 → 标签返回,端到端闭环。✅ 工程级部署:一键 Docker 镜像,包含 MySQL / RabbitMQ 等依赖,拿到 API key 即可跑起来。✅ 高并发设计:基于 Muduo + 自研 HTTP 框架 + RabbitMQ + 线程池,AI 推理任务异步化,避免阻塞主线程。✅ 简历友好:明确的可写项(AI 集成 / 推理部署 / 异步队列 / 会话持久化),面试问得住、写得漂亮。
项目演示视频
谁适合看、能收获什么
C++ 录友,想在简历上,添加AI应用开发 案例的录友,都可以学习。
有底层/后端基础的同学:几小时读完掌握全局结构并能跑起来。刚入门 AI 应用的同学:7 天内完成实战,从模型接入到前端交互全流程。求职/转行者:拿到一个能写在简历上的「AI 应用服务平台」项目:面试时能说清楚技术难点与工程化实现。
简历可写点:
AI 聊天服务集成:在 C++ 框架中调用大模型 API,实现多轮对话与会话记忆。AI 图像识别服务:结合 OpenCV + ONNX Runtime,完成图像预处理与推理全流程。高并发架构设计:利用 Muduo + RabbitMQ + 线程池,提升系统在多用户场景下的并发处理能力。工程化能力:熟悉 Docker 部署、消息队列解耦、数据库异步写入等服务化开发经验。
项目架构
系统整体设计
本项目基于 自己开发的 HTTP 服务框架,在其之上扩展了 AI 聊天服务 与 AI 图像识别服务。整体架构分为三层:
客户端层:用户通过浏览器或前端页面发起请求(如登录、聊天、上传图片)。应用服务层:由自研 HTTP 框架承载,整合了 AI 对话服务、AI 图像识别服务、用户管理服务。基础支撑层:由数据库、消息队列、推理引擎及三方 API 组成,为应用层提供持久化、异步处理和模型推理能力。
在整体流程上,用户请求经过 HTTP 服务框架调度,调用对应的 业务 Handler,并通过消息队列、数据库、推理引擎完成 AI 聊天、图像识别等功能,再将结果返回到前端页面。
技术架构解读
1、业务服务层
AI 聊天服务:通过 cURL 调用阿里云百炼 API,实现大语言模型对话。AI 图像识别服务:基于 OpenCV + ONNX Runtime 部署轻量级模型,实现图片分类。用户服务:负责登录、注册、登出、会话管理等功能。
2、三方依赖库
json:C++ JSON 解析curl:HTTP 请求封装Muduo:高性能网络库OpenCV:图像预处理SimpleAmqpClient / Base64:用于消息队列通信与图片数据解码
3、基础支撑模块
MySQL:存储用户信息、聊天记录、图像识别结果RabbitMQ:提供异步消息队列,解耦高并发场景下的数据库写入ONNX Runtime:执行模型推理,支持轻量化部署(如 MobileNetV2)
4、项目构建与部署
CMake:统一构建管理Docker:提供一键化部署,集成 MySQL、RabbitMQ、OpenCV、ONNX 等环境
项目整体流程图
项目目录
AIApps
`-- ChatServer
|-- include
| |-- AIUtil
| | |-- AIHelper.h //内部封装curl去访问对阿里的模型
| | |-- ImageRecognizer.h //内部封装openncv等接口进行图像识别操作
| | |-- MQManager.h //封装消息队列有关的线程池(消费者生产者相关函数)
| | `-- base64.h //三方库,用于解码前端传进来的图片base64数据
| |-- ChatServer.h //包装多个业务相关的映射表
| `-- handlers
| |-- AIMenuHandler.h //有关菜单页面
| |-- AIUploadHandler.h //有关图像识别页面
| |-- AIUploadSendHandler.h //有关图像识别业务
| |-- ChatEntryHandler.h //有关登录界面
| |-- ChatHandler.h //有关AI聊天界面
| |-- ChatHistoryHandler.h//有关AI聊天界面的同步历史数据业务
| |-- ChatLoginHandler.h //有关登录界面登录业务
| |-- ChatLogoutHandler.h //有关菜单界面登出业务
| |-- ChatRegisterHandler.h//有关注册界面注册业务
| `-- ChatSendHandler.h //有关AI聊天界面的聊天业务
|-- resource
| |-- AI.html //AI聊天前端页面
| |-- NotFound.html //鉴权失败返回的前端页面
| |-- entry.html //登录前端页面
| |-- menu.html //菜单前端页面
| `-- upload.html //图像识别页面
`-- src
|-- AIUtil
| | |-- AIHelper.cpp //内部封装curl去访问对阿里的模型
| | |-- ImageRecognizer.cpp //内部封装openncv等接口进行图像识别操作
| | |-- MQManager.cpp //封装消息队列有关的线程池(消费者生产者相关函数)
| | `-- base64.cpp //三方库,用于解码前端传进来的图片base64数据
| |-- ChatServer.cpp //包装多个业务相关的映射表
|-- handlers
| |-- AIMenuHandler.cpp //有关菜单页面
| |-- AIUploadHandler.cpp //有关图像识别页面
| |-- AIUploadSendHandler.cpp //有关图像识别业务
| |-- ChatEntryHandler.cpp//有关登录界面
| |-- ChatHandler.cpp //有关AI聊天界面
| |-- ChatHistoryHandler.cpp//有关AI聊天界面的同步历史数据业务
| |-- ChatLoginHandler.cpp//有关登录界面登录业务
| |-- ChatLogoutHandler.cpp//有关菜单界面登出业务
| |-- ChatRegisterHandler.cpp//有关注册界面注册业务
| `-- ChatSendHandler.cpp //有关AI聊天界面的聊天业务
`-- main.cpp //用于线程池、服务初始化
更详细内容
本项目专栏依然是只分享在知识星球里。
详细的 各个文件的讲解:
流程讲解:
AI开发的各种细节
项目难点强调:
简历写法 和 面试问题,做完项目可以直接写到简历上!
答疑
本项目在知识星球里为 文字专栏形式,大家不用担心看不懂,星球里每个项目有专属答疑群,任何问题都可以在群里问,都会得到解答:
获取本项目专栏
本专栏仅为星球内部专享,大家可以加入知识星球里获取,在星球置顶一:
加入后可以获取全部项目专栏和八股资料 包含: 12个CPP项目、4个Java项目、2个Go项目,2个前端、1个测开项目、秋招投递表、面试突击八股文(后续会持续更新AI应用类项目)。
加入知识星球,还可以向卡哥1v1提问,改简历等等。
这里给出十元代金券,加入后如果感觉不值得,三天内知识星球APP右上角退出,直接全额退款! 无任何套路。
https://mmbiz.qpic.cn/mmbiz_png/ciaqDnJprwv7WeoiaV6J1AGwSuKv0R15dmUlOSay4LLibEtI3OG7lfZXibAjMPmJuYUF60LPr2YwM8odsVUYwqEx7g/640?wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=12
加入知识星球后,加如下微信,发送支付截图,拉你到星球交流群:
https://mmbiz.qpic.cn/mmbiz_png/ciaqDnJprwv4IUjPRUWXpKKp6AEZJj8HyI8V41Y9s1TUFRepht5vOpqX4mvF7iaNGiaJwEiapJmyOABKucU60Sj8ZA/640?wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1#imgIndex=13
页:
[1]