文心一言赋能问卷生成,打造高效问卷调研工具

这篇具有很好参考价值的文章主要介绍了文心一言赋能问卷生成,打造高效问卷调研工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文心一言赋能问卷生成,打造高效问卷调研工具,开发者说,文心一言,人工智能,飞桨,百度,paddlepaddle

当前,各种大语言模型(LLM,Large Language Model)井喷式发展,基于LLM的应用也不断涌现。但是,当开发者基于LLM开发下游应用时,LLM直接生成的结果在格式、内容等方面都存在许多不确定因素,难以与其他业务逻辑代码做数据交互,导致开发者需要多次生成并对输出结果做大量的规则判断处理工作,使得大模型原生应用的开发门槛抬高、难度加大。

为此,本文以问卷页面生成任务为例,手把手教大家控制ERNIE SDK输出JSON格式的生成结果并与前端交互,实现通过ERNIE SDK生成问卷网页的目的。通过本文,你将学习到:

  • 前后端交互的桥梁——JSON
  • 用LLM2Json控制文心大模型4.0的输出格式
  • 基于文心大模型的原生应用开发流程

JSON数据结构

本文任务的核心是生成交互数据,前后端的交互数据常用格式有JSON和XML。由于JSON格式结构简单,容易被各大常用开发语言解析和生成,因此目前绝大多数Web应用使用JSON格式进行交互。

JSON数据根据结构的复杂度可简单可分成两种,单层结构和多层嵌套结构。

单层结构

单层数据结构是类似于 {key1: value1, key2: value2, …} 这样只有一层键值对关系的结构,相对来说比较简单,生成可控度高,不容易出错。比如:

{
    "address": "北京市朝阳区XXX路XXX号",
    "date": "2023-06-25",
    "email": "zhangsan@example.com",
    "idcode": "110101199003077777",
    "name": "张三",
    "phone": "13800000000",
    "sex": "男"
}

多层嵌套结构

多层嵌套结构是比较复杂的数据结构,如例子所示,在address的第一层级下,嵌套了第二层级的city、area、road和detail字段。在真实业务场景中,数据结构体往往是多层嵌套,字段多,嵌套关系也比较复杂,因此该类数据结构体生成的难度比较大,容易出现一些纰漏导致数据解析不正确而报错。

{
    "address": {
        "city": "北京市",
        "area": "朝阳区",
        "road": "XXX路",
        "detail": "XXX号"
    },
    "date": "2023-06-25",
    "email": {
        "common": "zhangsan@example.com",
        "backup": "zhangsan@example1.com"
    },
    "idcode": "110101199003077777",
    "name": "张三",
    "phone": "13800000000",
    "sex": "男"
}

本文的问卷网页生成任务,本质上就是生成一个多层嵌套结构的数据,并与前端交互渲染形成可视化网页,下面开始给大家演示和解析代码。

动手开发

安装依赖

本项目需要主要依赖erniebot和llm2json两个包。ERNIE SDK用于调用文心一言的文本生成能力,目前支持ernie-3.5、ernie-turbo、ernie-4.0、ernie-longtext等多个版本等模型直接调用。LLM2Json是一个易于使用的格式化大语言模型输出工具包,它的主要设计思想和部分实现代码参考LangChain。它可以通过自动构建prompts引导大语言模型输出符合JSON语法的返回数据,解决了大语言模型格式化输出、数据交互、前端开发等遇到的数据格式相关问题,使下游的应用程序、GPTs、Agents等开发更加方便快捷。

pip install erniebot --upgrade
pip install llm2json

配置 ERNIE SDK

对ERNIE SDK进行简单的封装,以便后面代码快速调用。请注意将access_token换成你的aistudio账户对应的token,同时保证token余额充足。另外,本项目演示使用ernie-4.0版本,在测试环境中4.0版本的表现最优,开发者可根据自己的成本和推理速度需求更换为ernie-3.5、ernie-turbo等版本。

import erniebot

erniebot.api_type = "aistudio"
erniebot.access_token = "xxxxxxxxxxxxxxxxxxx"

def ernieChat(content):
    response = erniebot.ChatCompletion.create(model = "ernie-4.0",
        messages = [{
            "role": "user",
            "content": content
        }])
    return response.get_result()

定义数据结构

一份问卷的生成结构至少有两层。第一层是title(问卷标题)、description(问卷描述)和最核心的data(问题列表)结构体。第二层是对data嵌套数据的定义。在data下面有若干个问题和选项,并且问题类型有单选题、多选题、填空题,因此,这里需要针对问题定义一个新的对象Question,第一个键是types,用于确定问题类型,它是整数型的数据(1为单选,2为多选,3为填空);第二个是question,定义问题;第三个是choices问题对应的选项内容,数据类型是列表list。

from typing
import List
from llm2json.prompts.schema
import BaseModel, Field

class Question(BaseModel):
    types: int = Field(description = "问题类型,1为单选,2为多选,3为填空")
    question: str = Field(description = "问题内容")
    choices: List[str] = Field(description = "选项内容")

class WenJuan(BaseModel):
    title: str = Field(description = "问卷标题")
    description: str = Field(description = "问卷描述")
    data: List[Question] = Field(description = "问题列表")

定义正例

因为多层嵌套的数据结构体比较复杂,因此建议开发者最好给模型输入一个正确示例,让模型生成的输出结果更加完美和稳定。

correct_example = ''
' {
    "title": "问卷标题",
    "description": "问卷描述",
    "data": [{
            "types": 1,
            "question": "问题(单选)"
            "choices": ["选项1", "选项2", "选项3"]
        },
        {
            "types": 2,
            "question": "问题(多选)"
            "choices": ["选项1", "选项2", "选项3"]
        },
        {
            "types": 3,
            "question": "问题(填空)"
        },
    ]
}
''
'

定义Prompt任务模板

Prompt任务模版主要是告诉大语言模型需要生成的内容,以及定义用户输入变量。在本案例中,我们的目的是生成问卷,用户输入的变量是问卷的主题(topic)和问题的数量(num),并将3、4中定义好的数据结构和正例传入。

from llm2json.prompts import Templates

t = Templates(prompt="""
请你根据主题<{topic}>,设计一份问卷。
问卷描述需要简单说明该问卷调研的目的。
问卷题型需包含单选、多选和填空题,对应types分别为1、2、3。
如果题目类型为填空题,该题不需要返回choices字段。
出题题型顺序请随机生成。
题目总数为{num}道题。
""", 
field=WenJuan,
correct_example=correct_example)

测试生成

以文心一言用户反馈作为问卷的主题,生成一份包含10道题的问卷。

from llm2json.output import JSONParser
from pprint import pprint

# 将用户输入替换模型变量
template = t.invoke(topic="文心一言用户反馈", num="10")
# 将Prompt模版提交给ErnieBot
ernieResult = ernieChat(template)

# 解析生成结果
parser = JSONParser()
result = parser.to_dict(ernieResult)
pprint(result)

运行后,会得到如下图所示的数据:

文心一言赋能问卷生成,打造高效问卷调研工具,开发者说,文心一言,人工智能,飞桨,百度,paddlepaddle

前端绑定渲染

获得生成后的JSON格式数据,就可以与前端代码结合,解析数据结构体、绑定字段并渲染。前端的核心代码主要是对问卷类型的判断,然后根据问卷类型,也就是types的值匹配不同的表单组件。(此处只展示前端核心代码部分,完整前端代码请通过文章最后的项目链接获取)

<div class="choices">
<!--单选题-->
<div v-if="item.types==1">
<a-radio-group v-model:value="item.choices.keys">
<a-radio v-for="choice in item.choices" :value="choice">
{{ choice }}
</a-radio>
</a-radio-group>
</div>

<!--多选题-->
<div v-else-if="item.types==2">
<a-checkbox-group 
:options="item.choices" />
</div>

<!--填空题-->
<div v-else-if="item.types==3">
<a-input style="max-width:300px"/>
</div>
</div>

前端渲染结果:

文心一言赋能问卷生成,打造高效问卷调研工具,开发者说,文心一言,人工智能,飞桨,百度,paddlepaddle

快速体验

本项目以问卷网页生成任务为案例,为大家介绍了控制大语言模型格式化输出JSON多层嵌套结构数据并与前端字段绑定做数据交互的流程。通过利用JSON数据结构进行前后端的链接交互,开发者可以将大语言模型的能力轻松集成到现有OA、ERP和CRM等系统,快速赋能企业已有业务,实现办公智能化升级;或从零开始高效开发大模型原生应用,不再担心数据结构解析出错等灾难性问题,为用户提供更好的服务体验。文章来源地址https://www.toymoban.com/news/detail-851197.html

到了这里,关于文心一言赋能问卷生成,打造高效问卷调研工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GBASE首批接入中国版ChatGPT“文心一言“ 打造DB+AI全系服务

    3月 9日,GBASE南大通用宣布成为百度文心一言(英文名:ERNIE Bot)首批生态合作伙伴。后续, GBASE将通过百度智能云全面体验并集成“文心一言”的AI能力,聚焦DB+AI全栈技术及服务。 文心一言是基于百度智能云技术打造出来的大模型。百度在人工智能领域深耕十余年,拥有产

    2024年02月11日
    浏览(86)
  • 百度CTO王海峰:全栈AI技术加持,打造新一代大语言模型文心一言

    3月16日,百度在北京总部召开新闻发布会,百度创始人、董事长兼首席执行官李彦宏和百度首席技术官王海峰出席,李彦宏展示了新一代知识增强大语言模型文心一言在文学创作、商业文案创作、数理逻辑推算、中文理解、多模态生成五个使用场景中的综合能力,王海峰解读

    2024年02月09日
    浏览(66)
  • 文心一言:中文生成式对话产品

    【产品介绍】 名称         文心一言 上线/成立时间         2023年3月27日 具体描述        文心一言(英文名:ERNIE Bot)是百度全新一代知识增强大语言模型,文心大模型家族的新成员,能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和

    2024年02月08日
    浏览(36)
  • 纷享销客成为百度文心一言首批生态合作伙伴,共同打造数字营销全系产品/服务

    3月2日,纷享销客宣布成为百度文心一言(英文名:ERNIE Bot)首批生态合作伙伴。后续,纷享销客将通过百度智能云全面体验并接入文心一言的能力。 纷享销客作为国内领先的CRM云服务厂商,以连接型CRM为特色,通过连接业务,连接人,连接系统,实现以客户为中心,企业内

    2024年02月15日
    浏览(36)
  • 百度“文心一言”首批生态合作伙伴公布,Moka接入打造人力资源数字化人AI服务

    近日,百度“文心一言” ( 英文名:ERNIE Bot ) 公布 首批生态合作伙伴,企业级HR SaaS服务商Moka 位列其中 , 将优先体验并接入“文心一言”,以此打造更创新、更智能的人力资源数字化服务。 “文心一言”是百度基于文心大模型技术推出的生成式对话产品。百度在人工智

    2024年02月15日
    浏览(57)
  • 基于文心一言的PPT自动生成

    项目借鉴了autoppt, ppt两个项目。生成的PPT还没加入特效,有待改善,希望大佬们可以提出宝贵的建议。 注意,因为生成PPT时间较长,应用体验效果不是很好,总是出现错误,建议放到本地运行gradio页面。 视频讲解链接 (【基于文心一言的PPT自动生成上集】 https://www.bilibili.c

    2024年02月04日
    浏览(46)
  • 体验百度文心一言AI模型生成姚明简介

    姚明(Yao Ming),男,汉族,无党派人士,1980年9月12日出生于上海市徐汇区,祖籍江苏省苏州市吴江区震泽镇,前中国职业篮球运动员,司职中锋,现任亚洲篮球联合会主席、中国篮球协会主席、中职联公司董事长兼总经理,十三届全国青联副主席,改革先锋奖章获得者。第

    2024年01月16日
    浏览(59)
  • 使用chatGPT生成提示词,在文心一言生成装修概念图

    家是情感的港湾,而家居装修则是将情感融入空间的艺术。如何在有限的空间里展现个性与美感,成为了现代人关注的焦点。而今,随着人工智能的发展,我们发现了一个新的创意助手——ChatGPT,它不仅为我们带来了更多可能性,还能为家居装修提供独特的文心一言提示。

    2024年02月13日
    浏览(37)
  • 调查问卷平台:企业想做用户调研,怎么施行?

    用户调研是一种获取消费者需求和反馈的重要手段,可以帮助企业更好地了解自己的用户,从而优化产品设计和改善客户服务。那么,如何进行用户调研呢?下面将从几个方面介绍。 首先,需要明确调研目的,以确保调研的有效性。调研目的可以包括: 1、了解目标用户的需

    2024年02月12日
    浏览(36)
  • 体验文心一言AI大模型生成中国城市简介

    宿迁,江苏省省辖市,位于江苏省北部、地处长江三角洲地区,是长三角城市群成员城市,也是淮海经济圈、沿海经济带、沿江经济带的交叉辐射区。宿迁获评全国文明城市,荣获国家卫生城市、国家环保模范城市、国家园林城市、中国优秀旅游城市、全国双拥模范城市、全

    2024年02月10日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包