Chroma.js入门指南:JavaScript颜色操作库的全面介绍
Chroma.js是一个轻量级、零依赖的JavaScript颜色操作库,专门为现代Web开发中的颜色转换、色彩空间操作和颜色比例生成而设计。本文全面介绍了该项目的核心特性、安装配置方法、支持的颜色格式和输入解析机制,以及基础的颜色操作与转换功能。通过详细的代码示例和技术解析,帮助开发者快速掌握这一强大的颜色处理工具。
Chroma.js项目概述与核心特性
Chroma.js是一个轻量级、零依赖的JavaScript颜色操作库,专门为现代Web开发中的颜色转换、色彩空间操作和颜色比例生成而设计。该项目由数据可视化专家Gregor Aisch创建,旨在解决JavaScript中颜色处理的复杂性问题。
项目架构与设计理念
Chroma.js采用模块化架构设计,核心代码组织清晰,便于维护和扩展。整个库的架构可以分为以下几个主要层次:
flowchart TD
A[Chroma.js Core] --> B[Color Operations]
A --> C[Color Conversion]
A --> D[Color Scales]
A --> E[Utilities]
B --> B1[Alpha Operations]
B --> B2[Darken/Lighten]
B --> B3[Saturation]
B --> B4[Mixing]
C --> C1[RGB/HEX]
C --> C2[HSL/HSV]
C --> C3[Lab/Lch]
C --> C4[CMYK]
C --> C5[OKLab/OKLch]
D --> D1[Linear Scales]
D --> D2[Logarithmic Scales]
D --> D3[Quantile Scales]
D --> D4[ColorBrewer Palettes]
E --> E1[Color Analysis]
E --> E2[Contrast Calculation]
E --> E3[Delta-E Distance]
E --> E4[Validation]
核心特性详解
1. 全面的颜色空间支持
Chroma.js支持几乎所有现代颜色空间,包括:
| 颜色空间 | 描述 | 主要用途 |
|---|---|---|
| RGB/HEX | 标准Web颜色 | 网页设计、CSS兼容 |
| HSL/HSV | 色相-饱和度模型 | 直观的颜色调整 |
| Lab/Lch | 感知均匀空间 | 精确的颜色插值 |
| CMYK | 印刷色彩空间 | 打印设计 |
| OKLab/OKLch | 改进的感知空间 | 现代UI设计 |
// 颜色空间转换示例
const color = chroma('#ff0000');
console.log(color.rgb()); // [255, 0, 0]
console.log(color.hsl()); // [0, 1, 0.5]
console.log(color.lab()); // [53.2408, 80.0925, 67.2032]
console.log(color.cmyk()); // [0, 1, 1, 0]
2. 强大的颜色操作功能
Chroma.js提供了丰富的颜色操作方法,支持链式调用:
// 链式颜色操作
const result = chroma('#4CB5F5')
.darken(0.3) // 变暗30%
.saturate(0.5) // 增加饱和度50%
.alpha(0.8) // 设置透明度80%
.hex(); // 输出HEX格式
console.log(result); // #1E6AA3
支持的操作包括:
- 明度调整:
darken(),brighten() - 饱和度调整:
saturate(),desaturate() - 透明度控制:
alpha(),premultiply() - 颜色混合:
mix(),blend()
3. 智能颜色比例生成
颜色比例是Chroma.js的核心特性之一,支持多种插值模式和域配置:
// 创建颜色比例尺
const scale = chroma.scale(['white', 'blue', 'black'])
.mode('lab') // 使用Lab插值以获得更好的视觉效果
.domain([0, 50, 100]) // 自定义域值
.correctLightness(true); // 自动校正明度
// 使用比例尺
console.log(scale(25).hex()); // #7F7FFF
console.log(scale(75).hex()); // #3F3FBF
4. 内置专业调色板
Chroma.js集成了ColorBrewer的专业调色板,特别适合数据可视化:
// 使用ColorBrewer调色板
const brewerScale = chroma.scale('RdYlBu') // 红-黄-蓝 diverging 调色板
.domain([0, 100])
.classes(5); // 分为5个类别
// 生成等间距颜色
const colors = [0, 25, 50, 75, 100].map(brewerScale);
5. 高级颜色分析工具
库内置了专业的颜色分析功能:
// 颜色分析示例
const color = chroma('#4CB5F5');
const analysis = chroma.analyze([color, chroma('#FFFFFF'), chroma('#000000')]);
console.log(analysis);
// {
// min: [76, 181, 245],
// max: [255, 255, 255],
// sum: [331, 436, 500],
// mean: [110.333, 145.333, 166.667],
// domain: [0, 255]
// }
6. 对比度计算与可访问性
支持WCAG和APCA对比度计算,确保颜色组合符合可访问性标准:
// 对比度计算
const contrastWCAG = chroma.contrast('#FFFFFF', '#000000'); // 21:1
const contrastAPCA = chroma.contrastAPCA('#FFFFFF', '#4CB5F5'); // 68.4
// 检查可访问性
const isAccessible = chroma.contrast('#FFFFFF', '#4CB5F5') >= 4.5; // true
7. 颜色差异计算
使用Delta-E算法计算颜色之间的感知差异:
// Delta-E 2000 颜色差异计算
const color1 = chroma.lab(50, 0, 0);
const color2 = chroma.lab(55, 10, 10);
const deltaE = chroma.deltaE(color1, color2); // 约 12.5
// 差异阈值判断
const isSimilar = deltaE < 5; // false
技术特点与优势
零依赖设计: Chroma.js不依赖任何外部库,文件体积小巧(约30KB gzipped),适合各种Web环境。
模块化架构: 采用ES6模块系统,支持tree-shaking,可以按需导入所需功能。
TypeScript支持: 提供完整的类型定义,支持现代TypeScript开发。
跨平台兼容: 支持Node.js和浏览器环境,包括现代浏览器和IE11+。
性能优化: 使用缓存机制优化重复计算,内置颜色缓存提高渲染性能。
pie title Chroma.js使用场景分布
"数据可视化" : 45
"UI设计系统" : 25
"色彩工具" : 15
"打印设计" : 10
"教育研究" : 5
Chroma.js的设计哲学是提供简单直观的API,同时保持专业的颜色处理能力。无论是简单的颜色转换还是复杂的可视化配色方案,Chroma.js都能提供优雅的解决方案。其丰富的功能和出色的性能使其成为JavaScript颜色处理领域的标杆库。
安装配置与基本使用方法
Chroma.js是一个轻量级、零依赖的JavaScript颜色操作库,支持各种颜色转换和颜色比例尺操作。本节将详细介绍如何安装、配置Chroma.js以及基本的使用方法。
安装方式
Chroma.js支持多种安装方式,可以根据你的项目需求选择合适的方法。
通过NPM安装(推荐)
对于现代JavaScript项目,推荐使用NPM进行安装:
npm install chroma-js
通过CDN引入
对于浏览器环境,可以直接通过CDN引入:
<!-- 使用jsDelivr CDN -->
<script src="https://cdn.jsdelivr.net/npm/chroma-js@3.1.2/dist/chroma.min.js"></script>
<!-- 或者使用unpkg CDN -->
<script src="https://unpkg.com/chroma-js@3.1.2/dist/chroma.min.js"></script>
通过Yarn安装
yarn add chroma-js
通过PNPM安装
pnpm add chroma-js
导入与初始化
根据不同的环境,Chroma.js的导入方式也有所不同。
ES6模块导入
import chroma from 'chroma-js';
// 或者使用命名导入
import { scale, interpolate } from 'chroma-js';
CommonJS导入
const chroma = require('chroma-js');
// 或者解构导入
const { scale, interpolate } = require('chroma-js');
浏览器全局变量
通过CDN引入后,Chroma.js会自动注册为全局变量:
// 直接使用全局的chroma对象
const color = chroma('#ff0000');
基本颜色操作
Chroma.js提供了丰富的颜色操作方法,以下是一些基本的使用示例:
创建颜色对象
// 通过十六进制字符串创建
const red = chroma('#ff0000');
const blue = chroma('#0000ff');
// 通过RGB数组创建
const green = chroma([0, 255, 0]);
// 通过颜色名称创建(支持CSS颜色名称)
const yellow = chroma('yellow');
const hotpink = chroma('hotpink');
// 通过HSL值创建
const cyan = chroma(180, 1, 0.5, 'hsl');
颜色转换与获取
const color = chroma('#3498db');
// 转换为不同格式
console.log(color.hex()); // #3498db
console.log(color.rgb()); // [52, 152, 219]
console.log(color.hsl()); // [207.27, 0.7, 0.53]
console.log(color.name()); // steelblue(近似名称)
// 获取Alpha通道值
console.log(color.alpha()); // 1
// 转换为CSS字符串
console.log(color.css()); // rgb(52, 152, 219)
颜色调整操作
let color = chroma('#3498db');
// 变暗
color = color.darken(); // #2980b9
color = color.darken(0.5); // 指定变暗程度
// 变亮
color = color.brighten(); // #5dade2
// 调整饱和度
color = color.saturate(); // 增加饱和度
color = color.desaturate(); // 降低饱和度
// 调整透明度
color = color.alpha(0.5); // 设置50%透明度
// 混合颜色
const mixed = chroma.mix('#ff0000', '#0000ff', 0.5); // 混合红色和蓝色
颜色比例尺(Scales)
颜色比例尺是Chroma.js的核心功能之一,用于创建平滑的颜色渐变。
创建基本比例尺
// 创建从白色到红色的比例尺
const scale = chroma.scale(['white', 'red']);
// 使用比例尺
console.log(scale(0).hex()); // #ffffff
console.log(scale(0.5).hex()); // #ff7f7f
console.log(scale(1).hex()); // #ff0000
使用预定义的颜色方案
// 使用Color Brewer方案
const brewerScale = chroma.scale('Spectral');
// 使用多个颜色创建复杂比例尺
const multiColorScale = chroma.scale(['blue', 'white', 'red']);
// 指定插值模式
const labScale = chroma.scale(['white', 'red']).mode('lab');
设置比例尺域和范围
const scale = chroma.scale(['blue', 'red'])
.domain([0, 100]) // 输入值范围
.mode('lab') // 使用Lab色彩空间插值
.correctLightness(true); // 校正亮度
// 使用自定义域值
console.log(scale(50).hex()); // 对应50的值
实用工具函数
Chroma.js还提供了一些实用的颜色工具函数:
颜色对比度计算
const color1 = chroma('#ffffff');
const color2 = chroma('#000000');
// 计算WCAG对比度
const contrast = chroma.contrast(color1, color2);
console.log(contrast); // 21 (完美对比度)
// 检查是否满足AA标准(4.5:1)
const meetsAA = chroma.contrast(color1, color2) >= 4.5;
颜色分析
const color = chroma('#ff6347'); // tomato
// 分析颜色属性
const analysis = chroma.analyze([color]);
console.log(analysis);
// {
// min: [255, 99, 71],
// max: [255, 99, 71],
// sum: [255, 99, 71],
// mean: [255, 99, 71],
// median: [255, 99, 71],
// // ...更多统计信息
// }
配置选项
Chroma.js提供了一些全局配置选项:
// 设置默认插值模式
chroma.defaultMode = 'lab';
// 启用/禁用缓存(提高性能)
chroma.useCache = true;
// 设置NaN颜色(无效值的默认颜色)
chroma.nacol = chroma('#cccccc');
性能优化建议
对于需要处理大量颜色的应用,可以考虑以下优化措施:
- 启用缓存:默认启用,可以显著提高重复颜色计算的性能
- 批量处理:使用数组操作而不是循环单个颜色
- 预计算:对于静态颜色方案,提前计算并存储结果
- 选择合适的插值模式:根据需求选择性能最好的模式
错误处理
try {
const invalidColor = chroma('notacolor');
} catch (error) {
console.error('无效的颜色值:', error.message);
}
// 安全地创建颜色
const safeColor = chroma.valid('invalid') ? chroma('invalid') : chroma('#ccc');
通过以上介绍,你应该已经掌握了Chroma.js的基本安装配置和使用方法。这个库提供了强大而灵活的颜色操作能力,无论是简单的颜色转换还是复杂的颜色比例尺生成,都能轻松应对。
支持的颜色格式和输入解析
Chroma.js 提供了极其丰富的颜色格式支持和智能的输入解析机制,这使得开发者可以轻松处理各种颜色表示形式。该库支持从简单的十六进制颜色到复杂的色彩空间表示,几乎涵盖了所有现代Web开发中可能遇到的颜色格式。
核心支持的色彩格式
Chroma.js 内置支持以下主要颜色格式:
| 格式类型 | 示例输入 | 描述 |
|---|---|---|
| 十六进制 | #FF5733, #f57 |
标准的CSS十六进制颜色表示 |
| RGB | rgb(255, 87, 51) |
RGB颜色函数表示 |
| RGBA | rgba(255, 87, 51, 0.8) |
带透明度的RGB颜色 |
| HSL | hsl(10, 100%, 60%) |
色相-饱和度-明度表示 |
| HSLA | hsla(10, 100%, 60%, 0.8) |
带透明度的HSL颜色 |
| 命名颜色 | red, blue, green |
CSS命名颜色 |
| Lab | lab(60, 40, 30) |
CIE Lab色彩空间 |
| Lch | lch(60, 50, 40) |
极坐标Lab表示 |
| CMYK | cmyk(0, 66, 80, 0) |
印刷四色模式 |
| 温度 | temp(6500) |
色温值(开尔文) |
智能输入解析机制
Chroma.js 采用先进的自动检测算法来识别输入的颜色格式。其解析流程如下:
flowchart TD
A[输入颜色参数] --> B{是否为Color实例?}
B -->|是| C[直接返回实例]
B -->|否| D{是否指定模式?}
D -->|是| E[使用指定模式解析]
D -->|否| F[启动自动检测]
F --> G[按优先级顺序检测格式]
G --> H[十六进制检测]
G --> I[命名颜色检测]
G --> J[RGB函数检测]
G --> K[其他格式检测]
H --> L[找到匹配格式?]
I --> L
J --> L
K --> L
L -->|是| M[使用对应解析器]
L -->|否| N[抛出格式错误]
M --> O[转换为RGB格式]
O --> P[返回Color实例]
格式检测优先级系统
Chroma.js 使用优先级系统来决定格式检测的顺序,确保最常见的格式能够被快速识别:
// 示例:格式检测优先级配置
input.autodetect.push({
p: 5, // 优先级(数值越高越优先)
test: (arg) => {
// 检测逻辑,返回格式名称或false
if (typeof arg === 'string' && arg.match(/^#([0-9a-f]{3,8})$/i)) {
return 'hex';
}
}
});
具体格式解析示例
十六进制颜色解析
// 支持多种十六进制格式
chroma('#FF5733'); // 6位十六进制
chroma('#f57'); // 3位简写
chroma('#FF573380'); // 8位带透明度
chroma('FF5733'); // 无#前缀
// 对应的解析器实现
function hex2rgb(hex) {
hex = hex.replace(/^#/, '');
if (hex.length === 3 || hex.length === 4) {
// 扩展简写格式
hex = hex.split('').map(c => c + c).join('');
}
// 解析RGB值...
}
RGB颜色函数解析
// 支持各种RGB函数格式
chroma('rgb(255, 87, 51)');
chroma('rgba(255, 87, 51, 0.8)');
chroma([255, 87, 51]); // 数组形式
chroma(0xFF5733); // 数字形式
// CSS颜色函数解析逻辑
function css2rgb(css) {
const match = css.match(/rgba?\(([^)]+)\)/);
if (match) {
const values = match[1].split(',').map(parseFloat);
return values.slice(0, 3).concat(values[3] || 1);
}
}
命名颜色支持
Chroma.js 支持所有标准的CSS命名颜色:
// 基本命名颜色
chroma('red');
chroma('blue');
chroma('green');
// 扩展命名颜色
chroma('darkorange');
chroma('mediumseagreen');
chroma('rebeccapurple');
// 命名颜色映射表(部分)
const namedColors = {
'red': [255, 0, 0],
'green': [0, 128, 0],
'blue': [0, 0, 255],
// ... 更多颜色定义
};
高级色彩空间支持
除了基本的颜色格式,Chroma.js 还支持专业的色彩空间:
Lab色彩空间
// CIE Lab色彩空间
chroma.lab(60, 40, 30); // L*, a*, b*
chroma('lab(60, 40, 30)'); // 字符串形式
// Lab到RGB的转换矩阵
const LAB_CONSTANTS = {
// D65标准白点
Xn: 0.95047,
Yn: 1.00000,
Zn: 1.08883,
// 转换系数
k: 903.3,
e: 0.008856
};
Lch色彩空间
// 极坐标Lab表示
chroma.lch(60, 50, 40); // 亮度, 色度, 色相角
chroma('lch(60, 50, 40)');
// Lch到Lab的转换
function lch2lab(l, c, h) {
const hRad = h * Math.PI / 180;
return [
l,
c * Math.cos(hRad),
c * Math.sin(hRad)
];
}
自定义格式扩展
开发者还可以扩展Chroma.js以支持自定义颜色格式:
// 添加自定义颜色格式支持
chroma.format('myformat', (value) => {
// 自定义解析逻辑
const match = value.match(/mycolor\(([^)]+)\)/);
if (match) {
return match[1].split(',').map(Number);
}
});
// 注册自动检测器
chroma.autodetect({
p: 3,
test: (arg) => {
if (typeof arg === 'string' && arg.startsWith('mycolor(')) {
return 'myformat';
}
}
});
错误处理和边界情况
Chroma.js 提供了完善的错误处理机制:
try {
// 无效颜色格式
chroma('invalid-color');
} catch (error) {
console.error('颜色格式错误:', error.message);
// 输出: unknown format: invalid-color
}
// 边界值处理
chroma([256, -1, 0]); // 自动裁剪到[0,255]范围
chroma('hsl(400, 150%, 200%)'); // 规范化处理
这种强大的格式支持和智能解析能力使得Chroma.js成为处理颜色数据的首选工具,无论是简单的颜色转换还是复杂的色彩空间操作,都能提供稳定可靠的表现。
基础颜色操作与转换示例
Chroma.js 提供了丰富的颜色操作和转换功能,让开发者能够轻松处理各种颜色格式。本节将详细介绍基础的颜色创建、格式转换以及常用操作方法。
颜色创建与初始化
Chroma.js 支持多种颜色格式的创建,包括十六进制、RGB、HSL、HSV、Lab 等:
// 十六进制颜色
const hexColor = chroma('#3498db');
const shortHex = chroma('#39d'); // 支持简写格式
// RGB 颜色(0-255范围)
const rgbColor = chroma(52, 152, 219);
const rgbArray = chroma([52, 152, 219]);
// RGBA 颜色(包含透明度)
const rgbaColor = chroma(52, 152, 219, 0.8);
// CSS 颜色名称
const namedColor = chroma('steelblue');
const redColor = chroma('red');
// HSL 颜色
const hslColor = chroma.hsl(210, 0.78, 0.53);
// HSV 颜色
const hsvColor = chroma.hsv(210, 0.76, 0.86);
// Lab 颜色
const labColor = chroma.lab(60, -10, -40);
颜色格式转换
Chroma.js 提供了便捷的颜色格式转换方法,支持在各种颜色空间之间进行转换:
const color = chroma('#3498db');
// 转换为十六进制
console.log(color.hex()); // #3498db
console.log(color.hex('rgb')); // rgb(52, 152, 219)
// 转换为 RGB
console.log(color.rgb()); // [52, 152, 219]
console.log(color.rgba()); // [52, 152, 219, 1]
// 转换为 CSS RGB 字符串
console.log(color.css()); // rgb(52, 152, 219)
console.log(color.css('hsl')); // hsl(210, 78%, 53%)
// 转换为 HSL
console.log(color.hsl()); // [210, 0.78, 0.53]
// 转换为 HSV
console.log(color.hsv()); // [210, 0.76, 0.86]
// 转换为 Lab
console.log(color.lab()); // [60.0, -10.0, -40.0]
// 转换为 LCH
console.log(color.lch()); // [60.0, 41.23, 255.96]
颜色操作与调整
Chroma.js 提供了丰富的颜色操作方法,可以轻松调整颜色的亮度、饱和度、透明度等属性:
const baseColor = chroma('#3498db');
// 亮度调整
const darker = baseColor.darken(); // 变暗
const lighter = baseColor.brighten(); // 变亮
const specificDark = baseColor.darken(0.5); // 指定变暗程度
// 饱和度调整
const desaturated = baseColor.desaturate(); // 降低饱和度
const saturated = baseColor.saturate(); // 增加饱和度
// 透明度调整
const semiTransparent = baseColor.alpha(0.5); // 设置透明度
const opaque = baseColor.alpha(1); // 完全不透明
// 颜色混合
const mixed = chroma.mix('#3498db', '#e74c3c', 0.5); // 50%混合
const blended = chroma.blend('#3498db', '#e74c3c', 'multiply'); // 混合模式
// 获取颜色分量
const luminance = baseColor.luminance(); // 亮度值(0-1)
const temperature = baseColor.temperature(); // 色温(Kelvin)
颜色空间转换流程
以下是 Chroma.js 中颜色转换的典型流程:
flowchart TD
A[输入颜色] --> B{自动检测格式}
B -->|十六进制| C[hex2rgb转换]
B -->|RGB| D[直接使用RGB值]
B -->|HSL| E[hsl2rgb转换]
B -->|HSV| F[hsv2rgb转换]
B -->|CSS名称| G[名称到RGB映射]
C --> H[内部RGB表示]
D --> H
E --> H
F --> H
G --> H
H --> I[颜色操作]
I --> J{输出格式}
J -->|十六进制| K[rgb2hex转换]
J -->|RGB| L[直接输出]
J -->|HSL| M[rgb2hsl转换]
J -->|HSV| N[rgb2hsv转换]
J -->|Lab| O[rgb2lab转换]
K --> P[输出结果]
L --> P
M --> P
N --> P
O --> P
常用颜色操作方法对比
下表总结了 Chroma.js 中常用的颜色操作方法及其效果:
| 方法 | 描述 | 示例输入 | 示例输出 |
|---|---|---|---|
.darken() |
降低亮度 | #3498db |
#217dbb |
.brighten() |
增加亮度 | #3498db |
#4fb3ff |
.saturate() |
增加饱和度 | #3498db |
#2a93ff |
.desaturate() |
降低饱和度 | #3498db |
#5a89a8 |
.alpha() |
设置透明度 | #3498db |
rgba(52,152,219,0.5) |
.luminance() |
获取亮度值 | #3498db |
0.231 |
.hex() |
转换为十六进制 | rgb(52,152,219) |
#3498db |
.css() |
转换为CSS字符串 | [52,152,219] |
rgb(52,152,219) |
实际应用示例
下面是一些实际开发中常用的颜色操作场景:
// 1. 创建主题色变体
const primary = chroma('#3498db');
const themeColors = {
primary: primary.hex(),
light: primary.brighten(0.3).hex(),
dark: primary.darken(0.3).hex(),
muted: primary.desaturate(0.5).hex()
};
// 2. 生成渐变颜色
function generateGradient(start, end, steps) {
const scale = chroma.scale([start, end]);
return Array.from({length: steps}, (_, i) =>
scale(i / (steps - 1)).hex()
);
}
// 3. 确保可读性对比度
function ensureReadable(textColor, backgroundColor) {
const contrast = chroma.contrast(textColor, backgroundColor);
if (contrast < 4.5) {
return textColor.luminance() > 0.5 ?
textColor.darken() : textColor.brighten();
}
return textColor;
}
// 4. 颜色验证和规范化
function normalizeColor(input) {
try {
const color = chroma(input);
return {
hex: color.hex(),
rgb: color.rgb(),
hsl: color.hsl(),
isValid: true
};
} catch (e) {
return { isValid: false, error: e.message };
}
}
通过这些基础操作和转换方法,开发者可以轻松处理各种颜色需求,从简单的格式转换到复杂的颜色调整,Chroma.js 都提供了简洁而强大的API支持。这些功能为数据可视化、UI设计和色彩管理提供了坚实的基础。
Chroma.js作为JavaScript颜色处理领域的标杆库,提供了全面而专业的颜色操作能力。从基础的格式转换到高级的色彩空间操作,从简单的颜色调整到复杂的渐变生成,Chroma.js都能提供优雅的解决方案。其零依赖设计、模块化架构和出色的性能表现,使其成为数据可视化、UI设计和色彩管理等场景的首选工具。通过本文的介绍,开发者可以充分了解Chroma.js的强大功能,并在实际项目中灵活运用这一优秀的颜色操作库。
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C094
baihu-dataset异构数据集“白虎”正式开源——首批开放10w+条真实机器人动作数据,构建具身智能标准化训练基座。00
mindquantumMindQuantum is a general software library supporting the development of applications for quantum computation.Python058
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7GLM-4.7上线并开源。新版本面向Coding场景强化了编码能力、长程任务规划与工具协同,并在多项主流公开基准测试中取得开源模型中的领先表现。 目前,GLM-4.7已通过BigModel.cn提供API,并在z.ai全栈开发模式中上线Skills模块,支持多模态任务的统一规划与协作。Jinja00
AgentCPM-Explore没有万亿参数的算力堆砌,没有百万级数据的暴力灌入,清华大学自然语言处理实验室、中国人民大学、面壁智能与 OpenBMB 开源社区联合研发的 AgentCPM-Explore 智能体模型基于仅 4B 参数的模型,在深度探索类任务上取得同尺寸模型 SOTA、越级赶上甚至超越 8B 级 SOTA 模型、比肩部分 30B 级以上和闭源大模型的效果,真正让大模型的长程任务处理能力有望部署于端侧。Jinja00