{ "cells": [ { "cell_type": "code", "execution_count": null, "id": "8779ae67", "metadata": {}, "outputs": [], "source": [ "from openai import OpenAI\n", "from dotenv import load_dotenv \n", "import json\n", "from pydantic import BaseModel\n", "from openai import BadRequestError\n", "import os\n", "\n", "client = OpenAI(base_url=\"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n", " aapi_key=os.getenv(\"BAILIAN_API_KEY\"))\n" ] }, { "cell_type": "code", "execution_count": 40, "id": "a28daf57", "metadata": {}, "outputs": [], "source": [ "def calling_test(param1 : float, param2 : float):\n", " print(\"success\")\n", " print(param1 * param2)" ] }, { "cell_type": "code", "execution_count": 41, "id": "96fa1b69", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{\"id\":\"chatcmpl-d0b30cda-ee7c-9b0b-b592-c8cbc25944a7\",\"choices\":[{\"finish_reason\":\"tool_calls\",\"index\":0,\"logprobs\":null,\"message\":{\"content\":\"\",\"refusal\":null,\"role\":\"assistant\",\"annotations\":null,\"audio\":null,\"function_call\":null,\"tool_calls\":[{\"id\":\"call_ee0d6dfe3cd945e4b76e29\",\"function\":{\"arguments\":\"{\\\"param1\\\": \\\"1651\\\", \\\"param2\\\": \\\"74515\\\"}\",\"name\":\"calling_test\"},\"type\":\"function\",\"index\":0}],\"reasoning_content\":\"\"}}],\"created\":1752051153,\"model\":\"qwen3-4b\",\"object\":\"chat.completion\",\"service_tier\":null,\"system_fingerprint\":null,\"usage\":{\"completion_tokens\":34,\"prompt_tokens\":203,\"total_tokens\":237,\"completion_tokens_details\":null,\"prompt_tokens_details\":null}}\n" ] } ], "source": [ "tools = [\n", " {\n", " \"type\": \"function\",\n", " \"function\": {\n", " \"name\": \"calling_test\",\n", " \"description\": \"调用函数测试用例,作用是打印 两数相乘的结果 \",\n", " \"parameters\":{\n", " \"param1\":{\n", " \"type\":\"string\",\n", " \"description\":\"The test param1.\"\n", " },\n", " \"param2\":{\n", " \"type\":\"string\",\n", " \"description\":\"The test param2.\"\n", " },\n", " }\n", " }\n", " },\n", "]\n", "\n", "response = client.chat.completions.create(\n", " model=\"qwen3-4b\",\n", " messages=[{\"role\": \"user\", \"content\": \"将1651和74515相乘,打印结果\"}],\n", " tools=tools,\n", " extra_body={\"enable_thinking\": False},\n", " tool_choice=\"auto\",\n", ")\n", "\n", "print(response.model_dump_json())\n" ] }, { "cell_type": "code", "execution_count": null, "id": "70a4e1e4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "success\n", "123024265.0\n" ] } ], "source": [ "response_json = json.loads(response.model_dump_json())\n", "if response_json['choices'] and 'tool_calls' in response_json['choices'][0][\"finish_reason\"]:\n", " params = json.loads(response_json['choices'][0][\"message\"][\"tool_calls\"][0][\"function\"][\"arguments\"])\n", " calling_test(float(params[\"param1\"]), float(params[\"param2\"]))\n", "else:\n", " print(\"No tool calls found in the response.\")" ] }, { "cell_type": "code", "execution_count": 2, "id": "9cc7f101", "metadata": {}, "outputs": [ { "ename": "ModuleNotFoundError", "evalue": "No module named 'modelscope'", "output_type": "error", "traceback": [ "\u001b[31m---------------------------------------------------------------------------\u001b[39m", "\u001b[31mModuleNotFoundError\u001b[39m Traceback (most recent call last)", "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[2]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mmodelscope\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m snapshot_download\n\u001b[32m 2\u001b[39m model_dir = snapshot_download(\u001b[33m'\u001b[39m\u001b[33mQwen/Qwen3-0.6B\u001b[39m\u001b[33m'\u001b[39m,cache_dir=\u001b[33m\"\u001b[39m\u001b[33mE:\u001b[39m\u001b[33m\\\u001b[39m\u001b[33mwork_yusys\u001b[39m\u001b[33m\"\u001b[39m)\n", "\u001b[31mModuleNotFoundError\u001b[39m: No module named 'modelscope'" ] } ], "source": [ "from modelscope import snapshot_download\n", "model_dir = snapshot_download('Qwen/Qwen3-0.6B',cache_dir=\"E:\\work_yusys\")\n" ] } ], "metadata": { "kernelspec": { "display_name": "ai-learning", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.13" } }, "nbformat": 4, "nbformat_minor": 5 }