ERNIE SDK 本地使用与markdown自动生成

ERNIE SDK 仓库包含两个项目:ERNIE Bot Agent 和 ERNIE Bot。ERNIE Bot Agent 是百度飞桨推出的基于文心大模型编排能力的大模型智能体开发框架,结合了飞桨星河社区的丰富预置平台功能。ERNIE Bot 则为开发者提供便捷接口,轻松调用文心大模型的文本创作、通用对话、语义向量及AI作图等基础功能。

ERNIE Bot是文心&飞桨官方提供的Python库,提供便捷易用的Python接口,可调用文心大模型能力,完成包含文本创作、通用对话、语义向量、AI作图在内的多项任务。

突然发现自己有100万免费token,刚好需要文本生成,赶紧来试试。

安装非常简单:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple erniebot==0.5.0

首先看看我们可以调用哪些模型:

import erniebot
# 列出支持的模型
models = erniebot.Model.list()
print(models)
# ernie-3.5             文心大模型(ernie-3.5)
# ernie-turbo           文心大模型(ernie-turbo)
# ernie-4.0             文心大模型(ernie-4.0)
# ernie-longtext        文心大模型(ernie-longtext)
# ernie-text-embedding  文心百中语义模型
# ernie-vilg-v2         文心一格模型

 支持的模型介绍: 

以下是对这几个模型的特点和使用场景的简要描述:

  1. ernie-3.5(文心大模型)

    • 特点

      • 作为百度文心大模型家族中的一员,ernie-3.5具有强大的语言理解和生成能力。
      • 它是基于深度学习技术构建的,可以从海量的数据中学习到丰富的语言知识。
      • ernie-3.5支持多种NLP任务,包括文本分类、命名实体识别、语义匹配等。
    • 使用场景

      • 适用于需要文本分析和理解的场景,如情感分析、智能问答、文本摘要等。
      • 在内容生成、智能对话等方面也有广泛应用。
  2. ernie-turbo(文心大模型)

    • 特点

      • ernie-turbo是百度推出的一款高效、轻量级的语言模型。
      • 它在保证性能的同时,大大降低了计算和存储资源的需求。
      • 特别适合在边缘设备上部署,如手机、平板等。
    • 使用场景

      • 适用于资源受限的环境,需要快速响应和高效执行的NLP任务。
      • 例如,在移动设备上进行文本输入补全、智能推荐等。
  3. ernie-4.0(文心大模型)

    • 特点

      • ernie-4.0是百度文心大模型系列的最新版本,具备更强大的语言理解和生成能力。
      • 它在多个领域都进行了优化和提升,包括知识推理、阅读理解、文本生成等。
      • 还引入了多模态能力,能够理解并生成图像、视频等多种类型的内容。
    • 使用场景

      • 适用于复杂的语言处理任务,如自动写作、智能翻译、情感对话等。
      • 在教育、金融、医疗等多个垂直领域都有广泛应用。
  4. ernie-longtext(文心大模型)

    • 特点

      • ernie-longtext专门针对长文本处理和生成任务进行了优化。
      • 它能够处理超长文本输入,并保持高性能和高效率。
      • 特别适合处理文档、文章等长篇幅的内容。
    • 使用场景

      • 适用于需要处理长文本的场景,如文档摘要、论文理解、法律文书处理等。
      • 在新闻媒体、学术研究等领域有广泛应用。
  5. ernie-text-embedding(文心百中语义模型)

    • 特点

      • ernie-text-embedding是一个专注于文本嵌入表示的模型。
      • 它能够将文本映射到一个高维空间中,使得语义相似的文本在空间中位置更接近。
      • 特别适合用于文本相似度匹配、聚类等任务。
    • 使用场景

      • 适用于文本相似度计算和文本聚类等任务。
      • 在推荐系统、搜索引擎优化等方面有广泛应用。
  6. ernie-vilg-v2(文心一格模型)

    • 特点

      • ernie-vilg-v2是一个多模态模型,结合了视觉和语言信息。
      • 它能够理解并生成图像,实现文本和图像之间的跨模态交互。
      • 在视觉问答、图像标注、视觉对话等方面表现出色。
    • 使用场景

      • 适用于需要处理图像和文本信息的联合任务。
      • 在社交媒体分析、广告设计、智能家居等领域有广泛应用。

请注意,上述描述可能随着模型的不断更新和发展而发生变化。在实际应用中,建议查阅最新的官方文档和资源以获取最准确的信息。

各个模型具体效果可以来这里体验:
 百度智能云控制台 (baidu.com)icon-default.png?t=N7T8https://console.bce.baidu.com/qianfan/ais/console/onlineTest

 由于是开发文本生成功能,所以使用个人觉得更好的 ERNIE-4.0 模型,选择模型并测试。

多轮对话
# encoding:utf-8
import erniebot# 此处,我们使用aistudio后端。在AI Studio个人中心的访问令牌页面,大家可以获取aistudio后端的access token,然后填入下面代码中(替换{YOUR-ACCESS-TOKEN})。
erniebot.api_type = 'aistudio'
erniebot.access_token = '{YOUR-ACCESS-TOKEN}'# 选择模型
model = 'ernie-4.0'
# messages中的每一项都是一个字典,其中的'role': 'user'表示发出当前消息的角色是“用户”,还可以是"assistant"表示对话助手,'content'则对应消息的具体内容。
messages = [{'role': 'user', 'content': "详细列出图像处理领域专业术语并解释"}]first_response = erniebot.ChatCompletion.create(model=model,messages=messages,
)
print(first_response.get_result())messages.append(first_response.to_message())
messages.append({'role': 'user', 'content': "你回答的很好,希望能再列出更多跟之前回答都完全不一样的图像处理领域专业术语"})

实测发现这种非流式传输还容易 timeout,在ai studio 的 BML Codelab 环境里运行,居然也会 timeout,这个是访问量过大导致的吗?还是 api_type 是 'aistudio' 免费的,所以卡? 

设置流式传输

在实际应用中,模型可能给出很长的回答,而这会导致很长的响应时间。比如生成200字的文案耗时较久,在获取到模型的响应前能够感觉到明显的卡顿。为了减少用户的等待时间,ERNIE Bot支持流式传输数据。具体而言,为erniebot.ChatCompletion.create API传入参数stream=True,则API将返回一个生成器。这个生成器对应一个响应序列,我们通过迭代操作即可获取全部响应。

# encoding:utf-8
import erniebotclass ERNIE:def __init__(self, model: str, access_token: str = None) -> None:self.chat_history = []self.model = modelerniebot.api_type = "aistudio"erniebot.access_token = '换成你的 access token'def chat(self, query: str) -> str:"Use this function to chat with ERNIE BOT"self.chat_history.append({"role": "user", "content": query})response = erniebot.ChatCompletion.create(model=self.model,messages=self.chat_history,)self.chat_history.append({"role": "assistant", "content": response.get_result()})return response.get_result()def chat_stream(self, query: str) -> None:"Use this function to chat with ERNIE BOT"self.chat_history.append({"role": "user", "content": query})response = erniebot.ChatCompletion.create(model=self.model, messages=self.chat_history, stream=True)result = ""for resp in response:result += resp.get_result()print(result, flush=True)self.chat_history.append({"role": "assistant", "content": result})def clear(self):self.chat_history = []ERNIE_BOT = ERNIE(model="ernie-4.0")
ERNIE_BOT.chat_stream("尽可能多的列出图像处理领域专业术语并解释,生成必须使用markdown格式,不需要给出来源")
ERNIE_BOT.chat_stream("你回答的很好,希望能再列出更多跟之前回答都完全不一样的图像处理领域专业术语")

慢慢打印出了想要的内容,可以将 markdown直接复制到 CSDN里,这样一篇专业术语知识库就生成了。ps: 流式打印发现很多内容是重复的,估计也是网卡或者调用繁忙,体验不太好。后面用不是免费的再试试

生成的内容文章:
图像处理领域专业术语-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/Vulcan_S/article/details/136954139?spm=1001.2014.3001.5502

 就这两个问题,消耗了18648个token,这token消耗的有点快啊,感觉卡顿造成了很多无效的token消耗,或者代码有问题?后面继续摸索一下。。。

ERNIE SDK是一个强大的开发框架,它基于文心大模型及其Function Calling(函数调用)功能,为LLM(大型语言模型)应用开发提供了全新的视角。该框架旨在解决LLM应用开发中面临的核心挑战,并通过文心大模型展示了其卓越性能。

ERNIE SDK针对几个关键问题提供了有效的解决方案。首先,它解决了传统大模型在处理大型文档时面临的token输入数量限制问题。通过提供本地知识库检索的方式,使得处理大型文档问答任务更加方便。其次,ERNIE SDK使集成现有业务API工具成为可能,拓宽了LLM应用的功能性和适应性。此外,它还能够通过定制工具连接多种数据源,如SQL数据库,为大模型提供更多的信息。

作为一个高效的开发框架,ERNIE SDK大幅提升了开发者的工作效率。它支持开发者轻松地调用并统筹使用多种API,以构建应用。开发者可以根据用户需求以及函数描述信息,智能确定是否应该调用函数、调用哪一个函数,以及在调用该函数时需要如何设置输入参数。用户可以根据模型的提示调用函数,并将函数的响应传递给模型。模型将综合对话上下文信息,以自然语言形式给出满足用户需求的回答。

除了上述功能,ERNIE SDK还提供了文本嵌入服务,将文本转化为用数值表示的向量形式,用于文本检索、信息推荐、知识挖掘等场景。

总的来说,ERNIE SDK是一个功能强大、高效的开发框架,为LLM应用开发提供了全面的支持。无论是处理大型文档、集成业务API工具,还是连接多种数据源,ERNIE SDK都能为开发者提供有效的解决方案,助力他们构建出更加智能、高效的应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/283143.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux-Arm环境下配置编译qt-everywhere及交叉编译环境

前言 最近在搞交叉编译的事,手上拿了个同事的香橙派玩交叉编译,现在来到了第一步,就是先在arm上配置qt的开发环境。当然了Qt没有直接提供qt on arm,而是需要自行在arm环境下编译一个qt环境出来,所以这里需要使用到qt提…

基于python+vue智慧农业小程序flask-django-php-nodejs

传统智慧农业采取了人工的管理方法,但这种管理方法存在着许多弊端,比如效率低下、安全性低以及信息传输的不准确等,同时由于智慧农业中会形成众多的个人文档和信息系统数据,通过人工方法对知识科普、土壤信息、水质信息、购物商城…

LeetCode每日一题——x 的平方根

x 的平方根OJ链接&#xff1a;69. x 的平方根 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 思路&#xff1a; 乍一看题目只需要算一个数的平方根&#xff0c;根据我们之前学的C语言我们能很快的想到使用sqrt&#xff0c;pow这类的<math.h>库函数&#xf…

用户多部门切换部门,MySQL根据多个部门id递归获取所有上级(祖级)、获取部门的全路径(全结构名称)

背景 之前做过的项目&#xff0c;都是一个用户就一个部门的&#xff0c;现在碰到个一个用户在多个部门的需求&#xff0c;而且需要可以切换不同部门查看不同数据。 就比如说一个大公司下面有多个子公司&#xff0c;每个子公司有好多部门、子部门等等&#xff0c;然后有部分用…

万用表革新升级,WT588F02BP-14S语音芯片助力智能测量新体验v

万能表功能&#xff1a; 万能表是一款集多功能于一体的电子测量工具&#xff0c;能够精准测量电压、电流、电阻等参数&#xff0c;广泛应用于电气、电子、通信等领域。其操作简便、测量准确&#xff0c;是工程师们进行电路调试、故障排查的得力助手&#xff0c;为提升工作效率…

Sphinx + Readthedocs 避坑速通指南

博主在学习使用 Sphinx 和 Read the docs 的过程中&#xff0c; 碰到了许多奇葩的 bug, 使得很简单的任务花费了很长的时间才解决&#xff0c;现在在这里做一个分享&#xff0c;帮助大家用更少的时间高效上线文档的内容。 总的来说&#xff0c; 任务分为两个部分&#xff1a; …

[音视频学习笔记]七、自制音视频播放器Part2 - VS + Qt +FFmpeg 写一个简单的视频播放器

前言 话不多说&#xff0c;重走霄骅登神路 前一篇文章 [音视频学习笔记]六、自制音视频播放器Part1 -新版本ffmpeg&#xff0c;Qt VS2022&#xff0c;都什么年代了还在写传统播放器&#xff1f; 本文相关代码仓库&#xff1a; MediaPlay-FFmpeg - Public 转载雷神的两个流程…

python_BeautifulSoup爬取汽车评论数据

爬取的网站&#xff1a; 完整代码在文章末尾 https://koubei.16888.com/57233/0-0-0-2 使用方法&#xff1a; from bs4 import BeautifulSoup 拿到html后使用find_all()拿到文本数据&#xff0c;下图可见&#xff0c;数据标签为&#xff1a; content_text soup.find_all…

手机网页关键词视频爬虫采集软件可导出视频分享链接|视频无水印批量下载工具

全新音视频批量下载工具&#xff0c;为您解放视频管理烦恼&#xff01; 现如今&#xff0c;音上涌现出大量精彩的视频内容&#xff0c;但是要想高效地获取、管理和分享这些视频却是一件颇具挑战的事情。针对这一难题&#xff0c;我们自主研发了全新的音视频批量下载工具&#x…

基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现

基于javaSpringbootmybatislayui的装修验收管理系统设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留…

Day41:WEB攻防-ASP应用HTTP.SYS短文件文件解析Access注入数据库泄漏

目录 ASP-默认安装-MDB数据库泄漏下载 ASP-中间件-CVE&短文件&解析&写权限 HTTP.SYS&#xff08;CVE-2015-1635&#xff09;主要用作蓝屏破坏&#xff0c;跟权限不挂钩 IIS短文件(iis全版本都可能有这个问题) IIS文件解析 IIS写权限 ASP-SQL注入-SQLMAP使用…

WPF 立体Border

WPF 立体Border &#xff0c;用来划分各个功能区块 在资源文件中&#xff0c;添加如下样式代码&#xff1a; <Style x:Key"BaseBorder" TargetType"Border"><Setter Property"Background" Value"White" /><Setter Prop…

Mac nvm install failed python: not found

报错 $>./configure --prefix/Users/xxx/.nvm/versions/node/v12.22.12 < ./configure: line 3: exec: python: not found nvm: install v12.22.12 failed!解决方法 到 App 文件夹&#xff0c;并且打开 cd /System/Applications/Utilities/ open .记得改完 Rosetta 之…

(done) 机器学习中的方差 variance 和 偏差 bias 怎么理解?

来源&#xff1a;https://blog.csdn.net/weixin_41479678/article/details/116230631 情况1属于&#xff1a;低 bias&#xff0c;高 variance (和 human performance 相近&#xff0c;但和 验证集dev set 相远) 通常意味着模型训练轮数太多 情况2属于&#xff1a;高 bias&#…

【Django框架学习笔记】超详细的Python后端开发Django框架学习笔记

十二&#xff0c;Django框架 可以以下链接获取Django框架学习笔记,md文档和pdf文档 Django框架超详细的学习笔记&#xff0c;点击我获取 12.1 命令行操作 # 创建django项目 django-admin startproject aini# 启动项目 cd /mysite python3 manage.py runserver## 创建应用 …

GraphPad Prism 10:一站式数据分析解决方案

GraphPad Prism 10是一款功能强大的数据分析和可视化软件&#xff0c;广泛应用于生命科学研究、医学、生物、化学等多个领域。以下是对其详细功能的介绍&#xff1a; 首先&#xff0c;GraphPad Prism 10具有出色的数据可视化功能。它支持各种类型的图表和图形&#xff0c;包括…

MySQL 搭建双主复制服务 并 通过 HAProxy 负载均衡

一、MySQL 搭建双主复制高可用服务 在数据库管理中&#xff0c;数据的备份和同步是至关重要的环节&#xff0c;而双主复制&#xff08;Dual Master Replication&#xff09;作为一种高可用性和数据同步的解决方案&#xff0c;通过让两个数据库实例同时充当主服务器和从服务器&…

python的OA公文发文管理系统flask-django-php-nodejs

采用结构化的分析设计&#xff0c;该方法要求结合一定的图表&#xff0c;在模块化的基础上进行系统的开发工作。在设计中采用“自下而上”的思想&#xff0c;在OA公文发文管理系统实现了用户、公文分类、公文信息、待办提醒等的功能性。系统根据现有的管理模块进行开发和扩展&a…

两台电脑简单的通信过程详解(经过两个路由器,不同网段)

一、eNSP拓扑图 二、配置4台电脑的IP地址、子网掩码、网关地址。 三、配置路由器 1.AR1-接口对应IP <Huawei>sys #进入系统视图 [Huawei]int g0/0/0 #进入0/0/0接口 [Huawei-GigabitEthernet0/0/0]ip address 192.168.0.1 24 #配置ip和掩码 [Huawei-GigabitEthernet0…

智慧城市的发展趋势与挑战:未来展望

随着信息技术的飞速发展&#xff0c;智慧城市已成为现代城市发展的重要方向。智慧城市通过集成应用先进的信息通信技术&#xff0c;实现城市管理、服务、运行的智能化&#xff0c;为城市的可持续发展注入了新的活力。然而&#xff0c;在智慧城市的发展过程中&#xff0c;也面临…