C++ AI模型统一接入引擎(第一篇):项目介绍与环境搭建

文章目录


一、项目背景

从1994年,中国接入互联网至今,中国互联网的发展历经了PC时代、移动互联网时代,尤其是在移动互联网时代进行了大量的海量数据、技术积累,以及硬件算力的巨大提升,之前不温不火的人工智能,伴随着ChatGPT的横空出现,迎来了今天AI的爆火,各种大模型、智能体应用等如雨后春笋版涌现出来,AI在更进⼀步进入普通人的生活。现在各个厂商也在积极拥抱AI, 作为程序员我们决不能停留在简单使用DeepSeek、ChatGPT这种大模型级别的产品,而应该去学习大模型应用背后的相关技术,将模型接入到我们程序中来,让AI为自己服务,提高生产效率。

项目从零开始手动实现大模型接入层,解决了不同厂商API协议差异大、本地与云端模型难以统一管理的痛点。系统实现了从云端模型API调用、本地模型部署接入到会话管理的完整闭环,并将核心接入逻辑封装为可复用ChatSDK,最终基于该SDK构建出支持多模型切换的网页版智能聊天助手。


本项目的目标旨在:

  • 掌握大模型相关的一些基础知识
  • 掌握官网提供大模型的API接口的学习
  • 掌握C++下远程接入大模型思路及技术实现
  • 掌握C++下本地接入大模型的思路及技术实现
  • 开发⼀套语言聊天大模型应用

二、DeepSeek 的使用

1. 产品和模型

DeepSeek、ChatGPT、Gemini并不是大模型,而是基于某个大模型开发出来的大模型应用产品。

大模型具有大量参数(数十亿甚至百亿)的人工智能模型,它学习了海量知识,掌握了理解自然语言、逻辑推理、写作、编程等底层通用能力,是一个拥有巨大潜力的 "大脑"。

大模型产品是基于具体大模型开发出来的应用或服务,这些产品将大模型的能力封装成用户友好的界面或工具,提供给最终用户进行使用。比如 DeepSeek官网提供的能和用户聊天的网页服务,实际就是 DeepSeek-V3.1模型装上了一个聊天界面,让用户低成本使用大模型提供的服务,你问大模型问题,大模型将理解你的问题后将自己回答输出给你。

比如:DeepSeek是深度求索公司开发的,基于DeepSeek-V3.2模型的产品。

2. deepseek使用

deepseek官网:https://www.deepseek.com/

以前打开DeepSeek官网,显示如下页面

(1) 深度思考按钮:深度推理模式 和 快速响应模式开关,默认未选中为快速响应模式,选中之后切换到深度思考模式。

补充:专家模式 ≈ 开启"深度思考" + 按需使用"智能搜索"

(2) 智能搜索按钮:未选中时模型仅使用模型预训练知识,开启后模型可联网获取最新信息

(3) 模型支持上传PDF、Word、Excel等文件,模型会读取文件内容并根据内容回答问题

(4) 输入用户提示词之后,发送给模型,让模型思考回答

(5) 开启新一轮对话。比如切换一个新话题时,最好开一个新会话,防止上下文干扰

(6) 支持会话管理。可以点击任意一条之前的会话记录,快速回到该次会话中,继续之前会话,就想看书时返回之前章节一样。会话名称一般是第一次问题的开头命名。

三、学习通过API访问大模型 的理由

既然各个大模型厂商已经提供了类似DeepSeek、ChatGPT、Gemini这样的大模型服务了,开箱即用非常香,在日常学习工作中已经收获颇丰,为什么还要学习手动接入大模型?

我认为有以下几点原因:

  • 了解更多大模型知识,提高自己竞争力

    使用官方大模型服务就像开车,会操作就行,目的是到达终点;调用API就像学习汽车原理、保养和改装,能让你造出更适合任务的专业车,甚至将发动机装到飞机、轮船上。前者是大模型产品的使用者,后者已经摇身成为大模型应用的创造者。

  • 构建自己的应用

    API允许你将大模型的"大脑"与你自己的程序、网站、数据库等连接起来,实现通用机器人无法完成的任务,解锁无限可能性。比如:开发智能编程助手提高日常开发效率、构建自动化工作流(自动处理邮件、生成报告、分析数据等)、构建垂直领域应用(为法律、医疗、教育等领域开发专业的问答工具)

  • 职业发展

    大模型应用越来越广泛,许多公司都在将大模型能力渐渐接入到自己的产品中,在AI原生应用开发领域,大模型应用开发相关岗位也越来越多,会使用API集成大模型的能力,能让你在求职中更具竞争力,更好的适应行业的发展趋势。

  • 学术研究

    有些考研的学生,研究的课题可能和人工智能相关,掌握API接入大模型技术后,可以为自己量身定制大模型应用以进行实验和数据分析,验证自己的研究假设。

因此,作为一名计算机专业的学生,或者将来从事计算机方向的开发者,学习通过API方式使用大模型是非常有价值的,不仅能帮助你更好地理解和使用大模型,还能给未来职业发展打下坚实基础。

四、项目最终效果演示

本项目是带领大家从零手搓各种大模型接入的SDK,在此基础上,实现一个智能网页版的AI聊天助手。

该应用目前支持以下功能:

  • 获取会话列表
  • 新建会话
  • 获取支持模型
  • 发送消息
  • 获取指定会话的历史聊天记录
  • 删除会话

(1)【主界面】

(2)【模型选择】

点击新建对话选项,就会弹出模型选择(选择模型后,创建新会话成功)

目前已接入DeepSeek、gpt-4o-mini、gemini-2.0-flash模型,以及deepseek-r1:1.5b的本地接入,学习之后同学们也可以接入其他更多模型。

(3)【开始会话】

五、项目整体架构

项目的系统架构图如下:

(1)应用层: 用户使用ChatSDK库来封装自己的应用层服务,比如实现智能聊天机器人。

(2)ChatSDK: 封装大模型管理库,包括大模型管理、Session管理以及数据存储。

  • 大模型管理: 负责管理并接入各种不同大模型,目前已接入 deepseek-v3、gpt-4o-mini、gemini-2.0-flash 等云端大模型;支持接入本地大模型,并向外提供统一接口,用户可以通过提供的接口接入自己需要大模型。
  • 会话管理: 支持会话管理,用户可以获取获取会话列表、历史消息等。
  • 数据存储层: 支持会话记录的持久化存储,方便查看历史会话。

(3)第三方服务: 对于接入的云端模型,最终由ChatSDK将用户消息转发给远程的第三方服务器,模型回复后将结果返回给应用层。对于本地部署大模型,ChatSDK会将用户消息发送给本地安装的Ollama服务器,由 Ollama服务器和第三方模型服务器对接,Ollama将模型的回复返回给ChatSDK,由ChatSDK将结果返回给应用层。

六、本项目中使用的第三方库和工具(含使用教程链接)

序号 第三方库 / 工具 描述
1 cpp-httplib 轻量级的C++ HTTP 客户端 / 服务器库
2 spdlog 高性能、超快速、零配置的 C++ 日志库
3 jsoncpp 高性能的 json库,用于序列化 & 反序列化
4 sqlite 轻量级嵌入式关系型数据库,支持标准SQL语句
5 gflags 定义和解析命令行参数的 C++库
6 gtest 跨平台的C++单元测试框架
7 CMake 一次配置,跨平台生成任何构建系统的元构建工具
8 curl 一款强大的命令行工具,支持HTTP、HTTPS、FTP等多种协议
9 apifox 一款集API调试、Mock数据生成、自动化测试等功能于一体的协作工具
10 ollama 一个可以让你在本地电脑上轻松下载、运行和操作各种大型语言模型的强大工具

gflags库的使用: Gflags解剖课:从DEFINE宏到命令行解析的工程化实践

spdlog库的使用: 高性能 C++ 日志实战:spdlog 核心架构解析与最佳实践指南

cppjson库的使用: JsonCpp核心揭秘:Value类详解与序列化实战全攻略

gtest库的使用: gtest实战入门:从安装到TEST宏的单元测试指南

  • 第三方库 和 工具的安装:
bash 复制代码
# gflags 安装
dev@dev-host:~/workspace$ sudo apt-get install libgflags-dev

# spdlog 安装
dev@dev-host:~/workspace$ sudo apt-get install libspdlog-dev

# fmt 安装
dev@dev-host:~/workspace$ sudo apt-get install fmt

# jsoncpp 安装
dev@dev-host:~/workspace$ sudo apt-get install libjsoncpp-dev

# gtest 安装
dev@dev-host:~/workspace$ sudo apt-get install libgtest-dev

# ssl 安装
dev@dev-host:~/workspace$ sudo apt-get install libssl-dev

# 安装 cmake
dev@dev-host:~/workspace$ sudo apt-get install cmake

# 安装pkg-config,⽤于帮助编译时查找库⽂件(⽐如头⽂件的位置、链接选型)的⼯具
dev@dev-host:~/workspace$ sudo apt install pkg-config

# 安装curl⼯具
dev@dev-host:~/workspace$ sudo apt install curl

# httplib下载
dev@dev-host:~/workspace$ git clone https://github.com/yhirose/cpp-httplib.git
# 注意:cpp-httplib是 header-only库,只需要⼀个头⽂件,在项目中只需时只需要包含该头⽂件即可
# 我的 cpp-httplib库下载在根目录下
bit@bit08:~$ ls
AIProj clash cpp-httplib test will
bit@bit08:~$ cd cpp-httplib/cpp-httplib/
bit@bit08:~/cpp-httplib/cpp-httplib$ ls
benchmark cmake CMakeLists.txt docker docker-compose.yml Dockerfile
example httplib.h LICENSE meson.build meson_options.txt README.md
split.py test
# 将httplib.h拷⻉到系统⽬录下,在程序中#include <httplib.h>时能直接找到
bit@bit08:~/cpp-httplib/cpp-httplib$ sudo cp httplib.h /usr/include/

七、环境搭建

1. 开发环境介绍

随着人工智能技术的飞速发展,AI编程助手类的插件和IDE如雨后春笋般涌现,为开发者提供强大的代码生成、智能补全、错误检测和修复等功能,显著提高了开发效率。

  • AI编程插件:
插件名称 形态 核心功能
Github 和 Copilot 支持VS Code、JetBrains IDEs等 实时代码补全、Copilot Chat、多语言支持、上下文感知、智能代理、测试生成
Fitten Code 支持VS Code/JetBrains等 代码补全、Bug检测、注释生成、单元测试自动生成
Cline VS Code插件 项目级文件读写操作、命令行任务执行、浏览器环境集成、基于权限的行动确认系统、任务链编排能力
通义灵码 插件(VS Code/JetBrains)+ 独立IDE 多文件代码修改、MCP工具链调用、行间会话、个性化记忆体系
  • 基于命令行终端的AI编程工具:
工具名称 核心功能 模型支持
Claude 和 Code 复杂的推理与分析:擅长 文档阅读、摘要、逻辑推理 代码生成与解释:能生成、审查和解释代码,强调代码的安全性和可靠性 长上下文窗口(最高支持200K):可处理整个代码库的文件自语言对话 Claude 3系列
Gemini CLI 终端内对话:在命令行中直接与Gemini模型交互 代码生成与帮助:生成代码片段、解释错误 文本处理:起草邮件、生成内容等通用任务 多模态支持:CLI可传输文件,未来可能支持图像分析 Gemini-2.5-pro
  • 编程IDE工具:
IDE名称 核心功能 模型支持
Cursor 代码自动生成、智能补全、Bug检测与修复、文档生成、多文件编辑、自然语言命令、VS Code兼容 集成 Claude、GPT-4、Gemini等多个模型
IDX 基于云的VSCode体验、深度集成Gemini模型进行代码补全和聊天、内置Android模拟器和Firebase支持、轻松预览和部署全栈应用 深度集成并优化 Gemini模型家族
Kiro 兼容vscode、需求管理、自动化开发、集成与扩展、用户体验、预览代码修改、即时撤销修改、Agentic Chat 免费使用 Claude-Sonnet-4 和 Claude-Opus-4模型
Trae 多模态交互、上下文理解引擎、智能体模式、全流程自动化、智能代码生成与优化 集成 DeepSeek、Doubao、Kimi、Qwen等模型
Qoder 代码库全景理解、智能结对编程、Quest模式、增强上下文工程、长短期记忆系统 支持Claude、GPT、Gemini等模型
CodeBuddy 智能代码补全、AI设计生成、设计稿转代码、AI全栈开发、内置腾讯云CloudeBase和Supabase服务、一键部署分享 内置腾讯混元、DeepSeek等多种模型

这些AI编程IDE基本都是基于vscode开发,功能使用上基本大同小异,本项目选择字节的Trae IDE工具 开发,主要是在国内是免费的。

2. trae介绍

Trae IDE是基于vscode内核开发的,与AI深度集成,提供智能问答、代码自动补全以及基于Agent的AI自动编程能力。使用Trae开发项目,可以给AI灵活协作,提升开发效率。

Trae官网: https://www.trae.ai/

Trae使用手册: https://docs.trae.ai/ide/what-is-trae?_lang=zh

Trae下载: https://www.trae.ai/download

下载下来后,安装时一路next即可。

Trae支持远程资源管理功能(Remote SSH),允许直接访问和操控远程主机,无需额外配置。

打开Trae后,直接选择连接远程主机,输入 ssh 用户名@ip 和 密码即可。

我的云服务器配置:

登录成功之后,需要安装 clangd 和 CMake Tools插件,注意:这些插件是安装在远程主机上。

安装clangd插件,clangd是一款在Trae、VScode等编辑器中,用来开发C/C++程序的插件,支持:

语法高亮、代码补全、实时错误检查(语法错误、类型不匹配、符号未定义等)、代码导航(快速跳转到 变量/函数定义)、文档提示(鼠标悬停在函数名上会显示函数签名、注释文档)等。

Trae需要通过CMake Tools插件实现与CMake的集成,包括生成构建文件、选择编译器等功能。


相关推荐
飞天狗1111 小时前
2024第十五届蓝桥杯c/c++B组国赛题解
c语言·数据结构·c++·算法·蓝桥杯
viskaz1 小时前
Agent的记忆系统
人工智能·prompt
图灵农场1 小时前
Spring AI Alibaba-ReactAgent框架-chatbot智能体应用
人工智能
白狐_7981 小时前
从空白模板到文旅风 PPT:用 Claude Code + Kimi API 优化 AI 生成演示文稿
大数据·人工智能
Nayxxu1 小时前
用 Gemini 做办公自动化:会议纪要、邮件摘要、任务拆解的后端设计
人工智能
JAMSAN09301 小时前
视线即交互:眼动追踪AR眼镜的“感知革命”与市场蓝图
大数据·人工智能·ar·交互
Black蜡笔小新1 小时前
零代码自动化企业私有化AI训练推理一体工作站DLTM训推一体化助力企业自主掌控AI能力
运维·人工智能·自动化
Upsy-Daisy1 小时前
IOTA 学习笔记(十):交易与 PTB,可编程交易块怎么理解?
人工智能·区块链
Real-Staok1 小时前
开源多模态大模型全景对比:你的电脑,已经是 AI 工作站
人工智能·开源·电脑