Gigax 项目介绍
Gigax 是一款专注于游戏角色开发的项目,通过集成人工智能模型,提供强大的 NPC(非玩家角色)功能,使游戏更具沉浸感和动态互动性。这个项目的主要目标是提升游戏中 NPC 的智能表现,这些 NPC 能够响应玩家的行为,并可呈现逼真的对话和动作。
项目特色
-
丰富的NPC行为:Gigax 支持 NPC 的多种行为,如说话、跳跃和攻击。开发者还可以根据需要定义其他自定义动作,以满足特定的游戏场景需求。
-
快速的推理速度:在大多数计算机上,Gigax 能够在不到 1 秒的时间内完成 GPU 推理,这使得交互更加流畅。
-
开放模型:项目提供了一些开放权重的模型,这些模型借助 Huggingface 平台,可以用于进一步的微调和开发。当前可用的模型包括基于 Llama-3、Phi-3 和 Mistral 的版本。
-
结构化生成:利用 Outlines 框架,Gigax 确保生成的内容始终符合指定的格式标准。
-
未来功能:即将推出本地服务器模式以及语言无关的 API,这将扩展项目的应用范围。此外,Gigax 正在开发基于 API 的实时任务生成功能以及通过矢量数据库的记忆创建、存储和检索功能。
Gigax 项目正持续进行更新,如果你对项目感兴趣,不妨在 GitHub 上给个星标,同时关注项目的后续发展。
如何使用
模型实例化
Gigax 提供多种可在 Huggingface 上获取的模型,用户可以根据需要选择合适的模型进行开发,例如:
以上模型也支持 gguf 格式,方便通过 llama_cpp 在 CPU 上运行。
在代码实现时,用户可以按照以下步骤进行模型的实例化和调用:
from outlines import models
from gigax.step import NPCStepper
from transformers import AutoTokenizer, AutoModelForCausalLM
# 下载模型
llm = Llama.from_pretrained(
repo_id="Gigax/NPC-LLM-3_8B-GGUF",
filename="npc-llm-3_8B.gguf"
)
model = models.LlamaCpp(llm)
# 实例化 stepper:负责提示和输出解析
stepper = NPCStepper(model=model)
NPC 动作调用
一旦设置完成,用户可以通过简单的一行代码让 NPC 执行动作:
action = await stepper.get_action(
context=context,
locations=locations,
NPCs=NPCs,
protagonist=protagonist,
items=items,
events=events,
)
开发者还可以利用 Gigax 提供的类来定义场景中的角色、物品、地点等,从而创建更加丰富的互动体验。
API 信息
若对 NPC API 有兴趣,用户可以通过联系项目团队来尝试 API,该 API 将负责模型的服务、NPC 的记忆管理及其他功能的实现。
欢迎前往 Gigax 的 Discord 和 Twitter 频道,获取更多的信息和支持。