编程元件API声明
由于通用大模型不包含《元梦之星》编程元件特有的API数据,为了让AI能够正确理解和使用编程元件的API,需要获取全部API声明文件作为上下文提供给AI。API声明文件位于【元梦开发助手】插件的lib文件夹下(\componentscript-helper\res\lib)。
获取方式
- 直接下载。(此版本非实时更新同步,可手动获取实时最新版本)
__All_API_Total.lua此文件汇总了API声明,不带有例子运行范围的注释。
API文档&通用数据定义.zip此压缩包内含 API声明(带分类、完整注释)和通用数据定义。
- 手动获取最新的API声明。
以下为获取全部API声明方式:
| 演示 | 说明 |
|---|---|
|
选中一个编程元件环境内置的API,按F12。 |
|
会跳转到对应的API声明文件,并显示lib文件夹。 |
|
lib文件夹下有全部类的API声明文件,可以通过手动复制或工具的方式,汇总一个最新完整的API声明。 |
|
我们准备了一个批处理文件用于获取API声明。
一键汇总API.bat
|
@echo offsetlocalchcp 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对话时,可以通过以下方式引用这些声明文件:
| 演示 | 说明 | 备注 |
|---|---|---|
|
使用@Files & Folders引用API声明文件,在每次对话时手动@引用API声明文件。 |
|
|
配置CodeBuddy的规则,引入API声明文件路径。 提示词: 你只能使用元梦之星编程元件官方提供的API,严禁编造不存在的接口。 如不确定API是否存在,必须询问而非假设。 可用的API列表请参考:`xxx/__All_API_Total.lua` 具体操作可见规则 | 腾讯云代码助手 CodeBuddy -- AI 代码编辑器 |
|
|
在对话中,将声明文件中需要用的API复制粘贴到对话框中。 |
|
推荐:推荐使用方式二。虽然初次配置稍麻烦,但配置完成后每次对话都会自动生效,无需重复操作,且不会占用对话token。如果AI仍旧输出未知API,可以使用方法三。对于临时文件可以使用方法一。
常见问题
即使配置了API声明文件,有时AI仍可能编造不存在的接口。这时可以通过在提示词中添加约束语句,进一步降低API编造的概率。
推荐使用的约束提示词
| 场景 | 推荐提示词 |
|---|---|
| 生成代码前 | 请仅使用元梦之星编程元件提供的官方API,不要编造不存在的API。如果不确定某个API是否存在,请告诉我。 |
| 生成代码后 | 请检查以上代码中使用的所有API,确保它们都是元梦之星编程元件官方提供的真实API。 |
| 遇到不确定的接口 | 这个功能需要使用哪些API?请列出API名称,我会确认这些API是否存在。 |
示例(仅供参考)
- 假设您想让AI帮您写一个UI显示功能,完整的提示词应该是:
@__All_API_Total.lua
帮我写一个函数,在屏幕中央显示一个文本UI,内容为”游戏开始”。请仅使用编程元件提供的官方API,不要编造不存在的接口。 - 如果AI仍然编造了API怎么办?可以按以下步骤处理:
- 复制AI生成的代码
- 在对话框中输入:“请检查这段代码中使用的所有API,列出你使用的接口名称”
- 对照API文档确认这些接口是否存在
- 对话框输入:“XXX接口不存在,请使用YYY接口替代”,或直接粘贴正确的API声明