### **#「构」向云端,构建者征文大赛#**
re:Invent 2023 带来的全新技术风向标。在本次大会期间,我们广下英雄帖,举行了「**构」向云端,构建者征文大赛**,邀请构建者们一同提笔畅想生成式 AI 与云碰撞的无限可能。本次赛事征集到了众多优秀分享,今天和大家一起分享其中一篇精选作品,让我们一起「构」向云端,感受技术的魅力!
*作者:法医*
### 前言
如果要给 2023 年写一篇年终总结的话,生成式 AI 一定是绕不过的一个话题。去年,各种生成式 AI 的产品络绎不绝地出现大众视线,版本迭代的速度也是非常快,大家甚至开始在自己的生活和工作中去尝试使用 AI 工具提升效率,我也认为 AI 可以帮助我们再一次提升人类的生产力,但现实的发展好像并没有想象中的那么美好。
目前出现的生成式 AI 的产品大多都是面向消费级的,对于企业来说并不适用。我们都知道,当前大模型的基础物料都是来自互联网上的公开资料,比如说论坛、出版物、百科等一些数据。对于企业内部而言,AI 其实是一窍不通的,它并不了解企业的文化,企业的各种业务流程,自然也就没有办法给到很好的回答。如果企业员工在内部使用这些消费级的应用,还可能牵扯到数据安全的问题。
在 re:Invent 2023 上,亚马逊云科技发布了 [Amazon Q](https://aws.amazon.com/cn/q/?nc1=h_ls?trk=cndc-detail),它是亚马逊云科技面向企业用户给出的解决方式,在构建这个生成式 AI 助手时严格考虑了安全和隐私。从外表上看,[Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) 的交互模式依然是“对话”,但是内部完全重构,更安全也更私密,可以根据企业本地业务给出回答,也可以根据不同员工设定不同等级的访问权限。
### 初次见面
首先在 vscode 中搜索“Amazon Toolkit”,直接安装就行,随后需要亚马逊云科技账户认证授权,没有账户可以注册,这块比较简单。
![image.png](https://dev-media.amazoncloud.cn/ae818e1b7c604a36b5af6bfdc4bcaab9_image.png "image.png")
授权完成后就是这样的界面:
![image.png](https://dev-media.amazoncloud.cn/f8824dc73cf8417ea1780eba007cd78c_image.png "image.png")
先跟它打个招呼吧!看它怎么回答:
![image.png](https://dev-media.amazoncloud.cn/635778faa56e486f819d054deef67bed_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/44d728f0dcb24aa99c5c14e6de390ef2_image.png "image.png")
### 写代码
#### 常见面试题——深度克隆
![image.png](https://dev-media.amazoncloud.cn/c4c53c6aa7ff430d99495f465ecdf8cc_image.png "image.png")
```js
function deepClone(obj) {
let clone = Object.assign({}, obj);
Object.keys(clone).forEach(
key => (clone[key] = typeof obj[key] === 'object' ? deepClone(obj[key]) : obj[key])
);
return clone;
}
```
不光可以生成代码,还会在后面补充对代码的解释以及举例,可以让开发者很清楚知道写的是什么、怎么去用。
#### 解释代码
我发了一段冒泡排序的方法,看看 [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) 是否可以解释:
```js
var examplearr = [8, 94, 15, 88, 55, 76, 21, 39];
function sortarr(arr) {
for (i = 0; i < arr.length - 1; i++) {
for (j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
sortarr(examplearr);
console.log(examplearr); // [8, 15, 21, 39, 55, 76, 88, 94]
```
![image.png](https://dev-media.amazoncloud.cn/d39183980d95484392d9775a0b1c029d_image.png "image.png")
它使用冒泡排序算法对名为 examplearr 的数组进行排序。sortarr 函数将数组作为参数。它有两个 for 循环-外循环迭代数组长度 -1 次,内循环每次迭代剩余未排序的部分。在内循环中,它使用 arr[j] > arr[j+1] 比较相邻元素。如果它们顺序不对,则使用临时变量交换它们。完成嵌套循环后,对数组进行了另一次遍历,将下一个最高值放入其正确的位置。这会一直持续到外循环结束,此时整个数组将从最低到最高排序。然后函数返回已排序的数组。打印它显示已排序的值。
从代码理解程度来看,还是挺不错的,大致说的没毛病。
### 当一次面试官
我向 [Amazon Q](https://aws.amazon.com/cn/q/?trk=cndc-detail) 发起一次面试请求,给我返回不少关于前端的面试问题:
![image.png](https://dev-media.amazoncloud.cn/4704d2fd23934f9285df82225e830959_image.png "image.png")
(本文经过后期编辑整理后发布)
### #欢迎观看更多精彩作品#
「构」向云端,构建者征文大赛现已评奖,欢迎大家扫描二维码或点击阅读原文,阅读更多精彩内容!
![image.png](https://dev-media.amazoncloud.cn/80cdc20e7a054afe91cdd6d8ceb45d83_image.png "image.png")
![开发者尾巴.gif](https://dev-media.amazoncloud.cn/69bdaed2a81e40439166fa73fef3ff06_%E5%BC%80%E5%8F%91%E8%80%85%E5%B0%BE%E5%B7%B4.gif "开发者尾巴.gif")