Mistral-Small-4-119B-2603-eagle工具调用完全指南:构建智能AI助手
Mistral-Small-4-119B-2603-eagle工具调用完全指南构建智能AI助手【免费下载链接】Mistral-Small-4-119B-2603-eagle项目地址: https://ai.gitcode.com/hf_mirrors/mistralai/Mistral-Small-4-119B-2603-eagleMistral-Small-4-119B-2603-eagle是一款功能强大的混合模型能够同时作为通用指令模型和推理模型。它将Instruct、Reasoning以前称为Magistral和Devstral三个不同模型系列的能力统一到一个模型中特别适合构建智能AI助手。核心功能与优势Mistral-Small-4-119B-2603-eagle具备多项令人印象深刻的特性使其成为工具调用场景的理想选择119B参数规模每次token激活6.5B参数平衡性能与效率256k超长上下文窗口支持处理大型文档和复杂对话多模态输入能力可同时接收文本和图像输入原生工具调用功能支持函数调用和JSON输出灵活的推理模式切换可根据需求在快速回复和深度推理模式间切换多语言支持包括英语、中文、日语等数十种语言这些特性使Mistral-Small-4-119B-2603-eagle在构建需要工具调用能力的AI助手上表现出色能够处理从简单指令到复杂推理的各种任务。快速开始环境准备要开始使用Mistral-Small-4-119B-2603-eagle的工具调用功能首先需要准备好运行环境。我们推荐使用vLLM库进行生产级推理。安装步骤安装vLLM nightly版本uv pip install -U vllm \ --torch-backendauto \ --extra-index-url https://wheels.vllm.ai/nightly从源码安装transformersuv pip install githttps://github.com/huggingface/transformers.git确保安装了mistral_common 1.10.0python -c import mistral_common; print(mistral_common.__version__)克隆仓库git clone https://gitcode.com/hf_mirrors/mistralai/Mistral-Small-4-119B-2603-eagle启动服务使用以下命令启动vLLM服务启用工具调用和推理功能vllm serve mistralai/Mistral-Small-4-119B-2603 --max-model-len 262144 --tensor-parallel-size 2 --attention-backend FLASH_ATTN_MLA \ --tool-call-parser mistral --enable-auto-tool-choice --reasoning-parser mistral --max_num_batched_tokens 16384 --max_num_seqs 128 \ --gpu_memory_utilization 0.8 --speculative_config { model: mistralai/Mistral-Small-4-119B-2603-eagle, num_speculative_tokens: 3, method: eagle, max_model_len: 16384 }工具调用基础Mistral-Small-4-119B-2603-eagle的工具调用功能通过定义工具描述和使用特定格式的提示来实现。模型能够根据用户请求自动选择合适的工具并生成调用参数。工具定义格式工具定义需要包含工具名称、描述和参数规范。以下是一个简单的计算器工具定义示例tools [ { type: function, function: { name: my_calculator, description: A calculator that can evaluate a mathematical expression., parameters: { type: object, properties: { expression: { type: string, description: The mathematical expression to evaluate., }, }, required: [expression], }, }, } ]基本调用流程定义工具列表构造包含用户查询的消息调用模型API传入工具定义解析模型返回的工具调用指令执行工具并获取结果将工具结果返回给模型进行最终回答实战示例数学计算助手下面通过一个完整示例展示如何使用Mistral-Small-4-119B-2603-eagle构建一个能够调用计算器工具的数学助手。import json from datetime import datetime, timedelta from openai import OpenAI from huggingface_hub import hf_hub_download # 配置OpenAI客户端以使用vLLM服务 openai_api_key EMPTY openai_api_base http://localhost:8000/v1 client OpenAI( api_keyopenai_api_key, base_urlopenai_api_base, ) # 获取可用模型 models client.models.list() model models.data[0].id # 定义计算器工具 def my_calculator(expression: str) - str: return str(eval(expression)) # 工具定义 tools [ { type: function, function: { name: my_calculator, description: A calculator that can evaluate a mathematical expression., parameters: { type: object, properties: { expression: { type: string, description: The mathematical expression to evaluate., }, }, required: [expression], }, }, } ] # 用户消息 messages [ { role: user, content: 请计算: 3.14 * (5^2) sqrt(144) }, ] # 首次调用模型获取工具调用指令 response client.chat.completions.create( modelmodel, messagesmessages, toolstools, tool_choiceauto, reasoning_efforthigh, ) # 解析工具调用 tool_calls response.choices[0].message.tool_calls # 执行工具调用 results [] for tool_call in tool_calls: function_name tool_call.function.name function_args tool_call.function.arguments if function_name my_calculator: result my_calculator(**json.loads(function_args)) results.append(result) # 将工具调用结果添加到对话历史 messages.append({role: assistant, tool_calls: tool_calls}) for tool_call, result in zip(tool_calls, results): messages.append( { role: tool, tool_call_id: tool_call.id, name: tool_call.function.name, content: result, } ) # 再次调用模型生成最终回答 response client.chat.completions.create( modelmodel, messagesmessages, reasoning_efforthigh, ) print(response.choices[0].message.content)高级技巧与最佳实践推理模式优化Mistral-Small-4-119B-2603-eagle提供了两种推理模式可根据任务复杂度选择reasoning_effortnone快速模式适合简单任务reasoning_efforthigh深度推理模式适合复杂任务和工具调用场景建议在进行工具调用时使用reasoning_efforthigh并配合适当的temperature设置通常0.7左右以获得最佳结果。多轮工具调用对于复杂任务模型可能需要进行多轮工具调用。实现多轮调用的关键是维护对话状态将每次工具调用的结果反馈给模型# 多轮工具调用循环示例 while True: response client.chat.completions.create( modelmodel, messagesmessages, toolstools, tool_choiceauto, reasoning_efforthigh, ) # 检查是否需要工具调用 if response.choices[0].message.tool_calls: # 处理工具调用... # 将结果添加到messages... else: # 生成最终回答 break系统提示优化通过系统提示可以指导模型的行为提高工具调用的准确性。在chat_template.jinja文件中定义了系统提示的处理方式可以通过修改此模板或在代码中设置系统提示来优化模型行为# 设置系统提示示例 messages [ {role: system, content: 你是一个专业的数学助手当遇到计算问题时总是使用计算器工具进行精确计算。}, {role: user, content: 请计算一个半径为5的圆的面积加上一个边长为12的正方形的对角线长度。} ]常见问题与解决方案工具调用格式错误如果模型生成的工具调用格式不正确通常是因为工具定义不够清晰或系统提示不够明确。解决方法包括提供更详细的工具描述和参数说明在系统提示中明确指定工具调用的格式要求使用reasoning_efforthigh提高模型对工具调用格式的关注度模型不调用工具当模型应该调用工具却没有调用时可以尝试在系统提示中明确指示何时应该使用工具提供包含工具调用的示例对话调整temperature参数适当降低随机性处理大型工具集当工具数量较多时建议按类别组织工具在系统提示中引导模型选择合适的工具类别考虑使用工具选择机制先让模型选择工具类型再调用具体工具总结Mistral-Small-4-119B-2603-eagle凭借其强大的工具调用能力、灵活的推理模式和多模态支持为构建智能AI助手提供了理想的基础。通过本文介绍的方法你可以快速上手并充分利用这一模型的潜力创建能够处理复杂任务的AI应用。无论是开发编码助手、研究工具还是企业级智能客服Mistral-Small-4-119B-2603-eagle都能通过其工具调用功能帮助你构建更强大、更智能的AI系统。许可证信息Mistral-Small-4-119B-2603-eagle采用Apache 2.0许可证允许商业和非商业用途。使用时请确保不侵犯任何第三方权利包括知识产权。【免费下载链接】Mistral-Small-4-119B-2603-eagle项目地址: https://ai.gitcode.com/hf_mirrors/mistralai/Mistral-Small-4-119B-2603-eagle创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考