2024年Datawhale AI冬令营第二期之童话故事家(熊出没版)

Hello大家好,今天是小铃铛限时回归!!

说实话第二期没太好好参加。。。但是也做出了一个有点意思的demo,欢迎大家来玩

本次运用的是支付宝百宝箱专业版,唯一的问题就是不能二次开发,因此不能集成到我之前的应用中。

玩转百宝箱专业版

参考链接:Datawhale-学用 AI,从此开始

亲手制作自己的Agent

对话型Agent

参考上一篇博客,我们来通过角色与指令定制模型

# CONTEXT #
你是一个研究孩童心理学的教育家,你精通英语词汇与中文词汇,你善于寓教于乐并善于创作小故事,因此你认为将一定的知识包含在故事中,将为儿童带来良好的引导。与此同时,儿童也将有可能向你提出根据中文短语或英语词汇生成故事的需求,你需要灵活的将这些词汇嵌入在你自己创造的童话故事里。

# OBJECTIVE #
你需要对聊天内容做出积极回应,故事情节丰富,富有童真和生命力;故事有一定的教育意义;当用户要求包含英文单词时,请适度教儿童英语

# STYLE #
哄睡风格,陪伴角色

# TONE #
可爱幽默

# AUDIENCE #
我面向的用户是儿童和渴望回归童年的成年人

# RESPONSE #
自然引导:你不会直接教授英语,而是通过与幼儿的日常对话,敏锐捕捉语言学习的时机,巧妙引导他们使用英语表达
情感感染:你拥有积极、乐观、快乐的性格,通过充满情感的语言和活泼的文字,吸引幼儿注意力,让他们喜欢与你互动
循序渐进:你的工作步骤是先吸引幼儿,建立友谊,再通过陪伴与互动,逐步引导他们使用英语对话,最终提升他们的英语表达能力
在教学中,你可以视机会使用以下教学方法:
Total Physical Response(TPR)
Montessori Method
Phnoics Method
Languagae Immersion Method

定制开场白:你好呀!我是你的睡前小精灵,专门来讲温馨有趣的童话故事,带你进入甜美的梦乡。

出于哄睡目的的音色控制:

工作流型Agent

第一次体验工作流,也对Java里面的流式处理数据有了更清晰的认知

输入:场景(必填),季节,额外要求(如学习成语、诗歌、英文词语等)

意图识别:学习中文、学习英文、简单放松

Python脚本:集合场景、季节、故事主人公、额外要求生成param,并传给夸克

import requests
import random
import re

def extract_quoted_string(text):
    # 使用正则表达式匹配单引号包裹的内容
    match = re.search(r"'(.*?)'", text)
    if match:
        # 返回匹配的第一个组(即括号中的内容)
        return match.group(1)
    else:
        return None  # 如果没有匹配的内容,则返回None

def generate_story(params):
    # 季节
    season = params.get('param_season', '')
    # 时间
    scene = params.get('param_scene', '')
    # 额外要求
    extra = params.get('param_extra', '')
    extra_detailed = params.get('param_extra_detailed', '')
    
    # 主人公
    roles = ["熊大", "熊二", "光头强", "蹦蹦", "吉吉", "毛毛", "涂涂", "萝卜头", "肥波"]
    main_character = random.choice(roles)
    other_characters = ','.join([r for r in roles if r != main_character])  # 排除主角

    story = ""
    if not season:  # 如果 season 为空,则不包含季节信息
        story = f"以{main_character}为主人公,可选{other_characters}为配角,故事场景为{scene}讲一个故事"
    else:
        story = f"在{season},以{main_character}为主人公,可选{other_characters}为配角,故事场景为{scene}讲一个故事"

    if extra == "学习中文词汇":
        target_word = extract_quoted_string(extra_detailed)
        story += f",注意{extra_detailed}自然表达,不要像剧本一样呈现,使用'{target_word}''"
    elif extra == "学习英文词汇":
        target_word = extract_quoted_string(extra_detailed)
        # english_example = params.get('param_english', '')
        story += f",注意用'{target_word}'造句,输出简单的英文故事"
    else:
        story += ",语气轻松诙谐幽默"

    return story, main_character

def main(params: dict, context: dict) -> dict:
    """
    生成一个故事概述。

    @param params: dict - 代码节点入参配置
    @param context: dict - 可通过context.get('alipayContext')拿到上下文对象,其中包含 requestId、traceId 等信息
    @return: dict - 包含故事概述的字典
    """
    if not isinstance(params, dict):
        raise ValueError("参数 params 必须是字典类型")

    story, main_character = generate_story(params)
    result = {"story":story, "main_character":main_character}
    return story

夸克:搜索主人公相关内容

文本大模型(通义千问):根据夸克的输出和提示词输出故事

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值