news 2026/7/15 4:44:23

【实战项目】从零实现c++ai大模型接入SDK(一)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【实战项目】从零实现c++ai大模型接入SDK(一)

目录

一、项目背景

二、名词解释

三、deepseek、chatGPT、Gemini使用

3.1 产品和模型

3.2 deepseek的使用

3.3 chatGPT的使用

3.4 Gemini的使用

3.5 Claude code的使用

四、为什么学习通过api使用大模型

五、项目功能概览

六、项目架构


本项目带你从零实现一个cpp+ai项目。

一、项目背景

从1994年接⼊互联⽹⾄今,中国互联⽹的发展历经了PC时代、移动互联⽹时代,尤其是在移动互联⽹时代进⾏了⼤量的海量数据、技术积累,以及硬件算⼒的巨⼤提升,之前不温不⽕的⼈⼯智能,伴随着ChatGPT的横空出现。(codex是真好用)

迎来了今天AI的爆⽕,各种⼤模型、智能体应⽤等如⾬后春笋版涌现出来,AI在更进⼀步进⼊普通⼈的⽣活。现在各个⼚商也在积极拥抱AI,作为程序员我们决不能停留在简单使⽤DeepSeek、ChatGPT这种⼤模型级别的产品,⽽应该去学习⼤模型应⽤背后的相关技术,将模型接⼊到我们程序中来,让AI为⾃⼰服务,提⾼⽣产效率。本项⽬就带领⼤家从底层学习如何接⼊⼤模型,这也是进⾏⼤模型开发的第⼀步。

二、名词解释

ai这个东西比较新,此处将项目中涉及到大模型相关名词解释。

【模型 - Model】
此处模型专指AI领域的模型。可以简单理解成⼀个从⼤量数据中学习规律、⽤于进⾏预测的数学函数,只是该函数参数巨多、⽆⽐复杂。
可以简单类⽐成⼀个正在学说话的⼩孩。
⼩孩通过⽿朵输⼊海量的语⾳数据,⽐如:家⼈的⼝头教学、⽇常⽣活对话、读绘画本,通过眼睛去认识各种物品,⽐如家庭⽇⽤品、交通⼯具、动物、花花草草等,⼩孩通过⼤⼈的⽿传⾝教不断学习
成⻓,慢慢地就能听懂⼤⼈的指令,甚⾄模仿⼤⼈⾏为等,建⽴起⾃⼰的语⾔规则。
⽐如他发现,我们经常将"吃"和"饭饭"、"⽔果"连在⼀起,"睡觉觉"和"床"连在⼀起,
当给孩⼦说:宝宝太晚了,我们⼀起上床_____
宝宝就会说:睡觉觉~~~
【⼤模型 - Large Model】
⼤模型就是AI⾥的超级学霸,参数巨多、知识量爆炸的AI模型,像吃了百科全书+全⽹数据的“六边形战⼠”。⼀个既能看懂你的照⽚(视觉),⼜能听懂你的指令(语⾳),还能⽤⽂字回答你的模型,就是⼤模型。⼤体现在:
参数海量:GPT-3有1750亿个参数,⽽早期模型参数不到⼀百万。
训练数据恐怖:吃掉整个互联⽹⽂本(书籍、论⽂、⽹⻚、代码...)
训练⼀次GPT-3 ≈ 190万度电(够5000个家庭⽤1年)
【⼤语⾔模型 - Large Language Model - LLM】
⼤语⾔模型就是AI界的"超级话痨",是⼀个吃掉整个互联⽹的⽂本,能读会写、知识渊博的AI⼤脑,专⻔处理⼈类语⾔,⽐如聊天、协作、翻译、编程等,但可能会胡说⼋道。
将整个互联⽹的数据喂给⼤模型后,⼤模型会通过神经⽹络分析词语之间的关系,例如将"猫"、"喵喵叫"、"⽑茸茸"词归类到⼀起,但是它并不理解,当⼈类在提问的时候它会推测出最可能得回答。
⼤模型的局限性
可能会出现"幻觉"(蠢包)
没有真正"理解"
偏⻅与安全⻛险
⽬前主流的⼤语⾔模型,⽐如:GPT-5、gemini-3.1、claude-4.7、deepseek-v4、Qwen3、doubao-seed-2.0等
【提示词 - Prompt】
给AI的任务说明书,告诉AI要做什么、怎么做的指令。
【提⽰词设计三要素】
⻆⾊设定Role
"你是⼀个具有⼗年以上C++后端开发的架构师,请帮我设计类似微信的聊天软件"
问题描述
任务描述Task
"200字总结导致拖延症原因"
格式约束Format
"请按要点分条列出,每条不超过15"
【上下⽂ - Content】
AI在对话或任务中临时记住的信息,像⼈类聊天时不会突然失忆,能联系前后⽂理解意思。
用户:推荐⼀部科幻电影
AI:《星际穿越》
⽤⼾:为什么推荐这部?
AI(结合上下⽂):因为它的硬核科学设定和感⼈⽗⼥情...
模型不会记住所有上下⽂信息,超出部分会被丢弃,就想内存满了⾃动覆盖。
⽐如GPT-4最多能记住128k tokens,⼤约10万字
【token】
token 是模型⽤来表⽰⾃然语⾔⽂本的基本单位,可直观理解为“字”或“词”;通常 1 个中⽂词
语、1 个英⽂单词、1 个数字或 1 个符号计为 1 个 token。
不同模型中关于token的计算⽅式可能稍有差异。下⾯是DeepSeek官⽹中关于公布的token的计算⽅式以及收费:

deepseek API开放平台官网:模型 & 价格 | DeepSeek API Docs

相较于其它模型确实便宜一些。十块两千万token。

三、deepseek、chatGPT、Gemini使用

3.1 产品和模型

DeepSeek、ChatGPT、Gemini并不是⼤模型,⽽是基于某个⼤模型开发出来的⼤模型应⽤产品。
⼤模型具有⼤量参数(数⼗亿甚⾄百亿)的⼈⼯智能模型,它学习了海量知识,掌握了理解⾃然语⾔、逻辑推理、写作、编程等底层通⽤能⼒,是⼀个拥有巨⼤潜⼒的"⼤脑"。
⼤模型产品是基于具体⼤模型开发出来的应⽤或服务,这些产品将⼤模型的能⼒封装成⽤⼾友好的界⾯或⼯具,提供给最终⽤⼾进⾏使⽤。⽐如DeepSeek官⽹提供的能和⽤⼾聊天的⽹⻚服务,实际就是DeepSeek-V4模型装上了⼀个聊天界⾯,让⽤⼾低成本使⽤⼤模型提供的服务,你问⼤模型问题,⼤模型将理解你的问题后将⾃⼰回答输出给你。
⽐如:DeepSeek是深度求索公司开发的,基于DeepSeek-V4模型的产品。

3.2 deepseek的使用

官网:DeepSeek | 深度求索

api开放平台:DeepSeek 开放平台

开和不开深度思考是两种思考方式。

① 深度推理模式和快速响应模式开关,默认未选中为快速响应模式,选中之后切换到深度思考模式。
② 未选中时仅使⽤模型预训练知识,开启后可获取最新信息,注意联⽹搜索模式下不⽀持上传⽂件。
③ 未选中时⽆法上传⽂件,仅通过⽂本输⼊和模型交互,开启后⽀持上传PDF、Word、Excel等⽂件,模型会读取⽂件内容并根据内容回答问题,⽬前暂不⽀持图⽚。
④ 输⼊⽤⼾提⽰词之后,发送给模型,让模型思考回答
⑤ 开新⼀轮对话。⽐如切换⼀个新话题、当对话边的混乱,模型开始"胡⾔乱语"时。
⑥ ⽀持会话管理。可以点击任意⼀条之前的会话记录,快速回到该次会话中,继续之前会话,就想看书时返回之前章节⼀样。会话名称⼀般是第⼀次问题的开头命名。

tips:当我们与ai聊和前文完全没有关系的问题时,建议开启一个新的会话。

可以看出deepseek也很惊讶。

3.3 chatGPT的使用

官网:ChatGPT。需要魔法。

ChatGPT,从名字中看Chat是聊天的意思,GPT是什么意思?
GPT是 Generative Pre-trained Transformer 的缩写。
Generative(⽣成式) : 它能⽣成内容(⽂字、代码图像等),不是简单检索。
Pre-trained(预训练) : 在⼤模型⽂本数据上先进⾏通⽤训练,再针对具体任务做微调。
Transformer : ⼀种深度学习框架,是⽬前⼤语⾔模型的核⼼技术,擅⻓处理序列数据,⽐如⾃然语⾔。
GPT就是基于深度学习框架的⼀种⼤语⾔模型系列,⽐如:GPT-4、GPT-5。ChatGPT就是基于GPT模型的聊天式⼈⼯智能助⼿,是⼀个产品。
GPT-4可以处理⽂字和图⽚输⼊,刚开始主要是⽂字版(GPT-4-turbo),后来逐步开放图像输⼊,⽐如识别图⽚中⽂字、分析图表等,但输出主要是⽂字。GPT-5是⼀个完整的多模态模型,输⼊可以是⽂字、图⽚、⾳频、视频帧等,输出可以是⽂字、语⾳、甚⾄可以配合Sora⽣成视频。

3.4 Gemini的使用

官网:‎Google Gemini

gemini翻译过来是双⼦座,双⼦座标志是两个并排站⽴的⼈物,象征则会⼆元性、合作以及强⼤的⼒量。
Google在开发Gemini时,将Google DeepMind和Google Research的"Brain"团队合并,这两个团队的合作被视为"双⼦",共同致⼒于打造这个野⼼勃勃的多模态AI模型。
还有⼀个说法是致敬NASA(美国国家航空航天局)的双⼦座计划,该计划是阿波罗登⽉计划之前的关键⼀步,旨在测试宇航员⻓时间太空⻜⾏和太空对接等技术,这项开创性计划的巨⼤努⼒和对未来成功的奠定,与开发⼤语⾔模型的艰难任务产⽣了共鸣,因此团队使⽤了"Gemini"名字。

不到为啥pc端的Gemini(哈基咪)我用不了,我就用手机端的代替一下。

① 上传⽂件,⽀持⽂本、图⽚、视频等不同格式⽂件,让⼤模型进⾏理解并进⾏各种操作,⽐如总结⽂档关键内容,分析表格数据等
② Deep Research:对问题进⾏更深⼊、全⾯的信息检索和分析,⼀般在处理复杂或专业性强的问题时⾮常有⽤
③ 图⽚⽣成:根据⽤⼾的提⽰词,Gemini会使⽤Imagen模型⽣成⼀幅符合描述的图⽚
④ 创建⽂档和应⽤:启⽤之后Gemini会根据⽤⼾输⼊需求,使⽤Canvas⽣成⽂档初稿,⽤⼾可以实时调整和优化
⑤ 像⼀个私⼈导师,能⽤多种⽅式来辅助学习,⽐如总结提炼核⼼要点、⽣成学习材料等。
⑥ ⽀持语⾳输⼊
⑦ 发起新⼀轮对话和临时对话,临时对话不会显⽰在会话记录中,临时会话系统仅保留72⼩时;发起新⼀轮对话会开启⼀个全新的聊天会话
⑧ 模型切换,⽬前⽀持gemini-3.1-flash-Lite 、gemini-3.5-flash 和 gemini-3.1-pro,或升级其他模型。gemini-3.1-flash-Lite擅⻓处理快速、简单的⼈物,⽐如基础问答、⽣成简短内容等,速度⾮常快;gemini-3.5-flash擅长全方位帮助,gemini-3.1-pro擅⻓处理复杂、需要深度推理的任务,⽐如复杂数学题、编程等。
⑨ ⽀持会话管理。

不过现在哈基咪落寞了,被戏称为美版豆包。

3.5 Claude code的使用

官网:New chat - Claude,需要魔法。

可以看到gpt支持的功能Claude大部分也能支持。

四、为什么学习通过api使用大模型

既然各个⼤模型⼚商已经提供了类似DeepSeek、ChatGPT、Gemini这样的⼤模型服务了,开箱即⽤⾮常⾹,在⽇常学习⼯作中已经收获颇丰,为什么还要学习⼿动接⼊⼤模型?
我认为有以下⼏点原因:
  • 了解更多⼤模型知识,提⾼⾃⼰竞争⼒
使⽤官⽅⼤模型服务就像开⻋,会操作就⾏,⽬的是到达终点;调⽤API就像学习汽⻋原理、保养和改装,能让你造出更适合任务的专⽤⻋,甚⾄将发动机装到⻜机、轮船上。前者是⼤模型产品的使⽤者,后者已经摇⾝成为⼤模型应⽤的创造者。
  • 构建⾃⼰的应⽤
API允许你将⼤模型的"⼤脑"与你⾃⼰的程序、⽹站、数据库等连接起来,实现通⽤机器⼈⽆法完成的任务,解锁⽆限可能性。⽐如:开发智能编程助⼿提⾼⽇常开发效率、构建⾃动化⼯作流(⾃动处理邮件、⽣成报告、分析数据等)、构建垂直领域应⽤(为法律、医疗、教育等领域开发专业的问答⼯具)
  • 职业发展
⼤模型应⽤越来越⼴泛,许多公司都在将⼤模型能⼒渐渐接⼊到⾃⼰的产品中,在AI原⽣应⽤开发领域,⼤模型应⽤开发相关岗位也越来越多,会使⽤API集成⼤模型的能⼒,能让你在求职中更具竞争⼒,更好的适应⾏业的发展趋势。
  • 学术研究
有些考研的学⽣,研究的课题可能和⼈⼯智能相关,掌握API接⼊⼤模型技术后,可以为⾃⼰量⾝定制⼤模型应⽤以进⾏实验和数据分析,验证⾃⼰的研究假设。
因此,作为⼀名计算机专业的学⽣,或者将来从事计算机⽅向开发⼯作,学习通过API⽅式使⽤⼤模型是⾮常有价值的,不仅能帮助你更好地理解和使⽤⼤模型,还能给未来职业发展打下坚实基础。

五、项目功能概览

本项⽬是带领⼤家从零⼿搓各种⼤模型接⼊的SDK,在此基础上,实现⼀个智能⽹⻚版的AI聊天助⼿。该应⽤⽬前⽀持以下功能:
  • 获取会话列表
  • 新建会话
  • 获取⽀持模型
  • 发送消息
  • 获取指定会话的历史聊天记录
  • 删除会话

页面概览(不代表最终结果):

六、项目架构

项⽬的系统架构图如下:

系统架构图说明如下:
应⽤层:⽤⼾使⽤ChatSDK库来封装⾃⼰的应⽤层服务,⽐如实现智能聊天机器⼈
ChatSDK:封装⼤模型管理库,包括⼤模型管理、Session管理以及数据存储。
⼤模型管理:负责管理并接⼊各种不同⼤模型,⽀持接⼊本地⼤模型,并向外提供统⼀接⼝,⽤⼾可以通过提供的接⼝接⼊⾃⼰需要⼤模型。
会话管理:⽀持会话管理,⽤⼾可以获取获取会话列表、历史消息等
数据存储层:⽀持会话记录的持久化存储,⽅便查看历史会话。
三⽅服务:对于接⼊的云端模型,最终由ChatSDK将⽤⼾消息转发给三⽅服务器,模型回复后将结果返回给应⽤层。对于本地部署⼤模型,ChatSDK会将⽤⼾消息发送给本地安装的Ollama服务器,由Ollama服务器和三⽅模型服务器对接,Ollama将模型的回复返回给ChatSDK,由ChatSDK将结果返回给应⽤层。
下⾯是本项⽬中使⽤的第三⽅库和⼯具:
第三⽅库/⼯具
描述
cpp-httplib
轻量级的C++ HTTP 客⼾端/服务器库
spdlog
⾼性能、超快速、零配置的 C++ ⽇志库
jsoncpp
⾼性能的json库,⽤于序列化&反序列化
sqlite
轻量级嵌⼊式关系型数据库,⽀持标准SQL语句
gflags
定义和解析命令⾏参数的C++库
gtest
跨平台的C++单元测试框架
cur
⼀款强⼤的命令⾏⼯具,⽀持HTTP、HTTPS、FTP等多种协议
apifox
⼀款集API调试、Mock数据⽣成、⾃动化测试等功能于⼀体的协作⼯具
CMake
⼀次配置,跨平台⽣成任何构建系统的元构建⼯具
ollama
⼀个可以让你在本地电脑上轻松下载、运⾏和操作各种⼤型语⾔模型的强⼤⼯具
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/15 4:43:23

Sqribble:模板驱动的文档自动化出版系统解析

1. 项目概述:这不是“一键生成”,而是一套被精心封装的出版流水线你有没有过这种经历:花三天时间写完一份行业报告,结果光是排版、加页眉页脚、生成目录、调字体行距,又折腾掉一整天?最后导出PDF一看&#…

作者头像 李华
网站建设 2026/7/15 4:40:33

C++智能指针release与reset操作详解:所有权管理的核心抉择

1. 项目概述:智能指针中的“所有权”抉择在C的现代编程实践中,智能指针是管理动态内存、避免资源泄漏的基石。std::unique_ptr和std::shared_ptr为我们提供了自动化的资源管理,但“自动化”并不意味着我们可以完全撒手不管。恰恰相反&#xf…

作者头像 李华
网站建设 2026/7/15 4:40:27

2026最新AI入门教程:一个月掌握机器学习到生成式AI全栈技能

这次我们来看一套号称"一个月入门AI"的2026年最新教程。这套教程最大的卖点是系统性整合了当前AI领域的核心知识点,从基础概念到实际应用,从本地部署到云端服务,号称能让学习者少走99%弯路。教程内容覆盖了机器学习基础、深度学习框…

作者头像 李华
网站建设 2026/7/15 4:39:01

C++智能指针:从RAII原理到实战避坑指南

1. 项目概述:为什么我们需要智能指针?在C的世界里,内存管理一直是开发者必须直面的核心挑战。手动调用new和delete,就像在悬崖边行走,稍有不慎就会导致内存泄漏、悬空指针或者重复释放,这些Bug往往难以追踪…

作者头像 李华