精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

又一突破!跨模型的Function_Calling來(lái)了

發(fā)布于 2024-4-19 15:43
瀏覽
0收藏

介紹

大型語(yǔ)言模型(LLM)通過(guò)工具調(diào)用能夠與外部數(shù)據(jù)源進(jìn)行交互。這項(xiàng)技術(shù)讓開(kāi)發(fā)者能夠利用LLM來(lái)獲取、交互和操作外部資源(比如數(shù)據(jù)庫(kù)、文件和API等)。

隨著越來(lái)越多的LLM提供商開(kāi)始提供工具調(diào)用功能,我們注意到市場(chǎng)上出現(xiàn)了多種多樣的接口。為了解決這個(gè)問(wèn)題,LangChain推出了一個(gè)標(biāo)準(zhǔn)化的接口,這樣用戶就可以輕松地在不同的LLM提供商之間進(jìn)行切換。

又一突破!跨模型的Function_Calling來(lái)了-AI.x社區(qū)

這個(gè)標(biāo)準(zhǔn)化接口包括以下幾個(gè)方面:

  • ChatModel.bind_tools:這個(gè)方法允許您將工具的定義附加到模型的調(diào)用過(guò)程中。
  • AIMessage.tool_calls?:這是一個(gè)新增的屬性,它使得從模型返回的 AIMessage 中獲取工具調(diào)用變得更加簡(jiǎn)單。
  • create_tool_calling_agent?:這是一個(gè)構(gòu)建代理的函數(shù),適用于任何實(shí)現(xiàn)了 bind_tools 并且能夠返回 tool_calls 的模型。

下面,我們將詳細(xì)解釋這些組件。

ChatModel.bind_tools

為了讓模型能夠使用工具,我們需要告訴它哪些工具是可以使用的。這可以通過(guò)向模型提供一個(gè)包含工具定義的列表來(lái)實(shí)現(xiàn),這些工具定義包括了工具參數(shù)的模式。不同的模型提供商可能需要不同的格式,但是 ChatModel.bind_tools 提供了一個(gè)統(tǒng)一的接口,讓您可以指定哪些工具對(duì)模型來(lái)說(shuō)是可用的。

這意味著,無(wú)論您使用的是哪種工具調(diào)用模型,代碼的結(jié)構(gòu)都將非常相似。

from langchain_anthropic import ChatAnthropic
from langchain_core.pydantic_v1 import BaseModel, Field
from langchain_core.tools import tool

# ? Pydantic 類(lèi)
class multiply(BaseModel):
    """返回 'x' 和 'y' 的乘積。"""
    x: float = Field(..., descriptinotallow="第一個(gè)因子")
    y: float = Field(..., descriptinotallow="第二個(gè)因子")
    
# ? LangChain 工具
@tool
def exponentiate(x: float, y: float) -> float:
    """將 'x' 乘以 'y'。"""
    return x**y
    
# ? 函數(shù)

def subtract(x: float, y: float) -> float:
    """從 'y' 中減去 'x'。"""
    return y-x
    
# ? OpenAI 格式字典
# 還可以傳入一個(gè)帶有 "title" 和 "description" 的 JSON 模式
add = {
  "name": "add",
  "description": "將 'x' 和 'y' 相加。",
  "parameters": {
    "type": "object",
    "properties": {
      "x": {"type": "number", "description": "要相加的第一個(gè)數(shù)字"},
      "y": {"type": "number", "description": "要相加的第二個(gè)數(shù)字"}
    },
    "required": ["x", "y"]
  }
}

llm = ChatAnthropic(model="claude-3-sonnet-20240229", temperature=0)

# 每當(dāng)我們調(diào)用 `llm_with_tool` 時(shí),這三個(gè)工具定義
# 都會(huì)被傳遞給模型。
llm_with_tools = llm.bind_tools([multiply, exponentiate, add, subtract])

如果我們想使用不同的工具調(diào)用模型,我們的代碼看起來(lái)會(huì)非常相似:

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4-turbo", temperature=0)
llm_with_tools = llm.bind_tools([multiply, exponentiate, add, subtract])

那么調(diào)用 llm_with_tools 會(huì)是什么樣子呢?這就是 AIMessage.tool_calls 的用武之地。

AIMessage.tool_calls

在過(guò)去,當(dāng)使用工具調(diào)用模型時(shí),模型返回的工具調(diào)用可能會(huì)放在 AIMessage.additional_kwargs 或 AIMessage.content 中,這取決于模型提供商的API,并遵循特定于提供商的格式。現(xiàn)在,AIMessage.tool_calls 提供了一個(gè)標(biāo)準(zhǔn)化的接口來(lái)獲取模型的工具調(diào)用。這樣,在調(diào)用了綁定了工具的模型之后,您將得到一個(gè)包含 tool_calls 屬性的輸出,其中列出了所有的工具調(diào)用。

在調(diào)用了綁定工具的模型之后,您將得到以下形式的輸出:

llm_with_tools.invoke([
 ("system", "你是一個(gè)有用的助手"), 
 ("human", "5 的 2.743 次方是多少"),
])

# ?? 注意 tool_calls 屬性 ??

# -> AIMessage(
#    cnotallow=..., 
#    additional_kwargs={...},
#    tool_calls=[{'name': 'exponentiate', 'args': {'y': 2.743, 'x': 5.0}, 'id': '54c166b2-f81a-481a-9289-eea68fc84e4f'}]
#    response_metadata={...}, 
#    id='...'
#   )

其中 AIMessage 有一個(gè) tool_calls: List[ToolCall] 屬性,如果有工具調(diào)用,它將被填充,并將遵循工具調(diào)用的標(biāo)準(zhǔn)接口:

class ToolCall(TypedDict):
  name: str
  args: Dict[str, Any]
 id: Optional[str]

也就是說(shuō),無(wú)論您是在調(diào)用 Anthropic、OpenAI、Gemini 等,只要有工具調(diào)用,它將以 AIMessage.tool_calls 形式作為 ToolCall 出現(xiàn)。

我們還添加了一些其他屬性,用于處理流式工具調(diào)用塊和無(wú)效工具調(diào)用。有關(guān)這些的更多信息,請(qǐng)閱讀工具調(diào)用文檔 這里。

create_tool_calling_agent

利用LLM的工具調(diào)用能力來(lái)構(gòu)建代理是一個(gè)非常強(qiáng)大的應(yīng)用場(chǎng)景。我們已經(jīng)有了一個(gè) create_openai_tools_agent() 構(gòu)造函數(shù),它可以方便地構(gòu)建一個(gè)符合OpenAI工具調(diào)用API的代理。但是,這個(gè)構(gòu)造函數(shù)并不適用于Anthropic和Gemini等模型。現(xiàn)在,有了 bind_tools() 和 tool_calls 這兩個(gè)新接口,我們推出了 create_tool_calling_agent(),它能夠與任何支持工具調(diào)用的模型一起工作。

from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import ConfigurableField
from langchain_core.tools import tool
from langchain.agents import create_tool_calling_agent, AgentExecutor

@tool
def multiply(x: float, y: float) -> float:
    """將 'x' 乘以 'y'。"""
    return x * y

@tool
def exponentiate(x: float, y: float) -> float:
    """將 'x' 乘以 'y' 的指數(shù)。"""
    return x**y

@tool
def add(x: float, y: float) -> float:
    """將 'x' 和 'y' 相加。"""
    return x + y

prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一個(gè)有用的助手"), 
    ("human", "{input}"), 
    ("placeholder", "{agent_scratchpad}"),
])

tools = [multiply, exponentiate, add]

llm = ChatAnthropic(model="claude-3-sonnet-20240229", temperature=0)

agent = create_tool_calling_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

agent_executor.invoke({"input": "3 加上 5 的 2.743 次方是多少。還有 17.24 減去 918.1241 是多少。"})

我們可以使用 VertexAI 替代:

from langchain_google_vertexai import ChatVertexAI

llm = ChatVertexAI(
 model="gemini-pro", 
 temperature=0, 
 convert_system_message_to_human=True
)
agent = create_tool_calling_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

agent_executor.invoke({"input": "3 加上 5 的 2.743 次方是多少。還有 17.24 減去 918.1241 是多少。"})

或者 OpenAI:

llm = ChatOpenAI(model="gpt-3.5-turbo-0125", temperature=0)

agent = create_tool_calling_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

agent_executor.invoke({"input": "3 加上 5 的 2.743 次方是多少。還有 17.24 減去 918.1241 是多少。"})

等等。

有關(guān)新代理的完整文檔,請(qǐng)查看 https://python.langchain.com/docs/modules/agents/agent_types/tool_calling。

總結(jié)

我們預(yù)計(jì),將原生工具調(diào)用功能引入LLM的趨勢(shì)將繼續(xù)下去。我們希望這個(gè)標(biāo)準(zhǔn)化的工具調(diào)用接口能夠幫助LangChain用戶節(jié)省時(shí)間和精力,并使他們能夠更容易地在不同的LLM提供商之間進(jìn)行切換。

本文轉(zhuǎn)載自 ??AI小智??,作者: AI小智

收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
色婷婷综合久色| 国产成人综合精品三级| 91老司机福利 在线| 97激碰免费视频| 欧美人妻一区二区三区| 日韩欧国产精品一区综合无码| 亚洲精品美国一| 久久婷婷国产综合尤物精品| 一区二区视频免费| 亚洲精品九九| 久久精品色欧美aⅴ一区二区| 美女扒开腿免费视频| 精品欧美日韩精品| 亚洲一级不卡视频| 中文字幕不卡每日更新1区2区| 欧美 日韩 国产 在线| 欧美a级理论片| 欧美贵妇videos办公室| 俄罗斯毛片基地| 精品精品国产毛片在线看| 欧美日韩一区国产| 日韩av一二三四区| 黄色污污视频在线观看| 日本一二三不卡| 久久精品中文字幕一区二区三区 | www男人天堂| 麻豆久久久久| 一本一道综合狠狠老| 日本五级黄色片| 看黄网站在线| 欧美韩国一区二区| 欧美久久久久久久| 污污的视频网站在线观看| 国产精品一二三四| 国产欧美一区二区| 这里只有久久精品视频| 美女91精品| 欧美一级大片视频| 精品久久免费视频| 激情久久久久| 欧美黑人性猛交| 欧美黑人一级片| 偷拍欧美精品| 在线精品国产成人综合| 成人在线一级片| 中国av一区| 日韩av资源在线播放| 亚洲少妇中文字幕| 北条麻妃在线一区二区免费播放| 日韩一卡二卡三卡国产欧美| 在线播放黄色av| 蜜桃精品视频| 欧美一级午夜免费电影| 免费看av软件| 在线激情网站| 中文字幕欧美国产| 色综合久久88色综合天天提莫| 欧美精品久久久久久久久久丰满| 91在线高清观看| 久久综合一区| 国产日产精品久久久久久婷婷| 99久精品国产| 裸模一区二区三区免费| 日本亚洲一区| 国产清纯在线一区二区www| 色狠狠久久av五月综合| 日本成人在线播放| 亚洲人成电影网站色mp4| 国产奶头好大揉着好爽视频| 黄色成人影院| 亚洲国产一区二区在线播放| 男人日女人下面视频| 国产免费不卡| 欧美日韩aaaaaa| 日本一二三四区视频| 91九色鹿精品国产综合久久香蕉| 欧美精品一区二区三区高清aⅴ | 91干在线观看| 精品视频一二三区| 精品在线免费观看| 国产成人免费观看| 可以免费看污视频的网站在线| 中文字幕第一区| 成人国产一区二区三区| 无遮挡爽大片在线观看视频| 欧美午夜理伦三级在线观看| 天堂av手机在线| 欧美18免费视频| 亚洲色图校园春色| 朝桐光av在线| 久操精品在线| 日韩资源在线观看| 国产大片中文字幕| 日韩—二三区免费观看av| 91精品久久久久久久久久久| 亚洲AV午夜精品| 久久综合色综合88| 日韩精品久久一区二区| 擼擼色在线看观看免费| 欧美另类一区二区三区| 精品国产一区在线| 国产国产精品| 奇门遁甲1982国语版免费观看高清| 在线观看免费视频一区| 成人av在线影院| 宅男av一区二区三区| 男人的天堂免费在线视频| 欧美高清性hdvideosex| 国产精品第七页| 91精品精品| 国产91精品在线播放| a在线观看视频| 国产目拍亚洲精品99久久精品| 99久久久精品视频| 91精品国产一区二区在线观看| 日韩经典中文字幕| 福利所第一导航| 日韩电影在线看| 久久99欧美| 久草在线新免费首页资源站| 欧美日韩中文字幕精品| 国产精品二区三区| 国产亚洲精品久久久久久豆腐| 中文字幕一区二区三区久久网站| 18性欧美xxxⅹ性满足| 97超碰资源站| 国产午夜亚洲精品不卡| 欧美中日韩在线| 视频欧美精品| 亚洲欧美中文字幕| 日本一区二区三区免费视频| 国产精品伊人色| 亚洲精品美女久久7777777| 成人爱爱网址| 日韩激情av在线播放| 国产第一页在线播放| 国产在线看一区| 中文字幕日韩精品一区二区| 日韩中文在线播放| 亚洲片国产一区一级在线观看| 日产亚洲一区二区三区| 国产91精品入口| 影音先锋成人资源网站| www 久久久| 久久中文字幕国产| 国产精品人人爽| 亚洲欧美在线另类| 天天干天天玩天天操| 日韩欧美1区| 国产欧美日韩亚洲精品| 色综合久久影院| 欧美婷婷六月丁香综合色| 熟女高潮一区二区三区| 久久久久国产精品一区三寸| 欧美精品v日韩精品v国产精品| 51精品在线| 日韩精品视频中文在线观看| 在线免费观看毛片| 99久久国产免费看| 37pao成人国产永久免费视频| 国产精品黄网站| 91精品国产成人| 亚洲人成色777777精品音频| 欧美日韩一区免费| 精品人伦一区二区三电影| 日韩中文字幕91| 欧美性视频在线播放| 精品视频一二| 久久久久亚洲精品成人网小说| 免费看黄网站在线观看| 精品久久久久久久久久久久| 国产ts丝袜人妖系列视频| 老牛嫩草一区二区三区日本 | 在线看成人短视频| 国产成人精品免高潮费视频| 国产高清一级毛片在线不卡| 欧美日韩免费高清一区色橹橹 | 亚洲午夜久久久| 亚洲av无码国产精品久久| 日韩国产欧美一区二区三区| 一区二区精品在线观看| 91嫩草精品| 国产mv免费观看入口亚洲| 素人av在线| 亚洲国产精品美女| 最近中文字幕av| 夜夜夜精品看看| 成人免费无遮挡无码黄漫视频| 国产真实乱对白精彩久久| av7777777| 不卡av一区二区| 岛国一区二区三区高清视频| 厕沟全景美女厕沟精品| 欧美成人激情视频免费观看| 日本中文字幕一区二区有码在线| 欧美日韩一区视频| 免费日韩一级片| 国产精品久久久久久久久免费相片| 日韩av成人网| 青青草一区二区三区| 粉嫩av一区二区三区天美传媒| 婷婷综合电影| 亚洲一区亚洲二区亚洲三区| 中日韩脚交footjobhd| 久久亚洲精品成人| 国产午夜精品一区理论片| 欧美一区二区视频观看视频| 五月婷婷激情视频| 亚洲一区二区视频在线观看| 能直接看的av| 久久女同性恋中文字幕| 18深夜在线观看免费视频| 肉色丝袜一区二区| 欧美在线一区视频| 亚洲先锋影音| 亚洲国产精品一区在线观看不卡| 老汉色老汉首页av亚洲| 亚洲aa中文字幕| 日韩欧美精品一区二区综合视频| 久久久亚洲天堂| 综合久久2019| 精品国偷自产在线视频99| 免费a在线观看| 日韩av影片在线观看| 国产成人精品毛片| 欧美日韩精品专区| 亚洲高清在线看| 日韩欧美亚洲综合| 在线观看 中文字幕| 一区二区三区久久久| 男女男精品视频网站| 欧美激情在线看| 乐播av一区二区三区| 26uuu成人网一区二区三区| 成人在线电影网站| 成人av免费观看| 亚洲成年人av| 大陆成人av片| 国产乱淫av麻豆国产免费| 国产乱码精品一区二区三区av| 亚洲最大成人在线观看| 日韩av网站免费在线| 日韩一级在线免费观看| 成人豆花视频| 国产噜噜噜噜久久久久久久久| 小黄鸭精品aⅴ导航网站入口| 69影院欧美专区视频| 国产在线天堂www网在线观看| 91国产美女视频| 福利在线免费视频| 久久久久久12| 国产传媒av在线| 97av在线影院| sis001欧美| 国产国语videosex另类| 日韩经典一区| 国产欧美日韩视频| 九九九九九九精品任你躁| 92国产精品久久久久首页| 永久免费精品视频| 国产区日韩欧美| 亚洲三级精品| 五月天久久狠狠| 国产精品久久久乱弄| 国内外成人激情免费视频| 欧美精品国产一区| 日韩a∨精品日韩在线观看| 亚洲一区图片| 欧美一级特黄a| 国产裸体歌舞团一区二区| 男人午夜视频在线观看| 国产精品99久| 亚洲狠狠婷婷综合久久久久图片| 久久精品视频一区| 国产午夜精品理论片| 亚洲伊人伊色伊影伊综合网| 日本一级片免费看| 欧美午夜精品一区二区三区| 999国产精品视频免费| 亚洲成色www8888| 久久经典视频| 久久99国产精品久久久久久久久| ****av在线网毛片| 国产成人精品久久| 欧美高清一级片| 每日更新在线观看av| 精品国产31久久久久久| 销魂美女一区二区| 91精品欧美一区二区三区综合在| 亚洲精品国产精品国| 亚洲男人天堂2024| 成a人片在线观看| 日韩av成人在线| 精品国产麻豆| 欧美裸体网站| 欧美激情精品久久久六区热门| 9l视频自拍蝌蚪9l视频成人| 国产精品高精视频免费| 亚洲最大的免费视频网站| 国产偷久久久精品专区| 欧美丝袜一区| 草草视频在线免费观看| 超碰国产一区| 成人h视频在线观看播放| 北条麻妃一区二区三区在线观看 | 偷窥自拍亚洲色图精选| 亚洲一区二区三区精品视频| 亚洲区第一页| 99日在线视频| 51精品视频一区二区三区| 人妻无码中文字幕| 中文字幕在线成人| aa视频在线观看| 91精品久久久久久久久久久久久 | 久久精品久久精品国产大片| 99久久夜色精品国产亚洲1000部| 欧美亚洲国产成人| 国产suv精品一区二区883| 国产精品无码无卡无需播放器| 亚洲福利视频导航| 国产按摩一区二区三区| 这里只有精品久久| 欧美精品高清| 精品久久sese| 91久久黄色| 国产调教打屁股xxxx网站| √…a在线天堂一区| 日本黄色中文字幕| 亚洲欧美国产日韩天堂区| segui88久久综合9999| 成人av免费看| 亚洲精品成人无限看| 一个色综合久久| 国产精品网曝门| 日本成人一级片| 亚洲人线精品午夜| 波多野结衣亚洲一二三| 鲁丝一区鲁丝二区鲁丝三区| 一区二区三区精品视频在线观看| 18深夜在线观看免费视频| 亚洲精品国产无套在线观| 国产裸体永久免费无遮挡| www国产精品com| 91九色成人| 18视频在线观看娇喘| 激情五月婷婷综合| 暗呦丨小u女国产精品| 正在播放一区二区| 岛国中文字幕在线| 亚洲va欧美va国产综合剧情| 欧美.www| 国产精品无码自拍| 亚洲国产精品尤物yw在线观看| 亚洲精品97久久中文字幕无码| 欧美高清在线播放| 国产在线播放精品| 久久久免费视频网站| 国产日韩欧美亚洲| 国产一区二区三区四区视频 | 2020av在线| 欧美系列一区| 久久精品国产第一区二区三区| 国产淫片免费看| 国产亚洲一区二区三区在线观看| 懂色av蜜臀av粉嫩av分享吧最新章节| 亚洲性xxxx| 国产aa精品| 日本福利视频一区| 2020国产精品久久精品美国| 久久久久久久亚洲| 久久精品视频免费播放| 最新国产精品精品视频| 国产极品尤物在线| 国产日本一区二区| 国产乱码精品一区二三区蜜臂 | 精油按摩中文字幕久久| 欧美黄色免费在线观看| 亚洲电影免费观看高清| 欧美aaa视频| 日本一道在线观看| 91丨九色porny丨蝌蚪| 欧美性受xxx黑人xyx性爽| 不卡毛片在线看| 亚洲精品进入| 182午夜视频| 欧美三级免费观看| 巨大荫蒂视频欧美大片| 国产区二精品视| 久久国产精品露脸对白| 亚洲精品在线观看av| 夜夜嗨av色综合久久久综合网| 欧美久久亚洲| 日本精品久久久久中文字幕| 亚洲色图都市小说| 欧美日本韩国一区二区| 91精品中国老女人| 玖玖在线精品| 亚洲精品午夜久久久久久久| 色偷偷88888欧美精品久久久 | 精品一区二区日韩|