w5688414 / ERNIE-Bot-SDK

The ERNIE Bot Python SDK provides convenient access to the ERNIE Bot API, including Chat Completion, Embedding, Function Calling, etc.

Home Page:https://yiyan.baidu.com/developer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ERNIE Bot SDK

ERNIE Bot SDK提供便捷易用的接口,可以调用文心大模型的能力,包含文本创作、通用对话、语义向量、AI作图等。

License Version python version support os

最新动态

  • 支持文心一言ernie-bot-8k模型,输入token数量上限提升至7000。
  • 支持基于文心大模型4.0版本的文心一言ernie-bot-4,用于对话补全任务。
  • 增加EBResponse.get_result方法,支持从响应中取出关键信息。

教程与文档

详情

快速安装

执行如下命令,快速安装Python语言的最新版本ERNIE Bot SDK(要求Python >= 3.8)。

pip install --upgrade erniebot

快速使用

使用ERNIE Bot SDK之前,请首先申请并设置鉴权参数。具体请参考认证鉴权

Python接口

import erniebot

# List supported models
models = erniebot.Model.list()

print(models)
# ernie-bot             文心一言模型(ernie-bot)
# ernie-bot-turbo       文心一言模型(ernie-bot-turbo)
# ernie-bot-4           文心一言模型(ernie-bot-4)
# ernie-bot-8k          文心一言模型(ernie-bot-8k)
# ernie-text-embedding  文心百中语义模型
# ernie-vilg-v2         文心一格模型

# Set authentication params
erniebot.api_type = 'aistudio'
erniebot.access_token = '<access-token-for-aistudio>'

# Create a chat completion
response = erniebot.ChatCompletion.create(model='ernie-bot', messages=[{'role': 'user', 'content': "你好,请介绍下你自己"}])

print(response.get_result())

命令行接口(CLI)

# List supported models
erniebot api model.list

# Set authentication params for chat_completion.create
export EB_API_TYPE='aistudio'
export EB_ACCESS_TOKEN='<access-token-for-aistudio>'

# Create a chat completion (using ernie-bot, ernie-bot-turbo, etc.)
erniebot api chat_completion.create --model ernie-bot --message user "请介绍下你自己"

# Set authentication params for image.create
export EB_API_TYPE='yinian'
export EB_ACCESS_TOKEN='<access-token-for-yinian>'

# Generate images via ERNIE-ViLG
erniebot api image.create --model ernie-vilg-v2 --prompt "画一只驴肉火烧" --height 1024 --width 1024 --image-num 1

典型示例

对话补全(Chat Completion)

ERNIE Bot SDK提供具备对话补全能力的ernie-bot、ernie-bot-turbo、ernie-bot-4、ernie-bot-8k等文心一言系列模型。

不同模型在效果、速度等方面各有千秋,大家可以根据实际场景的需求选择合适的模型。

以下是调用ernie-bot模型进行多轮对话的示例:

import erniebot

erniebot.api_type = 'aistudio'
erniebot.access_token = '<access-token-for-aistudio>'

response = erniebot.ChatCompletion.create(
    model='ernie-bot',
    messages=[{
        'role': 'user',
        'content': "请问你是谁?"
    }, {
        'role': 'assistant',
        'content':
        "我是百度公司开发的人工智能语言模型,我的中文名是文心一言,英文名是ERNIE-Bot,可以协助您完成范围广泛的任务并提供有关各种主题的信息,比如回答问题,提供定义和解释及建议。如果您有任何问题,请随时向我提问。"
    }, {
        'role': 'user',
        'content': "我在深圳,周末可以去哪里玩?"
    }])

print(response.get_result())

语义向量(Embedding)

ERNIE Bot SDK提供用于生成文本的向量表示的ernie-text-embedding模型。

该模型基于文心大模型,使用海量数据训练得到,为文心百中系统提供关键能力。该模型可以将输入文本转为384维浮点数表示的向量。这些向量具备精准的语义表达能力,可用于度量文本之间的语义相似度。

大家可以使用以下代码生成句子的向量表示:

import erniebot

erniebot.api_type = 'aistudio'
erniebot.access_token = '<access-token-for-aistudio>'

response = erniebot.Embedding.create(
    model='ernie-text-embedding',
    input=[
        "我是百度公司开发的人工智能语言模型,我的中文名是文心一言,英文名是ERNIE-Bot,可以协助您完成范围广泛的任务并提供有关各种主题的信息,比如回答问题,提供定义和解释及建议。如果您有任何问题,请随时向我提问。",
        "2018年深圳市各区GDP"
        ])

print(response.get_result())

大家可以登陆文心百中体验中心,体验更多大模型语义搜索的能力。

文生图(Image Generation)

ERNIE Bot SDK提供具备文生图能力的ernie-vilg-v2大模型。

该模型具备丰富的风格与强大的中文理解能力,支持生成多种尺寸的图片。

import erniebot

erniebot.api_type = 'yinian'
erniebot.access_token = '<access-token-for-yinian>'

response = erniebot.Image.create(
    model='ernie-vilg-v2',
    prompt="雨后的桃花,8k,辛烷值渲染",
    width=512,
    height=512
)

print(response.get_result())
image

我们推荐两个撰写文生图提示词的文档,大家可以组合使用,创作出更加精美的图片。

大家也可登陆文心一格平台,体验更多AI艺术与创意辅助的能力。

函数调用(Function Calling)

ERNIE Bot SDK提供函数调用功能,即由大模型根据对话上下文确定何时以及如何调用函数。

借由函数调用,用户可以从大模型获取结构化数据,进而利用编程手段将大模型与已有的内外部API结合以构建应用。

以下是调用ernie-bot模型进行函数调用的示例:

import erniebot

erniebot.api_type = 'aistudio'
erniebot.access_token = '<access-token-for-aistudio>'

response = erniebot.ChatCompletion.create(
    model='ernie-bot',
    messages=[{
        'role': 'user',
        'content': "深圳市今天气温多少摄氏度?",
    }, ],
    functions = [
        {
            'name': 'get_current_temperature',
            'description': "获取指定城市的气温",
            'parameters': {
                'type': 'object',
                'properties': {
                    'location': {
                        'type': 'string',
                        'description': "城市名称",
                    },
                    'unit': {
                        'type': 'string',
                        'enum': [
                            '摄氏度',
                            '华氏度',
                        ],
                    },
                },
                'required': [
                    'location',
                    'unit',
                ],
            },
            'responses': {
                'type': 'object',
                'properties': {
                    'temperature': {
                        'type': 'integer',
                        'description': "城市气温",
                    },
                    'unit': {
                        'type': 'string',
                        'enum': [
                            '摄氏度',
                            '华氏度',
                        ],
                    },
                },
            },
        },
    ],
    stream=False)
print(response.get_result())

Gradio Demos

为了让用户更全面、更直观地了解ERNIE Bot SDK的各项功能,我们基于Gradio开发了一系列带有web用户界面的演示应用。请参阅说明文档,尝试对话补全、语义向量、文生图、函数调用等可交互例子。

36dd85dbe30682a287b6a5c5d13e0cdc

Acknowledgement

我们借鉴了OpenAI Python Library的部分API设计,在此对OpenAI Python Library作者及开源社区表示感谢。

License

ERNIE Bot SDK遵循Apache-2.0开源协议。

About

The ERNIE Bot Python SDK provides convenient access to the ERNIE Bot API, including Chat Completion, Embedding, Function Calling, etc.

https://yiyan.baidu.com/developer

License:Apache License 2.0


Languages

Language:Python 100.0%Language:HTML 0.0%