链载Ai

标题: 微软开源 GenAIScript:用 JavaScript 掌控 LLM 的力量 [打印本页]

作者: 链载Ai    时间: 昨天 11:48
标题: 微软开源 GenAIScript:用 JavaScript 掌控 LLM 的力量

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;letter-spacing: 0.1em;border-width: 0px;border-style: solid;border-color: hsl(var(--border));text-align: left;line-height: 1.75;color: rgb(15, 76, 129);">GenAIScript 是微软开源的,允许你使用 JavaScript 语法编写和管理 LLM prompts 的强大工具。它与 VS Code 深度集成,提供便捷的开发环境,并支持多种 LLM 模型。通过 "rompt 即代码" 的理念,GenAIScript 简化了 LLM 应用的开发流程,并提升了效率。本文将带你深入了解 GenAIScript,从入门到最佳实践,并通过实例展示其强大功能。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;display: table;padding: 0.3em 1em;color: rgb(255, 255, 255);background: rgb(15, 76, 129);border-radius: 8px;box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px;">GenAIScript 简介

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;color: rgb(63, 63, 63);">

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;letter-spacing: 0.1em;color: rgb(63, 63, 63);text-align: left;">ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;color: rgb(15, 76, 129);">GenAIScript 的优势:

GenAIScript 的应用场景:

核心代码逻辑:Prompt 即代码

GenAIScript 的核心在于其"Prompt 即代码" 的理念。它将 LLM prompt 转化为可编程、可管理的 JavaScript 代码,让开发者可以像编写普通代码一样构建和操作 prompt。

最基本的 prompt 创建方式如下:

$`Writea'helloworld'poem.`

$函数在这里充当了一个模板标签,将字符串内容转换为发送给 LLM 的 prompt。

GenAIScript 支持将变量、文件内容等动态地嵌入到 prompt 中:

//读取文件
constfile=awaitworkspace.readText("data.txt");
//定义变量DATA,并将文件内容赋值给它
def("DATA",file);
//构建prompt,引用变量DATA
$`AnalyzeDATAandextractdatainJSONandsaveittodata.json.`

def函数不仅引入了文件内容,还会对其进行优化,以适应目标 LLM 的特性。同时,GenAIScript 也能智能地解析 LLM 的输出,并自动提取data.json文件。

GenAIScript 入门

安装与配置

推荐使用 VS Code 插件,可以获得更好的开发体验,包括语法高亮、代码补全、调试等功能。你也可以使用命令行工具。

  1. 1. 在 VS Code 中打开 Extensions Marketplace (Ctrl+Shift+X)。

  2. 2. 搜索 "GenAIScript" 并安装。

  3. 3. 安装完成后,需要在 VS Code 的设置中配置 LLM 模型的访问密钥等信息。参考配置文档:GenAIScript 配置文档

编写第一个 GenAIScript

创建一个以.genai.mjs.genai.mts为后缀的文件,例如summarize.genai.mjs

//定义文件变量FILE,使用env.files获取当前选中文件的内容
constfile=def("FILE",env.files);
//构建prompt,引用变量FILE
$`Summarize${file}inonesentence.`

在 VS Code 中右键点击文件,选择 "Run GenAIScript" 即可运行脚本。env.files会自动获取你所选中的文件内容作为输入。

GenAIScript 最佳实践

GenAIScript 实例:文档翻译

MakeCode 文档翻译案例充分展现了 GenAIScript 的实用价值。由于 MakeCode 文档中包含许多自定义宏和语法,传统的翻译工具难以处理。GenAIScript 通过定制 prompt,成功地解决了这个问题。

实例实现说明:

该脚本的目标是将 MakeCode 文档翻译成不同的语言。它利用 GenAIScript 的$函数构建 prompt,并利用def函数将待翻译的文档内容传入 prompt。脚本中定义了详细的翻译规则,以指导 LLM 正确地翻译文档,并保留 MakeCode 文档中的自定义宏和语法。通过命令行参数lang可以指定目标语言,结合 GitHub Actions 可以实现自动化翻译流程。

代码示例:

//定义脚本元数据,包括标题、分组和temperature
script({
"title":"TranslateMakeCodedocumentation",
"group":"Translation",
temperature:0//temperature为0表示生成结果更确定性
})

//获取命令行参数中的目标语言,默认为French
constlangName=env.vars.lang||"French"
//获取待翻译的文件内容
constfile=env.files[0]
//将文件内容定义为变量ORIGINAL,并指定语言为markdown
def("ORIGINAL",file,{language:"markdown"})

//构建prompt,设定LLM的角色和专业领域
$`YouareanexpertatComputerScienceeducation.
YouareanexpertatwritingMakeCodedocumentationandtutorials.
Youareanexpert${langName}translator.`

//构建第二个prompt,描述翻译任务,并给出具体的翻译规则
$`TranslatethedocumentationinORIGINALto${langName}.
-Donottranslateheaderstartingwith~//保留以~开头的标题
-DoNOTtranslatecodein\`blocks\`,\`typescript\`,\`spy\`or\`python\`.However,youcantranslatecomments.//保留代码块,但可以翻译注释
-Donottranslate@variable@or@unplugged//保留特定标识符
-Translate\`##{<text>}\`as\`##{<translatedtext>}\`//翻译标题中的文本
-Whenyouencounterasnippetlike"\`\`||<namespace>:<text>||\`\`",DONOTtranslate<namespace>butDOtranslate<text>.//翻译特定格式的文本,保留命名空间
\`\`||<namespace>:<text>||\`\`-->\`\`||<namespace>:<translatedtext>||\`\`//示例
...`//其他翻译规则






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5