我爱免费 发表于 2025-9-27 14:15

阿里面试官挑眉: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]
查看完整版本: 阿里面试官挑眉:AI 项目不用 FastAPI?你用 C++ 写的?我:用C++写的,高并发+AI推理!想问项目难点吗?