From d95e9fb67fd260108223e71e36e2e6ebace23026 Mon Sep 17 00:00:00 2001 From: Pengcheng Liu Date: Fri, 26 Apr 2024 22:18:54 +0800 Subject: [PATCH] docs: add tool calling example in Tongyi chat model integration. (#20925) **Description:** add tool calling example in Tongyi chat model integration. **Issue:** None **Dependencies:** None --- docs/docs/integrations/chat/tongyi.ipynb | 65 ++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 3 deletions(-) diff --git a/docs/docs/integrations/chat/tongyi.ipynb b/docs/docs/integrations/chat/tongyi.ipynb index a80f876ac3..5c74e930a2 100644 --- a/docs/docs/integrations/chat/tongyi.ipynb +++ b/docs/docs/integrations/chat/tongyi.ipynb @@ -141,12 +141,71 @@ "chatLLM(messages)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Tool Calling\n", + "ChatTongyi supports tool calling API that lets you describe tools and their arguments, and have the model return a JSON object with a tool to invoke and the inputs to that tool." + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "AIMessage(content='', additional_kwargs={'tool_calls': [{'function': {'name': 'get_current_weather', 'arguments': '{\"location\": \"San Francisco\"}'}, 'id': '', 'type': 'function'}]}, response_metadata={'model_name': 'qwen-turbo', 'finish_reason': 'tool_calls', 'request_id': 'dae79197-8780-9b7e-8c15-6a83e2a53534', 'token_usage': {'input_tokens': 229, 'output_tokens': 19, 'total_tokens': 248}}, id='run-9e06f837-582b-473b-bb1f-5e99a68ecc10-0', tool_calls=[{'name': 'get_current_weather', 'args': {'location': 'San Francisco'}, 'id': ''}])" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from langchain_community.chat_models.tongyi import ChatTongyi\n", + "from langchain_core.messages import HumanMessage, SystemMessage\n", + "\n", + "tools = [\n", + " {\n", + " \"type\": \"function\",\n", + " \"function\": {\n", + " \"name\": \"get_current_time\",\n", + " \"description\": \"当你想知道现在的时间时非常有用。\",\n", + " \"parameters\": {},\n", + " },\n", + " },\n", + " {\n", + " \"type\": \"function\",\n", + " \"function\": {\n", + " \"name\": \"get_current_weather\",\n", + " \"description\": \"当你想查询指定城市的天气时非常有用。\",\n", + " \"parameters\": {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"location\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"城市或县区,比如北京市、杭州市、余杭区等。\",\n", + " }\n", + " },\n", + " },\n", + " \"required\": [\"location\"],\n", + " },\n", + " },\n", + "]\n", + "\n", + "messages = [\n", + " SystemMessage(content=\"You are a helpful assistant.\"),\n", + " HumanMessage(content=\"What is the weather like in San Francisco?\"),\n", + "]\n", + "chatLLM = ChatTongyi()\n", + "llm_kwargs = {\"tools\": tools, \"result_format\": \"message\"}\n", + "ai_message = chatLLM.bind(**llm_kwargs).invoke(messages)\n", + "ai_message" + ] } ], "metadata": {