ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

仓颉编程语言-03-程序设计题目02:用TaoToken统一Key跑通VSCode里的仓颉练习

仓颉编程语言-03-程序设计题目02:用TaoToken统一Key跑通VSCode里的仓颉练习 1. 仓颉程序设计题目02到底练什么VSCode 里怎么跑起来仓颉编程语言是面向全场景智能的新一代编程语言主打原生智能化、天生全场景、高性能、强安全主要用在鸿蒙原生应用与服务应用场景里。程序设计题目02这类练习核心不是让你背语法而是让你把「输入、处理、输出」这条链路在 VSCode 里完整走一遍写代码、编译、运行、看结果、改错。适合谁刚装完仓颉 SDK 和 VSCode 插件、能跑通 main.cj 的初学者以及想把练习流程模板化、以后每道题都能复用的人。我试过在 VSCode 里直接开一个文件夹就写 .cj 文件结果语言服务不认、编译按钮灰掉后来才发现仓颉插件对目录结构有硬性限制它只为「打开的文件夹」下的仓颉源码提供语言服务PROJECTROOT/src 是 src 下源码PROJECTROOT 下其他 .cj 属于非 src 源码PROJECTROOT 之外的叫外部源码暂时没有语言服务。所以题目02的第一步不是写代码而是把工程结构摆对。题目02通常要求你完成一个带条件判断和循环的小程序比如根据输入计算并输出结果。你要做的动作是用命令面板创建 Cangjie 工程选 CJNative 后端选模板指定工程路径和工程名然后在 src/main.cj 里改代码用 cjpm 或 cjc 编译点运行按钮看终端输出。整个过程里最容易卡住的是三件事SDK 路径没配、cjpm.toml 缺失导致可视化编译不可用、以及模型辅助写代码时 Key 和 Base URL 填错。这篇就按「环境准备 → 题目拆解 → 代码编写 → 运行验证 → 报错排查」走一遍同时把 TaoToken 统一 Key 接进 VSCode 的 AI 辅助通道让你写仓颉练习时能直接让模型帮你补全和解释报错。官网入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 通道是 https://taotoken.net/api 后面配置里会反复用到。先明确题目02的验收标准程序能编译通过、能接收输入或使用固定数据、能输出符合题意的结果、终端里能看到运行结果而不是只显示编译结果。只要这四条满足题目就算跑通。下面从 TaoToken 前置准备开始把 Key、Base URL、Model ID 三件套先备齐再进 VSCode 配置。2. TaoToken 前置准备统一 Key、Base URL 与 Model ID 三件套在 VSCode 里做仓颉练习时AI 辅助能帮你解释语法、补全函数、翻译报错。要让这些能力可用你需要一个统一的 API 通道。TaoToken 提供的就是这个通道一个 Key、一个 Base URL就能对接多种模型。你不需要在多个平台之间来回切换也不用为每个工具单独申请凭证。先拿 Key。打开 https://taotoken.net/api-keys 登录后创建一个 API Key复制出来先存到本地记事本。这个 Key 就是后面所有配置里的api_key字段。注意不要把它提交到 Git 仓库练习工程里最好用环境变量或本地配置文件承载。然后是 Base URL。TaoToken 的 API 地址是 https://taotoken.net/api 注意这里不带任何查询参数。很多初学者会把官网首页地址填进 Base URL结果请求打到网页上返回 HTML 而不是 JSON报错里会出现reading choices之类的字段缺失。记住Base URL 只填到/api后面的路径由客户端自己拼。接着是 Model ID。你可以在模型对话页面 https://taotoken.net/models 查看当前可用的模型标识比如常见的对话模型和代码模型。Model ID 是大小写敏感的字符串填错会直接 404 或 400。建议先在模型对话里发一条「你好」确认通道可用再把它写进 VSCode 配置。三件套备齐后建议做一次最小验证用 curl 或任意 HTTP 客户端向 https://taotoken.net/api 发一个 chat completions 请求带上Authorization: Bearer 你的Key和Content-Type: application/jsonbody 里写 model 和 messages。如果返回里有choices数组说明 Key、Base URL、Model ID 都对。这一步能帮你把「通道问题」和「VSCode 配置问题」分开后面排错会快很多。如果你打算长期在 VSCode 里做仓颉练习、写 Agent 或跑编码任务可以了解 Coding Plan https://taotoken.net/coding-plan 。它适合需要持续调用、频繁补全的场景。短期练习用按量 Key 也够但把通道先跑通这件事是一样的。注意Key 只显示一次创建后立刻保存。丢了就重新生成不要试图从浏览器缓存里找。到这里前置准备完成。下一节进入 VSCode 的可复制配置把仓颉 SDK 路径和 TaoToken 通道一起写进 settings.json 和工程配置里。3. 可复制配置VSCode settings.json、cjpm.toml 与 AI 通道片段这一节给你可以直接粘贴的配置片段。路径和字段名要和你的实际环境一致尤其是 Windows 下的反斜杠要转义或改用正斜杠。先配仓颉 SDK。打开 VSCode点左下角齿轮 → 设置搜索cangjie找到 Extensions → cangjie → Cangjie Language Support。把Cangjie Sdk: Option设为CJNative把Cangjie Sdk Path: CJNative Backend设为你本地 SDK 的绝对路径。Windows 示例是D:/software/Cangjie-0.53.13-windows_x64/cangjie用正斜杠避免转义问题。改完重启 VSCode 生效。对应的 settings.json 片段如下你可以直接合并进用户设置或工作区设置{ cangjie.sdk.option: CJNative, cangjie.sdk.path.cjnative: D:/software/Cangjie-0.53.13-windows_x64/cangjie, cangjie.languageServer.enable: true, files.associations: { *.cj: cangjie } }然后是工程结构。用命令面板CtrlShiftP执行Create Cangjie Project依次选后端CJNative、选模板、选工程路径、输入工程名比如cjpro02。创建完成后工程根目录下会有cjpm.tomlsrc/main.cj是入口。cjpm.toml是可视化编译构建的前提没有它VSCode 里的 Build 按钮会不可用你只能在终端用cjc手动编译。一个最小可用的cjpm.toml长这样[package] cjc-version 0.53.13 compile-option description cangjie exercise 02 link-option name cjpro02 output-type executable src-dir ./src target-dir ./target version 1.0.0output-type设为executable时点运行按钮会在终端打印运行结果设成其他类型只会显示编译结果。题目02要看到输出所以保持executable。接下来把 TaoToken 通道接进 VSCode 的 AI 辅助。如果你用的是支持 OpenAI 兼容接口的插件比如 Continue、Cline 这类在它的配置文件里填三件套。以 Continue 的config.json为例{ models: [ { title: TaoToken, provider: openai, model: 你的ModelID, apiBase: https://taotoken.net/api, apiKey: 你的TaoTokenKey } ] }如果你用的是 Cline 的 MCP 配置写法类似关键是baseUrl指向 https://taotoken.net/api apiKey填 TaoToken Keymodel填 Model ID。三件套缺一不可Base URL 错会 404Key 错会 401Model ID 错会 400 或model not found。注意不要把apiBase写成https://taotoken.net/api/v1之外的猜测路径也不要在末尾多加斜杠。以文档为准接入说明看 https://taotoken.net/doc 。配置写完后重启 VSCode打开src/main.cj确认语言服务有高亮和补全。如果补全不出来先检查 SDK 路径和cjpm.toml是否都在位。下一节进入题目02的实际编写与运行验证。4. 题目02 编写与运行验证从 main.cj 到终端输出题目02一般要求你写一个带分支和循环的小程序。我们以一个典型练习为例读入一个整数 n输出 1 到 n 的累加和并判断结果是否为偶数。这个题目覆盖了变量、循环、条件判断和输出足够验证工具链。打开工程cjpro02下的src/main.cj把模板代码替换成下面这段。仓颉的语法风格接近现代静态语言main是入口println输出package cjpro02 import std.console.* main() { println(请输入一个整数 n) let input Console.stdIn.readln() let n Int64.parse(input ?? 0) var sum 0 for (i in 1..n) { sum i } println(1 到 ${n} 的累加和为${sum}) if (sum % 2 0) { println(结果是偶数) } else { println(结果是奇数) } }这段代码里Console.stdIn.readln()读取一行输入Int64.parse转成整数for (i in 1..n)是闭区间循环${}是字符串插值。如果你用的 SDK 版本对readln的返回类型处理不同可以先用固定值let n 10跑通逻辑再换成输入。保存后有两种运行方式。第一种点编辑区右上角的运行按钮。前提是cjpm.toml里output-type为executable且工程结构规范。点下去后终端面板会先编译再运行你会看到提示语输入数字回车看到累加和与奇偶判断。第二种在命令面板执行Build With Verbose先看编译日志有没有报错再点运行。编译日志里如果出现error:开头的行就是语法或类型问题。如果你想在终端手动编译用cjpm build或cjc src/main.cj -o target/main然后运行产物。cjpm依赖cjpm.tomlcjc是单文件编译适合快速验证语法。实测下来先用cjc确认单文件能过再用cjpm走工程构建排错路径更清晰。运行成功的标志终端先打印「请输入一个整数 n」你输入10回车接着打印「1 到 10 的累加和为55」和「结果是奇数」。如果只看到编译结果没有运行输出检查output-type是不是executable以及你是不是点的运行按钮而不是仅构建。到这里题目02就跑通了。你可以把这个工程另存为模板以后每道题复制一份只改src/main.cj和cjpm.toml里的name。下一节把常见报错列成清单方便你对照排查。5. 常见报错排查清单401、local proxy failed、reading choices、OAuth练习过程中最容易卡住的不是语法而是通道和配置。下面按真实报错逐条给排查动作。401 UnauthorizedKey 错了、过期了或者请求头里没带Authorization: Bearer。检查 TaoToken Key 是否复制完整有没有多余空格。如果你把 Key 写在配置文件里确认没有把apiKey写成api_key或apikey。重新生成一个 Key 再试能快速排除复制错误。local proxy failed / connection refused客户端连不上 Base URL。先确认apiBase是 https://taotoken.net/api 不是首页地址也不是带/v1的猜测路径。再确认本机网络能正常访问该地址可以用 curl 直接请求验证。如果公司网络有出口限制换网络环境再试。注意不要使用任何非官方的代理工具直接用标准 HTTPS 请求即可。reading choices / Cannot read properties of undefined请求返回的不是预期 JSON客户端去读choices字段时拿到 undefined。常见原因是 Base URL 填成了网页地址返回 HTML或者 Model ID 不存在服务端返回错误对象。排查顺序先用模型对话页面 https://taotoken.net/models 确认 Model ID 拼写再用 curl 看原始返回体确认里面有choices数组。OAuth / 登录态失效如果你用的是带 OAuth 的客户端凭证过期会导致请求被拒。重新登录或重新生成 Key把新 Key 更新到配置文件。OAuth 和 API Key 是两套机制不要混用。编译报错cjpm.toml not found可视化编译构建依赖cjpm.toml。如果你打开的是普通文件夹而不是创建的工程就没有这个文件。用命令面板重新创建 Cangjie 工程或者手动在工程根目录补一个cjpm.toml字段参考上一节的 TOML 片段。语言服务不生效 / 没有补全检查三件事。SDK 路径是否配成绝对路径并重启过 VSCode打开的文件夹是不是工程根目录PROJECTROOT.cj文件是否在src下或 PROJECTROOT 下。外部源码没有语言服务这是插件的限制不是配置错误。运行按钮灰掉output-type不是executable或者cjpm.toml缺失。改成executable并保存重新加载窗口。提示排错时把「通道问题」和「编译问题」分开。先用 curl 验证 TaoToken 通道再用cjc验证单文件语法最后用cjpm验证工程构建。分层排查比一次性改一堆配置高效得多。如果上面都试过还是不通接入文档在 https://taotoken.net/doc API Keys 管理在 https://taotoken.net/api-keys 对照文档逐项核对字段名和路径。6. 把练习模板固化下来下次做仓颉题直接复制题目02跑通后最有价值的动作是把这套流程固化成模板。我的做法是保留cjpro02作为母版里面cjpm.toml、settings.json片段、AI 通道配置都留着以后每道新题复制一份改工程名和main.cj即可。这样你不需要每次重新配 SDK 路径和 Key省下的时间用来理解题目逻辑。具体操作把cjpro02整个目录复制成cjpro03改cjpm.toml里的name为cjpro03用 VSCode 打开新目录语言服务会自动识别。AI 辅助的配置如果写在用户级 settings 里新工程直接继承如果写在工作区级复制一份.vscode/settings.json过去。TaoToken 的三件套建议放在用户级或环境变量里避免每个工程重复填 Key。长期做仓颉练习和编码任务的话可以走 Coding Plan https://taotoken.net/coding-plan 把调用额度集中管理。日常验证模型是否可用用模型对话页面 https://taotoken.net/models 最快。需要管理多个 Key 时API Keys 页面 https://taotoken.net/api-keys 可以按用途分开创建练习用一个、项目用一个互不影响。最后提醒一句仓颉还在快速迭代SDK 版本和插件行为可能变化。遇到和本文不一致的地方以官方文档和你本地实际版本为准。把cjc单文件编译和cjpm工程构建这两条路都练熟以后换版本也能快速定位问题。题目02只是起点模板化之后后面的题目会越做越顺。
返回列表