目录
一、概要
在Unity中使用在线大模型分为两篇发布,此篇文档为在Python中使用千帆大模型,整体实现逻辑是:在Python中接入大模型—>发布为可传参的exe文件—>Unity调用。
二、环境说明
- 编辑器:PyCharm
- 官网下载连接:https://www.jetbrains.com/zh-cn/pycharm/promo/
- 编程语言:Python
- Python依赖包:qianfan、wxPython
- 数据模型:百度千帆(在线)
三、申请百度千帆Key
1.进入官网:百度智能云千帆大模型平台ModelBuilder (baidu.com)
2.点击立即使用
3.进入百度智能云千帆大模型平台
4.进入安全认证
5.单击创建Access Key,单击后即可看到下方自动生成一条Key
其他:在过程中可能会出现余额不足无法进行到下一步的情况,充值几块钱即可,用作测试妥妥花不完
四、使用千帆大模型
1.新建一个Python项目在终端中下载千帆依赖包
2.命令:pip install qianfan
3.粘贴以下代码块
import os
import qianfan
import wx
os.environ["QIANFAN_ACCESS_KEY"] = ""
os.environ["QIANFAN_SECRET_KEY"] = ""
chat_comp = qianfan.ChatCompletion()
# 调用默认模型,ERNIE-Lite-8K-0922(即ERNIE-Bot-turbo)
def qf(sendmessage):
resp = chat_comp.do(model="ERNIE-Bot", messages=[{
"role": "user",
"content": str(sendmessage)
}])
return resp["result"]
print(qf('你好'))
4.回到百度千帆安全认证处(本文3-4位置)
5.将Access Key和Secret Key分别填入给代码行第5行和第6行赋值
至此,运行代码。
其他:代码页中qf(sendmessage)方法中的参数就是向百度千帆模型发送的消息,通过结构体会返回一组字典数组数据,其中将这个数据中的result值就是返回的具体内容,将此拿出来单独显示即可
四、给大模型套壳
将代码封装到一个假模假样的问答界面中
效果展示:
开始实操!
1.继续回到我们的PyCharm
2.在终端中下载可视化依赖包,命令:pip install wxPython
3.粘贴如下代码:
import os
import qianfan
import wx
os.environ["QIANFAN_ACCESS_KEY"] = "ALTAK7qtCfC3zpqXu0CQnlLRcW"
os.environ["QIANFAN_SECRET_KEY"] = "4dff827da43744ada16a44690231addc"
chat_comp = qianfan.ChatCompletion()
# 调用默认模型,ERNIE-Lite-8K-0922(即ERNIE-Bot-turbo)
def qf(sendmessage):
resp = chat_comp.do(model="ERNIE-Bot", messages=[{
"role": "user",
"content": str(sendmessage)
}])
return resp["result"]
class Fr(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title="百度千帆大模型测试", pos=(0, 50), size=(450, 460))
self.pl = wx.Panel(self)
self.resurttext = wx.TextCtrl(self.pl, size=(400,300), pos=(10,10), style=wx.TE_READONLY | wx.TE_MULTILINE)
self.sendtext = wx.TextCtrl(self.pl, size=(400,50), pos=(10,320), style=wx.TE_MULTILINE)
self.btn = wx.Button(self.pl, label="发送", size=(80,30), pos=(150, 380))
self.Bind(wx.EVT_BUTTON, self.btnclick, self.btn)
def btnclick(self, event):
result = qf(self.sendtext.GetValue())
self.resurttext.AppendText(str(self.sendtext.GetValue() + '\n' + result + '\n'))
self.sendtext.Clear()
if __name__ == '__main__':
app = wx.App()
fream = Fr()
fream.Show()
app.MainLoop()
运行!
到此只是接入了在线大模型的服务,可以进行基础的问答