精品欧美一区二区三区在线观看 _久久久久国色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)推薦
国产在线网站| 在线观看亚洲欧美| 日本在线成人| 婷婷久久综合九色综合绿巨人| 在线播放精品一区二区三区| 蜜臀视频一区二区三区| 黄色在线视频网站| yourporn久久国产精品| 日韩美女免费观看| 欧美在线视频第一页| 欧美男男freegayvideosroom| 国产日韩v精品一区二区| 国产在线视频不卡| 91成人福利视频| 亚洲理论电影片| 宅男在线国产精品| 成人在线免费观看av| 欧洲不卡av| 91理论电影在线观看| 成人网页在线免费观看| 国产特黄大片aaaa毛片| 97精品在线| 日韩精品视频免费专区在线播放| 成人网站免费观看入口| 精品影院一区| 成人精品国产一区二区4080| 国产欧美日韩中文字幕| 久久久久久久久久久久久久av| 欧美网色网址| 69精品人人人人| 国产又黄又猛视频| a级片在线免费| 亚洲人成影院在线观看| 久久久一本精品99久久精品| 精品久久久久中文慕人妻| 久久综合网络一区二区| 国内久久久精品| 日本aⅴ在线观看| 成人婷婷网色偷偷亚洲男人的天堂| 日韩欧亚中文在线| 欧美精品在欧美一区二区| 在线观看麻豆| 欧美激情综合在线| 国产日本一区二区三区| 国产激情视频在线播放| 久久99热国产| 国产精品吴梦梦| 波多野结衣视频在线看| 亚洲永久视频| 26uuu另类亚洲欧美日本一| 九九视频免费看| 欧美1区2区3区| 久久亚洲精品网站| 黑人操日本美女| 日韩激情免费| 色午夜这里只有精品| 色欲av无码一区二区三区| 啪啪激情综合网| 亚洲国产精品va在线| 亚洲成a人无码| 日韩中文字幕无砖| 日韩欧美国产一二三区| 日本黄色www| 国产亚洲观看| 日韩无一区二区| 日本成人在线免费| 永久免费精品视频| 亚洲国产91色在线| 美国黄色a级片| 一呦二呦三呦国产精品| 亚洲人成在线观看| 嘿嘿视频在线观看| 国产精品99视频| 久久精品99无色码中文字幕| 看免费黄色录像| 欧美日本免费| 国内外成人免费激情在线视频网站 | caoporn超碰97| 澳门av一区二区三区| 欧美亚洲国产一区二区三区| 999在线观看| 日韩在线成人| 精品视频—区二区三区免费| 99久久精品免费视频| 妖精一区二区三区精品视频 | 日本xxxxxxx免费视频| 在线免费日韩片| 在线一区二区三区做爰视频网站| 中文字幕日韩精品无码内射| 日韩电影免费观看| 欧美午夜性色大片在线观看| 色综合手机在线| 视频一区中文字幕精品| 亚洲精品一区二区三区精华液| 少妇一级淫免费播放| 欧美日韩午夜电影网| 日韩精品免费电影| 自拍偷拍第9页| 亚洲网站在线| 国产精品扒开腿做爽爽爽视频| 日韩字幕在线观看| 日韩av电影一区| 亚洲综合色激情五月| 亚洲AV成人无码一二三区在线| 九一九一国产精品| 国产99视频精品免费视频36| 精品欧美不卡一区二区在线观看| caoporn国产一区二区| 日韩欧美亚洲日产国产| 日韩经典av| 欧美午夜精品一区| 国产不卡一二三| 天天av综合| 欧美中在线观看| 国内毛片毛片毛片毛片| 久久亚洲精品小早川怜子| 久久久成人精品一区二区三区| 国产黄色在线网站| 色一区在线观看| 最新日本中文字幕| 91精品国产福利在线观看麻豆| 日韩一区二区av| 国产精品国产三级国产专区52| 在线 亚洲欧美在线综合一区| 精品中文字幕在线2019| 一级片在线观看免费| 国产99一区视频免费| 亚洲欧洲另类精品久久综合| 少妇淫片在线影院| 精品三级在线看| 精品国产国产综合精品| 狂野欧美性猛交xxxx巴西| 国产精品v欧美精品∨日韩| 欧美被日视频| 在线观看中文字幕不卡| 免费成人深夜夜行p站| 欧美三级黄美女| 亚洲自拍欧美色图| 欧美18hd| 欧美绝品在线观看成人午夜影视| 丰满少妇一区二区三区专区 | 国产精品国产精品| 超碰国产在线| 日本福利一区二区| 性久久久久久久久久| 1000部精品久久久久久久久| 97久久天天综合色天天综合色hd| 亚洲欧美色视频| 午夜久久久影院| 国产成人精品一区二区在线小狼| 欧美一级三级| 亚州成人av在线| 欧美 中文字幕| 亚洲成人激情自拍| 亚洲成av人片在线观看无| 一区久久精品| 国内一区在线| 自拍偷拍欧美视频| 精品亚洲一区二区三区在线播放 | jizz中国女人| 亚洲欧美国产毛片在线| 国产不卡的av| 黑人一区二区三区四区五区| 国产aⅴ精品一区二区三区黄| 猫咪在线永久网站| 色哟哟一区二区| 熟女少妇内射日韩亚洲| 巨乳诱惑日韩免费av| 视频一区二区三| 色狠狠一区二区三区| 按摩亚洲人久久| 精品久久久久成人码免费动漫| 国产网站一区二区| 色片在线免费观看| 亚洲国产不卡| 国产视频在线观看一区| 亚洲私拍视频| 最新国产精品亚洲| 国产后入清纯学生妹| 一区二区三区在线观看网站| 在线xxxxx| 另类激情亚洲| 一区二区三区欧美在线| 亚洲欧美日本国产| 欧美有码在线视频| 1024国产在线| 精品久久国产97色综合| 国产精品久久久久久久久久久久久久久久久| 激情综合五月天| 日韩精品在线观看av| 免费久久精品| 国产美女直播视频一区| 羞羞网站在线看| 亚洲欧美一区二区三区久久 | 国产精品亚洲网站| 午夜视频免费看| 欧美在线free| 国产精品成人av久久| 欧美经典一区二区| 男人的天堂免费| 老司机午夜精品视频在线观看| 久久久福利视频| 日韩免费在线电影| 91精品国产电影| 黄a在线观看| 亚洲欧美在线第一页| a级片免费视频| 日本高清不卡视频| 青娱乐国产在线| 欧美激情一区二区三区不卡| 熟妇高潮一区二区| 久久福利视频一区二区| 国内外成人激情视频| 亚洲有吗中文字幕| 日本免费高清不卡| 国产精品午夜av| 91精品在线国产| 香蕉视频亚洲一级| 69视频在线播放| 18av在线播放| 中文字幕日韩精品有码视频| 午夜av免费观看| 日韩免费福利电影在线观看| 国产九色91回来了| 欧美日韩在线另类| 国产一级黄色av| 亚洲欧美日韩中文字幕一区二区三区 | 99久久久久国产精品免费| 三级成人在线| 欧美性受xxx| brazzers在线观看| 欧美大片免费观看在线观看网站推荐| www视频在线| 欧美久久久久中文字幕| 国产乱码在线观看| 一本色道久久加勒比精品| 日本五十熟hd丰满| 亚洲一区二区三区视频在线播放| 中文字幕在线视频播放| 精品一区二区三区久久| 日本在线观看免费视频| 麻豆亚洲精品| 日本三级免费网站| 国产日韩欧美一区| 免费不卡av在线| 亚洲激情精品| 青青草国产精品视频| 在线精品在线| 人人干视频在线| 亚洲乱码视频| 水蜜桃色314在线观看| 国产一区观看| 成人av在线不卡| 激情欧美国产欧美| 蜜臀av无码一区二区三区| 国内精品福利| 我的公把我弄高潮了视频| 亚洲黄色影片| 日韩欧美视频网站| 久久久久免费| 欧美三级理论片| 久久99精品久久久久婷婷| 国内外成人免费在线视频| 美女视频一区在线观看| 97超碰成人在线| 激情都市一区二区| 国产又粗又猛又爽又黄| 国产91精品一区二区麻豆亚洲| 91看片就是不一样| 亚洲精品美女91| 中国丰满人妻videoshd| 亚洲欧美日韩国产| 国产精品视频黄色| 琪琪一区二区三区| 天堂中文av在线| 国产成人av一区| 亚洲精品女人久久久| 国产亚洲一区二区三区四区| 免费黄色在线网址| 一区二区三区四区五区视频在线观看| 少妇无套高潮一二三区| 久久精品夜夜夜夜久久| 激情高潮到大叫狂喷水| 一区二区三区国产豹纹内裤在线 | 亚洲欧美乱综合| 青娱乐91视频| 色哟哟国产精品| 中文字幕人成人乱码亚洲电影| 欧美日韩在线看| 一级黄色片免费| 欧美精品一区二区蜜臀亚洲| 日本一区二区三区在线观看视频| 日韩欧美国产一二三区| 三级理论午夜在线观看| 最近2019年日本中文免费字幕| 国外av在线| 久久精品国产成人精品| 暧暧视频在线免费观看| 国产精品久久久久影院日本| 精品国产三级| 欧美日韩一区二区三| 亚洲欧美文学| 青青草av网站| 成人看片黄a免费看在线| 久久国产柳州莫菁门| 尤物视频一区二区| 波多野结衣在线观看视频| 日韩一区二区三区av| 青春有你2免费观看完整版在线播放高清| 亚洲成人网av| 日本高清在线观看wwwww色| 国外色69视频在线观看| 亚洲狼人综合| 蜜桃视频在线观看91| 欧美精品三级| 亚欧美在线观看| 26uuu精品一区二区三区四区在线| 精品视频站长推荐| 中文字幕一区二区三区不卡| 你懂的国产在线| 日韩精品专区在线影院重磅| 91电影在线播放| 欧美亚洲成人xxx| avtt综合网| 亚洲天堂第一区| 久久丁香综合五月国产三级网站| 手机在线免费毛片| 国产精品午夜久久| 久久久精品福利| 亚洲大胆美女视频| 在线观看中文| 91精品视频专区| 99久久99视频只有精品| 91视频免费版污| 久久久久久久综合色一本| 日韩免费不卡视频| 精品国产91洋老外米糕| av网址在线| 国产啪精品视频网站| 欧美在线观看视频一区| 黑鬼大战白妞高潮喷白浆| 99精品国产99久久久久久白柏| 影音先锋制服丝袜| 色天天综合久久久久综合片| 欧美一区二不卡视频| 欧美国产日本在线| 亚洲午夜精品| 成人免费在线视频播放| 国产精品亚洲第一| 麻豆精品一区二区三区视频| 欧美妇女性影城| 久操视频在线观看| 亚洲bt天天射| 国产精品九九| 天天躁日日躁狠狠躁av| 亚洲成a人v欧美综合天堂下载 | 不卡视频一区| 欧美在线网站| 黑人无套内谢中国美女| 亚洲日本青草视频在线怡红院| 欧美在线观看不卡| 亚洲欧洲一区二区三区在线观看| 国产精品一区二区三区视频网站| 久久久噜噜噜久噜久久| 福利欧美精品在线| 欧美黄色免费影院| 久久久精品免费网站| 亚洲中文无码av在线| 最近中文字幕2019免费| 国产成人久久精品麻豆二区| 综合操久久久| 高清国产一区二区| 天堂中文字幕在线观看| 欧美区日韩区| 91精品国产91久久久久久吃药| 无码内射中文字幕岛国片| 综合久久2o19| 欧美俄罗斯乱妇| 亚洲精品黑牛一区二区三区| 青青在线视频免费观看| 91影院在线观看| 国产精品无码粉嫩小泬| 久久亚洲精品视频| 色先锋久久影院av| youjizzxxxx18| 一区二区三区在线视频免费| 天天综合永久入口| 国产精品啪视频| 国产综合欧美| 久久成人激情视频| 日韩一区二区免费视频| 中文字幕资源网在线观看免费| 国产成人精品自拍| 午夜在线精品偷拍| 丁香六月激情综合| 精品国产sm最大网站| 成人福利片在线| 男女激情免费视频| 国产日韩欧美一区二区三区乱码| 中文字幕在线欧美|