我在今年三月份左右申请了百度文心一言的测试,不久就通过了申请,体验了一段时间,感觉很棒,但是我更希望百度能早一点开放文心一言的API,不用在线去使用。
在7月19日那天,百度智能云给我打电话,问我体验如何,我便咨询了API开放时间,百度的答复是:目前只针对企业开放,个人还需要等些时间。没想到仅仅过了一天,百度智能云的工作人员又给我打了电话,说百度已开放了对个人的API,也就是文心千帆,我很幸运成为了首批测试者。接下来我就针对我的体验和大家聊聊。
文心千帆和文心一言的关系
百度工作人员给我解释的是:文心千帆是百度训练出来的一个模型,而文心一言生成的内容就来自于这个模型。
官方规范解释是:
文心千帆大模型平台是百度文心大模型的官方和唯一的商业化服务平台。对内及对外统一由文心千帆来提供服务,当前提供文心一言的推理服务、定制微调大模型服务,后续会逐步开放一系列开发和应用工具链。(官方解释)
如果还不理解可以查一下官网。文心一言云服务及相关产品-百度智能云 (baidu.com)
使用价格
按量计费,以字节进行计算,总之是比较便宜的,而且体验者百度会发20元的代金券,基本不需要花钱。
API怎么用
准备工作
- 首先注册一个百度账号,具体过程不详细说了,注意,由于国家规定,这个百度账号必须实名验证,否则登录百度智能云后无法操作!
- 申请测试(文心千帆服务体验申请 (baidu.com)) ,根据要求填写表格并提交,然后静等审核通过,审核后百度将会发送通知信息到你的邮箱和短信上。
- 收到 审核通过通知后打开百度智能云(百度智能云-云智一体深入产业),登录账号,点击右上角的控制台。
创建应用
- 进入控制台,点击“已下单产品”中的“文心千帆大模型平台 ”。
- 进入页面,点击创建应用中的“去创建”。
- 根据需求填写下表,然后点击“立即创建”。
- 创建完成后会自动返回应用列表,这个时候你可以看到此应用的所有信息。
调用API
- 来到主控台,点击“调用服务”的API文档。依次找到API鉴权与调用——API调用指南——在线调试——示例代码中心。
- 进入调试。这里面有示例的代码。
- 找到示例代码,将代码复制到所用编译器。(我用的是Python)
- 此时数据依然是空,我给一个我处理好的例子
-
import requestsimport jsonAPI_KEY = "填充你应用的API Key"SECRET_KEY = "填写你应用的Secret Key"def main(): url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=" + get_access_token() payload = json.dumps({ "messages": [ { "role": "user", "content": "你要询问AI的内容" }, ] }) headers = { 'Content-Type': 'application/json' } response = requests.request("POST", url, headers=headers, data=payload) aso = response.text result = json.loads(aso) print(result['result'])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"))if __name__ == '__main__': main()
解释一下:这里需要你填充你的API Key, Secret Key,位置在应用列表里。还需要填充你问AI的问题,也就是它,把问题输进去即可。(这里的role不需要管,它代表角色是用户)
按照示例代码运行,程序返回的结果是字典格式,需要按照我的代码处理一下,处理后再次运行就可以得到想要的结果了。
运行
这里的问题是“你是谁”,
程序运行结果如下
如果你觉得这样不方便,还可以把它做成GUI。
GUI界面
代码如下
# 学霸小鼠研发团队真心话大冒险项目,你问小鼠真心话,小鼠让你大冒险from tkinter import *from tkinter import messageboximport jsonimport requestsAPI_KEY = "API KEY内容"SECRET_KEY = "Secret Key内容"def main(): win = Tk() win.geometry('600x500+0+0') win.title('学霸小鼠研发团队-你问我答') win.resizable(False, False) win.config(background='light green') Label(win, text='你问我答', font=('黑体', 20), bg='light green').pack() Label(win, text='小鼠Bot(AI)', font=('宋体', 15), bg='light green').pack(pady=10) e3 = Text(win, width=55, height=15, relief=FLAT, font=('宋体', 15)) scrollbary = Scrollbar(win, orient=VERTICAL) # 滚轮初始 scrollbary.pack(fill=Y, side=RIGHT) e3.pack() scrollbary.config(command=e3.yview) e3.config(yscrollcommand=scrollbary.set) e3.configure(state='disable') # e3.configure(state='normal') Label(win, text='提问区', font=('宋体', 15), bg='light green').pack(pady=5) e5 = Text(win, width=66, height=2, relief=FLAT, font=('楷体', 10)) e5.place(x=15, y=420) def question(): e3.configure(state='normal') e3.delete('1.0', 'end') url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=" + get_access_token() payload = json.dumps({ "messages": [ { "role": "user", "content": e5.get('1.0', 'end') }, ] }) headers = { 'Content-Type': 'application/json' } response = requests.request("POST", url, headers=headers, data=payload) aso = response.text result = json.loads(aso) e3.insert('1.0', result['result']) e3.configure(state='disable') Button(win, text='提问', bg='blue', fg='white', width=10, height=1, relief=FLAT, command=question).place(x=485, y=420) Label(win, text='本产品由百度文心千帆的提供服务,作者:学霸小鼠研发团队(复杂问题可能会卡顿,属于正常现象,请耐心等待)', font=('宋体', 8), bg='light green').pack(side='bottom') win.mainloop()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"))if __name__ == '__main__': main()
只不过这个程序容易卡,有没有大神指点一下。。。