使用文心的api实现多轮对话

最近在搞大模型应用,简单记录个文心一言的多轮对话实现,简单易懂,首先access_token需要在百度智能云上获取

一、百度智能云账号注册

首先注册百度账户,成为开发者,在下面的链接申请文心大模型:https://cloud.baidu.com/survey_summit/wenxinworkshop.html
申请以后,进入文心千帆大模型操作台:https://ai.baidu.com/wenxinworkshop/app/overview
在这里插入图片描述
按上图官网流程操作,创建应用,领券,加钱,开通,获得api_key和id信息

二、获得专属access_token

def get_access_token():
    """
    使用 API Key,Secret Key 获取access_token,替换下列示例中的应用API Key、应用Secret Key
    """

    url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=DREFFWQgIfakxZZ32qPziVWN&client_secret=rxitAsDDb8YEvEOgYiHiuVIswrZWsTWL"

    payload = json.dumps("")
    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }

    response = requests.request("POST", url, headers=headers, data=payload)
    return response.json().get("access_token")

三、 使用access_token实现对话

然后进入正题,实现多轮对话

import erniebot

class Chat_Bot():
    def __init__(self, access_token = '【你利用api_key申请获得的token】', api_type = 'aistudio'):
        # List supported models
        models = erniebot.Model.list()

        # print(models)
        # ernie-bot             文心一言旗舰版
        # ernie-bot-turbo       文心一言轻量版
        # ernie-text-embedding  文心百中语义模型
        # ernie-vilg-v2         文心一格模型

        # Set authentication params
        self.api_type = api_type
        self.access_token = access_token

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

    print('回复:', response.result)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值