Movatterモバイル変換


[0]ホーム

URL:


Skip to main content
A newer LangChain version is out! Check out thelatest version.
This is documentation for LangChainv0.2, which is no longer actively maintained.
For the current stable version, seethis version (Latest).

How to convert tools to OpenAI Functions

This notebook goes over how to use LangChain tools 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'}]})

Was this page helpful?


You can also leave detailed feedbackon GitHub.


[8]ページ先頭

©2009-2025 Movatter.jp