日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Function-Calling應(yīng)用流

本模板介紹如何使用LangStudio構(gòu)建Function-Calling應(yīng)用流。在該應(yīng)用流中,開發(fā)者可以提供多個函數(shù),將問題以及函數(shù)描述傳遞給LLM,讓LLM返回合適的函數(shù)名和參數(shù),然后通過Python節(jié)點執(zhí)行對應(yīng)的函數(shù),返回結(jié)果。根據(jù)需要,開發(fā)者可以在本模板基礎(chǔ)上進行二次開發(fā)。

LLM 工具使用介紹

toolsOpenAI API中的一個可選參數(shù),用于使模型生成符合指定規(guī)范的工具參數(shù)。

說明

模型并不會實際執(zhí)行任何工具調(diào)用,開發(fā)者需要根據(jù)模型輸出自行執(zhí)行工具調(diào)用。

通過設(shè)置tools參數(shù)傳遞可用工具列表,并將tool_choice參數(shù)設(shè)置為auto,模型會自動選擇使用某個工具。tools參數(shù)格式可參考下面的代碼示例。

如果使用了tools,輸出響應(yīng)將包含"finish_reason": "tool_calls",并附帶一個tool_calls對象,該對象包含需要調(diào)用的工具名稱和工具參數(shù)。根據(jù)工具名稱,開發(fā)者可以執(zhí)行相應(yīng)的操作。

import openai

# 定義函數(shù)
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Get the current weather in a given location",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {"type": "string", "description": "The city and state, e.g. San Francisco, CA"},
                    "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
                },
                "required": ["location"]
            }
        }
    }
]

# 使用函數(shù)
response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo-0613",
    messages=[{"role": "user", "content": "What's the weather like in Boston?"}],
    tools=tools,
    tool_choice="auto"  # 讓模型自己決定是否使用函數(shù)
)

# 檢查是否有函數(shù)調(diào)用
if response.choices[0].message.tool_calls:
    # 處理函數(shù)調(diào)用
    function_call = response.choices[0].message.tool_calls[0]
    # ... 執(zhí)行相應(yīng)的操作 ...
    

詳細信息可參考OpenAI API文檔

快速上手

創(chuàng)建連接

構(gòu)建應(yīng)用流前,您需要準備如下工作:

  1. 開通大模型服務(wù)平臺百煉。

    • 訪問阿里云百煉大模型服務(wù)平臺 開通服務(wù)。

    • 在控制臺創(chuàng)建API Key,用于調(diào)用Qwen-Max、通義萬相、語音合成CosyVoice大模型服務(wù)。

    • 連接管理中創(chuàng)建百煉大模型服務(wù)連接,并將api_key填入對應(yīng)字段。具體操作,請參見連接管理

      dashscope

  2. 申請SerpApi Key。

    • 訪問SerpApi 官網(wǎng)注冊賬號并獲取API Key,用于調(diào)用搜索引擎。

    • 連接管理中創(chuàng)建自定義連接。具體操作,請參見連接管理

      serp

構(gòu)建應(yīng)用流

參考應(yīng)用流開發(fā),構(gòu)建如下應(yīng)用流節(jié)點:

  1. gather_tool

    python節(jié)點,用于生成全部tools描述。tools描述要求符合OpenAI API規(guī)范,詳情可參考OpenAI API文檔。模板中該節(jié)點合并輸出預(yù)制tools和自定義tools的描述,其中自定義tools使用user_define_tool.json文件進行描述。

  2. function_call_router

    LLM節(jié)點,以Function calling方式調(diào)用LLM,需要配置如下參數(shù):

    • connection:選擇前面創(chuàng)建的百煉大模型服務(wù)連接。

    • model:選擇支持Function calling的模型,例如qwen-max,詳細模型列表見模型列表

  3. search

    • search_connection:選擇前面配置的SerpApi自定義連接。

    • num:搜索引擎返回結(jié)果數(shù)量。

    • location:搜索引擎需要的位置信息。

    • engine輸入搜索引擎,該模板僅支持BingBaidu,其他搜索引擎請自行修改模板支持。

    說明

    可自定義該節(jié)點,使用其他方式調(diào)用搜索引擎。

  4. answer_with_search

    LLM節(jié)點,接收search節(jié)點搜索的結(jié)果,并將搜索結(jié)果和問題傳給LLM,生成回答,需要配置如下參數(shù):

    • connection:選擇前面創(chuàng)建的百煉大模型服務(wù)連接。

    • model:模型名,例如qwen-max,詳細模型列表見模型列表

  5. image_synthesis

    python節(jié)點,用于調(diào)用百煉大模型服務(wù),生成圖像,需要配置如下參數(shù):

    • dashscope_connection:選擇前面配置的百煉大模型服務(wù)連接,本模板會默認調(diào)用通義萬相。

  6. voice_synthesis

    python節(jié)點,用于調(diào)用百煉大模型服務(wù),生成語音,需要配置如下參數(shù):

    • dashscope_connection:選擇前面配置的百煉大模型服務(wù)連接,本模板會調(diào)用語音合成CosyVoice。

  7. direct_generate

    python節(jié)點,如果function_call_router判斷不做function調(diào)用,直接生成回答,則會通過該節(jié)點透傳回答。

  8. gather_output

    python節(jié)點,用于收集并合并所有節(jié)點的輸出。

測試應(yīng)用流

  1. 首先,單擊右上角啟動運行時按鈕,配置運行資源以及VPC。這里VPC需要和數(shù)據(jù)庫所在的VPC保持一致,或者已經(jīng)打通。

    nl2sql-vpc

  2. 等待運行時啟動完成,單擊右上角對話按鈕,開始對話。

    fc-calling-output

部署應(yīng)用流

測試完成,單擊右上角部署按鈕,填寫服務(wù)名/部署資源組、VPC信息,將工作流部署成EAS服務(wù)。這里的VPC同樣需要和數(shù)據(jù)庫所在的VPC保持一致。服務(wù)調(diào)用方法請參見調(diào)用方式概覽

fc-calling-deploy