跳转到内容

编程元件API声明

由于通用大模型不包含《元梦之星》编程元件特有的API数据,为了让AI能够正确理解和使用编程元件的API,需要获取全部API声明文件作为上下文提供给AI。API声明文件位于【元梦开发助手】插件的lib文件夹下(\componentscript-helper\res\lib)。

获取方式

  1. 直接下载。(此版本非实时更新同步,可手动获取实时最新版本)

__All_API_Total.lua此文件汇总了API声明,不带有例子运行范围的注释。

API文档&通用数据定义.zip此压缩包内含 API声明(带分类、完整注释)和通用数据定义。

  1. 手动获取最新的API声明。

以下为获取全部API声明方式:

演示 说明
演示图片1 选中一个编程元件环境内置的API,按F12。
演示图片2 会跳转到对应的API声明文件,并显示lib文件夹。
演示图片3 lib文件夹下有全部类的API声明文件,可以通过手动复制或工具的方式,汇总一个最新完整的API声明。
演示图片5 演示图片6 我们准备了一个批处理文件用于获取API声明。 一键汇总API.bat
  • 将该文件拖入lib目录下,
  • 双击运行后,结果应如左图所示。
  • lib 文件夹下会生成一个 __All_API_Total.lua 文件,包含了完整的API声明。
  • 完成后,移动脚本文件 一键汇总API.bat 和 全部API声明文件 __All_API_Total.lua 至其他路径,以免影响插件正常使用。
@echo off
setlocal
chcp 65001 >nul
echo 正在合并并转换格式 (UTF-8 no BOM, Unix LF)...
powershell -NoProfile -Command ^
"$Output = '__All_API_Total.lua'; " ^
"$Files = Get-ChildItem -Filter '*.d.lua'; " ^
"if ($Files.Count -eq 0) { Write-Host '错误:未找到 .d.lua 文件' -ForegroundColor Red; exit }; " ^
"$Utf8NoBom = New-Object System.Text.UTF8Encoding($false); " ^
"$FinalContent = foreach ($f in $Files) { " ^
" $txt = [System.IO.File]::ReadAllText($f.FullName, [System.Text.Encoding]::UTF8); " ^
" $txt.Replace(\"`r`n\", \"`n\") " ^
"}; " ^
"[System.IO.File]::WriteAllText($Output, ($FinalContent -join \"`n\"), $Utf8NoBom); " ^
"Write-Host '成功生成:' $Output ' (Unix LF + UTF-8 NoBOM)' -ForegroundColor Green"
pause

使用方法

将API声明文件作为上下文提供给AI,可以显著降低API幻觉问题,提高代码生成的准确性。在与AI对话时,可以通过以下方式引用这些声明文件:

演示 说明 备注
演示图片7 使用@Files & Folders引用API声明文件,在每次对话时手动@引用API声明文件。
  • 优点:灵活,可以选择性引用
  • 缺点:每次对话都需要手动操作,容易忘记
演示图片8 配置CodeBuddy的规则,引入API声明文件路径。
提示词:
你只能使用元梦之星编程元件官方提供的API,严禁编造不存在的接口。
如不确定API是否存在,必须询问而非假设。
可用的API列表请参考:`xxx/__All_API_Total.lua`
具体操作可见规则 | 腾讯云代码助手 CodeBuddy -- AI 代码编辑器
  • 优点:维护成本低,API文件更新后无需修改规则
  • 缺点:配置稍复杂
演示图片9 在对话中,将声明文件中需要用的API复制粘贴到对话框中。
  • 直接复制粘贴API声明文件的全部内容
  • 优点:简单直接,最大限度保证使用的API
  • 缺点:占用大量token,可能导致对话长度超限

推荐:推荐使用方式二。虽然初次配置稍麻烦,但配置完成后每次对话都会自动生效,无需重复操作,且不会占用对话token。如果AI仍旧输出未知API,可以使用方法三。对于临时文件可以使用方法一。

常见问题

即使配置了API声明文件,有时AI仍可能编造不存在的接口。这时可以通过在提示词中添加约束语句,进一步降低API编造的概率。

推荐使用的约束提示词

场景 推荐提示词
生成代码前 请仅使用元梦之星编程元件提供的官方API,不要编造不存在的API。如果不确定某个API是否存在,请告诉我。
生成代码后 请检查以上代码中使用的所有API,确保它们都是元梦之星编程元件官方提供的真实API。
遇到不确定的接口 这个功能需要使用哪些API?请列出API名称,我会确认这些API是否存在。

示例(仅供参考)

  • 假设您想让AI帮您写一个UI显示功能,完整的提示词应该是:
    @__All_API_Total.lua
    帮我写一个函数,在屏幕中央显示一个文本UI,内容为”游戏开始”。请仅使用编程元件提供的官方API,不要编造不存在的接口。
  • 如果AI仍然编造了API怎么办?可以按以下步骤处理:
  1. 复制AI生成的代码
  2. 在对话框中输入:“请检查这段代码中使用的所有API,列出你使用的接口名称”
  3. 对照API文档确认这些接口是否存在
  4. 对话框输入:“XXX接口不存在,请使用YYY接口替代”,或直接粘贴正确的API声明