【Hackathon 5th】 单词摇摇乐 【摇摇乐】

1 应用详情
1.1 应用背景
随着全球化的加速和科技的发展,越来越多的人开始学习和使用英语。然而,传统的学习方式往往显得枯燥无味,缺乏趣味性,导致学习者难以持之以恒。为了解决这个问题,单词摇摇乐应用应运而生。它结合了游戏化的元素、大语言模型以及多模态大模型,让用户在轻松愉快的氛围中学习和使用英语,从而提高学习效率和学习兴趣。
1.2 应用介绍
单词摇摇乐是一款基于文心一言的英文单词猜测游戏。它通过有趣、互动的方式帮助用户提高英语词汇量和语言感知能力。游戏按轮次进行,每轮生成一个部分隐藏的英文单词,用户需要根据显示的字母和辅助信息猜测该单词。猜中后进入下一轮,单词长度逐渐增加,挑战不断升级。
1.3 关键技术
-
文心一言能力:Ernie Bot提供的文心一言能力为单词摇摇乐应用提供了强大的语言理解和生成能力。它能够分析用户输入的文本,理解用户的意图和需求,并给出相应的回应和建议。在游戏过程中,文心一言能力可以帮助判断用户的猜测是否正确,以及给出合适的辅助信息。
-
clip_interrogator:clip_interrogator是一种图像识别和问答技术,它可以识别图像中的对象并回答相关问题。在单词摇摇乐应用中,clip_interrogator可以帮助识别用户上传的图片,并提供与该图片相关的单词和解释。这为用户提供了更多的学习资源和互动方式,增强了游戏的趣味性和实用性。
总之,单词摇摇乐应用通过结合游戏化的元素和文心一言,为用户提供了一个有趣、互动的学习平台。它不仅可以提高用户的英语词汇量和语言感知能力,还可以增强用户的学习兴趣和学习效率。同时,通过不断升级和改进,单词摇摇乐应用有望成为更多人学习英语的首选工具。
2 快速开始
2.1 Ernie Bot SDK

本应用使用Ernie Bot SDK封装的文心一言能力,文心一言是百度基于文心大模型技术推出的生成式对话产品,具有以下能力:
-
语言理解能力:文心一言可以分析用户输入的文本,理解用户的意图和需求,从而给出相应的回应和建议。它可以识别文本中的关键词、短语和语法结构,以及识别用户的情感和语气。
-
语言生成能力:文心一言可以根据用户的输入和上下文,生成自然、流畅的文本回应。它可以生成各种类型的文本,如对话、文章、摘要等,并可以根据用户的需求进行定制和调整。
-
知识推理能力:文心一言可以利用其训练数据和算法,进行知识推理和逻辑推理。它可以根据已知的事实和规则,推断出未知的信息和结论,并给出相应的解释和支持。
-
多模态处理能力:文心一言可以处理多种模态的数据,如文本、图像、音频和视频等。它可以识别和分析这些不同模态的数据,并给出相应的回应和建议。例如,它可以识别图像中的对象并回答相关问题,或者分析音频中的语音并转换为文本。
2.2 环境安装
运行下面代码,进行项目环境的安装和配置:
!pip install -r requirements.txt --user
2.3 如何使用
使用ERNIE Bot SDK之前,请首先申请并设置鉴权参数。具体请参考认证鉴权。
2.3.1 Python接口
import erniebot
# List supported models
models = erniebot.Model.list()
print(models)
# ernie-bot 文心一言模型(ernie-bot)
# ernie-bot-turbo 文心一言模型(ernie-bot-turbo)
# ernie-bot-4 文心一言模型(ernie-bot-4)
# ernie-bot-8k 文心一言模型(ernie-bot-8k)
# ernie-text-embedding 文心百中语义模型
# ernie-vilg-v2 文心一格模型
# Set authentication params
erniebot.api_type = "aistudio"
erniebot.access_token = "<access-token-for-aistudio>"
# Create a chat completion
response = erniebot.ChatCompletion.create(model="ernie-bot", messages=[{"role": "user", "content": "你好,请介绍下你自己"}])
print(response.get_result())
2.3.2 命令行接口(CLI)
# List supported models
erniebot api model.list
# Set authentication params for chat_completion.create
export EB_API_TYPE="aistudio"
export EB_ACCESS_TOKEN="<access-token-for-aistudio>"
# Create a chat completion (using ernie-bot, ernie-bot-turbo, etc.)
erniebot api chat_completion.create --model ernie-bot --message user "请介绍下你自己"
# Set authentication params for image.create
export EB_API_TYPE="yinian"
export EB_ACCESS_TOKEN="<access-token-for-yinian>"
# Generate images via ERNIE-ViLG
erniebot api image.create --model ernie-vilg-v2 --prompt "画一只驴肉火烧" --height 1024 --width 1024 --image-num 1
2.3.3 典型示例-对话补全(Chat Completion)
ERNIE Bot SDK提供具备对话补全能力的ernie-bot、ernie-bot-turbo、ernie-bot-4、ernie-bot-8k等文心一言系列模型。
不同模型在效果、速度等方面各有千秋,大家可以根据实际场景的需求选择合适的模型。
以下是调用ernie-bot模型进行单轮对话的示例:
import erniebot as eb
# 创建单轮对话
eb.api_type = 'aistudio'
eb.access_token = "ebe9194da1106097f52ada09cb403b91546648ca"
prompt = f"""作为一个智能猜单词游戏,你负责按照如下规则带领用户进行猜单词游戏。你需要确定用户是否了解游戏规则。在不了解规则时,
你需要先向用户介绍规则。游戏规则如下:1.游戏按多轮次进行。2.每轮开始时生成一个英文单词,必须确保这是一个有效的单词。在告诉用户
该单词时,只显示部分字母,另一些字母中的每一个都用$代替。比如,move可以显示为m$v$,truck可以显示为t$u$$,tree可以显示为t$$e,
England显示为E$$$and。用$隐藏的字母数遵循如下规则:当总字母为奇数时,显示(n-1)/2个字母,当总字母数为偶数时,显示n/2个字母。
3.字母和符号以较大字体并粗体显示,比如字体大小为18px。4.用户猜中该单词,恭喜用户,并以emoji显示,并进入下一轮。5.游戏从3个字
母的单词开始,每过一轮,单词增加一个字母。比如第2轮,生成4个字母的单词,第3轮,5个字母的单词。6.每次用户没有猜中单词时,除了
告诉用户猜测结果,还列出可以使用的辅助手段:多显示一个字母。给予提示,比如给出该单词的词性《名词、动词,副词、形容词等),或者
该单词的描述信息。给出的提示需要保证不会对答案有过干明确的指向性。"""
def generate(prompt):
chat_completion = eb.ChatCompletion.create(
model='ernie-bot-4',
messages=[{'role': 'user', 'content':prompt}],
)
return chat_completion.result
generate(prompt)
输出:‘欢迎来到智能猜单词游戏!首先,我要向你介绍游戏的规则。请仔细阅读,并确保你理解了每个步骤。如果有任何疑问,可以随时向我询问。\n\n游戏规则:\n\n1. 游戏按多轮次进行。\n2. 每轮开始时,系统会生成一个有效的英文单词。这个单词的部分字母会被隐藏,用"$"符号代替。隐藏的字母数量遵循一定的规则:当总字母数为奇数时,显示(n-1)/2个字母;当总字母数为偶数时,显示n/2个字母。\n3. 字母和符号会以较大字体(如18px)并粗体显示。\n4. 如果你猜中了该单词,系统会向你表示祝贺,并显示一个emoji。然后,游戏将进入下一轮。\n5. 游戏从3个字母的单词开始,每过一轮,单词的长度增加一个字母。例如,第2轮会是4个字母的单词,第3轮会是5个字母的单词,以此类推。\n6. 每次你没有猜中单词时,除了告诉你猜测结果,系统还会提供一些辅助手段来帮助你。你可以选择多显示一个字母,或者获取关于该单词的词性(如名词、动词、副词、形容词等)或描述信息。这些提示旨在帮助你缩小答案范围,但不会过于明确地指向正确答案。\n\n现在,你已经了解了游戏的规则。如果你还有任何问题或需要进一步的解释,请随时告诉我。当你准备好开始游戏时,只需告诉我,我们就可以开始了!’
2.3.4 典型示例-文生图(Image Generation)
ERNIE Bot SDK提供具备文生图能力的ernie-vilg-v2大模型。
该模型具备丰富的风格与强大的中文理解能力,支持生成多种尺寸的图片。
AI 作画,基于文心大模型,根据用户输入的文本,自动创作图片。AI 作画-高级版涉及2个接口,分别为:提交请求、查询结果。
-
提交请求:支持传入文本、分辨率、数量、参考图等参数,创建 AI 作画任务,获得任务ID。
-
查询结果:用于在任务创建后,查看图片生成状态。待图片生成完毕,通过查询接口即可查看生成图片的地址链接。
-
并发概念:并发数指 AI 作画高级版服务同时能处理的请求数量。上一个任务执行完,拿到结果后,并发才结束。
-
若您对于 prompt 输入有疑问,请参考 “AI作画-高级版使用指南” 。
-
并发数:付费使用后AI作画-高级版图片生成处理过程并发提升为2
- 获取Access Token
通过API Key和Secret Key获取的access_token,参考“Access Token获取”
- POST 方式调用
| 参数 | 是否必选 | 类型 | 描述 |
|---|---|---|---|
| prompt | 是 | string | 生图的文本描述。仅支持中文、日常标点符号。不支持英文,特殊符号,限制 200 字 |
| width | 是 | integer | 图片宽度,支持:512x512、640x360、360x640、1024x1024、1280x720、720x1280、2048x2048、2560x1440、1440x2560 |
| height | 是 | integer | 图片高度,支持:512x512、640x360、360x640、1024x1024、1280x720、720x1280、2048x2048、2560x1440、1440x2560 |
| image_num | 否 | number | 生成图片数量,默认一张,支持生成 1-8 张 |
| image | 否 | string | 参考图,需 base64 编码,大小不超过 10M,最短边至少 15px,最长边最大 8192px,支持jpg/jpeg/png/bmp 格式。优先级:image > url > pdf_file,当image 字段存在时,url、pdf_file 字段失效 |
| url | 否 | string | 参考图完整 url,url 长度不超过 1024 字节,url 对应的图片需 base64 编码,大小不超过 10M,最短边至少 15px,最长边最大8192px,支持 jpg/jpeg/png/bmp 格式。优先级:image > url > pdf_file,当image 字段存在时,url 字段失效请注意关闭 URL 防盗链 |
| pdf_file | 否 | string | 参考图 PDF 文件,base64 编码,大小不超过10M,最短边至少 15px,最长边最大 8192px 。优先级:image > url > pdf_file,当image 字段存在时,url、pdf_file 字段失效 |
| pdf_file_num | 否 | string | 需要识别的 PDF 文件的对应页码,当pdf_file 参数有效时,识别传入页码的对应页面内容,若不传入,则默认识别第 1 页 |
| change_degree | 否 | integer | 参考图影响因子,支持 1-10 内;数值越大参考图影响越大 |
# 获取Access Token
import requests
import json
def main():
url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=NZnB7AzVn9Wls7xHypvS7awO&client_secret=39agUaGm0fp4qwCYNrK5Uiw6fPQMC95v"
payload = ""
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
if __name__ == '__main__':
main()
# POST 方式调用
import erniebot
erniebot.api_type = "yinian"
erniebot.access_token = "24.d311c558615a181ebd75090adccd5969.2592000.1704099017.282335-44171052"
response = erniebot.Image.create(
model="ernie-vilg-v2",
prompt="雨后的桃花,8k,辛烷值渲染",
width=512,
height=512
)
print(response)
输出示例:
| 夜晚的星空下的古老城堡,8k,辛烷值渲染 | 雨后的桃花,8k,辛烷值渲染 |
|---|---|
![]() | ![]() |
2.4 你画我猜——CLIP Interrogator
clip_interrogator是一种图像识别和问答技术,它可以识别图像中的对象并回答相关问题。在单词摇摇乐应用中,clip_interrogator可以帮助识别用户上传的图片,并提供与该图片相关的单词和解释。这为用户提供了更多的学习资源和互动方式,增强了游戏的趣味性和实用性。

from PIL import Image
from clip_interrogator import Config, Interrogator
import erniebot as eb
# 创建单轮对话
eb.api_type = 'aistudio'
eb.access_token = "ebe9194da1106097f52ada09cb403b91546648ca"
ci = Interrogator(Config(clip_pretrained_model_name_or_path="openai/clip-vit-large-patch14"))
def get_keyword(image_path):
image = Image.open(image_path).convert('RGB')
result = ci.interrogate_fast(image)
prompt = f"""提取{result}中一个长度大于3的英语单词,将这个单词作为猜词的词汇,
作为一个智能猜单词游戏,你负责按照如下规则带领用户进行猜单词游戏。你需要确定用户是否了解游戏规则。在不了解规则时,
你需要先向用户介绍规则。游戏规则如下:1.游戏按多轮次进行。2.将上述抽取的单词作为被猜词汇。在告诉用户该单词时,
只显示部分字母,另一些字母中的每一个都用$代替。比如,move可以显示为m$v$,truck可以显示为t$u$$,tree可以显示为t$$e,
England显示为E$$$and。用$隐藏的字母数遵循如下规则:当总字母为奇数时,显示(n-1)/2个字母,当总字母数为偶数时,显示n/2个字母。
3.字母和符号以较大字体并粗体显示,比如字体大小为18px。4.用户猜中该单词,恭喜用户,并以emoji显示,并进入下一轮。
5.游戏从3个字母的单词开始,每过一轮,单词增加一个字母。比如第2轮,生成4个字母的单词,第3轮,5个字母的单词。
6.每次用户没有猜中单词时,除了告诉用户猜测结果,还列出可以使用的辅助手段:多显示一个字母。
给予提示,比如给出该单词的词性《名词、动词,副词、形容词等),或者该单词的描述信息。
给出的提示需要保证不会对答案有过干明确的指向性。需在回答中显示部分未隐藏的单词的字母,隐藏的用$代替。"""
chat_completion = eb.ChatCompletion.create(
model='ernie-bot-4',
messages=[{'role': 'user', 'content':prompt}],
)
return chat_completion.result
image_path = 'example.jpg'
get_keyword(image_path)
输出示例:‘好的,让我们开始猜单词游戏吧!\n\n首先,让我们确定你了解游戏规则。游戏规则如下:\n\n1. 游戏按多轮次进行。\n2. 将上述抽取的单词作为被猜词汇。在告诉用户该单词时,只显示部分字母,另一些字母中的每一个都用 代替。用 代替。用 代替。用隐藏的字母数遵循如下规则:当总字母为奇数时,显示(n-1)/2个字母,当总字母数为偶数时,显示n/2个字母。\n3. 字母和符号以较大字体并粗体显示,比如字体大小为18px。\n4. 用户猜中该单词,恭喜用户,并以emoji显示,并进入下一轮。\n5. 游戏从3个字母的单词开始,每过一轮,单词增加一个字母。\n6. 每次用户没有猜中单词时,除了告诉用户猜测结果,还列出可以使用的辅助手段:多显示一个字母、给予提示(比如给出该单词的词性或者该单词的描述信息)。给出的提示需要保证不会对答案有过干明确的指向性。\n\n现在让我们开始第一轮游戏吧!\n\n被猜词汇是:a winter scene with a snowman in the words happy new year written in chinese, 千 葉 雄 大, with ai theme, cute humanoid robot, strong artificial intelligence, artificial intelligence machine, river flowing beside the robot, website banner, friendly humanoid robot, official screenshot, home page screenshot, cold tone gradient background, female robot\n\n根据规则,我们需要从中提取一个长度大于3的英语单词作为被猜词汇。让我们看看哪个单词符合条件。\n\n我找到了一个8个字母的单词:“artificial”。现在我们开始猜这个词吧!\n\n根据规则,我会显示4个字母。所以,“artificial” 显示为 “art f f f$l”。\n\n你可以开始猜了!如果你需要辅助手段,请告诉我。’
3 特别推荐
对教程、比赛和应用进行推荐,如果大家对项目感兴趣,不妨一起讨论,并给予你宝贵的❤️。
3.1 教程推荐
第3课 AI图像生成开发教程之文心一言遇见Stable Diffusion
3.2 比赛推荐
飞桨 x 文心大模型 x Founder Park AGI Hackathon 大模型黑客松
PaddlePaddle Hackathon 5th 大模型应用与创意赛·星河社区五周年
3.3 应用推荐
文心一言情感关怀之旅:文心一言情感关怀之旅项目致力于为用户创造一个充满温暖故事和场景的体验平台。该项目应用了先进的模型和框架,如 Blip、Clip、Ernie Bot SDK提供的文心一言能力和百度智能云语音合成功能,通过不断地技术创新和用户体验优化,项目通过情感支持和温暖护理,为用户提供个性化、富有情感的故事体验,满足用户的情感需求。加之项目的稳定性和可靠性,该项目有望在情感支持和温暖护理领域发挥重要作用,为用户的情感健康和幸福感做出贡献。
【Hackathon 5th】一站式求职小助理:一站式求职小助理调用Ernie Bot SDK中的文心一言能力,实现了求职助理ChatBot、职业发展规划、简历生成、简历匹配和面试问题推荐功能,可以很好的为求职者提供便利,提高求职的针对性和成功率。
4 项目总结
4.1 应用特色
-
游戏化设计:通过隐藏部分字母和设置不同轮次的挑战,使得猜测单词变得更具趣味性和挑战性。用户在猜词过程中不仅可以锻炼英语词汇,还可以增强思维敏锐度和联想能力。
-
文心一言:应用使用了文心一言和多模态大模型,可以根据用户的猜测和反馈调整单词的难度和显示字母的数量,从而为用户提供个性化的学习体验。
-
辅助手段:当用户猜测错误时,应用提供了多种辅助手段,如多显示一个字母、给出单词的词性或描述信息等,以帮助用户更接近正确答案。
-
持续更新:将不断改进算法并增加新功能,以满足用户不断变化的学习需求。
4.2 应用效果
-
提高词汇量:通过不断猜测和接触新单词,用户的词汇量将得到有效提升。
-
增强语感:应用中涉及的单词和语境有助于用户更好地理解和运用英语,从而增强语感。
-
培养兴趣:有趣的游戏设计和互动体验有助于培养用户对英语学习的兴趣和热情。
-
提升自信:随着在游戏中的进步和成就,用户的自信心将得到提升,从而更积极地参与英语学习。
4.3 改进建议
-
增加社交功能:考虑引入社交元素,如好友对战、排行榜等,以增强应用的互动性和粘性。
-
拓展词库:持续更新和拓展词库,以覆盖更广泛的词汇和领域。
-
优化用户体验:根据用户反馈不断优化界面设计、交互逻辑等方面,提升用户体验。
-
引入更多辅助功能:可以考虑增加发音示范、例句展示等功能,以丰富用户的学习资源和途径。
4.4 总结与展望
单词摇摇乐应用通过独特的游戏化设计使用文心一言,成功地将传统的英语词汇学习转化为一种有趣且富有挑战性的体验。用户在享受游戏乐趣的同时,有效提高了英语词汇量和语言感知能力。展望未来,我们期待通过持续改进和创新,将单词摇摇乐打造成一款更受欢迎、更具影响力的英语学习工具。如果大家对项目感兴趣,不妨一起讨论,并给予你宝贵的建议和喜爱❤️。
请点击此处查看本环境基本用法.
Please click here for more detailed instructions.
单词摇摇乐是一款基于文心一言的英文单词游戏,结合游戏化元素和AI技术,帮助用户在互动中提高英语词汇量和语言感知能力。应用利用Ernie Bot SDK的文心一言能力进行语言理解和生成,同时借助clip_interrogator进行图像识别和问答,增强学习趣味性。用户通过猜测部分隐藏的单词,逐步挑战,学习过程更加高效和有趣。


6万+

被折叠的 条评论
为什么被折叠?



