普通视图

发现新文章,点击刷新页面。
今天 — 2026年1月14日首页

立中集团:间接供货多家商业航天企业,目前相关业务收入占比较低

2026年1月14日 15:19
36氪获悉,立中集团在互动平台表示,公司通过向客户湖南中创空天新材料股份有限公司供应高端铝基功能中间合金,用于商业航天火箭锻环及其他零部件的生产,实现间接供货给蓝箭航天、星际荣耀、天兵科技、星河动力、中科宇航等企业。目前相关业务收入占比较低,请投资者注意投资风险。

OpenAI或正在开发一款对标苹果AirPods的人工智能设备

2026年1月14日 15:07
据消息人士称,OpenAI正在开发一款对标苹果AirPods的人工智能设备,内部代号为Sweetpea。爆料者称,富士康已被告知提前准备生产包括耳机和触控笔在内的五款设备,但Sweetpea将被优先生产。市场预期Sweetpea将具备拨打电话、播放音频等功能。(财联社)

A股三大指数收盘涨跌不一,航天军工板块走弱

2026年1月14日 15:01
36氪获悉,A股三大指数收盘涨跌不一,沪指跌0.31%,深成指涨0.56%,创业板指涨0.82%;通信设备、文化传媒、半导体板块领涨,汉朔科技、浙文互联涨停,晶丰明源涨超13%;电信、航天军工、保险板块走弱,中国卫通跌停,洪都航空跌超4%,中国人保跌超3%。

如何一次性生成 60 种语气表达?RWKV 模型告诉你答案 ❗❗❗

作者 Moment
2026年1月14日 15:00

在日常沟通中,我们经常需要根据不同的对象和场景调整语气。向老板汇报工作时需要正式严谨,和同事交流时可以轻松随意,写文案时又需要符合品牌调性。手动调整这些语气不仅耗时,还容易词穷。特别是在需要快速产出多种风格文案的场景下,比如社交媒体运营需要同时准备正式版、幽默版、情感版等多个版本,传统的逐个改写方式效率极低。

基于这样的痛点,我开发了这个 RWKV 并行语气转换工具。它能够接收一段文本,通过 RWKV 大语言模型,一次性并行生成 60 多种不同语气和风格的表达方式,涵盖职场、生活、方言、文学、网络等多个维度,极大提升了内容创作和沟通表达的效率。

项目效果图

从上图可以看到,工具的界面简洁直观。用户只需在底部输入框中输入原始文本,点击发送按钮,系统就会同时生成多种语气版本。每个卡片代表一种风格,包含风格图标、名称和转换后的内容。所有结果实时流式返回,用户可以立即看到生成进度,并且每个结果都支持一键复制,方便快速使用。

核心特性与技术实现

这个项目最大的特点是并行生成能力。传统的语气转换工具通常是串行处理,即逐个风格依次生成,这样会导致等待时间过长。而本工具通过在后端同时处理多个转换请求,前端采用流式渲染技术,实时展示每个风格的生成进度,整体响应速度大幅提升。

在前端技术选型上,项目采用了 React 19 作为 UI 框架,配合 Rsbuild 作为构建工具。相比传统的 WebpackViteRsbuild 提供了更快的构建速度和更简洁的配置体验。样式层面使用了 Tailwind CSS 4,通过精心设计的渐变色彩和流畅的动画效果,打造出现代化的视觉体验。整个界面采用浅色主题,柔和的紫粉渐变背景配合玻璃态效果,既美观又不影响内容的阅读。

项目完整的技术栈包括:React 19 提供强大的 UI 渲染能力,TypeScript 确保类型安全,Rsbuild 负责快速构建,Tailwind CSS 4 处理样式,Lucide React 提供图标支持,Class Variance Authority 管理组件变体。这套组合既保证了开发效率,也确保了运行时性能。

接口请求参数

从接口请求参数可以看到,后端接收的核心数据结构相对简单。contents 字段是一个数组,包含了所有需要转换的 prompt 内容。每个 prompt 都是一个完整的指令,包含了风格要求和用户输入的原始文本。系统会根据这些 prompt 并行调用 RWKV 模型进行生成,同时还支持多种参数调优,比如 temperaturetop_ktop_p 等,以获得更好的生成效果。

接口响应数据

响应数据采用了 Server-Sent EventsSSE)的流式传输方式。每个数据块都是一个 JSON 对象,包含了 choices 数组,其中每个 choice 对应一个风格的生成结果。通过 index 字段标识具体是哪个风格,delta 中的 content 字段则包含了本次推送的文本片段。前端接收到这些数据后,会实时更新对应卡片的内容,用户可以看到文字逐字生成的效果,体验非常流畅。

并发生成的核心实现

整个项目的精髓在于如何实现真正的并发生成。先看生成 contents 数组的逻辑:

function generateStyleContents(userInput: string): string[] {
  const configs = getMergedStyleConfigs();
  return configs.map((config) => {
    if (config.prompt.includes("${{input}}")) {
      return config.prompt.replace(/\$\{\{input\}\}/g, userInput);
    }
    return `${config.prompt}\n\nUser: ${userInput}\n\nAssistant: <think>\n</think>`;
  });
}

这个函数做的事情很简单:遍历所有风格配置,将每个风格的 prompt 模板中的 ${{input}} 占位符替换为用户的真实输入。generateStyleContents 函数会调用 getMergedStyleConfigs() 获取所有风格配置。假设用户输入"明天要开会",经过这个函数处理后,会得到一个包含 60 个完整 prompt 的数组。每个 prompt 都是独立的,包含了该风格的要求描述、约束条件,以及用户输入。

有了这个数组,接下来就是发送请求了。关键在于,我们把整个 contents 数组一次性发送给后端:

const response = await fetch(config.apiUrl, {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Accept: "*/*",
    "Accept-Language": "zh-CN,zh;q=0.9",
  },
  body: JSON.stringify({
    contents, // 这里是 60 个 prompt 的数组
    max_tokens: 100,
    temperature: 0.95,
    top_k: 50,
    top_p: 0.9,
    pad_zero: true,
    alpha_presence: 1.0,
    alpha_frequency: 1.0,
    alpha_decay: 0.996,
    chunk_size: 128,
    stream: true,
    password: config.password,
  }),
  signal,
});

注意看请求体中的 contents 字段,这就是我们刚才通过 generateStyleContents 函数生成的 60 个 prompt。后端收到这个数组后,会同时启动 60 个生成任务,每个任务对应数组中的一个 prompt。数组的索引位置(0, 1, 2, ..., 59)就是每个任务的 ID,这个 ID 会在返回的 index 字段中体现。

流式响应的解析机制

后端采用 Server-Sent EventsSSE)格式返回流式数据。每个数据块的格式大致是这样的:

data: {"object":"chat.completion.chunk","choices":[{"index":12,"delta":{"content":"明"}},{"index":23,"delta":{"content":"今"}},{"index":5,"delta":{"content":"后"}}]}

data: {"object":"chat.completion.chunk","choices":[{"index":12,"delta":{"content":"天"}},{"index":23,"delta":{"content":"天"}}]}

data: [DONE]

看到了吗?每个 choice 对象都有一个 index 字段。这个 index 就是对应 contents 数组中的位置。比如 index 为 12 的 choice,对应的就是 contents[12] 这个 prompt 的生成结果。前端正是靠这个 index,知道把返回的文本片段更新到哪个风格卡片上。

解析流式数据的代码使用了 fetch API 的流式读取能力:

const reader = response.body?.getReader();
const decoder = new TextDecoder();
let buffer = "";

while (true) {
  const { done, value } = await reader.read();

  if (done) break;

  buffer += decoder.decode(value, { stream: true });
  const lines = buffer.split("\n");
  buffer = lines.pop() || "";

  for (const line of lines) {
    const trimmedLine = line.trim();
    if (!trimmedLine || !trimmedLine.startsWith("data: ")) continue;

    const data = trimmedLine.slice(6);
    if (data === "[DONE]") {
      // 所有任务完成
      const completedResults = initialResults.map((result) => ({
        ...result,
        isComplete: true,
      }));
      onUpdate(completedResults);
      continue;
    }

    try {
      const json = JSON.parse(data);
      if (json.choices && Array.isArray(json.choices)) {
        json.choices.forEach((choice: any) => {
          const index = choice.index;
          const deltaContent = choice.delta?.content || "";
          if (deltaContent && initialResults[index]) {
            // 根据 index 找到对应的结果对象,追加文本片段
            initialResults[index].content += deltaContent;
          }
        });
        onUpdate([...initialResults]);
      }
    } catch (e) {
      console.warn("解析 JSON 失败:", e);
    }
  }
}

这段代码的核心逻辑是:

  1. 使用 TextDecoder 逐块解码二进制流,通过 response.body?.getReader() 获取流读取器
  2. 按行分割数据,因为每行是一个完整的 SSE 消息
  3. 提取 "data: " 后面的 JSON 数据
  4. 解析出 choices 数组,遍历每个 choice
  5. 通过 choice.index 找到对应的结果对象,将 choice.delta.content 追加上去
  6. 调用 onUpdate 触发界面更新

这种增量更新的方式非常高效。不同风格的生成速度可能不一样,有的快有的慢,但每个风格的更新是完全独立的,互不干扰。用户可以实时看到每个卡片的内容逐字增加,体验非常流畅。

为什么这种方式能实现真并发

传统的做法是循环调用 API,每次生成一种风格,等这个风格生成完了再生成下一个。如果有 60 种风格,每个风格平均生成 2 秒,那总共需要 120 秒。这种串行的方式效率极低。

而我们这种方式,是把 60 个 prompt 打包成一个数组,一次性发送给后端。后端收到后,会并发地处理这 60 个任务。虽然每个任务还是需要 2 秒,但因为是并发执行,所以总耗时只有 2 秒多一点(加上一些网络延迟和任务调度开销)。

关键点在于:

  • contents 数组的长度决定了并发数量
  • 后端通过 index 标识每个任务的结果
  • 前端通过 index 将结果精确地更新到对应位置

这样就实现了真正的并行生成,效率提升了几十倍。

部署和使用

项目的部署很简单。如果你熟悉 Node.js,直接 npm install 安装依赖,npm run dev 启动开发服务器就能用。构建生产版本也就是一个 npm run build 的事。

如果你更喜欢用 Docker,项目也提供了完整的 Docker 支持。docker compose up --build -d 一条命令搞定,不用操心环境配置的问题。

API 配置

API 配置就两个参数:服务地址和密码。项目根目录下有个 .env 文件,里面写好了默认值。如果你有自己的 RWKV 后端服务,改一下这个文件就行,改完重启一下开发服务器。

PUBLIC_RWKV_API_URL=http://192.168.0.12:8000/v1/chat/completions
PUBLIC_RWKV_PASSWORD=rwkv7_7.2b_webgen

就这么简单。

60 种风格是怎么设计出来的

60 种风格不是拍脑袋想出来的,而是根据实际使用场景一点点积累起来的。最开始只有十几种,后来发现不够用,就不断补充。

职场类是最早做的一批。面向老板、面向客户、面向同事,这三个场景的语气差异非常大。跟老板汇报工作,得用"敬请指示"、"恭候佳音"这种正式表达。跟客户沟通,得强调"为您服务"、"满足您的需求"。跟同事交流,就可以"咱们商量一下"、"一起搞定"。

文学类是后来加的。有用户反馈说想要古风文案,于是就做了红楼梦、三国演义、水浒传这些经典名著的风格。还有诗词歌赋、文言文这些。效果还不错,生成出来的内容确实有那个味道。

方言类比较有意思。东北话、四川话、广东话、上海话,每种方言都有自己的特色词汇。东北话喜欢说"咋整"、"贼拉",四川话爱用"哦豁"、"巴适",广东话常说"饮茶"、"搞掂"。这些方言风格在做地方性推广时特别有用,能快速拉近和用户的距离。

网络用语风格是必须有的。现在的年轻人说话都是"yyds"、"绝绝子"、"EMO 了"这些梗。如果做社交媒体运营,不用这些网络语言,内容就会显得很生硬。所以专门做了几个网络用语风格,紧跟最新的流行趋势。

除了这些大类,还有一些更细分的场景风格。比如道歉、感谢、邀请、拒绝、催促等。这些在日常沟通中经常用到,但很多人不知道怎么表达得既礼貌又不失分寸。有了这些风格,直接套用就行。

实时看到生成进度

因为是流式响应,所以你可以实时看到每个风格的生成进度。不同风格的生成速度可能不一样,有的快有的慢,但每个都是独立更新的,互不影响。

这种体验比传统的"转圈等待"好太多了。你能看到文字一个个蹦出来,知道 AI 确实在工作,而不是卡住了。而且因为是并发的,所以很多风格会同时在生成,界面上到处都在更新内容,看起来特别有动感。

每个卡片右上角有个复制按钮,点一下就复制到剪贴板了。如果对结果不满意,底部有个"重新生成"按钮,会用同样的输入再跑一遍。

后端 API 要求

后端 API 需要支持以下特性:

  1. 接收一个 contents 数组,数组里有多少个 prompt 就要并发处理多少个任务
  2. 返回 SSE 格式的流式数据,每个 choice 必须包含 index 字段用于标识对应的任务
  3. 所有任务完成后发送 "data: [DONE]" 标记

推荐使用 RWKV Lightning 作为后端服务(github.com/RWKV-Vibe/r…

写在最后

这个工具的核心价值就是一个字:快。

传统方式要生成 60 种风格,得等 2 分钟。现在并发生成,只要 2 秒钟。效率提升了 60 倍,这才是真正有用的工具。

当然,60 种风格只是开始。随着使用场景的增加,肯定还会有更多风格加进来。好在添加新风格很简单,改几行配置就行。

如果你有什么想法或建议,欢迎提 IssuePR。这个工具会持续优化,让更多人受益。

项目地址:rwkv-parallel-tone

后端服务:RWKV Lightning

对不起,我很贱:老板还没催,我自己就统计《GitLab年度代码报告》

作者 前端小蜗
2026年1月14日 14:55

大家好,我是小蜗。 这是一个"没事找事"的项目。

效果如下

起因:🐮🐴的自我觉醒

快过年了,看着朋友圈里刷屏的年度报告,我突然萌生了一个念头:给自己的代码也做个年终总结。

毕竟,相比于听歌和网购,这一年我们在 GitLab 上提交的每一行代码、每一次 Commit,才是打工人最真实的牛马痕迹。

我想把这些数据捞出来看看,回顾一下自己这一年到底做了多少需求,修了多少 Bug。顺便用数据量化一下,自己这一年到底有多“牛马”。

但我胆子小,有几个“保命”底线:

  1. 绝对安全:公司代码是红线,绝对不能传到任何第三方平台。
  2. 绝对隐私:工具只能读 Commit 的元数据(增删行数),别去读我具体的代码内容(毕竟屎山不想被 AI 围观)。
  3. 懒人专属:最好是个本地脚本,填个 Token 就能跑,别让我配数据库什么的。

抱着试一试的心态,我把这些碎碎念整理了一下丢给 AI,让它帮我写一段 Prompt。没想到,这竟然是我今年写代码最顺畅的一次。


经过:驾驭 AI ,驾驾驾

以前写这种工具,最烦的就是查 API 文档和写多线程。这次我采用了“指挥官”模式,全程基本没动手写逻辑。

1. 投喂指令,一遍过

我反手就是一个 Prompt 甩过去,着重强调了我的 “安全洁癖”:必须只通过 .env 读 Token,严禁调用 repository_files 这种危险接口。

结果 AI 也是个“老江湖”,出的方案不仅完全遵守了我的安全红线,还主动甚至帮我把 ThreadPoolExecutor 加上了 —— 说真的,要是让我自己写,大概率就写个单线程在那慢慢跑了。几千个 Commit 一分钟就拉完,这体验确实丝滑。

2. 也是有“温度”的统计

光看增删行数其实挺无聊的。我跟 AI 说:“不仅要数据,还要故事。”

于是它帮我整了几个扎心的维度:

  • 高光时刻:一年中最产出的那一天,和熬得最晚的那次提交。(看到那个凌晨 23:47 的提交,我突然想抱抱当时的自己)
  • 摸鱼鉴定:统计了周末提交和深夜代码的比例。看着 25% 的周末提交占比... 算了,都是泪。
  • 生物钟分析:热力图显示我下午 2 点到 4 点效率最高。原来上午真的是用来醒神的。

而且这个 UI,是不是有点那味儿了?Rich 库画出来的表格,发朋友圈也不丢面子。


结果:属于程序员的“年终总结”

从有个想法到代码跑通,也就花了一个晚上的时间。看着终端里跑出来的长长列表,虽然没有网易云那么花哨的 H5,但这种几行命令就能把自己一年工作量化的感觉,真的很 Geek。

现在,我把它开源出来。如果你也没等到 GitLab 官方的报告,或者想给自己这一年的“搬砖生涯”留个纪念,不妨试试这个小脚本。

✨ 放心食用,绝对安全

  • Metadata Only:代码里写死了只调 Commit 统计 API,绝不读取代码具体内容,放心用。
  • 一键运行:PowerShell 和 Shell 脚本都备好了,不想动脑子的直接运行就行。
  • 不存数据:跑完即焚,本地不留痕迹。

🚀 快速开始

源码都放在 GitHub 了:

项目地址: github.com/535803710/a…

你只需要去 GitLab 申请个只读 (read_api) 的 Token,然后:

Windows 兄弟点这里:

git clone https://github.com/535803710/annualstats.git
cd annualstats
.\quick_start.ps1

Mac/Linux 兄弟点这里:

chmod +x quick_start.sh && ./quick_start.sh

写在最后: 2024 过去了,那些红红绿绿的 Diff 不仅仅是代码,也是我们掉过的头发和熬过的夜。 新的一年,祝大家 Warning 归零,Bug 全消,年终奖翻倍!

python win32COM 对象介绍调用Word、WPS 与应用生态

作者 red润
2026年1月14日 14:47

python win32COM 对象介绍调用Word、WPS 与应用生态

在日常工作中,我们经常会用到各种办公软件,但你是否想过这些软件是如何被程序调用的?

这里我使用python语言作为示例

com 对照标识符

office_apps = {
    # Microsoft Office
    "Word.Application": "Microsoft Word",
    "Excel.Application": "Microsoft Excel", 
    "PowerPoint.Application": "Microsoft PowerPoint",
    "Outlook.Application": "Microsoft Outlook",
    
    # WPS Office
    "wps.Application": "WPS Office (新版)",
    "Kwps.Application": "WPS 文字",
    "Kwpp.Application": "WPS 演示", 
    "Ket.Application": "WPS 表格",
    
    # 其他办公软件
    "Photoshop.Application": "Adobe Photoshop",
    "AcroExch.App": "Adobe Acrobat",
}

上面是一个办公软件的“地图”,这些是 Windows 平台上办公软件的 COM 接口标识符。

什么是 COM?

COM(Component Object Model,组件对象模型)是微软在 1990 年代开发的一种二进制接口标准。它允许不同编程语言编写的软件组件进行通信。简单来说,COM 让程序可以通过一个“代号”调用其他软件的功能

办公软件

1. 微软 Office 家族

"Word.Application": "Microsoft Word"          # 文字处理
"Excel.Application": "Microsoft Excel"        # 电子表格
"PowerPoint.Application": "Microsoft PowerPoint"  # 演示文稿
"Outlook.Application": "Microsoft Outlook"    # 邮件管理

微软 Office 是最经典的办公套件,它的 COM 接口命名最为规范:

  • 每个应用都有自己独立的 Application 对象
  • 命名直接明了:软件名.Application
  • 提供了最完整的编程接口

有趣的事实:通过 COM 接口,你可以用 Python等 自动生成报告、处理数据、制作 PPT,实现办公自动化。

2. 金山 WPS 家族

"wps.Application": "WPS Office (新版)",       # 统一入口
"Kwps.Application": "WPS 文字",              # 文字处理
"Kwpp.Application": "WPS 演示",               # 演示文稿
"Ket.Application": "WPS 表格"                # 电子表格

WPS 的命名规则很有意思:

  • K 代表金山(Kingsoft)
  • wps 是核心应用
  • wpp 对应 PowerPoint
  • ket 对应 Excel

WPS 提供了两种调用方式:

  • 统一接口:wps.Application(新版本)
  • 独立应用:分别调用文字、演示、表格

版本演变:从独立的 KwpsKwppKet到统一的 wps.Application

3. Adobe 专业工具

"Photoshop.Application": "Adobe Photoshop"    # 图像处理
"AcroExch.App": "Adobe Acrobat"               # PDF 处理

Adobe 系列是设计领域的标杆:

  • Photoshop 的接口相对独立
  • Acrobat 使用的是 AcroExch.App这个特殊的名字
  • 主要用于专业设计、PDF 处理等场景

实际应用场景

自动化办公

import win32com.client

# 自动生成 Word 报告
def create_report():
    # 尝试 WPS,失败则用 Word
    for app_name in ["wps.Application", "Kwps.Application", "Word.Application"]:
        try:
            word = win32com.client.Dispatch(app_name)
            print(f"使用: {app_name}")
            break
        except:
            continue
    
    doc = word.Documents.Add()
    # ... 添加内容、格式、图表 ...
    doc.SaveAs("月报.docx")
    word.Quit()

批量文档转换

def convert_docs_to_pdf(input_folder, output_folder):
    """批量将文档转换为 PDF"""
    import os
    
    # 检测可用应用
    for app_id in ["wps.Application", "Word.Application"]:
        try:
            app = win32com.client.Dispatch(app_id)
            app.Visible = False
            break
        except:
            continue
    
    for file in os.listdir(input_folder):
        if file.endswith(('.doc', '.docx')):
            doc_path = os.path.join(input_folder, file)
            pdf_path = os.path.join(output_folder, file.replace('.docx', '.pdf'))
            
            doc = app.Documents.Open(doc_path)
            doc.ExportAsFixedFormat(pdf_path, 17)  # 17 表示 PDF
            doc.Close()
    
    app.Quit()

智能应用检测

def detect_office_software():
    """检测系统安装的办公软件"""
    results = {
        "microsoft_office": [],
        "wps_office": [],
        "adobe": []
    }
    
    for prog_id, app_name in office_apps.items():
        try:
            app = win32com.client.Dispatch(prog_id)
            version = getattr(app, "Version", "未知")
            
            if "Word" in app_name or "Excel" in app_name or "PowerPoint" in app_name:
                results["microsoft_office"].append(f"{app_name} (v{version})")
            elif "WPS" in app_name:
                results["wps_office"].append(f"{app_name} (v{version})")
            elif "Photoshop" in app_name or "Acrobat" in app_name:
                results["adobe"].append(f"{app_name} (v{version})")
                
            app.Quit()
        except:
            continue
    
    return results

应用场景

自动化办公

  • 批量处理文档
  • 自动生成报告
  • 数据整理和分析

软件集成

  • 在自家软件中嵌入 Office 功能
  • 实现文档预览、编辑
  • 提供格式转换服务

企业应用开发

  • 企业内部系统集成
  • 工作流自动化
  • 文档管理系统

技术细节

COM 接口的原理

# 创建应用实例
app = win32com.client.Dispatch("Word.Application")

# 调用方法
app.Visible = True  # 显示界面
app.Documents.Open("test.docx")  # 打开文档

# 访问属性
version = app.Version  # 获取版本

错误处理

def safe_dispatch(app_name):
    """安全创建 COM 对象"""
    try:
        app = win32com.client.Dispatch(app_name)
        return app
    except Exception as e:
        print(f"无法创建 {app_name}: {e}")
        return None

实用技巧

版本兼容

# 优先尝试新版,然后回退
wps_progids = [
    "wps.Application",    # 新版
    "Kwps.Application",   # 旧版
    "ket.Application",    # 表格专用
]

for progid in wps_progids:
    try:
        wps = win32com.client.Dispatch(progid)
        break
    except:
        continue

功能检测

def check_feature_support(app):
    """检测应用功能支持"""
    features = {
        "export_pdf": hasattr(app, "ExportAsFixedFormat"),
        "save_as": hasattr(app, "SaveAs2"),
        "visible": hasattr(app, "Visible"),
    }
    return features

总结

  1. COM 接口是 Windows 平台的标准化通信方式
  2. WPS 的接口设计考虑了与 Office 的兼容
  3. 这些接口是自动化办公的基础

美国拟于2月实施载人绕月飞行任务

2026年1月14日 14:36
美国航天局日前表示,计划不早于2月6日实施“阿耳忒弥斯2号”载人绕月飞行任务。这将是美国新一代登月火箭“太空发射系统”和“猎户座”飞船首次执行载人任务。(新华社)

JR东日本与日航合作启动国际物流服务

2026年1月14日 14:30
1月13日,东日本铁路公司(JR东日本)与日本航空公司启动使用新干线和飞机向海外运送货物的服务。两家公司把8个主要新干线停车站作为始发点,经羽田或者成田机场向新加坡等4个国家和地区运送货物,经去年开展实证试验后,正式开始提供服务。(界面)

韩国央行:去年前10月净流出外汇196亿美元,导致韩元汇率走弱

2026年1月14日 14:29
韩国央行一位官员周三表示,去年1-10月,韩国外汇净流出196亿美元,导致韩元汇率走弱。据韩国央行透露,在此期间,虽然经常收支出现了896亿美元的顺差,外国人对韩国证券的净投资也达到了319亿美元,但由于散户投资者和国民年金公团对海外资本市场的投资增加,导致了资本外流。(新浪财经)

融资丨具身智能大脑公司深穹星核完成天使轮融资

上海深穹星核科技有限公司(下文简称“深穹星核”)近日宣布完成数千万元人民币天使轮融资。本轮融资由零以创投独家投资。所获资金将主要用于核心技术团队的扩建、核心智能体大脑平台的研发迭代,以及关键场景的早期探索与验证。

以“意图理解+超高仿真人脸”引领具身智能二次革命,打造通用可信赖的人类伙伴

深穹星核成立于2025年,致力于研发“懂意图、能思考、会行动”的下一代具身智能体(Embodied AI Agent)。公司旨在构建一个以意图理解、多模态感知、人机交互为核心能力的“智能大脑”,让机器能够真正理解人类意图与环境上下文,并自主完成任务。公司的长期愿景是让机器人成为“通用、可信赖的人类亲密伙伴”,深刻融入生产与生活,让用户获得业界领先的人机交互体验。

顶尖创始团队掌舵,汇聚人脸产学研核心资源

公司创始人兼CEO 郁振波毕业于上海交通大学吴文俊人工智能荣誉博士班,师从上海交大张文军院士。他蝉联过计算机领域规模最大影响力最高的大模型竞赛IMAGENET国际赛的世界冠军,获得过2024年中国整形十大创新(国内整形领域含金量最高的创新奖之一)。2022年作为团队负责人,在张文军院士的领衔下,斩获国际互联网+创新创业竞赛上海市第一、全国金奖。他先后入选福布斯U30、胡润 U30、长三角 G60 科创走廊 U30 青年等荣誉榜单,2025年当选苏州市外十大青年科学家(全球仅10人获此殊荣)。

技术优势:聚焦人脸大脑,首创“意图理解”模型,破解行业痛点

“实现机器人通用场景下的实时、自然、合理交互反馈与控制”是深穹星核的长期战略愿景。为突破现有系统理解能力弱、交互表现生硬等技术瓶颈,本公司提出基于“意图理解”的VLIA(Video-Language-Intention-Action)具身智能大模型,能够精准捕捉交互对象的多模态信息(如语音、表情、动作),精准解析其内在状态(情绪、意图、需求等),并以实时、低延迟、高同步的方式作出自然流畅的反馈(包括表情、口型、语音等)。该自研大模型还具备长期记忆与持续学习能力,为情感陪伴等多元场景的落地奠定了坚实基础。与此同时,公司将“意图理解”技术与超仿真人脸深度融合,所采用的核心控制算法基于仿生学原理设计,摆脱了传统“预设表情包”的局限,可实现逼真而细腻的微表情控制。

零以创投合伙人郑连发表示:作为天使轮独家投资方,我们高度认可深穹星核在具身智能领域的核心技术突破与产业化潜力,创始人郁振波博士带领的团队兼具学术权威性与商业化敏锐度,业内首次提出VLIA具身智能大模型,通过多模态意图解析与仿生学驱动的微表情控制,解决了传统机器人交互生硬的行业痛点。此轮投资不仅是资本助力,更是产业资源的深度绑定,零以创投将依托自身在硬科技领域的生态网络,助力深穹星核加速技术迭代与商业应用。

深穹星核创始人兼CEO郁振波表示:“感谢零以创投的认可与支持。相比于灵巧手的操作大脑,我们更关注人脸机器人的意图大脑,这是VLIA在全新载体上的全新应用。本轮融资是对我们技术方向与团队能力的肯定。我们将专注于打造世界级的具身智能大脑平台,并优先在辅助增强(如娱乐游戏)与生活陪伴等具备高情感价值的场景中落地。我们的目标是构建不仅智能,更值得信赖、能与人类自然协作的伙伴型智能体。”

九云资本王阳认为:“具身智能应用场景正从工业级工具向消费级伙伴跨越,深穹星核精准卡位‘意图理解大脑+超仿真人脸’赛道,为机器人赋予温度和灵魂。创始团队凭借顶尖的学术背景与产业资源,自研VLIA大模型,解决行业数据依赖、泛化能力弱、交互生硬的痛点,既能捕捉到用户情绪波动,又能结合语境识别用户潜在意图,进而做出更好的微表情与语言回应。”

未来,深穹星核将继续以 “打造通用可信赖的人类伙伴” 为愿景,短期聚焦2C情感陪伴场景,中长期迭代人机协同具身智能大模型,推动 VLIA 成为具身智能时代核心操作系统,覆盖家庭陪伴、养老服务、工业自动化等万亿级市场,为人类生活与产业变革注入新动能。

查看更多项目信息,请前往「睿兽分析」。

淘宝在成都新设贸易公司,注册资本100万元

2026年1月14日 14:25
36氪获悉,爱企查App显示,近日,成都焕享飞贸易有限公司成立,法定代表人为毛睿,注册资本100万元人民币,经营范围包括家用电器销售、互联网销售、家用电器零配件销售、食品销售、五金产品零售、针纺织品及原料销售、服装服饰零售等。股权穿透图显示,该公司由淘天有限公司全资持股,后者为淘宝(中国)软件有限公司全资子公司。

ReactNative性能优化实战指南(2026最新版)

作者 wayne214
2026年1月14日 14:19

大家好,我是你们的 RN 老司机。

今天来聊聊 React Native 开发中最头疼的问题——性能优化。在 2026 年初,React Native 已经进入成熟期,新架构(The Architecture,前身为 New Architecture)已成为默认和强制标准,Hermes 引擎也进一步进化。很多老项目如果不优化,卡顿、掉帧、启动慢的问题会越来越明显,用户体验直线下降。

本文基于 React Native 最新版本(0.82+)和社区最佳实践,总结一套实用优化 checklist,帮助你让 App 跑得飞起,接近原生体验!

1. 基础必备:拥抱新架构 + Hermes 引擎

2025 年底的 React Native 0.82 版本是一个里程碑——旧架构彻底移除,新架构成为唯一选择。这意味着:

  • Fabric 渲染器:更高效的 UI 更新,Text 渲染速度提升 20%+。
  • TurboModules:按需懒加载 Native 模块。
  • JSI 接口:JS 和 Native 直接通信,告别旧 Bridge 的序列化瓶颈。

同时,Hermes 引擎仍是默认 JS 引擎,并在 0.82 中引入实验性新版本,进一步降低内存占用、加速冷启动。

优化建议

  • 新项目直接用最新 RN 初始化。
  • 老项目尽快迁移(社区库大多已适配)。
  • 启用 Hermes:Android/iOS 默认开启,结合 AOT 字节码预编译,启动时间可减 30-50%。

2. 减少不必要渲染:React 的核心优化

RN 最常见卡顿源于过度渲染。

关键技巧

  • 函数组件用 React.memo() 包裹。
  • useMemo() 缓存复杂计算,useCallback() 缓存回调函数。
  • 避免内联函数/对象(如 onPress={() => {...}})。
  • 类组件用 PureComponent 或手动 shouldComponentUpdate

这些小改动能减少 50%+ 的重渲染!

3. 列表优化:FlatList 的致命一击

长列表是性能杀手!用好 FlatList 的这些 props:

  • keyExtractor:用稳定唯一 ID(别用 index)。
  • getItemLayout:固定高度项必备,跳过测量,大幅提升滚动。
  • initialNumToRender:10-20。
  • windowSize:调小减内存。
  • removeClippedSubviews:移除视口外视图。
  • 社区推荐:换用 FlashList,性能更猛。

4. 图片与资源优化

大图是内存黑洞。

  • react-native-fast-image 支持缓存、优先级加载。
  • 压缩图片,用 WebP 格式,适配不同屏幕尺寸。
  • 懒加载:结合列表的 viewability 回调。

5. 动画与交互:跑在 Native 线程

别让 JS 线程阻塞!

  • Reanimated 3+ + Gesture Handler,动画直接在 UI/Native 线程运行,轻松 60FPS。
  • 复杂交互避开 JS 计算。

6. 启动速度与包体积优化

  • 代码拆分:动态 import 或 RamBundle。
  • 懒加载非首屏组件(React.lazy + Suspense)。
  • 启用 ProGuard(Android),移除无用库,压缩资源。

7. 其他进阶优化

  • 内存管理:清除定时器、监听器,避免泄漏。
  • 状态管理:用 Redux Toolkit + selector,避免全局重渲染。
  • 监控工具:Flipper、Systrace、Sentry 性能监控,先定位瓶颈再优化。

性能优化 Checklist

类别 关键优化点 预期收益
架构/引擎 新架构 + Hermes 启动快 30%+,内存低
渲染 memo / useMemo / useCallback 重渲染减 50%+
列表 FlatList 核心 props / FlashList 滚动丝滑,无掉帧
图片 FastImage + 压缩 加载更快,内存优化
动画 Reanimated 稳定 60FPS
启动 代码拆分 + 懒加载 首屏秒开

结语

2026 年的 React Native 已经非常强大,但性能优化永远是开发者必修课。先用工具定位问题(推荐 Flipper Performance),再针对性优化,往往事半功倍。

阿根廷2025年通胀率降至近8年最低水平

2026年1月14日 14:15
阿根廷国家统计与人口普查研究所1月13日公布的数据显示,该国2025年通货膨胀率为31.5%,与2024年相比下降86.3个百分点,为近8年最低水平。阿根廷经济部长路易斯·卡普托在社交媒体上说,通胀率大幅下降是“非凡的成就”。2023年以来阿根廷经历了恶性通胀,2024年全年通胀率为117.8%。(新华社)

美团在湖南娄底成立科技新公司,注册资本200万美元

2026年1月14日 14:07
36氪获悉,爱企查App显示,近日,娄底摩骑科技有限公司成立,法定代表人为孙可青,注册资本200万美元,经营范围包括软件开发、网络与信息安全软件开发、信息技术咨询服务、社会经济咨询服务、互联网数据服务、信息咨询服务、企业管理咨询、供应链管理服务等。股东信息显示,该公司由美团旗下Xigua Limited全资持股。

2025年汽车产销量再创历史新高,连续17年稳居全球第一

2026年1月14日 14:02
中国汽车工业协会今天(14日)发布的最新数据显示,2025年,我国汽车行业继续展现出强大的发展韧性和活力,多项经济指标再创新高。2025年,汽车产销量分别为3453.1万辆和3440万辆,同比分别增长10.4%和9.4%,产销量再创历史新高,连续17年稳居全球第一。新动能加快释放,新能源汽车产销量超1600万辆,其中国内新车销量占比超50%,成为我国汽车市场主导力量。在对外贸易方面,呈现出较强韧性,汽车出口超700万辆,出口规模再上新台阶。其中,新能源汽车出口261.5万辆,同比增长1倍。(央视新闻)
❌
❌