Movatterモバイル変換


[0]ホーム

URL:


Skip to main content
OurBuilding Ambient Agents with LangGraph course is now available on LangChain Academy!
Open In ColabOpen on GitHub

How to convert tools to OpenAI Functions

This notebook goes over how to use LangChaintools as OpenAI functions.

%pip install-qU langchain-community langchain-openai
from langchain_community.toolsimport MoveFileTool
from langchain_core.messagesimport HumanMessage
from langchain_core.utils.function_callingimport convert_to_openai_function
from langchain_openaiimport ChatOpenAI
model= ChatOpenAI(model="gpt-3.5-turbo")
tools=[MoveFileTool()]
functions=[convert_to_openai_function(t)for tin tools]
functions[0]
{'name': 'move_file',
'description': 'Move or rename a file from one location to another',
'parameters': {'type': 'object',
'properties': {'source_path': {'description': 'Path of the file to move',
'type': 'string'},
'destination_path': {'description': 'New path for the moved file',
'type': 'string'}},
'required': ['source_path', 'destination_path']}}
message= model.invoke(
[HumanMessage(content="move file foo to bar")], functions=functions
)
message
AIMessage(content='', additional_kwargs={'function_call': {'arguments': '{\n  "source_path": "foo",\n  "destination_path": "bar"\n}', 'name': 'move_file'}})
message.additional_kwargs["function_call"]
{'name': 'move_file',
'arguments': '{\n "source_path": "foo",\n "destination_path": "bar"\n}'}

With OpenAI chat models we can also automatically bind and convert function-like objects withbind_functions

model_with_functions= model.bind_functions(tools)
model_with_functions.invoke([HumanMessage(content="move file foo to bar")])
AIMessage(content='', additional_kwargs={'function_call': {'arguments': '{\n  "source_path": "foo",\n  "destination_path": "bar"\n}', 'name': 'move_file'}})

Or we can use the update OpenAI API that usestools andtool_choice instead offunctions andfunction_call by usingChatOpenAI.bind_tools:

model_with_tools= model.bind_tools(tools)
model_with_tools.invoke([HumanMessage(content="move file foo to bar")])
AIMessage(content='', additional_kwargs={'tool_calls': [{'id': 'call_btkY3xV71cEVAOHnNa5qwo44', 'function': {'arguments': '{\n  "source_path": "foo",\n  "destination_path": "bar"\n}', 'name': 'move_file'}, 'type': 'function'}]})

[8]ページ先頭

©2009-2025 Movatter.jp