使用BIE函数计算调用文心一言
前言
当前文心一言未提供OpenAPI接入,需要使用百度智能云文心千帆的API接入,调用ERNIE-Bot或ERNIE-Bot-Turbo模型。
文心千帆平台操作
在文心千帆平台创建完应用后,就可以拿到API访问的API Key以及Secret Key。
BIE平台操作
本地新建index.py
文件,
copy下面的内容,并将其中的API_KEY和SECRET_KEY替换为千帆平台中应用的实际值。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
sys.path.append("/var/lib/baetyl/python3")
import requests
import json
API_KEY = ""
SECRET_KEY = ""
def get_access_token():
"""
使用 AK,SK 生成鉴权签名(Access Token)
:return: access_token,或是None(如果错误)
"""
url = "https://aip.baidubce.com/oauth/2.0/token"
params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
return str(requests.post(url, params=params).json().get("access_token"))
def handler(event, context):
url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=" + get_access_token()
payload = json.dumps(event)
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
return json.loads(response.text)
由于我们用到了 requests
库,因此需要在配置项中引入该依赖,依赖包的创建方法可以参考自定义函数与依赖包解耦下发。上述代码中的如下两行代码,主要是用于引用依赖包函数。
import sys
sys.path.append("/var/lib/baetyl/python3")
创建配置项python3-request-package
应用管理->配置管理->配置项->创建配置项->引入文件
创建配置项,该配置项为函数依赖包,配置项信息如下图所示:
- 类型:HTTP
- URL:https://bie-document.gz.bcebos.com/baetyl-function/python3-request.zip
- 文件名称:python3-request.zip
- 是否解压:是
创建函数python-qianfan
应用管理->配置管理->函数->创建函数配置项->添加配置数据
,变量名的名称为index.py,变量值为之前创建index.py文件。
创建节点
边缘节点->节点管理->容器模式->创建节点
,在系统应用选择的时候,选择baetyl-function。
在节点生成后,点击节点,进入应用部署,点击baetyl-function-xxxxx,容器配置->编辑->端口映射
,选择ClusterIP,将50011端口映射到31011端口,以便我们在集群外进行调用测试。
创建函数应用
应用管理->应用部署->容器应用->创建应用->添加标准容器
,在创建应用时,需要选择函数应用,同时,选择单节点匹配,将节点绑定到刚刚创建的节点中。
基本信息
- 函数配置项:选择前面创建的python-qianfan
- 运行时:选择python3
函数列表
- 函数名称:qianfan
- 函数入口:index.handler,因为python-qianfan函数的名称是index.py,函数当中定义了handler,所以此处为index.handler
- 容器目录:
.
,使用点号,表示当前目录卷配置
- 点击创建卷,创建一个名为python-request的卷,类型为配置项,然后选择之前创建的
python3-request-package
- 添加一个配置项,选择前面创建的
python-request
卷,容器目录填在index.py
中引入的目录/var/lib/baetyl/python3
。
测试运行
边缘节点安装,并等待所有Pod全部运行,然后可以使用postman进行调用测试。
在postman的General配置中,关闭SSL certificate verification,使用https,访问边缘节点的31011端口,加上函数应用名称为路径,就能成功调用到文心千帆提供的文心一言模型。其中Body内容,函数计算会进行透传,内容格式可参考ERNIE-Bot-turbo API