目录

前言

关于Amazon Q Developer

环境准备

1、进入环境

2、环境准备

3、访问 Visual Studio Code Server

4、设置 Builder ID

基于 Amazon Q调试、优化、构建生成式 AI 游戏应用

1、启动 Q-Words 应用

2、使用 Amazon Q 识别并修复错误

番外篇:升级猜词游戏

1. 增加难度级别

2. 引入机器学习

3. 多语言支持

结束语


前言

在人工智能技术的浪潮中,生成式 AI 编程助手正逐渐成为开发者的强大伙伴,大家对使用人工智能改进软件开发越来越感兴趣,生成式人工智能编码助手和聊天机器人该领域最有前途的新发展之一。这些工具使用机器学习来生成代码并以自然语言格式回答有关代的问题,这使得所有技能水平的开发人员都可以轻松使用它们。这里不得不提到Amazon Q Developer,它是一款生成式人工智能 (AI)支持的对话助理,可以帮助使用者理解、构建、扩展操作 Amazon 应用程序,也可以询问有关 Amazon 架构、最佳实践、文档、代码等的问题。那么本文就以猜词游戏为例,探索如何使用生成式 AI 编程助手来理解、构建和升级应用程序,让开发过程变得更加轻松和高效。

关于Amazon Q Developer

Amazon Q Developer 是一款生成式人工智能 (AI)支持的对话助理,可以帮助理解、构建、扩展操作 Amazon 应用程序,也可以询问有关 Amazon 架构、最佳实践、文档、代码等的问题。

关于猜词游戏的简介,猜词游戏是一种流行的文字游戏,玩家需要根据提示猜测单词,这个游戏不仅可以作为休闲娱乐,也是语言学习和词汇训练的好方式。接下来让我们看看如何利用生成式 AI 编程助手来开发这样一个游戏。本文实例的游戏是Q-Words,它是一款用 Java 编写的免费文字游戏,该游戏的玩法是在五次尝试中猜测一个六个字母的单词。每次猜测后,玩家都会收到单词中字符的 + ? X 反馈。+ 字符表示字母位置正确,? 字符表示字母在单词中但位置错误,X 字符表示字母不在单词中。

环境准备

1、进入环境

点击 “开始实验” 按钮,即可扫码进入实验环境,需要注意的是:测试账号有效期仅为一天,过期后系统将自动回收清理,请不要上传重要数据。

同时,点击 “立即注册” AWS Console - Signup按钮即可免费注册属于你的亚马逊云科技海外区账号,开启个性化的系统构建之旅,进一步探索更广泛、更深入的云服务领域并保留实验中构建的系统应用,尽情享受云上构建的无限可能!

如果我们在自己的亚马逊云科技账户上进行实验,请务必在实验完成后根据清理资源板块部分的说明删除和关闭所有实验资源,以避免产生不必要的费用。

注册成功之后,可以扫码登陆,具体如下图所示:

然后需要填写邮箱,如果你之前没有填写过邮箱,则需要填写一下邮箱,并勾选隐私协议,点击前往实验,及可进入实验室,具体如下图所示:

2、环境准备

其实Amazon Q 与多个 IDE 集成,包括 JetBrains、Visual Studio Code、Amazon Cloud9 等。在本文示例中,我们将使用 Visual Studio Code编辑器。另外,为了尽快进入实践部分,我们需要使用托管在 Amazon EC2 实例上的 Visual Studio Code ServerVisual Studio Code Server

3、访问 Visual Studio Code Server

(1)进入控制台后,请在上方的 Search 中搜索 CloudFormation ,并点击搜索结果中的链接,如下所示:

(2)选择 CloudLabCampaignInfraStack-amazon-q-developer-dive-deep

(3)选择 Outputs,记录输出中的 URL 和 Password

(4)选择 URL 打开 Visual Studio Code Server。

(5)在对话框中,粘贴我们之前复制的密码,然后选择提交,如下所示:

(6)现在应该可以看到 Visual Studio Code IDE,如下所示:

关于Visual Studio Code Server 已安装的组件,以下项目已经在我们的 VS Code Server 实例上安装:

  • Amamzon CLI
  • Visual Studio Code 的 Amazon Q 扩展
  • Git
  • Java - Amazon Corretto -- 版本 8 和17
  • Maven

然后将在本次示例中使用的代码存储库已下载到文件夹中。

如果已成功访问了预先为本示例配置好的 VS Code Server IDE,接下来需要继续设置 Amazon Builder ID 以连接到 Amazon Q。

4、设置 Builder ID

在本文示例中,将使用 Builder ID 连接到 Amazon Q,这将允许从 Amazon 访问某些开发人员工具和服务,Builder ID 可免费使用,具体操作步骤如下所示。

(1)在 Visual Studio Code 的 Amazon Q 扩展中,选择免费使用,选择继续,如下所示:

(2)出现提示是否要使用代码打开外部网站,选择打开,如下所示:

(3)将打开一个浏览器选项卡并显示 创建 Builder ID 页面。输入我们的电子邮件地址并选择下一步,如下所示:

(4)将出现 姓名 字段,需要输入我们的姓名并选择 下一步,如下所示:

(5)Amazon 会将确认码发送到我们提交的电子邮件地址。在电子邮件验证屏幕上输入代码并选择“验证”,如下所示:

(6)在选择密码屏幕上,输入密码并确认,然后选择创建 Builder ID。

(7)浏览器选项卡中会显示一条消息,要求允许 Visual Studio Code 的 Amazon Q 扩展访问数据,选择允许,如下所示:

(8)返回 VS Code 即可正常使用,如下所示:

看到 Chat 页面,如下图所示就是链接成功:

(9)Amazon Q 对话测试,输入下面句子,对话:

What programming languages does it support?

基于 Amazon Q调试、优化、构建生成式 AI 游戏应用

1、启动 Q-Words 应用

在 VS Code编辑器的终端中,执行下面命令:

mvn verify

然后,代码打包后运行 jar 文件。默认情况下,应用程序将绑定到 TCP 端口 8090,执行下面命令启动项目:

java -jar target/QWordsService-0.0.1.jar

运行上述命令后,默认情况下,应用程序将绑定到 TCP 端口 8090,VSCode 服务器将代理此端口,因此大家可以在本地访问应用程序。运行上述命令后,我们应该会看到一个弹出窗口,询问是否要在浏览器中打开应用程序。选择 Open in Browser。如果弹窗已经关闭,我们可以通过 TERMINAL 窗口右侧 PORTS 里找到应用主页,具体如下所示:

需要注意的是,这个游戏的目标是猜测一个单词,并使用每次尝试的响应信息来正确猜测正确的答案。在游戏重置之前我们将有 5 次尝试机会。但是要开始游戏,需要输入我们的名字并开始第一个猜测,具体如下所示:

在玩游戏几次后,我们应该注意到这个词总是相同的,并且猜测 animal 这个词总是会成功,如下所示:

那么接下来我们将使用 Amazon Q 帮助确定如何选择该单词并修复错误。

2、使用 Amazon Q 识别并修复错误

首先需要在项目中的 controller 目录中找到 GameController.java 并打开,把整个文件的内容选中,然后右键单击Send to Amazon Q > Send to prompt,将 GameController.java 发送到 Q,如下所示:

然后在 Amazon Q 聊天窗口中的 GameController.java 文件的内容,添加提示以了解如何为游戏选择单词,如下所示:

How is the word selected for the game?

具体响应示例如下所示:

从 services 目录中打开 WordSelectionService.java 并将其发送到 Amazon Q ,就像在上一步骤中所做的那样,看看是否可以确定如何选择单词并将其返回到控制器,如下所示:

同样我们为代码增加相关的描述,如下所示:

How does the WordSelectionService select and return a word for the GameController?

那么现在我们已经确定了游戏的单词选择涉及哪个代码路径,让我们使用 Amazon Q 通过 WordList.getRandomWord 函数修复逻辑错误。打开 repository 目录中的 WordList.java 并找到 getRandomWord 函数。我们看到它只从构造函数中定义的数组列表返回 index:0 ,然后我们选中这个函数,然后右键单击 Send to Amazon Q -> Send to prompt ,具体如下所示:

并增加以下描述:

My words are not selected in a random fashion. Can you troubleshoot and fix the code?

根据上图所示,Amazon Q 应该建议使用Math.random() 实现,在 Amazon Q 的响应中,有一个在光标处插入选项,单击此选项以替换原始方法。如果这是我们选择这个,我们还需要将 import java.lang.Math; 加入到文件头部中,具体文件代码如下所示:

package com.example.qwords.repository;
import java.util.ArrayList;
import java.lang.Math;

public class WordList {

    private ArrayList<String> wordlist;


    public WordList() {
        this.wordlist = new ArrayList<String>();
        this.wordlist.add("animal");
        this.wordlist.add("bakery");
        this.wordlist.add("cracks");

    }
    
    public String getRandomWord() {
        int randomIndex = (int) (Math.random() * wordlist.size());
        return this.wordlist.get(randomIndex);
    }
}

在对代码进行任何更改后,我们需要重建并重新启动应用程序以测试更改,具体如下所示:

mvn -U clean verify java -jar target/QWordsService-0.0.1.jar

到这个时候,我们再去猜单词的时候会发现,已经不总是 animal 了,已经不会出现上述的那种bug了。

番外篇:升级猜词游戏

关于升级猜词游戏的功能,这里做一个简单的分享,具体如下所示:

1. 增加难度级别

我们可以使用生成式 AI 助手来增加游戏的难度级别,比如通过单词的难度和提示的模糊程度来区分。

2. 引入机器学习

进一步,我们可以引入机器学习模型来分析玩家的猜测习惯,动态调整游戏难度和提示方式。

3. 多语言支持

利用生成式 AI,我们可以轻松地为游戏添加多语言支持,使其适应更广泛的玩家群体。

结束语

通过本文的示例,我们可以看到生成式 AI 编程助手在游戏开发中的应用潜力,它不仅可以帮助我们快速构建应用,还可以在开发过程中提供智能建议和优化方案。随着生成式 AI 技术的不断进步,我相信它能够更加深入地参与到应用开发中,从代码生成到智能测试,再到用户体验优化,生成式 AI 将成为开发者的得力助手。最后,希望大家通过本次的示例操作能够有所收获,并期待看到大家在未来的项目中使用这些工具!

Logo

分享最新、最前沿的AI大模型技术,吸纳国内前几批AI大模型开发者

更多推荐