应用千帆SDK【Prompt】预制模板实现英语出题应用
大模型开发/技术交流
- 有奖征文
- Prompt
- 大模型推理
2024.07.261334看过
应用千帆SDK的【Prompt】预制模板来实现英语出题应用是一个涉及到大模型推理和Prompt优化的过程。以下是根据当前信息,对如何应用千帆SDK及其Prompt预制模板来实现英语出题应用的一个概括:
一、了解千帆SDK和Prompt预制模板
1.千帆SDK简介
百度智能云千帆SDK是一套专为开发者设计的大模型开发工具链,旨在让开发者能够更便捷地访问和使用千帆大模型平台的各种能力。SDK提供了大模型推理、大模型训练以及AI开发工具和框架等核心能力,使得开发者能够通过代码完成数据处理、模型训练、推理优化等一整套流程。
2.Prompt预制模板的作用
Prompt(提示词)是通过自然语言向大模型提出命令或指令,指示大模型生成相应的内容。优质的Prompt能够显著提高模型的针对性和准确度,从而生成更符合预期的内容。千帆大模型平台提供了丰富的Prompt预制模板,这些模板覆盖了多个场景,包括对话、编程、写作等,其中也包括与英语学习相关的模板。

二、实现英语出题应用的步骤
1.选择合适的Prompt预制模板
首先,你需要在千帆大模型平台的Prompt预制模板库中选择与英语出题相关的模板。这些模板可能包括生成英语阅读理解题、完形填空题、选择题等多种题型。
选择【英语考题设计】模板

1.1prompt模板内容如下:
#你是一位资深的英语老师,现在需要你出一套单词填空题型的试卷,需要按照以下要求执行:
1.根据<单词>来出题,一共出10道题目,每道题目一个选填单词。选填单词需要根据<单词>来做【词性转换】,保证大部分[标准答案]都需要对{单词}做词性转换
2. 词性转换需要覆盖时态语态、主谓一致、动词不定式、过去分词、现在分词、名词化、副词化、形容词化等。确保每类题目最少出现一次
3. 难度要略高于【参考试题】,生成的题目不能和【参考试题】类似
4. 生成单词填空题后,需要给出【标准答案】,【标准答案】中要注明词性转换的结果
5. 根据生成的【试题】和【标准答案】逐步思考,输出对应的[试题解析]内容,输出内容尽量简洁明了
##参考以下试卷出题形式,按同样格式输出
【参考试题】 :
{questions}
【标准答案】:
{answers}
【试题解析】:
{analysis}
###按以下单词来出题
<单词>:{words}
【试题】:`XXX`
【标准答案】:`XXX`
【试题解析】:`XXX`
变量:questions,answers,analysis,words
1.2 输出内容
【试题】:
The company is striving to ________ its new software with existing systems to streamline operations.
The number of social media platforms continues to ________ as technology advances.
After the conflict, efforts were made to ________ the relationship between the two nations.
The teacher used visual aids to ________ the complex scientific concept for the students.
The ancient fortress had been ________ over the centuries to withstand repeated attacks.
The artist used bright colors to ________ the otherwise drab landscape in her painting.
The explorer used a compass to ________ the treacherous waters of the Arctic Ocean.
He sat in silence, deep in thought, as he ________ the pros and cons of his decision.
The city is cultural scene has ________ in recent years, offering a wide range of events and activities.
The scientist is research helped to ________ the theory that the Earth revolves around the Sun.
【标准答案】:
integrate (转换为动词原形: integrate -> integrating)
proliferate (转换为现在进行时: proliferate -> proliferating)
harmonize (转换为动词原形: harmonize -> harmonizing)
simplify (转换为动词原形: simplify -> simplify)
fortify (转换为过去完成时: fortify -> fortified)
embellish (转换为动词原形: embellish -> embellishing)
navigate (转换为动词原形: navigate -> navigating)
contemplate (转换为过去进行时: contemplate -> contemplating)
diversify (转换为现在完成时: diversify -> diversified)
solidify (转换为动词原形: solidify -> solidify)
【试题解析】:
integrate:原单词“integrate”是动词,意为“整合”。在这个句子中,它用于描述公司正在努力将其新软件与现有系统进行整合,以简化操作。因此,使用了动词原形“integrating”来表示正在进行的动作。
proliferate:原单词“proliferate”是动词,意为“增殖,扩散”。句子中使用了现在进行时“proliferating”来表示社交媒体平台的数量随着技术的进步而不断增加。
harmonize:原单词“harmonize”是动词,意为“使和谐”。在这个句子中,它用于描述在冲突后,两国之间的关系得到了和谐。因此,使用了动词原形“harmonizing”来表示正在进行的努力。
simplify:原单词“simplify”是动词,意为“简化”。句子中老师使用视觉辅助工具来简化复杂的科学概念,以便学生理解。因此,保持了动词原形“simplify”。
fortify:原单词“fortify”是动词,意为“加固”。句子中使用了过去完成时“fortified”来表示这座古老的堡垒在过去的几个世纪里已经被加固过多次,以抵御反复的攻击。
embellish:原单词“embellish”是动词,意为“装饰,润色”。在这个句子中,艺术家使用鲜艳的色彩来润色原本单调的风景画。因此,使用了动词原形“embellishing”来表示正在进行的动作。
navigate:原单词“navigate”是动词,意为“导航”。句子中探险家使用指南针来导航北极洋的险恶水域。因此,保持了动词原形“navigating”。
contemplate:原单词“contemplate”是动词,意为“深思”。在这个句子中,他静静地坐着,陷入沉思,权衡他的决定的利弊。因此,使用了过去进行时“contemplating”来表示正在进行的思考过程。
diversify:原单词“diversify”是动词,意为“使多样化”。句子中使用了现在完成时“diversified”来表示近年来该城市的文化场景已经多样化,提供了广泛的活动和娱乐项目。
solidify:原单词“solidify”是动词,意为“使坚固,证实”。科学家的研究帮助证实了地球围绕太阳旋转的理论。因此,保持了动词原形“solidify”来表示这一动作的结果。注意:原答案中的“solidified”应更正为“solidify”,因为这里需要的是动词原形来描述研究的作用,而不是过去分词形式。
看起来不错,直接应用。
2.使用千帆SDK进行推理和优化
利用千帆SDK,你可以将定制好的Prompt模板输入到大模型中,并获取生成的英语题目。同时,你还可以利用SDK提供的推理优化能力,对生成的题目进行进一步的筛选和调整,以确保题目的质量和准确性。
import osimport qianfanfrom qianfan import ChatCompletionos.environ["QIANFAN_ACCESS_KEY"] = "你的key"os.environ["QIANFAN_SECRET_KEY"] = "你的secretkey"from qianfan.common import Promptfrom qianfan.common.hub import hubp = hub.load("prompt/英语考题设计")prompt, _ = p.render(questions="The company is striving to ________ its new software with existing systems to streamline operations." , answers="integrate (转换为动词原形: integrate -> integrating)" , analysis="""integrate:原单词“integrate”是动词,意为“整合”。在这个句子中,它用于描述公司正在努力将其新软件与现有系统进行整合,以简化操作。因此,使用了动词原形“integrating”来表示正在进行的动作。proliferate:原单词“proliferate”是动词,意为“增殖,扩散”。句子中使用了现在进行时“proliferating”来表示社交媒体平台的数量随着技术的进步而不断增加。""" , words="eat")print(prompt)print(50 * "")print(p.template)print(50 * "")print(p.variables)print(50 * "*")r = qianfan.Completion(model="ERNIE-4.0-8K-Latest").do(prompt)print(r['result'])
如上所示
-
1.首先进行前悬
-
2.加载Prompt模板
-
3.绑定参数
-
4.生成prompt
-
5.执行Prompt得到试题
如下图所示,生成prompt模板

执行prompt,得到结果如下:


三、集成到我得应用
最后,将生成的英语题目集成到你的应用中。
1.代码
import gradio as grimport osimport qianfanfrom qianfan.common.hub import hubdef process_input(text):os.environ["QIANFAN_ACCESS_KEY"] = "keykeykey"os.environ["QIANFAN_SECRET_KEY"] = "keykeykey"p = hub.load("prompt/英语考题设计")prompt, _ = p.render(questions="The company is striving to ________ its new software with existing systems to streamline operations." \, answers="integrate (转换为动词原形: integrate -> integrating)" \, analysis="""integrate:原单词“integrate”是动词,意为“整合”。在这个句子中,它用于描述公司正在努力将其新软件与现有系统进行整合,以简化操作。因此,使用了动词原形“integrating”来表示正在进行的动作。proliferate:原单词“proliferate”是动词,意为“增殖,扩散”。句子中使用了现在进行时“proliferating”来表示社交媒体平台的数量随着技术的进步而不断增加。""" \, words=f"{text}")r = qianfan.Completion(model="ERNIE-4.0-8K-Latest").do(prompt)print(type(r['result']))print(len(r['result']))print(r['result'])return f"你输入的文本是: {r['result']}"# 创建Gradio界面with gr.Blocks() as demo:with gr.Row():gr.Markdown("## **英语出题系统**") # 第一行标题with gr.Row():text_input = gr.Textbox(label="单词输入") # 第二行输入with gr.Row():result = gr.Textbox(label="题目输出", value="") # 第四行输出文本框with gr.Row():submit_button = gr.Button("确认")clear_button = gr.Button("清除")# 为按钮添加事件处理(这里简化处理,仅返回提示)submit_button.click(process_input, [text_input], outputs=[result])submit_button.click(process_input, [text_input], outputs=[result])clear_button.click(lambda _: (None, None), inputs=clear_button, outputs=[text_input, result])# 将'result'变量与输出文本框关联起来,用于显示处理结果# demo.capture(result, "result")# 启动Gradio应用demo.launch(server_name="0.0.0.0", server_port=8080) # 你可以修改端口号
2.结果

四、注意事项
切记
安装直接源码安装,目前pip包不是最新的,如果pip安装,很多api找不到。
评论
