日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

文心一言大模型-function Calling的应用

發布時間:2024/1/2 44 coder
生活随笔 收集整理的這篇文章主要介紹了 文心一言大模型-function Calling的应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

"大模型的函數調用"(Large Model Function Calling)是一個涉及到在大型人工智能模型,如 GPT-4 或類似的高級深度學習模型中使用函數調用的概念。在這種情況下,函數調用可以有兩種含義:

  • 內部函數調用: 這指的是大型模型在其內部運行時執行的函數調用。這些函數調用是模型的一部分,用于處理輸入,執行復雜的計算,生成預測等。這些內部函數是模型架構的一部分,對于最終用戶通常是不可見的。

  • 外部API調用: 另一種情況是大型模型如 GPT-4 被設計為能夠與外部系統交互,比如通過 API 調用執行某些任務。例如,一個大型模型可能被編程為在需要時調用外部數據庫查詢函數、調用圖像處理服務或執行其他外部功能。

在第二種情況下,大型模型的函數調用通常是指模型作為其生成過程的一部分調用外部服務或功能的能力。這種能力極大地擴展了模型的用途,使其能夠在生成文本、做出決策或執行任務時,集成更廣泛的信息和功能。

接下來本文將做個function calling 外部API調用的demo實例,采用的大模型是文心一言

  1. 準備工作
    安裝qianfan
pip install qianfan

前往百度智能云官網https://console.bce.baidu.com/qianfan/chargemanage/list申請大模型app key和secret key

  1. 需求概述

實現一個旅游景點推薦以及自動下單的功能

  • 用戶給大模型輸入:想去北京*附近的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的应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。