首页 >>  正文

await的作用

来源:baiyundou.net   日期:2024-09-21

【CSDN 编者按】将生成人工智能添加到 SaaS 产品中很容易,只需要用不到 30 分钟就可以将 AI 添加到产品中。此外,编写好的提示是获得最佳结果的秘诀。

原文链接:https://www.indiehackers.com/post/how-to-add-ai-to-your-existing-saas-product-and-give-your-customers-superpowers-fa6536d54f

未经允许,禁止转载!

作者 | Kyle Gawley 译者 | 弯月 责编 | 王子彧

出品 | CSDN(ID:CSDNnews)

除非你不上网,否则相信你也目睹了近期来人工智能产品的爆炸式增长,以及个人开发者前仆后继的淘金热,多少人盼望着通过人工智能产品成为时代的幸运儿。

虽然人工智能技术发展已经很多年了,但以前仅限于机器学习专家领域,个人开发者是不容易接触到的。然而,2022 年 OpenAI 和 Stable Diffusion 改变了游戏规则,如今每个人都可以生成文本和图像。

机遇

在个人开发者构建的 AI 产品中,最有名的是 Pieter Levels,他构建的 photoai.com 可以合成数字照片。

这样的产品既有趣又能吸引人,但通过 AI 的 UI 产品取得成功的例子并不多。我曾尝试过 aigraphics.io,但以失败告终。

对于个人开发者来说,更大的机遇在于使用 AI 来增强现有产品和解决方案,而不是寻找前沿创意。

Simon Høiberg 将生成文本的 AI 添加到了他的社交媒体调度产品 Feedhive 中,以帮助用户为社交媒体生成内容创意。

另一位个人开发者 Randall Kanna 正在构建 CodeTutor,这款产品使用 AI 来教人们如何利用 AI 的力量编程。Randall 是我的客户之一,CodeTutor 是使用我的 SaaS 初学者工具包构建的。

人工智能技术看起来非常高大上,但我可以告诉你一个秘密:将生成人工智能添加到 SaaS 产品中很容易。在本文中,我将向你展示如何只用不到 30 分钟就可以将 AI 添加到产品中。

为什么在产品中添加生成式 AI?

将 AI 添加到 SaaS 产品的主要目的是为客户提供超能力。上面,我们已经介绍了两个例子,以下是你可以通过 AI 赋予客户的更多超能力:

●自动执行重复且无聊的工作,提高工作效率。

●提供个性化的体验和建议。

●提高数据分析的准确性,并提供更深层次的见解。

●预测未来趋势、模式和行为。

●提高决策速度。

以及其他无尽的可能性!

如何使用 ChatGPT 生成文本?

为不熟悉 ChatGPT 的人简单介绍一下,这是 OpenAI 的一款产品,用于使用 AI 生成文本响应。我们只需提供一个提示(一个命令或指令),然后它就可以返回一些文本。

以下教程是用 JavaScript 编写的,但同样的原则也适用于其他语言。OpenAI 有各种编程语言的 SDK,API 调用也一样。

具体步骤如下:

1.创建 OpenAI 账号。

2.获取 OpenAI 密钥。

3.将 API 密钥存储在安全的地方,我将密钥放入了 .env 文件。

4.安装 OpenAI SDK

npm i openai

5.使用以下代码,通过提示向 ChatGPT API 发送请求:

const { Configuration, OpenAIApi } = require('openai');const config = new Configuration({ apiKey: process.env.OPENAI_API_KEY });const openai = new OpenAIApi(config);async function askChatGPT({ prompt }){const res = await openai.createChatCompletion({model: 'gpt-3.5-turbo',messages: [{ role: 'user', content: prompt }]});return res.data?.choices?.[0].message?.content;}askChatGPT({ prompt: 'Give me a list of the 10 best cafes in Bangkok, Thailand' });

这段代码的作用是要求 OpenAI 生成一个新的聊天请求,我们指定了 ChatGPT 模型(gpt-3.5-turbo),这是目前最流行且使用最广泛的 OpenAI 模型。

下面,我们将角色设置为用户,并传入我们的提示。

接下来,我们需要等待几秒钟,然后 ChatGPT 会给出响应,我们可以通过 res.data.choices[0].messages.content 获取输出文本:

如何使用 Dall-E 添加生成图像?

Dall-E 是 OpenAI 的另一款产品,可根据提示生成图像。我们可以使用它来创建任意图像。

同样,我们需要 OpenAI 账号和 API 密钥。代码的改动并不多:

async function askDallE({ prompt, size, number }){const res = await openai.createImage({prompt: prompt,size: size,n: number});return res.data?.data;}askDallE({ prompt: 'A photo of a kitten drinking coffee', size: '512x512', number: 1 })

与 ChatGPT 类似,我们需要传入一个提示,但这次需要多加几个参数:size 和 n。

size(大小)是图像的尺寸,在这个例子中,我们要求 Dall-E 生成一张 512x512px 的图像。

n 是我们想要生成的图像数量,在这个例子中,我们只要求生成一张图像。

非常简单吧?你可以使用上述两段代码来执行许多 AI 任务。另外,编写好的提示是获得最佳结果的秘诀。

","gnid":"9a9f857127f1322ef","img_data":[{"flag":2,"img":[{"desc":"","height":"80","s_url":"https://p0.ssl.img.360kuai.com/t013d73ffee4a20366b_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t013d73ffee4a20366b.gif","width":"640"},{"desc":"","height":"378","title":"","url":"https://p0.ssl.img.360kuai.com/t015d19574a3614b37e.jpg","width":"657"},{"desc":"","height":"663","title":"","url":"https://p0.ssl.img.360kuai.com/t019577cd6033efecf6.jpg","width":"663"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"hbase","pub_time":1683855314000,"pure":"","rawurl":"http://zm.news.so.com/a607e91380e827e794cef5463042843c","redirect":0,"rptid":"60432acfdfe2872f","rss_ext":[],"s":"t","src":"CSDN","tag":[{"clk":"ktechnology_1:choi","k":"choi","u":""}],"title":"不到 30 分钟,即可实现将 AI 添加到现有的 SaaS 产品中

沃党方4134wait for 和await for有啥区别? -
萧榕贡19511386370 ______ wait for await 一般用作及物动词

沃党方4134Java多线程中await和wait的区别 -
萧榕贡19511386370 ______ 调用await/wait的时候却释放了其获取的锁并阻塞等待.await/wait,它会一直阻塞在条件队列之上,之后某个线程调用对应的notify/signal方法,才会使得await/wait的线程回到就绪状态,也是不一定立即执行.await/wait方法必须放在同步块里面,否

沃党方4134c语言中“!”的作用 -
萧榕贡19511386370 ______ c语言中的转义字符:\a 响铃符 通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单撇号('),用于表示字符串常量的双撇号(")和反斜杠(\)等. 实例: 通过puts可以输出字符串,例如...

沃党方4134C# ( ) =>作用 -
萧榕贡19511386370 ______ C# 4.5中引入了async 和 await.这两个关键字可以让你更方便的写出异步代码. async (items) => { },这应该是匿名方法,我写了个类似的代码,可以参考一下,提供些思路: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ...

沃党方4134我等你的(消息)..英语怎么说? -
萧榕贡19511386370 ______ 我等你的(消息)的英文:I await your call. await 读法 英 [əˈweɪt] 美 [əˈweɪt] v.等候;等待;期待;将发生在,将降临到(某人头上) 短语: 1、await one's friend 等待朋友 2、await one's plane 候机 3、await this day 期待着这一天 扩...

沃党方4134Await 啥意识!
萧榕贡19511386370 ______ Await翻译成中文是等候的意思

沃党方4134await是什么意思 -
萧榕贡19511386370 ______ await [ə'weit] vt. 等候,等待;期待 eg:We await your command. 我们等待你的口令. 【希望帮助到你,若有疑问,可以追问~~~ 祝你学习进步,更上一层楼!(*^__^*)】

沃党方4134两个单词,wait和await 有什么区别
萧榕贡19511386370 ______ wait是不及物动词,后面必须有介词for连接名词,而await是及物动词,后面不用介词,直接接名词. 如I wait for you.=I await you.

沃党方4134c#中使用async/await,用await得到结果和.Result获得的结果有啥不同,各使用场景是什么,求解啊 -
萧榕贡19511386370 ______ 得到的没有不同,但是 .Result 在某种情况下会造成死锁.await 时是释放线程,线程能去执行其它任务;.Result 就是让线程暂停,等待结果.

沃党方4134c#中为什么async方法里必须还要有await -
萧榕贡19511386370 ______ 首先一个被标记为async的方法,可以没有await调用,只不过会有编译警告.这是很显然的,不是说你把一个方法标记成async这个方法就成了异步调用的方法了.async这个关键词其实反而是可以省略的,这个关键词存在的意义是为了向下兼容,为await提供上下文而已.所以,一个async的方法里面没有await的调用,那等于是脱了裤子放屁,本质上只是把return xxx改成了retrurn Task.FromResult( xxx )而已,没有任何变化.如果一个方法加上了async他就自动成为了异步的调用,说明你连最根本的异步是什么都没搞清楚.你所理解的那种所谓的异步,直接用Task.Run就可以了.

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024