Chatbox AI|程序员救星!一个API调用GPT、Claude、deepseek等多个大模型!

Chatbox AI|程序员救星!一个API调用GPT、Claude、deepseek等多个大模型!
Chatbox AI 是一款 AI 客户端应用和智能助手,支持众多先进的 AI 模型和 API,可在 Windows、MacOS、Android、iOS、Linux 和网页版上使用。
Chatbox AI体验地址:全平台AI,办公学习的AI好助手
在这里插入图片描述


目录

Chatbox AI代码生成体验

对于一名开发人员来说,首先要体验Chatbox AI的功能就是代码生成。
博主对这个功能有两个方向期待,第一是代码生成的速度,第二个就是代码质量。

登录界面

最近博主正好想搭建一个小型后台管理系统,用的前端技术栈是Vue3+ElementPlus,
这里输入的内容是

prompt:使用vue3+elementplus,输出一则登录界面。
在这里插入图片描述


然后遵循着拿来即用的原则,出来的效果还是非常不错的,是博主想象中的效果,也至少比博主写的好,关键还写的快,还能给你完整代码以及实现过程。

在这里插入图片描述

审核流程

继续给Chatbox AI平台上难度。

再给我生成一个功能模块,关于审核流程的,能够动态设定审核节点和审核人

博主搭建的这个小型后台管理系统,希望能够有一个审核流程的模块功能,来看看Chatbox AI输出的效果。

在这里插入图片描述


输出的效果,显然是一段添加或者编辑审批流程的一个表单页面,此时,我们进一步再询问,让平台输出一个管理页面,点击界面的添加或者名称弹窗下面的表单。

在这里插入图片描述


在这里插入图片描述


短短几分钟就快速理解博主的意图,并生成了我觉得还不错的界面效果,有一点博主是可以肯定的,就是Chatbox AI至少对代码生成的理解程度会相对于其他通用型模型要高,我觉得应该是Chatbox AI本身有一定专项训练的原因有关,这也是Chatbox AI平台优势之一。

好了,体验体验了一把代码生成,下面就来逐一给大家介绍下Chatbox AI平台的功能吧。

一、Chatbox AI介绍

Chatbox AI体验地址:全平台AI,办公学习的AI好助手

1.1、基本信息

⼀款集多模型对话、AI绘画等功能于⼀体的全平台AI助⼿,功能非常的全,一个平台就能搞定和获得你想要的功能,再也不用到处切换平台了。

1.2、五大优势

下面列举的ChatboxAI五大优势就是通过ChatboAI平台进行优化后的Html效果。

在这里插入图片描述

1.集成主流模型
在⼀个应⽤⾥使⽤全部主流模型,如DeepSeek满⾎版、ChatGPT、Gemini、Claude、 Claude、grok等;

2.⽀持全平台
⽀持Windows、macOS、Linux以及移动平台,提供开箱即⽤的使⽤体验,⼀个 api ⽀持五个设备;

3.多功能集成
除了传统⽂本对话外,⽀持⽂档、图⽚、代码等多种类型的信息交互;

4.隐私与本地存储
⽤⼾数据主要存储在本地,确保个⼈隐私安全;

5.联⽹搜索与实时更新
集成联⽹搜索功能,帮助⽤⼾获取最新信息,满⾜办公、学习等场景的需求;

1.3、PC客户端

博主这里也下载了PC客户端体验,软件整体占的空间也不大,整个界面看着非常清爽,使用也非常简单和熟悉,也有实际例子,功能也非常全。

在这里插入图片描述

1.4、网页版

Chatbox AI同样支持网页版,非常方便,和客户端基本一样,博主比较建议下个客户端体验。

在这里插入图片描述

1.5、主要功能

以下是Chatbox主要功能的Markdown表格,包含功能名称、详细描述和对应的图标:

功能名称功能描述
与文档和图片聊天理解文档、图片和代码内容,提供智能响应以提高生产力和创造力
代码神器提供完整的编码辅助功能:
- 💡代码生成
- 👁️预览
- 🎨语法高亮
- 🔍代码审查
- 🔄重构
- 📚智能文档
- 🐞调试助手
- 🚀优化
- 🔒安全检查
实时联网搜索获取即时网络信息:
- 🌐联网搜索
- 📰最新新闻
- 📊即时数据
- 🔗URL分析
- 📑内容摘要
- ✓事实核查
图表可视化通过可视化工具阐明复杂概念、趋势和统计数据
AI图像生成将文字描述转化为图像:
- 无限创意
- 文本到图像转换
- 多种艺术风格
LaTeX/Markdown支持支持学术和技术内容创作:
- 📝学术写作
- ∑数学公式
- 🧬学术讨论
隐私与数据管理本地化数据存储方案:
- 🔒本地存储
- 💾数据备份
- 🔍历史搜索

二、

二、Chatbox AI功能体验

Chatbox AI提供文本对话和文生图两种类型模型选择,比如:

在这里插入图片描述


在这里插入图片描述

2.1、代码生成与预览

博主作为一名程序员,第一时间体验的功能就是代码生成了,毕竟这是和博主生活和工作息息相关的功能,博主有对比过好几个平台代码生成质量和速度,其实大多还不是很理想,这个应该是和他们客户端的输出有关,给我的感觉就是有点卡顿,这也是博主比较关心的一点,现在我们逐一体验下。

代码生成

输入基本信息,一键生成Html页面代码,比如:
从下图可以看出效果,响应效果直接就是秒出,输出的速度完全超出了我的期望,渲染效果也是非常流畅,看着就很舒服。

在这里插入图片描述

效果预览

博主这里是直接生成的Html代码,所以Chatbox平台是完全支持点击预览的,下面就是预览效果,这样可以提前查看效果。

如果没有达到自己想要的效果,那么是可以随时进行多轮询问,直到满意为主。

在这里插入图片描述

语法高亮

博主这里分别让Chatbox AI输出了一段Sql和C#代码,作为语法高亮的对比。
可能有些小伙伴对于语法高亮这个并没有太在意,其实这个语法高亮是非常有必要且能够快速让我们抓住重点以及系统关键词做一个很好的区分。

博主记得在刚开始的时候,自己有封装过一个前端框架,自己封装过一个代码高亮的插件,折腾了好一段时间,发现出来的效果并不理解,最后还是通过第三方插件来解决,所以,语法高亮这块,我觉得ChatboxAI的效果也非常可以了。

在这里插入图片描述


在这里插入图片描述

代码审查

博主提供了一段存在一定漏洞的代码,基本上都是秒分析,非常迅速的罗列代码潜在的问题,最后输出修正后的代码。

在这里插入图片描述


在这里插入图片描述

2.2、文档和图片理解

文档理解能力
上面主要功能Markdown格式就是通过文档理解功能输出。
响应速度和输出速度都比我预期的要好,输出非常流畅,其他平台我发现是一会一会的看着有点卡顿感觉,ChatboxAI整体输出是比较流畅的,这个也是客户端的优势吧,也可能是平台本身逻辑算法的优化的原因。

在这里插入图片描述


图片理解能力
图片理解轻轻松松,还能进行进一步提问总结输出。

在这里插入图片描述


在这里插入图片描述

2.3、实时联网搜索与查询

需要点击输入框里的联网图标,然后输入,比如:

输出10条,最近关于互联网的新闻
在这里插入图片描述

2.4、生成可视化图表与见解

博主这里直接使用Chatbox本身主要功能作为内容生成一份图表,看下效果。
说实在的,出来的效果把我震撼到了,太强大了,超出了我的预期效果。

在这里插入图片描述


那么,博主我是怎么使用的呢,很简单,首先我是把Chatbox AI主要功能文本放到txt文本文档里,比如

在这里插入图片描述


接着就是,直接使用Chatbox AI本身自带的做图表实例,已经帮我们设计好了Prompt提示词,直接就可以使用和输出图表。

在这里插入图片描述

2.5、AI驱动的图像生成

文生图,需要切换到新图像对话,然后输出文生图的描述,比如

帮我画一个公仔,偏向可爱形,类似小黄人风格,有自己专属的小天线
在这里插入图片描述
prompt:图片里含有“Chatbox AI”关键词

两个字,好强的理解能力。

我在其他平台体验过类似的功能,出来的效果会有偏差,还有可能是错误的内容。但是Chatbox AI出来的效果,就是字面的意思,所以我才发出开头的感慨,好强的理解能力。

在这里插入图片描述
prompt:再输出一张关于技术博客文章的封面图,要求炫酷科技感一点。
在这里插入图片描述

2.6、LaTeX和Markdown渲染

这个功能我觉得非常有必要,特别是需要输出一些数学相关的题目之类的。
格式渲染出来非常完美,这个博主深有体会,博主自己就开发过一个页面来展示这些公式,耗了好几天都没找到很好的解决方案去展示。
ChatboxAI渲染效果就非常不错,赞!

在这里插入图片描述

2.7、本地存储设置

博主在网页端和PC客户端切换,确实只有本地存储。

在这里插入图片描述

三、Chatbox AI开发俄罗斯方块游戏体验

博主通过简单的描述生成一份关于俄罗斯方块游戏的代码,并直接在线体验。

prompt提示词:生成俄罗斯方块游戏,方块颜色可以好点。

3.1、Prompt提示词

下面是运行效果
就简单一句话,就能快速生成经典游戏,同样也是超出我的预期效果,是不是很期待体验了呢。

不过有个建议,这里预览的时候,发现不能全屏,导致出现滚动条,游戏预览体验会有一定影响,但是直接使用代码运行完全没有问题。

在这里插入图片描述

3.2、完整代码

<!DOCTYPEhtml><html><head><title>彩色俄罗斯方块</title><style>body{display: flex;justify-content: center;align-items: center;height: 100vh;margin: 0;background: #f0f0f0;font-family: Arial, sans-serif;}#game-container{display: flex;gap: 20px;}#tetris{border: 2px solid #333;background: #111;}#side-panel{display: flex;flex-direction: column;gap: 20px;}#next-piece{border: 2px solid #333;background: #111;}#score-panel{padding: 10px;background: #333;color: white;border-radius: 5px;text-align: center;}.controls{margin-top: 20px;text-align: center;color: #333;}</style></head><body><divid="game-container"><canvasid="tetris"width="300"height="600"></canvas><divid="side-panel"><canvasid="next-piece"width="120"height="120"></canvas><divid="score-panel"><h3>分数: <spanid="score">0</span></h3><h3>等级: <spanid="level">1</span></h3><h3>行数: <spanid="lines">0</span></h3></div><divclass="controls"><p>← → : 移动</p><p>↑ : 旋转</p><p>↓ : 加速下落</p><p>空格 : 直接落下</p><p>P : 暂停</p></div></div></div><script>// 游戏常量constCOLS=10;constROWS=20;constBLOCK_SIZE=30;constCOLORS=[null,'#FF0D72',// I - 粉色'#0DC2FF',// J - 蓝色'#0DFF72',// L - 绿色'#F538FF',// O - 紫色'#FF8E0D',// S - 橙色'#FFE138',// T - 黄色'#3877FF'// Z - 深蓝];// 方块形状定义constSHAPES=[null,[[0,0,0,0],[1,1,1,1],[0,0,0,0],[0,0,0,0]],// I[[2,0,0],[2,2,2],[0,0,0]],// J[[0,0,3],[3,3,3],[0,0,0]],// L[[0,4,4],[0,4,4],[0,0,0]],// O[[0,5,5],[5,5,0],[0,0,0]],// S[[0,6,0],[6,6,6],[0,0,0]],// T[[7,7,0],[0,7,7],[0,0,0]]// Z];// 游戏变量let canvas = document.getElementById('tetris');let ctx = canvas.getContext('2d');let nextCanvas = document.getElementById('next-piece');let nextCtx = nextCanvas.getContext('2d');let scoreElement = document.getElementById('score');let levelElement = document.getElementById('level');let linesElement = document.getElementById('lines');// 缩放方块大小以适应画布 ctx.scale(BLOCK_SIZE,BLOCK_SIZE); nextCtx.scale(BLOCK_SIZE,BLOCK_SIZE);// 游戏状态let score =0;let level =1;let lines =0;let gameOver =false;let paused =false;let dropCounter =0;let dropInterval =1000;let lastTime =0;// 创建游戏板functioncreateMatrix(w, h){const matrix =[];while(h--){ matrix.push(newArray(w).fill(0));}return matrix;}let board =createMatrix(COLS,ROWS);let player ={pos:{x:0,y:0},matrix:null,score:0};// 创建方块functioncreatePiece(type){return{pos:{x: Math.floor(COLS/2)-1,y:0},matrix:SHAPES[type],type: type };}// 绘制矩阵functiondrawMatrix(matrix, offset, context){ matrix.forEach((row, y)=>{ row.forEach((value, x)=>{if(value !==0){ context.fillStyle =COLORS[value]; context.fillRect(x + offset.x, y + offset.y,1,1);// 添加方块边框效果 context.strokeStyle ='rgba(255, 255, 255, 0.2)'; context.lineWidth =0.1; context.strokeRect(x + offset.x, y + offset.y,1,1);}});});}// 绘制游戏状态functiondraw(){// 清空画布 ctx.fillStyle ='#111'; ctx.fillRect(0,0, canvas.width, canvas.height);// 绘制游戏板drawMatrix(board,{x:0,y:0}, ctx);// 绘制当前方块if(player.matrix){drawMatrix(player.matrix, player.pos, ctx);}// 绘制网格线 ctx.strokeStyle ='rgba(255, 255, 255, 0.05)'; ctx.lineWidth =0.02;for(let i =0; i <=COLS; i++){ ctx.beginPath(); ctx.moveTo(i,0); ctx.lineTo(i,ROWS); ctx.stroke();}for(let i =0; i <=ROWS; i++){ ctx.beginPath(); ctx.moveTo(0, i); ctx.lineTo(COLS, i); ctx.stroke();}}// 绘制下一个方块functiondrawNext(){ nextCtx.fillStyle ='#111'; nextCtx.fillRect(0,0, nextCanvas.width, nextCanvas.height);if(nextPiece){// 居中显示下一个方块const offsetX =(4- nextPiece.matrix[0].length)/2;const offsetY =(4- nextPiece.matrix.length)/2;drawMatrix(nextPiece.matrix,{x: offsetX,y: offsetY}, nextCtx);}}// 合并方块到游戏板functionmerge(){ player.matrix.forEach((row, y)=>{ row.forEach((value, x)=>{if(value !==0){ board[y + player.pos.y][x + player.pos.x]= value;}});});}// 碰撞检测functioncollide(){const[m, o]=[player.matrix, player.pos];for(let y =0; y < m.length;++y){for(let x =0; x < m[y].length;++x){if(m[y][x]!==0&&(board[y + o.y]===undefined|| board[y + o.y][x + o.x]===undefined|| board[y + o.y][x + o.x]!==0)){returntrue;}}}returnfalse;}// 旋转方块functionrotate(matrix){constN= matrix.length;const result =[];for(let i =0; i <N;++i){ result[i]=[];for(let j =0; j <N;++j){ result[i][j]= matrix[N- j -1][i];}}return result;}// 旋转玩家方块functionplayerRotate(){const pos = player.pos.x;let offset =1;const rotated =rotate(player.matrix); player.matrix = rotated;// 解决旋转后可能的碰撞while(collide()){ player.pos.x += offset; offset =-(offset +(offset >0?1:-1));if(offset > player.matrix[0].length){ player.matrix =rotate(rotated); player.pos.x = pos;return;}}}// 方块下落functionplayerDrop(){ player.pos.y++;if(collide()){ player.pos.y--;merge();playerReset();arenaSweep();updateScore();} dropCounter =0;}// 方块移动functionplayerMove(dir){ player.pos.x += dir;if(collide()){ player.pos.x -= dir;}}// 重置玩家方块functionplayerReset(){ player.matrix = nextPiece.matrix; player.pos.y =0; player.pos.x = Math.floor(COLS/2)- Math.floor(player.matrix[0].length /2); player.type = nextPiece.type;// 生成下一个方块 nextPiece =createPiece(Math.floor(Math.random()*7)+1);drawNext();// 检查游戏结束if(collide()){ gameOver =true;alert('游戏结束! 你的分数: '+ score);resetGame();}}// 清除完整的行functionarenaSweep(){let linesCleared =0;outer:for(let y = board.length -1; y >=0;--y){for(let x =0; x < board[y].length;++x){if(board[y][x]===0){continue outer;}}// 移除完整的行并在顶部添加新行const row = board.splice(y,1)[0].fill(0); board.unshift(row);++y; linesCleared++;}if(linesCleared >0){ lines += linesCleared;// 更新分数 (原始俄罗斯方块计分系统)switch(linesCleared){case1: score +=100* level;break;case2: score +=300* level;break;case3: score +=500* level;break;case4: score +=800* level;break;}// 每清除10行升一级if(Math.floor(lines /10)> level -1){ level = Math.floor(lines /10)+1; dropInterval = Math.max(100,1000-(level -1)*100);}}}// 更新分数显示functionupdateScore(){ scoreElement.textContent = score; levelElement.textContent = level; linesElement.textContent = lines;}// 重置游戏functionresetGame(){ board =createMatrix(COLS,ROWS); score =0; level =1; lines =0; gameOver =false;updateScore(); nextPiece =createPiece(Math.floor(Math.random()*7)+1);playerReset();}// 游戏更新functionupdate(time =0){if(gameOver || paused)return;const deltaTime = time - lastTime; lastTime = time; dropCounter += deltaTime;if(dropCounter > dropInterval){playerDrop();}draw();requestAnimationFrame(update);}// 键盘控制 document.addEventListener('keydown',event=>{if(gameOver)return;switch(event.keyCode){case37:// 左箭头playerMove(-1);break;case39:// 右箭头playerMove(1);break;case40:// 下箭头playerDrop();break;case38:// 上箭头playerRotate();break;case32:// 空格while(!collide()){ player.pos.y++;} player.pos.y--;playerDrop();break;case80:// P键 paused =!paused;if(!paused){ lastTime =0;update();}break;}});// 初始化游戏let nextPiece =createPiece(Math.floor(Math.random()*7)+1);playerReset();updateScore();drawNext();update();</script></body></html>

四、Chatbox AI选择DeepSeek模型体验

Chatbox AI平台同样支持DeepSeek模型的选择,对接也非常的简单。

4.1、申请Key

在DeepSeek官网申请好Key之后,直接复制到文本框即可,比如:

在这里插入图片描述

4.2、检查Key

复制Key到对应文本框后,点击检查,显示连接成功即可

在这里插入图片描述

4.3、体验

在选择模型下面,就可以看到DeepSeek下面的模型。
这里需要注意,是选择DeeoSeek下的模型,可能有些小伙伴会搞混淆,因为Chatbox AI本身也有对应DeepSeek模型。

在这里插入图片描述


在这里插入图片描述

4.4、其他模型

除了DeepSeek模型之外,ChatboxAI还提供了几乎主流的模型,比如,
所以,是不是能够感受到,Chatbox AI为什么叫全平台AI,给博主的感受就是,接入第三方api的功能都是免费的,购买chatbox官方的api是需要付费的。但官方api的好处是,出同样的钱可以一次性使用n个供应商的大模型,省去了多次购买的麻烦,性价比很高!

在这里插入图片描述

五、体验总结

博主通过实际体验和使用,能够深深高手到用 AI 提高效率,也是工作学习的最佳拍档。
一个简约强大的 AI 桌面客户端,支持最先进的多款大语言模型,让前沿的人工智能技术变成易于使用的生产力工具。

上面仅仅是博主体验主要功能,Chatbox AI平台更多功能等你来发现和体验。

Read more

【Linux】poll 多路转接:select 的改良版,以及它留下的遗憾

【Linux】poll 多路转接:select 的改良版,以及它留下的遗憾

文章目录 * poll 多路转接:select 的改良版,以及它留下的遗憾 * 一、select 的痛点回顾 * 1.1 select 的问题在哪里? * 二、poll 函数接口详解 * 2.1 函数原型 * 2.2 核心数据结构:pollfd * 2.3 参数详解 * 2.4 返回值 * 三、poll vs select:对比分析 * 3.1 数据结构对比 * 3.2 使用方式对比 * 3.3 优缺点总结 * 四、poll 执行过程图解 * 4.1 一次 poll

By Ne0inhk
[特殊字符]颠覆MCP!Open WebUI新技术mcpo横空出世!支持ollama!轻松支持各种MCP Server!Cline+Claude3.7轻松开发论文检索MCP Server!

[特殊字符]颠覆MCP!Open WebUI新技术mcpo横空出世!支持ollama!轻松支持各种MCP Server!Cline+Claude3.7轻松开发论文检索MCP Server!

🔥🔥🔥本篇笔记所对应的视频:🚀颠覆MCP!Open WebUI新技术mcpo横空出世!支持ollama!轻松支持各种MCP Server!Cline+Claude3.7轻松开发MCP服务_哔哩哔哩_bilibili Open WebUI 的 MCPo 项目:将 MCP 工具无缝集成到 OpenAPI 的创新解决方案 随着人工智能工具和模型的快速发展,如何高效、安全地将这些工具集成到标准化的 API 接口中成为了开发者面临的重要挑战。Open WebUI 的 MCPo 项目(Model Context Protocol-to-OpenAPI Proxy Server)正是为了解决这一问题而设计的。本文将带您深入了解 MCPo 的功能、优势及其对开发者生态的影响。 什么是 MCPo? MCPo 是一个简单、可靠的代理服务器,能够将任何基于 MCP 协议的工具转换为兼容

By Ne0inhk
Qwen3+Qwen Agent 智能体开发实战,打开大模型MCP工具新方式!(一)

Qwen3+Qwen Agent 智能体开发实战,打开大模型MCP工具新方式!(一)

系列文章目录 一、Qwen3+Qwen Agent 智能体开发实战,打开大模型MCP工具新方式!(一) 二、Qwen3+Qwen Agent +MCP智能体开发实战(二)—10分钟打造"MiniManus" 前言 要说最近人工智能界最火热的开源大模型,必定是阿里发布不久的Qwen3系列模型。Qwen3模型凭借赶超DeepSeek-V3/R1的优异性能,创新的混合推理模式,以及极强的MCP能力迅速成为AI Agent开发的主流基座模型。大家可参考我的文章一文解析Qwen3大模型详细了解Qwen3模型的核心能力。有读者私信我: “Qwen3官网特地强调增强了Agent和代码能力,同时加强了对MCP的支持,那么我该如何利用Qwen3快速开发MCP应用呢?” 这就就需要使用我们今天的主角——Qwen官方推荐的开发工具Qwen-Agent ,本期分享我们就一起学习快速使用Qwen3+QwenAgent 接入MCP服务端,快速开发AI Agent应用! 一、注册 Qwen3 API-Key 本次分享通过阿里云百炼大模型服务平台API Key请求方式调用Qwen3大模型,获取服务平台

By Ne0inhk