# C++ AI应用开发项目 - AI应用服务平台

现在AI很火,对于开发岗来说,掌握 AI应用相关开发技术,是很加分的。

之前,知识星球 (opens new window)里发布了 HTTP服务框架 这个项目。

用C++开发一个 基础HTTP服务框架,在这个框下来,可以更容易开发各种 应用。

这次,在 HTTP服务框架 基础上,我们做一个AI 应用服务平台,旨在帮助 C++录友们入门AI应用开发。

如果 大家学过 HTTP服务框架 (opens new window) 这个项目,基本 7天内,就可以入门 该项目,如果没有项目实战经验直接学该项目,可能需要 1-2个月

# 该项目亮点

  • AI 聊天(多轮会话 + 会话记忆):把大语言模型的 API 嵌入 C++ 服务,支持上下文记忆与历史同步。
  • AI 图像识别(MobileNetV2 + ONNXRuntime):图片 → 预处理 → 模型推理 → 标签返回,端到端闭环。
  • 工程级部署:一键 Docker 镜像,包含 MySQL / RabbitMQ 等依赖,拿到 API key 即可跑起来。
  • 高并发设计:基于 Muduo + 自研 HTTP 框架 + RabbitMQ + 线程池,AI 推理任务异步化,避免阻塞主线程。
  • 简历友好:明确的可写项(AI 集成 / 推理部署 / 异步队列 / 会话持久化),面试问得住、写得漂亮。

一些做开发的录友,可能不了解 什么是 推理部署?

训练:用海量数据去训练模型,得到模型参数(权重)。

推理:拿训练好的模型,在生产环境中加载并运行,输入数据 → 模型前向计算 → 得到预测结果

本项目中,输入一张图片 → OpenCV 做预处理 → 喂进 ONNXRuntime → 模型输出分类结果。这就是典型的 AI 推理流程。

# 项目演示

这里给出部分截图,本项目专栏中有演示视频:

image

image

image

# 谁适合看、能收获什么

C++ 录友,想在简历上,添加AI应用开发 案例的录友,都可以学习。

  • 有底层/后端基础的同学:几小时读完掌握全局结构并能跑起来。
  • 刚入门 AI 应用的同学:7 天内完成实战,从模型接入到前端交互全流程。
  • 求职/转行者:拿到一个能写在简历上的「AI 应用服务平台」项目:面试时能说清楚技术难点与工程化实现。

简历可写点:

  • AI 聊天服务集成:在 C++ 框架中调用大模型 API,实现多轮对话与会话记忆。
  • AI 图像识别服务:结合 OpenCV + ONNX Runtime,完成图像预处理与推理全流程。
  • 高并发架构设计:利用 Muduo + RabbitMQ + 线程池,提升系统在多用户场景下的并发处理能力。
  • 工程化能力:熟悉 Docker 部署、消息队列解耦、数据库异步写入等服务化开发经验。

# 项目架构

# 系统整体设计

本项目基于 自己开发的 HTTP 服务框架 (opens new window),在其之上扩展了 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 						//用于线程池、服务初始化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

# 更详细内容

本项目专栏依然是只分享在知识星球 (opens new window)里。

详细的 各个文件的讲解:

流程讲解:

AI开发的各种细节

项目难点强调:

简历写法 和 面试问题,做完项目可以直接写到简历上!

# 答疑

本项目在知识星球 (opens new window)里为 文字专栏形式,大家不用担心,看不懂,星球里每个项目有专属答疑群,任何问题都可以在群里问,都会得到解答:

# 获取本项目专栏

本文档仅为星球内部专享,大家可以加入知识星球里获取,在星球置顶一:

加入星球后可以获取全部项目文档和八股资料!。

这里给出10元代金券,领代金券加入,代码随想录知识星球支持三天内(72h)可以全额退款。

加入知识星球后,记得加如下微信,发动付款截图,拉你到星球交流群:

上次更新:: 9/26/2025, 3:36:21 PM
@2021-2025 代码随想录 版权所有 粤ICP备19156078号