<|begin_of_text|><|start_header_id|>system<|end_header_id|>Environment: ipythonTools: brave_search, wolfram_alphaCutting Knowledge Date: December 2023Today Date: 23 Jul 2024You are a helpful assistant<|eot_id|><|start_header_id|>user<|end_header_id|>What is the current weather in Menlo Park, California?<|eot_id|><|start_header_id|>assistant<|end_header_id|>
步骤 - 1 用户提示和系统提示
<|begin_of_text|><|start_header_id|>system<|end_header_id|>Environment: ipythonTools: brave_search, wolfram_alphaCutting Knowledge Date: December 2023Today Date: 23 Jul 2024You are a helpful Assistant.<|eot_id|><|start_header_id|>user<|end_header_id|>Can you help me solve this equation: x^3 - 4x^2 + 6x - 24 = 0<|eot_id|><|start_header_id|>assistant<|end_header_id|>
步骤 - 2 模型确定调用哪个工具
<|python_tag|>wolfram_alpha.call(query="solvex^3-4x^2+6x-24=0")<|eom_id|>
步骤 - 3 由工具即 Wolfram Alpha 生成响应。
{"queryresult":{"success":true,"inputstring":"solvex^3-4x^2+6x-24=0","pods":[{"title":"Inputinterpretation","subpods":[{"title":"","plaintext":"solvex^3-4x^2+6x-24=0"}]},{"title":"Results","primary":true,"subpods":[{"title":"","plaintext":"x=4"},{"title":"","plaintext":"x=±(isqrt(6))"}]},...]}}步骤 - 4 使用工具响应重新提示模型
<|begin_of_text|><|start_header_id|>system<|end_header_id|>Environment: ipythonTools: brave_search, wolfram_alphaCutting Knowledge Date: December 2023Today Date: 23 Jul 2024You are a helpful Assistant.<|eot_id|><|start_header_id|>user<|end_header_id|>Can you help me solve this equation: x^3 - 4x^2 + 6x - 24 = 0<|eot_id|><|start_header_id|>assistant<|end_header_id|><|python_tag|>wolfram_alpha.call(query="solve x^3 - 4x^2 + 6x - 24 = 0")<|eom_id|><|start_header_id|>ipython<|end_header_id|>{"queryresult": {"success": true, "inputstring": "solve x^3 - 4x^2 + 6x - 24 = 0", "pods": [{"title": "Input interpretation", "subpods": [{"title": "", "plaintext": "solve x^3 - 4 x^2 + 6 x - 24 = 0"}]}, {"title": "Results", "primary": true, "subpods": [{"title": "", "plaintext": "x = 4"}, {"title": "", "plaintext": "x = \u00b1 (i sqrt(6))"}]}, ... ]}}<|eot_id|><|start_header_id|>assistant<|end_header_id|>
步骤 - 5 智能体对用户的回复
Thesolutionstotheequationx^3-4x^2+6x-24=0arex=4andx=±(i√6).<|eot_id|>
Meta Llama 3.1模型现在可以从单个消息输出自定义工具调用,以便更轻松地调用工具。模型本身并不执行调用;它提供结构化输出以方便执行器调用。可以在llama-agentic-system中找到一个示例执行器,工具格式类似于OpenAI 定义。
使用自定义工具调用时,要使模型输出eom_id,需要在系统提示符中添加以下指令:Environment: ipython。否则,它应该输出eot_id。
需要调整系统提示以告知模型如何处理工具调用输出
工具定义在用户提示中提供,因为这是模型针对内置 JSON 工具调用进行训练的方式。但是,也可以在系统提示中提供工具定义,并获得类似的结果。开发人员必须测试哪种方式最适合他们的用例。
步骤 - 1 用户提示自定义工具详细信息
<|begin_of_text|><|start_header_id|>system<|end_header_id|>Environment: ipythonTools: brave_search, wolfram_alphaCutting Knowledge Date: December 2023Today Date: 23 Jul 2024# Tool Instructions- Always execute python code in messages that you share.- When looking for real time information use relevant functions if available else fallback to brave_searchYou have access to the following functions:Use the function 'spotify_trending_songs' to: Get top trending songs on Spotify{"name": "spotify_trending_songs","description": "Get top trending songs on Spotify","parameters": {"n": {"param_type": "int","description": "Number of trending songs to get","required": true}}}IfayouchoosetocallafunctionONLYreplyinthefollowingformat:<{start_tag}={function_name}>{parameters}{end_tag}wherestart_tag => `<function`parameters => a JSON dict with the function argument name as key and function argument value as value.end_tag => `</function>`Here is an example,<function=example_function_name>{"example_name": "example_value"}</function>Reminder:- Function calls MUST follow the specified format- Required parameters MUST be specified- Only call one function at a time- Put the entire function call reply on one line"- Always add your sources when using search results to answer the user queryYou are a helpful Assistant.<|eot_id|><|start_header_id|>user<|end_header_id|>Can you check the top 5 trending songs on spotify?<|eot_id|><|start_header_id|>assistant<|end_header_id|>
步骤 - 2 模型确定调用哪个工具
{"name":"get_current_conditions","parameters":{"location":"SanFrancisco,CA","unit":"Fahrenheit"}}<eot_id>步骤 - 3 调用工具的结果被传回模型
<|begin_of_text|><|start_header_id|>system<|end_header_id|>You are a helpful assistant with tool calling capabilities. When you receive a tool call response, use the output to format an answer to the orginal use question.<|eot_id|><|start_header_id|>user<|end_header_id|>Given the following functions, please respond with a JSON for a function call with its proper arguments that best answers the given prompt.Respond in the format {"name": function name, "parameters": dictionary of argument name and its value}. Do not use variables.{"type": "function","function": {"name": "get_current_conditions","description": "Get the current weather conditions for a specific location","parameters": {"type": "object","properties": {"location": {"type": "string","description": "The city and state, e.g., San Francisco, CA"},"unit": {"type": "string","enum": ["Celsius", "Fahrenheit"],"description": "The temperature unit to use. Infer this from the user's location."}},"required": ["location", "unit"]}}}Question: what is the weather like in San Fransisco?<|eot_id|><|start_header_id|>assistant<|end_header_id|>{"name": "get_current_conditions", "parameters": {"location": "San Francisco, CA", "unit": "Fahrenheit"}}<|eot_id|><|start_header_id|>ipython<|end_header_id|>Clouds giving way to sun Hi: 76° Tonight: Mainly clear early, then areas of low clouds forming Lo: 56°"<|eot_id|><|start_header_id|>assistant<|end_header_id|>
步骤 - 4 模型生成用户的最终响应
TheweatherinMenloParkiscurrentlycloudywithahighof76°andalowof56°,withclearskiesexpectedtonight.<eot_id>
对于Llama 3.1的强大工具调用功能能力,NVIDIA已与Meta 合作,以确保最新的 Llama 模型能够通过 NVIDIA NIM得到最佳部署。
https://developer.nvidia.com/blog/build-an-agentic-rag-pipeline-with-llama-3-1-and-nvidia-nemo-retriever-nims/https://llama.meta.com/docs/model-cards-and-prompt-formats/llama3_1/https://github.com/meta-llama/llama-agentic-system/tree/main
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |