基于文心一言【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()
相关推荐
sduwcgg5 分钟前
kaggle配置
人工智能·python·机器学习
DolphinScheduler社区6 分钟前
白鲸开源与亚马逊云科技携手推动AI-Ready数据架构创新
人工智能·科技·开源·aws·白鲸开源·whalestudio
欣然~35 分钟前
借助 OpenCV 和 PyTorch 库,利用卷积神经网络提取图像边缘特征
人工智能·计算机视觉
白熊1881 小时前
【计算机视觉】CV实战项目 - 基于YOLOv5的人脸检测与关键点定位系统深度解析
人工智能·yolo·计算机视觉
nenchoumi31191 小时前
VLA 论文精读(十六)FP3: A 3D Foundation Policy for Robotic Manipulation
论文阅读·人工智能·笔记·学习·vln
后端小肥肠2 小时前
文案号搞钱潜规则:日入四位数的Coze工作流我跑通了
人工智能·coze
LCHub低代码社区2 小时前
钧瓷产业原始创新的许昌共识:技术破壁·产业再造·生态重构(一)
大数据·人工智能·维格云·ai智能体·ai自动化·大禹智库·钧瓷码
-曾牛2 小时前
Spring AI 快速入门:从环境搭建到核心组件集成
java·人工智能·spring·ai·大模型·spring ai·开发环境搭建
阿川20152 小时前
云智融合普惠大模型AI,政务服务重构数智化路径
人工智能·华为云·政务·deepseek
自由鬼2 小时前
开源AI开发工具:OpenAI Codex CLI
人工智能·ai·开源·软件构建·开源软件·个人开发