仓颉不仅仅可以编写鸿蒙应用,也可以编写 CLI 或者后端程序,是一门全栈语言。因此结合自己大模型相关业务,准备些一个 hello world 级别的程序体验一下。
先看效果
开发过程
申请开发者权限
安装开发环境
安装仓颉插件
首先,请在仓颉官方渠道(GitCode)根据平台架构下载相应安装包,交付内容为压缩包:Cangjie-vscode-version.tar.gz。
下载成功后,将其解压得到文件夹:Cangjie-vscode-version。
按照下图所示操作,打开文件资源管理器对话框,找到要安装的插件.vsix,点击确定即可安装。
已经安装的插件可以在 INSTALLED 目录下查看,确认后重启
安装 cangjie SDK
mac_x86_64 平台的 SDK 下载内容为:Cangjie-version-darwin_x64.tar.gz。 mac_aarch64 平台的 SDK 下载内容为:Cangjie-version-darwin_aarch64.tar.gz。
将其下载后内容放置在本地环境中。mac 版本的目录结构如下:
直接右键点击插件,选择 Extension Settings,进入配置页面:
在搜索栏输入 cangjie, 然后选择侧边栏的 Cangjie Language Support 选项。
SDK 路径配置
- 找到 Cangjie Sdk: Option 选项,选择后端类型为 CJNative(默认是此选项)
- 找到 Cangjie Sdk Path: CJNative Backend 选项,输入 CJNative 后端 SDK 文件所在绝对路径
- 重启 VScode 生效
创建工程
在 VSCode 中快捷键为 "Command + Shift + P"打开命令面板,然后按照以下步骤创建仓颉工程:
实例相关代码
package hello
import std.os.process.*
import std.io.*
import encoding.json.*
import std.console.*
main() {
let sk = "???"; // 通过阿里云百炼获取 sk
let system = "每次回答不要太啰嗦";
Console.stdOut.write("\n** welcome qwen cangjie demo **\n")
while (true) {
Console.stdOut.write("\n[Q]: ")
// 获取控制台输入
var query = Console.stdIn.readln().getOrThrow()
// 调用 llm
let result = Process.start("curl", '-X', 'POST',
'https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions', '-H', 'Authorization: Bearer ${sk}',
'-H', 'Content-Type: application/json', '-d',
'{"enable_search": true, "model":"qwen-turbo","messages":[{"role":"system","content":"${system}"},{"role":"user","content":"${query}"}]}',
stdOut: ProcessRedirect.Pipe)
Console.stdOut.write("\n")
// 获取 llm 结果
let strReader = StringReader(result.stdOut)
let s = strReader.readToEnd()
let jv: JsonValue = JsonValue.fromStr(s)
let str = jv.asObject().get('choices').getOrThrow().toString();
// 输出到控制台
Console.stdOut.writeln("\n[A]: " + str)
}
return
}