基于文心一言【ERNIE Bot SDK】的文本纠错

一、基于【ERNIE Bot SDK】的文本纠错

1.ERNIE Bot SDK介绍

简要说明在AI Studio上安装、配置和使用ERNIE Bot SDK github.com/PaddlePaddl...

ERNIE Bot SDK是文心&飞桨官方提供的Python软件开发工具包,简称EB SDK。

EB SDK提供便捷易用的Python接口,可调用文心一言大模型能力,完成包含文本创作、通用对话、语义向量、AI作图在内的多项任务。

EB SDK代码在GitHub上开源,欢迎大家进入repo查看源码和使用文档,如果遇到问题也可以提出issue。

下图是基于EB SDK开发的Gradio演示应用程序,大家可以在AI Studio应用中心在线体验。

2.项目思路

  • 通过使用Ernie Bot实现文本纠错
  • gradio部署

二、环境设置

1.安装EB SDK

使用pip可以快速安装EB SDK,这里安装0.3.1版本。

python 复制代码
%%capture
!pip install erniebot==0.3.1

2.认证鉴权

调用文心一言大模型功能是收费服务,所以使用EB SDK需要认证鉴权。

EB SDK认证鉴权主要是设置后端和access token,分别通过api_typeaccess_token参数来指定。

此处,我们使用aistudio后端。在AI Studio个人中心的访问令牌页面,大家可以获取aistudio后端的access token,然后填入下面代码中(替换{YOUR-ACCESS-TOKEN})。

python 复制代码
import erniebot

erniebot.api_type = 'aistudio'
erniebot.access_token = "{替换成你的 ACCESS-TOKEN}"

请注意:

  • 不同后端的access token获取方式不同,特定后端获取的access token无法用于其他后端的认证鉴权。
  • access token是私密信息,切记不要对外公开。
  • aistudio后端的access token对应大家的个人账户,目前每个账户有100万token的免费额度,可以用于EB SDK调用文心一言大模型。

3. EB SDK Hello-World

作为开始,让我们用EB SDK开发一个hello-world程序:

python 复制代码
response = erniebot.ChatCompletion.create(
    model='ernie-bot',
    messages=[{'role': 'user', 'content': "请对我说"你好,世界!""}],
)
print(response.result)
复制代码
你好,世界! 

如果你需要任何帮助或者有任何问题,请随时告诉我。我将竭诚为你服务。

以上代码调用erniebot.ChatCompletion.create API,发起对话补全请求,并打印模型的响应结果。

我们通过model参数指定使用ernie-bot(文心一言旗舰版)模型,通过messages参数指定给大模型的输入消息。

在以上代码中,我们只进行单轮对话,因此messages列表中只包含一个元素。messages中的每一项都是一个字典,其中的'role': 'user'表示发出当前消息的角色是"用户"(也就是我们),'content'则对应消息的具体内容。

4.多轮对话

下面让我们尝试一个复杂一些的例子------多轮对话。

文心一言大模型具备强大的上下文理解能力,在我们发送新的消息时,模型能够联系历史消息进行回复。

首先,对hello-world的例子做一点修改:

python 复制代码
model = 'ernie-bot'
messages = [{'role': 'user', 'content': "请问你能以《你好,世界》为题,写一首现代诗吗?"}]
first_response = erniebot.ChatCompletion.create(
    model=model,
    messages=messages,
)
print(first_response.result)
复制代码
你好,世界
在晨光的辉煌之下,
我向你问好,世界。
微光中的你,
如初醒的婴儿,
清新而纯真。

你的蓝色眼睛,
深邃而神秘,
像梦中的海洋,
无尽的灵魂里,
藏着无尽的秘密。

你的山川,
雄浑而峻峭,
像勇者的脊梁,
坚韧而不屈。
你的花朵,
如诗如画,
色彩斑斓,
每一瓣都盛满了生命的热烈。

你好,世界,
我以诗人的名义,
向你致敬。
你是我的爱人,
我的朋友,
我的梦想。

每一个呼吸,
我都在你的怀抱中,
感受你的脉动。
每一个瞬间,
我都在你的天空下,
领略你的辽阔。

你的风,你的雨,
你的阳光,你的夜晚,
都在我心中留下深深的烙印。
你好,世界,
我向你问好,
我向你致敬。

在你的面前,
我是如此的渺小,
但我的心却如此的广大。
在你的里面,
我看到了生命的奇迹,
看到了世界的美丽。

让我们以诗人的眼睛,
去感受你的温度,
去寻找你的声音。
让我们以诗人的语言,
去歌颂你的伟大,
去赞美你的美好。

你好,世界,
我向你问好。
在每一个黎明,
在每一个黄昏,
我都想对你说:
你好,世界!

上述代码相比hello-world的例只是修改了messages参数的取值,并分别用两个变量modelmessages记录模型名称与消息列表。

接下来,让我们发送第二条消息:

python 复制代码
messages.append({'role': 'assistant', 'content': first_response.result})
messages.append({'role': 'user', 'content': "谢谢你!请问你能把这首诗改写成七言绝句吗?"})
python 复制代码
second_response = erniebot.ChatCompletion.create(
    model=model,
    messages=messages,
)
print(second_response.result)
复制代码
你好,世界
晨光辉煌问你好,
深邃神秘是世界。
山川勇者脊梁坚,
花朵生命热烈颂。

三、gradio部署

1.包安装

requirements.txt

txt 复制代码
erniebot==0.3.1
gradio==3.44.3
numpy
python 复制代码
import os
os.system("python -m pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/")

2.介绍界面创建

python 复制代码
import erniebot 
import gradio as gr


def create_ui_and_launch():
    with gr.Blocks(title="基于【ERNIE Bot SDK】的文本纠错", theme=gr.themes.Soft()) as block:
        with gr.Row():
            gr.HTML("""<h1 align="center">基于【ERNIE Bot SDK】的文本纠错功能体验</h1>""")
        with gr.Accordion("【使用说明】(点击展开/折叠)", open=False):
            gr.Markdown(
                    """
                    ERNIE Bot SDK是文心&飞桨官方提供的Python软件开发工具包,其提供便捷易用的Python接口,可调用文心一言大模型能力,完成包含文本创作、通用对话、语义向量、AI作图在内的多项任务。ERNIE Bot SDK代码在GitHub上开源,欢迎大家进入[repo](https://github.com/PaddlePaddle/ERNIE-Bot-SDK)查看源码和使用文档,如果遇到问题也可以提出issue。

                    本应用提供对全套文本纠错功能。

                    * 对于对话补全与语义向量功能,"API Type"选择`aistudio`,在[访问令牌页面](https://aistudio.baidu.com/usercenter/token)复制access token,并粘贴到"Access Token"文本框中。
                    
                    """
            )
        create_chat_completion_tab()
    block.launch()

3.预测

python 复制代码
def predict(input_text):
    erniebot.api_type = "aistudio"
    erniebot.access_token = "f6489f7f1c6c9920f336629261faac7cff88fcc5"

    response = erniebot.ChatCompletion.create(
        model="ernie-bot",
        messages=[ {
            "role": "user",
            "content": f"请对以下文本进行文本纠错:\n{input_text}"
        }])
    print(response.result)
    return response.result
examples=[
    ["阔以康康这篇关于电商用户增长的数据分析嘛~"],
    ["小红鼠是一个生活方式平台和消费决策入口,是当前著名的电商平台."]
]

4.输入输出界面创建

python 复制代码
def create_chat_completion_tab():
    with gr.Tab("对话补全(Chat Completion)") as chat_completion_tab:
        with gr.Row():
            with gr.Column(scale=4):
                input_text = gr.Textbox(label="待纠错文本", lines=4, placeholder="请输入...")
                output_text = gr.Textbox(label="纠正文本", lines=4, placeholder="")
                with gr.Row():
                    send_btn = gr.Button("发送")
                    clear_btn = gr.Button("清空")
                    send_btn.click(predict, inputs=[input_text],outputs=[output_text])
                    clear_btn.click(lambda _: (None, None), inputs=clear_btn,outputs=[input_text,output_text])
                    gr_examples = gr.Examples(examples=examples, inputs=[input_text],
                                  label="输入示例 (点击选择例子)",
                                  examples_per_page=20)

if __name__ == '__main__':
    create_ui_and_launch()

四、应用界面

五、代码

1.requirements.txt

ini 复制代码
erniebot==0.3.1
gradio==3.44.3
numpy

2.gradio部署文件

python 复制代码
#该应用创建工具共包含三个区域,顶部工具栏,左侧代码区,右侧交互效果区,其中右侧交互效果是通过左侧代码生成的,存在对照关系。
#顶部工具栏:运行、保存、新开浏览器打开、实时预览开关,针对运行和在浏览器打开选项进行重要说明:
#[运行]:交互效果并非实时更新,代码变更后,需点击运行按钮获得最新交互效果。
#[在浏览器打开]:新建页面查看交互效果。
#以下为应用创建工具的示例代码

import os
os.system("python -m pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/")
import erniebot 
import gradio as gr


def create_ui_and_launch():
    with gr.Blocks(title="基于【ERNIE Bot SDK】的文本纠错", theme=gr.themes.Soft()) as block:
        with gr.Row():
            gr.HTML("""<h1 align="center">基于【ERNIE Bot SDK】的文本纠错功能体验</h1>""")
        with gr.Accordion("【使用说明】(点击展开/折叠)", open=False):
            gr.Markdown(
                    """
                    ERNIE Bot SDK是文心&飞桨官方提供的Python软件开发工具包,其提供便捷易用的Python接口,可调用文心一言大模型能力,完成包含文本创作、通用对话、语义向量、AI作图在内的多项任务。ERNIE Bot SDK代码在GitHub上开源,欢迎大家进入[repo](https://github.com/PaddlePaddle/ERNIE-Bot-SDK)查看源码和使用文档,如果遇到问题也可以提出issue。

                    本应用提供对全套文本纠错功能。

                    * 对于对话补全与语义向量功能,"API Type"选择`aistudio`,在[访问令牌页面](https://aistudio.baidu.com/usercenter/token)复制access token,并粘贴到"Access Token"文本框中。
                    
                    """
            )
        create_chat_completion_tab()
    block.launch()


def predict(input_text):
    erniebot.api_type = "aistudio"
    erniebot.access_token = "替换成你自己的"

    response = erniebot.ChatCompletion.create(
        model="ernie-bot",
        messages=[ {
            "role": "user",
            "content": f"请对以下文本进行文本纠错:\n{input_text}"
        }])
    print(response.result)
    return response.result
examples=[
    ["阔以康康这篇关于电商用户增长的数据分析嘛~"],
    ["小红鼠是一个生活方式平台和消费决策入口,是当前著名的电商平台."]
]

def create_chat_completion_tab():
    with gr.Tab("对话补全(Chat Completion)") as chat_completion_tab:
        with gr.Row():
            with gr.Column(scale=4):
                input_text = gr.Textbox(label="待纠错文本", lines=4, placeholder="请输入...")
                output_text = gr.Textbox(label="纠正文本", lines=4, placeholder="")
                with gr.Row():
                    send_btn = gr.Button("发送")
                    clear_btn = gr.Button("清空")
                    send_btn.click(predict, inputs=[input_text],outputs=[output_text])
                    clear_btn.click(lambda _: (None, None), inputs=clear_btn,outputs=[input_text,output_text])
                    gr_examples = gr.Examples(examples=examples, inputs=[input_text],
                                  label="输入示例 (点击选择例子)",
                                  examples_per_page=20)

if __name__ == '__main__':
    create_ui_and_launch()
相关推荐
阿坡RPA5 小时前
手搓MCP客户端&服务端:从零到实战极速了解MCP是什么?
人工智能·aigc
用户27784491049935 小时前
借助DeepSeek智能生成测试用例:从提示词到Excel表格的全流程实践
人工智能·python
机器之心5 小时前
刚刚,DeepSeek公布推理时Scaling新论文,R2要来了?
人工智能
算AI7 小时前
人工智能+牙科:临床应用中的几个问题
人工智能·算法
凯子坚持 c8 小时前
基于飞桨框架3.0本地DeepSeek-R1蒸馏版部署实战
人工智能·paddlepaddle
你觉得2058 小时前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义下载方法
大数据·人工智能·python·gpt·学习·机器学习·aigc
8K超高清9 小时前
中国8K摄像机:科技赋能文化传承新图景
大数据·人工智能·科技·物联网·智能硬件
hyshhhh9 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
薛定谔的猫-菜鸟程序员9 小时前
零基础玩转深度神经网络大模型:从Hello World到AI炼金术-详解版(含:Conda 全面使用指南)
人工智能·神经网络·dnn
币之互联万物9 小时前
2025 AI智能数字农业研讨会在苏州启幕,科技助农与数据兴业成焦点
人工智能·科技