人工智能 - 使用OpenAI GPT的故事编写器(会员,难度:2)
-
介绍
在这个教程中,你将会使用OpenAI开发的GPT-3模型来创建一个故事编写程序。
它将会允许用户指定题目,并根据那个题目来生成一个故事。

步骤 1 - 创建一个新程序
请在创益编程的编程环境中创建一个新程序。接着你可以移除带有小狗角色的“角色1”,因为我们只需要使用“空白1”角色。
并且,请添加“控件”扩展。
步骤 2 - 添加一个标签、一个文本框以及一个按钮
接下来,请添加三个控件:
- 一个写上“编写故事,关于:”的标签,名为"label1"
- 一个文本框,名为"textbox1"
- 一个写上“开始”的按钮,名为"button1"
不需要在这个时候担心他们的位置或者大小。我们接下来会另外设置它们。
这里是如何快速添加三个控件的方法:
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/654b8676-a868-4c88-8892-56fcf0f37d7b.gif" width="1000" style="border-radius: 5px; border: 1px solid #29622d;">
步骤 3 - 把三个小控件置放在同一行
接下来,我们将会应用一个“布局行”以便可以快速地把三个控件置放在舞台的顶部。
这个步骤的基本概念就是把舞台顶部的15%当成一行,并且把这一行水平地分成三个”格子“。这三个格子将分别占据这一行宽度的35%,50%以及15%。
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/a4f11367-7702-434d-b0bd-db4b202fac43.png" width="700" style="border-radius: 5px; border: 1px solid #29622d;">
这是你需要添加的编程积木:

新的一行将会被命名为"R1"。它包含了三个格子,宽度分别为整行的35%,45%以及20%,并在这三个格子内分别放入名为”label1“、”textbox1“以及”button1“的控件。
10个单元的边距将会给我们在行与舞台边界之间留下一个细小的边框。5个单元的填充将会在三个控件之间留下一些位置。
这是它们被排列好的位置:

步骤 4 - 添加另一个文本框
现在我们需要添加另外一个文本框控件,用以展示GPT-3模型编写的故事。请把新的文本框命名为”textbox2“,并确保他支持多行。同样地,你不需要担心它的位置或者大小,因为我们接下来会使用另一个”布局行“来对它进行设置。
这是需要被添加的新编程积木:

步骤 5 - 把第二个文本框放置到新的一行
现在我们可以定义一个新的布局行,里面只有一个格子。接着,我们就可以很简单地让新的文本框填满整个格子:
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/941cf7e5-ddb8-4a2e-8638-cdec159765e4.png" width="520" style="border-radius: 5px; border: 1px solid #29622d;">
这是用来添加名为”R2“行的新编程积木,并把它的宽度的100%分配给”textbox2“。
步骤 6 - 使用ChatGPT模型来生成故事
当用户点击”开始“按钮,我们将会使用ChatGPT模型来生成一个故事。
要生成我们的需求,我们需要把两个短句结合在一起:一个固定的短句“写一个200字的故事,主题:” 以及用户输入的话题。这里是需要用到的编程积木:

要把这个请求发送给ChatGPT模型,我们可以使用接下来的这个积木。注意,这里的“故事”是一个新的变量,用于保存生成的故事内容:

要展示ChatGPT写的故事,我们需要把textbox2的内容设置为“故事”变量:
最后,我们应该只在用户点击“开始”按钮时开始生成故事。所以,这里是完整的答案:
现在,每当我们点击“开始”按钮时,我们会得到一个新的故事:
创意点子
这个教程已经展示怎么使用控件来创建一个简单的程序,并且如何使用GPT-3模型来生产新的内容。这里有一些你可以进一步探索的点子:
-
其他种类的内容: 除了故事以外,你也可以使用GPT-3来写其他种类的内容,比如笑话,诗歌或者歌曲。
-
美化控件: 你可以设置控件的文字和背景来让他看起来更有吸引力,比如这样:
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/a4a8f8b6-5533-463a-803e-d2748a3a7843.png" width="520" style="margin-left: 40px; border-radius: 5px; border: 1px solid #29622d;">
-
I CreatiCode pinned this topic on
-
I CreatiCode deleted this topic on
-
I CreatiCode restored this topic on
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login