在使用godot进行游戏开发中集成大模型的功能,可以实现NPC对话、剧情生成等许多功能,提高游戏的可玩性与不确定性,使得每一局游戏都是独一无二的。
目前,调用大模型最主流的就是使用python实现,但是可惜godot并不支持python,因此只能通过其他方法进行调用,通常需要通过 HTTP 请求与模型的 API 接口交互,或着是使用本地部署的模型,本文以使用HTTP 请求调用科大讯飞大模型为例,其他大模型也是一样的。本文所用godot版本为4.3,编程语言为GDscript.
1.调用大模型
1.在浏览器中搜索科大讯飞开放平台(链接:link),注册登陆账号后,点击控制台,找到星火认知大模型,选择Spark Lite(PS:选择其他的也行,但是这个是免费的),复制APIPassword方便后续使用。
2.打开godot 创建一个新的场景,创建一个Node为根节点,在创捷一个HTTPRequest的子节点,之后在Node中创建脚本文件,将下面代码复制到脚本文件里,在header中将1234567更换自己为自己的APIPassword,body中的内容也可以进行修改,运行后就可以在控制台打印输出结果
下面展示一些 内联代码片
。
// An highlighted block
extends Node
@onready var http_request: HTTPRequest = $HTTPRequest
func _ready() -> void:
http_request.request_completed.connect(_on_request_completed)
call_LLM()
func call_LLM():
var header = ["Content-Type: application/json",
"Authorization: Bearer 1234567"//1234567改为自己的APIPassword
]
# 3. 构造请求体和 URL
var url = "https://spark-api-open.xf-yun.com/v1/chat/completions"
var body = JSON.stringify({
"model": "lite",//版本为Spark Lite,这里可以安装自己的需求修改
"messages": [
{
"role": "user",
"content": "你叫啥"
}
]
})
# 4. 发送请求
var request_result = http_request.request(url, header, HTTPClient.METHOD_POST, body)
func _on_request_completed(result, response_code, headers, body):
var respone = JSON.parse_string(body.get_string_from_utf8())
print(respone[ "choices"][0]["message"]["content"])//打印大模型输出结果
PS:为了更好的实现功能,你可以在原代码的基础上进行修改实现你自己的功能,后续我将使用大模型输出的结果实现智能NPC功能,实现人机对话。
2.智能NPC
敬请期待,,,,,,