项目架构

从零⼿搓各种⼤模型接⼊的SDK,在此基础上,实现⼀个智能⽹⻚版的AI聊天助⼿。
该应⽤⽬前⽀持以下功能:

  • 获取会话列表
  • 新建会话
  • 获取⽀持模型
  • 发送消息
  • 获取指定会话的历史聊天记录
  • 删除会话
    接⼊DeepSeek、gpt-4o-mini、gemini-2.0-flash模型,以及deepseek-r1:1.5b的本地接⼊
    ![[Pasted image 20260306153832.png]]

![[Pasted image 20260306154310.png]]

![[Pasted image 20260306154718.png]]

系统架构图
![[Pasted image 20260322191932.png]]

应⽤层:⽤⼾使⽤ChatSDK库来封装⾃⼰的应⽤层服务,⽐如实现智能聊天机器⼈ChatSDK:封装⼤模型管理库,包括⼤模型管理、Session管理以及数据存储。

  • ⼤模型管理:负责管理并接⼊各种不同⼤模型,⽬前已接⼊deepseek-v3、gpt-4o-mini、gemini-2.0-flash等云端⼤模型;⽀持接⼊本地⼤模型,并向外提供统⼀接⼝,⽤⼾可以通过提供的接⼝接⼊⾃⼰需要⼤模型。
  • 会话管理:⽀持会话管理,⽤⼾可以获取获取会话列表、历史消息等
  • 数据存储层:⽀持会话记录的持久化存储,⽅便查看历史会话。
    三⽅服务:对于接⼊的云端模型,最终由ChatSDK将⽤⼾消息转发给三⽅服务器,模型回复后将结果返回给应⽤层。对于本地部署⼤模型,ChatSDK会将⽤⼾消息发送给本地安装的Ollama服务器,由llama服务器和三⽅模型服务器对接,Ollama将模型的回复返回给ChatSDK,由ChatSDK将结果返回给应⽤层。

第三⽅库和⼯具

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

环境搭建

开发环境介绍

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 等多种模型
trae介绍

TraeIDE是基于vscode内核开发的,与AI深度集成,提供智能问答、代码⾃动补全以及基于Agent的AI⾃动编程能⼒。使⽤Trae开发项⽬,可以给AI灵活协作,提升开发效率。
TRAE - Collaborate with Intelligence
什么是 TRAE? - 文档 - TRAE
Download | TRAE - Collaborate with Intelligence
Trae⽀持远程资源管理功能(Remote SSH),允许直接访问和操控远程主机,⽆需额外配置。
打开Trae后,直接选择连接连接远程主机,输⼊ ssh ⽤⼾名@ip 和密码即可

登录成功之后,需要安装clangd和CMake Tools插件,注意:这些插件是安装在远程主机上。
安装clangd插件,clangd是⼀款在Trae、VScode等编辑器中,⽤来开发C/C++程序的插件,⽀持:
语法⾼亮、代码补全、实时错误检查(语法错误、类型不匹配、符号未定义等)、代码导航(快速跳转到变量/函数定义)、⽂档提⽰(⿏标悬停在函数名上会显⽰函数签名、注释⽂档)等。
在插件管理器中搜索"clangd",然后安装:
![[Pasted image 20260306172608.png]]

在插件管理器中搜索"CMake Tools",
![[Pasted image 20260306172945.png]]

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

第三⽅库使⽤
# 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库下载在跟⽬录下  
$ ls  
AIProj clash cpp-httplib test will  
$ cd 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>时能直接找到  
$ sudo cp httplib.h /usr/include/

快速操作

ChatSDK⽀持功能如下:

  • 获取⽀持模型
  • 创建会话
  • 获取会话列表
  • 给模型发送消息,模型响应以全量⽅式返回
  • 给模型发送消息,模型响应以流式⽅式返回
  • 获取历史会话消息
  • 删除会话
    使⽤介绍:
    a. 下载ChatSDK库
    b. 编译并安装libai_chat_sdk库
    c. 在项⽬中包含<ai_chat_sdk/chat_sdk.h>和ai_chat_sdk库

![[Pasted image 20260306175146.png]]

![[Pasted image 20260306180005.png]]

![[Pasted image 20260306180117.png]]

![[Pasted image 20260306180531.png]]

![[Pasted image 20260306181429.png]]

  • chatDemo.cpp

在这里插入图片描述

![[Pasted image 20260306185424.png]]

![[Pasted image 20260306184442.png]]

  • 创建CMakeList.txt⽂件

![[Pasted image 20260306190245.png]]

  • 编译

![[Pasted image 20260306190318.png]]

![[Pasted image 20260306190358.png]]

  • 添加日志初始化

![[Pasted image 20260306190450.png]]

  • 运行结果

![[Pasted image 20260306190532.png]]

![[Pasted image 20260306190639.png]]

deepseek的api介绍

![[Pasted image 20260306225448.png]]

![[Pasted image 20260306225457.png]]

![[Pasted image 20260306230112.png]]

curl https://api.deepseek.com/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${DEEPSEEK_API_KEY}" \
  -d '{
        "model": "deepseek-chat",
        "messages": [
          {"role": "system", "content": "You are a helpful assistant."},
          {"role": "user", "content": "Hello!"}
        ],
        "stream": false
      }'

![[Pasted image 20260306230458.png]]

apifox

使⽤apifox⼯具给DeepSeek的deepseek-chat发送聊天消息
Base url:https://api.deepseek.com
![[Pasted image 20260306231444.png]]

deepseek的api测试

【⻆⾊-role】
为模型提供当前⽂本的⻆⾊信息,帮助模型更好的理解上下⽂并⽣成合适的响应。
在⼤多数模型中,⻆⾊⼀般有三种:

  • user:表⽰当前⽂本是⽤⼾输⼊的内容
{  
	"role": "user",  
	"content": "你好,我想了解⼀下健康饮⻝的基本原则。"  
}
  • assistant:表⽰当前⽂本是模型⾃⾝输出的内容
{  
	"role": "assistant",  
	"content": "健康饮⻝的基本原则包括均衡摄⼊各种营养素、控制热量摄⼊、多吃蔬菜⽔果、减少⾼糖⾼盐⾼脂肪⻝物等。"  
}
  • system:设置AI助⼿的⾝份,⼤模型将会以该⾝份回复⽤⼾问题
{  
	"role": "system",  
	"content": "你是⼀位专业的营养师,专注于健康饮⻝领域。"  
}
  • tool:实现⼯具调⽤(之前称作函数调⽤),⼤模型需要调⽤外部⼯具更好回答⽤⼾问题,tool消息⽤来将⼯具执⾏结果返回给模型,让模型基于该结果⽣成最终回复。

![[Pasted image 20260306233300.png]]

![[Pasted image 20260306234049.png]]

请求头设置
![[Pasted image 20260306234248.png]]

响应体暂时不⽤设置,直接采⽤默认接⼝,将来直接看DeepSeek返回的⽂本就好。
![[Pasted image 20260306234346.png]]

接⼝定义完成之后,配置测试环境:
![[Pasted image 20260306234520.png]]

右上角选择环境
测试环境配置好之后,选择测试环境,点击发送按钮,apifox会将请求发送给DeepSeek的服务器,并将相应输出
![[Pasted image 20260307000331.png]]

![[Pasted image 20260307000506.png]]

![[Pasted image 20260307000837.png]]

ChatGPT的API

![[Pasted image 20260307002349.png]]

Gemini的API

![[Pasted image 20260307003307.png]]

左下角
![[Pasted image 20260307003453.png]]

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐