首页 > 其他分享 >基于 Streamlit 工具开发的创意故事生成器

基于 Streamlit 工具开发的创意故事生成器

时间:2024-10-22 12:48:36浏览次数:3  
标签:story 故事 生成器 st 随机 Streamlit 生成 创意 模板

<iframe allowfullscreen="allowfullscreen" frameborder="no" height="500px" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" scrolling="no" src="https://inscode.csdn.net/@Astron/Streamlit/embed" width="100%"></iframe>

以下是对上面运行代码的详细说明:

主要构建了一个基于 streamlit 库的创意故事生成器应用程序。

首先,引入了 streamlit 库。然后,使用 st.markdown 函数设置了一个居中的标题 创意故事生成器 。

接下来,定义了一个名为 validate_input 的函数,用于检查输入字符串是否每行都不为空。

接着,定义了一些通用的列表 CHARACTERSSCENES 和 EVENTS,这些可能是用于故事生成的各种元素。

然后,定义了一个包含各种故事模板的字典 story_templates 。

generate_random_value 函数用于从给定的可能值列表中随机选择一个值。

generate_story 函数是核心的故事生成函数。它首先随机选择一个与所选风格对应的故事模板,然后通过正则表达式找出模板中的占位符。对于不在参数中的占位符,如果不是特定的 'character''scene' 或 'event' ,就随机生成一个值进行填充。最后,使用 format 方法将选择的角色、场景、事件和生成的随机值填充到模板中生成故事。

定义了一个包含多种故事风格的元组 story_styles 。

通过 st.columns 创建了两列用于页面布局。

在左边列中,使用 st.selectbox 分别创建了选择故事风格、角色、场景和事件的下拉框,使用 st.number_input 创建了输入要生成故事数量的输入框,并通过一个按钮触发故事生成的操作。当点击按钮时,会根据选择的内容生成指定数量的故事,并将其存储在 st.session_state 中,同时将当前页面状态设置为 'story_page' 。

在右边列中,如果 st.session_state 中存在生成的故事并且当前页面状态为 'story_page' ,则将生成的故事逐个显示出来。

总的来说,这段代码通过用户的选择和随机生成的元素,组合生成不同风格的故事,并以简洁直观的页面布局展示给用户,为用户提供了一个有趣且具有一定创意的故事生成体验。但可能需要注意的是,对于故事模板的丰富性、随机生成的多样性以及异常情况的处理等方面,还有进一步优化和完善的空间。比如可以增加更多不同类型和风格的故事模板,使生成的故事更加丰富多样;在随机生成元素时,可以考虑设置一些限制条件,以避免生成不符合逻辑或不合理的内容;对于可能出现的输入错误或异常情况,如用户输入不符合要求的数据、随机选择函数无法获取有效值等,需要添加更完善的错误处理机制,以提高程序的稳定性和用户体验。

标签:story,故事,生成器,st,随机,Streamlit,生成,创意,模板
From: https://blog.csdn.net/qq_31426349/article/details/143134700

相关文章

  • 自动执行generator生成器函数
    自动执行generator函数◼目前我们的写法有两个问题:第一,我们不能确定到底需要调用几层的Promise关系;第二,如果还有其他需要这样执行的函数,我们应该如何操作呢?◼所以,我们可以封装一个工具函数execGenerator自动执行生成器函数<script>//封装一个请求方法......
  • mongodb 查询条件,查询逻辑对照表,逻辑运算符,正则表达式匹配查询,排序,分页/巧分页,更新操
    mongodb查询条件,查询逻辑对照表,逻辑运算符,正则表达式匹配查询,排序,分页/巧分页,更新操作符,更新单个/多个文档,删除文档,批量插入,$type操作符,内嵌文档和数组查找修改1.条件查询SQLMQLa=1{a:1}a<>1{a:{$ne:1}}a>1{a:{$gt:1}}a>=1{a:{$gte:1}}a<1{a:{$lt......
  • Generator(生成器)
    ◼生成器是ES6中新增的一种函数控制、使用的方案,它可以让我们更加灵活的控制函数什么时候继续执行、暂停执行等。平时我们会编写很多的函数,这些函数终止的条件通常是返回值或者发生了异常。◼生成器函数也是一个函数,但是和普通的函数有一些区别:首先,生成器函数需要在f......
  • P11211 随机数生成器 题解
    前置知识:原根,exCRT。首先\(t=1\)是容易的,直接相邻的除一下即可。否则考虑询问除连续的\(5\)个数,分别为\(a_0,a_1,\cdots,a_4\)。首先特判掉存在\(a_i=0\)的情况,此时直接枚举\(s\)即可。我们先求出\(p\)的一个原根\(g\),设离散对数\(\log(x)=y\)表示\(g^y\equiv......
  • 可迭代对象、迭代器、生成器
    可迭代对象如果实现了__iter__方法,就认为对象是可迭代的.使用内置的iter函数可以获取迭代器的对象.检查对象x是否为迭代器,最好的方式是调用isinstance(x,abc.Iterator)序列都是可迭代的迭代器(Iterator):迭代器是一个对象,它实现了iter()和next()两个基本方法。ite......
  • 10.18Python基础迭代器生成器_函数式编程
    Python迭代器与生成器1.迭代器Iterator什么是迭代器迭代器是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器可以重复使用,而不会像列表那样在迭代时被修改。迭代器函数iter和next函数说明iter(iterable)从可迭代对象中返回一个迭代器,iterabl......
  • 【PS2024】编辑修改、图像制作、广告创意等 PS软件下载安装Adobe Photoshop
    目录一、软件简介1.1AdobePhotoshop概述1.2版本历史1.3系统要求二、下载与安装2.1下载方式2.2安装步骤三、功能介绍3.1基本图像编辑功能3.2高级图像处理功能3.3设计与排版功能四、操作指南4.1界面布局4.2常用快捷键4.3操作技巧一、软件简介1.1......
  • AIGC时代的语音笔记工具,创意人士的福音
    国庆期间,我发现了一款特别好用的语音笔记工具,它应该算是AIGC时代的新一代笔记工具了。这个工具,是那些随时会有创意想法要记录,或者经常需要做会议纪要,读书笔记的人福音。它有几个功能让我特别喜欢。第一个是语音笔记功能,这个不像科大讯飞的语音输入法,它不仅仅是简单地将语音转成文......
  • java代码生成器(controller,service,mapper)
    packagecom.cn.codeGenerator;importjava.awt.*;importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importjava.sql.*;importjava.util.ArrayList;importjava.util.List;publicclassCodeGenerator{privatestaticfinalStri......
  • 18.Python基础篇-迭代器、生成器
    函数进阶-迭代器 双下方法:很少直接调用,一般情况下,都是通过其他语法触发的(Python解释器调用的方法)可迭代协议 与迭代器协议可迭代的iterable与迭代器iter可迭代协议:含有__iter__方法的都是可迭代的。可迭代的,一定可以被for循环。只要含有__iter__()方法能被for循环。......