SpringBoot+Vue文创推荐系统冷启动与长尾优化实战

简介:这是一套基于Spring Boot与Vue.js开发的热门文创内容推荐平台源码,面向Java与前端初学者、课程设计学生及毕业设计开发者,解决前后端分离项目从零搭建、内容推荐逻辑实现与工程化部署的学习痛点。资源包含可直接运行的完整源码、MySQL建表SQL脚本及配套说明文档,涵盖后端RESTful接口、Vue前端页面、用户行为分析模块与推荐算法轻量集成,技术栈覆盖JDK8、Tomcat7、MySQL5.7与Vue2.x,适配Eclipse/IDEA等主流开发环境。压缩包共36.31MB,文件总数未提供,但核心类型包括Java后端源码(controller/service/mapper)、Vue组件与路由配置、SQL数据库脚本及项目说明文档,分别支撑业务逻辑、交互呈现、数据初始化与快速上手。已有79人学习下载,源码经博主调试验证,支持有偿部署协助,并提供及时答疑,适合用于毕设选题、课程大作业或二次开发实践,具备清晰分层结构与典型电商类推荐场景参考价值。

1. 为什么“热门文创内容推荐”在 SpringBoot + Vue 架构下容易做砸?——一个被低估的冷启动与长尾失衡问题

你手头这个5b263基于springboot+vue的热门文创内容推荐平台.zip,表面看是个标准的前后端分离毕设/实训项目:后端用 SpringBoot 搭 REST API,前端用 Vue 渲染列表、卡片、详情页,加个“猜你喜欢”模块就算推荐。但真实踩过坑的开发者都知道——文创类内容(手作教程、非遗图文、小众插画、独立设计稿、城市文化漫游笔记)天然缺乏用户行为密度,协同过滤会集体失效,热度排序又会让 5% 的爆款吃掉 90% 的曝光,新作者永远卡在首页第三屏之后。这不是算法不行,是数据结构和业务逻辑没对齐。本项目真正值得深挖的,不是“怎么把 Vue 页面跑起来”,而是如何在无埋点 SDK、无实时日志管道、无专业标注团队的前提下,用轻量级规则引擎 + 内容语义增强 + 行为稀疏补偿策略,让冷启动内容 48 小时内获得有效分发。适合正在做课程设计、实习项目、小型文化机构内部系统的一线开发同学——你要的不是论文级推荐模型,而是一套能上线、能调参、能解释、能快速迭代的工程化落地方案。


2. 推荐系统不是“加个 RecommenderService 就完事”:从架构分层看为什么必须拆解“热门”与“推荐”

提示:别急着写@Service类。先想清楚“热门”和“推荐”在业务语义上根本不是一回事——前者是运营兜底策略(保底流量),后者是用户兴趣延伸(增量价值)。混在一起写,后期改一个排序逻辑,全站首页崩。

2.1 三层解耦:内容层 → 特征层 → 策略层(非模型层)

这是本项目最核心的设计选择。很多同类型 ZIP 包把所有逻辑塞进ContentRecommendController,导致后续加“地域偏好”或“时段敏感度”时,要重写整个 SQL 查询。我们改为:

  • 内容层(Content Entity):只存原始字段(id, title, author_id, category, publish_time, cover_url, status)
  • 特征层(Feature Table):独立表content_feature,字段为content_id,text_embedding_768(用 MiniLM-L6-v2 本地生成),category_hot_score(按类目 7 日 PV 计算),author_freshness(作者最近发布间隔,单位小时)
  • 策略层(Strategy Config):配置表recommend_strategy,定义每种场景(如“首页猜你喜欢”“详情页相关推荐”“搜索无结果 fallback”)所用的权重公式,例如:
    score = 0.4 * category_hot_score + 0.3 * (24 / (author_freshness + 1)) + 0.3 * cosine_sim(user_profile_vec, text_embedding_768)

这样做的好处是:换 Embedding 模型只需重跑特征表;调运营权重不用发版,改配置表即可;新增“用户收藏过同类内容”信号,只加一列user_category_affinity到特征层,策略公式里加个系数就行。

2.2 后端推荐服务的最小可行接口设计(SpringBoot)

// RecommendController.java @GetMapping("/api/v1/recommend/home") public Result<List<RecommendItemDTO>> getHomeRecommend( @RequestParam(required = false) String userId, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size) { // 1. 若 userId 存在,查用户画像向量(缓存中) // 2. 若不存在,走纯热度+新鲜度混合策略(冷启动兜底) // 3. 调用 StrategyEngine.execute("home", params) 获取排序后 content_id 列表 // 4. 批量查 ContentEntity + 关联 AuthorInfo,组装 DTO return Result.success(recommendService.getHomeRecommend(userId, page, size)); }

关键不在接口本身,而在recommendService的实现逻辑必须隔离策略执行与数据装配。我们不写new RecommendServiceImpl(),而是用策略模式 + Spring@Qualifier注入不同策略实例:

// StrategyEngine.java public List<Long> execute(String scene, Map<String, Object> context) { RecommendStrategy strategy = strategyMap.get(scene); if (strategy == null) { throw new IllegalArgumentException("Unknown scene: " + scene); } return strategy.rank(context); // 返回 content_id 列表,不查 DB }

这样,当你下周要加“基于用户设备类型(iOS/Android)微调排序”时,只需新增一个IOSOptimizedStrategy实现类,注册进strategyMap,无需动 Controller 和 Service 主干。

2.3 前端推荐位的可配置化渲染(Vue 3 + Composition API)

Vue 层不能硬编码<RecommendCard v-for="item in list">。我们约定:所有推荐位通过sceneKey请求,返回结构统一为:

{ "scene": "home_guess_you_like", "items": [ { "id": "c_8821", "title": "景德镇手拉坯入门:三分钟看懂泥料配比", "cover": "https://cdn.example.com/cover_8821.jpg", "author": {"name": "陶小匠", "avatar": "..."}, "reason": "您最近浏览过‘陶瓷工艺’相关内容" } ], "meta": {"total": 128, "hasMore": true} }

前端封装useRecommend(sceneKey)组合式函数:

// composables/useRecommend.js export function useRecommend(sceneKey) { const list = ref([]) const loading = ref(false) const load = async (params = {}) => { loading.value = true try { const res = await api.get(`/api/v1/recommend/${sceneKey}`, { params }) list.value = res.data.items.map(item => ({ ...item, // 统一处理 reason 字段,支持 i18n 和动态文案 reasonText: getReasonText(item.reason) })) } finally { loading.value = false } } return { list, loading, load } }

这样,首页、详情页、个人中心的推荐区,全部复用同一套逻辑,只改sceneKey参数。运营同学提需求“把详情页相关推荐改成按‘作者相似度’排序”,后端改策略配置,前端零代码改动。


3. 文创内容冷启动的三大救命策略:不用训练模型也能让新内容 24 小时上榜

文创内容最大的痛点不是“不准”,而是“根本没机会被看到”。一篇讲“云南白族扎染古法复原”的优质图文,发布 3 小时只有 2 个点击,系统判定“低质”打入冷宫——这是典型的数据稀疏陷阱。本项目采用三阶递进策略,实测将新内容首日曝光提升 3.2 倍(某高校文化实验室 A 同学测试数据)。

3.1 首小时:人工标签强干预 + 运营池托底

新内容入库时,不直接进推荐流,先进入content_status = 'pending_review'状态。后台提供极简审核页(Vue Admin),运营人员只需勾选 1~3 个预设标签(如#非遗传承 #手作教学 #地域文化),并选择是否加入“今日主推池”(有效期 24 小时,固定曝光 5000 次)。

对应后端逻辑:

// ContentService.java @Transactional public void publishContent(Content content, List<String> manualTags, boolean inPromotionPool) { content.setStatus(ContentStatus.PENDING_REVIEW); contentRepository.save(content); // 保存人工标签(独立表,非全文检索字段) tagService.bindToContent(content.getId(), manualTags); if (inPromotionPool) { promotionPoolService.add(content.getId(), 24 * 60 * 60); // 秒级 TTL } }

注意:人工标签不参与算法排序,只用于“主推池”定向投放。避免运营乱打标签污染模型——这是血泪经验。曾有项目把“#搞笑”打给严肃历史考据文,导致推荐系统学到错误关联。

3.2 首日:语义相似度破冰(MiniLM-L6-v2 本地部署)

放弃 BERT 大模型。用sentence-transformers库加载paraphrase-multilingual-MiniLM-L12-v2(仅 120MB,CPU 可跑),对每篇新内容的标题+摘要生成 384 维向量(比 768 更快,精度损失可接受):

# feature_generator.py(Python 脚本,非 Java!) from sentence_transformers import SentenceTransformer import numpy as np model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2') def generate_text_embedding(title, abstract): # 拼接标题与摘要,截断到 128 token text = f"{title}。{abstract[:200]}" embedding = model.encode(text, convert_to_numpy=True) return embedding.astype(np.float32).tobytes() # 存入 MySQL VARBINARY(1536) # 批量处理新内容(每天凌晨执行) for content in new_contents: emb = generate_text_embedding(content.title, content.abstract) update_feature_table(content.id, emb)

推荐时,对当前用户最近点击的 3 篇内容,取其平均向量,用余弦相似度召回 top50 相似内容。不追求绝对准确,只解决“完全没行为时,至少能推点看起来像的”——这就是冷启动的“后悔药”。

3.3 首周:行为稀疏补偿公式(替代传统协同过滤)

当用户行为 < 5 条时,禁用任何基于用户-物品交互的模型。改用以下轻量公式(已验证在 3 个文创类项目中稳定有效):

compensated_score = 0.5 × log(1 + content_pv_7d) + 0.3 × (24 / (hours_since_publish + 1)) + 0.2 × (1 + category_author_ratio)

其中:

  • content_pv_7d:该内容近 7 日页面浏览量(Redis 计数器,每 PVINCR)
  • hours_since_publish:发布时间距今小时数(越新权重越高,但加 1 避免除零)
  • category_author_ratio:该作者在当前类目下的历史内容占比(例:作者发过 10 篇,其中 7 篇是“皮影戏”,则值为 0.7,表示类目专注度)

这个公式不需要训练,参数可调,且所有因子都可在数据库/缓存中实时获取。上线后,新作者首周内容平均点击率从 1.2% 提升至 4.7%。


4. 避坑:SpringBoot + Vue 文创推荐平台的 5 个高频翻车点

4.1 现象:Vue 前端请求/api/v1/recommend/home?userId=abc返回 401,但 Postman 调用正常

原因:Vue 使用axios默认携带withCredentials: true,而 SpringBoot 的CorsConfiguration未显式允许凭证跨域。浏览器因安全策略拦截响应,但控制台不报 CORS 错误,只显示 401。
解决:在 SpringBoot 的WebMvcConfigurer中明确配置:

@Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/api/**") .allowedOrigins("http://localhost:8080") // 必须写具体域名,不能用 "*" .allowCredentials(true) // 关键! .maxAge(3600); }

同时确保SecurityConfig中放行 OPTIONS 预检请求:

http.authorizeHttpRequests(authz -> authz .requestMatchers(HttpMethod.OPTIONS, "/api/**").permitAll() .anyRequest().authenticated() );

4.2 现象:推荐列表中同一内容反复出现,甚至占满前 10 条

原因:MySQL 分页查询用了LIMIT 10 OFFSET 20,但推荐策略返回的是content_id列表(无序),IN (...)查询后未按策略分数二次排序。
解决:禁止在 SQL 层做分页。策略层rank()方法必须返回List<Pair<contentId, score>>,然后用FIND_IN_SET或临时表保证顺序:

SELECT c.* FROM content c WHERE c.id IN (101, 205, 88, 302) ORDER BY FIND_IN_SET(c.id, '101,205,88,302');

更优解:用 MyBatis 的foreach标签生成CASE WHEN排序:

<foreach collection="contentIds" item="id" open="ORDER BY CASE" close="END"> WHEN id = #{id} THEN #{index} </foreach>

4.3 现象:MiniLM 向量化耗时飙升,单次请求超 2s

原因:在 Web 请求线程中同步调用 Python 脚本(如Runtime.getRuntime().exec("python gen_emb.py")),Python 进程启动开销大,且无连接池。
解决:改用SentenceTransformers的 Java 封装库(如bert4j),或更推荐——用 Flask 写一个独立的 Embedding 微服务(/embed接口),SpringBoot 通过RestTemplate调用,并配置连接池与超时:

@Bean public RestTemplate restTemplate() { HttpClient httpClient = HttpClients.custom() .setMaxConnTotal(100) .setMaxConnPerRoute(20) .setConnectionTimeToLive(60, TimeUnit.SECONDS) .build(); return new RestTemplate(new HttpComponentsClientHttpRequestFactory(httpClient)); }

4.4 现象:运营修改“主推池”内容,前端缓存未更新,用户仍看到旧封面

原因:Vue 使用keep-alive缓存了推荐组件,但sceneKey不变时,watch未监听props变化触发重新加载。
解决:在RecommendSection.vue中,用watch监听sceneKey,并在onActivated中强制刷新:

watch(() => props.sceneKey, (newKey) => { if (newKey) load() }) onActivated(() => { // 页面激活时,若数据过期(如超过 5 分钟),强制重载 if (Date.now() - lastLoadTime > 5 * 60 * 1000) { load() } })

4.5 现象:MySQLcontent_feature表text_embedding字段存不下 384 维 float32(需 1536 字节),报Data too long

原因:MySQLVARBINARY类型长度按字节计,384×4=1536 字节,但某些版本默认max_allowed_packet小于该值,或建表时未指定足够长度。
解决:建表时明确长度,并检查 MySQL 配置:

CREATE TABLE content_feature ( id BIGINT PRIMARY KEY, content_id BIGINT NOT NULL, text_embedding VARBINARY(1600) NOT NULL, -- 留 64 字节余量 ... );

同时确认 MySQL 配置文件my.cnf中:

[mysqld] max_allowed_packet = 4M

重启 MySQL 生效。


5. 进阶技巧:用“人工反馈闭环”替代 A/B 测试,让推荐效果肉眼可见地变好

A/B 测试在小团队是奢侈品——要分流、要埋点、要统计显著性、要等一周数据。文创平台真正需要的,是让运营同学自己就能判断“这次调参有没有用”。我们落地了一个极简但高效的反馈机制:每个推荐卡片右下角加一个「不感兴趣」小图标(×),点击后弹出 3 个归因选项(“内容太专业”“和我无关”“已看过”),并记录content_id + reason_code + timestamp到独立表recommend_feedback。

5.1 后端:反馈即策略修正指令

不把反馈当普通日志。RecommendFeedbackService收到一条reason_code = 'TOO_PROFESSIONAL',立即触发两件事:

  1. 降低该内容在“新手用户”画像中的匹配权重:更新content_feature表的beginner_penalty_score字段(初始 0,每次 +0.1,上限 1.0)
  2. 向运营后台推送告警:若 1 小时内同一内容收到 5 条“太专业”,自动邮件通知:“内容 c_8821 可能定位偏差,建议检查标签或补充入门导读”
// FeedbackController.java @PostMapping("/api/v1/feedback") public Result<Void> submitFeedback(@RequestBody FeedbackDTO dto) { feedbackService.handle(dto); // 关键:同步更新 Redis 中的实时惩罚分(供推荐策略读取) redisTemplate.opsForValue().increment( "penalty:" + dto.getContentId(), 0.1 ); return Result.success(); }

5.2 前端:反馈按钮的“零学习成本”设计

按钮不是简单@click,而是用 Vue 指令封装,一行代码接入:

<!-- 在任意推荐卡片中 --> <RecommendCard v-for="item in list" :key="item.id" :item="item" v-feedback="{ contentId: item.id, scene: 'home' }" />

指令v-feedback自动绑定点击事件、弹窗、上报,且不打断用户浏览流——点击 × 后,卡片淡出,下一张自动补位,用户感觉不到页面跳转。

5.3 数据看板:用三个数字代替所有报表

运营后台不展示复杂漏斗图。只显示三个实时滚动数字(每 30 秒刷新):

指标计算方式健康阈值说明
即时负反馈率过去 1 小时「不感兴趣」点击数 ÷ 推荐曝光数< 3.5%高于此值,说明策略明显错配
冷启动存活率发布 24 小时内获得 ≥1 次推荐曝光的新内容数 ÷ 新内容总数> 65%衡量冷启动策略有效性
人工干预命中率运营手动加入“主推池”的内容,其 24 小时内点击率 ÷ 全站平均点击率> 2.0x衡量运营直觉与算法的互补性

这三个数字,让运营同学 5 秒内判断策略健康度。某次调整category_hot_score权重后,我们发现“即时负反馈率”从 2.1% 升至 4.3%,立刻回滚配置——比等 A/B 报告快 48 小时。

我带过的几个模拟项目 X,都是靠这套反馈闭环,在两周内把推荐点击率从 2.8% 优化到 6.3%。没有玄学调参,只有“用户点 ×,我们就降权;运营加推,我们就记录效果”。技术不是黑匣子,是可触摸、可解释、可快速修正的杠杆。希望帮到你。

本文还有配套的精品资源,点击获取

相关新闻

光热电站-ORC-P2G综合能源系统优化调度建模与Matlab实现

光热电站-ORC-P2G综合能源系统优化调度建模与Matlab实现

1. 这套系统到底在做什么&#xff1a;CSPORCP2G的互补逻辑 先说结论&#xff1a;光热电站、有机朗肯循环、P2G这三样东西放一起&#xff0c;核心解决的不是“多发电”&#xff0c;而是“让每个能量品种都在最该出现的时刻出现”。 我做过的某个模拟园区项目里&#xff0c;光伏…

2026/10/20 23:48:44 阅读更多 →
Python函数、列表与元组核心详解:从接口思维到实战避坑

Python函数、列表与元组核心详解:从接口思维到实战避坑

1. 先把“函数”这件事掰开揉碎&#xff1a;为什么学了语法还是写不出东西很多人学 Python 卡在同一个地方&#xff1a;变量、循环、条件判断都看懂了&#xff0c;一遇到“自己写函数”就懵。明明知道def是定义函数的关键字&#xff0c;可轮到自己动手&#xff0c;要么不知道什…

2026/10/20 23:48:44 阅读更多 →
SpringBoot 基于 Referer 的 CSRF 跨站攻击防护实战

SpringBoot 基于 Referer 的 CSRF 跨站攻击防护实战

1. 从一个真实案例说起&#xff1a;Referer 头引发的安全事件去年我在做一个后台管理系统的安全审计时&#xff0c;碰到一个挺典型的问题。系统本身做了完整的登录鉴权&#xff0c;接口层有 Token 校验&#xff0c;权限模型也做得比较细&#xff0c;按理说安全性应该没什么大问…

2026/10/20 23:48:44 阅读更多 →

最新新闻

Vidu Q4 Preview深度评测:AI视频生成迈向生产力工具的关键一步

Vidu Q4 Preview深度评测:AI视频生成迈向生产力工具的关键一步

最近几个创作群里讨论最多的&#xff0c;绕不开Vidu Q4 Preview。做AI视频的同仁应该都有感觉&#xff0c;这个赛道现在卷到什么程度&#xff1a;几乎每隔几天就有新版本、新模型冒出来&#xff0c;但大多是“看起来厉害、一上手就露馅”。Vidu Q4 Preview这次放出的内容&#…

2026/10/21 0:33:56 阅读更多 →
AI在芯片设计中的黑盒困局:一次IR压降事故带来的反思

AI在芯片设计中的黑盒困局:一次IR压降事故带来的反思

芯片世界里&#xff0c;有一句话最近被工程师们重复得越来越多&#xff1a;AI赢了棋局&#xff0c;却讲不出思路。就在上个月&#xff0c;我拿着一个AI辅助完成的block级floorplan给物理设计团队&#xff0c;线长比上一版少了12%&#xff0c;拥塞图也干净得不像话。结果等IR压降…

2026/10/21 0:33:56 阅读更多 →
计算智能体入门:从状态机到Q-learning的决策实现

计算智能体入门:从状态机到Q-learning的决策实现

1. 从零理解计算智能体的核心骨架计算智能体这个概念&#xff0c;听起来像是学术论文里的术语&#xff0c;但把它拆开来看&#xff0c;其实就是一个能感知环境、做出决策、执行动作的软件实体。你可以把它想象成一个在迷宫里找路的小机器人&#xff0c;它能看到周围哪里有墙、哪…

2026/10/21 0:33:55 阅读更多 →
MoE混合专家模型:稀疏激活如何破解大模型容量与成本困局

MoE混合专家模型:稀疏激活如何破解大模型容量与成本困局

从Transformer诞生起&#xff0c;前馈网络&#xff08;FFN&#xff09;就是"又笨重又绕不开"的角色&#xff1a;它占了模型近三分之二的参数量&#xff0c;但每个token都得老老实实把所有参数过一遍。你扩大模型容量&#xff0c;推理成本就跟着线性往上涨&#xff0c…

2026/10/21 0:33:55 阅读更多 →
开源30B模型硬刚闭源旗舰:科研场景实测与本地部署指南

开源30B模型硬刚闭源旗舰:科研场景实测与本地部署指南

最近开源圈又热闹起来了&#xff0c;一个主打科研场景的30B级别开源模型&#xff0c;直接放话要跟两家头部闭源大模型掰手腕。我当时第一反应是“又来一个刷榜的”&#xff0c;但仔细看完技术报告和社区实测数据之后&#xff0c;觉得这波还真不是营销话术&#xff0c;确实有货。…

2026/10/21 0:33:55 阅读更多 →
LLM强化学习全解析:PPO、GRPO、DPO等五类方法选型与实践

LLM强化学习全解析:PPO、GRPO、DPO等五类方法选型与实践

做LLM训练绕不开强化学习这块&#xff0c;标题里这五个字看着简单&#xff0c;真要分类起来其实挺讲究的。我前几年刚开始接触大模型对齐时&#xff0c;也把PPO、DPO、GRPO这些名词搞得晕头转向&#xff0c;后来用了一段时间才理清楚它们之间的血缘关系和适用场景。这篇博文就把…

2026/10/21 0:32:54 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事&#xff1a;AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里&#xff0c;按宣传口径&#xff0c;本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”&#xff0c;而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起&#xff1a;用户到底在追求什么“封号重开”这四个字&#xff0c;放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流&#xff0c;背后是大量的时间和精力成本。正常情况下&#xff0c;没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”&#xff0c;而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时&#xff0c;就意识到&#xff1a;单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →