- 文档
- 知识库
- 教程
- OpenHarmony
【免费下载链接】CangjieCorpus
本仓库为仓颉编程语言语料库,聚焦 仓颉编程语言 核心知识体系,整合官方开发指南、API 文档、典型代码示例及语法规范等多维度资源,经结构化处理与专业标注,构建为支持 RAG(检索增强生成)技术 的高质量知识基座,适配智能编码助手、学习辅助工具等应用开发需求。 欢迎开发者基于本语料库构建仓颉语言智能应用,推动鸿蒙开发生态智能化升级!
CangjieCorpus 是一个以仓颉编程语言(Cangjie Language)为核心的高质量知识语料库,将官方开发指南、标准库 API 文档、典型代码示例与语法规范经过结构化处理和专业标注,构建为可直接接入向量数据库与知识图谱系统的 Markdown 知识基座。本文将从语料库的定位设计、目录结构与五大板块内容、知识表示与版本一致性策略等方面展开解析,帮助读者理解如何利用该语料库构建面向 RAG(检索增强生成)的智能编码助手与学习辅助工具。
语料库定位:为 RAG 技术打造的知识基座
仓颉编程语言是面向全场景应用开发的通用编程语言,支持 CJNative 与 CJVM 两种后端,融合函数式、命令式与面向对象多范式编程,并提供基于词法宏的元编程能力(详见 初识仓颉语言)。面对这样一个语法特性丰富、标准库庞大、生态场景多元的新兴语言,开发者与智能应用普遍面临"知识分散、检索困难"的问题。
CangjieCorpus 正是为解决这一问题而构建的。根据仓库根目录的 README.md,该语料库的核心理念是:
- 聚焦核心知识体系:整合官方开发指南、API 文档、典型代码示例及语法规范等多维度资源,覆盖分布式开发、多端协同、元编程等鸿蒙生态核心场景案例;
- 面向 RAG 场景设计:语料以 Markdown 标准化格式存储,保留完整层级结构与语义标签,便于快速接入向量数据库与知识图谱系统;
- 适配多种应用形态:既可直接服务于智能编码助手的代码生成与补全建议,也可支撑学习辅助工具的知识问答与语法检索。
这使得 CangjieCorpus 区别于一般的文档镜像仓库——它从内容组织方式上就为检索增强生成(Retrieval-Augmented Generation)做好了准备:文档按主题拆分为细粒度文件、标题层级完整、代码示例独立成块、术语定义保留原文,这些都是向量切分与检索召回的高质量输入特征。
总体结构与目录组织
CangjieCorpus 在仓库根目录下划分了五大板块,分别对应仓颉语言知识体系的不同维度:
| 目录 | 功能定位 | 内容来源 |
|---|---|---|
| extra | 项目团队自主设计的扩展功能库 | 自研,贴合鸿蒙生态典型场景,仅作学习研究参考 |
| libs | 标准库 std 与扩展库 stdx 的 API 文档 | 映射仓颉官方标准库/扩展库文档 |
| manual | 用户开发指南 | 同步仓颉官方用户手册 |
| ohos | OpenHarmony 仓颉开发者文档 | 同步 OpenHarmony 官方文档 |
| tools | 工具链与 IDE 使用指南 | 同步仓颉官方工具指南 |
这种"官方文档结构化 + 自研实践补充"的组织方式,使得语料库既能保证知识的权威性与完整性,又能针对鸿蒙生态的分布式开发、设备协同等实际场景提供贴合实战的示例。开发者可通过目录结构快速定位官方文档对应章节,实现知识检索与应用开发的高效衔接。
板块一:extra —— 自研扩展功能库与实践示例
extra目录存放项目团队基于仓颉语言特性自主设计的扩展功能库,内容以场景化的代码模板和最佳实践示例为主,仅供学习研究参考,不代表官方标准实现(见 README.md)。
从实际文件内容看,该板块覆盖了仓颉语言最常用的数据类型与集合操作主题,共 12 个 Markdown 文件:Array、ArrayList、Collection、Function、HashMap、HashSet、Numbers、Option、Rune、Sorting、String、Tuple。其中每个文件都以可运行的代码示例为主体,例如:
- extra/Collection.md 系统性讲解了集合类型上的高阶函数用法,包括逻辑量词
all/any(collection |> all {x => cond})、蕴含表达式(!A || B)、count、filter、fold、reduce、min/max、map、flatMap等。文档特别强调了若干易错点:fold的 lambda 多参数时不能加括号、reduce返回Option值必须用getOrThrow()提取、map返回的是迭代器需用collectArray收集等,并给出了求列表和(fold(0) {old, curr => old + curr}得 10)与积(得 24)等完整可验证示例; - extra/String.md 覆盖字符串的初始化(单引号/双引号/三引号/
#原始字符串)、size属性、String.join拼接、关系运算符比较、ToString接口实现、插值字符串${...}、Int64.parse解析、区间切片words[2..5]、runes()与toRuneArray()字符访问等主题; - extra/Array.md 讲解
Array<T>的多种初始化方式(字面量、Array(3, repeat: 0)、初始化函数{i => i + 1})、size属性、a == b比较、切片语义(注意slice(start, len)的第二个参数是长度而非结束位置,这与ArrayList的切片不同); - extra/Option.md 说明
Option枚举的两个构造子Some/None,以及getOrThrow()、getOrDefault({ => 0})等取值方式。
这些文档大量使用管道操作符|>与 lambda 语法糖,与 libs/std/collection 中定义的fold、reduce、filter、map、flatMap、min、max等集合函数一一对应,可作为标准库 API 文档的配套实操教程。
板块二:libs —— 标准库与扩展库 API 全量文档
libs目录完整映射仓颉官网的标准库 std与扩展库 stdxAPI 文档,涵盖全量内置库与标准接口,是语料库中体量最大、粒度最细的板块。
std 标准库
libs/std/std_module_overview.md 作为标准库的入口文档,阐明了 std 随仓颉 SDK 默认发布、"开箱即用"的特性,并给出了三种导入语法:
import std.collection.ArrayList // 导入单个顶层声明 import std.collection.{ArrayList, HashMap} // 导入同一包内多个声明 import std.collection.* // 导入包内所有 public 顶层声明该板块下每个包都有独立的 overview 文档与package_api子目录(含 classes/enums/functions/interfaces/structs 等 API 详情)和package_samples子目录(含可运行示例)。例如:
- collection 包:提供
ArrayDeque、ArrayList、ArrayQueue、ArrayStack、LinkedList、HashMap、HashSet、TreeMap、TreeSet等常用数据结构,以及all/any/at/collectArray/contains/count/filter/fold/map/reduce/min/max/zip等 32 个集合高阶函数,另有Deque、List、Map、Queue、Set、Stack等接口定义;collection_package_samples目录还提供了 ArrayList 增删改查、HashMap 存取、HashSet/TreeSet 迭代等配套示例; - core 包:标准库核心包,默认导入,提供
print/println/eprint/eprintln控制台输出、min/max极值、ifSome/ifNone等基础函数,以及Array、String、Range等内置类型与ToString、Hashable、Equatable等基础接口; - 其余还包括
io(数据交换)、fs(文件系统)、net(网络通信)、regex(正则表达式)、time(日期时间)、math(数学运算)、process(进程管理)、sync(并发同步)、unittest(单元测试)等 30 余个包,覆盖仓颉语言编程的各个基础领域。
stdx 扩展库
libs/stdx/libs_overview.md 说明 stdx 中的扩展库不随编译器、工具链一起发布,需要用户单独下载,并按需引用静态(static)或动态(dynamic)二进制产物。该文档还给出了两种接入方式:
方式一:cjc 命令行链接(Linux/macOS 为例):
$ cjc main.cj -L $CANGJIE_STDX_PATH -lstdx.aspectCJ -lstdx.encoding.json -lstdx.serialization.serialization -lstdx.net.http -lstdx.net.tls -lstdx.logger -lstdx.log -lstdx.encoding.url -lstdx.encoding.json.stream -lstdx.crypto.keys -lstdx.crypto.x509 -lstdx.encoding.hex -lstdx.crypto.crypto -lstdx.crypto.digest -lstdx.encoding.base64 -lstdx.compress.zlib -lstdx.compress -ldl --import-path $CANGJIE_STDX_PATH -o main.out其中CANGJIE_STDX_PATH为设置的 stdx 路径,例如export CANGJIE_STDX_PATH=/target/linux_x86_64_cjnative/dynamic/stdx;使用静态库时,Windows 需额外添加-lcrypt32、Linux 需额外添加-ldl。
方式二:cjpm 包管理配置:
[target.x86_64-unknown-linux-gnu] [target.x86_64-unknown-linux-gnu.bin-dependencies] path-option = ["${CANGJIE_STDX_PATH}"]x86_64-unknown-linux-gnu为系统架构信息,需通过cjc -v获取并替换。stdx 的包列表覆盖compress.zlib(压缩解压)、crypto.crypto/crypto.digest/crypto.keys/crypto.x509(加解密与证书)、encoding.base64/encoding.hex/encoding.json/encoding.url(编解码)、net.http/net.tls(HTTP/1.1、HTTP/2、WebSocket 与 TLS)、log/logger(日志)、serialization(序列化)、fuzz(模糊测试)、aspectCJ(面向切面编程)等。
该板块的结构设计与 std 完全一致(overview + package_api + samples),便于检索时按"包名 → API → 示例"逐级定位。
板块三:manual —— 用户开发指南与语言教程
manual目录同步仓颉官方用户开发指南,是面向开发者核心知识需求的完整教程体系,从语言基础到工程实践层层递进。其子目录结构覆盖了仓颉语言的完整知识面:
- 入门与基础:first_understanding/basic.md 概述仓颉语言的多后端支持、多范式编程、类型安全、内存安全、高效并发、元编程与 UI 开发等核心特性;hello_world.md 给出了第一个可运行程序:
// hello.cj main() { println("你好,仓颉") }cjc hello.cj -o hello- 语言要素:
basic_data_type(整数、浮点、布尔、字符、字符串、元组、数组、区间、Unit、Nothing)、basic_programming_concepts(标识符、程序结构、表达式、函数)、function(定义/调用函数、lambda、闭包、函数重载、操作符重载、const 函数)、struct、class_and_interface、enum_and_pattern_match(枚举、match、Option 类型、模式匹配)、generic(泛型函数/类/接口/枚举、泛型约束、类型别名)、extension(扩展机制)等; - 核心机制:
collections(ArrayList、HashMap、HashSet、Iterable)、error_handle(异常处理、Option 使用)、concurrency(线程创建/使用/终止、同步、sleep)、package(包声明、导入、程序入口)、Basic_IO(I/O 流)、Net(Socket、HTTP、WebSocket)、Macro(宏的简介、Tokens 与 quote 表达式、宏实现、编译报错调试、实用案例)、reflect_and_annotation(动态特性、注解)、FFI(仓颉-C 互操作); - 工程化:
compile_and_build中 cjc_usage.md 讲解cjc编译命令的使用(cjc [option] file...,默认输出可执行文件main)、cjpm_usage_OHOS.md 介绍包管理工具,另有条件编译、部署运行(run_cjnative)、Appendix(编译选项、关键字、操作符、TokenKind 类型等语言附录)。
这一板块是理解仓颉语言语法语义的一手教程资料,与libs板块的 API 文档互为表里:教程讲"怎么用",API 文档讲"有什么"。
板块四:ohos —— OpenHarmony 仓颉开发者文档
ohos目录同步 OpenHarmony 仓颉开发者文档,是语料库中覆盖鸿蒙生态应用开发场景的核心板块。其入口文档 ohos/zh-cn/README_zh.md 与 OpenHarmony 中仓颉能力概述 共同勾勒了仓颉在 OpenHarmony 中的能力全貌:
- ArkUI 声明式开发范式:提供布局(线性/层叠/弹性/相对/栅格布局,以及列表、宫格、轮播)、系统组件与自定义组件、页面路由、图形绘制、动画(属性动画、显式动画、转场动画)、交互事件(触摸/鼠标/键盘/焦点/手势)与自定义能力;
- 全栈 API 能力:
application-dev/README_zh.md(应用开发指南)按 Kit 体系组织了完整的 API 索引,覆盖 Ability Kit(程序框架服务)、ArkData(方舟数据管理)、ArkUI(方舟 UI 框架)、ArkWeb(方舟 Web)、Core File Kit(文件基础服务)、IPC Kit(进程间通信)、Network Kit(网络服务)、Camera/Image/Media/Media Library Kit(媒体)、ArkGraphics 2D(图形)、Location Kit(位置服务)等 5 大类别 22 个 Kit,并同步了 286 个 API 参考文档; - 仓颉与 ArkTS 互操作:官方文档给出了
ark_interop互操作库(JSValue、JSContext、JSModule等关键数据结构)与声明式互操作宏@Interop[ArkTS]的使用方式,支持"ArkTS 调用仓颉"与"仓颉调用 ArkTS"两种典型场景。例如将仓颉函数导出给 ArkTS:
@Interop[ArkTS] public func addNumber(a: Float64, b: Float64): Float64 { a + b }- 仓颉工程结构:文档还给出了 DevEco Studio 中仓颉工程的目录结构规范(
entry/src/main/cangjie存放仓颉源码、cjpm.toml为包管理配置、module.json5为 Stage 模块配置等)以及创建仓颉工程的操作步骤; - 学习路径:learn-cj/README_zh.md 提供了"学习仓颉语言"的完整知识树,从初识语言到基本概念、基础数据类型、函数、结构类型、枚举与模式匹配、类和接口、泛型、扩展、Collection 类型、包、异常处理、并发编程、I/O、网络、宏、反射注解、互操作、编译构建与附录,是全语料库知识脉络最完整的导航页。
此外,ohos板块还覆盖了数据库、分布式数据管理、安全(程序访问控制、加解密算法框架、密钥管理)、DFX 调测调优、应用测试、传感器、显示管理等场景,为鸿蒙生态的分布式开发、设备协同等典型场景提供了完整的参考文档。
板块五:tools —— IDE 插件与命令行工具链
tools目录同步仓颉官方工具指南,系统化整合了仓颉语言全生命周期的开发工具链。
- IDE 插件指南:ide_plug-in_overview_community.md 介绍 Visual Studio Code 仓颉插件的安装与使用,涵盖语言服务、工程管理、编译构建、调试服务、格式化、静态检查和代码覆盖率统计等功能;
IDE目录下还包含插件安装、创建仓颉工程、编译构建、调试服务、命令行工具集成、语言服务等专题文档,并配有 113 张操作截图(位于tools/source_zh_cn/IDE/figures/); - 命令行工具手册:
tools子目录提供了cjpm(包管理)、cjfmt(代码格式化)、cjlint(静态检查)、cjcov(覆盖率)、cjdb(调试器)、cjprof(性能剖析)、cjtrace_recover(trace 恢复)以及用户手册等工具文档。以 cjpm_manual_cjnative_community.md 为例,它完整说明了cjpm的 10 个子命令(init、check、update、tree、build、run、test、bench、clean、install、uninstall)及其全部参数,并给出了cjpm.toml配置文件的字段详解([package]、[workspace]、[dependencies]、[test-dependencies]、[profile]、[target.*]等)。
该板块与manual中的compile_and_build章节互补:手册提供工具命令的完整参考,教程则说明其在工程中的使用流程。
Markdown 标准化与 RAG 知识表示
CangjieCorpus 全量采用 Markdown 格式存储语料,这并非简单的格式选择,而是为 RAG 场景量身设计的知识表示策略:
- 完整层级结构:文档保留从 H1 到 H4 的完整标题层级(例如 std 标准库 以
#到###组织"包列表 → 包功能 → API 函数");标题层级天然构成文档的语义骨架,向量检索时可以结合标题上下文为正文片段补充语境,也能支持按章节粒度的精确召回; - 语义标签与术语保留:代码块使用
cangjie、shell、text、toml等语言标签标注,配置参数、命令选项、API 签名以独立代码块或表格呈现,关键术语(如Option、fold、getOrThrow、@Interop[ArkTS])保留官方定义,避免语义漂移; - 细粒度文件切分:每个主题独立成文(如 collection 包下按"函数/接口/类/异常"拆分 API 文件),单文件体量适中,便于直接作为 RAG 管道的切分单元,减少跨文件上下文截断问题;
- 示例独立可运行:教程与示例文档中的代码块大多标注了预期输出(如
println(min(a).getOrThrow()) // 1),这些"输入-输出"对是高价值检索单元,能够为代码生成、错误诊断类问答提供直接的证据支撑。
基于以上特性,将该语料库接入 RAG 应用时,典型流程为:读取各板块 Markdown 文件 → 按标题层级与代码块边界切分为检索片段 → 向量化后写入向量数据库 → 针对用户查询(如"如何用 fold 求列表和""ArkTS 如何调用仓颉函数")进行相似度检索 → 将召回片段作为上下文交给大模型生成答案。extra、libs、manual、ohos、tools的分板块组织,也便于在检索阶段按场景(语言语法 / API 查询 / 鸿蒙开发 / 工具使用)做路由过滤,提升召回精度。
版本一致性与文档对齐策略
README 明确说明:当前语料库适配仓颉编程语言 v1.0.0(对应官网文档发布日期 2025-07-01),完整覆盖该版本核心知识体系。版本一致性体现在三个方面:
- 结构对齐:所有目录内容对齐仓颉官方文档结构,
libs映射 std/stdx 文档、manual映射用户开发指南、ohos映射 OpenHarmony 文档、tools映射工具指南,开发者可从语料库目录直接映射回官方文档对应章节; - 语义保留:文档保留原文标题层级与技术术语定义,不使用改写或转述破坏原文语义,确保 API 签名、参数说明、命令选项等内容的权威性;
- 工具链兼容:语料内容与 v1.0.0 编译器及工具链完全兼容,其中工具链文档(如 工具链用户手册)保留了原始版本标记,供使用时核对工具版本。
需要注意,extra板块为项目团队自研内容,README 明确标注其"仅供学习研究参考,不代表官方标准实现",在构建知识应用时应与官方来源文档区分权重。
总结
CangjieCorpus 以"官方文档结构化 + 场景实践补充"的方式,将仓颉编程语言的知识体系组织为五大板块、层级清晰的 Markdown 语料:libs提供标准库与扩展库的全量 API 参考,manual提供从入门到工程化的语言教程,ohos提供 OpenHarmony 全栈 Kit 与互操作开发文档,tools提供 IDE 与命令行工具链指南,extra提供贴合鸿蒙生态的自研实践示例。这种"检索友好"的知识表示设计,使其能够直接服务于智能编码助手、学习辅助工具等基于 RAG 技术的仓颉语言智能应用建设,为鸿蒙开发生态的智能化升级提供知识基座支撑。
- 文档
- 知识库
- 教程
- OpenHarmony
【免费下载链接】CangjieCorpus
本仓库为仓颉编程语言语料库,聚焦 仓颉编程语言 核心知识体系,整合官方开发指南、API 文档、典型代码示例及语法规范等多维度资源,经结构化处理与专业标注,构建为支持 RAG(检索增强生成)技术 的高质量知识基座,适配智能编码助手、学习辅助工具等应用开发需求。 欢迎开发者基于本语料库构建仓颉语言智能应用,推动鸿蒙开发生态智能化升级!
相关推荐
GetQzonehistory:扫码一次,导出全部 QQ 空间历史说说
GetQzonehistory:扫码一次,导出全部 QQ 空间历史说说 翻 QQ 空间时你大概也卡过:往前翻了几十页就没了,三五年前的记录根本点不到,网页版也没
网页爬虫数据分析仓颉小智:基于元宝 Deepseek 模型与 RAG 知识库的仓颉语言 AI 开发助手
仓颉小智:基于元宝 Deepseek 模型与 RAG 知识库的仓颉语言 AI 开发助手 导读 仓颉小智(Cangjie XiaoZhi)是一个面向仓颉(Cang
文档知识库RAGAI 应用什么是仓颉小智?仓颉语言AI智能助手完整指南:RAG知识库如何帮你快速上手新语言
什么是仓颉小智?仓颉语言AI智能助手完整指南:RAG知识库如何帮你快速上手新语言 仓颉小智 是一款专为 仓颉语言 打造的 AI 智能助手 。它基于大语言模型 +
文档知识库RAGAI 应用
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考