當前位置:
首頁 >
文心一言大模型-function Calling的应用
發布時間:2024/1/2
44
coder
生活随笔
收集整理的這篇文章主要介紹了
文心一言大模型-function Calling的应用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
"大模型的函數調用"(Large Model Function Calling)是一個涉及到在大型人工智能模型,如 GPT-4 或類似的高級深度學習模型中使用函數調用的概念。在這種情況下,函數調用可以有兩種含義:
-
內部函數調用: 這指的是大型模型在其內部運行時執行的函數調用。這些函數調用是模型的一部分,用于處理輸入,執行復雜的計算,生成預測等。這些內部函數是模型架構的一部分,對于最終用戶通常是不可見的。
-
外部API調用: 另一種情況是大型模型如 GPT-4 被設計為能夠與外部系統交互,比如通過 API 調用執行某些任務。例如,一個大型模型可能被編程為在需要時調用外部數據庫查詢函數、調用圖像處理服務或執行其他外部功能。
在第二種情況下,大型模型的函數調用通常是指模型作為其生成過程的一部分調用外部服務或功能的能力。這種能力極大地擴展了模型的用途,使其能夠在生成文本、做出決策或執行任務時,集成更廣泛的信息和功能。
接下來本文將做個function calling 外部API調用的demo實例,采用的大模型是文心一言
- 準備工作
安裝qianfan
pip install qianfan
前往百度智能云官網https://console.bce.baidu.com/qianfan/chargemanage/list申請大模型app key和secret key
- 需求概述
實現一個旅游景點推薦以及自動下單的功能
- 用戶給大模型輸入:想去北京*附近的10公里內的旅游景點
- 大模型理解輸入,獲取關鍵詞position:*,expect_distance:10000,返回需要調用的api function name:
- 用戶輸入:就去天壇公園吧
- 大模型理解輸入,返回需要調用的api function name
代碼實現
import qianfan
import re
with open('prompt.txt',encoding='utf-8') as f:
prompt = f.read()
def function_calling(prompt):
print("user-prompt:"+prompt)
model = "ERNIE-Bot"
print('=' * 30,'大模型-',model,' 輸出 ', '='*30,"\n")
response = chat_comp.do(
model=model,
messages=[{
"role": "user",
"content": prompt
}],
temperature=0.000000001,
functions=[
{
"name": "attractionRecommend",
"description": "景點推薦",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "地址信息,包括省市、街道、門牌號等"
},
"expect_distance": {
"type": "int",
"description": "距離"
}
},
"required": ["location"]
},
"responses": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "商品id"
},
"price": {
"type": "int",
"description": "商品價格"
},
"food": {
"type": "string",
"description": "商品名稱"
},
},
},
},
{
"name": "attractionReservation",
"description": "景點預約",
"parameters": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "景點id"
},
"food": {
"type": "string",
"description": "景點名稱"
},
},
"required": ["id"]
},
"responses": {
"type": "object",
"properties": {
"result": {
"type": "string",
"description": "是否預約成功"
},
}
},
}
]
)
print(response)
return response
chat_comp = qianfan.ChatCompletion(ak="xxx", sk="xxx")
prompt_list = re.split(r"----", prompt)
for prompt in prompt_list:
response = function_calling(prompt)
#拿到response后,解析json,調用自定義的數據表api和下單api
print("\n")
print('=' * 30,"大模型響應結束","="*30)
總結
以上是生活随笔為你收集整理的文心一言大模型-function Calling的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【JVM】一文掌握JVM垃圾回收机制
- 下一篇: 解密Prompt系列22. LLM Ag