<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[weixin_46726346的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/weixin_46726346</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; weixin_46726346]]></copyright><item><title><![CDATA[从零实现一个GPT 【React + Express】--- 【4】实现文生图的功能]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/149269833</link><guid>https://blog.csdn.net/weixin_46726346/article/details/149269833</guid><author>weixin_46726346</author><pubDate>Fri, 11 Jul 2025 11:16:51 +0800</pubDate><description><![CDATA[这是本系列的第四篇文章，在之前的三篇文章，我们主要实现了对话的功能。通过使用SSE和GPT模型，完成了一个能够自由对话的产品。在之前的文章里，我们同时也处理了markdown和代码的格式。对话方面就告一段落，后续我们就要针对特定的功能去实现了，而这一篇，主要来实现一下文生图的功能。]]></description><category></category></item><item><title><![CDATA[从零实现一个GPT 【React + Express】--- 【3】解析markdown，处理模型记忆]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/149269610</link><guid>https://blog.csdn.net/weixin_46726346/article/details/149269610</guid><author>weixin_46726346</author><pubDate>Fri, 11 Jul 2025 11:09:49 +0800</pubDate><description><![CDATA[从零实现一个GPT 【React + Express】— 【2】实现对话流和停止生成在这一篇里，我们实现了前端对话流的基本交互，可以做到问答以及停止生成的效果：但是会发现从效果上来看，似乎很丑，因为都挤在一起了，没有一点格式。这个时候我们要看一下模型返回的内容是不是没有格式的，看一下接口你就会发现，其实模型返回的内容是markdown的内容，所以我们前端在处理的时候需要对其转换一下的。]]></description><category></category></item><item><title><![CDATA[从零实现一个GPT 【React + Express】--- 【2】实现对话流和停止生成]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/149244245</link><guid>https://blog.csdn.net/weixin_46726346/article/details/149244245</guid><author>weixin_46726346</author><pubDate>Thu, 10 Jul 2025 10:34:39 +0800</pubDate><description><![CDATA[从零实现一个GPT 【React + Express】— 【1】初始化前后端项目，实现模型接入+SSE最后我们实现了前端和后端部分的SSE内容，可以通过前端发送query，后端调用gpt模型通过流试返回内容。而在这一篇中，我们主要把对话部分给实现出来，就是通过后端返回的内容来渲染对话流。]]></description><category></category></item><item><title><![CDATA[从零实现一个GPT 【React + Express】--- 【1】初始化前后端项目，实现模型接入+SSE]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/149192517</link><guid>https://blog.csdn.net/weixin_46726346/article/details/149192517</guid><author>weixin_46726346</author><pubDate>Tue, 08 Jul 2025 10:35:50 +0800</pubDate><description><![CDATA[本系列文章主要是实现一个能够对话以及具有文生图等功能的模型应用。主要UI界面会参考chat-gpt,豆包等系列应用。模型使用的是gpt开源的大模型。如果你是一个前端开发工程师需要一个自己的开源项目，可以学习这个系列的文章，不需要有很完整的后端知识也可以完成。前端部分主要是通过React来实现，后端部分通过express来实现。]]></description><category></category></item><item><title><![CDATA[从零实现一套低代码（保姆级教程）【运行时】 --- 【30】实现组件的删除和复制功能]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/140174109</link><guid>https://blog.csdn.net/weixin_46726346/article/details/140174109</guid><author>weixin_46726346</author><pubDate>Thu, 04 Jul 2024 11:16:25 +0800</pubDate><description><![CDATA[本篇主要来实现一下，在设计器里，对组件进行删除和复制的功能。这一篇不该在运行时的分组里面，但是写到这里来，就继续写下去吧。因为在设计页面的时候，一定会出现拖拽错组件的情况。所以我们给设计器增加删除组件的功能，同时对于已经配置好的组件，如果想再配置出一个，不如直接复制来的爽快，所以我们再给组件加一个复制的功能。至于这两个功能按钮，我们只需要一直在组件的正上方即可。所以在中修改我们的方法</div>}})</Com></div></div></div></div>]]></description><category></category></item><item><title><![CDATA[从零实现一套低代码（保姆级教程）【运行时】 --- 【29】实现设计态的预览按钮和全屏展示]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/138847170</link><guid>https://blog.csdn.net/weixin_46726346/article/details/138847170</guid><author>weixin_46726346</author><pubDate>Tue, 14 May 2024 14:30:06 +0800</pubDate><description><![CDATA[目前这个低代码平台的整体，我们已经搭建好了。后续可能就是一些额外功能的补充。现在我们看这个平台会发现一个比较明显的问题：就是在运行时，能展示组件的地方只有中间的画布区。因为在设计态的时候，我们就已经缩小了放置组件的范围，有三个地方我们是不能拖拽组件的。顶部栏，左侧组件区域，右侧面板区域。为了能够让这三个区域放置组件，我们希望能够将其隐藏，并且通过某种方式再让它显示出来。当然这里博主只是提供了一个产品思路，如果读者有其他的实现方式，可以自行尝试，这里没有什么必须要以什么方式去实现。]]></description><category></category></item><item><title><![CDATA[从零实现一套低代码（保姆级教程）【运行时】 --- 【28】实现模型驱动组件的交互]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/138278151</link><guid>https://blog.csdn.net/weixin_46726346/article/details/138278151</guid><author>weixin_46726346</author><pubDate>Sun, 28 Apr 2024 16:23:20 +0800</pubDate><description><![CDATA[即将来到运行时最重要的一部分。在上一章，我们实现了给组件添加事件。但我们会发现，这个事件只是组件单条线路的事件，做不到组件之间的交互。比如，我想点击某个按钮让另外一个按钮的文字发生改变。所以为了实现这样的效果，我们需要一个全局的模型。那，对于前端来说，就是window上需要有一个变量。我们设为ctx。我们现在有一个redux管理的comList，用来表示所有组件的全部信息。同时，我们要在window上挂载一个和comList一模一样的一个对象。]]></description><category></category></item><item><title><![CDATA[从零实现一套低代码（保姆级教程）【运行时】 --- 【27】实现Button组件的事件处理]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/138212661</link><guid>https://blog.csdn.net/weixin_46726346/article/details/138212661</guid><author>weixin_46726346</author><pubDate>Fri, 26 Apr 2024 11:37:09 +0800</pubDate><description><![CDATA[在上一篇中，我们实现了Button组件的动作面板，其实也就是几个按钮。我们希望，点击动作面板里的按钮时，有一个弹窗。可以提供编辑代码的能力，比如我想点击按钮的时候，alert(123)。这段代码我希望可以写进去。所以我们需要一个JS编辑器的组件。这里我们直接去github上找一个现成的。有了这些准备之后，我们就可以开始实现事件系统里。]]></description><category></category></item><item><title><![CDATA[从零实现一套低代码（保姆级教程）【运行时】 --- 【26】实现运行时路由页面和动作面板]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/138161735</link><guid>https://blog.csdn.net/weixin_46726346/article/details/138161735</guid><author>weixin_46726346</author><pubDate>Thu, 25 Apr 2024 10:42:23 +0800</pubDate><description><![CDATA[经过之前的十篇文章，我们已经完成了后端服务。从这一篇开始，我们着重于实现运行时的功能。回顾上一篇的内容，我们实现了一个可以存储数据的Form表单。而这个Form表单有一个submit的事件，我们思考一下，像这种组件的事件，应该在设计态的时候触发吗？应该是不允许的，因为我们在设计页面的时候，很容易不小心点击到按钮的点击事件等。所以我们需要将这些事件的触发，放在另一个地方。我们再想一个问题，我们设计好的页面，应该以页面的方式呈现出来，而不应该有那些左边的组件，右边的属性面板。所以需要一个纯展示组件的页面。]]></description><category></category></item><item><title><![CDATA[从零实现一套低代码（保姆级教程）【后端服务】 --- 【25】实现Form组件的数据录入]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/138066607</link><guid>https://blog.csdn.net/weixin_46726346/article/details/138066607</guid><author>weixin_46726346</author><pubDate>Mon, 22 Apr 2024 15:10:01 +0800</pubDate><description><![CDATA[在上一篇中，我们实现了数据的持久化展示。可以通过表格将数据库中的数据展示出来。有了展示，那么就要有可以录入的组件。而我们之前实现的Form组件，就可以完成数据的录入。现在要做的就是，怎么修改Form组件，让他能够将数据存储到数据库中。我们肯定希望的是，在Form组件下有一些Input输入框，然后点击一个保存按钮，就可以将数据保存在数据库里面。现在我们来开始实现这一个需求问题。]]></description><category></category></item><item><title><![CDATA[从零实现一套低代码（保姆级教程）【后端服务】 --- 【24】实现Table表格组件以及数据展示]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/137880069</link><guid>https://blog.csdn.net/weixin_46726346/article/details/137880069</guid><author>weixin_46726346</author><pubDate>Wed, 17 Apr 2024 17:24:57 +0800</pubDate><description><![CDATA[经过前面几章的内容，我们的后端服务已经支持了对页面的管理，对图片的管理，并且也支持了在XinBuilder中如何去使用它们。这一篇继续回归到XinBuilder的项目里，再上一篇中，我们实现了和实体相关的后端内容，也就是我们有了持久化的数据存储。但是有了数据之后，我们如何能够在低代码项目里面使用？本篇主要通过Table组件来串通数据在XinBuilder中如何展示。]]></description><category></category></item><item><title><![CDATA[从零实现一套低代码（保姆级教程）【后端服务】 --- 【23】实现数据库表新增数据以及页面展示]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/136310242</link><guid>https://blog.csdn.net/weixin_46726346/article/details/136310242</guid><author>weixin_46726346</author><pubDate>Mon, 26 Feb 2024 22:54:03 +0800</pubDate><description><![CDATA[在上一篇中，我们实现了可视化创建数据库表。并没说怎么对表中的数据进行操作。OK，现在我们来实现相关的内容。在AppBuilder中，可以通过可视化操作数据在XinBuilder中，可以通过表单等方式进行提交但是，不管是哪种方式，我们首先应该有添加数据的接口。]]></description><category></category></item><item><title><![CDATA[从零实现一套低代码（保姆级教程）【后端服务】 --- 【22】实现数据库管理的前端页面]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/136288248</link><guid>https://blog.csdn.net/weixin_46726346/article/details/136288248</guid><author>weixin_46726346</author><pubDate>Sun, 25 Feb 2024 22:26:41 +0800</pubDate><description><![CDATA[新增实体的接口删除实体的接口获取实体列表的接口其实复杂的地方在于，我们创建一个实体，是在数据库中创建了一张表。而这张表中的数据，是要根据低代码平台中的操作进行更改。现在，我们有了接口之后，要将这个实体创建，删除等过程，进行可视化。所以我们需要来到AppBuilder项目中。]]></description><category></category></item><item><title><![CDATA[从零实现一套低代码（保姆级教程）【后端服务】 --- 【21】实现数据库的动态建表等接口]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/135865023</link><guid>https://blog.csdn.net/weixin_46726346/article/details/135865023</guid><author>weixin_46726346</author><pubDate>Fri, 26 Jan 2024 15:31:34 +0800</pubDate><description><![CDATA[在前面的两篇文章，我们主要是通过Upload组件和Image组件，真正的做到了设计器和后端服务之间的数据传递。有了这个例子，应该比较清楚，对于低代码项目的服务端，它。因为正常做开发，后端主要是对某个字段的数据进行存储，例如姓名，年龄等。但是对于低代码的后端，它的存储没有具体到某个字段，也没有具体的数量，它是和设计器里面的字段进行关系映射。当然，这是后话，目前我们能做的，就是说如何在我们的项目里面，可以创建数据库的表，例如我创建一张学生表，创建一张教师表。]]></description><category></category></item><item><title><![CDATA[从零实现一套低代码（保姆级教程）【后端服务】 --- 【20】实现Upload组件和Image组件]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/135851972</link><guid>https://blog.csdn.net/weixin_46726346/article/details/135851972</guid><author>weixin_46726346</author><pubDate>Thu, 25 Jan 2024 20:05:02 +0800</pubDate><description><![CDATA[在上一篇文章中，我们主要的工作是在AppBuilder中，做了图片管理这样的一个路由。从上传图片，到图片的展示，我们的服务端代码已经完成。同时也在前端页面进行了接口的调用。现在，有了这些基础，我们就可以在我们的低代码平台中，了。]]></description><category></category></item><item><title><![CDATA[从零实现一套低代码（保姆级教程）【后端服务】 --- 【19】实现Upload相关接口和前端页面]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/135742535</link><guid>https://blog.csdn.net/weixin_46726346/article/details/135742535</guid><author>weixin_46726346</author><pubDate>Mon, 22 Jan 2024 11:18:51 +0800</pubDate><description><![CDATA[在之前的文章里，在实现组件的时候，有提到Upload组件，当时并没有对这个组件进行实现。那我们现在思考一下，如果我们想实现Upload组件和Image组件，我们应该怎么去做。Upload组件有一个很重要的属性是action，也就是上传的服务器位置。所以我们实现Upload组件之前，应该有一个服务器用来保存上传的图片。之后在Image组件里进行展示。那这整套流程在我们的三个项目里是怎么样的呢？OK，大体流程我们有了，现在我们开始进行实现。]]></description><category></category></item><item><title><![CDATA[从零实现一套低代码（保姆级教程）【后端服务】 --- 【18】实现页面接口对应的前端]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/135666949</link><guid>https://blog.csdn.net/weixin_46726346/article/details/135666949</guid><author>weixin_46726346</author><pubDate>Thu, 18 Jan 2024 14:08:15 +0800</pubDate><description><![CDATA[在上一篇中，我们已经把和页面相关的接口完成的差不多了。从创建页面，更新页面等等：有了接口之后，我们就可以构建前端页面了。那这部分前端内容我们应该写在哪里呢？因为我不确定这个项目后面会有多少代码，虽然我们目前只是想实现页面的管理功能，但是后面我也不知道会增加到多少。所以我准备使用两个React项目，和页面相关的这些功能我都会写在新的项目里，]]></description><category></category></item><item><title><![CDATA[从零实现一套低代码（保姆级教程）【后端服务】 --- 【17】实现页面的增删改查接口]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/135650803</link><guid>https://blog.csdn.net/weixin_46726346/article/details/135650803</guid><author>weixin_46726346</author><pubDate>Wed, 17 Jan 2024 16:01:33 +0800</pubDate><description><![CDATA[在上一篇中，我们已经搭建好了后端服务。同时实现了获取全部页面列表的接口以及Swagger文档的配置。如果这一步没有问题了，我们现在就可以去完成剩下和页面相关的接口了。我们先总体的看一下，我们要实现什么接口。]]></description><category></category></item><item><title><![CDATA[从零实现一套低代码（保姆级教程）【后端服务】 --- 【16】初始化后端项目]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/135601461</link><guid>https://blog.csdn.net/weixin_46726346/article/details/135601461</guid><author>weixin_46726346</author><pubDate>Mon, 15 Jan 2024 16:48:06 +0800</pubDate><description><![CDATA[在前面的实现过程中，我们的低代码平台，在前端已经有一定的构建页面的能力了。但是对于我们实现一个平台，肯定要支持用户对页面进行保存等功能，包括后面我们运行时的设计，都要依赖于后端的能力所以，现在我们需要考虑开始使用数据存储了。那因为博主平时的工作主要都是前端开发，所以后端框架选择了比较贴合前端的。我们低代码来讲，通常是对协议的保存以及修改，所以我们的数据库使用，当然，如果读者有一定的后端开发经验，可以自行选择后端框架和数据库。]]></description><category></category></item><item><title><![CDATA[从零实现一套低代码（保姆级教程） --- 【15】实现轮播图组件并增加容器子节点类型的控制]]></title><link>https://blog.csdn.net/weixin_46726346/article/details/135488725</link><guid>https://blog.csdn.net/weixin_46726346/article/details/135488725</guid><author>weixin_46726346</author><pubDate>Wed, 10 Jan 2024 10:09:57 +0800</pubDate><description><![CDATA[接上一篇，我们继续实现另外一个比较常见的组件。轮播图，在一些官网的页面中，这个组件是非常常见的。那如果你是从基础开始学前端的，那么轮播图组件也是一个作为入门实现的组件。那我们现在要把这个组件，加入到我们的低代码项目中，来进行实现。]]></description><category></category></item></channel></rss>