## 前言
亚马逊云科技- Q ,可以快速获得紧迫问题的相关答案,解决问题,生成内容。当与 Q 聊天时,它会提供[即时的](https://so.csdn.net/so/search?q=%E5%8D%B3%E6%97%B6%E7%9A%84&spm=1001.2101.3001.7020?trk=cndc-detail)相关信息和建议,以帮助简化任务、加快决策速度,并帮助激发工作中的创造力和创新。本次我们通过完整的项目开发全方面体验一下 Q 的实用性,体验在代码开发中是否真正做到解放生产力助力开发。
**结合 Q 开发的粉笔脚本演示图:**
![1.png](https://dev-media.amazoncloud.cn/8c49de39b9094c90b5a04413e32bc323_1.png "1.png")
### 1 登录账户
#### []()[]()1.1 登录及注册
打开下面的登录页进行登录,如果没有账号可以根据流程进行注册\
<https://portal.aws.amazon.com/billing/signup?trk=cndc-detail>
![2.png](https://dev-media.amazoncloud.cn/59d7cc5d16e340f58b061b04b8293bab_2.png "2.png")
![3.png](https://dev-media.amazoncloud.cn/d0c381c6667b43e296e1cc9c394deb6d_3.png "3.png")
#### 1.2 打开控制台主页
登录完成后,打开控制台主页链接:<https://us-east-1.console.aws.amazon.com/console/home?region=us-east-1#?trk=cndc-detail>
![4.png](https://dev-media.amazoncloud.cn/03efa7413cd746bfbd772e1e337acdcf_4.png "4.png")
找到【亚马逊 Q 】,点击进去到对应页面
![5.png](https://dev-media.amazoncloud.cn/47fb2d5cb31a4abcb25ac5cbbd83401d_5.png "5.png")
### 2 创建部署 Web 版- Q
`提示:【2023.12.06】这里存在问题,并没有相应的权限,没办法继续往下,后续可以则会补充,本文只是按照博主的操作流程来,请根据需要选择性浏览`
#### []()[]()2.1 创建应用
点击 `Get started` 前往应用创建页面
![6.png](https://dev-media.amazoncloud.cn/44882f651d2f4c0aa15e2d0267284bf3_6.png "6.png")
这个时候发现没有对应的权限,我们需要去角色中将对应的策略附加给当前账户
![7.png](https://dev-media.amazoncloud.cn/4ad3f9a271fb48ba90c0e2d172429432_7.png "7.png")
![8.png](https://dev-media.amazoncloud.cn/d4f3ebea46c7428681e3975f3db04f70_8.png "8.png")
### 3 附加策略
在左上角服务中,找到【 IAM 】(该步骤下面创建用户也需要用,方法一样不做赘述)
![9.png](https://dev-media.amazoncloud.cn/d37fc2d866f047cabd01d23d88a8d405_9.png "9.png")
在左侧导航栏中,选择【角色】
![10.png](https://dev-media.amazoncloud.cn/2b00fea9df4d46ed85ae1967b5a246fe_10.png "10.png")
在搜索框中搜索`team`,点击角色名称进入
![11.png](https://dev-media.amazoncloud.cn/9b8ee40710664d4ea30abf76f88925a0_11.png "11.png")
选择`附加策略`
![12.png](https://dev-media.amazoncloud.cn/2f14846cc5ed487e8c468db9c48d70f8_12.png "12.png")
勾选以下权限:
![13.png](https://dev-media.amazoncloud.cn/68c8710bec5645a1983513838b7cd8af_13.png "13.png,14.png")
![14.png](https://dev-media.amazoncloud.cn/33625e6bdb1a481f85b15af3bcb46c3a_14.png "14.png")
#### 3.1 创建用户及应用
添加权限以后,就可以来这里创建应用了
![15.png](https://dev-media.amazoncloud.cn/c870993ae1b44edbbd24e04441c3405f_15.png "15.png")
创建用户显示失败,估计是账户问题,`目前等待反馈中`
![16.png](https://dev-media.amazoncloud.cn/899e376f91f441dcace4d3491ffb4356_16.png "16.png")
### 4 获取 IAM 访问密钥
> 目前通过 WEB 体验 Q 是不可能了,所以我们现在可以通过 Vscode 插件来进行体验,这一步,主要是为了下方的插件提供密钥
打开[【IAM】](https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/home?trk=cndc-detail)中的用户我们发现,默认用户拒绝访问(可能是测试号的问题,新账号应该没有用户)
![17.png](https://dev-media.amazoncloud.cn/2de4cd213848463988b3de61698ea733_17.png "17.png")
手动创建一个用户:damowang(如下图)
![18.png](https://dev-media.amazoncloud.cn/569d1d9bb2794243b9742114d8a25539_18.png "18.png")
创建成功,现在继续往下,给他附加权限
![19.png](https://dev-media.amazoncloud.cn/b57e186fcdb4488ab1ea6a1a61880f67_19.png "19.png")
权限参照上方`附加权限`最好给【 Administrator 】权限,完成创建
![20.png](https://dev-media.amazoncloud.cn/26c0e54bda364e569cb41b00beff1650_20.png "20.png")
权限参照上方`附加权限`最好给【 Administrator 】权限,完成创建
![21.png](https://dev-media.amazoncloud.cn/69267d56b5f847528a6dfddd4f380173_21.png "21.png")
![22.png](https://dev-media.amazoncloud.cn/7a468a1c044e497aa310284556007547_22.png "22.png")
保存后获得`Access Key`和`Secret Key`
![23.png](https://dev-media.amazoncloud.cn/23fa9af215214e3bb06f01e3a72d1ca2_23.png "23.png")
### 5 配置 Vscode-Q 插件
在 Vscode 中下载 Q 插件
![24.png](https://dev-media.amazoncloud.cn/df5bff5e563f43d99cef13262752dc53_24.png "24.png")
#### 5.1 权限配置
##### []()[]()5.1.1 配置 Q + CodeWhisperer
![25.png](https://dev-media.amazoncloud.cn/01ee6e25925f44edb3b8dc4dbfe04413_25.png "25.png")
通过 Builder ID 进行登录身份验证
![26.png](https://dev-media.amazoncloud.cn/1f0abf5e994b4531a0dc6d1e31cdab2f_26.png "26.png")
弹出提示框,选择`open`,这时会跳出默认浏览器打开进行权限验证
![27.png](https://dev-media.amazoncloud.cn/db781f3d699f4c57bdb9790d36e06642_27.png "27.png")
![28.png](https://dev-media.amazoncloud.cn/93bb59f9cfde46d7bad2aadc71f5473e_28.png "28.png")
创建开发者 ID 账户,填入你的邮箱地址,直到注册成功(`如果有账号选择登录即可`)
![29.png](https://dev-media.amazoncloud.cn/82054385f9704f8d914fdd6b149f0644_29.png "29.png")
注册成功后,他会重定向页面授权,如果没有请重新按步骤来,点击允许授权
![30.png](https://dev-media.amazoncloud.cn/15b32c9861704e6ab2ae9ca6309ccfc1_30.png "30.png")
授权成功后,我们可以返回 Vscode 去了
![31.png](https://dev-media.amazoncloud.cn/4678cd8e7387411c8e92f9483b6c4121_31.png "31.png")
`返回Vscode后验证通过`配置完成
![32.png](https://dev-media.amazoncloud.cn/ec9512e20c114e64b2f29dd3ea7d71f8_32.png "32.png")
#### 5.1.2 配置 Explorer
选择中间第二个模块,展开选项填入 Access Key 、 Secret Key ,分别填入刚刚创建的密钥
![33.png](https://dev-media.amazoncloud.cn/c403ff8b864a4b2092ccc1a2eb4ee5e5_33.png "33.png")
保存配置成功
![34.png](https://dev-media.amazoncloud.cn/bebfab96a0cf45c89def09f11c141647_34.png "34.png")
##### 5.1.3 Amazon CodeCatalyst
与第一步骤一样,打开进行授权即可
![35.png](https://dev-media.amazoncloud.cn/a7132cb429bf42289e148ce7157ebf76_35.png "35.png")
#### 5.2 与 Q 完成对话体验
这里分为三个部分
![36.png](https://dev-media.amazoncloud.cn/bd86dc92dc834768b0d312c6d503a98d_36.png "36.png")
点击第一个部分的【 switch to Q chat 】,就可以开始和他对话了
![37.png](https://dev-media.amazoncloud.cn/5cbf3dd414984ed9b7dab98a4eb45c40_37.png "37.png")
##### 5.2.1 测试表达能力
```
Q1:你是谁?你会中文吗?
```
![38.png](https://dev-media.amazoncloud.cn/11563f5558814104941d9d9101ceec43_38.png "38.png")
##### 5.2.2 代码理解编写能力
```
Q2:请写一个冒泡排序用python
```
![39.png](https://dev-media.amazoncloud.cn/b651b39f29044bd898af674d704e2b46_39.png "39.png")
##### 5.2.3 代码修复能力
```
url ="https://sxbaapp.zcj.jyt.henan.gov.cn/api/getApitoken.ashx"
response = requests.get(url)
print(response.text)
```
报错信息:Traceback (most recent call last):
File “C:\Users\MAC\Desktop\zxjy\demo.py”, line 2, in
response = requests.get(url)
NameError: name ‘requests’ is not defined
![40.png](https://dev-media.amazoncloud.cn/5ada8fd5125b43b09275b4da535f4462_40.png "40.png")
### 6 本地访问
#### 6.1 Windows 安装 Amazon CLI
下载并运行适用于 Windows(64 位)的 Amazon CLI MSI 安装程序:
https://awscli.amazonaws.com/AWSCLIV2.msi?trk=cndc-detail
Alternatively, you can run the msiexec command to run the MSI installer.
或者,您可以运行该 msiexec 命令来运行 MSI 安装程序。
![41.png](https://dev-media.amazoncloud.cn/0e43a74f27b4460d82806458beb66fc9_41.png "41.png")
![42.png](https://dev-media.amazoncloud.cn/e0972073910f46c9a719e8ce0f32fd81_42.png "42.png")
### 7 [项目开发](https://so.csdn.net/so/search?q=%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91\\&spm=1001.2101.3001.7020?trk=cndc-detail)
#### []()[]()7.1 新建 GUI 视图
在 VB6 里面新建一个视图,通过插件将视图转换为 TK 代码,不清楚 tk 、打包的同学,这里可以参考之前的文章[《 Python tkinter 快速可视化开发 GUI 界面指南:详细教程(附带工具)》](https://taila.blog.csdn.net/article/details/123788316?trk=cndc-detail)
![43.png](https://dev-media.amazoncloud.cn/3dcbd7a9c66c4f94ab40ebb7a347c046_43.png "43.png")
#### 7.2 代码转换
通过插件我们可以快速将视图转换为 TK 代码
![44.png](https://dev-media.amazoncloud.cn/b95868faa6b74e6da82a676a893d7773_44.png "44.png")
插件的使用步骤很简单,三步即可完成
![45.png](https://dev-media.amazoncloud.cn/3bf4751a3a2f4fa09f067f5e5ee6aeb9_45.png "45.png")
#### 7.3 获取文本框数据
接下来我们通过视图层,让 Q 结合为我们写一个获取视图层 Text1Var 的数据值的方法
> self.Text1Var = StringVar(value=‘********’)
> self.Text1 = Entry(self.top, textvariable=self.Text1Var, font=(‘宋体’,9))
> self.Text1.place(relx=0.568, rely=0.018, relwidth=0.243, relheight=0.055)
> 我想通过python获取到Text1Var的数据
Q 的回答
```
current_value = self.Text1Var.get()
print(current_value)
```
![46.png](https://dev-media.amazoncloud.cn/438605b784da4b5ab3adbf5f8ba16619_46.png "46.png")
#### 7.4 设置多线程
在脚本中涉及到挂机自动化的操作,于是我们需要通过线程来进行处理,避免脚本出现卡顿的情况
> self.style.configure(‘TCommand7.TButton’, font=(‘宋体’,9))
> self.Command7 = Button(self.Frame3, text=‘一键挂机’, command=self.Command7_Cmd, style=‘TCommand7.TButton’)
> self.Command7.place(relx=0.646, rely=0.79, relwidth=0.3, relheight=0.176)
> 将这个代码点击调用的Command7_Cmd方法写成多线程的形式
Q 的回答
通过实践,在进行函数触发后,自动分配创建一个线程来进行调用,对此我们可以再加一个开关,可以关闭结束进程循环执行
```
from threading import Thread
def Command7_Cmd():
thread = Thread(target=long_running_task)
thread.start()
def long_running_task():
# put button click logic here
print("Performing task in background...")
```
![47.png](https://dev-media.amazoncloud.cn/4e943516e6a64365852f6c0980053ce6_47.png "47.png")
通过获取文本框的数值,再通过 request 接口请求模拟,Q 可以帮助我们免去测试,节约了很多时间,加速了开发进度,由于后面的按钮部分都是线程和数据获取,核心功能就是 Q 给的线程,其他操作都是一样的,只需要替换成不同的接口即可,其他部分代码就不做演示了
### 8 使用心得感受
#### 8.1 优缺点
![屏幕截图 2023-12-26 011503.png](https://dev-media.amazoncloud.cn/5cbf90dba4544a27894fda0ba28fb814_%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-12-26%20011503.png "屏幕截图 2023-12-26 011503.png")
#### 8.2 对亚马逊云科技- Q 的理解和见解
亚马逊云计算与人工智能的结合在当今科技领域具有重要意义,对未来云端技术发展趋势有深远的影响。为人工智能提供了强大的基础设施支持,通过提供灵活的计算资源、存储和数据库服务,使开发者能够更轻松地构建、训练和部署 AI 模型。
*针对Q而言,希望能在处理复杂问题、语言识别、代码逻辑处理、优化算法和加密等方面发挥关键作用再升级,为人工智能领域带来新的突破。在实际使用过程中,由于语言的限制,以及 Q 功能的一些原因,体验没有超出我的预期*。亚马逊云计算与人工智能的结合将在未来继续推动科技创新,为各行业提供更强大、高效的解决方案。