小小白、重构小白播放故事流程图
2017-02-21 16:54:50 0 举报
首先,小小白和重构小白开始播放故事。他们先从故事的开头开始,逐步展开情节。在故事进行的过程中,他们会适时地加入音效和配乐,以增强故事的氛围。当故事接近高潮时,他们会提高语速和音量,使观众更加紧张和兴奋。然后,他们会在高潮部分达到顶点,让观众感受到强烈的情感冲击。最后,他们会慢慢地降低语速和音量,将故事带入尾声。在整个过程中,他们会根据故事的内容和观众的反应,灵活调整播放的节奏和方式。
作者其他创作
大纲/内容
是否是系统端传递过来的指令(在手机app上相关播放故事操作)
根据专辑id及默认集数0,查询es数据库story+_es.StoryEs.search_chapter()
下一集故事story_start.next_chapter
feedback是“故事点播,继续播放”、“故事点播,推荐故事”
更新状态数据story.story_start.updata_state()
机器端操作下一首story_start.system_next()
按章节点播故事(无故事名,如仅仅说‘播放第三集’)story_start.choice_chapter
按用户点播的集数搜索story_es.StoryEs.search_chapter()
同义词词典文件:data/story/aliases_dict.txt自定义切词词典:data/story/story_userdict.txt词性词典:data/story/story_map_data.json
获取故事专辑idm.current_state.property['album_property'][STORY_ALBUM_ID_FIELD]获取当前集数m.current_state.property['album_property'][CHAPTER_FIELD]
对输入的文本进行切词,再根据映射字典,定位到查询字段story_participle.ParseOrder.generator_field2()
上一集故事story_start.pre_chapter
肯定回答,接受推荐
解析语音指令流程
根据查询的集数信息,更新状态story.updata_state()
集数加1,查询下一集story_es.StoryEs.search_chapter()
读取上文数据
下一个故事
读取上文数据read_statemachine
获取当前播放的集数m.current_state.property['album_property'][CHAPTER_FIELD]
其他的命令
准备放到es搜索story_es.StoryEs.search_text()
根据上文章节数,获取下一集故事story_start.next_chapter()
对应配置文件是:./data/story/es_story_albumid.json
对指令进行处理story_start.run_story()
根据解析的结果,结合状态数据(m)合成结构化数据story_start.parse()
对分词组合按分数进行排序sort_arrangement
不需要进行搜索等操作m.current_state即为需要继续播放或推荐的故事
在产品定义的故事表中随机一个专辑,即获取专辑id
程序入口story.story_start.main()
解析app相关指令流程story.stort_start.system_state
集数加1查询下一集story_es.StoryEs.search_chapter()
下一首命令
开始播放故事story_start.start_story
生成搜索用的查询语句story_participle.ParseOrder.order_to_body
其他正则表达式未匹配到的,但又有播放动词get_mid()
根据故事专辑id及集数,在es数据库中搜索特别需要注意的是,故事数据很不干净,有好多故事集数有丢失,常会有人反应怎么一开始就播放第五集,或者怎么第一集播放完了不播放第二集而是直接跳到第三集了;这个时候,首先应该去查es数据库,看看对应的原始数据是不是就有问题。
是
m:读取的上文状态数据,是一个python的类m.current_state:当前的状态(每播放一个故事专辑即为一个状态)m.current_state.property:当前故事专辑对应的属性m.current_state.property['album_property']:当前故事专辑的详细信息,即从es故事表中查询的结果CHAPTER_FIELD:es数据库中表示集数的字段
否定回答,不接受推荐
访问故事服务器/WhiteII/skill_server/storyBag.py
生成一个Generators_State类,并添加到m中,
将切词获取的隐射,转换为es数据库查询语句ParseOrder.generator_body()
每一个故事专辑(播放西游记,西游记即为一个专辑,‘孙悟空大闹天宫’及为故事名,‘第三集’即为集数;只要没有换其他专辑,故事状态是不会改变的,切换集数时改变的只会是属性内‘album_property'对应的值)为一个状态;当前播放故事(专辑)对应的属性信息m.current_state.property['album_property']
m.states_list:播放的状态记录列表若故事专辑在m.states_list中,则把对应的故事专辑对应的状态信息更新为当前状态(m.current_state);若故事专辑不在m.states_list中,则根据专辑属性信息,生成一个Generators_State,并将Generators_State添加到m中,并把当前状态(m.current_state)重置为新生成的Generators_State类。当然,下一集时,仅仅只需要更新当前播放专辑的集数即可:m.current_state.stateTable['current_chapter']=chapter
结束
根据词性对切词结果进行组合ParseOrder.product()
集数减1查询上一集story_es.StoryEs.search_chapter()
开始播放(推送有故事id)
根据故事id,查询数据库补全故事名等信息story_es.StoryEs.search_mid()
否
将生成的查询语句放到数据库搜索StoryEs.search_body()
将状态数据写入数据库write_statemachine
0 条评论
回复 删除
下一页