From 836e9fc5450d26eeb4d32ccbecc158da03d5d9b8 Mon Sep 17 00:00:00 2001 From: Mark McDonald Date: Tue, 6 May 2025 21:27:14 +0800 Subject: [PATCH 01/40] Removes model provider defaults from LLM Setup (#2766) This removes any specific model from the "Setting up your LLM" guide, but provides examples for the top-3 providers. This section also conflated "model selection" with "model configuration", where configuration is provider-specific, so I've focused this first section on just model selection, deferring the config to the "provider" section that follows. Co-authored-by: Tony Kipkemboi --- docs/concepts/llms.mdx | 65 +++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 35 deletions(-) diff --git a/docs/concepts/llms.mdx b/docs/concepts/llms.mdx index 560448f21..cefc2705a 100644 --- a/docs/concepts/llms.mdx +++ b/docs/concepts/llms.mdx @@ -27,23 +27,19 @@ Large Language Models (LLMs) are the core intelligence behind CrewAI agents. The -## Setting Up Your LLM +## Setting up your LLM -There are three ways to configure LLMs in CrewAI. Choose the method that best fits your workflow: +There are different places in CrewAI code where you can specify the model to use. Once you specify the model you are using, you will need to provide the configuration (like an API key) for each of the model providers you use. See the [provider configuration examples](#provider-configuration-examples) section for your provider. - The simplest way to get started. Set these variables in your environment: + The simplest way to get started. Set the model in your environment directly, through an `.env` file or in your app code. If you used `crewai create` to bootstrap your project, it will be set already. - ```bash - # Required: Your API key for authentication - OPENAI_API_KEY= + ```bash .env + MODEL=model-id # e.g. gpt-4o, gemini-2.0-flash, claude-3-sonnet-... - # Optional: Default model selection - OPENAI_MODEL_NAME=gpt-4o-mini # Default if not set - - # Optional: Organization ID (if applicable) - OPENAI_ORGANIZATION_ID= + # Be sure to set your API keys here too. See the Provider + # section below. ``` @@ -53,13 +49,13 @@ There are three ways to configure LLMs in CrewAI. Choose the method that best fi Create a YAML file to define your agent configurations. This method is great for version control and team collaboration: - ```yaml + ```yaml agents.yaml {6} researcher: role: Research Specialist goal: Conduct comprehensive research and analysis backstory: A dedicated research professional with years of experience verbose: true - llm: openai/gpt-4o-mini # your model here + llm: provider/model-id # e.g. openai/gpt-4o, google/gemini-2.0-flash, anthropic/claude... # (see provider configuration examples below for more) ``` @@ -74,23 +70,23 @@ There are three ways to configure LLMs in CrewAI. Choose the method that best fi For maximum flexibility, configure LLMs directly in your Python code: - ```python + ```python {4,8} from crewai import LLM # Basic configuration - llm = LLM(model="gpt-4") + llm = LLM(model="model-id-here") # gpt-4o, gemini-2.0-flash, anthropic/claude... # Advanced configuration with detailed parameters llm = LLM( - model="gpt-4o-mini", + model="model-id-here", # gpt-4o, gemini-2.0-flash, anthropic/claude... temperature=0.7, # Higher for more creative outputs - timeout=120, # Seconds to wait for response - max_tokens=4000, # Maximum length of response - top_p=0.9, # Nucleus sampling parameter - frequency_penalty=0.1, # Reduce repetition - presence_penalty=0.1, # Encourage topic diversity + timeout=120, # Seconds to wait for response + max_tokens=4000, # Maximum length of response + top_p=0.9, # Nucleus sampling parameter + frequency_penalty=0.1 , # Reduce repetition + presence_penalty=0.1, # Encourage topic diversity response_format={"type": "json"}, # For structured outputs - seed=42 # For reproducible results + seed=42 # For reproducible results ) ``` @@ -110,7 +106,6 @@ There are three ways to configure LLMs in CrewAI. Choose the method that best fi ## Provider Configuration Examples - CrewAI supports a multitude of LLM providers, each offering unique features, authentication methods, and model capabilities. In this section, you'll find detailed examples that help you select, configure, and optimize the LLM that best fits your project's needs. @@ -407,19 +402,19 @@ In this section, you'll find detailed examples that help you select, configure, - - NVIDIA NIM enables you to run powerful LLMs locally on your Windows machine using WSL2 (Windows Subsystem for Linux). - This approach allows you to leverage your NVIDIA GPU for private, secure, and cost-effective AI inference without relying on cloud services. + + NVIDIA NIM enables you to run powerful LLMs locally on your Windows machine using WSL2 (Windows Subsystem for Linux). + This approach allows you to leverage your NVIDIA GPU for private, secure, and cost-effective AI inference without relying on cloud services. Perfect for development, testing, or production scenarios where data privacy or offline capabilities are required. - + Here is a step-by-step guide to setting up a local NVIDIA NIM model: - + 1. Follow installation instructions from [NVIDIA Website](https://docs.nvidia.com/nim/wsl2/latest/getting-started.html) 2. Install the local model. For Llama 3.1-8b follow [instructions](https://build.nvidia.com/meta/llama-3_1-8b-instruct/deploy) 3. Configure your crewai local models: - + ```python Code from crewai.llm import LLM @@ -441,7 +436,7 @@ In this section, you'll find detailed examples that help you select, configure, config=self.agents_config['researcher'], # type: ignore[index] llm=local_nvidia_nim_llm ) - + # ... ``` @@ -637,19 +632,19 @@ CrewAI supports streaming responses from LLMs, allowing your application to rece When streaming is enabled, responses are delivered in chunks as they're generated, creating a more responsive user experience. - + CrewAI emits events for each chunk received during streaming: - + ```python from crewai import LLM from crewai.utilities.events import EventHandler, LLMStreamChunkEvent - + class MyEventHandler(EventHandler): def on_llm_stream_chunk(self, event: LLMStreamChunkEvent): # Process each chunk as it arrives print(f"Received chunk: {event.chunk}") - + # Register the event handler from crewai.utilities.events import crewai_event_bus crewai_event_bus.register_handler(MyEventHandler()) @@ -785,7 +780,7 @@ Learn how to get the most out of your LLM configuration: Use larger context models for extensive tasks - + ```python # Large context model llm = LLM(model="openai/gpt-4o") # 128K tokens From bfea85d22cae470a31c7ab73001d316192021133 Mon Sep 17 00:00:00 2001 From: Henrique Branco <54143210+HenriqueAJNB@users.noreply.github.com> Date: Tue, 6 May 2025 10:55:05 -0300 Subject: [PATCH 02/40] docs: added Windows bug solving to docs (#2764) Co-authored-by: Tony Kipkemboi --- docs/installation.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/installation.mdx b/docs/installation.mdx index 7c1e09a3b..7a0c8f20c 100644 --- a/docs/installation.mdx +++ b/docs/installation.mdx @@ -71,6 +71,10 @@ If you haven't installed `uv` yet, follow **step 1** to quickly get it set up on ``` + + If you encounter the `chroma-hnswlib==0.7.6` build error (`fatal error C1083: Cannot open include file: 'float.h'`) on Windows, install (Visual Studio Build Tools)[https://visualstudio.microsoft.com/downloads/] with *Desktop development with C++*. + + - To verify that `crewai` is installed, run: ```shell uv tool list From c8ec03424a30d5721aad6d75ac8cfe3c54314699 Mon Sep 17 00:00:00 2001 From: leopardracer <136604165+leopardracer@users.noreply.github.com> Date: Tue, 6 May 2025 22:07:57 +0300 Subject: [PATCH 03/40] Fix typos in documentation and configuration files (#2712) * Update test_lite_agent_structured_output.yaml * Update install_crew.py * Update llms.mdx --------- Co-authored-by: Lucas Gomide --- docs/concepts/llms.mdx | 2 +- src/crewai/cli/install_crew.py | 2 +- tests/cassettes/test_lite_agent_structured_output.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/concepts/llms.mdx b/docs/concepts/llms.mdx index cefc2705a..643ebfe16 100644 --- a/docs/concepts/llms.mdx +++ b/docs/concepts/llms.mdx @@ -378,7 +378,7 @@ In this section, you'll find detailed examples that help you select, configure, | microsoft/phi-3-medium-4k-instruct | 4,096 tokens | Lightweight, state-of-the-art open LLM with strong math and logical reasoning skills. | | microsoft/phi-3-medium-128k-instruct | 128K tokens | Lightweight, state-of-the-art open LLM with strong math and logical reasoning skills. | | microsoft/phi-3.5-mini-instruct | 128K tokens | Lightweight multilingual LLM powering AI applications in latency bound, memory/compute constrained environments | - | microsoft/phi-3.5-moe-instruct | 128K tokens | Advanced LLM based on Mixture of Experts architecure to deliver compute efficient content generation | + | microsoft/phi-3.5-moe-instruct | 128K tokens | Advanced LLM based on Mixture of Experts architecture to deliver compute efficient content generation | | microsoft/kosmos-2 | 1,024 tokens | Groundbreaking multimodal model designed to understand and reason about visual elements in images. | | microsoft/phi-3-vision-128k-instruct | 128k tokens | Cutting-edge open multimodal model exceling in high-quality reasoning from images. | | microsoft/phi-3.5-vision-instruct | 128k tokens | Cutting-edge open multimodal model exceling in high-quality reasoning from images. | diff --git a/src/crewai/cli/install_crew.py b/src/crewai/cli/install_crew.py index 9491932f1..bd0f35879 100644 --- a/src/crewai/cli/install_crew.py +++ b/src/crewai/cli/install_crew.py @@ -4,7 +4,7 @@ import click # Be mindful about changing this. -# on some enviorments we don't use this command but instead uv sync directly +# on some environments we don't use this command but instead uv sync directly # so if you expect this to support more things you will need to replicate it there # ask @joaomdmoura if you are unsure def install_crew(proxy_options: list[str]) -> None: diff --git a/tests/cassettes/test_lite_agent_structured_output.yaml b/tests/cassettes/test_lite_agent_structured_output.yaml index de3885cdd..86718712f 100644 --- a/tests/cassettes/test_lite_agent_structured_output.yaml +++ b/tests/cassettes/test_lite_agent_structured_output.yaml @@ -16,7 +16,7 @@ interactions: answer MUST contain all the information requested in the following format: {\n \"summary\": str,\n \"confidence\": int\n}\n\nIMPORTANT: Ensure the final output does not include any code block markers like ```json or ```python."}, {"role": "user", - "content": "What is the population of Tokyo? Return your strucutred output in + "content": "What is the population of Tokyo? Return your structured output in JSON format with the following fields: summary, confidence"}], "model": "gpt-4o-mini", "stop": []}' headers: From cac06adc6cbd20a2ac0d77a15c6daa106c817de4 Mon Sep 17 00:00:00 2001 From: Tony Kipkemboi Date: Tue, 6 May 2025 17:14:05 -0400 Subject: [PATCH 04/40] docs: update docxsearchtool.mdx (#2767) - add `docx2txt` as a dependency requirement for the tool --- docs/tools/docxsearchtool.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tools/docxsearchtool.mdx b/docs/tools/docxsearchtool.mdx index c3a501dc6..9e7ebee44 100644 --- a/docs/tools/docxsearchtool.mdx +++ b/docs/tools/docxsearchtool.mdx @@ -22,7 +22,7 @@ streamlining the process of finding specific information within large document c Install the crewai_tools package by running the following command in your terminal: ```shell -pip install 'crewai[tools]' +uv pip install docx2txt 'crewai[tools]' ``` ## Example @@ -76,4 +76,4 @@ tool = DOCXSearchTool( ), ) ) -``` \ No newline at end of file +``` From 7fc405408e5cf6ed79542f622aeb9c7c1f673fff Mon Sep 17 00:00:00 2001 From: Lucas Gomide Date: Wed, 7 May 2025 09:33:41 -0300 Subject: [PATCH 05/40] test: fix llama converter tests to remove skip_external_api (#2770) --- .../test_converter_with_llama3_1_model.yaml | 1623 ++++ .../test_converter_with_llama3_2_model.yaml | 6877 +++++++++++++++-- .../test_converter_with_nested_model.yaml | 430 ++ tests/utilities/test_converter.py | 19 +- 4 files changed, 8140 insertions(+), 809 deletions(-) diff --git a/tests/utilities/cassettes/test_converter_with_llama3_1_model.yaml b/tests/utilities/cassettes/test_converter_with_llama3_1_model.yaml index c63e006d9..89ab768a3 100644 --- a/tests/utilities/cassettes/test_converter_with_llama3_1_model.yaml +++ b/tests/utilities/cassettes/test_converter_with_llama3_1_model.yaml @@ -1222,4 +1222,1627 @@ interactions: - chunked http_version: HTTP/1.1 status_code: 200 +- request: + body: '{"model": "llama3.1", "prompt": "### User:\nName: Alice Llama, Age: 30\n\n### + System:\nProduce JSON OUTPUT ONLY! Adhere to this format {\"name\": \"function_name\", + \"arguments\":{\"argument_name\": \"argument_value\"}} The following functions + are available to you:\n{''type'': ''function'', ''function'': {''name'': ''SimpleModel'', + ''description'': ''Correctly extracted `SimpleModel` with all the required parameters + with correct types'', ''parameters'': {''properties'': {''name'': {''title'': + ''Name'', ''type'': ''string''}, ''age'': {''title'': ''Age'', ''type'': ''integer''}}, + ''required'': [''age'', ''name''], ''type'': ''object''}}}\n\n\n", "options": + {}, "stream": false, "format": "json", "images": []}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '668' + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/generate + response: + body: + string: '{"model":"llama3.1","created_at":"2025-05-07T01:16:23.653756921Z","response":"{\"name\": + \"SimpleModel\", \"arguments\":{\"name\": \"Alice Llama\", \"age\": 30}}","done":true,"done_reason":"stop","context":[128006,882,128007,271,14711,2724,512,678,25,30505,445,81101,11,13381,25,220,966,271,14711,744,512,1360,13677,4823,32090,27785,0,2467,6881,311,420,3645,5324,609,794,330,1723,1292,498,330,16774,23118,14819,1292,794,330,14819,3220,32075,578,2768,5865,527,2561,311,499,512,13922,1337,1232,364,1723,518,364,1723,1232,5473,609,1232,364,16778,1747,518,364,4789,1232,364,34192,398,28532,1595,16778,1747,63,449,682,279,2631,5137,449,4495,4595,518,364,14105,1232,5473,13495,1232,5473,609,1232,5473,2150,1232,364,678,518,364,1337,1232,364,928,25762,364,425,1232,5473,2150,1232,364,17166,518,364,1337,1232,364,11924,8439,2186,364,6413,1232,2570,425,518,364,609,4181,364,1337,1232,364,1735,23742,3818,128009,128006,78191,128007,271,5018,609,794,330,16778,1747,498,330,16774,23118,609,794,330,62786,445,81101,498,330,425,794,220,966,3500],"total_duration":5656133628,"load_duration":19896000,"prompt_eval_count":152,"prompt_eval_duration":4544235710,"eval_count":24,"eval_duration":1089740418}' + headers: + Content-Length: + - '1186' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:16:23 GMT + status: + code: 200 + message: OK +- request: + body: '{"name": "llama3.1"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '20' + content-type: + - application/json + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/show + response: + body: + string: "{\"license\":\"LLAMA 3.1 COMMUNITY LICENSE AGREEMENT\\nLlama 3.1 Version + Release Date: July 23, 2024\\n\\n\u201CAgreement\u201D means the terms and + conditions for use, reproduction, distribution and modification of the\\nLlama + Materials set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.1\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are entering + into\\nthis Agreement on such person or entity\u2019s behalf), of the age + required under applicable laws, rules or\\nregulations to provide legal consent + and that has legal authority to bind your employer or such other\\nperson + or entity if you are entering in this Agreement on their behalf.\\n\\n\u201CLlama + 3.1\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at\\nhttps://llama.meta.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.1 and + Documentation (and any\\nportion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, if you are an entity, your\\nprincipal place of business is in the + EEA or Switzerland) and Meta Platforms, Inc. (if you are located\\noutside + of the EEA or Switzerland).\\n\\nBy clicking \u201CI Accept\u201D below or + by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, non-transferable + and royalty-free\\nlimited license under Meta\u2019s intellectual property + or other rights owned by Meta embodied in the Llama\\nMaterials to use, reproduce, + distribute, copy, create derivative works of, and make modifications to the\\nLlama + Materials.\\n\\n b. Redistribution and Use.\\n\\n i. If you distribute + or make available the Llama Materials (or any derivative works\\nthereof), + or a product or service (including another AI model) that contains any of + them, you shall (A)\\nprovide a copy of this Agreement with any such Llama + Materials; and (B) prominently display \u201CBuilt with\\nLlama\u201D on a + related website, user interface, blogpost, about page, or product documentation. + If you use\\nthe Llama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D at\\nthe + beginning of any such AI model name.\\n\\n ii. If you receive Llama Materials, + or any derivative works thereof, from a Licensee as part \\nof an integrated + end user product, then Section 2 of this Agreement will not apply to you.\\n\\n + \ iii. You must retain in all copies of the Llama Materials that you distribute + the following\\nattribution notice within a \u201CNotice\u201D text file distributed + as a part of such copies: \u201CLlama 3.1 is\\nlicensed under the Llama 3.1 + Community License, Copyright \xA9 Meta Platforms, Inc. All Rights\\nReserved.\u201D\\n\\n + \ iv. Your use of the Llama Materials must comply with applicable laws + and regulations\\n(including trade compliance laws and regulations) and adhere + to the Acceptable Use Policy for the Llama\\nMaterials (available at https://llama.meta.com/llama3_1/use-policy), + which is hereby incorporated by\\nreference into this Agreement.\\n\\n2. Additional + Commercial Terms. If, on the Llama 3.1 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, is greater than 700\\nmillion monthly active users + in the preceding calendar month, you must request a license from Meta,\\nwhich + Meta may grant to you in its sole discretion, and you are not authorized to + exercise any of the\\nrights under this Agreement unless or until Meta otherwise + expressly grants you such rights.\\n\\n3. Disclaimer of Warranty. UNLESS REQUIRED + BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY\\nOUTPUT AND RESULTS THEREFROM + ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, WITHOUT WARRANTIES OF\\nANY KIND, + AND META DISCLAIMS ALL WARRANTIES OF ANY KIND, BOTH EXPRESS AND IMPLIED,\\nINCLUDING, + WITHOUT LIMITATION, ANY WARRANTIES OF TITLE, NON-INFRINGEMENT,\\nMERCHANTABILITY, + OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR\\nDETERMINING + THE APPROPRIATENESS OF USING OR REDISTRIBUTING THE LLAMA MATERIALS AND\\nASSUME + ANY RISKS ASSOCIATED WITH YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND\\nRESULTS.\\n\\n4. + Limitation of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE + UNDER ANY THEORY OF\\nLIABILITY, WHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS + LIABILITY, OR OTHERWISE, ARISING\\nOUT OF THIS AGREEMENT, FOR ANY LOST PROFITS + OR ANY INDIRECT, SPECIAL, CONSEQUENTIAL,\\nINCIDENTAL, EXEMPLARY OR PUNITIVE + DAMAGES, EVEN IF META OR ITS AFFILIATES HAVE BEEN ADVISED\\nOF THE POSSIBILITY + OF ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama\\nMaterials, + neither Meta nor Licensee may use any name or mark owned by or associated + with the other\\nor any of its affiliates, except as required for reasonable + and customary use in describing and\\nredistributing the Llama Materials or + as set forth in this Section 5(a). Meta hereby grants you a license to\\nuse + \u201CLlama\u201D (the \u201CMark\u201D) solely as required to comply with + the last sentence of Section 1.b.i. You will\\ncomply with Meta\u2019s brand + guidelines (currently accessible at\\nhttps://about.meta.com/brand/resources/meta/company-brand/ + ). All goodwill arising out of your use\\nof the Mark will inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with\\nrespect to any derivative works and + modifications of the Llama Materials that are made by you, as\\nbetween you + and Meta, you are and will be the owner of such derivative works and modifications.\\n\\n + \ c. If you institute litigation or other proceedings against Meta or any + entity (including a\\ncross-claim or counterclaim in a lawsuit) alleging that + the Llama Materials or Llama 3.1 outputs or\\nresults, or any portion of any + of the foregoing, constitutes infringement of intellectual property or other\\nrights + owned or licensable by you, then any licenses granted to you under this Agreement + shall\\nterminate as of the date such litigation or claim is filed or instituted. + You will indemnify and hold\\nharmless Meta from and against any claim by + any third party arising out of or related to your use or\\ndistribution of + the Llama Materials.\\n\\n6. Term and Termination. The term of this Agreement + will commence upon your acceptance of this\\nAgreement or access to the Llama + Materials and will continue in full force and effect until terminated in\\naccordance + with the terms and conditions herein. Meta may terminate this Agreement if + you are in\\nbreach of any term or condition of this Agreement. Upon termination + of this Agreement, you shall delete\\nand cease use of the Llama Materials. + Sections 3, 4 and 7 shall survive the termination of this\\nAgreement.\\n\\n7. + Governing Law and Jurisdiction. This Agreement will be governed and construed + under the laws of\\nthe State of California without regard to choice of law + principles, and the UN Convention on Contracts\\nfor the International Sale + of Goods does not apply to this Agreement. The courts of California shall + have\\nexclusive jurisdiction of any dispute arising out of this Agreement.\\n\\n# + Llama 3.1 Acceptable Use Policy\\n\\nMeta is committed to promoting safe and + fair use of its tools and features, including Llama 3.1. If you\\naccess or + use Llama 3.1, you agree to this Acceptable Use Policy (\u201CPolicy\u201D). + The most recent copy of\\nthis policy can be found at [https://llama.meta.com/llama3_1/use-policy](https://llama.meta.com/llama3_1/use-policy)\\n\\n## + Prohibited Uses\\n\\nWe want everyone to use Llama 3.1 safely and responsibly. + You agree you will not use, or allow\\nothers to use, Llama 3.1 to:\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 3. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 4. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 5. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 6. Collect, process, disclose, generate, or infer health, demographic, + or other sensitive personal or private information about individuals without + rights and consents required by applicable laws\\n 7. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 8. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n\\n2. + Engage in, promote, incite, facilitate, or assist in the planning or development + of activities that present a risk of death or bodily harm to individuals, + including use of Llama 3.1 related to the following:\\n 1. Military, warfare, + nuclear industries or applications, espionage, use for materials or activities + that are subject to the International Traffic Arms Regulations (ITAR) maintained + by the United States Department of State\\n 2. Guns and illegal weapons + (including weapon development)\\n 3. Illegal drugs and regulated/controlled + substances\\n 4. Operation of critical infrastructure, transportation technologies, + or heavy machinery\\n 5. Self-harm or harm to others, including suicide, + cutting, and eating disorders\\n 6. Any content intended to incite or promote + violence, abuse, or any infliction of bodily harm to an individual\\n\\n3. + Intentionally deceive or mislead others, including use of Llama 3.1 related + to the following:\\n 1. Generating, promoting, or furthering fraud or the + creation or promotion of disinformation\\n 2. Generating, promoting, or + furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 3. Generating, promoting, or further distributing + spam\\n 4. Impersonating another individual without consent, authorization, + or legal right\\n 5. Representing that the use of Llama 3.1 or outputs + are human-generated\\n 6. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n\\nPlease + report any violation of this Policy, software \u201Cbug,\u201D or other problems + that could lead to a violation\\nof this Policy through one of the following + means:\\n\\n* Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://github.com/meta-llama/llama-models/issues)\\n* + Reporting risky content generated by the model: developers.facebook.com/llama_output_feedback\\n* + Reporting bugs and security concerns: facebook.com/whitehat/info\\n* Reporting + violations of the Acceptable Use Policy or unlicensed uses of Llama 3.1: LlamaUseReport@meta.com\",\"modelfile\":\"# + Modelfile generated by \\\"ollama show\\\"\\n# To build a new Modelfile based + on this, replace FROM with:\\n# FROM llama3.1:latest\\n\\nFROM /root/.ollama/models/blobs/sha256-667b0c1932bc6ffc593ed1d03f895bf2dc8dc6df21db3042284a6f4416b06a29\\nTEMPLATE + \\\"\\\"\\\"{{- if or .System .Tools }}\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n{{- + if .System }}\\n\\n{{ .System }}\\n{{- end }}\\n{{- if .Tools }}\\n\\nCutting + Knowledge Date: December 2023\\n\\nWhen you receive a tool call response, + use the output to format an answer to the orginal user question.\\n\\nYou + are a helpful assistant with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- + end }}\\n{{- range $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages + $i)) 1 }}\\n{{- if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\nQuestion: {{ + .Content }}\\u003c|eot_id|\\u003e\\n{{- else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + end }}{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.1 COMMUNITY LICENSE AGREEMENT\\nLlama 3.1 Version Release Date: + July 23, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions for + use, reproduction, distribution and modification of the\\nLlama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.1\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are entering + into\\nthis Agreement on such person or entity\u2019s behalf), of the age + required under applicable laws, rules or\\nregulations to provide legal consent + and that has legal authority to bind your employer or such other\\nperson + or entity if you are entering in this Agreement on their behalf.\\n\\n\u201CLlama + 3.1\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at\\nhttps://llama.meta.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.1 and + Documentation (and any\\nportion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, if you are an entity, your\\nprincipal place of business is in the + EEA or Switzerland) and Meta Platforms, Inc. (if you are located\\noutside + of the EEA or Switzerland).\\n\\nBy clicking \u201CI Accept\u201D below or + by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, non-transferable + and royalty-free\\nlimited license under Meta\u2019s intellectual property + or other rights owned by Meta embodied in the Llama\\nMaterials to use, reproduce, + distribute, copy, create derivative works of, and make modifications to the\\nLlama + Materials.\\n\\n b. Redistribution and Use.\\n\\n i. If you distribute + or make available the Llama Materials (or any derivative works\\nthereof), + or a product or service (including another AI model) that contains any of + them, you shall (A)\\nprovide a copy of this Agreement with any such Llama + Materials; and (B) prominently display \u201CBuilt with\\nLlama\u201D on a + related website, user interface, blogpost, about page, or product documentation. + If you use\\nthe Llama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D at\\nthe + beginning of any such AI model name.\\n\\n ii. If you receive Llama Materials, + or any derivative works thereof, from a Licensee as part \\nof an integrated + end user product, then Section 2 of this Agreement will not apply to you.\\n\\n + \ iii. You must retain in all copies of the Llama Materials that you distribute + the following\\nattribution notice within a \u201CNotice\u201D text file distributed + as a part of such copies: \u201CLlama 3.1 is\\nlicensed under the Llama 3.1 + Community License, Copyright \xA9 Meta Platforms, Inc. All Rights\\nReserved.\u201D\\n\\n + \ iv. Your use of the Llama Materials must comply with applicable laws + and regulations\\n(including trade compliance laws and regulations) and adhere + to the Acceptable Use Policy for the Llama\\nMaterials (available at https://llama.meta.com/llama3_1/use-policy), + which is hereby incorporated by\\nreference into this Agreement.\\n\\n2. Additional + Commercial Terms. If, on the Llama 3.1 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, is greater than 700\\nmillion monthly active users + in the preceding calendar month, you must request a license from Meta,\\nwhich + Meta may grant to you in its sole discretion, and you are not authorized to + exercise any of the\\nrights under this Agreement unless or until Meta otherwise + expressly grants you such rights.\\n\\n3. Disclaimer of Warranty. UNLESS REQUIRED + BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY\\nOUTPUT AND RESULTS THEREFROM + ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, WITHOUT WARRANTIES OF\\nANY KIND, + AND META DISCLAIMS ALL WARRANTIES OF ANY KIND, BOTH EXPRESS AND IMPLIED,\\nINCLUDING, + WITHOUT LIMITATION, ANY WARRANTIES OF TITLE, NON-INFRINGEMENT,\\nMERCHANTABILITY, + OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR\\nDETERMINING + THE APPROPRIATENESS OF USING OR REDISTRIBUTING THE LLAMA MATERIALS AND\\nASSUME + ANY RISKS ASSOCIATED WITH YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND\\nRESULTS.\\n\\n4. + Limitation of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE + UNDER ANY THEORY OF\\nLIABILITY, WHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS + LIABILITY, OR OTHERWISE, ARISING\\nOUT OF THIS AGREEMENT, FOR ANY LOST PROFITS + OR ANY INDIRECT, SPECIAL, CONSEQUENTIAL,\\nINCIDENTAL, EXEMPLARY OR PUNITIVE + DAMAGES, EVEN IF META OR ITS AFFILIATES HAVE BEEN ADVISED\\nOF THE POSSIBILITY + OF ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama\\nMaterials, + neither Meta nor Licensee may use any name or mark owned by or associated + with the other\\nor any of its affiliates, except as required for reasonable + and customary use in describing and\\nredistributing the Llama Materials or + as set forth in this Section 5(a). Meta hereby grants you a license to\\nuse + \u201CLlama\u201D (the \u201CMark\u201D) solely as required to comply with + the last sentence of Section 1.b.i. You will\\ncomply with Meta\u2019s brand + guidelines (currently accessible at\\nhttps://about.meta.com/brand/resources/meta/company-brand/ + ). All goodwill arising out of your use\\nof the Mark will inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with\\nrespect to any derivative works and + modifications of the Llama Materials that are made by you, as\\nbetween you + and Meta, you are and will be the owner of such derivative works and modifications.\\n\\n + \ c. If you institute litigation or other proceedings against Meta or any + entity (including a\\ncross-claim or counterclaim in a lawsuit) alleging that + the Llama Materials or Llama 3.1 outputs or\\nresults, or any portion of any + of the foregoing, constitutes infringement of intellectual property or other\\nrights + owned or licensable by you, then any licenses granted to you under this Agreement + shall\\nterminate as of the date such litigation or claim is filed or instituted. + You will indemnify and hold\\nharmless Meta from and against any claim by + any third party arising out of or related to your use or\\ndistribution of + the Llama Materials.\\n\\n6. Term and Termination. The term of this Agreement + will commence upon your acceptance of this\\nAgreement or access to the Llama + Materials and will continue in full force and effect until terminated in\\naccordance + with the terms and conditions herein. Meta may terminate this Agreement if + you are in\\nbreach of any term or condition of this Agreement. Upon termination + of this Agreement, you shall delete\\nand cease use of the Llama Materials. + Sections 3, 4 and 7 shall survive the termination of this\\nAgreement.\\n\\n7. + Governing Law and Jurisdiction. This Agreement will be governed and construed + under the laws of\\nthe State of California without regard to choice of law + principles, and the UN Convention on Contracts\\nfor the International Sale + of Goods does not apply to this Agreement. The courts of California shall + have\\nexclusive jurisdiction of any dispute arising out of this Agreement.\\n\\n# + Llama 3.1 Acceptable Use Policy\\n\\nMeta is committed to promoting safe and + fair use of its tools and features, including Llama 3.1. If you\\naccess or + use Llama 3.1, you agree to this Acceptable Use Policy (\u201CPolicy\u201D). + The most recent copy of\\nthis policy can be found at [https://llama.meta.com/llama3_1/use-policy](https://llama.meta.com/llama3_1/use-policy)\\n\\n## + Prohibited Uses\\n\\nWe want everyone to use Llama 3.1 safely and responsibly. + You agree you will not use, or allow\\nothers to use, Llama 3.1 to:\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 3. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 4. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 5. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 6. Collect, process, disclose, generate, or infer health, demographic, + or other sensitive personal or private information about individuals without + rights and consents required by applicable laws\\n 7. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 8. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n\\n2. + Engage in, promote, incite, facilitate, or assist in the planning or development + of activities that present a risk of death or bodily harm to individuals, + including use of Llama 3.1 related to the following:\\n 1. Military, warfare, + nuclear industries or applications, espionage, use for materials or activities + that are subject to the International Traffic Arms Regulations (ITAR) maintained + by the United States Department of State\\n 2. Guns and illegal weapons + (including weapon development)\\n 3. Illegal drugs and regulated/controlled + substances\\n 4. Operation of critical infrastructure, transportation technologies, + or heavy machinery\\n 5. Self-harm or harm to others, including suicide, + cutting, and eating disorders\\n 6. Any content intended to incite or promote + violence, abuse, or any infliction of bodily harm to an individual\\n\\n3. + Intentionally deceive or mislead others, including use of Llama 3.1 related + to the following:\\n 1. Generating, promoting, or furthering fraud or the + creation or promotion of disinformation\\n 2. Generating, promoting, or + furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 3. Generating, promoting, or further distributing + spam\\n 4. Impersonating another individual without consent, authorization, + or legal right\\n 5. Representing that the use of Llama 3.1 or outputs + are human-generated\\n 6. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n\\nPlease + report any violation of this Policy, software \u201Cbug,\u201D or other problems + that could lead to a violation\\nof this Policy through one of the following + means:\\n\\n* Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://github.com/meta-llama/llama-models/issues)\\n* + Reporting risky content generated by the model: developers.facebook.com/llama_output_feedback\\n* + Reporting bugs and security concerns: facebook.com/whitehat/info\\n* Reporting + violations of the Acceptable Use Policy or unlicensed uses of Llama 3.1: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop + \ \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"{{- + if or .System .Tools }}\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n{{- + if .System }}\\n\\n{{ .System }}\\n{{- end }}\\n{{- if .Tools }}\\n\\nCutting + Knowledge Date: December 2023\\n\\nWhen you receive a tool call response, + use the output to format an answer to the orginal user question.\\n\\nYou + are a helpful assistant with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- + end }}\\n{{- range $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages + $i)) 1 }}\\n{{- if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\nQuestion: {{ + .Content }}\\u003c|eot_id|\\u003e\\n{{- else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + end }}{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"8.0B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Meta-Llama-3.1\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.license\":\"llama3.1\",\"general.parameter_count\":8030261312,\"general.quantization_version\":2,\"general.size_label\":\"8B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":32,\"llama.attention.head_count_kv\":8,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.block_count\":32,\"llama.context_length\":131072,\"llama.embedding_length\":4096,\"llama.feed_forward_length\":14336,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"token_embd.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,128256]},{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.28.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.28.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.28.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.28.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.28.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.28.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.28.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.28.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.28.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.29.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.29.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.29.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.29.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.29.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.29.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.29.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.29.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.29.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.30.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.30.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.30.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.30.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.30.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.30.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.30.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.30.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.30.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.31.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.31.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.31.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.31.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.31.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.31.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"output.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,128256]},{\"name\":\"blk.31.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.31.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.31.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[4096]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-04-11T14:41:15.05985701Z\"}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:16:23 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"name": "llama3.1"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '20' + content-type: + - application/json + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/show + response: + body: + string: "{\"license\":\"LLAMA 3.1 COMMUNITY LICENSE AGREEMENT\\nLlama 3.1 Version + Release Date: July 23, 2024\\n\\n\u201CAgreement\u201D means the terms and + conditions for use, reproduction, distribution and modification of the\\nLlama + Materials set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.1\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are entering + into\\nthis Agreement on such person or entity\u2019s behalf), of the age + required under applicable laws, rules or\\nregulations to provide legal consent + and that has legal authority to bind your employer or such other\\nperson + or entity if you are entering in this Agreement on their behalf.\\n\\n\u201CLlama + 3.1\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at\\nhttps://llama.meta.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.1 and + Documentation (and any\\nportion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, if you are an entity, your\\nprincipal place of business is in the + EEA or Switzerland) and Meta Platforms, Inc. (if you are located\\noutside + of the EEA or Switzerland).\\n\\nBy clicking \u201CI Accept\u201D below or + by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, non-transferable + and royalty-free\\nlimited license under Meta\u2019s intellectual property + or other rights owned by Meta embodied in the Llama\\nMaterials to use, reproduce, + distribute, copy, create derivative works of, and make modifications to the\\nLlama + Materials.\\n\\n b. Redistribution and Use.\\n\\n i. If you distribute + or make available the Llama Materials (or any derivative works\\nthereof), + or a product or service (including another AI model) that contains any of + them, you shall (A)\\nprovide a copy of this Agreement with any such Llama + Materials; and (B) prominently display \u201CBuilt with\\nLlama\u201D on a + related website, user interface, blogpost, about page, or product documentation. + If you use\\nthe Llama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D at\\nthe + beginning of any such AI model name.\\n\\n ii. If you receive Llama Materials, + or any derivative works thereof, from a Licensee as part \\nof an integrated + end user product, then Section 2 of this Agreement will not apply to you.\\n\\n + \ iii. You must retain in all copies of the Llama Materials that you distribute + the following\\nattribution notice within a \u201CNotice\u201D text file distributed + as a part of such copies: \u201CLlama 3.1 is\\nlicensed under the Llama 3.1 + Community License, Copyright \xA9 Meta Platforms, Inc. All Rights\\nReserved.\u201D\\n\\n + \ iv. Your use of the Llama Materials must comply with applicable laws + and regulations\\n(including trade compliance laws and regulations) and adhere + to the Acceptable Use Policy for the Llama\\nMaterials (available at https://llama.meta.com/llama3_1/use-policy), + which is hereby incorporated by\\nreference into this Agreement.\\n\\n2. Additional + Commercial Terms. If, on the Llama 3.1 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, is greater than 700\\nmillion monthly active users + in the preceding calendar month, you must request a license from Meta,\\nwhich + Meta may grant to you in its sole discretion, and you are not authorized to + exercise any of the\\nrights under this Agreement unless or until Meta otherwise + expressly grants you such rights.\\n\\n3. Disclaimer of Warranty. UNLESS REQUIRED + BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY\\nOUTPUT AND RESULTS THEREFROM + ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, WITHOUT WARRANTIES OF\\nANY KIND, + AND META DISCLAIMS ALL WARRANTIES OF ANY KIND, BOTH EXPRESS AND IMPLIED,\\nINCLUDING, + WITHOUT LIMITATION, ANY WARRANTIES OF TITLE, NON-INFRINGEMENT,\\nMERCHANTABILITY, + OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR\\nDETERMINING + THE APPROPRIATENESS OF USING OR REDISTRIBUTING THE LLAMA MATERIALS AND\\nASSUME + ANY RISKS ASSOCIATED WITH YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND\\nRESULTS.\\n\\n4. + Limitation of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE + UNDER ANY THEORY OF\\nLIABILITY, WHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS + LIABILITY, OR OTHERWISE, ARISING\\nOUT OF THIS AGREEMENT, FOR ANY LOST PROFITS + OR ANY INDIRECT, SPECIAL, CONSEQUENTIAL,\\nINCIDENTAL, EXEMPLARY OR PUNITIVE + DAMAGES, EVEN IF META OR ITS AFFILIATES HAVE BEEN ADVISED\\nOF THE POSSIBILITY + OF ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama\\nMaterials, + neither Meta nor Licensee may use any name or mark owned by or associated + with the other\\nor any of its affiliates, except as required for reasonable + and customary use in describing and\\nredistributing the Llama Materials or + as set forth in this Section 5(a). Meta hereby grants you a license to\\nuse + \u201CLlama\u201D (the \u201CMark\u201D) solely as required to comply with + the last sentence of Section 1.b.i. You will\\ncomply with Meta\u2019s brand + guidelines (currently accessible at\\nhttps://about.meta.com/brand/resources/meta/company-brand/ + ). All goodwill arising out of your use\\nof the Mark will inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with\\nrespect to any derivative works and + modifications of the Llama Materials that are made by you, as\\nbetween you + and Meta, you are and will be the owner of such derivative works and modifications.\\n\\n + \ c. If you institute litigation or other proceedings against Meta or any + entity (including a\\ncross-claim or counterclaim in a lawsuit) alleging that + the Llama Materials or Llama 3.1 outputs or\\nresults, or any portion of any + of the foregoing, constitutes infringement of intellectual property or other\\nrights + owned or licensable by you, then any licenses granted to you under this Agreement + shall\\nterminate as of the date such litigation or claim is filed or instituted. + You will indemnify and hold\\nharmless Meta from and against any claim by + any third party arising out of or related to your use or\\ndistribution of + the Llama Materials.\\n\\n6. Term and Termination. The term of this Agreement + will commence upon your acceptance of this\\nAgreement or access to the Llama + Materials and will continue in full force and effect until terminated in\\naccordance + with the terms and conditions herein. Meta may terminate this Agreement if + you are in\\nbreach of any term or condition of this Agreement. Upon termination + of this Agreement, you shall delete\\nand cease use of the Llama Materials. + Sections 3, 4 and 7 shall survive the termination of this\\nAgreement.\\n\\n7. + Governing Law and Jurisdiction. This Agreement will be governed and construed + under the laws of\\nthe State of California without regard to choice of law + principles, and the UN Convention on Contracts\\nfor the International Sale + of Goods does not apply to this Agreement. The courts of California shall + have\\nexclusive jurisdiction of any dispute arising out of this Agreement.\\n\\n# + Llama 3.1 Acceptable Use Policy\\n\\nMeta is committed to promoting safe and + fair use of its tools and features, including Llama 3.1. If you\\naccess or + use Llama 3.1, you agree to this Acceptable Use Policy (\u201CPolicy\u201D). + The most recent copy of\\nthis policy can be found at [https://llama.meta.com/llama3_1/use-policy](https://llama.meta.com/llama3_1/use-policy)\\n\\n## + Prohibited Uses\\n\\nWe want everyone to use Llama 3.1 safely and responsibly. + You agree you will not use, or allow\\nothers to use, Llama 3.1 to:\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 3. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 4. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 5. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 6. Collect, process, disclose, generate, or infer health, demographic, + or other sensitive personal or private information about individuals without + rights and consents required by applicable laws\\n 7. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 8. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n\\n2. + Engage in, promote, incite, facilitate, or assist in the planning or development + of activities that present a risk of death or bodily harm to individuals, + including use of Llama 3.1 related to the following:\\n 1. Military, warfare, + nuclear industries or applications, espionage, use for materials or activities + that are subject to the International Traffic Arms Regulations (ITAR) maintained + by the United States Department of State\\n 2. Guns and illegal weapons + (including weapon development)\\n 3. Illegal drugs and regulated/controlled + substances\\n 4. Operation of critical infrastructure, transportation technologies, + or heavy machinery\\n 5. Self-harm or harm to others, including suicide, + cutting, and eating disorders\\n 6. Any content intended to incite or promote + violence, abuse, or any infliction of bodily harm to an individual\\n\\n3. + Intentionally deceive or mislead others, including use of Llama 3.1 related + to the following:\\n 1. Generating, promoting, or furthering fraud or the + creation or promotion of disinformation\\n 2. Generating, promoting, or + furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 3. Generating, promoting, or further distributing + spam\\n 4. Impersonating another individual without consent, authorization, + or legal right\\n 5. Representing that the use of Llama 3.1 or outputs + are human-generated\\n 6. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n\\nPlease + report any violation of this Policy, software \u201Cbug,\u201D or other problems + that could lead to a violation\\nof this Policy through one of the following + means:\\n\\n* Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://github.com/meta-llama/llama-models/issues)\\n* + Reporting risky content generated by the model: developers.facebook.com/llama_output_feedback\\n* + Reporting bugs and security concerns: facebook.com/whitehat/info\\n* Reporting + violations of the Acceptable Use Policy or unlicensed uses of Llama 3.1: LlamaUseReport@meta.com\",\"modelfile\":\"# + Modelfile generated by \\\"ollama show\\\"\\n# To build a new Modelfile based + on this, replace FROM with:\\n# FROM llama3.1:latest\\n\\nFROM /root/.ollama/models/blobs/sha256-667b0c1932bc6ffc593ed1d03f895bf2dc8dc6df21db3042284a6f4416b06a29\\nTEMPLATE + \\\"\\\"\\\"{{- if or .System .Tools }}\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n{{- + if .System }}\\n\\n{{ .System }}\\n{{- end }}\\n{{- if .Tools }}\\n\\nCutting + Knowledge Date: December 2023\\n\\nWhen you receive a tool call response, + use the output to format an answer to the orginal user question.\\n\\nYou + are a helpful assistant with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- + end }}\\n{{- range $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages + $i)) 1 }}\\n{{- if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\nQuestion: {{ + .Content }}\\u003c|eot_id|\\u003e\\n{{- else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + end }}{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.1 COMMUNITY LICENSE AGREEMENT\\nLlama 3.1 Version Release Date: + July 23, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions for + use, reproduction, distribution and modification of the\\nLlama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.1\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are entering + into\\nthis Agreement on such person or entity\u2019s behalf), of the age + required under applicable laws, rules or\\nregulations to provide legal consent + and that has legal authority to bind your employer or such other\\nperson + or entity if you are entering in this Agreement on their behalf.\\n\\n\u201CLlama + 3.1\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at\\nhttps://llama.meta.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.1 and + Documentation (and any\\nportion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, if you are an entity, your\\nprincipal place of business is in the + EEA or Switzerland) and Meta Platforms, Inc. (if you are located\\noutside + of the EEA or Switzerland).\\n\\nBy clicking \u201CI Accept\u201D below or + by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, non-transferable + and royalty-free\\nlimited license under Meta\u2019s intellectual property + or other rights owned by Meta embodied in the Llama\\nMaterials to use, reproduce, + distribute, copy, create derivative works of, and make modifications to the\\nLlama + Materials.\\n\\n b. Redistribution and Use.\\n\\n i. If you distribute + or make available the Llama Materials (or any derivative works\\nthereof), + or a product or service (including another AI model) that contains any of + them, you shall (A)\\nprovide a copy of this Agreement with any such Llama + Materials; and (B) prominently display \u201CBuilt with\\nLlama\u201D on a + related website, user interface, blogpost, about page, or product documentation. + If you use\\nthe Llama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D at\\nthe + beginning of any such AI model name.\\n\\n ii. If you receive Llama Materials, + or any derivative works thereof, from a Licensee as part \\nof an integrated + end user product, then Section 2 of this Agreement will not apply to you.\\n\\n + \ iii. You must retain in all copies of the Llama Materials that you distribute + the following\\nattribution notice within a \u201CNotice\u201D text file distributed + as a part of such copies: \u201CLlama 3.1 is\\nlicensed under the Llama 3.1 + Community License, Copyright \xA9 Meta Platforms, Inc. All Rights\\nReserved.\u201D\\n\\n + \ iv. Your use of the Llama Materials must comply with applicable laws + and regulations\\n(including trade compliance laws and regulations) and adhere + to the Acceptable Use Policy for the Llama\\nMaterials (available at https://llama.meta.com/llama3_1/use-policy), + which is hereby incorporated by\\nreference into this Agreement.\\n\\n2. Additional + Commercial Terms. If, on the Llama 3.1 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, is greater than 700\\nmillion monthly active users + in the preceding calendar month, you must request a license from Meta,\\nwhich + Meta may grant to you in its sole discretion, and you are not authorized to + exercise any of the\\nrights under this Agreement unless or until Meta otherwise + expressly grants you such rights.\\n\\n3. Disclaimer of Warranty. UNLESS REQUIRED + BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY\\nOUTPUT AND RESULTS THEREFROM + ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, WITHOUT WARRANTIES OF\\nANY KIND, + AND META DISCLAIMS ALL WARRANTIES OF ANY KIND, BOTH EXPRESS AND IMPLIED,\\nINCLUDING, + WITHOUT LIMITATION, ANY WARRANTIES OF TITLE, NON-INFRINGEMENT,\\nMERCHANTABILITY, + OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR\\nDETERMINING + THE APPROPRIATENESS OF USING OR REDISTRIBUTING THE LLAMA MATERIALS AND\\nASSUME + ANY RISKS ASSOCIATED WITH YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND\\nRESULTS.\\n\\n4. + Limitation of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE + UNDER ANY THEORY OF\\nLIABILITY, WHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS + LIABILITY, OR OTHERWISE, ARISING\\nOUT OF THIS AGREEMENT, FOR ANY LOST PROFITS + OR ANY INDIRECT, SPECIAL, CONSEQUENTIAL,\\nINCIDENTAL, EXEMPLARY OR PUNITIVE + DAMAGES, EVEN IF META OR ITS AFFILIATES HAVE BEEN ADVISED\\nOF THE POSSIBILITY + OF ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama\\nMaterials, + neither Meta nor Licensee may use any name or mark owned by or associated + with the other\\nor any of its affiliates, except as required for reasonable + and customary use in describing and\\nredistributing the Llama Materials or + as set forth in this Section 5(a). Meta hereby grants you a license to\\nuse + \u201CLlama\u201D (the \u201CMark\u201D) solely as required to comply with + the last sentence of Section 1.b.i. You will\\ncomply with Meta\u2019s brand + guidelines (currently accessible at\\nhttps://about.meta.com/brand/resources/meta/company-brand/ + ). All goodwill arising out of your use\\nof the Mark will inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with\\nrespect to any derivative works and + modifications of the Llama Materials that are made by you, as\\nbetween you + and Meta, you are and will be the owner of such derivative works and modifications.\\n\\n + \ c. If you institute litigation or other proceedings against Meta or any + entity (including a\\ncross-claim or counterclaim in a lawsuit) alleging that + the Llama Materials or Llama 3.1 outputs or\\nresults, or any portion of any + of the foregoing, constitutes infringement of intellectual property or other\\nrights + owned or licensable by you, then any licenses granted to you under this Agreement + shall\\nterminate as of the date such litigation or claim is filed or instituted. + You will indemnify and hold\\nharmless Meta from and against any claim by + any third party arising out of or related to your use or\\ndistribution of + the Llama Materials.\\n\\n6. Term and Termination. The term of this Agreement + will commence upon your acceptance of this\\nAgreement or access to the Llama + Materials and will continue in full force and effect until terminated in\\naccordance + with the terms and conditions herein. Meta may terminate this Agreement if + you are in\\nbreach of any term or condition of this Agreement. Upon termination + of this Agreement, you shall delete\\nand cease use of the Llama Materials. + Sections 3, 4 and 7 shall survive the termination of this\\nAgreement.\\n\\n7. + Governing Law and Jurisdiction. This Agreement will be governed and construed + under the laws of\\nthe State of California without regard to choice of law + principles, and the UN Convention on Contracts\\nfor the International Sale + of Goods does not apply to this Agreement. The courts of California shall + have\\nexclusive jurisdiction of any dispute arising out of this Agreement.\\n\\n# + Llama 3.1 Acceptable Use Policy\\n\\nMeta is committed to promoting safe and + fair use of its tools and features, including Llama 3.1. If you\\naccess or + use Llama 3.1, you agree to this Acceptable Use Policy (\u201CPolicy\u201D). + The most recent copy of\\nthis policy can be found at [https://llama.meta.com/llama3_1/use-policy](https://llama.meta.com/llama3_1/use-policy)\\n\\n## + Prohibited Uses\\n\\nWe want everyone to use Llama 3.1 safely and responsibly. + You agree you will not use, or allow\\nothers to use, Llama 3.1 to:\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 3. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 4. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 5. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 6. Collect, process, disclose, generate, or infer health, demographic, + or other sensitive personal or private information about individuals without + rights and consents required by applicable laws\\n 7. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 8. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n\\n2. + Engage in, promote, incite, facilitate, or assist in the planning or development + of activities that present a risk of death or bodily harm to individuals, + including use of Llama 3.1 related to the following:\\n 1. Military, warfare, + nuclear industries or applications, espionage, use for materials or activities + that are subject to the International Traffic Arms Regulations (ITAR) maintained + by the United States Department of State\\n 2. Guns and illegal weapons + (including weapon development)\\n 3. Illegal drugs and regulated/controlled + substances\\n 4. Operation of critical infrastructure, transportation technologies, + or heavy machinery\\n 5. Self-harm or harm to others, including suicide, + cutting, and eating disorders\\n 6. Any content intended to incite or promote + violence, abuse, or any infliction of bodily harm to an individual\\n\\n3. + Intentionally deceive or mislead others, including use of Llama 3.1 related + to the following:\\n 1. Generating, promoting, or furthering fraud or the + creation or promotion of disinformation\\n 2. Generating, promoting, or + furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 3. Generating, promoting, or further distributing + spam\\n 4. Impersonating another individual without consent, authorization, + or legal right\\n 5. Representing that the use of Llama 3.1 or outputs + are human-generated\\n 6. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n\\nPlease + report any violation of this Policy, software \u201Cbug,\u201D or other problems + that could lead to a violation\\nof this Policy through one of the following + means:\\n\\n* Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://github.com/meta-llama/llama-models/issues)\\n* + Reporting risky content generated by the model: developers.facebook.com/llama_output_feedback\\n* + Reporting bugs and security concerns: facebook.com/whitehat/info\\n* Reporting + violations of the Acceptable Use Policy or unlicensed uses of Llama 3.1: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop + \ \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"{{- + if or .System .Tools }}\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n{{- + if .System }}\\n\\n{{ .System }}\\n{{- end }}\\n{{- if .Tools }}\\n\\nCutting + Knowledge Date: December 2023\\n\\nWhen you receive a tool call response, + use the output to format an answer to the orginal user question.\\n\\nYou + are a helpful assistant with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- + end }}\\n{{- range $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages + $i)) 1 }}\\n{{- if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\nQuestion: {{ + .Content }}\\u003c|eot_id|\\u003e\\n{{- else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + end }}{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"8.0B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Meta-Llama-3.1\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.license\":\"llama3.1\",\"general.parameter_count\":8030261312,\"general.quantization_version\":2,\"general.size_label\":\"8B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":32,\"llama.attention.head_count_kv\":8,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.block_count\":32,\"llama.context_length\":131072,\"llama.embedding_length\":4096,\"llama.feed_forward_length\":14336,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"token_embd.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,128256]},{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.28.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.28.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.28.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.28.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.28.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.28.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.28.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.28.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.28.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.29.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.29.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.29.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.29.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.29.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.29.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.29.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.29.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.29.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.30.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.30.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.30.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.30.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.30.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.30.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.30.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.30.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.30.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.31.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.31.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.31.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.31.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.31.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.31.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"output.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,128256]},{\"name\":\"blk.31.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.31.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.31.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[4096]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-04-11T14:41:15.05985701Z\"}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:16:23 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"name": "llama3.1"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '20' + content-type: + - application/json + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/show + response: + body: + string: "{\"license\":\"LLAMA 3.1 COMMUNITY LICENSE AGREEMENT\\nLlama 3.1 Version + Release Date: July 23, 2024\\n\\n\u201CAgreement\u201D means the terms and + conditions for use, reproduction, distribution and modification of the\\nLlama + Materials set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.1\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are entering + into\\nthis Agreement on such person or entity\u2019s behalf), of the age + required under applicable laws, rules or\\nregulations to provide legal consent + and that has legal authority to bind your employer or such other\\nperson + or entity if you are entering in this Agreement on their behalf.\\n\\n\u201CLlama + 3.1\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at\\nhttps://llama.meta.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.1 and + Documentation (and any\\nportion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, if you are an entity, your\\nprincipal place of business is in the + EEA or Switzerland) and Meta Platforms, Inc. (if you are located\\noutside + of the EEA or Switzerland).\\n\\nBy clicking \u201CI Accept\u201D below or + by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, non-transferable + and royalty-free\\nlimited license under Meta\u2019s intellectual property + or other rights owned by Meta embodied in the Llama\\nMaterials to use, reproduce, + distribute, copy, create derivative works of, and make modifications to the\\nLlama + Materials.\\n\\n b. Redistribution and Use.\\n\\n i. If you distribute + or make available the Llama Materials (or any derivative works\\nthereof), + or a product or service (including another AI model) that contains any of + them, you shall (A)\\nprovide a copy of this Agreement with any such Llama + Materials; and (B) prominently display \u201CBuilt with\\nLlama\u201D on a + related website, user interface, blogpost, about page, or product documentation. + If you use\\nthe Llama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D at\\nthe + beginning of any such AI model name.\\n\\n ii. If you receive Llama Materials, + or any derivative works thereof, from a Licensee as part \\nof an integrated + end user product, then Section 2 of this Agreement will not apply to you.\\n\\n + \ iii. You must retain in all copies of the Llama Materials that you distribute + the following\\nattribution notice within a \u201CNotice\u201D text file distributed + as a part of such copies: \u201CLlama 3.1 is\\nlicensed under the Llama 3.1 + Community License, Copyright \xA9 Meta Platforms, Inc. All Rights\\nReserved.\u201D\\n\\n + \ iv. Your use of the Llama Materials must comply with applicable laws + and regulations\\n(including trade compliance laws and regulations) and adhere + to the Acceptable Use Policy for the Llama\\nMaterials (available at https://llama.meta.com/llama3_1/use-policy), + which is hereby incorporated by\\nreference into this Agreement.\\n\\n2. Additional + Commercial Terms. If, on the Llama 3.1 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, is greater than 700\\nmillion monthly active users + in the preceding calendar month, you must request a license from Meta,\\nwhich + Meta may grant to you in its sole discretion, and you are not authorized to + exercise any of the\\nrights under this Agreement unless or until Meta otherwise + expressly grants you such rights.\\n\\n3. Disclaimer of Warranty. UNLESS REQUIRED + BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY\\nOUTPUT AND RESULTS THEREFROM + ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, WITHOUT WARRANTIES OF\\nANY KIND, + AND META DISCLAIMS ALL WARRANTIES OF ANY KIND, BOTH EXPRESS AND IMPLIED,\\nINCLUDING, + WITHOUT LIMITATION, ANY WARRANTIES OF TITLE, NON-INFRINGEMENT,\\nMERCHANTABILITY, + OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR\\nDETERMINING + THE APPROPRIATENESS OF USING OR REDISTRIBUTING THE LLAMA MATERIALS AND\\nASSUME + ANY RISKS ASSOCIATED WITH YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND\\nRESULTS.\\n\\n4. + Limitation of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE + UNDER ANY THEORY OF\\nLIABILITY, WHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS + LIABILITY, OR OTHERWISE, ARISING\\nOUT OF THIS AGREEMENT, FOR ANY LOST PROFITS + OR ANY INDIRECT, SPECIAL, CONSEQUENTIAL,\\nINCIDENTAL, EXEMPLARY OR PUNITIVE + DAMAGES, EVEN IF META OR ITS AFFILIATES HAVE BEEN ADVISED\\nOF THE POSSIBILITY + OF ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama\\nMaterials, + neither Meta nor Licensee may use any name or mark owned by or associated + with the other\\nor any of its affiliates, except as required for reasonable + and customary use in describing and\\nredistributing the Llama Materials or + as set forth in this Section 5(a). Meta hereby grants you a license to\\nuse + \u201CLlama\u201D (the \u201CMark\u201D) solely as required to comply with + the last sentence of Section 1.b.i. You will\\ncomply with Meta\u2019s brand + guidelines (currently accessible at\\nhttps://about.meta.com/brand/resources/meta/company-brand/ + ). All goodwill arising out of your use\\nof the Mark will inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with\\nrespect to any derivative works and + modifications of the Llama Materials that are made by you, as\\nbetween you + and Meta, you are and will be the owner of such derivative works and modifications.\\n\\n + \ c. If you institute litigation or other proceedings against Meta or any + entity (including a\\ncross-claim or counterclaim in a lawsuit) alleging that + the Llama Materials or Llama 3.1 outputs or\\nresults, or any portion of any + of the foregoing, constitutes infringement of intellectual property or other\\nrights + owned or licensable by you, then any licenses granted to you under this Agreement + shall\\nterminate as of the date such litigation or claim is filed or instituted. + You will indemnify and hold\\nharmless Meta from and against any claim by + any third party arising out of or related to your use or\\ndistribution of + the Llama Materials.\\n\\n6. Term and Termination. The term of this Agreement + will commence upon your acceptance of this\\nAgreement or access to the Llama + Materials and will continue in full force and effect until terminated in\\naccordance + with the terms and conditions herein. Meta may terminate this Agreement if + you are in\\nbreach of any term or condition of this Agreement. Upon termination + of this Agreement, you shall delete\\nand cease use of the Llama Materials. + Sections 3, 4 and 7 shall survive the termination of this\\nAgreement.\\n\\n7. + Governing Law and Jurisdiction. This Agreement will be governed and construed + under the laws of\\nthe State of California without regard to choice of law + principles, and the UN Convention on Contracts\\nfor the International Sale + of Goods does not apply to this Agreement. The courts of California shall + have\\nexclusive jurisdiction of any dispute arising out of this Agreement.\\n\\n# + Llama 3.1 Acceptable Use Policy\\n\\nMeta is committed to promoting safe and + fair use of its tools and features, including Llama 3.1. If you\\naccess or + use Llama 3.1, you agree to this Acceptable Use Policy (\u201CPolicy\u201D). + The most recent copy of\\nthis policy can be found at [https://llama.meta.com/llama3_1/use-policy](https://llama.meta.com/llama3_1/use-policy)\\n\\n## + Prohibited Uses\\n\\nWe want everyone to use Llama 3.1 safely and responsibly. + You agree you will not use, or allow\\nothers to use, Llama 3.1 to:\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 3. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 4. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 5. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 6. Collect, process, disclose, generate, or infer health, demographic, + or other sensitive personal or private information about individuals without + rights and consents required by applicable laws\\n 7. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 8. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n\\n2. + Engage in, promote, incite, facilitate, or assist in the planning or development + of activities that present a risk of death or bodily harm to individuals, + including use of Llama 3.1 related to the following:\\n 1. Military, warfare, + nuclear industries or applications, espionage, use for materials or activities + that are subject to the International Traffic Arms Regulations (ITAR) maintained + by the United States Department of State\\n 2. Guns and illegal weapons + (including weapon development)\\n 3. Illegal drugs and regulated/controlled + substances\\n 4. Operation of critical infrastructure, transportation technologies, + or heavy machinery\\n 5. Self-harm or harm to others, including suicide, + cutting, and eating disorders\\n 6. Any content intended to incite or promote + violence, abuse, or any infliction of bodily harm to an individual\\n\\n3. + Intentionally deceive or mislead others, including use of Llama 3.1 related + to the following:\\n 1. Generating, promoting, or furthering fraud or the + creation or promotion of disinformation\\n 2. Generating, promoting, or + furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 3. Generating, promoting, or further distributing + spam\\n 4. Impersonating another individual without consent, authorization, + or legal right\\n 5. Representing that the use of Llama 3.1 or outputs + are human-generated\\n 6. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n\\nPlease + report any violation of this Policy, software \u201Cbug,\u201D or other problems + that could lead to a violation\\nof this Policy through one of the following + means:\\n\\n* Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://github.com/meta-llama/llama-models/issues)\\n* + Reporting risky content generated by the model: developers.facebook.com/llama_output_feedback\\n* + Reporting bugs and security concerns: facebook.com/whitehat/info\\n* Reporting + violations of the Acceptable Use Policy or unlicensed uses of Llama 3.1: LlamaUseReport@meta.com\",\"modelfile\":\"# + Modelfile generated by \\\"ollama show\\\"\\n# To build a new Modelfile based + on this, replace FROM with:\\n# FROM llama3.1:latest\\n\\nFROM /root/.ollama/models/blobs/sha256-667b0c1932bc6ffc593ed1d03f895bf2dc8dc6df21db3042284a6f4416b06a29\\nTEMPLATE + \\\"\\\"\\\"{{- if or .System .Tools }}\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n{{- + if .System }}\\n\\n{{ .System }}\\n{{- end }}\\n{{- if .Tools }}\\n\\nCutting + Knowledge Date: December 2023\\n\\nWhen you receive a tool call response, + use the output to format an answer to the orginal user question.\\n\\nYou + are a helpful assistant with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- + end }}\\n{{- range $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages + $i)) 1 }}\\n{{- if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\nQuestion: {{ + .Content }}\\u003c|eot_id|\\u003e\\n{{- else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + end }}{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.1 COMMUNITY LICENSE AGREEMENT\\nLlama 3.1 Version Release Date: + July 23, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions for + use, reproduction, distribution and modification of the\\nLlama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.1\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are entering + into\\nthis Agreement on such person or entity\u2019s behalf), of the age + required under applicable laws, rules or\\nregulations to provide legal consent + and that has legal authority to bind your employer or such other\\nperson + or entity if you are entering in this Agreement on their behalf.\\n\\n\u201CLlama + 3.1\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at\\nhttps://llama.meta.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.1 and + Documentation (and any\\nportion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, if you are an entity, your\\nprincipal place of business is in the + EEA or Switzerland) and Meta Platforms, Inc. (if you are located\\noutside + of the EEA or Switzerland).\\n\\nBy clicking \u201CI Accept\u201D below or + by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, non-transferable + and royalty-free\\nlimited license under Meta\u2019s intellectual property + or other rights owned by Meta embodied in the Llama\\nMaterials to use, reproduce, + distribute, copy, create derivative works of, and make modifications to the\\nLlama + Materials.\\n\\n b. Redistribution and Use.\\n\\n i. If you distribute + or make available the Llama Materials (or any derivative works\\nthereof), + or a product or service (including another AI model) that contains any of + them, you shall (A)\\nprovide a copy of this Agreement with any such Llama + Materials; and (B) prominently display \u201CBuilt with\\nLlama\u201D on a + related website, user interface, blogpost, about page, or product documentation. + If you use\\nthe Llama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D at\\nthe + beginning of any such AI model name.\\n\\n ii. If you receive Llama Materials, + or any derivative works thereof, from a Licensee as part \\nof an integrated + end user product, then Section 2 of this Agreement will not apply to you.\\n\\n + \ iii. You must retain in all copies of the Llama Materials that you distribute + the following\\nattribution notice within a \u201CNotice\u201D text file distributed + as a part of such copies: \u201CLlama 3.1 is\\nlicensed under the Llama 3.1 + Community License, Copyright \xA9 Meta Platforms, Inc. All Rights\\nReserved.\u201D\\n\\n + \ iv. Your use of the Llama Materials must comply with applicable laws + and regulations\\n(including trade compliance laws and regulations) and adhere + to the Acceptable Use Policy for the Llama\\nMaterials (available at https://llama.meta.com/llama3_1/use-policy), + which is hereby incorporated by\\nreference into this Agreement.\\n\\n2. Additional + Commercial Terms. If, on the Llama 3.1 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, is greater than 700\\nmillion monthly active users + in the preceding calendar month, you must request a license from Meta,\\nwhich + Meta may grant to you in its sole discretion, and you are not authorized to + exercise any of the\\nrights under this Agreement unless or until Meta otherwise + expressly grants you such rights.\\n\\n3. Disclaimer of Warranty. UNLESS REQUIRED + BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY\\nOUTPUT AND RESULTS THEREFROM + ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, WITHOUT WARRANTIES OF\\nANY KIND, + AND META DISCLAIMS ALL WARRANTIES OF ANY KIND, BOTH EXPRESS AND IMPLIED,\\nINCLUDING, + WITHOUT LIMITATION, ANY WARRANTIES OF TITLE, NON-INFRINGEMENT,\\nMERCHANTABILITY, + OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR\\nDETERMINING + THE APPROPRIATENESS OF USING OR REDISTRIBUTING THE LLAMA MATERIALS AND\\nASSUME + ANY RISKS ASSOCIATED WITH YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND\\nRESULTS.\\n\\n4. + Limitation of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE + UNDER ANY THEORY OF\\nLIABILITY, WHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS + LIABILITY, OR OTHERWISE, ARISING\\nOUT OF THIS AGREEMENT, FOR ANY LOST PROFITS + OR ANY INDIRECT, SPECIAL, CONSEQUENTIAL,\\nINCIDENTAL, EXEMPLARY OR PUNITIVE + DAMAGES, EVEN IF META OR ITS AFFILIATES HAVE BEEN ADVISED\\nOF THE POSSIBILITY + OF ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama\\nMaterials, + neither Meta nor Licensee may use any name or mark owned by or associated + with the other\\nor any of its affiliates, except as required for reasonable + and customary use in describing and\\nredistributing the Llama Materials or + as set forth in this Section 5(a). Meta hereby grants you a license to\\nuse + \u201CLlama\u201D (the \u201CMark\u201D) solely as required to comply with + the last sentence of Section 1.b.i. You will\\ncomply with Meta\u2019s brand + guidelines (currently accessible at\\nhttps://about.meta.com/brand/resources/meta/company-brand/ + ). All goodwill arising out of your use\\nof the Mark will inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with\\nrespect to any derivative works and + modifications of the Llama Materials that are made by you, as\\nbetween you + and Meta, you are and will be the owner of such derivative works and modifications.\\n\\n + \ c. If you institute litigation or other proceedings against Meta or any + entity (including a\\ncross-claim or counterclaim in a lawsuit) alleging that + the Llama Materials or Llama 3.1 outputs or\\nresults, or any portion of any + of the foregoing, constitutes infringement of intellectual property or other\\nrights + owned or licensable by you, then any licenses granted to you under this Agreement + shall\\nterminate as of the date such litigation or claim is filed or instituted. + You will indemnify and hold\\nharmless Meta from and against any claim by + any third party arising out of or related to your use or\\ndistribution of + the Llama Materials.\\n\\n6. Term and Termination. The term of this Agreement + will commence upon your acceptance of this\\nAgreement or access to the Llama + Materials and will continue in full force and effect until terminated in\\naccordance + with the terms and conditions herein. Meta may terminate this Agreement if + you are in\\nbreach of any term or condition of this Agreement. Upon termination + of this Agreement, you shall delete\\nand cease use of the Llama Materials. + Sections 3, 4 and 7 shall survive the termination of this\\nAgreement.\\n\\n7. + Governing Law and Jurisdiction. This Agreement will be governed and construed + under the laws of\\nthe State of California without regard to choice of law + principles, and the UN Convention on Contracts\\nfor the International Sale + of Goods does not apply to this Agreement. The courts of California shall + have\\nexclusive jurisdiction of any dispute arising out of this Agreement.\\n\\n# + Llama 3.1 Acceptable Use Policy\\n\\nMeta is committed to promoting safe and + fair use of its tools and features, including Llama 3.1. If you\\naccess or + use Llama 3.1, you agree to this Acceptable Use Policy (\u201CPolicy\u201D). + The most recent copy of\\nthis policy can be found at [https://llama.meta.com/llama3_1/use-policy](https://llama.meta.com/llama3_1/use-policy)\\n\\n## + Prohibited Uses\\n\\nWe want everyone to use Llama 3.1 safely and responsibly. + You agree you will not use, or allow\\nothers to use, Llama 3.1 to:\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 3. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 4. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 5. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 6. Collect, process, disclose, generate, or infer health, demographic, + or other sensitive personal or private information about individuals without + rights and consents required by applicable laws\\n 7. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 8. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n\\n2. + Engage in, promote, incite, facilitate, or assist in the planning or development + of activities that present a risk of death or bodily harm to individuals, + including use of Llama 3.1 related to the following:\\n 1. Military, warfare, + nuclear industries or applications, espionage, use for materials or activities + that are subject to the International Traffic Arms Regulations (ITAR) maintained + by the United States Department of State\\n 2. Guns and illegal weapons + (including weapon development)\\n 3. Illegal drugs and regulated/controlled + substances\\n 4. Operation of critical infrastructure, transportation technologies, + or heavy machinery\\n 5. Self-harm or harm to others, including suicide, + cutting, and eating disorders\\n 6. Any content intended to incite or promote + violence, abuse, or any infliction of bodily harm to an individual\\n\\n3. + Intentionally deceive or mislead others, including use of Llama 3.1 related + to the following:\\n 1. Generating, promoting, or furthering fraud or the + creation or promotion of disinformation\\n 2. Generating, promoting, or + furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 3. Generating, promoting, or further distributing + spam\\n 4. Impersonating another individual without consent, authorization, + or legal right\\n 5. Representing that the use of Llama 3.1 or outputs + are human-generated\\n 6. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n\\nPlease + report any violation of this Policy, software \u201Cbug,\u201D or other problems + that could lead to a violation\\nof this Policy through one of the following + means:\\n\\n* Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://github.com/meta-llama/llama-models/issues)\\n* + Reporting risky content generated by the model: developers.facebook.com/llama_output_feedback\\n* + Reporting bugs and security concerns: facebook.com/whitehat/info\\n* Reporting + violations of the Acceptable Use Policy or unlicensed uses of Llama 3.1: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop + \ \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"{{- + if or .System .Tools }}\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n{{- + if .System }}\\n\\n{{ .System }}\\n{{- end }}\\n{{- if .Tools }}\\n\\nCutting + Knowledge Date: December 2023\\n\\nWhen you receive a tool call response, + use the output to format an answer to the orginal user question.\\n\\nYou + are a helpful assistant with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- + end }}\\n{{- range $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages + $i)) 1 }}\\n{{- if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\nQuestion: {{ + .Content }}\\u003c|eot_id|\\u003e\\n{{- else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + end }}{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"8.0B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Meta-Llama-3.1\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.license\":\"llama3.1\",\"general.parameter_count\":8030261312,\"general.quantization_version\":2,\"general.size_label\":\"8B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":32,\"llama.attention.head_count_kv\":8,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.block_count\":32,\"llama.context_length\":131072,\"llama.embedding_length\":4096,\"llama.feed_forward_length\":14336,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"token_embd.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,128256]},{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.28.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.28.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.28.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.28.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.28.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.28.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.28.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.28.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.28.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.29.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.29.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.29.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.29.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.29.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.29.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.29.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.29.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.29.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.30.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.30.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.30.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.30.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.30.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.30.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.30.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.30.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.30.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.31.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.31.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.31.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.31.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.31.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.31.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"output.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,128256]},{\"name\":\"blk.31.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.31.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.31.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[4096]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-04-11T14:41:15.05985701Z\"}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:17:28 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"name": "llama3.1"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '20' + content-type: + - application/json + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/show + response: + body: + string: "{\"license\":\"LLAMA 3.1 COMMUNITY LICENSE AGREEMENT\\nLlama 3.1 Version + Release Date: July 23, 2024\\n\\n\u201CAgreement\u201D means the terms and + conditions for use, reproduction, distribution and modification of the\\nLlama + Materials set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.1\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are entering + into\\nthis Agreement on such person or entity\u2019s behalf), of the age + required under applicable laws, rules or\\nregulations to provide legal consent + and that has legal authority to bind your employer or such other\\nperson + or entity if you are entering in this Agreement on their behalf.\\n\\n\u201CLlama + 3.1\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at\\nhttps://llama.meta.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.1 and + Documentation (and any\\nportion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, if you are an entity, your\\nprincipal place of business is in the + EEA or Switzerland) and Meta Platforms, Inc. (if you are located\\noutside + of the EEA or Switzerland).\\n\\nBy clicking \u201CI Accept\u201D below or + by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, non-transferable + and royalty-free\\nlimited license under Meta\u2019s intellectual property + or other rights owned by Meta embodied in the Llama\\nMaterials to use, reproduce, + distribute, copy, create derivative works of, and make modifications to the\\nLlama + Materials.\\n\\n b. Redistribution and Use.\\n\\n i. If you distribute + or make available the Llama Materials (or any derivative works\\nthereof), + or a product or service (including another AI model) that contains any of + them, you shall (A)\\nprovide a copy of this Agreement with any such Llama + Materials; and (B) prominently display \u201CBuilt with\\nLlama\u201D on a + related website, user interface, blogpost, about page, or product documentation. + If you use\\nthe Llama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D at\\nthe + beginning of any such AI model name.\\n\\n ii. If you receive Llama Materials, + or any derivative works thereof, from a Licensee as part \\nof an integrated + end user product, then Section 2 of this Agreement will not apply to you.\\n\\n + \ iii. You must retain in all copies of the Llama Materials that you distribute + the following\\nattribution notice within a \u201CNotice\u201D text file distributed + as a part of such copies: \u201CLlama 3.1 is\\nlicensed under the Llama 3.1 + Community License, Copyright \xA9 Meta Platforms, Inc. All Rights\\nReserved.\u201D\\n\\n + \ iv. Your use of the Llama Materials must comply with applicable laws + and regulations\\n(including trade compliance laws and regulations) and adhere + to the Acceptable Use Policy for the Llama\\nMaterials (available at https://llama.meta.com/llama3_1/use-policy), + which is hereby incorporated by\\nreference into this Agreement.\\n\\n2. Additional + Commercial Terms. If, on the Llama 3.1 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, is greater than 700\\nmillion monthly active users + in the preceding calendar month, you must request a license from Meta,\\nwhich + Meta may grant to you in its sole discretion, and you are not authorized to + exercise any of the\\nrights under this Agreement unless or until Meta otherwise + expressly grants you such rights.\\n\\n3. Disclaimer of Warranty. UNLESS REQUIRED + BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY\\nOUTPUT AND RESULTS THEREFROM + ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, WITHOUT WARRANTIES OF\\nANY KIND, + AND META DISCLAIMS ALL WARRANTIES OF ANY KIND, BOTH EXPRESS AND IMPLIED,\\nINCLUDING, + WITHOUT LIMITATION, ANY WARRANTIES OF TITLE, NON-INFRINGEMENT,\\nMERCHANTABILITY, + OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR\\nDETERMINING + THE APPROPRIATENESS OF USING OR REDISTRIBUTING THE LLAMA MATERIALS AND\\nASSUME + ANY RISKS ASSOCIATED WITH YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND\\nRESULTS.\\n\\n4. + Limitation of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE + UNDER ANY THEORY OF\\nLIABILITY, WHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS + LIABILITY, OR OTHERWISE, ARISING\\nOUT OF THIS AGREEMENT, FOR ANY LOST PROFITS + OR ANY INDIRECT, SPECIAL, CONSEQUENTIAL,\\nINCIDENTAL, EXEMPLARY OR PUNITIVE + DAMAGES, EVEN IF META OR ITS AFFILIATES HAVE BEEN ADVISED\\nOF THE POSSIBILITY + OF ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama\\nMaterials, + neither Meta nor Licensee may use any name or mark owned by or associated + with the other\\nor any of its affiliates, except as required for reasonable + and customary use in describing and\\nredistributing the Llama Materials or + as set forth in this Section 5(a). Meta hereby grants you a license to\\nuse + \u201CLlama\u201D (the \u201CMark\u201D) solely as required to comply with + the last sentence of Section 1.b.i. You will\\ncomply with Meta\u2019s brand + guidelines (currently accessible at\\nhttps://about.meta.com/brand/resources/meta/company-brand/ + ). All goodwill arising out of your use\\nof the Mark will inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with\\nrespect to any derivative works and + modifications of the Llama Materials that are made by you, as\\nbetween you + and Meta, you are and will be the owner of such derivative works and modifications.\\n\\n + \ c. If you institute litigation or other proceedings against Meta or any + entity (including a\\ncross-claim or counterclaim in a lawsuit) alleging that + the Llama Materials or Llama 3.1 outputs or\\nresults, or any portion of any + of the foregoing, constitutes infringement of intellectual property or other\\nrights + owned or licensable by you, then any licenses granted to you under this Agreement + shall\\nterminate as of the date such litigation or claim is filed or instituted. + You will indemnify and hold\\nharmless Meta from and against any claim by + any third party arising out of or related to your use or\\ndistribution of + the Llama Materials.\\n\\n6. Term and Termination. The term of this Agreement + will commence upon your acceptance of this\\nAgreement or access to the Llama + Materials and will continue in full force and effect until terminated in\\naccordance + with the terms and conditions herein. Meta may terminate this Agreement if + you are in\\nbreach of any term or condition of this Agreement. Upon termination + of this Agreement, you shall delete\\nand cease use of the Llama Materials. + Sections 3, 4 and 7 shall survive the termination of this\\nAgreement.\\n\\n7. + Governing Law and Jurisdiction. This Agreement will be governed and construed + under the laws of\\nthe State of California without regard to choice of law + principles, and the UN Convention on Contracts\\nfor the International Sale + of Goods does not apply to this Agreement. The courts of California shall + have\\nexclusive jurisdiction of any dispute arising out of this Agreement.\\n\\n# + Llama 3.1 Acceptable Use Policy\\n\\nMeta is committed to promoting safe and + fair use of its tools and features, including Llama 3.1. If you\\naccess or + use Llama 3.1, you agree to this Acceptable Use Policy (\u201CPolicy\u201D). + The most recent copy of\\nthis policy can be found at [https://llama.meta.com/llama3_1/use-policy](https://llama.meta.com/llama3_1/use-policy)\\n\\n## + Prohibited Uses\\n\\nWe want everyone to use Llama 3.1 safely and responsibly. + You agree you will not use, or allow\\nothers to use, Llama 3.1 to:\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 3. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 4. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 5. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 6. Collect, process, disclose, generate, or infer health, demographic, + or other sensitive personal or private information about individuals without + rights and consents required by applicable laws\\n 7. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 8. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n\\n2. + Engage in, promote, incite, facilitate, or assist in the planning or development + of activities that present a risk of death or bodily harm to individuals, + including use of Llama 3.1 related to the following:\\n 1. Military, warfare, + nuclear industries or applications, espionage, use for materials or activities + that are subject to the International Traffic Arms Regulations (ITAR) maintained + by the United States Department of State\\n 2. Guns and illegal weapons + (including weapon development)\\n 3. Illegal drugs and regulated/controlled + substances\\n 4. Operation of critical infrastructure, transportation technologies, + or heavy machinery\\n 5. Self-harm or harm to others, including suicide, + cutting, and eating disorders\\n 6. Any content intended to incite or promote + violence, abuse, or any infliction of bodily harm to an individual\\n\\n3. + Intentionally deceive or mislead others, including use of Llama 3.1 related + to the following:\\n 1. Generating, promoting, or furthering fraud or the + creation or promotion of disinformation\\n 2. Generating, promoting, or + furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 3. Generating, promoting, or further distributing + spam\\n 4. Impersonating another individual without consent, authorization, + or legal right\\n 5. Representing that the use of Llama 3.1 or outputs + are human-generated\\n 6. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n\\nPlease + report any violation of this Policy, software \u201Cbug,\u201D or other problems + that could lead to a violation\\nof this Policy through one of the following + means:\\n\\n* Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://github.com/meta-llama/llama-models/issues)\\n* + Reporting risky content generated by the model: developers.facebook.com/llama_output_feedback\\n* + Reporting bugs and security concerns: facebook.com/whitehat/info\\n* Reporting + violations of the Acceptable Use Policy or unlicensed uses of Llama 3.1: LlamaUseReport@meta.com\",\"modelfile\":\"# + Modelfile generated by \\\"ollama show\\\"\\n# To build a new Modelfile based + on this, replace FROM with:\\n# FROM llama3.1:latest\\n\\nFROM /root/.ollama/models/blobs/sha256-667b0c1932bc6ffc593ed1d03f895bf2dc8dc6df21db3042284a6f4416b06a29\\nTEMPLATE + \\\"\\\"\\\"{{- if or .System .Tools }}\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n{{- + if .System }}\\n\\n{{ .System }}\\n{{- end }}\\n{{- if .Tools }}\\n\\nCutting + Knowledge Date: December 2023\\n\\nWhen you receive a tool call response, + use the output to format an answer to the orginal user question.\\n\\nYou + are a helpful assistant with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- + end }}\\n{{- range $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages + $i)) 1 }}\\n{{- if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\nQuestion: {{ + .Content }}\\u003c|eot_id|\\u003e\\n{{- else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + end }}{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.1 COMMUNITY LICENSE AGREEMENT\\nLlama 3.1 Version Release Date: + July 23, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions for + use, reproduction, distribution and modification of the\\nLlama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.1\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are entering + into\\nthis Agreement on such person or entity\u2019s behalf), of the age + required under applicable laws, rules or\\nregulations to provide legal consent + and that has legal authority to bind your employer or such other\\nperson + or entity if you are entering in this Agreement on their behalf.\\n\\n\u201CLlama + 3.1\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at\\nhttps://llama.meta.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.1 and + Documentation (and any\\nportion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, if you are an entity, your\\nprincipal place of business is in the + EEA or Switzerland) and Meta Platforms, Inc. (if you are located\\noutside + of the EEA or Switzerland).\\n\\nBy clicking \u201CI Accept\u201D below or + by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, non-transferable + and royalty-free\\nlimited license under Meta\u2019s intellectual property + or other rights owned by Meta embodied in the Llama\\nMaterials to use, reproduce, + distribute, copy, create derivative works of, and make modifications to the\\nLlama + Materials.\\n\\n b. Redistribution and Use.\\n\\n i. If you distribute + or make available the Llama Materials (or any derivative works\\nthereof), + or a product or service (including another AI model) that contains any of + them, you shall (A)\\nprovide a copy of this Agreement with any such Llama + Materials; and (B) prominently display \u201CBuilt with\\nLlama\u201D on a + related website, user interface, blogpost, about page, or product documentation. + If you use\\nthe Llama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D at\\nthe + beginning of any such AI model name.\\n\\n ii. If you receive Llama Materials, + or any derivative works thereof, from a Licensee as part \\nof an integrated + end user product, then Section 2 of this Agreement will not apply to you.\\n\\n + \ iii. You must retain in all copies of the Llama Materials that you distribute + the following\\nattribution notice within a \u201CNotice\u201D text file distributed + as a part of such copies: \u201CLlama 3.1 is\\nlicensed under the Llama 3.1 + Community License, Copyright \xA9 Meta Platforms, Inc. All Rights\\nReserved.\u201D\\n\\n + \ iv. Your use of the Llama Materials must comply with applicable laws + and regulations\\n(including trade compliance laws and regulations) and adhere + to the Acceptable Use Policy for the Llama\\nMaterials (available at https://llama.meta.com/llama3_1/use-policy), + which is hereby incorporated by\\nreference into this Agreement.\\n\\n2. Additional + Commercial Terms. If, on the Llama 3.1 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, is greater than 700\\nmillion monthly active users + in the preceding calendar month, you must request a license from Meta,\\nwhich + Meta may grant to you in its sole discretion, and you are not authorized to + exercise any of the\\nrights under this Agreement unless or until Meta otherwise + expressly grants you such rights.\\n\\n3. Disclaimer of Warranty. UNLESS REQUIRED + BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY\\nOUTPUT AND RESULTS THEREFROM + ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, WITHOUT WARRANTIES OF\\nANY KIND, + AND META DISCLAIMS ALL WARRANTIES OF ANY KIND, BOTH EXPRESS AND IMPLIED,\\nINCLUDING, + WITHOUT LIMITATION, ANY WARRANTIES OF TITLE, NON-INFRINGEMENT,\\nMERCHANTABILITY, + OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE FOR\\nDETERMINING + THE APPROPRIATENESS OF USING OR REDISTRIBUTING THE LLAMA MATERIALS AND\\nASSUME + ANY RISKS ASSOCIATED WITH YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND\\nRESULTS.\\n\\n4. + Limitation of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE + UNDER ANY THEORY OF\\nLIABILITY, WHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS + LIABILITY, OR OTHERWISE, ARISING\\nOUT OF THIS AGREEMENT, FOR ANY LOST PROFITS + OR ANY INDIRECT, SPECIAL, CONSEQUENTIAL,\\nINCIDENTAL, EXEMPLARY OR PUNITIVE + DAMAGES, EVEN IF META OR ITS AFFILIATES HAVE BEEN ADVISED\\nOF THE POSSIBILITY + OF ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama\\nMaterials, + neither Meta nor Licensee may use any name or mark owned by or associated + with the other\\nor any of its affiliates, except as required for reasonable + and customary use in describing and\\nredistributing the Llama Materials or + as set forth in this Section 5(a). Meta hereby grants you a license to\\nuse + \u201CLlama\u201D (the \u201CMark\u201D) solely as required to comply with + the last sentence of Section 1.b.i. You will\\ncomply with Meta\u2019s brand + guidelines (currently accessible at\\nhttps://about.meta.com/brand/resources/meta/company-brand/ + ). All goodwill arising out of your use\\nof the Mark will inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with\\nrespect to any derivative works and + modifications of the Llama Materials that are made by you, as\\nbetween you + and Meta, you are and will be the owner of such derivative works and modifications.\\n\\n + \ c. If you institute litigation or other proceedings against Meta or any + entity (including a\\ncross-claim or counterclaim in a lawsuit) alleging that + the Llama Materials or Llama 3.1 outputs or\\nresults, or any portion of any + of the foregoing, constitutes infringement of intellectual property or other\\nrights + owned or licensable by you, then any licenses granted to you under this Agreement + shall\\nterminate as of the date such litigation or claim is filed or instituted. + You will indemnify and hold\\nharmless Meta from and against any claim by + any third party arising out of or related to your use or\\ndistribution of + the Llama Materials.\\n\\n6. Term and Termination. The term of this Agreement + will commence upon your acceptance of this\\nAgreement or access to the Llama + Materials and will continue in full force and effect until terminated in\\naccordance + with the terms and conditions herein. Meta may terminate this Agreement if + you are in\\nbreach of any term or condition of this Agreement. Upon termination + of this Agreement, you shall delete\\nand cease use of the Llama Materials. + Sections 3, 4 and 7 shall survive the termination of this\\nAgreement.\\n\\n7. + Governing Law and Jurisdiction. This Agreement will be governed and construed + under the laws of\\nthe State of California without regard to choice of law + principles, and the UN Convention on Contracts\\nfor the International Sale + of Goods does not apply to this Agreement. The courts of California shall + have\\nexclusive jurisdiction of any dispute arising out of this Agreement.\\n\\n# + Llama 3.1 Acceptable Use Policy\\n\\nMeta is committed to promoting safe and + fair use of its tools and features, including Llama 3.1. If you\\naccess or + use Llama 3.1, you agree to this Acceptable Use Policy (\u201CPolicy\u201D). + The most recent copy of\\nthis policy can be found at [https://llama.meta.com/llama3_1/use-policy](https://llama.meta.com/llama3_1/use-policy)\\n\\n## + Prohibited Uses\\n\\nWe want everyone to use Llama 3.1 safely and responsibly. + You agree you will not use, or allow\\nothers to use, Llama 3.1 to:\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 3. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 4. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 5. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 6. Collect, process, disclose, generate, or infer health, demographic, + or other sensitive personal or private information about individuals without + rights and consents required by applicable laws\\n 7. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 8. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n\\n2. + Engage in, promote, incite, facilitate, or assist in the planning or development + of activities that present a risk of death or bodily harm to individuals, + including use of Llama 3.1 related to the following:\\n 1. Military, warfare, + nuclear industries or applications, espionage, use for materials or activities + that are subject to the International Traffic Arms Regulations (ITAR) maintained + by the United States Department of State\\n 2. Guns and illegal weapons + (including weapon development)\\n 3. Illegal drugs and regulated/controlled + substances\\n 4. Operation of critical infrastructure, transportation technologies, + or heavy machinery\\n 5. Self-harm or harm to others, including suicide, + cutting, and eating disorders\\n 6. Any content intended to incite or promote + violence, abuse, or any infliction of bodily harm to an individual\\n\\n3. + Intentionally deceive or mislead others, including use of Llama 3.1 related + to the following:\\n 1. Generating, promoting, or furthering fraud or the + creation or promotion of disinformation\\n 2. Generating, promoting, or + furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 3. Generating, promoting, or further distributing + spam\\n 4. Impersonating another individual without consent, authorization, + or legal right\\n 5. Representing that the use of Llama 3.1 or outputs + are human-generated\\n 6. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n\\nPlease + report any violation of this Policy, software \u201Cbug,\u201D or other problems + that could lead to a violation\\nof this Policy through one of the following + means:\\n\\n* Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://github.com/meta-llama/llama-models/issues)\\n* + Reporting risky content generated by the model: developers.facebook.com/llama_output_feedback\\n* + Reporting bugs and security concerns: facebook.com/whitehat/info\\n* Reporting + violations of the Acceptable Use Policy or unlicensed uses of Llama 3.1: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop + \ \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"{{- + if or .System .Tools }}\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n{{- + if .System }}\\n\\n{{ .System }}\\n{{- end }}\\n{{- if .Tools }}\\n\\nCutting + Knowledge Date: December 2023\\n\\nWhen you receive a tool call response, + use the output to format an answer to the orginal user question.\\n\\nYou + are a helpful assistant with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- + end }}\\n{{- range $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages + $i)) 1 }}\\n{{- if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\nQuestion: {{ + .Content }}\\u003c|eot_id|\\u003e\\n{{- else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + end }}{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"8.0B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Meta-Llama-3.1\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.license\":\"llama3.1\",\"general.parameter_count\":8030261312,\"general.quantization_version\":2,\"general.size_label\":\"8B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":32,\"llama.attention.head_count_kv\":8,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.block_count\":32,\"llama.context_length\":131072,\"llama.embedding_length\":4096,\"llama.feed_forward_length\":14336,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"token_embd.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,128256]},{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[14336,4096]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.28.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.28.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.28.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.28.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.28.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.28.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.28.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.28.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.28.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.29.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.29.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.29.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.29.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.29.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.29.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.29.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.29.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.29.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.30.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.30.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.30.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.30.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.30.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.30.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.30.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.30.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.30.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"blk.31.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.31.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,14336]},{\"name\":\"blk.31.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,1024]},{\"name\":\"blk.31.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.31.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[4096,4096]},{\"name\":\"blk.31.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,1024]},{\"name\":\"output.weight\",\"type\":\"Q4_K_S\",\"shape\":[4096,128256]},{\"name\":\"blk.31.attn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"blk.31.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[14336,4096]},{\"name\":\"blk.31.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[4096]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[4096]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-04-11T14:41:15.05985701Z\"}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:17:28 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK version: 1 diff --git a/tests/utilities/cassettes/test_converter_with_llama3_2_model.yaml b/tests/utilities/cassettes/test_converter_with_llama3_2_model.yaml index d538308ca..6ff5c361b 100644 --- a/tests/utilities/cassettes/test_converter_with_llama3_2_model.yaml +++ b/tests/utilities/cassettes/test_converter_with_llama3_2_model.yaml @@ -1,9 +1,6 @@ interactions: - request: - body: '{"model": "llama3.2:3b", "prompt": "### System:\nPlease convert the following - text into valid JSON.\n\nOutput ONLY the valid JSON and nothing else.\n\nThe - JSON must follow this format exactly:\n{\n \"name\": str,\n \"age\": int\n}\n\n### - User:\nName: Alice Llama, Age: 30\n\n", "options": {"stop": []}, "stream": false}' + body: '{"name": "llama3.2:3b"}' headers: accept: - '*/*' @@ -12,25 +9,897 @@ interactions: connection: - keep-alive content-length: - - '321' + - '23' + content-type: + - application/json host: - localhost:11434 user-agent: - - litellm/1.60.2 + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/show + response: + body: + string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version + Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms + and conditions for use, reproduction, distribution \\nand modification of + the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means + the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed + by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D + or \u201Cyou\u201D means you, or your employer or any other person or entity + (if you are \\nentering into this Agreement on such person or entity\u2019s + behalf), of the age required under\\napplicable laws, rules or regulations + to provide legal consent and that has legal authority\\nto bind your employer + or such other person or entity if you are entering in this Agreement\\non + their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language + models and software and algorithms, including\\nmachine-learning model code, + trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning + enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** + **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair + use of its tools and features, including Llama 3.2. If you access or use Llama + 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The + most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama + show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# + FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE + \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: + September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions + for use, reproduction, distribution \\nand modification of the Llama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are \\nentering + into this Agreement on such person or entity\u2019s behalf), of the age required + under\\napplicable laws, rules or regulations to provide legal consent and + that has legal authority\\nto bind your employer or such other person or entity + if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama + 3.2\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE + \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting + safe and fair use of its tools and features, including Llama 3.2. If you access + or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). + The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:18:29 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"name": "llama3.2:3b"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '23' + content-type: + - application/json + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/show + response: + body: + string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version + Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms + and conditions for use, reproduction, distribution \\nand modification of + the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means + the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed + by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D + or \u201Cyou\u201D means you, or your employer or any other person or entity + (if you are \\nentering into this Agreement on such person or entity\u2019s + behalf), of the age required under\\napplicable laws, rules or regulations + to provide legal consent and that has legal authority\\nto bind your employer + or such other person or entity if you are entering in this Agreement\\non + their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language + models and software and algorithms, including\\nmachine-learning model code, + trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning + enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** + **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair + use of its tools and features, including Llama 3.2. If you access or use Llama + 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The + most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama + show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# + FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE + \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: + September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions + for use, reproduction, distribution \\nand modification of the Llama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are \\nentering + into this Agreement on such person or entity\u2019s behalf), of the age required + under\\napplicable laws, rules or regulations to provide legal consent and + that has legal authority\\nto bind your employer or such other person or entity + if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama + 3.2\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE + \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting + safe and fair use of its tools and features, including Llama 3.2. If you access + or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). + The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:18:29 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"model": "llama3.2:3b", "prompt": "### User:\nName: Alice Llama, Age: + 30\n\n### System:\nProduce JSON OUTPUT ONLY! Adhere to this format {\"name\": + \"function_name\", \"arguments\":{\"argument_name\": \"argument_value\"}} The + following functions are available to you:\n{''type'': ''function'', ''function'': + {''name'': ''SimpleModel'', ''description'': ''Correctly extracted `SimpleModel` + with all the required parameters with correct types'', ''parameters'': {''properties'': + {''name'': {''title'': ''Name'', ''type'': ''string''}, ''age'': {''title'': + ''Age'', ''type'': ''integer''}}, ''required'': [''age'', ''name''], ''type'': + ''object''}}}\n\n\n", "options": {}, "stream": false, "format": "json", "images": + []}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '671' + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 method: POST uri: http://localhost:11434/api/generate response: - content: '{"model":"llama3.2:3b","created_at":"2025-02-21T02:57:55.059392Z","response":"{\"name\": - \"Alice Llama\", \"age\": 30}","done":true,"done_reason":"stop","context":[128006,9125,128007,271,38766,1303,33025,2696,25,6790,220,2366,18,271,128009,128006,882,128007,271,14711,744,512,5618,5625,279,2768,1495,1139,2764,4823,382,5207,27785,279,2764,4823,323,4400,775,382,791,4823,2011,1833,420,3645,7041,512,517,220,330,609,794,610,345,220,330,425,794,528,198,633,14711,2724,512,678,25,30505,445,81101,11,13381,25,220,966,271,128009,128006,78191,128007,271,5018,609,794,330,62786,445,81101,498,330,425,794,220,966,92],"total_duration":4675906000,"load_duration":836091458,"prompt_eval_count":82,"prompt_eval_duration":3561000000,"eval_count":15,"eval_duration":275000000}' + body: + string: '{"model":"llama3.2:3b","created_at":"2025-05-07T01:18:33.115650342Z","response":"{\"name\": + \"SimpleModel\", \"arguments\": {\"properties\": {\"name\": \"Alice Llama\", + \"age\": 30}}}","done":true,"done_reason":"stop","context":[128006,9125,128007,271,38766,1303,33025,2696,25,6790,220,2366,18,271,128009,128006,882,128007,271,14711,2724,512,678,25,30505,445,81101,11,13381,25,220,966,271,14711,744,512,1360,13677,4823,32090,27785,0,2467,6881,311,420,3645,5324,609,794,330,1723,1292,498,330,16774,23118,14819,1292,794,330,14819,3220,32075,578,2768,5865,527,2561,311,499,512,13922,1337,1232,364,1723,518,364,1723,1232,5473,609,1232,364,16778,1747,518,364,4789,1232,364,34192,398,28532,1595,16778,1747,63,449,682,279,2631,5137,449,4495,4595,518,364,14105,1232,5473,13495,1232,5473,609,1232,5473,2150,1232,364,678,518,364,1337,1232,364,928,25762,364,425,1232,5473,2150,1232,364,17166,518,364,1337,1232,364,11924,8439,2186,364,6413,1232,2570,425,518,364,609,4181,364,1337,1232,364,1735,23742,3818,128009,128006,78191,128007,271,5018,609,794,330,16778,1747,498,330,16774,794,5324,13495,794,5324,609,794,330,62786,445,81101,498,330,425,794,220,966,76642],"total_duration":2722669334,"load_duration":20956583,"prompt_eval_count":167,"prompt_eval_duration":1691522459,"eval_count":28,"eval_duration":1008844417}' headers: Content-Length: - - '761' + - '1303' Content-Type: - application/json; charset=utf-8 Date: - - Fri, 21 Feb 2025 02:57:55 GMT - http_version: HTTP/1.1 - status_code: 200 + - Wed, 07 May 2025 01:18:33 GMT + status: + code: 200 + message: OK - request: body: '{"name": "llama3.2:3b"}' headers: @@ -47,405 +916,420 @@ interactions: host: - localhost:11434 user-agent: - - litellm/1.60.2 + - litellm/1.68.0 method: POST uri: http://localhost:11434/api/show response: - content: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version - Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms - and conditions for use, reproduction, distribution \\nand modification of the - Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, - manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations to - provide legal consent and that has legal authority\\nto bind your employer or - such other person or entity if you are entering in this Agreement\\non their - behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language models - and software and algorithms, including\\nmachine-learning model code, trained - model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and Documentation - (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located in - or, \\nif you are an entity, your principal place of business is in the EEA - or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside of the - EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below or by using - or distributing any portion or element of the Llama Materials,\\nyou agree to - be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to the - Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. If - you distribute or make available the Llama Materials (or any derivative works - thereof), \\nor a product or service (including another AI model) that contains - any of them, you shall (A) provide\\na copy of this Agreement with any such - Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is distributed - or made available, you shall also include \u201CLlama\u201D\\nat the beginning - of any such AI model name.\\n\\n ii. If you receive Llama Materials, - or any derivative works thereof, from a Licensee as part\\nof an integrated - end user product, then Section 2 of this Agreement will not apply to you. \\n\\n - \ iii. You must retain in all copies of the Llama Materials that you distribute - the \\nfollowing attribution notice within a \u201CNotice\u201D text file distributed - as a part of such copies: \\n\u201CLlama 3.2 is licensed under the Llama 3.2 - Community License, Copyright \xA9 Meta Platforms,\\nInc. All Rights Reserved.\u201D\\n\\n - \ iv. Your use of the Llama Materials must comply with applicable laws - and regulations\\n(including trade compliance laws and regulations) and adhere - to the Acceptable Use Policy for\\nthe Llama Materials (available at https://www.llama.com/llama3_2/use-policy), - which is hereby \\nincorporated by reference into this Agreement.\\n \\n2. - Additional Commercial Terms. If, on the Llama 3.2 version release date, the - monthly active users\\nof the products or services made available by or for - Licensee, or Licensee\u2019s affiliates, \\nis greater than 700 million monthly - active users in the preceding calendar month, you must request \\na license - from Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or until - Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer of Warranty. - UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY OUTPUT AND \\nRESULTS - THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, WITHOUT WARRANTIES OF - ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY KIND, BOTH EXPRESS AND - IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF TITLE, NON-INFRINGEMENT, - MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE\\nFOR - DETERMINING THE APPROPRIATENESS OF USING OR REDISTRIBUTING THE LLAMA MATERIALS - AND ASSUME ANY RISKS ASSOCIATED\\nWITH YOUR USE OF THE LLAMA MATERIALS AND ANY - OUTPUT AND RESULTS.\\n\\n4. Limitation of Liability. IN NO EVENT WILL META OR - ITS AFFILIATES BE LIABLE UNDER ANY THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, - TORT, NEGLIGENCE, PRODUCTS LIABILITY, OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, - \\nFOR ANY LOST PROFITS OR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, - EXEMPLARY OR PUNITIVE DAMAGES, EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED - OF THE POSSIBILITY OF ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n - \ a. No trademark licenses are granted under this Agreement, and in connection - with the Llama Materials, \\nneither Meta nor Licensee may use any name or mark - owned by or associated with the other or any of its affiliates, \\nexcept as - required for reasonable and customary use in describing and redistributing the - Llama Materials or as \\nset forth in this Section 5(a). Meta hereby grants - you a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with Meta\u2019s - brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between you - and Meta,\\n you are and will be the owner of such derivative works and modifications.\\n\\n - \ c. If you institute litigation or other proceedings against Meta or any - entity (including a cross-claim or\\n counterclaim in a lawsuit) alleging - that the Llama Materials or Llama 3.2 outputs or results, or any portion\\n - \ of any of the foregoing, constitutes infringement of intellectual property - or other rights owned or licensable\\n by you, then any licenses granted - to you under this Agreement shall terminate as of the date such litigation or\\n - \ claim is filed or instituted. You will indemnify and hold harmless Meta - from and against any claim by any third\\n party arising out of or related - to your use or distribution of the Llama Materials.\\n\\n6. Term and Termination. - The term of this Agreement will commence upon your acceptance of this Agreement - or access\\nto the Llama Materials and will continue in full force and effect - until terminated in accordance with the terms\\nand conditions herein. Meta - may terminate this Agreement if you are in breach of any term or condition of - this\\nAgreement. Upon termination of this Agreement, you shall delete and cease - use of the Llama Materials. Sections 3,\\n4 and 7 shall survive the termination - of this Agreement. \\n\\n7. Governing Law and Jurisdiction. This Agreement will - be governed and construed under the laws of the State of \\nCalifornia without - regard to choice of law principles, and the UN Convention on Contracts for the - International\\nSale of Goods does not apply to this Agreement. The courts of - California shall have exclusive jurisdiction of\\nany dispute arising out of - this Agreement.\\n**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed - to promoting safe and fair use of its tools and features, including Llama 3.2. - If you access or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). - The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You agree - you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. Violate - the law or others\u2019 rights, including to:\\n 1. Engage in, promote, generate, - contribute to, encourage, plan, incite, or further illegal or unlawful activity - or content, such as:\\n 1. Violence or terrorism\\n 2. Exploitation - or harm to children, including the solicitation, creation, acquisition, or dissemination - of child exploitative content or failure to report Child Sexual Abuse Material\\n - \ 3. Human trafficking, exploitation, and sexual violence\\n 4. - The illegal distribution of information or materials to minors, including obscene - materials, or failure to employ legally required age-gating in connection with - such information or materials.\\n 5. Sexual solicitation\\n 6. - Any other criminal activity\\n 1. Engage in, promote, incite, or facilitate - the harassment, abuse, threatening, or bullying of individuals or groups of - individuals\\n 2. Engage in, promote, incite, or facilitate discrimination - or other unlawful or harmful conduct in the provision of employment, employment - benefits, credit, housing, other economic benefits, or other essential goods - and services\\n 3. Engage in the unauthorized or unlicensed practice of any - profession including, but not limited to, financial, legal, medical/health, - or related professional practices\\n 4. Collect, process, disclose, generate, - or infer private or sensitive information about individuals, including information - about individuals\u2019 identity, health, or demographic information, unless - you have obtained the right to do so in accordance with applicable law\\n 5. - Engage in or facilitate any action or generate any content that infringes, misappropriates, - or otherwise violates any third-party rights, including the outputs or results - of any products or services using the Llama Materials\\n 6. Create, generate, - or facilitate the creation of malicious code, malware, computer viruses or do - anything else that could disable, overburden, interfere with or impair the proper - working, integrity, operation or appearance of a website or computer system\\n - \ 7. Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in the - planning or development of activities that present a risk of death or bodily - harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic Arms - Regulations (ITAR) maintained by the United States Department of State or to - the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical Weapons - Convention Implementation Act of 1997\\n 9. Guns and illegal weapons (including - weapon development)\\n 10. Illegal drugs and regulated/controlled substances\\n - \ 11. Operation of critical infrastructure, transportation technologies, or - heavy machinery\\n 12. Self-harm or harm to others, including suicide, cutting, - and eating disorders\\n 13. Any content intended to incite or promote violence, - abuse, or any infliction of bodily harm to an individual\\n3. Intentionally - deceive or mislead others, including use of Llama 3.2 related to the following:\\n - \ 14. Generating, promoting, or furthering fraud or the creation or promotion - of disinformation\\n 15. Generating, promoting, or furthering defamatory - content, including the creation of defamatory statements, images, or other content\\n - \ 16. Generating, promoting, or further distributing spam\\n 17. Impersonating - another individual without consent, authorization, or legal right\\n 18. - Representing that the use of Llama 3.2 or outputs are human-generated\\n 19. - Generating or facilitating false online engagement, including fake reviews and - other means of fake online engagement\\n4. Fail to appropriately disclose to - end users any known dangers of your AI system\\n5. Interact with third party - tools, models, or software designed to generate unlawful content or engage in - unlawful or harmful conduct and/or represent that the outputs of such tools, - models, or software are associated with Meta or Llama 3.2\\n\\nWith respect - to any multimodal models included in Llama 3.2, the rights granted under Section - 1(a) of the Llama 3.2 Community License Agreement are not being granted to you - if you are an individual domiciled in, or a company with a principal place of - business in, the European Union. This restriction does not apply to end users - of a product or service that incorporates any such multimodal models.\\n\\nPlease - report any violation of this Policy, software \u201Cbug,\u201D or other problems - that could lead to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama - show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# - FROM llama3.2:3b\\n\\nFROM /Users/joaomoura/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE - \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end }}\\n{{- - if .Tools }}When you receive a tool call response, use the output to format - an answer to the orginal user question.\\n\\nYou are a helpful assistant with - tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range $i, - $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond with - a JSON for a function call with its proper arguments that best answers the given - prompt.\\n\\nRespond in the format {\\\"name\\\": function name, \\\"parameters\\\": - dictionary of argument name and its value}. Do not use variables.\\n\\n{{ range - $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else }}\\n\\n{{ - .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ end }}\\n{{- - else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER - stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE - \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: - September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions - for use, reproduction, distribution \\nand modification of the Llama Materials - set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, manuals - and documentation accompanying Llama 3.2\\ndistributed by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations to - provide legal consent and that has legal authority\\nto bind your employer or - such other person or entity if you are entering in this Agreement\\non their - behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language models - and software and algorithms, including\\nmachine-learning model code, trained - model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and Documentation - (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located in - or, \\nif you are an entity, your principal place of business is in the EEA - or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside of the - EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below or by using - or distributing any portion or element of the Llama Materials,\\nyou agree to - be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to the - Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. If - you distribute or make available the Llama Materials (or any derivative works - thereof), \\nor a product or service (including another AI model) that contains - any of them, you shall (A) provide\\na copy of this Agreement with any such - Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is distributed - or made available, you shall also include \u201CLlama\u201D\\nat the beginning - of any such AI model name.\\n\\n ii. If you receive Llama Materials, - or any derivative works thereof, from a Licensee as part\\nof an integrated - end user product, then Section 2 of this Agreement will not apply to you. \\n\\n - \ iii. You must retain in all copies of the Llama Materials that you distribute - the \\nfollowing attribution notice within a \u201CNotice\u201D text file distributed - as a part of such copies: \\n\u201CLlama 3.2 is licensed under the Llama 3.2 - Community License, Copyright \xA9 Meta Platforms,\\nInc. All Rights Reserved.\u201D\\n\\n - \ iv. Your use of the Llama Materials must comply with applicable laws - and regulations\\n(including trade compliance laws and regulations) and adhere - to the Acceptable Use Policy for\\nthe Llama Materials (available at https://www.llama.com/llama3_2/use-policy), - which is hereby \\nincorporated by reference into this Agreement.\\n \\n2. - Additional Commercial Terms. If, on the Llama 3.2 version release date, the - monthly active users\\nof the products or services made available by or for - Licensee, or Licensee\u2019s affiliates, \\nis greater than 700 million monthly - active users in the preceding calendar month, you must request \\na license - from Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or until - Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer of Warranty. - UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY OUTPUT AND \\nRESULTS - THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, WITHOUT WARRANTIES OF - ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY KIND, BOTH EXPRESS AND - IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF TITLE, NON-INFRINGEMENT, - MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE\\nFOR - DETERMINING THE APPROPRIATENESS OF USING OR REDISTRIBUTING THE LLAMA MATERIALS - AND ASSUME ANY RISKS ASSOCIATED\\nWITH YOUR USE OF THE LLAMA MATERIALS AND ANY - OUTPUT AND RESULTS.\\n\\n4. Limitation of Liability. IN NO EVENT WILL META OR - ITS AFFILIATES BE LIABLE UNDER ANY THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, - TORT, NEGLIGENCE, PRODUCTS LIABILITY, OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, - \\nFOR ANY LOST PROFITS OR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, - EXEMPLARY OR PUNITIVE DAMAGES, EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED - OF THE POSSIBILITY OF ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n - \ a. No trademark licenses are granted under this Agreement, and in connection - with the Llama Materials, \\nneither Meta nor Licensee may use any name or mark - owned by or associated with the other or any of its affiliates, \\nexcept as - required for reasonable and customary use in describing and redistributing the - Llama Materials or as \\nset forth in this Section 5(a). Meta hereby grants - you a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with Meta\u2019s - brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between you - and Meta,\\n you are and will be the owner of such derivative works and modifications.\\n\\n - \ c. If you institute litigation or other proceedings against Meta or any - entity (including a cross-claim or\\n counterclaim in a lawsuit) alleging - that the Llama Materials or Llama 3.2 outputs or results, or any portion\\n - \ of any of the foregoing, constitutes infringement of intellectual property - or other rights owned or licensable\\n by you, then any licenses granted - to you under this Agreement shall terminate as of the date such litigation or\\n - \ claim is filed or instituted. You will indemnify and hold harmless Meta - from and against any claim by any third\\n party arising out of or related - to your use or distribution of the Llama Materials.\\n\\n6. Term and Termination. - The term of this Agreement will commence upon your acceptance of this Agreement - or access\\nto the Llama Materials and will continue in full force and effect - until terminated in accordance with the terms\\nand conditions herein. Meta - may terminate this Agreement if you are in breach of any term or condition of - this\\nAgreement. Upon termination of this Agreement, you shall delete and cease - use of the Llama Materials. Sections 3,\\n4 and 7 shall survive the termination - of this Agreement. \\n\\n7. Governing Law and Jurisdiction. This Agreement will - be governed and construed under the laws of the State of \\nCalifornia without - regard to choice of law principles, and the UN Convention on Contracts for the - International\\nSale of Goods does not apply to this Agreement. The courts of - California shall have exclusive jurisdiction of\\nany dispute arising out of - this Agreement.\\\"\\nLICENSE \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta - is committed to promoting safe and fair use of its tools and features, including - Llama 3.2. If you access or use Llama 3.2, you agree to this Acceptable Use - Policy (\u201C**Policy**\u201D). The most recent copy of this policy can be - found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You agree - you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. Violate - the law or others\u2019 rights, including to:\\n 1. Engage in, promote, generate, - contribute to, encourage, plan, incite, or further illegal or unlawful activity - or content, such as:\\n 1. Violence or terrorism\\n 2. Exploitation - or harm to children, including the solicitation, creation, acquisition, or dissemination - of child exploitative content or failure to report Child Sexual Abuse Material\\n - \ 3. Human trafficking, exploitation, and sexual violence\\n 4. - The illegal distribution of information or materials to minors, including obscene - materials, or failure to employ legally required age-gating in connection with - such information or materials.\\n 5. Sexual solicitation\\n 6. - Any other criminal activity\\n 1. Engage in, promote, incite, or facilitate - the harassment, abuse, threatening, or bullying of individuals or groups of - individuals\\n 2. Engage in, promote, incite, or facilitate discrimination - or other unlawful or harmful conduct in the provision of employment, employment - benefits, credit, housing, other economic benefits, or other essential goods - and services\\n 3. Engage in the unauthorized or unlicensed practice of any - profession including, but not limited to, financial, legal, medical/health, - or related professional practices\\n 4. Collect, process, disclose, generate, - or infer private or sensitive information about individuals, including information - about individuals\u2019 identity, health, or demographic information, unless - you have obtained the right to do so in accordance with applicable law\\n 5. - Engage in or facilitate any action or generate any content that infringes, misappropriates, - or otherwise violates any third-party rights, including the outputs or results - of any products or services using the Llama Materials\\n 6. Create, generate, - or facilitate the creation of malicious code, malware, computer viruses or do - anything else that could disable, overburden, interfere with or impair the proper - working, integrity, operation or appearance of a website or computer system\\n - \ 7. Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in the - planning or development of activities that present a risk of death or bodily - harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic Arms - Regulations (ITAR) maintained by the United States Department of State or to - the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical Weapons - Convention Implementation Act of 1997\\n 9. Guns and illegal weapons (including - weapon development)\\n 10. Illegal drugs and regulated/controlled substances\\n - \ 11. Operation of critical infrastructure, transportation technologies, or - heavy machinery\\n 12. Self-harm or harm to others, including suicide, cutting, - and eating disorders\\n 13. Any content intended to incite or promote violence, - abuse, or any infliction of bodily harm to an individual\\n3. Intentionally - deceive or mislead others, including use of Llama 3.2 related to the following:\\n - \ 14. Generating, promoting, or furthering fraud or the creation or promotion - of disinformation\\n 15. Generating, promoting, or furthering defamatory - content, including the creation of defamatory statements, images, or other content\\n - \ 16. Generating, promoting, or further distributing spam\\n 17. Impersonating - another individual without consent, authorization, or legal right\\n 18. - Representing that the use of Llama 3.2 or outputs are human-generated\\n 19. - Generating or facilitating false online engagement, including fake reviews and - other means of fake online engagement\\n4. Fail to appropriately disclose to - end users any known dangers of your AI system\\n5. Interact with third party - tools, models, or software designed to generate unlawful content or engage in - unlawful or harmful conduct and/or represent that the outputs of such tools, - models, or software are associated with Meta or Llama 3.2\\n\\nWith respect - to any multimodal models included in Llama 3.2, the rights granted under Section - 1(a) of the Llama 3.2 Community License Agreement are not being granted to you - if you are an individual domiciled in, or a company with a principal place of - business in, the European Union. This restriction does not apply to end users - of a product or service that incorporates any such multimodal models.\\n\\nPlease - report any violation of this Policy, software \u201Cbug,\u201D or other problems - that could lead to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop - \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end }}\\n{{- - if .Tools }}When you receive a tool call response, use the output to format - an answer to the orginal user question.\\n\\nYou are a helpful assistant with - tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range $i, - $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond with - a JSON for a function call with its proper arguments that best answers the given - prompt.\\n\\nRespond in the format {\\\"name\\\": function name, \\\"parameters\\\": - dictionary of argument name and its value}. Do not use variables.\\n\\n{{ range - $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else }}\\n\\n{{ - .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ end }}\\n{{- - else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"modified_at\":\"2025-02-20T18:55:09.150577031-08:00\"}" + body: + string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version + Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms + and conditions for use, reproduction, distribution \\nand modification of + the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means + the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed + by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D + or \u201Cyou\u201D means you, or your employer or any other person or entity + (if you are \\nentering into this Agreement on such person or entity\u2019s + behalf), of the age required under\\napplicable laws, rules or regulations + to provide legal consent and that has legal authority\\nto bind your employer + or such other person or entity if you are entering in this Agreement\\non + their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language + models and software and algorithms, including\\nmachine-learning model code, + trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning + enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** + **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair + use of its tools and features, including Llama 3.2. If you access or use Llama + 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The + most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama + show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# + FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE + \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: + September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions + for use, reproduction, distribution \\nand modification of the Llama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are \\nentering + into this Agreement on such person or entity\u2019s behalf), of the age required + under\\napplicable laws, rules or regulations to provide legal consent and + that has legal authority\\nto bind your employer or such other person or entity + if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama + 3.2\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE + \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting + safe and fair use of its tools and features, including Llama 3.2. If you access + or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). + The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" headers: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 21 Feb 2025 02:57:55 GMT + - Wed, 07 May 2025 01:18:33 GMT Transfer-Encoding: - chunked - http_version: HTTP/1.1 - status_code: 200 + status: + code: 200 + message: OK - request: body: '{"name": "llama3.2:3b"}' headers: @@ -462,403 +1346,4812 @@ interactions: host: - localhost:11434 user-agent: - - litellm/1.60.2 + - litellm/1.68.0 method: POST uri: http://localhost:11434/api/show response: - content: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version - Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms - and conditions for use, reproduction, distribution \\nand modification of the - Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, - manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations to - provide legal consent and that has legal authority\\nto bind your employer or - such other person or entity if you are entering in this Agreement\\non their - behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language models - and software and algorithms, including\\nmachine-learning model code, trained - model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and Documentation - (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located in - or, \\nif you are an entity, your principal place of business is in the EEA - or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside of the - EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below or by using - or distributing any portion or element of the Llama Materials,\\nyou agree to - be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to the - Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. If - you distribute or make available the Llama Materials (or any derivative works - thereof), \\nor a product or service (including another AI model) that contains - any of them, you shall (A) provide\\na copy of this Agreement with any such - Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is distributed - or made available, you shall also include \u201CLlama\u201D\\nat the beginning - of any such AI model name.\\n\\n ii. If you receive Llama Materials, - or any derivative works thereof, from a Licensee as part\\nof an integrated - end user product, then Section 2 of this Agreement will not apply to you. \\n\\n - \ iii. You must retain in all copies of the Llama Materials that you distribute - the \\nfollowing attribution notice within a \u201CNotice\u201D text file distributed - as a part of such copies: \\n\u201CLlama 3.2 is licensed under the Llama 3.2 - Community License, Copyright \xA9 Meta Platforms,\\nInc. All Rights Reserved.\u201D\\n\\n - \ iv. Your use of the Llama Materials must comply with applicable laws - and regulations\\n(including trade compliance laws and regulations) and adhere - to the Acceptable Use Policy for\\nthe Llama Materials (available at https://www.llama.com/llama3_2/use-policy), - which is hereby \\nincorporated by reference into this Agreement.\\n \\n2. - Additional Commercial Terms. If, on the Llama 3.2 version release date, the - monthly active users\\nof the products or services made available by or for - Licensee, or Licensee\u2019s affiliates, \\nis greater than 700 million monthly - active users in the preceding calendar month, you must request \\na license - from Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or until - Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer of Warranty. - UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY OUTPUT AND \\nRESULTS - THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, WITHOUT WARRANTIES OF - ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY KIND, BOTH EXPRESS AND - IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF TITLE, NON-INFRINGEMENT, - MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE\\nFOR - DETERMINING THE APPROPRIATENESS OF USING OR REDISTRIBUTING THE LLAMA MATERIALS - AND ASSUME ANY RISKS ASSOCIATED\\nWITH YOUR USE OF THE LLAMA MATERIALS AND ANY - OUTPUT AND RESULTS.\\n\\n4. Limitation of Liability. IN NO EVENT WILL META OR - ITS AFFILIATES BE LIABLE UNDER ANY THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, - TORT, NEGLIGENCE, PRODUCTS LIABILITY, OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, - \\nFOR ANY LOST PROFITS OR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, - EXEMPLARY OR PUNITIVE DAMAGES, EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED - OF THE POSSIBILITY OF ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n - \ a. No trademark licenses are granted under this Agreement, and in connection - with the Llama Materials, \\nneither Meta nor Licensee may use any name or mark - owned by or associated with the other or any of its affiliates, \\nexcept as - required for reasonable and customary use in describing and redistributing the - Llama Materials or as \\nset forth in this Section 5(a). Meta hereby grants - you a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with Meta\u2019s - brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between you - and Meta,\\n you are and will be the owner of such derivative works and modifications.\\n\\n - \ c. If you institute litigation or other proceedings against Meta or any - entity (including a cross-claim or\\n counterclaim in a lawsuit) alleging - that the Llama Materials or Llama 3.2 outputs or results, or any portion\\n - \ of any of the foregoing, constitutes infringement of intellectual property - or other rights owned or licensable\\n by you, then any licenses granted - to you under this Agreement shall terminate as of the date such litigation or\\n - \ claim is filed or instituted. You will indemnify and hold harmless Meta - from and against any claim by any third\\n party arising out of or related - to your use or distribution of the Llama Materials.\\n\\n6. Term and Termination. - The term of this Agreement will commence upon your acceptance of this Agreement - or access\\nto the Llama Materials and will continue in full force and effect - until terminated in accordance with the terms\\nand conditions herein. Meta - may terminate this Agreement if you are in breach of any term or condition of - this\\nAgreement. Upon termination of this Agreement, you shall delete and cease - use of the Llama Materials. Sections 3,\\n4 and 7 shall survive the termination - of this Agreement. \\n\\n7. Governing Law and Jurisdiction. This Agreement will - be governed and construed under the laws of the State of \\nCalifornia without - regard to choice of law principles, and the UN Convention on Contracts for the - International\\nSale of Goods does not apply to this Agreement. The courts of - California shall have exclusive jurisdiction of\\nany dispute arising out of - this Agreement.\\n**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed - to promoting safe and fair use of its tools and features, including Llama 3.2. - If you access or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). - The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You agree - you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. Violate - the law or others\u2019 rights, including to:\\n 1. Engage in, promote, generate, - contribute to, encourage, plan, incite, or further illegal or unlawful activity - or content, such as:\\n 1. Violence or terrorism\\n 2. Exploitation - or harm to children, including the solicitation, creation, acquisition, or dissemination - of child exploitative content or failure to report Child Sexual Abuse Material\\n - \ 3. Human trafficking, exploitation, and sexual violence\\n 4. - The illegal distribution of information or materials to minors, including obscene - materials, or failure to employ legally required age-gating in connection with - such information or materials.\\n 5. Sexual solicitation\\n 6. - Any other criminal activity\\n 1. Engage in, promote, incite, or facilitate - the harassment, abuse, threatening, or bullying of individuals or groups of - individuals\\n 2. Engage in, promote, incite, or facilitate discrimination - or other unlawful or harmful conduct in the provision of employment, employment - benefits, credit, housing, other economic benefits, or other essential goods - and services\\n 3. Engage in the unauthorized or unlicensed practice of any - profession including, but not limited to, financial, legal, medical/health, - or related professional practices\\n 4. Collect, process, disclose, generate, - or infer private or sensitive information about individuals, including information - about individuals\u2019 identity, health, or demographic information, unless - you have obtained the right to do so in accordance with applicable law\\n 5. - Engage in or facilitate any action or generate any content that infringes, misappropriates, - or otherwise violates any third-party rights, including the outputs or results - of any products or services using the Llama Materials\\n 6. Create, generate, - or facilitate the creation of malicious code, malware, computer viruses or do - anything else that could disable, overburden, interfere with or impair the proper - working, integrity, operation or appearance of a website or computer system\\n - \ 7. Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in the - planning or development of activities that present a risk of death or bodily - harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic Arms - Regulations (ITAR) maintained by the United States Department of State or to - the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical Weapons - Convention Implementation Act of 1997\\n 9. Guns and illegal weapons (including - weapon development)\\n 10. Illegal drugs and regulated/controlled substances\\n - \ 11. Operation of critical infrastructure, transportation technologies, or - heavy machinery\\n 12. Self-harm or harm to others, including suicide, cutting, - and eating disorders\\n 13. Any content intended to incite or promote violence, - abuse, or any infliction of bodily harm to an individual\\n3. Intentionally - deceive or mislead others, including use of Llama 3.2 related to the following:\\n - \ 14. Generating, promoting, or furthering fraud or the creation or promotion - of disinformation\\n 15. Generating, promoting, or furthering defamatory - content, including the creation of defamatory statements, images, or other content\\n - \ 16. Generating, promoting, or further distributing spam\\n 17. Impersonating - another individual without consent, authorization, or legal right\\n 18. - Representing that the use of Llama 3.2 or outputs are human-generated\\n 19. - Generating or facilitating false online engagement, including fake reviews and - other means of fake online engagement\\n4. Fail to appropriately disclose to - end users any known dangers of your AI system\\n5. Interact with third party - tools, models, or software designed to generate unlawful content or engage in - unlawful or harmful conduct and/or represent that the outputs of such tools, - models, or software are associated with Meta or Llama 3.2\\n\\nWith respect - to any multimodal models included in Llama 3.2, the rights granted under Section - 1(a) of the Llama 3.2 Community License Agreement are not being granted to you - if you are an individual domiciled in, or a company with a principal place of - business in, the European Union. This restriction does not apply to end users - of a product or service that incorporates any such multimodal models.\\n\\nPlease - report any violation of this Policy, software \u201Cbug,\u201D or other problems - that could lead to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama - show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# - FROM llama3.2:3b\\n\\nFROM /Users/joaomoura/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE - \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end }}\\n{{- - if .Tools }}When you receive a tool call response, use the output to format - an answer to the orginal user question.\\n\\nYou are a helpful assistant with - tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range $i, - $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond with - a JSON for a function call with its proper arguments that best answers the given - prompt.\\n\\nRespond in the format {\\\"name\\\": function name, \\\"parameters\\\": - dictionary of argument name and its value}. Do not use variables.\\n\\n{{ range - $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else }}\\n\\n{{ - .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ end }}\\n{{- - else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER - stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE - \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: - September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions - for use, reproduction, distribution \\nand modification of the Llama Materials - set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, manuals - and documentation accompanying Llama 3.2\\ndistributed by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations to - provide legal consent and that has legal authority\\nto bind your employer or - such other person or entity if you are entering in this Agreement\\non their - behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language models - and software and algorithms, including\\nmachine-learning model code, trained - model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and Documentation - (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located in - or, \\nif you are an entity, your principal place of business is in the EEA - or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside of the - EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below or by using - or distributing any portion or element of the Llama Materials,\\nyou agree to - be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to the - Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. If - you distribute or make available the Llama Materials (or any derivative works - thereof), \\nor a product or service (including another AI model) that contains - any of them, you shall (A) provide\\na copy of this Agreement with any such - Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is distributed - or made available, you shall also include \u201CLlama\u201D\\nat the beginning - of any such AI model name.\\n\\n ii. If you receive Llama Materials, - or any derivative works thereof, from a Licensee as part\\nof an integrated - end user product, then Section 2 of this Agreement will not apply to you. \\n\\n - \ iii. You must retain in all copies of the Llama Materials that you distribute - the \\nfollowing attribution notice within a \u201CNotice\u201D text file distributed - as a part of such copies: \\n\u201CLlama 3.2 is licensed under the Llama 3.2 - Community License, Copyright \xA9 Meta Platforms,\\nInc. All Rights Reserved.\u201D\\n\\n - \ iv. Your use of the Llama Materials must comply with applicable laws - and regulations\\n(including trade compliance laws and regulations) and adhere - to the Acceptable Use Policy for\\nthe Llama Materials (available at https://www.llama.com/llama3_2/use-policy), - which is hereby \\nincorporated by reference into this Agreement.\\n \\n2. - Additional Commercial Terms. If, on the Llama 3.2 version release date, the - monthly active users\\nof the products or services made available by or for - Licensee, or Licensee\u2019s affiliates, \\nis greater than 700 million monthly - active users in the preceding calendar month, you must request \\na license - from Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or until - Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer of Warranty. - UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY OUTPUT AND \\nRESULTS - THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, WITHOUT WARRANTIES OF - ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY KIND, BOTH EXPRESS AND - IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF TITLE, NON-INFRINGEMENT, - MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE\\nFOR - DETERMINING THE APPROPRIATENESS OF USING OR REDISTRIBUTING THE LLAMA MATERIALS - AND ASSUME ANY RISKS ASSOCIATED\\nWITH YOUR USE OF THE LLAMA MATERIALS AND ANY - OUTPUT AND RESULTS.\\n\\n4. Limitation of Liability. IN NO EVENT WILL META OR - ITS AFFILIATES BE LIABLE UNDER ANY THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, - TORT, NEGLIGENCE, PRODUCTS LIABILITY, OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, - \\nFOR ANY LOST PROFITS OR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, - EXEMPLARY OR PUNITIVE DAMAGES, EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED - OF THE POSSIBILITY OF ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n - \ a. No trademark licenses are granted under this Agreement, and in connection - with the Llama Materials, \\nneither Meta nor Licensee may use any name or mark - owned by or associated with the other or any of its affiliates, \\nexcept as - required for reasonable and customary use in describing and redistributing the - Llama Materials or as \\nset forth in this Section 5(a). Meta hereby grants - you a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with Meta\u2019s - brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between you - and Meta,\\n you are and will be the owner of such derivative works and modifications.\\n\\n - \ c. If you institute litigation or other proceedings against Meta or any - entity (including a cross-claim or\\n counterclaim in a lawsuit) alleging - that the Llama Materials or Llama 3.2 outputs or results, or any portion\\n - \ of any of the foregoing, constitutes infringement of intellectual property - or other rights owned or licensable\\n by you, then any licenses granted - to you under this Agreement shall terminate as of the date such litigation or\\n - \ claim is filed or instituted. You will indemnify and hold harmless Meta - from and against any claim by any third\\n party arising out of or related - to your use or distribution of the Llama Materials.\\n\\n6. Term and Termination. - The term of this Agreement will commence upon your acceptance of this Agreement - or access\\nto the Llama Materials and will continue in full force and effect - until terminated in accordance with the terms\\nand conditions herein. Meta - may terminate this Agreement if you are in breach of any term or condition of - this\\nAgreement. Upon termination of this Agreement, you shall delete and cease - use of the Llama Materials. Sections 3,\\n4 and 7 shall survive the termination - of this Agreement. \\n\\n7. Governing Law and Jurisdiction. This Agreement will - be governed and construed under the laws of the State of \\nCalifornia without - regard to choice of law principles, and the UN Convention on Contracts for the - International\\nSale of Goods does not apply to this Agreement. The courts of - California shall have exclusive jurisdiction of\\nany dispute arising out of - this Agreement.\\\"\\nLICENSE \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta - is committed to promoting safe and fair use of its tools and features, including - Llama 3.2. If you access or use Llama 3.2, you agree to this Acceptable Use - Policy (\u201C**Policy**\u201D). The most recent copy of this policy can be - found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You agree - you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. Violate - the law or others\u2019 rights, including to:\\n 1. Engage in, promote, generate, - contribute to, encourage, plan, incite, or further illegal or unlawful activity - or content, such as:\\n 1. Violence or terrorism\\n 2. Exploitation - or harm to children, including the solicitation, creation, acquisition, or dissemination - of child exploitative content or failure to report Child Sexual Abuse Material\\n - \ 3. Human trafficking, exploitation, and sexual violence\\n 4. - The illegal distribution of information or materials to minors, including obscene - materials, or failure to employ legally required age-gating in connection with - such information or materials.\\n 5. Sexual solicitation\\n 6. - Any other criminal activity\\n 1. Engage in, promote, incite, or facilitate - the harassment, abuse, threatening, or bullying of individuals or groups of - individuals\\n 2. Engage in, promote, incite, or facilitate discrimination - or other unlawful or harmful conduct in the provision of employment, employment - benefits, credit, housing, other economic benefits, or other essential goods - and services\\n 3. Engage in the unauthorized or unlicensed practice of any - profession including, but not limited to, financial, legal, medical/health, - or related professional practices\\n 4. Collect, process, disclose, generate, - or infer private or sensitive information about individuals, including information - about individuals\u2019 identity, health, or demographic information, unless - you have obtained the right to do so in accordance with applicable law\\n 5. - Engage in or facilitate any action or generate any content that infringes, misappropriates, - or otherwise violates any third-party rights, including the outputs or results - of any products or services using the Llama Materials\\n 6. Create, generate, - or facilitate the creation of malicious code, malware, computer viruses or do - anything else that could disable, overburden, interfere with or impair the proper - working, integrity, operation or appearance of a website or computer system\\n - \ 7. Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in the - planning or development of activities that present a risk of death or bodily - harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic Arms - Regulations (ITAR) maintained by the United States Department of State or to - the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical Weapons - Convention Implementation Act of 1997\\n 9. Guns and illegal weapons (including - weapon development)\\n 10. Illegal drugs and regulated/controlled substances\\n - \ 11. Operation of critical infrastructure, transportation technologies, or - heavy machinery\\n 12. Self-harm or harm to others, including suicide, cutting, - and eating disorders\\n 13. Any content intended to incite or promote violence, - abuse, or any infliction of bodily harm to an individual\\n3. Intentionally - deceive or mislead others, including use of Llama 3.2 related to the following:\\n - \ 14. Generating, promoting, or furthering fraud or the creation or promotion - of disinformation\\n 15. Generating, promoting, or furthering defamatory - content, including the creation of defamatory statements, images, or other content\\n - \ 16. Generating, promoting, or further distributing spam\\n 17. Impersonating - another individual without consent, authorization, or legal right\\n 18. - Representing that the use of Llama 3.2 or outputs are human-generated\\n 19. - Generating or facilitating false online engagement, including fake reviews and - other means of fake online engagement\\n4. Fail to appropriately disclose to - end users any known dangers of your AI system\\n5. Interact with third party - tools, models, or software designed to generate unlawful content or engage in - unlawful or harmful conduct and/or represent that the outputs of such tools, - models, or software are associated with Meta or Llama 3.2\\n\\nWith respect - to any multimodal models included in Llama 3.2, the rights granted under Section - 1(a) of the Llama 3.2 Community License Agreement are not being granted to you - if you are an individual domiciled in, or a company with a principal place of - business in, the European Union. This restriction does not apply to end users - of a product or service that incorporates any such multimodal models.\\n\\nPlease - report any violation of this Policy, software \u201Cbug,\u201D or other problems - that could lead to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop - \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end }}\\n{{- - if .Tools }}When you receive a tool call response, use the output to format - an answer to the orginal user question.\\n\\nYou are a helpful assistant with - tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range $i, - $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond with - a JSON for a function call with its proper arguments that best answers the given - prompt.\\n\\nRespond in the format {\\\"name\\\": function name, \\\"parameters\\\": - dictionary of argument name and its value}. Do not use variables.\\n\\n{{ range - $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else }}\\n\\n{{ - .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ end }}\\n{{- - else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"modified_at\":\"2025-02-20T18:55:09.150577031-08:00\"}" + body: + string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version + Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms + and conditions for use, reproduction, distribution \\nand modification of + the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means + the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed + by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D + or \u201Cyou\u201D means you, or your employer or any other person or entity + (if you are \\nentering into this Agreement on such person or entity\u2019s + behalf), of the age required under\\napplicable laws, rules or regulations + to provide legal consent and that has legal authority\\nto bind your employer + or such other person or entity if you are entering in this Agreement\\non + their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language + models and software and algorithms, including\\nmachine-learning model code, + trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning + enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** + **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair + use of its tools and features, including Llama 3.2. If you access or use Llama + 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The + most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama + show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# + FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE + \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: + September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions + for use, reproduction, distribution \\nand modification of the Llama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are \\nentering + into this Agreement on such person or entity\u2019s behalf), of the age required + under\\napplicable laws, rules or regulations to provide legal consent and + that has legal authority\\nto bind your employer or such other person or entity + if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama + 3.2\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE + \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting + safe and fair use of its tools and features, including Llama 3.2. If you access + or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). + The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" headers: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 21 Feb 2025 02:57:55 GMT + - Wed, 07 May 2025 01:18:33 GMT Transfer-Encoding: - chunked - http_version: HTTP/1.1 - status_code: 200 + status: + code: 200 + message: OK +- request: + body: '{"name": "llama3.2:3b"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '23' + content-type: + - application/json + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/show + response: + body: + string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version + Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms + and conditions for use, reproduction, distribution \\nand modification of + the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means + the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed + by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D + or \u201Cyou\u201D means you, or your employer or any other person or entity + (if you are \\nentering into this Agreement on such person or entity\u2019s + behalf), of the age required under\\napplicable laws, rules or regulations + to provide legal consent and that has legal authority\\nto bind your employer + or such other person or entity if you are entering in this Agreement\\non + their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language + models and software and algorithms, including\\nmachine-learning model code, + trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning + enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** + **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair + use of its tools and features, including Llama 3.2. If you access or use Llama + 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The + most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama + show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# + FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE + \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: + September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions + for use, reproduction, distribution \\nand modification of the Llama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are \\nentering + into this Agreement on such person or entity\u2019s behalf), of the age required + under\\napplicable laws, rules or regulations to provide legal consent and + that has legal authority\\nto bind your employer or such other person or entity + if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama + 3.2\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE + \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting + safe and fair use of its tools and features, including Llama 3.2. If you access + or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). + The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:18:33 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"name": "llama3.2:3b"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '23' + content-type: + - application/json + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/show + response: + body: + string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version + Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms + and conditions for use, reproduction, distribution \\nand modification of + the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means + the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed + by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D + or \u201Cyou\u201D means you, or your employer or any other person or entity + (if you are \\nentering into this Agreement on such person or entity\u2019s + behalf), of the age required under\\napplicable laws, rules or regulations + to provide legal consent and that has legal authority\\nto bind your employer + or such other person or entity if you are entering in this Agreement\\non + their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language + models and software and algorithms, including\\nmachine-learning model code, + trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning + enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** + **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair + use of its tools and features, including Llama 3.2. If you access or use Llama + 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The + most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama + show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# + FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE + \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: + September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions + for use, reproduction, distribution \\nand modification of the Llama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are \\nentering + into this Agreement on such person or entity\u2019s behalf), of the age required + under\\napplicable laws, rules or regulations to provide legal consent and + that has legal authority\\nto bind your employer or such other person or entity + if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama + 3.2\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE + \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting + safe and fair use of its tools and features, including Llama 3.2. If you access + or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). + The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:18:33 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"name": "llama3.2:3b"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '23' + content-type: + - application/json + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/show + response: + body: + string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version + Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms + and conditions for use, reproduction, distribution \\nand modification of + the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means + the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed + by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D + or \u201Cyou\u201D means you, or your employer or any other person or entity + (if you are \\nentering into this Agreement on such person or entity\u2019s + behalf), of the age required under\\napplicable laws, rules or regulations + to provide legal consent and that has legal authority\\nto bind your employer + or such other person or entity if you are entering in this Agreement\\non + their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language + models and software and algorithms, including\\nmachine-learning model code, + trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning + enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** + **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair + use of its tools and features, including Llama 3.2. If you access or use Llama + 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The + most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama + show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# + FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE + \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: + September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions + for use, reproduction, distribution \\nand modification of the Llama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are \\nentering + into this Agreement on such person or entity\u2019s behalf), of the age required + under\\napplicable laws, rules or regulations to provide legal consent and + that has legal authority\\nto bind your employer or such other person or entity + if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama + 3.2\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE + \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting + safe and fair use of its tools and features, including Llama 3.2. If you access + or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). + The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:18:33 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"model": "llama3.2:3b", "prompt": "### User:\nName: Alice Llama, Age: + 30\n\n### User:\nValidation Error found:\n2 validation errors for SimpleModel\nname\n Field + required [type=missing, input_value={''properties'': {''name'': ''Alice Llama'', + ''age'': 30}}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.9/v/missing\nage\n Field + required [type=missing, input_value={''properties'': {''name'': ''Alice Llama'', + ''age'': 30}}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.9/v/missing\nRecall + the function correctly, fix the errors\n\n### System:\nProduce JSON OUTPUT ONLY! + Adhere to this format {\"name\": \"function_name\", \"arguments\":{\"argument_name\": + \"argument_value\"}} The following functions are available to you:\n{''type'': + ''function'', ''function'': {''name'': ''SimpleModel'', ''description'': ''Correctly + extracted `SimpleModel` with all the required parameters with correct types'', + ''parameters'': {''properties'': {''name'': {''title'': ''Name'', ''type'': + ''string''}, ''age'': {''title'': ''Age'', ''type'': ''integer''}}, ''required'': + [''age'', ''name''], ''type'': ''object''}}}\n\n\n", "options": {}, "stream": + false, "format": "json", "images": []}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '1186' + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/generate + response: + body: + string: '{"model":"llama3.2:3b","created_at":"2025-05-07T01:18:36.524634802Z","response":"{\"name\": + \"SimpleModel\", \"arguments\": {\"name\": \"Alice Llama\", \"age\": \"30\"}}","done":true,"done_reason":"stop","context":[128006,9125,128007,271,38766,1303,33025,2696,25,6790,220,2366,18,271,128009,128006,882,128007,271,14711,2724,512,678,25,30505,445,81101,11,13381,25,220,966,271,14711,2724,512,14118,4703,1766,512,17,10741,6103,369,9170,1747,198,609,198,220,8771,2631,510,1337,28,31716,11,1988,3220,13150,13495,1232,5473,609,1232,364,62786,445,81101,518,364,425,1232,220,966,39254,1988,1857,40697,933,262,1789,4726,2038,4034,3788,1129,7805,7345,67,8322,22247,14,17,13,24,5574,14,31716,198,425,198,220,8771,2631,510,1337,28,31716,11,1988,3220,13150,13495,1232,5473,609,1232,364,62786,445,81101,518,364,425,1232,220,966,39254,1988,1857,40697,933,262,1789,4726,2038,4034,3788,1129,7805,7345,67,8322,22247,14,17,13,24,5574,14,31716,198,3905,543,279,734,12722,11,5155,279,6103,271,14711,744,512,1360,13677,4823,32090,27785,0,2467,6881,311,420,3645,5324,609,794,330,1723,1292,498,330,16774,23118,14819,1292,794,330,14819,3220,32075,578,2768,5865,527,2561,311,499,512,13922,1337,1232,364,1723,518,364,1723,1232,5473,609,1232,364,16778,1747,518,364,4789,1232,364,34192,398,28532,1595,16778,1747,63,449,682,279,2631,5137,449,4495,4595,518,364,14105,1232,5473,13495,1232,5473,609,1232,5473,2150,1232,364,678,518,364,1337,1232,364,928,25762,364,425,1232,5473,2150,1232,364,17166,518,364,1337,1232,364,11924,8439,2186,364,6413,1232,2570,425,518,364,609,4181,364,1337,1232,364,1735,23742,3818,128009,128006,78191,128007,271,5018,609,794,330,16778,1747,498,330,16774,794,5324,609,794,330,62786,445,81101,498,330,425,794,330,966,32075],"total_duration":3373549001,"load_duration":9209000,"prompt_eval_count":297,"prompt_eval_duration":2482874584,"eval_count":25,"eval_duration":881105501}' + headers: + Content-Length: + - '1869' + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:18:36 GMT + status: + code: 200 + message: OK +- request: + body: '{"name": "llama3.2:3b"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '23' + content-type: + - application/json + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/show + response: + body: + string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version + Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms + and conditions for use, reproduction, distribution \\nand modification of + the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means + the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed + by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D + or \u201Cyou\u201D means you, or your employer or any other person or entity + (if you are \\nentering into this Agreement on such person or entity\u2019s + behalf), of the age required under\\napplicable laws, rules or regulations + to provide legal consent and that has legal authority\\nto bind your employer + or such other person or entity if you are entering in this Agreement\\non + their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language + models and software and algorithms, including\\nmachine-learning model code, + trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning + enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** + **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair + use of its tools and features, including Llama 3.2. If you access or use Llama + 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The + most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama + show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# + FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE + \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: + September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions + for use, reproduction, distribution \\nand modification of the Llama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are \\nentering + into this Agreement on such person or entity\u2019s behalf), of the age required + under\\napplicable laws, rules or regulations to provide legal consent and + that has legal authority\\nto bind your employer or such other person or entity + if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama + 3.2\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE + \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting + safe and fair use of its tools and features, including Llama 3.2. If you access + or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). + The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:18:36 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"name": "llama3.2:3b"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '23' + content-type: + - application/json + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/show + response: + body: + string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version + Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms + and conditions for use, reproduction, distribution \\nand modification of + the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means + the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed + by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D + or \u201Cyou\u201D means you, or your employer or any other person or entity + (if you are \\nentering into this Agreement on such person or entity\u2019s + behalf), of the age required under\\napplicable laws, rules or regulations + to provide legal consent and that has legal authority\\nto bind your employer + or such other person or entity if you are entering in this Agreement\\non + their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language + models and software and algorithms, including\\nmachine-learning model code, + trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning + enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** + **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair + use of its tools and features, including Llama 3.2. If you access or use Llama + 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The + most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama + show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# + FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE + \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: + September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions + for use, reproduction, distribution \\nand modification of the Llama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are \\nentering + into this Agreement on such person or entity\u2019s behalf), of the age required + under\\napplicable laws, rules or regulations to provide legal consent and + that has legal authority\\nto bind your employer or such other person or entity + if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama + 3.2\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE + \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting + safe and fair use of its tools and features, including Llama 3.2. If you access + or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). + The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:18:36 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"name": "llama3.2:3b"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '23' + content-type: + - application/json + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/show + response: + body: + string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version + Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms + and conditions for use, reproduction, distribution \\nand modification of + the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means + the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed + by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D + or \u201Cyou\u201D means you, or your employer or any other person or entity + (if you are \\nentering into this Agreement on such person or entity\u2019s + behalf), of the age required under\\napplicable laws, rules or regulations + to provide legal consent and that has legal authority\\nto bind your employer + or such other person or entity if you are entering in this Agreement\\non + their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language + models and software and algorithms, including\\nmachine-learning model code, + trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning + enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** + **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair + use of its tools and features, including Llama 3.2. If you access or use Llama + 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The + most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama + show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# + FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE + \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: + September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions + for use, reproduction, distribution \\nand modification of the Llama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are \\nentering + into this Agreement on such person or entity\u2019s behalf), of the age required + under\\napplicable laws, rules or regulations to provide legal consent and + that has legal authority\\nto bind your employer or such other person or entity + if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama + 3.2\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE + \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting + safe and fair use of its tools and features, including Llama 3.2. If you access + or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). + The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:18:36 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"name": "llama3.2:3b"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '23' + content-type: + - application/json + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/show + response: + body: + string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version + Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms + and conditions for use, reproduction, distribution \\nand modification of + the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means + the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed + by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D + or \u201Cyou\u201D means you, or your employer or any other person or entity + (if you are \\nentering into this Agreement on such person or entity\u2019s + behalf), of the age required under\\napplicable laws, rules or regulations + to provide legal consent and that has legal authority\\nto bind your employer + or such other person or entity if you are entering in this Agreement\\non + their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language + models and software and algorithms, including\\nmachine-learning model code, + trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning + enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** + **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair + use of its tools and features, including Llama 3.2. If you access or use Llama + 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The + most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama + show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# + FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE + \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: + September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions + for use, reproduction, distribution \\nand modification of the Llama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are \\nentering + into this Agreement on such person or entity\u2019s behalf), of the age required + under\\napplicable laws, rules or regulations to provide legal consent and + that has legal authority\\nto bind your employer or such other person or entity + if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama + 3.2\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE + \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting + safe and fair use of its tools and features, including Llama 3.2. If you access + or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). + The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:18:36 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"name": "llama3.2:3b"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '23' + content-type: + - application/json + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/show + response: + body: + string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version + Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms + and conditions for use, reproduction, distribution \\nand modification of + the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means + the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed + by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D + or \u201Cyou\u201D means you, or your employer or any other person or entity + (if you are \\nentering into this Agreement on such person or entity\u2019s + behalf), of the age required under\\napplicable laws, rules or regulations + to provide legal consent and that has legal authority\\nto bind your employer + or such other person or entity if you are entering in this Agreement\\non + their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language + models and software and algorithms, including\\nmachine-learning model code, + trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning + enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** + **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair + use of its tools and features, including Llama 3.2. If you access or use Llama + 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The + most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama + show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# + FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE + \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: + September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions + for use, reproduction, distribution \\nand modification of the Llama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are \\nentering + into this Agreement on such person or entity\u2019s behalf), of the age required + under\\napplicable laws, rules or regulations to provide legal consent and + that has legal authority\\nto bind your employer or such other person or entity + if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama + 3.2\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE + \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting + safe and fair use of its tools and features, including Llama 3.2. If you access + or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). + The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:18:36 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"model": "llama3.2:3b", "prompt": "### User:\nName: Alice Llama, Age: + 30\n\n### User:\nValidation Error found:\n2 validation errors for SimpleModel\nname\n Field + required [type=missing, input_value={''properties'': {''name'': ''Alice Llama'', + ''age'': 30}}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.9/v/missing\nage\n Field + required [type=missing, input_value={''properties'': {''name'': ''Alice Llama'', + ''age'': 30}}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.9/v/missing\nRecall + the function correctly, fix the errors\n\n### User:\nValidation Error found:\n1 + validation error for SimpleModel\nage\n Input should be a valid integer [type=int_type, + input_value=''30'', input_type=str]\n For further information visit https://errors.pydantic.dev/2.9/v/int_type\nRecall + the function correctly, fix the errors\n\n### System:\nProduce JSON OUTPUT ONLY! + Adhere to this format {\"name\": \"function_name\", \"arguments\":{\"argument_name\": + \"argument_value\"}} The following functions are available to you:\n{''type'': + ''function'', ''function'': {''name'': ''SimpleModel'', ''description'': ''Correctly + extracted `SimpleModel` with all the required parameters with correct types'', + ''parameters'': {''properties'': {''name'': {''title'': ''Name'', ''type'': + ''string''}, ''age'': {''title'': ''Age'', ''type'': ''integer''}}, ''required'': + [''age'', ''name''], ''type'': ''object''}}}\n\n\n", "options": {}, "stream": + false, "format": "json", "images": []}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '1475' + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/generate + response: + body: + string: '{"model":"llama3.2:3b","created_at":"2025-05-07T01:18:39.719830887Z","response":"{ + \"name\": \"SimpleModel\", \"arguments\": {\"name\": \"Alice Llama\", \"age\": + 30} }","done":true,"done_reason":"stop","context":[128006,9125,128007,271,38766,1303,33025,2696,25,6790,220,2366,18,271,128009,128006,882,128007,271,14711,2724,512,678,25,30505,445,81101,11,13381,25,220,966,271,14711,2724,512,14118,4703,1766,512,17,10741,6103,369,9170,1747,198,609,198,220,8771,2631,510,1337,28,31716,11,1988,3220,13150,13495,1232,5473,609,1232,364,62786,445,81101,518,364,425,1232,220,966,39254,1988,1857,40697,933,262,1789,4726,2038,4034,3788,1129,7805,7345,67,8322,22247,14,17,13,24,5574,14,31716,198,425,198,220,8771,2631,510,1337,28,31716,11,1988,3220,13150,13495,1232,5473,609,1232,364,62786,445,81101,518,364,425,1232,220,966,39254,1988,1857,40697,933,262,1789,4726,2038,4034,3788,1129,7805,7345,67,8322,22247,14,17,13,24,5574,14,31716,198,3905,543,279,734,12722,11,5155,279,6103,271,14711,2724,512,14118,4703,1766,512,16,10741,1493,369,9170,1747,198,425,198,220,5688,1288,387,264,2764,7698,510,1337,16972,1857,11,1988,3220,1151,966,518,1988,1857,16311,933,262,1789,4726,2038,4034,3788,1129,7805,7345,67,8322,22247,14,17,13,24,5574,32214,1857,198,3905,543,279,734,12722,11,5155,279,6103,271,14711,744,512,1360,13677,4823,32090,27785,0,2467,6881,311,420,3645,5324,609,794,330,1723,1292,498,330,16774,23118,14819,1292,794,330,14819,3220,32075,578,2768,5865,527,2561,311,499,512,13922,1337,1232,364,1723,518,364,1723,1232,5473,609,1232,364,16778,1747,518,364,4789,1232,364,34192,398,28532,1595,16778,1747,63,449,682,279,2631,5137,449,4495,4595,518,364,14105,1232,5473,13495,1232,5473,609,1232,5473,2150,1232,364,678,518,364,1337,1232,364,928,25762,364,425,1232,5473,2150,1232,364,17166,518,364,1337,1232,364,11924,8439,2186,364,6413,1232,2570,425,518,364,609,4181,364,1337,1232,364,1735,23742,3818,128009,128006,78191,128007,271,90,330,609,794,330,16778,1747,498,330,16774,794,5324,609,794,330,62786,445,81101,498,330,425,794,220,966,92,335],"total_duration":3163444252,"load_duration":10288792,"prompt_eval_count":364,"prompt_eval_duration":2040868209,"eval_count":27,"eval_duration":1111864793}' + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:18:39 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"name": "llama3.2:3b"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '23' + content-type: + - application/json + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/show + response: + body: + string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version + Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms + and conditions for use, reproduction, distribution \\nand modification of + the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means + the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed + by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D + or \u201Cyou\u201D means you, or your employer or any other person or entity + (if you are \\nentering into this Agreement on such person or entity\u2019s + behalf), of the age required under\\napplicable laws, rules or regulations + to provide legal consent and that has legal authority\\nto bind your employer + or such other person or entity if you are entering in this Agreement\\non + their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language + models and software and algorithms, including\\nmachine-learning model code, + trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning + enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** + **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair + use of its tools and features, including Llama 3.2. If you access or use Llama + 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The + most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama + show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# + FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE + \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: + September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions + for use, reproduction, distribution \\nand modification of the Llama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are \\nentering + into this Agreement on such person or entity\u2019s behalf), of the age required + under\\napplicable laws, rules or regulations to provide legal consent and + that has legal authority\\nto bind your employer or such other person or entity + if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama + 3.2\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE + \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting + safe and fair use of its tools and features, including Llama 3.2. If you access + or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). + The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:18:39 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"name": "llama3.2:3b"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '23' + content-type: + - application/json + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/show + response: + body: + string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version + Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms + and conditions for use, reproduction, distribution \\nand modification of + the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means + the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed + by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D + or \u201Cyou\u201D means you, or your employer or any other person or entity + (if you are \\nentering into this Agreement on such person or entity\u2019s + behalf), of the age required under\\napplicable laws, rules or regulations + to provide legal consent and that has legal authority\\nto bind your employer + or such other person or entity if you are entering in this Agreement\\non + their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language + models and software and algorithms, including\\nmachine-learning model code, + trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning + enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** + **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair + use of its tools and features, including Llama 3.2. If you access or use Llama + 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The + most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama + show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# + FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE + \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: + September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions + for use, reproduction, distribution \\nand modification of the Llama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are \\nentering + into this Agreement on such person or entity\u2019s behalf), of the age required + under\\napplicable laws, rules or regulations to provide legal consent and + that has legal authority\\nto bind your employer or such other person or entity + if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama + 3.2\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE + \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting + safe and fair use of its tools and features, including Llama 3.2. If you access + or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). + The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:18:39 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK version: 1 diff --git a/tests/utilities/cassettes/test_converter_with_nested_model.yaml b/tests/utilities/cassettes/test_converter_with_nested_model.yaml index b5f8e38e7..4a4f8bbfa 100644 --- a/tests/utilities/cassettes/test_converter_with_nested_model.yaml +++ b/tests/utilities/cassettes/test_converter_with_nested_model.yaml @@ -113,4 +113,434 @@ interactions: - req_2f9d1e3f0ace4944891dde05093486aa http_version: HTTP/1.1 status_code: 200 +- request: + body: '{"name": "llama3.2:3b"}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '23' + content-type: + - application/json + host: + - localhost:11434 + user-agent: + - litellm/1.68.0 + method: POST + uri: http://localhost:11434/api/show + response: + body: + string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version + Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms + and conditions for use, reproduction, distribution \\nand modification of + the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means + the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed + by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D + or \u201Cyou\u201D means you, or your employer or any other person or entity + (if you are \\nentering into this Agreement on such person or entity\u2019s + behalf), of the age required under\\napplicable laws, rules or regulations + to provide legal consent and that has legal authority\\nto bind your employer + or such other person or entity if you are entering in this Agreement\\non + their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language + models and software and algorithms, including\\nmachine-learning model code, + trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning + enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** + **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair + use of its tools and features, including Llama 3.2. If you access or use Llama + 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The + most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama + show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# + FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE + \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER + stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE + \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: + September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions + for use, reproduction, distribution \\nand modification of the Llama Materials + set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, + manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at + https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D + means you, or your employer or any other person or entity (if you are \\nentering + into this Agreement on such person or entity\u2019s behalf), of the age required + under\\napplicable laws, rules or regulations to provide legal consent and + that has legal authority\\nto bind your employer or such other person or entity + if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama + 3.2\u201D means the foundational large language models and software and algorithms, + including\\nmachine-learning model code, trained model weights, inference-enabling + code, training-enabling code,\\nfine-tuning enabling code and other elements + of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama + Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and + Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D + or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located + in or, \\nif you are an entity, your principal place of business is in the + EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside + of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below + or by using or distributing any portion or element of the Llama Materials,\\nyou + agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n + \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable + and royalty-free limited license under Meta\u2019s intellectual property or + other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, + distribute, copy, create derivative works \\nof, and make modifications to + the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. + If you distribute or make available the Llama Materials (or any derivative + works thereof), \\nor a product or service (including another AI model) that + contains any of them, you shall (A) provide\\na copy of this Agreement with + any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non + a related website, user interface, blogpost, about page, or product documentation. + If you use the\\nLlama Materials or any outputs or results of the Llama Materials + to create, train, fine tune, or\\notherwise improve an AI model, which is + distributed or made available, you shall also include \u201CLlama\u201D\\nat + the beginning of any such AI model name.\\n\\n ii. If you receive Llama + Materials, or any derivative works thereof, from a Licensee as part\\nof an + integrated end user product, then Section 2 of this Agreement will not apply + to you. \\n\\n iii. You must retain in all copies of the Llama Materials + that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D + text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed + under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. + All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials + must comply with applicable laws and regulations\\n(including trade compliance + laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama + Materials (available at https://www.llama.com/llama3_2/use-policy), which + is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional + Commercial Terms. If, on the Llama 3.2 version release date, the monthly active + users\\nof the products or services made available by or for Licensee, or + Licensee\u2019s affiliates, \\nis greater than 700 million monthly active + users in the preceding calendar month, you must request \\na license from + Meta, which Meta may grant to you in its sole discretion, and you are not + authorized to\\nexercise any of the rights under this Agreement unless or + until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer + of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY + OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, + WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY + KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. + YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING + OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH + YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation + of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY + THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, + OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY + INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, + EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF + ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark + licenses are granted under this Agreement, and in connection with the Llama + Materials, \\nneither Meta nor Licensee may use any name or mark owned by + or associated with the other or any of its affiliates, \\nexcept as required + for reasonable and customary use in describing and redistributing the Llama + Materials or as \\nset forth in this Section 5(a). Meta hereby grants you + a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required + \\nto comply with the last sentence of Section 1.b.i. You will comply with + Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). + All goodwill arising out of your use of the Mark \\nwill inure to the benefit + of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and + derivatives made by or for Meta, with respect to any\\n derivative works + and modifications of the Llama Materials that are made by you, as between + you and Meta,\\n you are and will be the owner of such derivative works + and modifications.\\n\\n c. If you institute litigation or other proceedings + against Meta or any entity (including a cross-claim or\\n counterclaim + in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, + or any portion\\n of any of the foregoing, constitutes infringement of + intellectual property or other rights owned or licensable\\n by you, then + any licenses granted to you under this Agreement shall terminate as of the + date such litigation or\\n claim is filed or instituted. You will indemnify + and hold harmless Meta from and against any claim by any third\\n party + arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. + Term and Termination. The term of this Agreement will commence upon your acceptance + of this Agreement or access\\nto the Llama Materials and will continue in + full force and effect until terminated in accordance with the terms\\nand + conditions herein. Meta may terminate this Agreement if you are in breach + of any term or condition of this\\nAgreement. Upon termination of this Agreement, + you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and + 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law + and Jurisdiction. This Agreement will be governed and construed under the + laws of the State of \\nCalifornia without regard to choice of law principles, + and the UN Convention on Contracts for the International\\nSale of Goods does + not apply to this Agreement. The courts of California shall have exclusive + jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE + \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting + safe and fair use of its tools and features, including Llama 3.2. If you access + or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). + The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited + Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You + agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. + Violate the law or others\u2019 rights, including to:\\n 1. Engage in, + promote, generate, contribute to, encourage, plan, incite, or further illegal + or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n + \ 2. Exploitation or harm to children, including the solicitation, creation, + acquisition, or dissemination of child exploitative content or failure to + report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, + and sexual violence\\n 4. The illegal distribution of information or + materials to minors, including obscene materials, or failure to employ legally + required age-gating in connection with such information or materials.\\n 5. + Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage + in, promote, incite, or facilitate the harassment, abuse, threatening, or + bullying of individuals or groups of individuals\\n 2. Engage in, promote, + incite, or facilitate discrimination or other unlawful or harmful conduct + in the provision of employment, employment benefits, credit, housing, other + economic benefits, or other essential goods and services\\n 3. Engage in + the unauthorized or unlicensed practice of any profession including, but not + limited to, financial, legal, medical/health, or related professional practices\\n + \ 4. Collect, process, disclose, generate, or infer private or sensitive + information about individuals, including information about individuals\u2019 + identity, health, or demographic information, unless you have obtained the + right to do so in accordance with applicable law\\n 5. Engage in or facilitate + any action or generate any content that infringes, misappropriates, or otherwise + violates any third-party rights, including the outputs or results of any products + or services using the Llama Materials\\n 6. Create, generate, or facilitate + the creation of malicious code, malware, computer viruses or do anything else + that could disable, overburden, interfere with or impair the proper working, + integrity, operation or appearance of a website or computer system\\n 7. + Engage in any action, or facilitate any action, to intentionally circumvent + or remove usage restrictions or other safety measures, or to enable functionality + disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in + the planning or development of activities that present a risk of death or + bodily harm to individuals, including use of Llama 3.2 related to the following:\\n + \ 8. Military, warfare, nuclear industries or applications, espionage, use + for materials or activities that are subject to the International Traffic + Arms Regulations (ITAR) maintained by the United States Department of State + or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical + Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons + (including weapon development)\\n 10. Illegal drugs and regulated/controlled + substances\\n 11. Operation of critical infrastructure, transportation + technologies, or heavy machinery\\n 12. Self-harm or harm to others, including + suicide, cutting, and eating disorders\\n 13. Any content intended to incite + or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. + Intentionally deceive or mislead others, including use of Llama 3.2 related + to the following:\\n 14. Generating, promoting, or furthering fraud or + the creation or promotion of disinformation\\n 15. Generating, promoting, + or furthering defamatory content, including the creation of defamatory statements, + images, or other content\\n 16. Generating, promoting, or further distributing + spam\\n 17. Impersonating another individual without consent, authorization, + or legal right\\n 18. Representing that the use of Llama 3.2 or outputs + are human-generated\\n 19. Generating or facilitating false online engagement, + including fake reviews and other means of fake online engagement\\n4. Fail + to appropriately disclose to end users any known dangers of your AI system\\n5. + Interact with third party tools, models, or software designed to generate + unlawful content or engage in unlawful or harmful conduct and/or represent + that the outputs of such tools, models, or software are associated with Meta + or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama + 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License + Agreement are not being granted to you if you are an individual domiciled + in, or a company with a principal place of business in, the European Union. + This restriction does not apply to end users of a product or service that + incorporates any such multimodal models.\\n\\nPlease report any violation + of this Policy, software \u201Cbug,\u201D or other problems that could lead + to a violation of this Policy through one of the following means:\\n\\n\\n\\n* + Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* + Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* + Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* + Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama + 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop + \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting + Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end + }}\\n{{- if .Tools }}When you receive a tool call response, use the output + to format an answer to the orginal user question.\\n\\nYou are a helpful assistant + with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range + $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- + if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- + if and $.Tools $last }}\\n\\nGiven the following functions, please respond + with a JSON for a function call with its proper arguments that best answers + the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, + \\\"parameters\\\": dictionary of argument name and its value}. Do not use + variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- + else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last + }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- + if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name + }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else + }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ + end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ + .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ + end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Wed, 07 May 2025 01:18:39 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK version: 1 diff --git a/tests/utilities/test_converter.py b/tests/utilities/test_converter.py index 70d1ce718..9c565dce6 100644 --- a/tests/utilities/test_converter.py +++ b/tests/utilities/test_converter.py @@ -357,14 +357,7 @@ def test_convert_with_instructions(): assert output.age == 30 -# Skip tests that call external APIs when running in CI/CD -skip_external_api = pytest.mark.skipif( - os.getenv("CI") is not None, reason="Skipping tests that call external API in CI/CD" -) - - -@skip_external_api -@pytest.mark.vcr(filter_headers=["authorization"], record_mode="once") +@pytest.mark.vcr(filter_headers=["authorization"]) def test_converter_with_llama3_2_model(): llm = LLM(model="ollama/llama3.2:3b", base_url="http://localhost:11434") sample_text = "Name: Alice Llama, Age: 30" @@ -381,8 +374,7 @@ def test_converter_with_llama3_2_model(): assert output.age == 30 -@skip_external_api -@pytest.mark.vcr(filter_headers=["authorization"], record_mode="once") +@pytest.mark.vcr(filter_headers=["authorization"]) def test_converter_with_llama3_1_model(): llm = LLM(model="ollama/llama3.1", base_url="http://localhost:11434") sample_text = "Name: Alice Llama, Age: 30" @@ -399,13 +391,6 @@ def test_converter_with_llama3_1_model(): assert output.age == 30 -# Skip tests that call external APIs when running in CI/CD -skip_external_api = pytest.mark.skipif( - os.getenv("CI") is not None, reason="Skipping tests that call external API in CI/CD" -) - - -@skip_external_api @pytest.mark.vcr(filter_headers=["authorization"]) def test_converter_with_nested_model(): llm = LLM(model="gpt-4o-mini") From e23bc2aaa7d5f9d981d919d57e53af01e0cd9412 Mon Sep 17 00:00:00 2001 From: omahs <73983677+omahs@users.noreply.github.com> Date: Wed, 7 May 2025 17:11:57 +0200 Subject: [PATCH 06/40] Fix typos (#2774) * fix typos * fix typo * fix typos --------- Co-authored-by: Tony Kipkemboi --- README.md | 2 +- docs/concepts/crews.mdx | 4 ++-- docs/tools/nl2sqltool.mdx | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 4d563daee..57cb26e39 100644 --- a/README.md +++ b/README.md @@ -504,7 +504,7 @@ This example demonstrates how to: CrewAI supports using various LLMs through a variety of connection options. By default your agents will use the OpenAI API when querying the model. However, there are several other ways to allow your agents to connect to models. For example, you can configure your agents to use a local model via the Ollama tool. -Please refer to the [Connect CrewAI to LLMs](https://docs.crewai.com/how-to/LLM-Connections/) page for details on configuring you agents' connections to models. +Please refer to the [Connect CrewAI to LLMs](https://docs.crewai.com/how-to/LLM-Connections/) page for details on configuring your agents' connections to models. ## How CrewAI Compares diff --git a/docs/concepts/crews.mdx b/docs/concepts/crews.mdx index 76268457e..97d1a7d6c 100644 --- a/docs/concepts/crews.mdx +++ b/docs/concepts/crews.mdx @@ -27,7 +27,7 @@ A crew in crewAI represents a collaborative group of agents working together to | **Step Callback** _(optional)_ | `step_callback` | A function that is called after each step of every agent. This can be used to log the agent's actions or to perform other operations; it won't override the agent-specific `step_callback`. | | **Task Callback** _(optional)_ | `task_callback` | A function that is called after the completion of each task. Useful for monitoring or additional operations post-task execution. | | **Share Crew** _(optional)_ | `share_crew` | Whether you want to share the complete crew information and execution with the crewAI team to make the library better, and allow us to train models. | -| **Output Log File** _(optional)_ | `output_log_file` | Set to True to save logs as logs.txt in the current directory or provide a file path. Logs will be in JSON format if the filename ends in .json, otherwise .txt. Defautls to `None`. | +| **Output Log File** _(optional)_ | `output_log_file` | Set to True to save logs as logs.txt in the current directory or provide a file path. Logs will be in JSON format if the filename ends in .json, otherwise .txt. Defaults to `None`. | | **Manager Agent** _(optional)_ | `manager_agent` | `manager` sets a custom agent that will be used as a manager. | | **Prompt File** _(optional)_ | `prompt_file` | Path to the prompt JSON file to be used for the crew. | | **Planning** *(optional)* | `planning` | Adds planning ability to the Crew. When activated before each Crew iteration, all Crew data is sent to an AgentPlanner that will plan the tasks and this plan will be added to each task description. | @@ -246,7 +246,7 @@ print(f"Token Usage: {crew_output.token_usage}") You can see real time log of the crew execution, by setting `output_log_file` as a `True(Boolean)` or a `file_name(str)`. Supports logging of events as both `file_name.txt` and `file_name.json`. In case of `True(Boolean)` will save as `logs.txt`. -In case of `output_log_file` is set as `False(Booelan)` or `None`, the logs will not be populated. +In case of `output_log_file` is set as `False(Boolean)` or `None`, the logs will not be populated. ```python Code # Save crew logs diff --git a/docs/tools/nl2sqltool.mdx b/docs/tools/nl2sqltool.mdx index ebf535847..582d25383 100644 --- a/docs/tools/nl2sqltool.mdx +++ b/docs/tools/nl2sqltool.mdx @@ -8,10 +8,10 @@ icon: language ## Description -This tool is used to convert natural language to SQL queries. When passsed to the agent it will generate queries and then use them to interact with the database. +This tool is used to convert natural language to SQL queries. When passed to the agent it will generate queries and then use them to interact with the database. This enables multiple workflows like having an Agent to access the database fetch information based on the goal and then use the information to generate a response, report or any other output. -Along with that proivdes the ability for the Agent to update the database based on its goal. +Along with that provides the ability for the Agent to update the database based on its goal. **Attention**: Make sure that the Agent has access to a Read-Replica or that is okay for the Agent to run insert/update queries on the database. @@ -81,4 +81,4 @@ The Tool provides endless possibilities on the logic of the Agent and how it can ```md DB -> Agent -> ... -> Agent -> DB -``` \ No newline at end of file +``` From e3887ae36e6f7c2d8da7a2ad44f33a457880379b Mon Sep 17 00:00:00 2001 From: Mark McDonald Date: Wed, 7 May 2025 23:30:27 +0800 Subject: [PATCH 07/40] Used model-agnostic examples in quickstart/firsts. (#2773) Updated prereqs and setup steps to point to the now-more-model-agnostic LLM setup guide, and updated the relevant text to go with it. Co-authored-by: Tony Kipkemboi --- docs/guides/crews/first-crew.mdx | 16 +++++++++------- docs/guides/flows/first-flow.mdx | 23 +++++++++++++++++------ docs/quickstart.mdx | 5 +++-- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/docs/guides/crews/first-crew.mdx b/docs/guides/crews/first-crew.mdx index 8eb2619d1..db770c0de 100644 --- a/docs/guides/crews/first-crew.mdx +++ b/docs/guides/crews/first-crew.mdx @@ -35,7 +35,8 @@ Let's get started building your first crew! Before starting, make sure you have: 1. Installed CrewAI following the [installation guide](/installation) -2. Set up your OpenAI API key in your environment variables +2. Set up your LLM API key in your environment, following the [LLM setup + guide](/concepts/llms#setting-up-your-llm) 3. Basic understanding of Python ## Step 1: Create a New CrewAI Project @@ -92,7 +93,8 @@ For our research crew, we'll create two agents: 1. A **researcher** who excels at finding and organizing information 2. An **analyst** who can interpret research findings and create insightful reports -Let's modify the `agents.yaml` file to define these specialized agents: +Let's modify the `agents.yaml` file to define these specialized agents. Be sure +to set `llm` to the provider you are using. ```yaml # src/research_crew/config/agents.yaml @@ -107,7 +109,7 @@ researcher: finding relevant information from various sources. You excel at organizing information in a clear and structured manner, making complex topics accessible to others. - llm: openai/gpt-4o-mini + llm: provider/model-id # e.g. openai/gpt-4o, google/gemini-2.0-flash, anthropic/claude... analyst: role: > @@ -120,7 +122,7 @@ analyst: and technical writing. You have a talent for identifying patterns and extracting meaningful insights from research data, then communicating those insights effectively through well-crafted reports. - llm: openai/gpt-4o-mini + llm: provider/model-id # e.g. openai/gpt-4o, google/gemini-2.0-flash, anthropic/claude... ``` Notice how each agent has a distinct role, goal, and backstory. These elements aren't just descriptive - they actively shape how the agent approaches its tasks. By crafting these carefully, you can create agents with specialized skills and perspectives that complement each other. @@ -282,12 +284,12 @@ This script prepares the environment, specifies our research topic, and kicks of Create a `.env` file in your project root with your API keys: -``` -OPENAI_API_KEY=your_openai_api_key +```sh SERPER_API_KEY=your_serper_api_key +# Add your provider's API key here too. ``` -You can get a Serper API key from [Serper.dev](https://serper.dev/). +See the [LLM Setup guide](/concepts/llms#setting-up-your-llm) for details on configuring your provider of choice. You can get a Serper API key from [Serper.dev](https://serper.dev/). ## Step 8: Install Dependencies diff --git a/docs/guides/flows/first-flow.mdx b/docs/guides/flows/first-flow.mdx index d5784f0a9..fab6f8e42 100644 --- a/docs/guides/flows/first-flow.mdx +++ b/docs/guides/flows/first-flow.mdx @@ -45,7 +45,8 @@ Let's dive in and build your first flow! Before starting, make sure you have: 1. Installed CrewAI following the [installation guide](/installation) -2. Set up your OpenAI API key in your environment variables +2. Set up your LLM API key in your environment, following the [LLM setup + guide](/concepts/llms#setting-up-your-llm) 3. Basic understanding of Python ## Step 1: Create a New CrewAI Flow Project @@ -107,6 +108,8 @@ Now, let's modify the generated files for the content writer crew. We'll set up 1. First, update the agents configuration file to define our content creation team: + Remember to set `llm` to the provider you are using. + ```yaml # src/guide_creator_flow/crews/content_crew/config/agents.yaml content_writer: @@ -119,7 +122,7 @@ content_writer: You are a talented educational writer with expertise in creating clear, engaging content. You have a gift for explaining complex concepts in accessible language and organizing information in a way that helps readers build their understanding. - llm: openai/gpt-4o-mini + llm: provider/model-id # e.g. openai/gpt-4o, google/gemini-2.0-flash, anthropic/claude... content_reviewer: role: > @@ -132,7 +135,7 @@ content_reviewer: content. You have an eye for detail, clarity, and coherence. You excel at improving content while maintaining the original author's voice and ensuring consistent quality across multiple sections. - llm: openai/gpt-4o-mini + llm: provider/model-id # e.g. openai/gpt-4o, google/gemini-2.0-flash, anthropic/claude... ``` These agent definitions establish the specialized roles and perspectives that will shape how our AI agents approach content creation. Notice how each agent has a distinct purpose and expertise. @@ -441,10 +444,15 @@ This is the power of flows - combining different types of processing (user inter ## Step 6: Set Up Your Environment Variables -Create a `.env` file in your project root with your API keys: +Create a `.env` file in your project root with your API keys. See the [LLM setup +guide](/concepts/llms#setting-up-your-llm) for details on configuring a provider. -``` +```sh .env OPENAI_API_KEY=your_openai_api_key +# or +GEMINI_API_KEY=your_gemini_api_key +# or +ANTHROPIC_API_KEY=your_anthropic_api_key ``` ## Step 7: Install Dependencies @@ -547,7 +555,10 @@ Let's break down the key components of flows to help you understand how to build Flows allow you to make direct calls to language models when you need simple, structured responses: ```python -llm = LLM(model="openai/gpt-4o-mini", response_format=GuideOutline) +llm = LLM( + model="model-id-here", # gpt-4o, gemini-2.0-flash, anthropic/claude... + response_format=GuideOutline +) response = llm.call(messages=messages) ``` diff --git a/docs/quickstart.mdx b/docs/quickstart.mdx index 1f773fb23..b9f04dba4 100644 --- a/docs/quickstart.mdx +++ b/docs/quickstart.mdx @@ -180,8 +180,9 @@ Follow the steps below to get Crewing! 🚣‍♂️ Before running your crew, make sure you have the following keys set as environment variables in your `.env` file: - - An [OpenAI API key](https://platform.openai.com/account/api-keys) (or other LLM API key): `OPENAI_API_KEY=sk-...` - A [Serper.dev](https://serper.dev/) API key: `SERPER_API_KEY=YOUR_KEY_HERE` + - The configuration for your choice of model, such as an API key. See the + [LLM setup guide](/concepts/llms#setting-up-your-llm) to learn how to configure models from any provider. - Lock the dependencies and install them by using the CLI command: @@ -317,7 +318,7 @@ email_summarizer: Summarize emails into a concise and clear summary backstory: > You will create a 5 bullet point summary of the report - llm: openai/gpt-4o + llm: provider/model-id # Add your choice of model here ``` From 7ad51d9d054cfb00f6abc3af83d85908bd763883 Mon Sep 17 00:00:00 2001 From: Lorenze Jay <63378463+lorenzejay@users.noreply.github.com> Date: Wed, 7 May 2025 11:55:42 -0700 Subject: [PATCH 08/40] feat: implement knowledge retrieval events in Agent (#2727) * feat: implement knowledge retrieval events in Agent This commit introduces a series of knowledge retrieval events in the Agent class, enhancing its ability to handle knowledge queries. New events include KnowledgeRetrievalStartedEvent, KnowledgeRetrievalCompletedEvent, KnowledgeQueryGeneratedEvent, KnowledgeQueryFailedEvent, and KnowledgeSearchQueryCompletedEvent. The Agent now emits these events during knowledge retrieval processes, allowing for better tracking and handling of knowledge queries. Additionally, the console formatter has been updated to handle these new events, providing visual feedback during knowledge retrieval operations. * refactor: update knowledge query handling in Agent This commit refines the knowledge query processing in the Agent class by renaming variables for clarity and optimizing the query rewriting logic. The system prompt has been updated in the translation file to enhance clarity and context for the query rewriting process. These changes aim to improve the overall readability and maintainability of the code. * fix: add missing newline at end of en.json file * fix broken tests * refactor: rename knowledge query events and enhance retrieval handling This commit renames the KnowledgeQueryGeneratedEvent to KnowledgeQueryStartedEvent to better reflect its purpose. It also updates the event handling in the EventListener and ConsoleFormatter classes to accommodate the new event structure. Additionally, the retrieval knowledge is now included in the KnowledgeRetrievalCompletedEvent, improving the overall knowledge retrieval process. * docs for transparancy * refactor: improve error handling in knowledge query processing This commit refactors the knowledge query handling in the Agent class by changing the order of checks for LLM compatibility. It now logs a warning and emits a failure event if the LLM is not an instance of BaseLLM before attempting to call the LLM. Additionally, the task_prompt attribute has been removed from the KnowledgeQueryFailedEvent, simplifying the event structure. * test: add unit test for knowledge search query and VCR cassette This commit introduces a new test, `test_get_knowledge_search_query`, to verify that the `_get_knowledge_search_query` method in the Agent class correctly interacts with the LLM using the appropriate prompts. Additionally, a VCR cassette is added to record the interactions with the OpenAI API for this test, ensuring consistent and reliable test results. --- docs/concepts/knowledge.mdx | 47 ++ src/crewai/agent.py | 192 +++-- src/crewai/translations/en.json | 4 +- src/crewai/utilities/events/event_listener.py | 64 ++ .../utilities/events/knowledge_events.py | 56 ++ .../events/utils/console_formatter.py | 199 +++++ tests/agent_test.py | 109 ++- .../test_agent_with_knowledge_sources.yaml | 467 +++++++++--- ...with_knowledge_sources_extensive_role.yaml | 706 ++++++++++++------ ...owledge_sources_generate_search_query.yaml | 660 ++++++++++++++++ ..._with_query_limit_and_score_threshold.yaml | 201 ++++- ...ery_limit_and_score_threshold_default.yaml | 203 +++-- .../test_get_knowledge_search_query.yaml | 333 +++++++++ 13 files changed, 2776 insertions(+), 465 deletions(-) create mode 100644 src/crewai/utilities/events/knowledge_events.py create mode 100644 tests/cassettes/test_agent_with_knowledge_sources_generate_search_query.yaml create mode 100644 tests/cassettes/test_get_knowledge_search_query.yaml diff --git a/docs/concepts/knowledge.mdx b/docs/concepts/knowledge.mdx index 9d1d0beab..5e302cf1c 100644 --- a/docs/concepts/knowledge.mdx +++ b/docs/concepts/knowledge.mdx @@ -397,6 +397,53 @@ result = crew.kickoff(inputs={"question": "What city does John live in and how o John is 30 years old and lives in San Francisco. ``` + +## Query Rewriting + +CrewAI implements an intelligent query rewriting mechanism to optimize knowledge retrieval. When an agent needs to search through knowledge sources, the raw task prompt is automatically transformed into a more effective search query. + +### How Query Rewriting Works + +1. When an agent executes a task with knowledge sources available, the `_get_knowledge_search_query` method is triggered +2. The agent's LLM is used to transform the original task prompt into an optimized search query +3. This optimized query is then used to retrieve relevant information from knowledge sources + +### Benefits of Query Rewriting + + + + By focusing on key concepts and removing irrelevant content, query rewriting helps retrieve more relevant information. + + + The rewritten queries are designed to be more specific and context-aware for vector database retrieval. + + + +### Implementation Details + +Query rewriting happens transparently using a system prompt that instructs the LLM to: + +- Focus on key words of the intended task +- Make the query more specific and context-aware +- Remove irrelevant content like output format instructions +- Generate only the rewritten query without preamble or postamble + + + This mechanism is fully automatic and requires no configuration from users. The agent's LLM is used to perform the query rewriting, so using a more capable LLM can improve the quality of rewritten queries. + + +### Example + +```python +# Original task prompt +task_prompt = "Answer the following questions about the user's favorite movies: What movie did John watch last week? Format your answer in JSON." + +# Behind the scenes, this might be rewritten as: +rewritten_query = "What movies did John watch last week?" +``` + +The rewritten query is more focused on the core information need and removes irrelevant instructions about output formatting. + ## Clearing Knowledge If you need to clear the knowledge stored in CrewAI, you can use the `crewai reset-memories` command with the `--knowledge` option. diff --git a/src/crewai/agent.py b/src/crewai/agent.py index 73fbcd2fb..dc637967f 100644 --- a/src/crewai/agent.py +++ b/src/crewai/agent.py @@ -31,6 +31,14 @@ from crewai.utilities.events.agent_events import ( AgentExecutionStartedEvent, ) from crewai.utilities.events.crewai_event_bus import crewai_event_bus +from crewai.utilities.events.knowledge_events import ( + KnowledgeQueryCompletedEvent, + KnowledgeQueryFailedEvent, + KnowledgeQueryStartedEvent, + KnowledgeRetrievalCompletedEvent, + KnowledgeRetrievalStartedEvent, + KnowledgeSearchQueryFailedEvent, +) from crewai.utilities.llm_utils import create_llm from crewai.utilities.token_counter_callback import TokenCalcHandler from crewai.utilities.training_handler import CrewTrainingHandler @@ -122,6 +130,10 @@ class Agent(BaseAgent): default=None, description="Knowledge context for the crew.", ) + knowledge_search_query: Optional[str] = Field( + default=None, + description="Knowledge search query for the agent dynamically generated by the agent.", + ) @model_validator(mode="after") def post_init_setup(self): @@ -185,7 +197,7 @@ class Agent(BaseAgent): self, task: Task, context: Optional[str] = None, - tools: Optional[List[BaseTool]] = None + tools: Optional[List[BaseTool]] = None, ) -> str: """Execute a task with the agent. @@ -245,27 +257,65 @@ class Agent(BaseAgent): knowledge_config = ( self.knowledge_config.model_dump() if self.knowledge_config else {} ) - if self.knowledge: - agent_knowledge_snippets = self.knowledge.query( - [task.prompt()], **knowledge_config - ) - if agent_knowledge_snippets: - self.agent_knowledge_context = extract_knowledge_context( - agent_knowledge_snippets - ) - if self.agent_knowledge_context: - task_prompt += self.agent_knowledge_context - if self.crew: - knowledge_snippets = self.crew.query_knowledge( - [task.prompt()], **knowledge_config + if self.knowledge: + crewai_event_bus.emit( + self, + event=KnowledgeRetrievalStartedEvent( + agent=self, + ), ) - if knowledge_snippets: - self.crew_knowledge_context = extract_knowledge_context( - knowledge_snippets + try: + self.knowledge_search_query = self._get_knowledge_search_query( + task_prompt + ) + if self.knowledge_search_query: + agent_knowledge_snippets = self.knowledge.query( + [self.knowledge_search_query], **knowledge_config + ) + if agent_knowledge_snippets: + self.agent_knowledge_context = extract_knowledge_context( + agent_knowledge_snippets + ) + if self.agent_knowledge_context: + task_prompt += self.agent_knowledge_context + if self.crew: + knowledge_snippets = self.crew.query_knowledge( + [self.knowledge_search_query], **knowledge_config + ) + if knowledge_snippets: + self.crew_knowledge_context = extract_knowledge_context( + knowledge_snippets + ) + if self.crew_knowledge_context: + task_prompt += self.crew_knowledge_context + + crewai_event_bus.emit( + self, + event=KnowledgeRetrievalCompletedEvent( + query=self.knowledge_search_query, + agent=self, + retrieved_knowledge=( + (self.agent_knowledge_context or "") + + ( + "\n" + if self.agent_knowledge_context + and self.crew_knowledge_context + else "" + ) + + (self.crew_knowledge_context or "") + ), + ), + ) + except Exception as e: + crewai_event_bus.emit( + self, + event=KnowledgeSearchQueryFailedEvent( + query=self.knowledge_search_query or "", + agent=self, + error=str(e), + ), ) - if self.crew_knowledge_context: - task_prompt += self.crew_knowledge_context tools = tools or self.tools or [] self.create_agent_executor(tools=tools, task=task) @@ -288,12 +338,19 @@ class Agent(BaseAgent): # Determine execution method based on timeout setting if self.max_execution_time is not None: - if not isinstance(self.max_execution_time, int) or self.max_execution_time <= 0: - raise ValueError("Max Execution time must be a positive integer greater than zero") - result = self._execute_with_timeout(task_prompt, task, self.max_execution_time) + if ( + not isinstance(self.max_execution_time, int) + or self.max_execution_time <= 0 + ): + raise ValueError( + "Max Execution time must be a positive integer greater than zero" + ) + result = self._execute_with_timeout( + task_prompt, task, self.max_execution_time + ) else: result = self._execute_without_timeout(task_prompt, task) - + except TimeoutError as e: # Propagate TimeoutError without retry crewai_event_bus.emit( @@ -345,54 +402,46 @@ class Agent(BaseAgent): ) return result - def _execute_with_timeout( - self, - task_prompt: str, - task: Task, - timeout: int - ) -> str: + def _execute_with_timeout(self, task_prompt: str, task: Task, timeout: int) -> str: """Execute a task with a timeout. - + Args: task_prompt: The prompt to send to the agent. task: The task being executed. timeout: Maximum execution time in seconds. - + Returns: The output of the agent. - + Raises: TimeoutError: If execution exceeds the timeout. RuntimeError: If execution fails for other reasons. """ import concurrent.futures + with concurrent.futures.ThreadPoolExecutor() as executor: future = executor.submit( - self._execute_without_timeout, - task_prompt=task_prompt, - task=task + self._execute_without_timeout, task_prompt=task_prompt, task=task ) - + try: return future.result(timeout=timeout) except concurrent.futures.TimeoutError: future.cancel() - raise TimeoutError(f"Task '{task.description}' execution timed out after {timeout} seconds. Consider increasing max_execution_time or optimizing the task.") + raise TimeoutError( + f"Task '{task.description}' execution timed out after {timeout} seconds. Consider increasing max_execution_time or optimizing the task." + ) except Exception as e: future.cancel() raise RuntimeError(f"Task execution failed: {str(e)}") - def _execute_without_timeout( - self, - task_prompt: str, - task: Task - ) -> str: + def _execute_without_timeout(self, task_prompt: str, task: Task) -> str: """Execute a task without a timeout. - + Args: task_prompt: The prompt to send to the agent. task: The task being executed. - + Returns: The output of the agent. """ @@ -560,6 +609,61 @@ class Agent(BaseAgent): def set_fingerprint(self, fingerprint: Fingerprint): self.security_config.fingerprint = fingerprint + def _get_knowledge_search_query(self, task_prompt: str) -> str | None: + """Generate a search query for the knowledge base based on the task description.""" + crewai_event_bus.emit( + self, + event=KnowledgeQueryStartedEvent( + task_prompt=task_prompt, + agent=self, + ), + ) + query = self.i18n.slice("knowledge_search_query").format( + task_prompt=task_prompt + ) + rewriter_prompt = self.i18n.slice("knowledge_search_query_system_prompt") + if not isinstance(self.llm, BaseLLM): + self._logger.log( + "warning", + f"Knowledge search query failed: LLM for agent '{self.role}' is not an instance of BaseLLM", + ) + crewai_event_bus.emit( + self, + event=KnowledgeQueryFailedEvent( + agent=self, + error="LLM is not compatible with knowledge search queries", + ), + ) + return None + + try: + rewritten_query = self.llm.call( + [ + { + "role": "system", + "content": rewriter_prompt, + }, + {"role": "user", "content": query}, + ] + ) + crewai_event_bus.emit( + self, + event=KnowledgeQueryCompletedEvent( + query=query, + agent=self, + ), + ) + return rewritten_query + except Exception as e: + crewai_event_bus.emit( + self, + event=KnowledgeQueryFailedEvent( + agent=self, + error=str(e), + ), + ) + return None + def kickoff( self, messages: Union[str, List[Dict[str, str]]], diff --git a/src/crewai/translations/en.json b/src/crewai/translations/en.json index c220e2279..74cdbb032 100644 --- a/src/crewai/translations/en.json +++ b/src/crewai/translations/en.json @@ -27,7 +27,9 @@ "feedback_instructions": "User feedback: {feedback}\nInstructions: Use this feedback to enhance the next output iteration.\nNote: Do not respond or add commentary.", "lite_agent_system_prompt_with_tools": "You are {role}. {backstory}\nYour personal goal is: {goal}\n\nYou ONLY have access to the following tools, and should NEVER make up tools that are not listed here:\n\n{tools}\n\nIMPORTANT: Use the following format in your response:\n\n```\nThought: you should always think about what to do\nAction: the action to take, only one name of [{tool_names}], just the name, exactly as it's written.\nAction Input: the input to the action, just a simple JSON object, enclosed in curly braces, using \" to wrap keys and values.\nObservation: the result of the action\n```\n\nOnce all necessary information is gathered, return the following format:\n\n```\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question\n```", "lite_agent_system_prompt_without_tools": "You are {role}. {backstory}\nYour personal goal is: {goal}\n\nTo give my best complete final answer to the task respond using the exact following format:\n\nThought: I now can give a great answer\nFinal Answer: Your final answer must be the great and the most complete as possible, it must be outcome described.\n\nI MUST use these formats, my job depends on it!", - "lite_agent_response_format": "\nIMPORTANT: Your final answer MUST contain all the information requested in the following format: {response_format}\n\nIMPORTANT: Ensure the final output does not include any code block markers like ```json or ```python." + "lite_agent_response_format": "\nIMPORTANT: Your final answer MUST contain all the information requested in the following format: {response_format}\n\nIMPORTANT: Ensure the final output does not include any code block markers like ```json or ```python.", + "knowledge_search_query": "The original query is: {task_prompt}.", + "knowledge_search_query_system_prompt": "Your goal is to rewrite the user query so that it is optimized for retrieval from a vector database. Consider how the query will be used to find relevant documents, and aim to make it more specific and context-aware. \n\n Do not include any other text than the rewritten query, especially any preamble or postamble and only add expected output format if its relevant to the rewritten query. \n\n Focus on the key words of the intended task and to retrieve the most relevant information. \n\n There will be some extra context provided that might need to be removed such as expected_output formats structured_outputs and other instructions." }, "errors": { "force_final_answer_error": "You can't keep going, here is the best final answer you generated:\n\n {formatted_answer}", diff --git a/src/crewai/utilities/events/event_listener.py b/src/crewai/utilities/events/event_listener.py index 3b837d842..a76b87964 100644 --- a/src/crewai/utilities/events/event_listener.py +++ b/src/crewai/utilities/events/event_listener.py @@ -8,6 +8,14 @@ from crewai.telemetry.telemetry import Telemetry from crewai.utilities import Logger from crewai.utilities.constants import EMITTER_COLOR from crewai.utilities.events.base_event_listener import BaseEventListener +from crewai.utilities.events.knowledge_events import ( + KnowledgeQueryCompletedEvent, + KnowledgeQueryFailedEvent, + KnowledgeQueryStartedEvent, + KnowledgeRetrievalCompletedEvent, + KnowledgeRetrievalStartedEvent, + KnowledgeSearchQueryFailedEvent, +) from crewai.utilities.events.llm_events import ( LLMCallCompletedEvent, LLMCallFailedEvent, @@ -57,6 +65,8 @@ class EventListener(BaseEventListener): execution_spans: Dict[Task, Any] = Field(default_factory=dict) next_chunk = 0 text_stream = StringIO() + knowledge_retrieval_in_progress = False + knowledge_query_in_progress = False def __new__(cls): if cls._instance is None: @@ -342,5 +352,59 @@ class EventListener(BaseEventListener): def on_crew_test_failed(source, event: CrewTestFailedEvent): self.formatter.handle_crew_test_failed(event.crew_name or "Crew") + @crewai_event_bus.on(KnowledgeRetrievalStartedEvent) + def on_knowledge_retrieval_started( + source, event: KnowledgeRetrievalStartedEvent + ): + if self.knowledge_retrieval_in_progress: + return + + self.knowledge_retrieval_in_progress = True + + self.formatter.handle_knowledge_retrieval_started( + self.formatter.current_agent_branch, + self.formatter.current_crew_tree, + ) + + @crewai_event_bus.on(KnowledgeRetrievalCompletedEvent) + def on_knowledge_retrieval_completed( + source, event: KnowledgeRetrievalCompletedEvent + ): + if not self.knowledge_retrieval_in_progress: + return + + self.knowledge_retrieval_in_progress = False + self.formatter.handle_knowledge_retrieval_completed( + self.formatter.current_agent_branch, + self.formatter.current_crew_tree, + event.retrieved_knowledge, + ) + + @crewai_event_bus.on(KnowledgeQueryStartedEvent) + def on_knowledge_query_started(source, event: KnowledgeQueryStartedEvent): + pass + + @crewai_event_bus.on(KnowledgeQueryFailedEvent) + def on_knowledge_query_failed(source, event: KnowledgeQueryFailedEvent): + self.formatter.handle_knowledge_query_failed( + self.formatter.current_agent_branch, + event.error, + self.formatter.current_crew_tree, + ) + + @crewai_event_bus.on(KnowledgeQueryCompletedEvent) + def on_knowledge_query_completed(source, event: KnowledgeQueryCompletedEvent): + pass + + @crewai_event_bus.on(KnowledgeSearchQueryFailedEvent) + def on_knowledge_search_query_failed( + source, event: KnowledgeSearchQueryFailedEvent + ): + self.formatter.handle_knowledge_search_query_failed( + self.formatter.current_agent_branch, + event.error, + self.formatter.current_crew_tree, + ) + event_listener = EventListener() diff --git a/src/crewai/utilities/events/knowledge_events.py b/src/crewai/utilities/events/knowledge_events.py new file mode 100644 index 000000000..e512ca575 --- /dev/null +++ b/src/crewai/utilities/events/knowledge_events.py @@ -0,0 +1,56 @@ +from typing import TYPE_CHECKING, Any + +from crewai.agents.agent_builder.base_agent import BaseAgent +from crewai.utilities.events.base_events import BaseEvent + +if TYPE_CHECKING: + from crewai.agents.agent_builder.base_agent import BaseAgent + + +class KnowledgeRetrievalStartedEvent(BaseEvent): + """Event emitted when a knowledge retrieval is started.""" + + type: str = "knowledge_search_query_started" + agent: BaseAgent + + +class KnowledgeRetrievalCompletedEvent(BaseEvent): + """Event emitted when a knowledge retrieval is completed.""" + + query: str + type: str = "knowledge_search_query_completed" + agent: BaseAgent + retrieved_knowledge: Any + + +class KnowledgeQueryStartedEvent(BaseEvent): + """Event emitted when a knowledge query is started.""" + + task_prompt: str + type: str = "knowledge_query_started" + agent: BaseAgent + + +class KnowledgeQueryFailedEvent(BaseEvent): + """Event emitted when a knowledge query fails.""" + + type: str = "knowledge_query_failed" + agent: BaseAgent + error: str + + +class KnowledgeQueryCompletedEvent(BaseEvent): + """Event emitted when a knowledge query is completed.""" + + query: str + type: str = "knowledge_query_completed" + agent: BaseAgent + + +class KnowledgeSearchQueryFailedEvent(BaseEvent): + """Event emitted when a knowledge search query fails.""" + + query: str + type: str = "knowledge_search_query_failed" + agent: BaseAgent + error: str diff --git a/src/crewai/utilities/events/utils/console_formatter.py b/src/crewai/utilities/events/utils/console_formatter.py index c274a6413..b9adc9fda 100644 --- a/src/crewai/utilities/events/utils/console_formatter.py +++ b/src/crewai/utilities/events/utils/console_formatter.py @@ -783,3 +783,202 @@ class ConsoleFormatter: self.update_lite_agent_status( self.current_lite_agent_branch, lite_agent_role, status, **fields ) + + def handle_knowledge_retrieval_started( + self, + agent_branch: Optional[Tree], + crew_tree: Optional[Tree], + ) -> Optional[Tree]: + """Handle knowledge retrieval started event.""" + if not self.verbose: + return None + + branch_to_use = agent_branch or self.current_lite_agent_branch + tree_to_use = branch_to_use or crew_tree + + if branch_to_use is None or tree_to_use is None: + # If we don't have a valid branch, use crew_tree as the branch if available + if crew_tree is not None: + branch_to_use = tree_to_use = crew_tree + else: + return None + + knowledge_branch = branch_to_use.add("") + self.update_tree_label( + knowledge_branch, "🔍", "Knowledge Retrieval Started", "blue" + ) + + self.print(tree_to_use) + self.print() + return knowledge_branch + + def handle_knowledge_retrieval_completed( + self, + agent_branch: Optional[Tree], + crew_tree: Optional[Tree], + retrieved_knowledge: Any, + ) -> None: + """Handle knowledge retrieval completed event.""" + if not self.verbose: + return None + + branch_to_use = self.current_lite_agent_branch or agent_branch + tree_to_use = branch_to_use or crew_tree + + if branch_to_use is None and tree_to_use is not None: + branch_to_use = tree_to_use + + if branch_to_use is None or tree_to_use is None: + if retrieved_knowledge: + knowledge_text = str(retrieved_knowledge) + if len(knowledge_text) > 500: + knowledge_text = knowledge_text[:497] + "..." + + knowledge_panel = Panel( + Text(knowledge_text, style="white"), + title="📚 Retrieved Knowledge", + border_style="green", + padding=(1, 2), + ) + self.print(knowledge_panel) + self.print() + return None + + knowledge_branch_found = False + for child in branch_to_use.children: + if "Knowledge Retrieval Started" in str(child.label): + self.update_tree_label( + child, "✅", "Knowledge Retrieval Completed", "green" + ) + knowledge_branch_found = True + break + + if not knowledge_branch_found: + for child in branch_to_use.children: + if ( + "Knowledge Retrieval" in str(child.label) + and "Started" not in str(child.label) + and "Completed" not in str(child.label) + ): + self.update_tree_label( + child, "✅", "Knowledge Retrieval Completed", "green" + ) + knowledge_branch_found = True + break + + if not knowledge_branch_found: + knowledge_branch = branch_to_use.add("") + self.update_tree_label( + knowledge_branch, "✅", "Knowledge Retrieval Completed", "green" + ) + + self.print(tree_to_use) + + if retrieved_knowledge: + knowledge_text = str(retrieved_knowledge) + if len(knowledge_text) > 500: + knowledge_text = knowledge_text[:497] + "..." + + knowledge_panel = Panel( + Text(knowledge_text, style="white"), + title="📚 Retrieved Knowledge", + border_style="green", + padding=(1, 2), + ) + self.print(knowledge_panel) + + self.print() + + def handle_knowledge_query_started( + self, + agent_branch: Optional[Tree], + task_prompt: str, + crew_tree: Optional[Tree], + ) -> None: + """Handle knowledge query generated event.""" + if not self.verbose: + return None + + branch_to_use = self.current_lite_agent_branch or agent_branch + tree_to_use = branch_to_use or crew_tree + if branch_to_use is None or tree_to_use is None: + return None + + query_branch = branch_to_use.add("") + self.update_tree_label( + query_branch, "🔎", f"Query: {task_prompt[:50]}...", "yellow" + ) + + self.print(tree_to_use) + self.print() + + def handle_knowledge_query_failed( + self, + agent_branch: Optional[Tree], + error: str, + crew_tree: Optional[Tree], + ) -> None: + """Handle knowledge query failed event.""" + if not self.verbose: + return + + tree_to_use = self.current_lite_agent_branch or crew_tree + branch_to_use = self.current_lite_agent_branch or agent_branch + + if branch_to_use and tree_to_use: + query_branch = branch_to_use.add("") + self.update_tree_label(query_branch, "❌", "Knowledge Query Failed", "red") + self.print(tree_to_use) + self.print() + + # Show error panel + error_content = self.create_status_content( + "Knowledge Query Failed", "Query Error", "red", Error=error + ) + self.print_panel(error_content, "Knowledge Error", "red") + + def handle_knowledge_query_completed( + self, + agent_branch: Optional[Tree], + crew_tree: Optional[Tree], + ) -> None: + """Handle knowledge query completed event.""" + if not self.verbose: + return None + + branch_to_use = self.current_lite_agent_branch or agent_branch + tree_to_use = branch_to_use or crew_tree + + if branch_to_use is None or tree_to_use is None: + return None + + query_branch = branch_to_use.add("") + self.update_tree_label(query_branch, "✅", "Knowledge Query Completed", "green") + + self.print(tree_to_use) + self.print() + + def handle_knowledge_search_query_failed( + self, + agent_branch: Optional[Tree], + error: str, + crew_tree: Optional[Tree], + ) -> None: + """Handle knowledge search query failed event.""" + if not self.verbose: + return + + tree_to_use = self.current_lite_agent_branch or crew_tree + branch_to_use = self.current_lite_agent_branch or agent_branch + + if branch_to_use and tree_to_use: + query_branch = branch_to_use.add("") + self.update_tree_label(query_branch, "❌", "Knowledge Search Failed", "red") + self.print(tree_to_use) + self.print() + + # Show error panel + error_content = self.create_status_content( + "Knowledge Search Failed", "Search Error", "red", Error=error + ) + self.print_panel(error_content, "Search Error", "red") diff --git a/tests/agent_test.py b/tests/agent_test.py index b3d243a53..faad4ca84 100644 --- a/tests/agent_test.py +++ b/tests/agent_test.py @@ -9,7 +9,6 @@ import pytest from crewai import Agent, Crew, Task from crewai.agents.cache import CacheHandler from crewai.agents.crew_agent_executor import AgentFinish, CrewAgentExecutor -from crewai.agents.parser import CrewAgentParser, OutputParserException from crewai.knowledge.knowledge import Knowledge from crewai.knowledge.knowledge_config import KnowledgeConfig from crewai.knowledge.source.base_knowledge_source import BaseKnowledgeSource @@ -73,6 +72,7 @@ def test_agent_creation(): assert agent.goal == "test goal" assert agent.backstory == "test backstory" + def test_agent_with_only_system_template(): """Test that an agent with only system_template works without errors.""" agent = Agent( @@ -88,6 +88,7 @@ def test_agent_with_only_system_template(): assert agent.goal == "Test Goal" assert agent.backstory == "Test Backstory" + def test_agent_with_only_prompt_template(): """Test that an agent with only system_template works without errors.""" agent = Agent( @@ -119,7 +120,8 @@ def test_agent_with_missing_response_template(): assert agent.role == "Test Role" assert agent.goal == "Test Goal" assert agent.backstory == "Test Backstory" - + + def test_agent_default_values(): agent = Agent(role="test role", goal="test goal", backstory="test backstory") assert agent.llm.model == "gpt-4o-mini" @@ -1630,13 +1632,10 @@ def test_agent_with_knowledge_sources(): # Create a knowledge source with some content content = "Brandon's favorite color is red and he likes Mexican food." string_source = StringKnowledgeSource(content=content) - - with patch( - "crewai.knowledge.storage.knowledge_storage.KnowledgeStorage" - ) as MockKnowledge: + with patch("crewai.knowledge") as MockKnowledge: mock_knowledge_instance = MockKnowledge.return_value mock_knowledge_instance.sources = [string_source] - mock_knowledge_instance.query.return_value = [{"content": content}] + mock_knowledge_instance.search.return_value = [{"content": content}] agent = Agent( role="Information Agent", @@ -1690,7 +1689,7 @@ def test_agent_with_knowledge_sources_with_query_limit_and_score_threshold(): assert agent.knowledge is not None mock_knowledge_query.assert_called_once_with( - [task.prompt()], + ["Brandon's favorite color"], **knowledge_config.model_dump(), ) @@ -1727,7 +1726,7 @@ def test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_defau assert agent.knowledge is not None mock_knowledge_query.assert_called_once_with( - [task.prompt()], + ["Brandon's favorite color"], **knowledge_config.model_dump(), ) @@ -1737,9 +1736,7 @@ def test_agent_with_knowledge_sources_extensive_role(): content = "Brandon's favorite color is red and he likes Mexican food." string_source = StringKnowledgeSource(content=content) - with patch( - "crewai.knowledge.storage.knowledge_storage.KnowledgeStorage" - ) as MockKnowledge: + with patch("crewai.knowledge") as MockKnowledge: mock_knowledge_instance = MockKnowledge.return_value mock_knowledge_instance.sources = [string_source] mock_knowledge_instance.query.return_value = [{"content": content}] @@ -1803,6 +1800,40 @@ def test_agent_with_knowledge_sources_works_with_copy(): assert isinstance(agent_copy.llm, LLM) +@pytest.mark.vcr(filter_headers=["authorization"]) +def test_agent_with_knowledge_sources_generate_search_query(): + content = "Brandon's favorite color is red and he likes Mexican food." + string_source = StringKnowledgeSource(content=content) + + with patch("crewai.knowledge") as MockKnowledge: + mock_knowledge_instance = MockKnowledge.return_value + mock_knowledge_instance.sources = [string_source] + mock_knowledge_instance.query.return_value = [{"content": content}] + + agent = Agent( + role="Information Agent with extensive role description that is longer than 80 characters", + goal="Provide information based on knowledge sources", + backstory="You have access to specific knowledge sources.", + llm=LLM(model="gpt-4o-mini"), + knowledge_sources=[string_source], + ) + + task = Task( + description="What is Brandon's favorite color?", + expected_output="The answer to the question, in a format like this: `{{name: str, favorite_color: str}}`", + agent=agent, + ) + + crew = Crew(agents=[agent], tasks=[task]) + result = crew.kickoff() + + # Updated assertion to check the JSON content + assert "Brandon" in str(agent.knowledge_search_query) + assert "favorite color" in str(agent.knowledge_search_query) + + assert "red" in result.raw.lower() + + @pytest.mark.vcr(filter_headers=["authorization"]) def test_litellm_auth_error_handling(): """Test that LiteLLM authentication errors are handled correctly and not retried.""" @@ -1940,3 +1971,57 @@ def test_litellm_anthropic_error_handling(): # Verify the LLM call was only made once (no retries) mock_llm_call.assert_called_once() + + +@pytest.mark.vcr(filter_headers=["authorization"]) +def test_get_knowledge_search_query(): + """Test that _get_knowledge_search_query calls the LLM with the correct prompts.""" + from crewai.utilities.i18n import I18N + + content = "The capital of France is Paris." + string_source = StringKnowledgeSource(content=content) + + agent = Agent( + role="Information Agent", + goal="Provide information based on knowledge sources", + backstory="I have access to knowledge sources", + llm=LLM(model="gpt-4"), + knowledge_sources=[string_source], + ) + + task = Task( + description="What is the capital of France?", + expected_output="The capital of France is Paris.", + agent=agent, + ) + + i18n = I18N() + task_prompt = task.prompt() + + with patch.object(agent, "_get_knowledge_search_query") as mock_get_query: + mock_get_query.return_value = "Capital of France" + + crew = Crew(agents=[agent], tasks=[task]) + crew.kickoff() + + mock_get_query.assert_called_once_with(task_prompt) + + with patch.object(agent.llm, "call") as mock_llm_call: + agent._get_knowledge_search_query(task_prompt) + + mock_llm_call.assert_called_once_with( + [ + { + "role": "system", + "content": i18n.slice( + "knowledge_search_query_system_prompt" + ).format(task_prompt=task.description), + }, + { + "role": "user", + "content": i18n.slice("knowledge_search_query").format( + task_prompt=task_prompt + ), + }, + ] + ) diff --git a/tests/cassettes/test_agent_with_knowledge_sources.yaml b/tests/cassettes/test_agent_with_knowledge_sources.yaml index cbc8bbdae..009e61261 100644 --- a/tests/cassettes/test_agent_with_knowledge_sources.yaml +++ b/tests/cassettes/test_agent_with_knowledge_sources.yaml @@ -16,7 +16,7 @@ interactions: host: - api.openai.com user-agent: - - OpenAI/Python 1.52.1 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -26,25 +26,132 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.52.1 + - 1.68.2 + x-stainless-read-timeout: + - '600' x-stainless-retry-count: - '0' x-stainless-runtime: - CPython x-stainless-runtime-version: - - 3.11.9 + - 3.12.9 method: POST uri: https://api.openai.com/v1/embeddings response: - content: "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": - \"embedding\",\n \"index\": 0,\n \"embedding\": \"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\"\n - \ }\n ],\n \"model\": \"text-embedding-3-small\",\n \"usage\": {\n \"prompt_tokens\": - 12,\n \"total_tokens\": 12\n }\n}\n" + body: + string: !!binary | + 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 headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8f1042f3ac7867dd-SJC + - 93bd2df2cdb6ceb1-SJC Connection: - keep-alive Content-Encoding: @@ -52,14 +159,14 @@ interactions: Content-Type: - application/json Date: - - Thu, 12 Dec 2024 19:53:37 GMT + - Wed, 07 May 2025 02:10:11 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=PyJpKeiIPAL09jhZ7TAVgnQ5YB7Ha4MplnRyZkvQvDs-1734033217-1.0.1.1-mA.DBohqAynypzvd3K.0J2JY6_HWQcv6SdHAowE18qI9SJ2IsiSScEKWTGPAC3erWYzVwkYFa.cETaf9EhpyAA; - path=/; expires=Thu, 12-Dec-24 20:23:37 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=u.v.Ljv84ep79XydCTMQK.9w88QD56KFcms_QmFTmoA-1746583811-1.0.1.1-VozUy49upqnXzrPGLVSYQim11m9LYuTLcr0cqXGazOI2W4Iq2Vp8sEfeRGcf0HpCOZrHM9r5vdPPk9kwDxJPddltrYDlKF1_.wK0JnRNUos; + path=/; expires=Wed, 07-May-25 02:40:11 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=o.8CU3JYqdXlO9ULnGn2to.2TlmlWc6i1_64SoVhZFA-1734033217203-0.0.1.1-604800000; + - _cfuvid=6WaFjB6rWmnHkFfNPnSRG5da_gR_iACY69uwXj8bWMw-1746583811840-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -71,16 +178,22 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC openai-model: - text-embedding-3-small openai-organization: - crewai-iuxna1 openai-processing-ms: - - '104' + - '123' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-678b766599-cgwjk + x-envoy-upstream-service-time: + - '98' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -94,12 +207,24 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_85d126466fc11bbf5ef4ee743d0c157a - http_version: HTTP/1.1 - status_code: 200 + - req_97dfa15ce72eff259ad90bd7bc9b5742 + status: + code: 200 + message: OK - request: - body: '{"input": ["Brandon''s favorite color is red and he likes Mexican food."], - "model": "text-embedding-3-small", "encoding_format": "base64"}' + body: '{"messages": [{"role": "system", "content": "Your goal is to rewrite the + user query so that it is optimized for retrieval from a vector database. Consider + how the query will be used to find relevant documents, and aim to make it more + specific and context-aware. \n\n Do not include any other text than the rewritten + query, especially any preamble or postamble and only add expected output format + if its relevant to the rewritten query. \n\n Focus on the key words of the intended + task and to retrieve the most relevant information. \n\n There will be some + extra context provided that might need to be removed such as expected_output + formats structured_outputs and other instructions."}, {"role": "user", "content": + "The original query is: What is Brandon''s favorite color?\n\nThis is the expected + criteria for your final answer: Brandon''s favorite color.\nyou MUST return + the actual complete content as the final answer, not a summary.."}], "model": + "gpt-4o-mini", "stop": ["\nObservation:"]}' headers: accept: - application/json @@ -108,13 +233,13 @@ interactions: connection: - keep-alive content-length: - - '137' + - '992' content-type: - application/json host: - api.openai.com user-agent: - - OpenAI/Python 1.52.1 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -124,25 +249,35 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.52.1 + - 1.68.2 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' x-stainless-retry-count: - '0' x-stainless-runtime: - CPython x-stainless-runtime-version: - - 3.11.9 + - 3.12.9 method: POST - uri: https://api.openai.com/v1/embeddings + uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": - \"embedding\",\n \"index\": 0,\n \"embedding\": \"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\"\n - \ }\n ],\n \"model\": \"text-embedding-3-small\",\n \"usage\": {\n \"prompt_tokens\": - 12,\n \"total_tokens\": 12\n }\n}\n" + body: + string: !!binary | + H4sIAAAAAAAAAwAAAP//jFLRbtQwEHzPV1j7fEG53JW73uOBKiFOIIRKhVAVufYmMXW8xt5UoOr+ + HTm5XlIoEi9+8OyMZ8b7mAkBRsNOgGolq87bfH/98UbGN1f379vDdf3jqj58/vDua/lpf/hy8xYW + iUF331HxE+uVos5bZENuhFVAyZhUl5v164vtarssB6AjjTbRGs/5mvLOOJOXRbnOi02+3J7YLRmF + EXbiWyaEEI/DmXw6jT9hJ4rF002HMcoGYXceEgIC2XQDMkYTWTqGxQQqcoxusL4P0mlyopYPFAyj + UGQpzIcD1n2UybDrrZ0B0jlimQIPNm9PyPFszFLjA93FP6hQG2diWwWUkVwyEZk8DOgxE+J2KKB/ + lgl8oM5zxXSPw3PLzWrUg6n3Cb04YUws7Zy0XbwgV2lkaWycNQhKqhb1RJ3qlr02NAOyWei/zbyk + PQY3rvkf+QlQCj2jrnxAbdTzwNNYwLSV/xo7lzwYhojhwSis2GBIH6Gxlr0ddwXir8jYVbVxDQYf + zLgwta+K1WW5LcvisoDsmP0GAAD//wMApUG7jD4DAAA= headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 8f1042f89e85cf2b-SJC + - 93bd2df8e9db3023-SJC Connection: - keep-alive Content-Encoding: @@ -150,55 +285,52 @@ interactions: Content-Type: - application/json Date: - - Thu, 12 Dec 2024 19:53:37 GMT + - Wed, 07 May 2025 02:10:12 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=OEqOxpPl0XuTSedCFKlaysHtx3Xbo9entNjNd5SahSU-1734033217-1.0.1.1-a.bCXL5.lBOiCyjue9I01oG8aqQHT7tbU0REUBpUu7xMNr7b32iqefcgm6O1l2ToQ_oUtDhAzSBTK7Espxgykg; - path=/; expires=Thu, 12-Dec-24 20:23:37 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=NC5Gl3J2PS6v0hkekzpQQDUENehQNq2JMlXGtoZGYKU-1746583812-1.0.1.1-BtPPeA80MGyGPcHeJxrD33q4p.gLUxQIj9GYAavoeX8Cub2CbnppccHh5_9Q3eRqlhxol7evdgkk0kQWUc00eL2cQ5nBiqj8gtewLoqsrFE; + path=/; expires=Wed, 07-May-25 02:40:12 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=8eVoktQyZSE413nzKx4zVo82AF3MS96DjnHQeN.E6Pk-1734033217682-0.0.1.1-604800000; + - _cfuvid=sls5nnOfsQtx13YdRLxgTXu0xxrDa7lhMRbaFqfQXwk-1746583812401-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked X-Content-Type-Options: - nosniff - access-control-allow-origin: - - '*' access-control-expose-headers: - X-Request-ID alt-svc: - h3=":443"; ma=86400 - openai-model: - - text-embedding-3-small openai-organization: - crewai-iuxna1 openai-processing-ms: - - '75' + - '138' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '140' x-ratelimit-limit-requests: - - '10000' + - '30000' x-ratelimit-limit-tokens: - - '10000000' + - '150000000' x-ratelimit-remaining-requests: - - '9999' + - '29999' x-ratelimit-remaining-tokens: - - '9999986' + - '149999783' x-ratelimit-reset-requests: - - 6ms + - 2ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_531afeb97985d1513eb1c8f311a1d62a - http_version: HTTP/1.1 - status_code: 200 + - req_bd031dddb84a21749dbe09f42b3f8c00 + status: + code: 200 + message: OK - request: - body: '{"input": ["What is Brandon''s favorite color? This is the expect criteria - for your final answer: Brandon''s favorite color. you MUST return the actual - complete content as the final answer, not a summary."], "model": "text-embedding-3-small", + body: '{"input": ["Brandon favorite color"], "model": "text-embedding-3-small", "encoding_format": "base64"}' headers: accept: @@ -208,16 +340,16 @@ interactions: connection: - keep-alive content-length: - - '270' + - '101' content-type: - application/json cookie: - - __cf_bm=OEqOxpPl0XuTSedCFKlaysHtx3Xbo9entNjNd5SahSU-1734033217-1.0.1.1-a.bCXL5.lBOiCyjue9I01oG8aqQHT7tbU0REUBpUu7xMNr7b32iqefcgm6O1l2ToQ_oUtDhAzSBTK7Espxgykg; - _cfuvid=8eVoktQyZSE413nzKx4zVo82AF3MS96DjnHQeN.E6Pk-1734033217682-0.0.1.1-604800000 + - __cf_bm=u.v.Ljv84ep79XydCTMQK.9w88QD56KFcms_QmFTmoA-1746583811-1.0.1.1-VozUy49upqnXzrPGLVSYQim11m9LYuTLcr0cqXGazOI2W4Iq2Vp8sEfeRGcf0HpCOZrHM9r5vdPPk9kwDxJPddltrYDlKF1_.wK0JnRNUos; + _cfuvid=6WaFjB6rWmnHkFfNPnSRG5da_gR_iACY69uwXj8bWMw-1746583811840-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.52.1 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -227,25 +359,132 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.52.1 + - 1.68.2 + x-stainless-read-timeout: + - '600' x-stainless-retry-count: - '0' x-stainless-runtime: - CPython x-stainless-runtime-version: - - 3.11.9 + - 3.12.9 method: POST uri: https://api.openai.com/v1/embeddings response: - content: "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": - \"embedding\",\n \"index\": 0,\n \"embedding\": \"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\"\n - \ }\n ],\n \"model\": \"text-embedding-3-small\",\n \"usage\": {\n \"prompt_tokens\": - 39,\n \"total_tokens\": 39\n }\n}\n" + body: + string: !!binary | + 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 + r/8DAAD//wMAhvFupN4gAAA= headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8f1042fb580acf2b-SJC + - 93bd2dfc5889ceb1-SJC Connection: - keep-alive Content-Encoding: @@ -253,7 +492,7 @@ interactions: Content-Type: - application/json Date: - - Thu, 12 Dec 2024 19:53:38 GMT + - Wed, 07 May 2025 02:10:13 GMT Server: - cloudflare Transfer-Encoding: @@ -266,16 +505,22 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC openai-model: - text-embedding-3-small openai-organization: - crewai-iuxna1 openai-processing-ms: - - '85' + - '189' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-6b78fbf94c-rkptb + x-envoy-upstream-service-time: + - '192' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -283,29 +528,30 @@ interactions: x-ratelimit-remaining-requests: - '9999' x-ratelimit-remaining-tokens: - - '9999953' + - '9999994' x-ratelimit-reset-requests: - 6ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_52a59c31ea2beb8578511f56da5ea2dd - http_version: HTTP/1.1 - status_code: 200 + - req_91abc313f74bce8daaf5f8d411143f28 + status: + code: 200 + message: OK - request: body: '{"messages": [{"role": "system", "content": "You are Information Agent. You have access to specific knowledge sources.\nYour personal goal is: Provide information based on knowledge sources\nTo give my best complete final answer - to the task use the exact following format:\n\nThought: I now can give a great - answer\nFinal Answer: Your final answer must be the great and the most complete - as possible, it must be outcome described.\n\nI MUST use these formats, my job - depends on it!"}, {"role": "user", "content": "\nCurrent Task: What is Brandon''s - favorite color?\n\nThis is the expect criteria for your final answer: Brandon''s - favorite color.\nyou MUST return the actual complete content as the final answer, - not a summary.Additional Information: Brandon''s favorite color is red and he - likes Mexican food.\n\nBegin! This is VERY important to you, use the tools available - and give your best Final Answer, your job depends on it!\n\nThought:"}], "model": - "gpt-4o-mini", "stop": ["\nObservation:"], "stream": false}' + to the task respond using the exact following format:\n\nThought: I now can + give a great answer\nFinal Answer: Your final answer must be the great and the + most complete as possible, it must be outcome described.\n\nI MUST use these + formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent Task: + What is Brandon''s favorite color?\n\nThis is the expected criteria for your + final answer: Brandon''s favorite color.\nyou MUST return the actual complete + content as the final answer, not a summary.Additional Information: Brandon''s + favorite color is red and he likes Mexican food.\n\nBegin! This is VERY important + to you, use the tools available and give your best Final Answer, your job depends + on it!\n\nThought:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' headers: accept: - application/json @@ -314,13 +560,16 @@ interactions: connection: - keep-alive content-length: - - '1013' + - '1008' content-type: - application/json + cookie: + - __cf_bm=NC5Gl3J2PS6v0hkekzpQQDUENehQNq2JMlXGtoZGYKU-1746583812-1.0.1.1-BtPPeA80MGyGPcHeJxrD33q4p.gLUxQIj9GYAavoeX8Cub2CbnppccHh5_9Q3eRqlhxol7evdgkk0kQWUc00eL2cQ5nBiqj8gtewLoqsrFE; + _cfuvid=sls5nnOfsQtx13YdRLxgTXu0xxrDa7lhMRbaFqfQXwk-1746583812401-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.52.1 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -330,35 +579,34 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.52.1 + - 1.68.2 x-stainless-raw-response: - 'true' + x-stainless-read-timeout: + - '600.0' x-stainless-retry-count: - '0' x-stainless-runtime: - CPython x-stainless-runtime-version: - - 3.11.9 + - 3.12.9 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-AdjXeg7urmMdz087X2AhPdSsqamzb\",\n \"object\": - \"chat.completion\",\n \"created\": 1734033218,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"I now can give a great answer \\nFinal - Answer: Brandon's favorite color is red.\",\n \"refusal\": null\n },\n - \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n - \ \"usage\": {\n \"prompt_tokens\": 182,\n \"completion_tokens\": 18,\n - \ \"total_tokens\": 200,\n \"prompt_tokens_details\": {\n \"cached_tokens\": - 0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": {\n - \ \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\": - 0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"system_fingerprint\": - \"fp_bba3c8e70b\"\n}\n" + body: + string: !!binary | + H4sIAAAAAAAAA4xSTW/bMAy9+1cQuuwSF7aTLYlv66FDTz1twz4Kg5FoR60sCpKSbi3y3wc5aex2 + HbCLAfPxUe898ikDEFqJGoTcYpS9M/nl55uvm+J+effti68qGa6+4/pT+Yjba3nzKGaJwZs7kvGZ + dSG5d4aiZnuEpSeMlKaWy8WH96v5qpwPQM+KTKJ1LuYLznttdV4V1SIvlnm5OrG3rCUFUcOPDADg + afgmnVbRL1FDMXuu9BQCdiTqcxOA8GxSRWAIOkS0UcxGULKNZAfp12D5ASRa6PSeAKFLsgFteCAP + 8NNeaYsGPg7/NVx6tIrtuwAt7tnrSCDZsAcdwJO6mL7iqd0FTE7tzpgJgNZyxJTU4O/2hBzOjgx3 + zvMmvKKKVlsdto0nDGyT+hDZiQE9ZAC3Q3K7F2EI57l3sYl8T8Nz5Wp+nCfGhU3Q9QmMHNGM9aqo + Zm/MaxRF1CZMshcS5ZbUSB0XhTuleQJkE9d/q3lr9tG5tt3/jB8BKclFUo3zpLR86Xhs85Tu+V9t + 55QHwSKQ32tJTdTk0yYUtbgzxysT4XeI1Detth155/Xx1FrXFPN1taqqYl2I7JD9AQAA//8DACIr + 2O54AwAA headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8f1042fffca367e8-SJC + - 93bd2dffffbc3023-SJC Connection: - keep-alive Content-Encoding: @@ -366,15 +614,9 @@ interactions: Content-Type: - application/json Date: - - Thu, 12 Dec 2024 19:53:39 GMT + - Wed, 07 May 2025 02:10:13 GMT Server: - cloudflare - Set-Cookie: - - __cf_bm=klZf7yZ0CFfDo9eLCfStVSScD0mVgsmNrSz6Ud9on_I-1734033219-1.0.1.1-ar.FWpGgFvtFOTAbByMA5fp9JAycsUeRzBSv6anze.RFpxDOtJVYWslYhhCFIdPyPiHAZGPcuQJxlRbkyr8vRw; - path=/; expires=Thu, 12-Dec-24 20:23:39 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=xecEkmr_qTiKn7EKC7aeGN5bpsbPM9ofyIsipL4VCYM-1734033219265-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked X-Content-Type-Options: @@ -383,14 +625,18 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC openai-organization: - crewai-iuxna1 openai-processing-ms: - - '412' + - '334' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '336' x-ratelimit-limit-requests: - '30000' x-ratelimit-limit-tokens: @@ -398,13 +644,14 @@ interactions: x-ratelimit-remaining-requests: - '29999' x-ratelimit-remaining-tokens: - - '149999769' + - '149999782' x-ratelimit-reset-requests: - 2ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_15b9d1b27239c538a259e964b502f4d9 - http_version: HTTP/1.1 - status_code: 200 + - req_ceae74c516df806c888d819e14ca9da3 + status: + code: 200 + message: OK version: 1 diff --git a/tests/cassettes/test_agent_with_knowledge_sources_extensive_role.yaml b/tests/cassettes/test_agent_with_knowledge_sources_extensive_role.yaml index bfa969b12..946f2a710 100644 --- a/tests/cassettes/test_agent_with_knowledge_sources_extensive_role.yaml +++ b/tests/cassettes/test_agent_with_knowledge_sources_extensive_role.yaml @@ -6,7 +6,7 @@ interactions: accept: - application/json accept-encoding: - - gzip, deflate, zstd + - gzip, deflate connection: - keep-alive content-length: @@ -18,7 +18,7 @@ interactions: user-agent: - OpenAI/Python 1.68.2 x-stainless-arch: - - x64 + - arm64 x-stainless-async: - 'false' x-stainless-lang: @@ -38,13 +38,120 @@ interactions: method: POST uri: https://api.openai.com/v1/embeddings response: - content: "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": - \"embedding\",\n \"index\": 0,\n \"embedding\": \"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\"\n - \ }\n ],\n \"model\": \"text-embedding-3-small\",\n \"usage\": {\n \"prompt_tokens\": - 12,\n \"total_tokens\": 12\n }\n}\n" + body: + string: !!binary | + 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 + AP//AwDiS0D64CAAAA== headers: CF-RAY: - - 92606d69df737e05-GRU + - 93bd4e5fa8affa9e-SJC Connection: - keep-alive Content-Encoding: @@ -52,14 +159,14 @@ interactions: Content-Type: - application/json Date: - - Tue, 25 Mar 2025 18:21:21 GMT + - Wed, 07 May 2025 02:32:19 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=YQe0r6xlg5bRl1wJ70dt0Aocti_r13sABgw2peP46Yw-1742926881-1.0.1.1-.p2IX5HrpoSy4WAMkQFz0iswmLdbuLJl2rLIWZkOOdUZ3jUTwTTGdAZqO8N084.xjQYo12Qj_tSEQnzCcc4a8DtoXIRULYMPRzIPeTezIkU; - path=/; expires=Tue, 25-Mar-25 18:51:21 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=OPw6ztA5EppsJ3y6C7lEoqGqTbJTr_EBNyZlIzRzR2E-1746585139-1.0.1.1-rZnEfzLCc.FOL.S2PSaPD0KCOc4tdFUg57LXOhFR2FbBm3TYjWXeNMi.Om2bCsj.QEG9FqbGy03gA1WVGhbGUUqGJUHYgK1YEFwgpUx33O8; + path=/; expires=Wed, 07-May-25 03:02:19 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=T7Hv3cCn64SAlcAT1xFBTjlHSm.Ut3gTDw3SwYO5H9o-1742926881514-0.0.1.1-604800000; + - _cfuvid=SglpS002Q61Pecur1plBAPPzB5XA.dNRJHDcY0UWwlc-1746585139769-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -78,15 +185,15 @@ interactions: openai-organization: - crewai-iuxna1 openai-processing-ms: - - '111' + - '554' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-678fbc785b-244c7 + - envoy-router-548b76db4d-24xct x-envoy-upstream-service-time: - - '82' + - '557' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -100,191 +207,33 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_eec876b36a4e41890b2123c7595d82bf - http_version: HTTP/1.1 - status_code: 200 -- request: - body: '{"input": ["What is Brandon''s favorite color? This is the expected criteria - for your final answer: Brandon''s favorite color. you MUST return the actual - complete content as the final answer, not a summary."], "model": "text-embedding-3-small", - "encoding_format": "base64"}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate, zstd - connection: - - keep-alive - content-length: - - '272' - content-type: - - application/json - cookie: - - __cf_bm=YQe0r6xlg5bRl1wJ70dt0Aocti_r13sABgw2peP46Yw-1742926881-1.0.1.1-.p2IX5HrpoSy4WAMkQFz0iswmLdbuLJl2rLIWZkOOdUZ3jUTwTTGdAZqO8N084.xjQYo12Qj_tSEQnzCcc4a8DtoXIRULYMPRzIPeTezIkU; - _cfuvid=T7Hv3cCn64SAlcAT1xFBTjlHSm.Ut3gTDw3SwYO5H9o-1742926881514-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.68.2 - x-stainless-arch: - - x64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.68.2 - x-stainless-read-timeout: - - '600' - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.12.9 - method: POST - uri: https://api.openai.com/v1/embeddings - response: - content: "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": - \"embedding\",\n \"index\": 0,\n \"embedding\": \"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\"\n - \ }\n ],\n \"model\": \"text-embedding-3-small\",\n \"usage\": {\n \"prompt_tokens\": - 39,\n \"total_tokens\": 39\n }\n}\n" - headers: - CF-RAY: - - 92606d71fadd7e05-GRU - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Tue, 25 Mar 2025 18:21:22 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-allow-origin: - - '*' - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - cf-cache-status: - - DYNAMIC - openai-model: - - text-embedding-3-small - openai-organization: - - crewai-iuxna1 - openai-processing-ms: - - '176' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - via: - - envoy-router-84d4976dd6-kn9b2 - x-envoy-upstream-service-time: - - '76' - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '10000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '9999951' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_4a397f4ae14d9fcb88333d9ecb5be969 - http_version: HTTP/1.1 - status_code: 200 -- request: - body: !!binary | - CocLCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkS3goKEgoQY3Jld2FpLnRl - bGVtZXRyeRK2CAoQro1thsfReS7yOp6MTxegrxIItR6JoTTghDkqDENyZXcgQ3JlYXRlZDABOZgk - XbC/HjAYQdgJurC/HjAYShsKDmNyZXdhaV92ZXJzaW9uEgkKBzAuMTA4LjBKGgoOcHl0aG9uX3Zl - cnNpb24SCAoGMy4xMi45Si4KCGNyZXdfa2V5EiIKIDU1MjczOGJmMDQwZTcxZGEyMjJmOWQzNjU1 - MjIzMjdjSjEKB2NyZXdfaWQSJgokMmUzMGJhOWQtZWNkOS00MDg5LTk5YTctMGIwYTE0ODk5ODdh - ShwKDGNyZXdfcHJvY2VzcxIMCgpzZXF1ZW50aWFsShEKC2NyZXdfbWVtb3J5EgIQAEoaChRjcmV3 - X251bWJlcl9vZl90YXNrcxICGAFKGwoVY3Jld19udW1iZXJfb2ZfYWdlbnRzEgIYAUqaAwoLY3Jl - d19hZ2VudHMSigMKhwNbeyJrZXkiOiAiYTk2YTQyMjM1Y2U0M2RiZDgwNzc0ZWIyODhhNzM3MzUi - LCAiaWQiOiAiZjU5NjZlYTktODk2Zi00MDRmLWIwOGUtZDk1MWI4OWNmZTM3IiwgInJvbGUiOiAi - SW5mb3JtYXRpb24gQWdlbnQgd2l0aCBleHRlbnNpdmUgcm9sZSBkZXNjcmlwdGlvbiB0aGF0IGlz - IGxvbmdlciB0aGFuIDgwIGNoYXJhY3RlcnMiLCAidmVyYm9zZT8iOiBmYWxzZSwgIm1heF9pdGVy - IjogMjUsICJtYXhfcnBtIjogbnVsbCwgImZ1bmN0aW9uX2NhbGxpbmdfbGxtIjogIiIsICJsbG0i - OiAiZ3B0LTRvLW1pbmkiLCAiZGVsZWdhdGlvbl9lbmFibGVkPyI6IGZhbHNlLCAiYWxsb3dfY29k - ZV9leGVjdXRpb24/IjogZmFsc2UsICJtYXhfcmV0cnlfbGltaXQiOiAyLCAidG9vbHNfbmFtZXMi - OiBbXX1dSsgCCgpjcmV3X3Rhc2tzErkCCrYCW3sia2V5IjogIjg2ZmU1NTY3ZDFmNDFiMWY4NDQ1 - ZTRmOGQ0YmY0MGU2IiwgImlkIjogImM1ZTU3MTcwLWFkZWQtNDNkNS1iZTE3LTZhZDliM2ZjM2U3 - NCIsICJhc3luY19leGVjdXRpb24/IjogZmFsc2UsICJodW1hbl9pbnB1dD8iOiBmYWxzZSwgImFn - ZW50X3JvbGUiOiAiSW5mb3JtYXRpb24gQWdlbnQgd2l0aCBleHRlbnNpdmUgcm9sZSBkZXNjcmlw - dGlvbiB0aGF0IGlzIGxvbmdlciB0aGFuIDgwIGNoYXJhY3RlcnMiLCAiYWdlbnRfa2V5IjogImE5 - NmE0MjIzNWNlNDNkYmQ4MDc3NGViMjg4YTczNzM1IiwgInRvb2xzX25hbWVzIjogW119XXoCGAGF - AQABAAASjgIKELNeNWDbp5Ua0wTFrxxeOrASCIhmnaGTrxBNKgxUYXNrIENyZWF0ZWQwATkQlzso - wB4wGEE4Kz4owB4wGEouCghjcmV3X2tleRIiCiA1NTI3MzhiZjA0MGU3MWRhMjIyZjlkMzY1NTIy - MzI3Y0oxCgdjcmV3X2lkEiYKJDJlMzBiYTlkLWVjZDktNDA4OS05OWE3LTBiMGExNDg5OTg3YUou - Cgh0YXNrX2tleRIiCiA4NmZlNTU2N2QxZjQxYjFmODQ0NWU0ZjhkNGJmNDBlNkoxCgd0YXNrX2lk - EiYKJGM1ZTU3MTcwLWFkZWQtNDNkNS1iZTE3LTZhZDliM2ZjM2U3NHoCGAGFAQABAAA= - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, zstd - Connection: - - keep-alive - Content-Length: - - '1418' - Content-Type: - - application/x-protobuf - User-Agent: - - OTel-OTLP-Exporter-Python/1.31.1 - method: POST - uri: https://telemetry.crewai.com:4319/v1/traces - response: - body: - string: "\n\0" - headers: - Content-Length: - - '2' - Content-Type: - - application/x-protobuf - Date: - - Tue, 25 Mar 2025 18:21:24 GMT + - req_61a2cd23c379f8ce51385df82ba1c744 status: code: 200 message: OK - request: - body: '{"messages": [{"role": "system", "content": "You are Information Agent - with extensive role description that is longer than 80 characters. You have - access to specific knowledge sources.\nYour personal goal is: Provide information - based on knowledge sources\nTo give my best complete final answer to the task - respond using the exact following format:\n\nThought: I now can give a great - answer\nFinal Answer: Your final answer must be the great and the most complete - as possible, it must be outcome described.\n\nI MUST use these formats, my job - depends on it!"}, {"role": "user", "content": "\nCurrent Task: What is Brandon''s - favorite color?\n\nThis is the expected criteria for your final answer: Brandon''s - favorite color.\nyou MUST return the actual complete content as the final answer, - not a summary.Additional Information: Brandon''s favorite color is red and he - likes Mexican food.\n\nBegin! This is VERY important to you, use the tools available - and give your best Final Answer, your job depends on it!\n\nThought:"}], "model": - "gpt-4o-mini", "stop": ["\nObservation:"]}' + body: '{"messages": [{"role": "system", "content": "Your goal is to rewrite the + user query so that it is optimized for retrieval from a vector database. Consider + how the query will be used to find relevant documents, and aim to make it more + specific and context-aware. \n\n Do not include any other text than the rewritten + query, especially any preamble or postamble and only add expected output format + if its relevant to the rewritten query. \n\n Focus on the key words of the intended + task and to retrieve the most relevant information. \n\n There will be some + extra context provided that might need to be removed such as expected_output + formats structured_outputs and other instructions."}, {"role": "user", "content": + "The original query is: What is Brandon''s favorite color?\n\nThis is the expected + criteria for your final answer: Brandon''s favorite color.\nyou MUST return + the actual complete content as the final answer, not a summary.."}], "model": + "gpt-4o", "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate, zstd + - gzip, deflate connection: - keep-alive content-length: - - '1074' + - '987' content-type: - application/json host: @@ -292,7 +241,7 @@ interactions: user-agent: - OpenAI/Python 1.68.2 x-stainless-arch: - - x64 + - arm64 x-stainless-async: - 'false' x-stainless-lang: @@ -314,21 +263,21 @@ interactions: method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-BF3Br9QWbmiaKiPLFd5URBfj1B7NQ\",\n \"object\": - \"chat.completion\",\n \"created\": 1742926883,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"I now can give a great answer \\nFinal - Answer: Brandon's favorite color is red.\",\n \"refusal\": null,\n \"annotations\": - []\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n - \ }\n ],\n \"usage\": {\n \"prompt_tokens\": 194,\n \"completion_tokens\": - 19,\n \"total_tokens\": 213,\n \"prompt_tokens_details\": {\n \"cached_tokens\": - 0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": {\n - \ \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\": - 0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\": - \"default\",\n \"system_fingerprint\": \"fp_27322b4e16\"\n}\n" + body: + string: !!binary | + H4sIAAAAAAAAA4xSwW7UMBS85yssX7gQlC1pNtpjJZA4IA6IE6oir/2Sdev4WX4vBVTtvyM76SZb + QOLig+fNeGb8ngshpDXyIKQ+KdZjcOXdty9U/YjgTN183FefPkSwYQf8uf46sXybGHh8AM0vrHca + x+CALfoZ1hEUQ1Ld7evmtr3d1VUGRjTgEm0IXNZY3lQ3dVm1ZdUsxBNaDSQP4nshhBDP+UwWvYGf + 8iCyTL4ZgUgNIA+XISFkRJdupCKyxMrPdhdQo2fw2fVdVN6gf0OiV08YLYPQ6DAK63uMo7pEedGF + fiKVnPvJuQ2gvEfO49n0/YKcLzYdDiHikV5RZW+9pVMXQRH6ZIkYg8zouRDiPtcxXSWUIeIYuGN8 + hPzcbv9+1pPrB6zofsEYWbkNqV06vJbrDLCyjjZ9Sq30CcxKXctXk7G4AYpN6D/N/E17Dm798D/y + K6A1BAbThQjG6uvA61iEtJ7/GruUnA1LgvhkNXRsIaaPMNCryS2LTr+IYex66weIIdp5ffrQmbZt + 6r49NkdZnIvfAAAA//8DADqQ5CxHAwAA headers: + CF-Cache-Status: + - DYNAMIC CF-RAY: - - 92606d78cdcb7def-GRU + - 93bd4e648bb75850-SJC Connection: - keep-alive Content-Encoding: @@ -336,14 +285,14 @@ interactions: Content-Type: - application/json Date: - - Tue, 25 Mar 2025 18:21:24 GMT + - Wed, 07 May 2025 02:32:20 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=akSDYPP.eTuyDBep9apt00XQn2By0q4quUKYKaowxB4-1742926884-1.0.1.1-nmj4tC9iquLz9Y4C_Lm9AYbMb7_yjKru3.wztYGzcO7o4_kIFqmjYjAAdLL2ZOWQUXzhWiH_XRvDTY94ubficIUm7WB.5o4CQ41GRGDc6c0; - path=/; expires=Tue, 25-Mar-25 18:51:24 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=ZjI36hLyf9Da1Y8yeR1Zgg8XCD7rmT1aXbO_gEbPdNs-1746585140-1.0.1.1-TlQix1fCrHyIU6zIRsJvFZlp5S1YrZH1pM0JcFGHXsB7fOk_DfDwkz.r8NiFfBM6sBaLAYZNtXZ7L_6qPNeL22OhXTrbA5wIPyYNGUdE9aI; + path=/; expires=Wed, 07-May-25 03:02:20 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=eJkVy2yBJBQb66LFc5ao3Y_Xwek6ZYZdKM7l5_pxS_E-1742926884663-0.0.1.1-604800000; + - _cfuvid=j1aSi.0AgeQ41HXT2FrDI_tx3yzmdoKTXlbNy_vIn0k-1746585140368-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -353,30 +302,357 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '316' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '319' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '30000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '29999784' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_c87b9fbb3b92014f978845e5773a01c6 + status: + code: 200 + message: OK +- request: + body: '{"input": ["Brandon''s favorite color information"], "model": "text-embedding-3-small", + "encoding_format": "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '115' + content-type: + - application/json + cookie: + - __cf_bm=OPw6ztA5EppsJ3y6C7lEoqGqTbJTr_EBNyZlIzRzR2E-1746585139-1.0.1.1-rZnEfzLCc.FOL.S2PSaPD0KCOc4tdFUg57LXOhFR2FbBm3TYjWXeNMi.Om2bCsj.QEG9FqbGy03gA1WVGhbGUUqGJUHYgK1YEFwgpUx33O8; + _cfuvid=SglpS002Q61Pecur1plBAPPzB5XA.dNRJHDcY0UWwlc-1746585139769-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + zGXeIAAA + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 93bd4e67791dfa9e-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 02:32:21 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-model: + - text-embedding-3-small + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '268' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-7d545f8f56-xh67c + x-envoy-upstream-service-time: + - '233' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999991' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_aee72a2d476c61f01211fa5b25537740 + status: + code: 200 + message: OK +- request: + body: '{"messages": [{"role": "system", "content": "You are Information Agent + with extensive role description that is longer than 80 characters. You have + access to specific knowledge sources.\nYour personal goal is: Provide information + based on knowledge sources\nTo give my best complete final answer to the task + respond using the exact following format:\n\nThought: I now can give a great + answer\nFinal Answer: Your final answer must be the great and the most complete + as possible, it must be outcome described.\n\nI MUST use these formats, my job + depends on it!"}, {"role": "user", "content": "\nCurrent Task: What is Brandon''s + favorite color?\n\nThis is the expected criteria for your final answer: Brandon''s + favorite color.\nyou MUST return the actual complete content as the final answer, + not a summary.Additional Information: Brandon''s favorite color is red and he + likes Mexican food.\n\nBegin! This is VERY important to you, use the tools available + and give your best Final Answer, your job depends on it!\n\nThought:"}], "model": + "gpt-4o", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '1069' + content-type: + - application/json + cookie: + - __cf_bm=ZjI36hLyf9Da1Y8yeR1Zgg8XCD7rmT1aXbO_gEbPdNs-1746585140-1.0.1.1-TlQix1fCrHyIU6zIRsJvFZlp5S1YrZH1pM0JcFGHXsB7fOk_DfDwkz.r8NiFfBM6sBaLAYZNtXZ7L_6qPNeL22OhXTrbA5wIPyYNGUdE9aI; + _cfuvid=j1aSi.0AgeQ41HXT2FrDI_tx3yzmdoKTXlbNy_vIn0k-1746585140368-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAAwAAAP//jFKxbtswEN31FQcuXezAUhU71uYMNToUHZqiRdNAoMmTxIbiESTlOAj8 + 7wUlx1LaBMgiQPfuPb57d08JAFOSFcBEw4NorZ5ff//q02X362ZjJG1/7B6X6dYefm623xrM2Cwy + aPcHRXhmXQhqrcagyAywcMgDRtV0lS8vry7TPO2BliTqSKttmOc0zxZZPl9czRfLE7EhJdCzAm4T + AICn/hstGokHVsBi9lxp0XteIyvOTQDMkY4Vxr1XPnAT2GwEBZmApnd901BXN6GAz2DoAQQ3UKs9 + Aoc6Wgdu/AM6gN/mkzJcw6b/L+DacSPJfPBQ8T05FRAEaXKgPDiUM+BGQoOg1T16+IIHFaUrInkx + deKw6jyPQZhO6wnAjaHAY5B9Bncn5HieWlNtHe38P1RWKaN8Uzrknkyc0AeyrEePCcBdn273IjBm + HbU2lIHusX8uXeeDHhv3OaLZ6gQGClxP6lk6e0WvlBi40n6yHya4aFCO1HGZvJOKJkAymfp/N69p + D5MrU79HfgSEQBtQltahVOLlxGObw3jub7WdU+4NM49urwSWQaGLm5BY8U4Pl8j8ow/YlpUyNTrr + 1HCOlS3XizTL5Hr1UbDkmPwFAAD//wMAUYDw9pcDAAA= + headers: + CF-RAY: + - 93bd4e6c1f115850-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 02:32:21 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC openai-organization: - crewai-iuxna1 openai-processing-ms: - - '1351' + - '290' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '294' x-ratelimit-limit-requests: - - '30000' + - '10000' x-ratelimit-limit-tokens: - - '150000000' + - '30000000' x-ratelimit-remaining-requests: - - '29999' + - '9999' x-ratelimit-remaining-tokens: - - '149999765' + - '29999765' x-ratelimit-reset-requests: - - 2ms + - 6ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_126a3481ff4c4d9e8e75ed2dacbe3719 - http_version: HTTP/1.1 - status_code: 200 + - req_e0c3819ab814496d457e48eacc4df51f + status: + code: 200 + message: OK version: 1 diff --git a/tests/cassettes/test_agent_with_knowledge_sources_generate_search_query.yaml b/tests/cassettes/test_agent_with_knowledge_sources_generate_search_query.yaml new file mode 100644 index 000000000..794f071c3 --- /dev/null +++ b/tests/cassettes/test_agent_with_knowledge_sources_generate_search_query.yaml @@ -0,0 +1,660 @@ +interactions: +- request: + body: '{"input": ["Brandon''s favorite color is red and he likes Mexican food."], + "model": "text-embedding-3-small", "encoding_format": "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '137' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + headers: + CF-RAY: + - 93bd468618792506-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 02:26:58 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=b8RyPEId4yq9HJyuFnK7KNXV1hEa38vaf3KsPaYMi6U-1746584818-1.0.1.1-D2L05owANBA1NNJNxdD5avYizVIMB0Q9M_6PgN4YJzuXkQLOyORtRMDfNCF4SCptihGS_hISsNIh4LqfOcp9pQDRlLaFsYpAvHOaWt6teXk; + path=/; expires=Wed, 07-May-25 02:56:58 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=xH94XekAl_WXtZ8yJYk4wagWOpjufglIcgBHuIK4j5s-1746584818263-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + openai-model: + - text-embedding-3-small + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '271' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-6fcbcbb5fd-rlx2b + x-envoy-upstream-service-time: + - '276' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999986' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_dfb1b7e20cfae7dd4c21a591f5989210 + status: + code: 200 + message: OK +- request: + body: '{"messages": [{"role": "system", "content": "Your goal is to rewrite the + user query so that it is optimized for retrieval from a vector database. Consider + how the query will be used to find relevant documents, and aim to make it more + specific and context-aware. \n\n Do not include any other text than the rewritten + query, especially any preamble or postamble and only add expected output format + if its relevant to the rewritten query. \n\n Focus on the key words of the intended + task and to retrieve the most relevant information. \n\n There will be some + extra context provided that might need to be removed such as expected_output + formats structured_outputs and other instructions."}, {"role": "user", "content": + "The original query is: What is Brandon''s favorite color?\n\nThis is the expected + criteria for your final answer: The answer to the question, in a format like + this: `{{name: str, favorite_color: str}}`\nyou MUST return the actual complete + content as the final answer, not a summary.."}], "model": "gpt-4o-mini", "stop": + ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '1054' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAA4xSsW7bMBTc9RXEW7pYhaw6leylQJClU4AGyRIEAkM+yUwoPoJ8MloE/veAkmMp + aQp04cB7d7w7vpdMCDAadgLUXrLqvc0vb697eroKNzdey/hLF9XzdXm4uLqTZfUTVolBj0+o+I31 + VVHvLbIhN8EqoGRMqutq8/2i3tTregR60mgTrfOcbyjvjTN5WZSbvKjydX1i78kojLAT95kQQryM + Z/LpNP6GnShWbzc9xig7hN15SAgIZNMNyBhNZOkYVjOoyDG60fplkE6T+xJFKw8UDKNQZCn8WM4H + bIcok2c3WLsApHPEMmUenT6ckOPZm6XOB3qMH6jQGmfivgkoI7nkIzJ5GNFjJsTD2MHwLhb4QL3n + hukZx+fW23LSg7n6Ga1OGBNLuyRtV5/INRpZGhsXJYKSao96ps6Ny0EbWgDZIvTfZj7TnoIb1/2P + /AwohZ5RNz6gNup94HksYFrMf42dSx4NQ8RwMAobNhjSR2hs5WCndYH4JzL2TWtch8EHM+1M65vi + 27asy7LYFpAds1cAAAD//wMA3xmId0EDAAA= + headers: + CF-RAY: + - 93bd468ac97dcedd-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 02:26:58 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=RAnX9bxMu6FRFRvWLdkruoVeTpKeJSsewnbE5u1SKNc-1746584818-1.0.1.1-08O3HvJLNgXLW2GhIFer0bWIw7kc_bnco7201aq5kLNaI2.5R_LzcmmIHlEQmos6TsjWG..AYDzzeYQBts4AfDWCT__jWc1iMNREXvz_Bk4; + path=/; expires=Wed, 07-May-25 02:56:58 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=hVuA8E89306pCEvNIEtxK0bavBXUyyJLC45CNZ0NFcY-1746584818774-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '267' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '300' + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999769' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_9be67025184f64bbc77df86b89c5f894 + status: + code: 200 + message: OK +- request: + body: '{"input": ["Brandon''s favorite color?"], "model": "text-embedding-3-small", + "encoding_format": "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '104' + content-type: + - application/json + cookie: + - __cf_bm=b8RyPEId4yq9HJyuFnK7KNXV1hEa38vaf3KsPaYMi6U-1746584818-1.0.1.1-D2L05owANBA1NNJNxdD5avYizVIMB0Q9M_6PgN4YJzuXkQLOyORtRMDfNCF4SCptihGS_hISsNIh4LqfOcp9pQDRlLaFsYpAvHOaWt6teXk; + _cfuvid=xH94XekAl_WXtZ8yJYk4wagWOpjufglIcgBHuIK4j5s-1746584818263-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + headers: + CF-RAY: + - 93bd468e08302506-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 02:26:59 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + openai-model: + - text-embedding-3-small + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '140' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-678b766599-k7s96 + x-envoy-upstream-service-time: + - '61' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999994' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_22e020337220a8384462c62d1e51bcc6 + status: + code: 200 + message: OK +- request: + body: '{"messages": [{"role": "system", "content": "You are Information Agent + with extensive role description that is longer than 80 characters. You have + access to specific knowledge sources.\nYour personal goal is: Provide information + based on knowledge sources\nTo give my best complete final answer to the task + respond using the exact following format:\n\nThought: I now can give a great + answer\nFinal Answer: Your final answer must be the great and the most complete + as possible, it must be outcome described.\n\nI MUST use these formats, my job + depends on it!"}, {"role": "user", "content": "\nCurrent Task: What is Brandon''s + favorite color?\n\nThis is the expected criteria for your final answer: The + answer to the question, in a format like this: `{{name: str, favorite_color: + str}}`\nyou MUST return the actual complete content as the final answer, not + a summary.Additional Information: Brandon''s favorite color is red and he likes + Mexican food.\n\nBegin! This is VERY important to you, use the tools available + and give your best Final Answer, your job depends on it!\n\nThought:"}], "model": + "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '1136' + content-type: + - application/json + cookie: + - __cf_bm=RAnX9bxMu6FRFRvWLdkruoVeTpKeJSsewnbE5u1SKNc-1746584818-1.0.1.1-08O3HvJLNgXLW2GhIFer0bWIw7kc_bnco7201aq5kLNaI2.5R_LzcmmIHlEQmos6TsjWG..AYDzzeYQBts4AfDWCT__jWc1iMNREXvz_Bk4; + _cfuvid=hVuA8E89306pCEvNIEtxK0bavBXUyyJLC45CNZ0NFcY-1746584818774-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAAwAAAP//jFNNb+IwEL3nV4x8JqsQYAu50UOl7mG/JE5LFU3tSXBxPJZt6K4Q/33l + QCHtdqVeInnevOf3ZpxDBiC0EhUIucEoO2fy29W3zq2+L2dmpb4sFj+2X5dm80Td9qe8j2KUGPz4 + RDK+sD5J7pyhqNmeYOkJIyXV8c3082w+nY8XPdCxIpNorYv5lPNOW52XRTnNi5t8PD+zN6wlBVHB + rwwA4NB/k0+r6LeooBi9VDoKAVsS1aUJQHg2qSIwBB0i2pPnMyjZRrK99Xuw/AwSLbR6T4DQJtuA + NjyTB1jbO23RwLI/V3A4WOyogrW49WgV27UYQYN79jpSLdmwT6AntRbH4/BOT80uYMptd8YMALSW + I6a59Wkfzsjxks9w6zw/hjdU0Wirw6b2hIFtyhIiO9GjxwzgoZ/j7tVohPPcuVhH3lJ/XTmenPTE + dX0DdHYGI0c0g/pkPnpHr1YUUZsw2ISQKDekrtTr2nCnNA+AbJD6XzfvaZ+Sa9t+RP4KSEkukqqd + J6Xl68TXNk/pdf+v7TLl3rAI5PdaUh01+bQJRQ3uzPk/CX9CpK5utG3JO69PD69xdTFZlPOyLBaF + yI7ZXwAAAP//AwCISUFdhgMAAA== + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 93bd46929f55cedd-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 02:27:00 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '394' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '399' + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999749' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_08f3bc0843f6a5d9afa8380d28251c47 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml b/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml index 5b73238c1..994bfd855 100644 --- a/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml +++ b/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml @@ -6,7 +6,7 @@ interactions: accept: - application/json accept-encoding: - - gzip, deflate, zstd + - gzip, deflate connection: - keep-alive content-length: @@ -151,7 +151,7 @@ interactions: 6NrP9D+nrsnf4z///rMV/t41+GfqpvT1/z7/1/dV//Wv/wUAAP//AwBcfFVx4CAAAA== headers: CF-RAY: - - 931fcf607c16eb34-SJC + - 93bd535cca31f973-SJC Connection: - keep-alive Content-Encoding: @@ -159,14 +159,14 @@ interactions: Content-Type: - application/json Date: - - Thu, 17 Apr 2025 23:47:53 GMT + - Wed, 07 May 2025 02:35:43 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=CncSMPCav.9EJL3emmM0sTqugx5GN6_Oy8JPFBssVho-1744933673-1.0.1.1-Q1XMvHbQdrfEWkkCYeeNHwFdZ1NpjAGJ_0jOUYIk_APelFe7nCanjW_xlOj12b3JQql9.iWQDiHvCeYJDTWkdxnNiMQOEiFMYHX5YZXUuJs; - path=/; expires=Fri, 18-Apr-25 00:17:53 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=FaqN2sfsTata5eZF3jpzsswr9Ry6.aLOWPP..HstyKk-1746585343-1.0.1.1-9IGOA.WxYd0mtZoXXs5PV_DSi6IzwCB.H8l4mQxLdl3V1cQ9rGr5FSQPLoDVJA5uPwxduxFEbLVxJobTW2J_P0iBVcEQSvxcMnsJ8Jtnsxk; + path=/; expires=Wed, 07-May-25 03:05:43 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=unfPTYCpF5COtm5PuZDuaJqlhefP0iibfjsXHc9lKq0-1744933673515-0.0.1.1-604800000; + - _cfuvid=SlYSO8wQlhrJsTTYoTXd7IBl_D9ZddMlIzW1PTFiZIE-1746585343627-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -185,15 +185,15 @@ interactions: openai-organization: - crewai-iuxna1 openai-processing-ms: - - '75' + - '38' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-8687b6cbdb-4qpmr + - envoy-router-6fcbcbb5fd-pxw6t x-envoy-upstream-service-time: - - '46' + - '41' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -207,32 +207,33 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_b8c884a7fe2bd4732903ecbdc632576d + - req_39d01dc72178a8952d00ba36c7512521 status: code: 200 message: OK - request: - body: '{"messages": [{"role": "system", "content": "You are Information Agent. - You have access to specific knowledge sources.\nYour personal goal is: Provide - information based on knowledge sources\nTo give my best complete final answer - to the task respond using the exact following format:\n\nThought: I now can - give a great answer\nFinal Answer: Your final answer must be the great and the - most complete as possible, it must be outcome described.\n\nI MUST use these - formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent Task: - What is Brandon''s favorite color?\n\nThis is the expected criteria for your - final answer: Brandon''s favorite color.\nyou MUST return the actual complete - content as the final answer, not a summary.\n\nBegin! This is VERY important - to you, use the tools available and give your best Final Answer, your job depends - on it!\n\nThought:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + body: '{"messages": [{"role": "system", "content": "Your goal is to rewrite the + user query so that it is optimized for retrieval from a vector database. Consider + how the query will be used to find relevant documents, and aim to make it more + specific and context-aware. \n\n Do not include any other text than the rewritten + query, especially any preamble or postamble and only add expected output format + if its relevant to the rewritten query. \n\n Focus on the key words of the intended + task and to retrieve the most relevant information. \n\n There will be some + extra context provided that might need to be removed such as expected_output + formats structured_outputs and other instructions."}, {"role": "user", "content": + "The original query is: What is Brandon''s favorite color?\n\nThis is the expected + criteria for your final answer: Brandon''s favorite color.\nyou MUST return + the actual complete content as the final answer, not a summary.."}], "model": + "gpt-4o-mini", "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate, zstd + - gzip, deflate connection: - keep-alive content-length: - - '926' + - '992' content-type: - application/json host: @@ -264,18 +265,19 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAAwAAAP//jJNNi9swEIbv+RWDLr0ki/NBvm5NYUsplFK29NAuZiKNnWlkjVaSk02X - /PdiJxtn2y30YrCeecfvvCM/9QAUG7UEpTeYdOXtYPXp7vbLw7evm4ePmObvt/jrsVgVn9/5dbhj - 1W8Usv5JOj2rbrRU3lJicSesA2GiputwNpksxuPpbNyCSgzZRlb6NJjIoGLHg1E2mgyy2WA4P6s3 - wpqiWsL3HgDAU/tsfDpDj2oJWf/5pKIYsSS1vBQBqCC2OVEYI8eELql+B7W4RK61/gGc7EGjg5J3 - BAhlYxvQxT0FgB/ulh1aeNu+L2EV0BlxbyIUuJPAiUCLlQAcwUkCX68ta3sAI7quyCUywA72bMge - AHfIFteWYOtkb8mUBFHqoCneXPsLVNQRm4xcbe0VQOckYZNxm8z9mRwvWVgpfZB1/EOqCnYcN3kg - jOKauWMSr1p67AHct5nXL2JUPkjlU55kS+3nhtP5qZ/qVt3R0fQMkyS0V6rFpP9Kv9xQQrbxamtK - o96Q6aTdirE2LFegdzX1325e632anF35P+07oDX5RCb3gQzrlxN3ZYGaP+FfZZeUW8MqUtixpjwx - hWYThgqs7el+qniIiaq8YFdS8IFPl7TweTZejOajUbbIVO/Y+w0AAP//AwA4a1/QsgMAAA== + H4sIAAAAAAAAAwAAAP//jFJNa9wwFLz7V4h36WVdvF5nv46BQEsPpYWeSjCK9GwrlfVU6XlpCfvf + i+zN2klT6EUHzZvRzOg9ZUKA0XAUoDrJqvc2v/32+fTh68e7bel/UtXFR6/vKv+FP6191cMqMejh + ERU/s94r6r1FNuQmWAWUjEl1vau2N/ubTbUZgZ402kRrPecV5b1xJi+LssqLXb7eX9gdGYURjuJ7 + JoQQT+OZfDqNv+AoitXzTY8xyhbheB0SAgLZdAMyRhNZOobVDCpyjG60fhuk0+TeRdHIEwXDKBRZ + CsvxgM0QZbLsBmsXgHSOWKbIo9H7C3K+WrPU+kAP8RUVGuNM7OqAMpJLNiKThxE9Z0LcjxUML1KB + D9R7rpl+4PjcereZ9GBufka3F4yJpV2SDqs35GqNLI2Niw5BSdWhnqlz4XLQhhZAtgj9t5m3tKfg + xrX/Iz8DSqFn1LUPqI16GXgeC5j28l9j15JHwxAxnIzCmg2G9BEaGznYaVsg/o6Mfd0Y12LwwUwr + 0/i62BzKfVkWhwKyc/YHAAD//wMAwl9O/EADAAA= headers: + CF-Cache-Status: + - DYNAMIC CF-RAY: - - 931fcf649bdbed40-SJC + - 93bd535e5f0b3ad4-SJC Connection: - keep-alive Content-Encoding: @@ -283,14 +285,14 @@ interactions: Content-Type: - application/json Date: - - Thu, 17 Apr 2025 23:47:54 GMT + - Wed, 07 May 2025 02:35:43 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=8vySwO0xqpm0u93_1_rXQwTeEIWa2ei3_CD5sAdoo3o-1744933674-1.0.1.1-iqZDpH5poOUp4Rcnhfrb0N2Z0c2662RBiPEcx_gefNW.m3tBA3qyFa8tmFv7PitH8u9vyYK7jxUwy4lPiSi830QWNbTMgCMTbrJ7iaUV7hY; - path=/; expires=Fri, 18-Apr-25 00:17:54 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=4ExRXOhgXGvPCnJZJFlvggG1kkRKGLpJmVtf53soQhg-1746585343-1.0.1.1-X3_EsGB.4aHojKVKihPI6WFlCtq43Qvk.iFgVlsU18nGDyeau8Mi0Y.LCQ8J8.g512gWoCQCEakoWWjNpR4G.sMDqDrKit3KUFaL71iPZXo; + path=/; expires=Wed, 07-May-25 03:05:43 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=IXAyT8eWpFERM53ngcYNmaqhocfGbOHWSoe7SFNdoGI-1744933674288-0.0.1.1-604800000; + - _cfuvid=vNgB2gnZiY_kSsrGNv.zug22PCkhqeyHmMQUQ5_FfM8-1746585343998-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -300,16 +302,133 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '167' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '174' + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999783' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_efb615e12a042605322c615ab896925c + status: + code: 200 + message: OK +- request: + body: '{"messages": [{"role": "system", "content": "You are Information Agent. + You have access to specific knowledge sources.\nYour personal goal is: Provide + information based on knowledge sources\nTo give my best complete final answer + to the task respond using the exact following format:\n\nThought: I now can + give a great answer\nFinal Answer: Your final answer must be the great and the + most complete as possible, it must be outcome described.\n\nI MUST use these + formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent Task: + What is Brandon''s favorite color?\n\nThis is the expected criteria for your + final answer: Brandon''s favorite color.\nyou MUST return the actual complete + content as the final answer, not a summary.\n\nBegin! This is VERY important + to you, use the tools available and give your best Final Answer, your job depends + on it!\n\nThought:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '926' + content-type: + - application/json + cookie: + - __cf_bm=4ExRXOhgXGvPCnJZJFlvggG1kkRKGLpJmVtf53soQhg-1746585343-1.0.1.1-X3_EsGB.4aHojKVKihPI6WFlCtq43Qvk.iFgVlsU18nGDyeau8Mi0Y.LCQ8J8.g512gWoCQCEakoWWjNpR4G.sMDqDrKit3KUFaL71iPZXo; + _cfuvid=vNgB2gnZiY_kSsrGNv.zug22PCkhqeyHmMQUQ5_FfM8-1746585343998-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAA4xTTU/bQBC951eM9tJLghITIORWVKFSDq0qoR5aZE12x/aW9Yy7O06IEP+9shPi + 0FKpF0ueN+/tm6+nEYDxzizB2ArV1k2YXN19Xt/cVtnjh+2XbLH99W399a759HFzy8Xs0Yw7hqx+ + ktUX1omVugmkXngH20io1KnOLubnZ4uz0/m8B2pxFDpa2ehkLpPas59k02w+mV5MZos9uxJvKZkl + fB8BADz1384nO3o0S5iOXyI1pYQlmeUhCcBECV3EYEo+KbKa8QBaYSXurd8AywYsMpR+TYBQdrYB + OW0oAvzga88Y4H3/v4SriOyE3yUocC3RK4GVIBF8AhaFpl0Fb8MWnNi2JlZy4Bms1LVw2AKu0Qdc + BYIHlk0gVxIkaaOldALXEgGtbSMqgedCYo1dP8fgFTbSBgcrghUlBRXA9PBiB5yPZDVsQSJY4dQG + hYZiks77Xh82FUUCrXw6Focat51sqjCSOzluU6SiTdiNitsQjgBkFu3Z/YDu98jzYSRByibKKv1B + NYVnn6o8Eibhrv1JpTE9+jwCuO9H376apmmi1I3mKg/UPzc7X+z0zLBxAzq/3IMqimGIZ7OL8Rt6 + uSNFH9LR8hiLtiI3UIdNw9Z5OQJGR1X/7eYt7V3lnsv/kR8Aa6lRcnkTyXn7uuIhLVJ3kP9KO3S5 + N2wSxbW3lKun2E3CUYFt2J2JSdukVOeF55JiE/3uVoomn55eZossm15Ozeh59BsAAP//AwAaTaZd + OQQAAA== + headers: + CF-RAY: + - 93bd53604e3f3ad4-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 02:35:45 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 cf-cache-status: - DYNAMIC openai-organization: - crewai-iuxna1 openai-processing-ms: - - '489' + - '933' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '936' x-ratelimit-limit-requests: - '30000' x-ratelimit-limit-tokens: @@ -317,13 +436,13 @@ interactions: x-ratelimit-remaining-requests: - '29999' x-ratelimit-remaining-tokens: - - '149999801' + - '149999802' x-ratelimit-reset-requests: - 2ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_151f9d0b786f2022f249ee20ea108b43 + - req_0001c38df543cc383617c370087f0ee3 status: code: 200 message: OK diff --git a/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_default.yaml b/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_default.yaml index cea659823..d818e4521 100644 --- a/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_default.yaml +++ b/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_default.yaml @@ -6,7 +6,7 @@ interactions: accept: - application/json accept-encoding: - - gzip, deflate, zstd + - gzip, deflate connection: - keep-alive content-length: @@ -150,8 +150,10 @@ interactions: Mj9mH/7zuxXwX//68+d//G4YtN0jf30vBkz5Mv3H/7kq8B/if4xt+nr9vYZAxrTI//n3/76B8M9n 6NrP9D+nrsnf4z///rMV/t41+GfqpvT1/z7/1/dV//Wv/wUAAP//AwBcfFVx4CAAAA== headers: + CF-Cache-Status: + - DYNAMIC CF-RAY: - - 931fceef786ded38-SJC + - 93bd57189acf15be-SJC Connection: - keep-alive Content-Encoding: @@ -159,14 +161,14 @@ interactions: Content-Type: - application/json Date: - - Thu, 17 Apr 2025 23:47:35 GMT + - Wed, 07 May 2025 02:38:16 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=fj4RMXSXRDQjE2CFC6CGC3dVcJ8cl2Cbu8alijwMHA8-1744933655-1.0.1.1-M3c3AI4XQa.0GJoanNACuOm2aEL4xjqHR1grxIP3olFvq3e0eFHwQTvCF20YwR_OLiMJUH87eNUwgziawMccsxjR9OVZyDr5._5Wts6CrqA; - path=/; expires=Fri, 18-Apr-25 00:17:35 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=VGdrMAj2834vuX5RC6lPbHVNwWHXnBmqLb0kAhiGO4g-1746585496-1.0.1.1-kvgkEGO9fI9sasCfJjizGBG4k82_KhCRbH8CEyFrjJatzMoxhM0Z3suJO_hFFH13Wyi2wThiM9QSPvH3dddjfC7hC_tscxijZwiGqtCVnnE; + path=/; expires=Wed, 07-May-25 03:08:16 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=MSkpJsQZtdyIGvrl2mIwy0a_We8H6CIrS7etFgRBl2Y-1744933655703-0.0.1.1-604800000; + - _cfuvid=sAoMYVxAaEFBkQttcKO7GlBZ5NlUNUIaJomZ05pGlCs-1746585496569-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -178,22 +180,20 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 - cf-cache-status: - - DYNAMIC openai-model: - text-embedding-3-small openai-organization: - crewai-iuxna1 openai-processing-ms: - - '140' + - '69' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload via: - - envoy-router-84959bbcd5-rzqvq + - envoy-router-7d545f8f56-jx5wk x-envoy-upstream-service-time: - - '110' + - '52' x-ratelimit-limit-requests: - '10000' x-ratelimit-limit-tokens: @@ -207,32 +207,33 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_dd3ef61c4765b46ed7db80ddfe261f41 + - req_73f3f0d371e3c19b16c7a6d7cc45d3ee status: code: 200 message: OK - request: - body: '{"messages": [{"role": "system", "content": "You are Information Agent. - You have access to specific knowledge sources.\nYour personal goal is: Provide - information based on knowledge sources\nTo give my best complete final answer - to the task respond using the exact following format:\n\nThought: I now can - give a great answer\nFinal Answer: Your final answer must be the great and the - most complete as possible, it must be outcome described.\n\nI MUST use these - formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent Task: - What is Brandon''s favorite color?\n\nThis is the expected criteria for your - final answer: Brandon''s favorite color.\nyou MUST return the actual complete - content as the final answer, not a summary.\n\nBegin! This is VERY important - to you, use the tools available and give your best Final Answer, your job depends - on it!\n\nThought:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + body: '{"messages": [{"role": "system", "content": "Your goal is to rewrite the + user query so that it is optimized for retrieval from a vector database. Consider + how the query will be used to find relevant documents, and aim to make it more + specific and context-aware. \n\n Do not include any other text than the rewritten + query, especially any preamble or postamble and only add expected output format + if its relevant to the rewritten query. \n\n Focus on the key words of the intended + task and to retrieve the most relevant information. \n\n There will be some + extra context provided that might need to be removed such as expected_output + formats structured_outputs and other instructions."}, {"role": "user", "content": + "The original query is: What is Brandon''s favorite color?\n\nThis is the expected + criteria for your final answer: Brandon''s favorite color.\nyou MUST return + the actual complete content as the final answer, not a summary.."}], "model": + "gpt-4o-mini", "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate, zstd + - gzip, deflate connection: - keep-alive content-length: - - '926' + - '992' content-type: - application/json host: @@ -264,20 +265,19 @@ interactions: response: body: string: !!binary | - H4sIAAAAAAAAAwAAAP//jFLBbtswDL37KwhdeokLx0mbOLd2WIAC63YZdthWGIpMO9xkUZDkpEWR - fx/kpLG7dUAvBszHR733yOcEQFAlViDUVgbVWp3efv66LvKPRd7Q/f57vtaf7m6ePjze774sv23E - JDJ48wtVeGFdKm6txkBsjrByKAPGqdPFfF7MZtdXVz3QcoU60hob0jmnLRlK8yyfp9kinS5P7C2T - Qi9W8CMBAHjuv1GnqfBRrCCbvFRa9F42KFbnJgDhWMeKkN6TD9IEMRlAxSag6aXfgeE9KGmgoR2C - hCbKBmn8Hh3AT7MmIzXc9P8ruHXSVGwuPNRyx44CgmLNDsjDRnd4OX7GYd15Ga2aTusRII3hIGNU - vcGHE3I4W9LcWMcb/xdV1GTIb0uH0rOJ8n1gK3r0kAA89NF1r9IQ1nFrQxn4N/bPTa+Xx3li2NgI - LU5g4CD1qL5cTN6YV1YYJGk/Cl8oqbZYDdRhU7KriEdAMnL9r5q3Zh+dk2neM34AlEIbsCqtw4rU - a8dDm8N40P9rO6fcCxYe3Y4UloHQxU1UWMtOH89M+CcfsC1rMg066+h4a7Uts1mRL/M8KzKRHJI/ - AAAA//8DALRhJdF5AwAA + H4sIAAAAAAAAA4xSy27bMBC86yuIvfRiFbKs+HVLUKBFL0YPRosWgcCQK5kNxSXItZEi8L8XlBxL + aVOgFx44O8OZ4T5nQoDRsBWgDpJV521+t989PX78tF/fnr5X+w/fdgv6WnxuWruzX25hlhj08BMV + v7DeK+q8RTbkBlgFlIxJdb6qljfrm2qz7IGONNpEaz3nFeWdcSYvi7LKi1U+X1/YBzIKI2zFj0wI + IZ77M/l0Gp9gK4rZy02HMcoWYXsdEgIC2XQDMkYTWTqG2Qgqcoyut34XpNPk3kXRyBMFwygUWQrT + 8YDNMcpk2R2tnQDSOWKZIvdG7y/I+WrNUusDPcQ/qNAYZ+KhDigjuWQjMnno0XMmxH1fwfFVKvCB + Os810yP2z81Xi0EPxuZHdHnBmFjaKWkze0Ou1sjS2DjpEJRUB9QjdSxcHrWhCZBNQv9t5i3tIbhx + 7f/Ij4BS6Bl17QNqo14HHscCpr3819i15N4wRAwno7BmgyF9hMZGHu2wLRB/RcauboxrMfhghpVp + fF0sNuW6LItNAdk5+w0AAP//AwDAmd1xQAMAAA== headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 931fcef51a67f947-SJC + - 93bd571a5a7267e2-SJC Connection: - keep-alive Content-Encoding: @@ -285,14 +285,14 @@ interactions: Content-Type: - application/json Date: - - Thu, 17 Apr 2025 23:47:36 GMT + - Wed, 07 May 2025 02:38:17 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=7agwu5JV1OJvEFNhvfvqdgWf.HoMyIni9D85soRl3WE-1744933656-1.0.1.1-dKUwAZnjjuuiswFKWGsxpwHNBJUpjhYlZvfZpyNQIejxEJrXMCppgPvtQ9wa4SKezLmKqftvn_H.bAx_AEFJD2EWm5V6R_uK8.odneErR6A; - path=/; expires=Fri, 18-Apr-25 00:17:36 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=62_LRbzx15KBnTorpnulb_ZMoUJCYXHWEnTXVApNOr4-1746585497-1.0.1.1-KqnrR_1Udr1SzCiZW4umsNj1gQgcKOjAPf24HsqotTebuxO48nvo8g_X5O7Mng9tGurC0otvvkjYjsSWuRaddXculJnfdeGq5W3hJhxI21k; + path=/; expires=Wed, 07-May-25 03:08:17 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=LdTrzwZYrB6ZyQLY7NdaaHVpDVFvIjYm3arSpNy87wU-1744933656504-0.0.1.1-604800000; + - _cfuvid=LPWfk79PGAoGrMHseblqRazN9H8qdBY0BP50Y1Bp5wI-1746585497006-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -305,11 +305,130 @@ interactions: openai-organization: - crewai-iuxna1 openai-processing-ms: - - '540' + - '183' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '187' + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999783' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_50fa35cb9ba592c55aacf7ddded877ac + status: + code: 200 + message: OK +- request: + body: '{"messages": [{"role": "system", "content": "You are Information Agent. + You have access to specific knowledge sources.\nYour personal goal is: Provide + information based on knowledge sources\nTo give my best complete final answer + to the task respond using the exact following format:\n\nThought: I now can + give a great answer\nFinal Answer: Your final answer must be the great and the + most complete as possible, it must be outcome described.\n\nI MUST use these + formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent Task: + What is Brandon''s favorite color?\n\nThis is the expected criteria for your + final answer: Brandon''s favorite color.\nyou MUST return the actual complete + content as the final answer, not a summary.\n\nBegin! This is VERY important + to you, use the tools available and give your best Final Answer, your job depends + on it!\n\nThought:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '926' + content-type: + - application/json + cookie: + - __cf_bm=62_LRbzx15KBnTorpnulb_ZMoUJCYXHWEnTXVApNOr4-1746585497-1.0.1.1-KqnrR_1Udr1SzCiZW4umsNj1gQgcKOjAPf24HsqotTebuxO48nvo8g_X5O7Mng9tGurC0otvvkjYjsSWuRaddXculJnfdeGq5W3hJhxI21k; + _cfuvid=LPWfk79PGAoGrMHseblqRazN9H8qdBY0BP50Y1Bp5wI-1746585497006-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAAwAAAP//jFNNb9swDL3nVxC67JIMSZo0aW4ttmI77bIO3UdhMBLtcJVJQZKTBkX/ + +2CnrdOuA3YxYD4+8lGPvB8AGHZmBcZuMNs6+NHF1Zc7Xycnp/Rhdv3x2/fL82r+9Tr/uDrxn8yw + Zej6N9n8xHpvtQ6eMqscYBsJM7VVJ4vZ6Xw5n50tOqBWR76lVSGPZjqqWXg0HU9no/FiNFk+sjfK + lpJZwc8BAMB99211iqM7s4Lx8ClSU0pYkVk9JwGYqL6NGEyJU0bJZtiDViWTdNI/g+gOLApUvCVA + qFrZgJJ2FAF+ySULejjv/ldwEVGcyrsEJW41ciaw6jUCJxDNEJq1Z+v3cCu6E9AIuEX2uPYELGC1 + rlU60JOrCJI20VIaAiYIFJO2zUKkkiKJpQSeb+lVrwQYCfI+sEXv9xAibzEToLhukC3GPezYkd8D + 1ioVsDjesmvQJ9hx3mhzpDRtMJIDllJjja1/74/fKlLZJGz9ksb7IwBFNHf5nUs3j8jDsy9eqxB1 + nV5RTcnCaVNEwqTSepCyBtOhDwOAm87/5oWlJkStQy6y3lLXbnK6PNQz/dr16GzxCGbN6Pv4dDIf + vlGvcJSRfTraIGPRbsj11H7dsHGsR8DgaOq/1bxV+zA5S/U/5XvAWgqZXBEiObYvJ+7TIrVX+a+0 + 51fuBJtEccuWiswUWyccldj4w62YtE+Z6qJkqSiGyIeDKUMxPjmbLqfT8dnYDB4GfwAAAP//AwA/ + 0jeHPgQAAA== + headers: + CF-RAY: + - 93bd571c9cf367e2-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 02:38:18 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '785' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '931' x-ratelimit-limit-requests: - '30000' x-ratelimit-limit-tokens: @@ -323,7 +442,7 @@ interactions: x-ratelimit-reset-tokens: - 0s x-request-id: - - req_8837be6510731522fd5ac4b75c11d486 + - req_9bf7c8e011b2b1a8e8546b68c82384a7 status: code: 200 message: OK diff --git a/tests/cassettes/test_get_knowledge_search_query.yaml b/tests/cassettes/test_get_knowledge_search_query.yaml new file mode 100644 index 000000000..39af3cfce --- /dev/null +++ b/tests/cassettes/test_get_knowledge_search_query.yaml @@ -0,0 +1,333 @@ +interactions: +- request: + body: '{"input": ["Capital of France"], "model": "text-embedding-3-small", "encoding_format": + "base64"}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '96' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/embeddings + response: + body: + string: !!binary | + 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 + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 93c2407849cb943e-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 16:56:39 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=iRcThWdZ.NO0HPhZg.pUV1AiG0u.0Dkd58N9HGucKdQ-1746636999-1.0.1.1-Cswtia9bUNC0npExHV2GcZLT2MVo6tEQbFU_dsKpjNN5R3s37B6JGWTE1IIZV9V0UGLhiy04og474anpJW4c6yLw0.9q5F4MPcxtAOjwBvo; + path=/; expires=Wed, 07-May-25 17:26:39 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=rvDDZbBWaissP0luvtyuyyAWcPx3AiaoZS9LkAuK4sM-1746636999152-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-model: + - text-embedding-3-small + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '116' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + via: + - envoy-router-6b78fbf94c-z6prb + x-envoy-upstream-service-time: + - '123' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '10000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '9999996' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_3f67e7a1b90d845c25e9cef31147aba0 + status: + code: 200 + message: OK +- request: + body: '{"messages": [{"role": "system", "content": "You are Information Agent. + I have access to knowledge sources\nYour personal goal is: Provide information + based on knowledge sources\nTo give my best complete final answer to the task + respond using the exact following format:\n\nThought: I now can give a great + answer\nFinal Answer: Your final answer must be the great and the most complete + as possible, it must be outcome described.\n\nI MUST use these formats, my job + depends on it!"}, {"role": "user", "content": "\nCurrent Task: What is the capital + of France?\n\nThis is the expected criteria for your final answer: The capital + of France is Paris.\nyou MUST return the actual complete content as the final + answer, not a summary.\n\nBegin! This is VERY important to you, use the tools + available and give your best Final Answer, your job depends on it!\n\nThought:"}], + "model": "gpt-4", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '911' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAA4xSwW7bMAy9+ysIXXpJgmbN0iW3DEPQAtswDBt2WAuDlWhbjSxpEt00KPLvg+Uk + drYeetGBj3x6fHwvGYDQSixByApZ1t6MP/6UX75vV82n7Yf17uvKX4dVuXn/Sxc3n2+uxKidcA+P + JPk4NZGu9oZYO9vBMhAytazT69l8fjVfLBYJqJ0i046Vnsez8eV8eiCUldOSoljC7wwA4CW9rTar + 6Fks4XJ0rNQUI5YklqcmABGcaSsCY9SR0bIY9aB0lskmubcg0VrH4IN70ooA7Q4cVxRA28KFGtst + ACNwRcAYNyANYTA7iIxMXZ2ePUkmBYW2aABt3FIAtAqUo2gvGAL9aXQgQKV0y4hmyD+BW4iVa4w6 + 6ehoUfKR7cCgJnf2zq7TP6uELOFHRSDRa0YDroB1QCsJdIRvGHScDFcPVDQRW8ttY8wASC4kMcn0 + +wOyP9lsXOmDe4j/jIpCWx2rPBBGZ1tLIzsvErrPAO7TOZuzCwkfXO05Z7eh9N10vuj4RJ+cHp1N + DyA7RtPX300PITjnyxUxahMHgRASZUWqH+3Tg43SbgBkg63/V/Mad7e5tuVb6HtASvJMKveBlJbn + G/dtgR5Tsl5vO7mcBItI4UlLyllTaC+hqMDGdNEXcReZ6rzQtqTgg075by+Z7bO/AAAA//8DAI9H + rN32AwAA + headers: + CF-RAY: + - 93c2407d5cfaface-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 07 May 2025 16:56:41 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=g.ZMxB8fB7ZSkwD6w5ws93pGGw6nEi3uFVh.JDp2OOU-1746637001-1.0.1.1-59mPPW0bDWyD6ngFx6m9LdHurrdN9Kaem.eFcKAwWp_H_4kabp2CzCRiEaW2QhRYYPWE6fZPgqWU8amQtZqpRZHtEjTyoL8t6UtyzyTCoAQ; + path=/; expires=Wed, 07-May-25 17:26:41 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=WOtfHIloFTPkupN1gC2z.3cExzObgfz.p4fXYpCK0aI-1746637001631-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '2084' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '2086' + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '1000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '999805' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 11ms + x-request-id: + - req_1ff0f0c079f8e7f5feb17fe762b5e40a + status: + code: 200 + message: OK +version: 1 From 516d45deaa93fffbf66c2e47570896d4b3cf811a Mon Sep 17 00:00:00 2001 From: Lorenze Jay <63378463+lorenzejay@users.noreply.github.com> Date: Wed, 7 May 2025 17:29:41 -0700 Subject: [PATCH 09/40] chore: bump version to 0.119.0 and update dependencies (#2778) This commit updates the project version to 0.119.0 and modifies the required version of the `crewai-tools` dependency to 0.44.0 across various configuration files. Additionally, the version number is reflected in the `__init__.py` file and the CLI templates for crew, flow, and tool projects. --- pyproject.toml | 4 ++-- src/crewai/__init__.py | 2 +- src/crewai/cli/templates/crew/pyproject.toml | 2 +- src/crewai/cli/templates/flow/pyproject.toml | 2 +- src/crewai/cli/templates/tool/pyproject.toml | 2 +- uv.lock | 10 +++++----- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 5cdc2bf6f..64deb4df1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "crewai" -version = "0.118.0" +version = "0.119.0" description = "Cutting-edge framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks." readme = "README.md" requires-python = ">=3.10,<3.13" @@ -45,7 +45,7 @@ Documentation = "https://docs.crewai.com" Repository = "https://github.com/crewAIInc/crewAI" [project.optional-dependencies] -tools = ["crewai-tools~=0.42.2"] +tools = ["crewai-tools~=0.44.0"] embeddings = [ "tiktoken~=0.7.0" ] diff --git a/src/crewai/__init__.py b/src/crewai/__init__.py index 50bd9e6b7..42ce55390 100644 --- a/src/crewai/__init__.py +++ b/src/crewai/__init__.py @@ -17,7 +17,7 @@ warnings.filterwarnings( category=UserWarning, module="pydantic.main", ) -__version__ = "0.118.0" +__version__ = "0.119.0" __all__ = [ "Agent", "Crew", diff --git a/src/crewai/cli/templates/crew/pyproject.toml b/src/crewai/cli/templates/crew/pyproject.toml index d47bd0c8c..d657f1c46 100644 --- a/src/crewai/cli/templates/crew/pyproject.toml +++ b/src/crewai/cli/templates/crew/pyproject.toml @@ -5,7 +5,7 @@ description = "{{name}} using crewAI" authors = [{ name = "Your Name", email = "you@example.com" }] requires-python = ">=3.10,<3.13" dependencies = [ - "crewai[tools]>=0.118.0,<1.0.0" + "crewai[tools]>=0.119.0,<1.0.0" ] [project.scripts] diff --git a/src/crewai/cli/templates/flow/pyproject.toml b/src/crewai/cli/templates/flow/pyproject.toml index 954247cc6..0a74a378c 100644 --- a/src/crewai/cli/templates/flow/pyproject.toml +++ b/src/crewai/cli/templates/flow/pyproject.toml @@ -5,7 +5,7 @@ description = "{{name}} using crewAI" authors = [{ name = "Your Name", email = "you@example.com" }] requires-python = ">=3.10,<3.13" dependencies = [ - "crewai[tools]>=0.118.0,<1.0.0", + "crewai[tools]>=0.119.0,<1.0.0", ] [project.scripts] diff --git a/src/crewai/cli/templates/tool/pyproject.toml b/src/crewai/cli/templates/tool/pyproject.toml index fb2585f83..72463bc48 100644 --- a/src/crewai/cli/templates/tool/pyproject.toml +++ b/src/crewai/cli/templates/tool/pyproject.toml @@ -5,7 +5,7 @@ description = "Power up your crews with {{folder_name}}" readme = "README.md" requires-python = ">=3.10,<3.13" dependencies = [ - "crewai[tools]>=0.118.0" + "crewai[tools]>=0.119.0" ] [tool.crewai] diff --git a/uv.lock b/uv.lock index f25215ec6..f3cb68ceb 100644 --- a/uv.lock +++ b/uv.lock @@ -738,7 +738,7 @@ wheels = [ [[package]] name = "crewai" -version = "0.118.0" +version = "0.119.0" source = { editable = "." } dependencies = [ { name = "appdirs" }, @@ -828,7 +828,7 @@ requires-dist = [ { name = "blinker", specifier = ">=1.9.0" }, { name = "chromadb", specifier = ">=0.5.23" }, { name = "click", specifier = ">=8.1.7" }, - { name = "crewai-tools", marker = "extra == 'tools'", specifier = "~=0.42.2" }, + { name = "crewai-tools", marker = "extra == 'tools'", specifier = "~=0.44.0" }, { name = "docling", marker = "extra == 'docling'", specifier = ">=2.12.0" }, { name = "fastembed", marker = "extra == 'fastembed'", specifier = ">=0.4.1" }, { name = "instructor", specifier = ">=1.3.3" }, @@ -879,7 +879,7 @@ dev = [ [[package]] name = "crewai-tools" -version = "0.42.2" +version = "0.44.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "chromadb" }, @@ -894,9 +894,9 @@ dependencies = [ { name = "pytube" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/17/34/9e63e2db53d8f5c30353f271a3240687a48e55204bbd176a057c0b7658c8/crewai_tools-0.42.2.tar.gz", hash = "sha256:69365ffb168cccfea970e09b308905aa5007cfec60024d731ffac1362a0153c0", size = 754967 } +sdist = { url = "https://files.pythonhosted.org/packages/b8/1f/2977dc72628c1225bf5788ae22a65e5a53df384d19b197646d2c4760684e/crewai_tools-0.44.0.tar.gz", hash = "sha256:44e0c26079396503a326efdd9ff34bf369d410cbf95c362cc523db65b18f3c3a", size = 892004 } wheels = [ - { url = "https://files.pythonhosted.org/packages/4e/43/0f70b95350084e5cb1e1d74e9acb9e18a89ba675b1d579c787c2662baba7/crewai_tools-0.42.2-py3-none-any.whl", hash = "sha256:13727fb68f0efefd21edeb281be3d66ff2f5a3b5029d4e6adef388b11fd5846a", size = 583933 }, + { url = "https://files.pythonhosted.org/packages/ba/80/b91aa837d06edbb472445ea3c92d7619518894fd3049d480e5fffbf0c21b/crewai_tools-0.44.0-py3-none-any.whl", hash = "sha256:119e2365fe66ee16e18a5e8e222994b19f76bafcc8c1bb87f61609c1e39b2463", size = 583462 }, ] [[package]] From d3fc2b4477c1b9a58e5bb5472dc6ddbec2f77739 Mon Sep 17 00:00:00 2001 From: Rip&Tear <84775494+theCyberTech@users.noreply.github.com> Date: Thu, 8 May 2025 21:00:41 +0800 Subject: [PATCH 10/40] Update security.md (#2779) update policy for better readability --- .github/security.md | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/.github/security.md b/.github/security.md index 5bc967228..4f5c32bfd 100644 --- a/.github/security.md +++ b/.github/security.md @@ -1,19 +1,27 @@ -CrewAI takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organization. -If you believe you have found a security vulnerability in any CrewAI product or service, please report it to us as described below. +## CrewAI Security Vulnerability Reporting Policy - ## Reporting a Vulnerability - Please do not report security vulnerabilities through public GitHub issues. - To report a vulnerability, please email us at security@crewai.com. - Please include the requested information listed below so that we can triage your report more quickly +CrewAI prioritizes the security of our software products, services, and GitHub repositories. To promptly address vulnerabilities, follow these steps for reporting security issues: - - Type of issue (e.g. SQL injection, cross-site scripting, etc.) - - Full paths of source file(s) related to the manifestation of the issue - - The location of the affected source code (tag/branch/commit or direct URL) - - Any special configuration required to reproduce the issue - - Step-by-step instructions to reproduce the issue (please include screenshots if needed) - - Proof-of-concept or exploit code (if possible) - - Impact of the issue, including how an attacker might exploit the issue +### Reporting Process +Do **not** report vulnerabilities via public GitHub issues. - Once we have received your report, we will respond to you at the email address you provide. If the issue is confirmed, we will release a patch as soon as possible depending on the complexity of the issue. +Email all vulnerability reports directly to: +**security@crewai.com** - At this time, we are not offering a bug bounty program. Any rewards will be at our discretion. \ No newline at end of file +### Required Information +To help us quickly validate and remediate the issue, your report must include: + +- **Vulnerability Type:** Clearly state the vulnerability type (e.g., SQL injection, XSS, privilege escalation). +- **Affected Source Code:** Provide full file paths and direct URLs (branch, tag, or commit). +- **Reproduction Steps:** Include detailed, step-by-step instructions. Screenshots are recommended. +- **Special Configuration:** Document any special settings or configurations required to reproduce. +- **Proof-of-Concept (PoC):** Provide exploit or PoC code (if available). +- **Impact Assessment:** Clearly explain the severity and potential exploitation scenarios. + +### Our Response +- We will acknowledge receipt of your report promptly via your provided email. +- Confirmed vulnerabilities will receive priority remediation based on severity. +- Patches will be released as swiftly as possible following verification. + +### Reward Notice +Currently, we do not offer a bug bounty program. Rewards, if issued, are discretionary. From 2c011631f9baf4f3c3b39210ad2522ac660d55c9 Mon Sep 17 00:00:00 2001 From: Mark McDonald Date: Fri, 9 May 2025 00:24:38 +0800 Subject: [PATCH 11/40] Clean up the Google setup section (#2785) The Gemini & Vertex sections were conflated and a little hard to distingush, so I have put them in separate sections. Also added the latest 2.5 and 2.0 flash-lite models, and added a note that Gemma models work too. Co-authored-by: Tony Kipkemboi --- docs/concepts/llms.mdx | 68 +++++++++++++++++++++++++++++++++--------- 1 file changed, 54 insertions(+), 14 deletions(-) diff --git a/docs/concepts/llms.mdx b/docs/concepts/llms.mdx index 643ebfe16..249a2c7e5 100644 --- a/docs/concepts/llms.mdx +++ b/docs/concepts/llms.mdx @@ -169,19 +169,55 @@ In this section, you'll find detailed examples that help you select, configure, ``` - - Set the following environment variables in your `.env` file: + + Set your API key in your `.env` file. If you need a key, or need to find an + existing key, check [AI Studio](https://aistudio.google.com/apikey). - ```toml Code - # Option 1: Gemini accessed with an API key. + ```toml .env # https://ai.google.dev/gemini-api/docs/api-key GEMINI_API_KEY= - - # Option 2: Vertex AI IAM credentials for Gemini, Anthropic, and Model Garden. - # https://cloud.google.com/vertex-ai/generative-ai/docs/overview ``` - Get credentials from your Google Cloud Console and save it to a JSON file with the following code: + Example usage in your CrewAI project: + ```python Code + from crewai import LLM + + llm = LLM( + model="gemini/gemini-2.0-flash", + temperature=0.7, + ) + ``` + + ### Gemini models + + Google offers a range of powerful models optimized for different use cases. + + | Model | Context Window | Best For | + |--------------------------------|----------------|-------------------------------------------------------------------| + | gemini-2.5-flash-preview-04-17 | 1M tokens | Adaptive thinking, cost efficiency | + | gemini-2.5-pro-preview-05-06 | 1M tokens | Enhanced thinking and reasoning, multimodal understanding, advanced coding, and more | + | gemini-2.0-flash | 1M tokens | Next generation features, speed, thinking, and realtime streaming | + | gemini-2.0-flash-lite | 1M tokens | Cost efficiency and low latency | + | gemini-1.5-flash | 1M tokens | Balanced multimodal model, good for most tasks | + | gemini-1.5-flash-8B | 1M tokens | Fastest, most cost-efficient, good for high-frequency tasks | + | gemini-1.5-pro | 2M tokens | Best performing, wide variety of reasoning tasks including logical reasoning, coding, and creative collaboration | + + The full list of models is available in the [Gemini model docs](https://ai.google.dev/gemini-api/docs/models). + + ### Gemma + + The Gemini API also allows you to use your API key to access [Gemma models](https://ai.google.dev/gemma/docs) hosted on Google infrastructure. + + | Model | Context Window | + |----------------|----------------| + | gemma-3-1b-it | 32k tokens | + | gemma-3-4b-it | 32k tokens | + | gemma-3-12b-it | 32k tokens | + | gemma-3-27b-it | 128k tokens | + + + + Get credentials from your Google Cloud Console and save it to a JSON file, then load it with the following code: ```python Code import json @@ -205,14 +241,18 @@ In this section, you'll find detailed examples that help you select, configure, vertex_credentials=vertex_credentials_json ) ``` + Google offers a range of powerful models optimized for different use cases: - | Model | Context Window | Best For | - |-----------------------|----------------|------------------------------------------------------------------| - | gemini-2.0-flash-exp | 1M tokens | Higher quality at faster speed, multimodal model, good for most tasks | - | gemini-1.5-flash | 1M tokens | Balanced multimodal model, good for most tasks | - | gemini-1.5-flash-8B | 1M tokens | Fastest, most cost-efficient, good for high-frequency tasks | - | gemini-1.5-pro | 2M tokens | Best performing, wide variety of reasoning tasks including logical reasoning, coding, and creative collaboration | + | Model | Context Window | Best For | + |--------------------------------|----------------|-------------------------------------------------------------------| + | gemini-2.5-flash-preview-04-17 | 1M tokens | Adaptive thinking, cost efficiency | + | gemini-2.5-pro-preview-05-06 | 1M tokens | Enhanced thinking and reasoning, multimodal understanding, advanced coding, and more | + | gemini-2.0-flash | 1M tokens | Next generation features, speed, thinking, and realtime streaming | + | gemini-2.0-flash-lite | 1M tokens | Cost efficiency and low latency | + | gemini-1.5-flash | 1M tokens | Balanced multimodal model, good for most tasks | + | gemini-1.5-flash-8B | 1M tokens | Fastest, most cost-efficient, good for high-frequency tasks | + | gemini-1.5-pro | 2M tokens | Best performing, wide variety of reasoning tasks including logical reasoning, coding, and creative collaboration | From 369e6d109c163b6e41d5b09b87a2ba47abdbb40c Mon Sep 17 00:00:00 2001 From: Mark McDonald Date: Fri, 9 May 2025 01:00:03 +0800 Subject: [PATCH 12/40] Adds link to AI Studio when entering Gemini key (#2780) I used ai.dev as the alternate URL as it takes up less space but if this is likely to confuse users we can use the long form. Co-authored-by: Tony Kipkemboi --- src/crewai/cli/constants.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/crewai/cli/constants.py b/src/crewai/cli/constants.py index 80183f8b0..306f1108b 100644 --- a/src/crewai/cli/constants.py +++ b/src/crewai/cli/constants.py @@ -13,7 +13,7 @@ ENV_VARS = { ], "gemini": [ { - "prompt": "Enter your GEMINI API key (press Enter to skip)", + "prompt": "Enter your GEMINI API key from https://ai.dev/apikey (press Enter to skip)", "key_name": "GEMINI_API_KEY", } ], From cb1a98cabf1d62f4a1eff44fad364854c866d346 Mon Sep 17 00:00:00 2001 From: Orce MARINKOVSKI Date: Thu, 8 May 2025 19:25:10 +0200 Subject: [PATCH 13/40] Update arize-phoenix-observability.mdx (#2595) missing code to kickoff the monitoring for the crew Co-authored-by: Lorenze Jay <63378463+lorenzejay@users.noreply.github.com> Co-authored-by: Tony Kipkemboi --- docs/how-to/arize-phoenix-observability.mdx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/how-to/arize-phoenix-observability.mdx b/docs/how-to/arize-phoenix-observability.mdx index 4a28e846c..39271e222 100644 --- a/docs/how-to/arize-phoenix-observability.mdx +++ b/docs/how-to/arize-phoenix-observability.mdx @@ -68,7 +68,13 @@ We'll create a CrewAI application where two agents collaborate to research and w ```python from crewai import Agent, Crew, Process, Task from crewai_tools import SerperDevTool +from openinference.instrumentation.crewai import CrewAIInstrumentor +from phoenix.otel import register +# setup monitoring for your crew +tracer_provider = register( + endpoint="http://localhost:6006/v1/traces") +CrewAIInstrumentor().instrument(skip_dep_check=True, tracer_provider=tracer_provider) search_tool = SerperDevTool() # Define your agents with roles and goals From 8663c7e1c26040a3fa8dfb06b23463f3efdaea2c Mon Sep 17 00:00:00 2001 From: Lucas Gomide Date: Mon, 12 May 2025 09:10:31 -0300 Subject: [PATCH 14/40] Enable ALL Ruff rules set by default (#2775) * style: use Ruff default linter rules * ci: check linter files over changed ones --- .github/workflows/linter.yml | 25 +++++++++++++++++++++---- .ruff.toml | 5 ----- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index f9853cf7c..3e1571830 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -5,12 +5,29 @@ on: [pull_request] jobs: lint: runs-on: ubuntu-latest + env: + TARGET_BRANCH: ${{ github.event.pull_request.base.ref }} steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 - - name: Install Requirements + - name: Fetch Target Branch + run: git fetch origin $TARGET_BRANCH --depth=1 + + - name: Install Ruff + run: pip install ruff + + - name: Get Changed Python Files + id: changed-files run: | - pip install ruff + merge_base=$(git merge-base origin/"$TARGET_BRANCH" HEAD) + changed_files=$(git diff --name-only --diff-filter=ACMRTUB "$merge_base" | grep '\.py$' || true) + echo "files<> $GITHUB_OUTPUT + echo "$changed_files" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT - - name: Run Ruff Linter - run: ruff check + - name: Run Ruff on Changed Files + if: ${{ steps.changed-files.outputs.files != '' }} + run: | + echo "${{ steps.changed-files.outputs.files }}" | tr " " "\n" | xargs -I{} ruff check "{}" diff --git a/.ruff.toml b/.ruff.toml index acc241bd4..4f8811cef 100644 --- a/.ruff.toml +++ b/.ruff.toml @@ -2,8 +2,3 @@ exclude = [ "templates", "__init__.py", ] - -[lint] -select = [ - "I", # isort rules -] From 4e496d7a202802917ad4f47eb9efdd6a41f06e18 Mon Sep 17 00:00:00 2001 From: Vidit Ostwal <110953813+Vidit-Ostwal@users.noreply.github.com> Date: Mon, 12 May 2025 17:57:18 +0530 Subject: [PATCH 15/40] Added link to github issue (#2810) Co-authored-by: Lucas Gomide --- docs/concepts/knowledge.mdx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/concepts/knowledge.mdx b/docs/concepts/knowledge.mdx index 5e302cf1c..b4c7627d3 100644 --- a/docs/concepts/knowledge.mdx +++ b/docs/concepts/knowledge.mdx @@ -700,4 +700,11 @@ recent_news = SpaceNewsKnowledgeSource( - Configure appropriate embedding models - Consider using local embedding providers for faster processing + + + - With the typical file structure provided by CrewAI, knowledge sources are embedded every time the kickoff is triggered. + - If the knowledge sources are large, this leads to inefficiency and increased latency, as the same data is embedded each time. + - To resolve this, directly initialize the knowledge parameter instead of the knowledge_sources parameter. + - Link to the issue to get complete idea [Github Issue](https://github.com/crewAIInc/crewAI/issues/2755) + From f700e014c9e6494ad693a6e48a5da7594efc88ad Mon Sep 17 00:00:00 2001 From: Lucas Gomide Date: Mon, 12 May 2025 16:05:14 -0300 Subject: [PATCH 16/40] fix: address race condition in FilteredStream by using context managers (#2818) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit During the sys.stdout = FilteredStream(old_stdout) assignment, if any code (including logging, print, or internal library output) writes to sys.stdout immediately, and that write happens before __init__ completes, the write() method is called on a not-fully-initialized object.. hence _lock doesn’t exist yet. --- src/crewai/llm.py | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/crewai/llm.py b/src/crewai/llm.py index c8c456297..440cbf903 100644 --- a/src/crewai/llm.py +++ b/src/crewai/llm.py @@ -5,8 +5,7 @@ import sys import threading import warnings from collections import defaultdict -from contextlib import contextmanager -from types import SimpleNamespace +from contextlib import contextmanager, redirect_stderr, redirect_stdout from typing import ( Any, DefaultDict, @@ -31,7 +30,6 @@ from crewai.utilities.events.llm_events import ( LLMCallType, LLMStreamChunkEvent, ) -from crewai.utilities.events.tool_usage_events import ToolExecutionErrorEvent with warnings.catch_warnings(): warnings.simplefilter("ignore", UserWarning) @@ -45,6 +43,9 @@ with warnings.catch_warnings(): from litellm.utils import supports_response_schema +import io +from typing import TextIO + from crewai.llms.base_llm import BaseLLM from crewai.utilities.events import crewai_event_bus from crewai.utilities.exceptions.context_window_exceeding_exception import ( @@ -54,12 +55,17 @@ from crewai.utilities.exceptions.context_window_exceeding_exception import ( load_dotenv() -class FilteredStream: - def __init__(self, original_stream): +class FilteredStream(io.TextIOBase): + _lock = None + + def __init__(self, original_stream: TextIO): self._original_stream = original_stream self._lock = threading.Lock() - def write(self, s) -> int: + def write(self, s: str) -> int: + if not self._lock: + self._lock = threading.Lock() + with self._lock: # Filter out extraneous messages from LiteLLM if ( @@ -214,15 +220,11 @@ def suppress_warnings(): ) # Redirect stdout and stderr - old_stdout = sys.stdout - old_stderr = sys.stderr - sys.stdout = FilteredStream(old_stdout) - sys.stderr = FilteredStream(old_stderr) - try: + with ( + redirect_stdout(FilteredStream(sys.stdout)), + redirect_stderr(FilteredStream(sys.stderr)), + ): yield - finally: - sys.stdout = old_stdout - sys.stderr = old_stderr class Delta(TypedDict): From d55e596800470a722d33a7792d9bd21ff8d04202 Mon Sep 17 00:00:00 2001 From: Lucas Gomide Date: Mon, 12 May 2025 17:08:57 -0300 Subject: [PATCH 17/40] feat: support to load an Agent from a repository (#2816) * feat: support to load an Agent from a repository * test: fix get_auth_token test --- src/crewai/agent.py | 44 ++++++++++++ src/crewai/cli/authentication/token.py | 2 +- src/crewai/cli/plus_api.py | 4 ++ src/crewai/utilities/errors.py | 7 ++ tests/agent_test.py | 92 ++++++++++++++++++++++++-- 5 files changed, 143 insertions(+), 6 deletions(-) diff --git a/src/crewai/agent.py b/src/crewai/agent.py index dc637967f..9a16b7047 100644 --- a/src/crewai/agent.py +++ b/src/crewai/agent.py @@ -25,6 +25,7 @@ from crewai.utilities.agent_utils import ( ) from crewai.utilities.constants import TRAINED_AGENTS_DATA_FILE, TRAINING_DATA_FILE from crewai.utilities.converter import generate_model_description +from crewai.utilities.errors import AgentRepositoryError from crewai.utilities.events.agent_events import ( AgentExecutionCompletedEvent, AgentExecutionErrorEvent, @@ -134,6 +135,49 @@ class Agent(BaseAgent): default=None, description="Knowledge search query for the agent dynamically generated by the agent.", ) + from_repository: Optional[str] = Field( + default=None, + description="The Agent's role to be used from your repository.", + ) + + @model_validator(mode="before") + def validate_from_repository(cls, v): + if v is not None and (from_repository := v.get("from_repository")): + return cls._load_agent_from_repository(from_repository) | v + return v + + @classmethod + def _load_agent_from_repository(cls, from_repository: str) -> Dict[str, Any]: + attributes: Dict[str, Any] = {} + if from_repository: + import importlib + + from crewai.cli.authentication.token import get_auth_token + from crewai.cli.plus_api import PlusAPI + + client = PlusAPI(api_key=get_auth_token()) + response = client.get_agent(from_repository) + if response.status_code != 200: + raise AgentRepositoryError( + f"Agent {from_repository} could not be loaded: {response.text}" + ) + + agent = response.json() + for key, value in agent.items(): + if key == "tools": + attributes[key] = [] + for tool_name in value: + try: + module = importlib.import_module("crewai_tools") + tool_class = getattr(module, tool_name) + attributes[key].append(tool_class()) + except Exception as e: + raise AgentRepositoryError( + f"Tool {tool_name} could not be loaded: {e}" + ) from e + else: + attributes[key] = value + return attributes @model_validator(mode="after") def post_init_setup(self): diff --git a/src/crewai/cli/authentication/token.py b/src/crewai/cli/authentication/token.py index 30a33b4ba..46ff75e89 100644 --- a/src/crewai/cli/authentication/token.py +++ b/src/crewai/cli/authentication/token.py @@ -5,5 +5,5 @@ def get_auth_token() -> str: """Get the authentication token.""" access_token = TokenManager().get_token() if not access_token: - raise Exception() + raise Exception("No token found, make sure you are logged in") return access_token diff --git a/src/crewai/cli/plus_api.py b/src/crewai/cli/plus_api.py index 23032ca8f..93e5750c8 100644 --- a/src/crewai/cli/plus_api.py +++ b/src/crewai/cli/plus_api.py @@ -14,6 +14,7 @@ class PlusAPI: TOOLS_RESOURCE = "/crewai_plus/api/v1/tools" CREWS_RESOURCE = "/crewai_plus/api/v1/crews" + AGENTS_RESOURCE = "/crewai_plus/api/v1/agents" def __init__(self, api_key: str) -> None: self.api_key = api_key @@ -37,6 +38,9 @@ class PlusAPI: def get_tool(self, handle: str): return self._make_request("GET", f"{self.TOOLS_RESOURCE}/{handle}") + def get_agent(self, handle: str): + return self._make_request("GET", f"{self.AGENTS_RESOURCE}/{handle}") + def publish_tool( self, handle: str, diff --git a/src/crewai/utilities/errors.py b/src/crewai/utilities/errors.py index f673c0600..16c59321e 100644 --- a/src/crewai/utilities/errors.py +++ b/src/crewai/utilities/errors.py @@ -1,4 +1,5 @@ """Error message definitions for CrewAI database operations.""" + from typing import Optional @@ -37,3 +38,9 @@ class DatabaseError: The formatted error message """ return template.format(str(error)) + + +class AgentRepositoryError(Exception): + """Exception raised when an agent repository is not found.""" + + ... diff --git a/tests/agent_test.py b/tests/agent_test.py index faad4ca84..8cd2c075c 100644 --- a/tests/agent_test.py +++ b/tests/agent_test.py @@ -2,7 +2,7 @@ import os from unittest import mock -from unittest.mock import patch +from unittest.mock import MagicMock, patch import pytest @@ -18,6 +18,7 @@ from crewai.tools import tool from crewai.tools.tool_calling import InstructorToolCalling from crewai.tools.tool_usage import ToolUsage from crewai.utilities import RPMController +from crewai.utilities.errors import AgentRepositoryError from crewai.utilities.events import crewai_event_bus from crewai.utilities.events.tool_usage_events import ToolUsageFinishedEvent @@ -308,9 +309,7 @@ def test_cache_hitting(): def handle_tool_end(source, event): received_events.append(event) - with ( - patch.object(CacheHandler, "read") as read, - ): + with (patch.object(CacheHandler, "read") as read,): read.return_value = "0" task = Task( description="What is 2 times 6? Ignore correctness and just return the result of the multiplication tool, you must use the tool.", @@ -1040,7 +1039,7 @@ def test_agent_human_input(): CrewAgentExecutor, "_invoke_loop", return_value=AgentFinish(output="Hello", thought="", text=""), - ) as mock_invoke_loop, + ), ): # Execute the task output = agent.execute_task(task) @@ -2025,3 +2024,86 @@ def test_get_knowledge_search_query(): }, ] ) + + +@pytest.fixture +def mock_get_auth_token(): + with patch( + "crewai.cli.authentication.token.get_auth_token", return_value="test_token" + ): + yield + + +@patch("crewai.cli.plus_api.PlusAPI.get_agent") +def test_agent_from_repository(mock_get_agent, mock_get_auth_token): + from crewai_tools import SerperDevTool + + mock_get_response = MagicMock() + mock_get_response.status_code = 200 + mock_get_response.json.return_value = { + "role": "test role", + "goal": "test goal", + "backstory": "test backstory", + "tools": ["SerperDevTool"], + } + mock_get_agent.return_value = mock_get_response + agent = Agent(from_repository="test_agent") + + assert agent.role == "test role" + assert agent.goal == "test goal" + assert agent.backstory == "test backstory" + assert len(agent.tools) == 1 + assert isinstance(agent.tools[0], SerperDevTool) + + +@patch("crewai.cli.plus_api.PlusAPI.get_agent") +def test_agent_from_repository_override_attributes(mock_get_agent, mock_get_auth_token): + from crewai_tools import SerperDevTool + + mock_get_response = MagicMock() + mock_get_response.status_code = 200 + mock_get_response.json.return_value = { + "role": "test role", + "goal": "test goal", + "backstory": "test backstory", + "tools": ["SerperDevTool"], + } + mock_get_agent.return_value = mock_get_response + agent = Agent(from_repository="test_agent", role="Custom Role") + + assert agent.role == "Custom Role" + assert agent.goal == "test goal" + assert agent.backstory == "test backstory" + assert len(agent.tools) == 1 + assert isinstance(agent.tools[0], SerperDevTool) + + +@patch("crewai.cli.plus_api.PlusAPI.get_agent") +def test_agent_from_repository_with_invalid_tools(mock_get_agent, mock_get_auth_token): + mock_get_response = MagicMock() + mock_get_response.status_code = 200 + mock_get_response.json.return_value = { + "role": "test role", + "goal": "test goal", + "backstory": "test backstory", + "tools": ["DoesNotExist"], + } + mock_get_agent.return_value = mock_get_response + with pytest.raises( + AgentRepositoryError, + match="Tool DoesNotExist could not be loaded: module 'crewai_tools' has no attribute 'DoesNotExist'", + ): + Agent(from_repository="test_agent") + + +@patch("crewai.cli.plus_api.PlusAPI.get_agent") +def test_agent_from_repository_agent_not_found(mock_get_agent, mock_get_auth_token): + mock_get_response = MagicMock() + mock_get_response.status_code = 404 + mock_get_response.text = "Agent not found" + mock_get_agent.return_value = mock_get_response + with pytest.raises( + AgentRepositoryError, + match="Agent NOT_FOUND could not be loaded: Agent not found", + ): + Agent(from_repository="NOT_FOUND") From fed397f74590a3f1c3be3bfca96e4967fe38a3e1 Mon Sep 17 00:00:00 2001 From: Lucas Gomide Date: Tue, 13 May 2025 10:51:21 -0300 Subject: [PATCH 18/40] refactor: move logic to fetch agent to utilities file (#2822) --- src/crewai/agent.py | 37 ++--------------------------- src/crewai/utilities/agent_utils.py | 34 ++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 35 deletions(-) diff --git a/src/crewai/agent.py b/src/crewai/agent.py index 9a16b7047..77fffc7e1 100644 --- a/src/crewai/agent.py +++ b/src/crewai/agent.py @@ -20,12 +20,12 @@ from crewai.tools.agent_tools.agent_tools import AgentTools from crewai.utilities import Converter, Prompts from crewai.utilities.agent_utils import ( get_tool_names, + load_agent_from_repository, parse_tools, render_text_description_and_args, ) from crewai.utilities.constants import TRAINED_AGENTS_DATA_FILE, TRAINING_DATA_FILE from crewai.utilities.converter import generate_model_description -from crewai.utilities.errors import AgentRepositoryError from crewai.utilities.events.agent_events import ( AgentExecutionCompletedEvent, AgentExecutionErrorEvent, @@ -143,42 +143,9 @@ class Agent(BaseAgent): @model_validator(mode="before") def validate_from_repository(cls, v): if v is not None and (from_repository := v.get("from_repository")): - return cls._load_agent_from_repository(from_repository) | v + return load_agent_from_repository(from_repository) | v return v - @classmethod - def _load_agent_from_repository(cls, from_repository: str) -> Dict[str, Any]: - attributes: Dict[str, Any] = {} - if from_repository: - import importlib - - from crewai.cli.authentication.token import get_auth_token - from crewai.cli.plus_api import PlusAPI - - client = PlusAPI(api_key=get_auth_token()) - response = client.get_agent(from_repository) - if response.status_code != 200: - raise AgentRepositoryError( - f"Agent {from_repository} could not be loaded: {response.text}" - ) - - agent = response.json() - for key, value in agent.items(): - if key == "tools": - attributes[key] = [] - for tool_name in value: - try: - module = importlib.import_module("crewai_tools") - tool_class = getattr(module, tool_name) - attributes[key].append(tool_class()) - except Exception as e: - raise AgentRepositoryError( - f"Tool {tool_name} could not be loaded: {e}" - ) from e - else: - attributes[key] = value - return attributes - @model_validator(mode="after") def post_init_setup(self): self.agent_ops_agent_name = self.role diff --git a/src/crewai/utilities/agent_utils.py b/src/crewai/utilities/agent_utils.py index 8af665140..907020520 100644 --- a/src/crewai/utilities/agent_utils.py +++ b/src/crewai/utilities/agent_utils.py @@ -16,6 +16,7 @@ from crewai.tools.base_tool import BaseTool from crewai.tools.structured_tool import CrewStructuredTool from crewai.tools.tool_types import ToolResult from crewai.utilities import I18N, Printer +from crewai.utilities.errors import AgentRepositoryError from crewai.utilities.exceptions.context_window_exceeding_exception import ( LLMContextLengthExceededException, ) @@ -428,3 +429,36 @@ def show_agent_logs( printer.print( content=f"\033[95m## Final Answer:\033[00m \033[92m\n{formatted_answer.output}\033[00m\n\n" ) + + +def load_agent_from_repository(from_repository: str) -> Dict[str, Any]: + attributes: Dict[str, Any] = {} + if from_repository: + import importlib + + from crewai.cli.authentication.token import get_auth_token + from crewai.cli.plus_api import PlusAPI + + client = PlusAPI(api_key=get_auth_token()) + response = client.get_agent(from_repository) + if response.status_code != 200: + raise AgentRepositoryError( + f"Agent {from_repository} could not be loaded: {response.text}" + ) + + agent = response.json() + for key, value in agent.items(): + if key == "tools": + attributes[key] = [] + for tool_name in value: + try: + module = importlib.import_module("crewai_tools") + tool_class = getattr(module, tool_name) + attributes[key].append(tool_class()) + except Exception as e: + raise AgentRepositoryError( + f"Tool {tool_name} could not be loaded: {e}" + ) from e + else: + attributes[key] = value + return attributes From c403497cf44b7e08712502b289be71eaf9a050b7 Mon Sep 17 00:00:00 2001 From: Lucas Gomide Date: Wed, 14 May 2025 07:36:32 -0300 Subject: [PATCH 19/40] feat: support to set an empty context to the Task (#2793) * feat: support to set an empty context to the Task * sytle: fix linter issues --- src/crewai/crew.py | 19 ++++++++++-------- src/crewai/task.py | 6 +++--- src/crewai/telemetry/telemetry.py | 28 +++++++++++++-------------- src/crewai/utilities/constants.py | 11 +++++++++++ src/crewai/utilities/formatter.py | 9 +++++++-- tests/crew_test.py | 32 +++++++++++++++++++++++++------ 6 files changed, 72 insertions(+), 33 deletions(-) diff --git a/src/crewai/crew.py b/src/crewai/crew.py index 102f22881..a0158f646 100644 --- a/src/crewai/crew.py +++ b/src/crewai/crew.py @@ -52,7 +52,7 @@ from crewai.tools.agent_tools.agent_tools import AgentTools from crewai.tools.base_tool import BaseTool, Tool from crewai.types.usage_metrics import UsageMetrics from crewai.utilities import I18N, FileHandler, Logger, RPMController -from crewai.utilities.constants import TRAINING_DATA_FILE +from crewai.utilities.constants import NOT_SPECIFIED, TRAINING_DATA_FILE from crewai.utilities.evaluators.crew_evaluator_handler import CrewEvaluator from crewai.utilities.evaluators.task_evaluator import TaskEvaluator from crewai.utilities.events.crew_events import ( @@ -478,7 +478,7 @@ class Crew(FlowTrackable, BaseModel): separated by a synchronous task. """ for i, task in enumerate(self.tasks): - if task.async_execution and task.context: + if task.async_execution and isinstance(task.context, list): for context_task in task.context: if context_task.async_execution: for j in range(i - 1, -1, -1): @@ -496,7 +496,7 @@ class Crew(FlowTrackable, BaseModel): task_indices = {id(task): i for i, task in enumerate(self.tasks)} for task in self.tasks: - if task.context: + if isinstance(task.context, list): for context_task in task.context: if id(context_task) not in task_indices: continue # Skip context tasks not in the main tasks list @@ -1034,11 +1034,14 @@ class Crew(FlowTrackable, BaseModel): ) return cast(List[BaseTool], tools) - def _get_context(self, task: Task, task_outputs: List[TaskOutput]): + def _get_context(self, task: Task, task_outputs: List[TaskOutput]) -> str: + if not task.context: + return "" + context = ( - aggregate_raw_outputs_from_tasks(task.context) - if task.context - else aggregate_raw_outputs_from_task_outputs(task_outputs) + aggregate_raw_outputs_from_task_outputs(task_outputs) + if task.context is NOT_SPECIFIED + else aggregate_raw_outputs_from_tasks(task.context) ) return context @@ -1226,7 +1229,7 @@ class Crew(FlowTrackable, BaseModel): task_mapping[task.key] = cloned_task for cloned_task, original_task in zip(cloned_tasks, self.tasks): - if original_task.context: + if isinstance(original_task.context, list): cloned_context = [ task_mapping[context_task.key] for context_task in original_task.context diff --git a/src/crewai/task.py b/src/crewai/task.py index e4a25f438..754fab491 100644 --- a/src/crewai/task.py +++ b/src/crewai/task.py @@ -2,7 +2,6 @@ import datetime import inspect import json import logging -import re import threading import uuid from concurrent.futures import Future @@ -41,6 +40,7 @@ from crewai.tasks.output_format import OutputFormat from crewai.tasks.task_output import TaskOutput from crewai.tools.base_tool import BaseTool from crewai.utilities.config import process_config +from crewai.utilities.constants import NOT_SPECIFIED from crewai.utilities.converter import Converter, convert_to_model from crewai.utilities.events import ( TaskCompletedEvent, @@ -97,7 +97,7 @@ class Task(BaseModel): ) context: Optional[List["Task"]] = Field( description="Other tasks that will have their output used as context for this task.", - default=None, + default=NOT_SPECIFIED, ) async_execution: Optional[bool] = Field( description="Whether the task should be executed asynchronously or not.", @@ -643,7 +643,7 @@ class Task(BaseModel): cloned_context = ( [task_mapping[context_task.key] for context_task in self.context] - if self.context + if isinstance(self.context, list) else None ) diff --git a/src/crewai/telemetry/telemetry.py b/src/crewai/telemetry/telemetry.py index 142cafb2a..e22d757cd 100644 --- a/src/crewai/telemetry/telemetry.py +++ b/src/crewai/telemetry/telemetry.py @@ -10,6 +10,18 @@ from contextlib import contextmanager from importlib.metadata import version from typing import TYPE_CHECKING, Any, Optional +from opentelemetry import trace +from opentelemetry.exporter.otlp.proto.http.trace_exporter import ( + OTLPSpanExporter, +) +from opentelemetry.sdk.resources import SERVICE_NAME, Resource +from opentelemetry.sdk.trace import TracerProvider +from opentelemetry.sdk.trace.export import ( + BatchSpanProcessor, + SpanExportResult, +) +from opentelemetry.trace import Span, Status, StatusCode + from crewai.telemetry.constants import ( CREWAI_TELEMETRY_BASE_URL, CREWAI_TELEMETRY_SERVICE_NAME, @@ -25,18 +37,6 @@ def suppress_warnings(): yield -from opentelemetry import trace # noqa: E402 -from opentelemetry.exporter.otlp.proto.http.trace_exporter import ( - OTLPSpanExporter, # noqa: E402 -) -from opentelemetry.sdk.resources import SERVICE_NAME, Resource # noqa: E402 -from opentelemetry.sdk.trace import TracerProvider # noqa: E402 -from opentelemetry.sdk.trace.export import ( # noqa: E402 - BatchSpanProcessor, - SpanExportResult, -) -from opentelemetry.trace import Span, Status, StatusCode # noqa: E402 - if TYPE_CHECKING: from crewai.crew import Crew from crewai.task import Task @@ -232,7 +232,7 @@ class Telemetry: "agent_key": task.agent.key if task.agent else None, "context": ( [task.description for task in task.context] - if task.context + if isinstance(task.context, list) else None ), "tools_names": [ @@ -748,7 +748,7 @@ class Telemetry: "agent_key": task.agent.key if task.agent else None, "context": ( [task.description for task in task.context] - if task.context + if isinstance(task.context, list) else None ), "tools_names": [ diff --git a/src/crewai/utilities/constants.py b/src/crewai/utilities/constants.py index 9ff10f1d4..4dbace270 100644 --- a/src/crewai/utilities/constants.py +++ b/src/crewai/utilities/constants.py @@ -5,3 +5,14 @@ KNOWLEDGE_DIRECTORY = "knowledge" MAX_LLM_RETRY = 3 MAX_FILE_NAME_LENGTH = 255 EMITTER_COLOR = "bold_blue" + + +class _NotSpecified: + def __repr__(self): + return "NOT_SPECIFIED" + + +# Sentinel value used to detect when no value has been explicitly provided. +# Unlike `None`, which might be a valid value from the user, `NOT_SPECIFIED` allows +# us to distinguish between "not passed at all" and "explicitly passed None" or "[]". +NOT_SPECIFIED = _NotSpecified() diff --git a/src/crewai/utilities/formatter.py b/src/crewai/utilities/formatter.py index 19b2a74f9..fd2611472 100644 --- a/src/crewai/utilities/formatter.py +++ b/src/crewai/utilities/formatter.py @@ -1,6 +1,6 @@ -import re from typing import TYPE_CHECKING, List + if TYPE_CHECKING: from crewai.task import Task from crewai.tasks.task_output import TaskOutput @@ -17,6 +17,11 @@ def aggregate_raw_outputs_from_task_outputs(task_outputs: List["TaskOutput"]) -> def aggregate_raw_outputs_from_tasks(tasks: List["Task"]) -> str: """Generate string context from the tasks.""" - task_outputs = [task.output for task in tasks if task.output is not None] + + task_outputs = ( + [task.output for task in tasks if task.output is not None] + if isinstance(tasks, list) + else [] + ) return aggregate_raw_outputs_from_task_outputs(task_outputs) diff --git a/tests/crew_test.py b/tests/crew_test.py index a4e4e61df..7c242c825 100644 --- a/tests/crew_test.py +++ b/tests/crew_test.py @@ -2,22 +2,18 @@ import hashlib import json -import os -import tempfile from concurrent.futures import Future from unittest import mock -from unittest.mock import MagicMock, patch +from unittest.mock import ANY, MagicMock, patch import pydantic_core import pytest from crewai.agent import Agent from crewai.agents import CacheHandler -from crewai.agents.cache import CacheHandler -from crewai.agents.crew_agent_executor import CrewAgentExecutor from crewai.crew import Crew from crewai.crews.crew_output import CrewOutput -from crewai.flow import Flow, listen, start +from crewai.flow import Flow, start from crewai.knowledge.source.string_knowledge_source import StringKnowledgeSource from crewai.llm import LLM from crewai.memory.contextual.contextual_memory import ContextualMemory @@ -3141,6 +3137,30 @@ def test_replay_with_context(): assert crew.tasks[1].context[0].output.raw == "context raw output" +def test_replay_with_context_set_to_nullable(): + agent = Agent(role="test_agent", backstory="Test Description", goal="Test Goal") + task1 = Task( + description="Context Task", expected_output="Say Task Output", agent=agent + ) + task2 = Task( + description="Test Task", expected_output="Say Hi", agent=agent, context=[] + ) + task3 = Task( + description="Test Task 3", expected_output="Say Hi", agent=agent, context=None + ) + + crew = Crew(agents=[agent], tasks=[task1, task2, task3], process=Process.sequential) + with patch("crewai.task.Task.execute_sync") as mock_execute_task: + mock_execute_task.return_value = TaskOutput( + description="Test Task Output", + raw="test raw output", + agent="test_agent", + ) + crew.kickoff() + + mock_execute_task.assert_called_with(agent=ANY, context="", tools=ANY) + + @pytest.mark.vcr(filter_headers=["authorization"]) def test_replay_with_invalid_task_id(): agent = Agent(role="test_agent", backstory="Test Description", goal="Test Goal") From 7c4889f5c94ed096f431c7347df5a3855b9f7200 Mon Sep 17 00:00:00 2001 From: Lucas Gomide Date: Wed, 14 May 2025 11:37:48 -0300 Subject: [PATCH 20/40] Enhance Agent repository feedback & fix Tool auto-import (#2829) * fix: fix tool auto-import from agent repository * feat: enhance error message when agent is not found --- src/crewai/utilities/agent_utils.py | 11 ++++++++--- tests/agent_test.py | 23 ++++++++++++++++++----- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/crewai/utilities/agent_utils.py b/src/crewai/utilities/agent_utils.py index 907020520..e580c26ce 100644 --- a/src/crewai/utilities/agent_utils.py +++ b/src/crewai/utilities/agent_utils.py @@ -441,6 +441,11 @@ def load_agent_from_repository(from_repository: str) -> Dict[str, Any]: client = PlusAPI(api_key=get_auth_token()) response = client.get_agent(from_repository) + if response.status_code == 404: + raise AgentRepositoryError( + f"Agent {from_repository} does not exist, make sure the name is correct or the agent is available on your organization" + ) + if response.status_code != 200: raise AgentRepositoryError( f"Agent {from_repository} could not be loaded: {response.text}" @@ -450,14 +455,14 @@ def load_agent_from_repository(from_repository: str) -> Dict[str, Any]: for key, value in agent.items(): if key == "tools": attributes[key] = [] - for tool_name in value: + for tool in value: try: module = importlib.import_module("crewai_tools") - tool_class = getattr(module, tool_name) + tool_class = getattr(module, tool["name"]) attributes[key].append(tool_class()) except Exception as e: raise AgentRepositoryError( - f"Tool {tool_name} could not be loaded: {e}" + f"Tool {tool['name']} could not be loaded: {e}" ) from e else: attributes[key] = value diff --git a/tests/agent_test.py b/tests/agent_test.py index 8cd2c075c..800860c9f 100644 --- a/tests/agent_test.py +++ b/tests/agent_test.py @@ -2044,7 +2044,7 @@ def test_agent_from_repository(mock_get_agent, mock_get_auth_token): "role": "test role", "goal": "test goal", "backstory": "test backstory", - "tools": ["SerperDevTool"], + "tools": [{"name": "SerperDevTool"}], } mock_get_agent.return_value = mock_get_response agent = Agent(from_repository="test_agent") @@ -2066,7 +2066,7 @@ def test_agent_from_repository_override_attributes(mock_get_agent, mock_get_auth "role": "test role", "goal": "test goal", "backstory": "test backstory", - "tools": ["SerperDevTool"], + "tools": [{"name": "SerperDevTool"}], } mock_get_agent.return_value = mock_get_response agent = Agent(from_repository="test_agent", role="Custom Role") @@ -2086,7 +2086,7 @@ def test_agent_from_repository_with_invalid_tools(mock_get_agent, mock_get_auth_ "role": "test role", "goal": "test goal", "backstory": "test backstory", - "tools": ["DoesNotExist"], + "tools": [{"name": "DoesNotExist"}], } mock_get_agent.return_value = mock_get_response with pytest.raises( @@ -2096,6 +2096,19 @@ def test_agent_from_repository_with_invalid_tools(mock_get_agent, mock_get_auth_ Agent(from_repository="test_agent") +@patch("crewai.cli.plus_api.PlusAPI.get_agent") +def test_agent_from_repository_internal_error(mock_get_agent, mock_get_auth_token): + mock_get_response = MagicMock() + mock_get_response.status_code = 500 + mock_get_response.text = "Internal server error" + mock_get_agent.return_value = mock_get_response + with pytest.raises( + AgentRepositoryError, + match="Agent test_agent could not be loaded: Internal server error", + ): + Agent(from_repository="test_agent") + + @patch("crewai.cli.plus_api.PlusAPI.get_agent") def test_agent_from_repository_agent_not_found(mock_get_agent, mock_get_auth_token): mock_get_response = MagicMock() @@ -2104,6 +2117,6 @@ def test_agent_from_repository_agent_not_found(mock_get_agent, mock_get_auth_tok mock_get_agent.return_value = mock_get_response with pytest.raises( AgentRepositoryError, - match="Agent NOT_FOUND could not be loaded: Agent not found", + match="Agent test_agent does not exist, make sure the name is correct or the agent is available on your organization", ): - Agent(from_repository="NOT_FOUND") + Agent(from_repository="test_agent") From e1541b26192e42b51aadd4a0ab4691385c8d2b65 Mon Sep 17 00:00:00 2001 From: Kunal Lunia <129300905+LuniaKunal@users.noreply.github.com> Date: Wed, 14 May 2025 20:48:50 +0530 Subject: [PATCH 21/40] Updated flow doc (#2828) Co-authored-by: Lucas Gomide --- docs/concepts/flows.mdx | 34 ++++++++++++++++++++++++++++++---- docs/images/crewai-flow-1.png | Bin 0 -> 44820 bytes docs/images/crewai-flow-2.png | Bin 0 -> 43950 bytes docs/images/crewai-flow-3.png | Bin 0 -> 46066 bytes docs/images/crewai-flow-4.png | Bin 0 -> 58590 bytes docs/images/crewai-flow-5.png | Bin 0 -> 48848 bytes docs/images/crewai-flow-6.png | Bin 0 -> 58488 bytes docs/images/crewai-flow-7.png | Bin 0 -> 61270 bytes docs/images/crewai-flow-8.png | Bin 0 -> 48620 bytes 9 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 docs/images/crewai-flow-1.png create mode 100644 docs/images/crewai-flow-2.png create mode 100644 docs/images/crewai-flow-3.png create mode 100644 docs/images/crewai-flow-4.png create mode 100644 docs/images/crewai-flow-5.png create mode 100644 docs/images/crewai-flow-6.png create mode 100644 docs/images/crewai-flow-7.png create mode 100644 docs/images/crewai-flow-8.png diff --git a/docs/concepts/flows.mdx b/docs/concepts/flows.mdx index b7793c60c..80a0abc13 100644 --- a/docs/concepts/flows.mdx +++ b/docs/concepts/flows.mdx @@ -75,11 +75,12 @@ class ExampleFlow(Flow): flow = ExampleFlow() +flow.plot() result = flow.kickoff() print(f"Generated fun fact: {result}") ``` - +![Flow Visual image](/images/crewai-flow-1.png) In the above example, we have created a simple Flow that generates a random city using OpenAI and then generates a fun fact about that city. The Flow consists of two tasks: `generate_city` and `generate_fun_fact`. The `generate_city` task is the starting point of the Flow, and the `generate_fun_fact` task listens for the output of the `generate_city` task. Each Flow instance automatically receives a unique identifier (UUID) in its state, which helps track and manage flow executions. The state can also store additional data (like the generated city and fun fact) that persists throughout the flow's execution. @@ -146,6 +147,7 @@ class OutputExampleFlow(Flow): flow = OutputExampleFlow() +flow.plot("my_flow_plot") final_output = flow.kickoff() print("---- Final Output ----") @@ -158,9 +160,10 @@ Second method received: Output from first_method ``` +![Flow Visual image](/images/crewai-flow-2.png) In this example, the `second_method` is the last method to complete, so its output will be the final output of the Flow. -The `kickoff()` method will return the final output, which is then printed to the console. +The `kickoff()` method will return the final output, which is then printed to the console. The `plot()` method will generate the HTML file, which will help you understand the flow. #### Accessing and Updating State @@ -192,6 +195,7 @@ class StateExampleFlow(Flow[ExampleState]): return self.state.message flow = StateExampleFlow() +flow.plot("my_flow_plot") final_output = flow.kickoff() print(f"Final Output: {final_output}") print("Final State:") @@ -206,6 +210,8 @@ counter=2 message='Hello from first_method - updated by second_method' +![Flow Visual image](/images/crewai-flow-2.png) + In this example, the state is updated by both `first_method` and `second_method`. After the Flow has run, you can access the final state to see the updates made by these methods. @@ -249,9 +255,12 @@ class UnstructuredExampleFlow(Flow): flow = UnstructuredExampleFlow() +flow.plot("my_flow_plot") flow.kickoff() ``` +![Flow Visual image](/images/crewai-flow-3.png) + **Note:** The `id` field is automatically generated and preserved throughout the flow's execution. You don't need to manage or set it manually, and it will be maintained even when updating the state with new data. **Key Points:** @@ -302,6 +311,8 @@ flow = StructuredExampleFlow() flow.kickoff() ``` +![Flow Visual image](/images/crewai-flow-3.png) + **Key Points:** - **Defined Schema:** `ExampleState` clearly outlines the state structure, enhancing code readability and maintainability. @@ -436,6 +447,7 @@ class OrExampleFlow(Flow): flow = OrExampleFlow() +flow.plot("my_flow_plot") flow.kickoff() ``` @@ -446,6 +458,8 @@ Logger: Hello from the second method +![Flow Visual image](/images/crewai-flow-4.png) + When you run this Flow, the `logger` method will be triggered by the output of either the `start_method` or the `second_method`. The `or_` function is used to listen to multiple methods and trigger the listener method when any of the specified methods emit an output. @@ -474,6 +488,7 @@ class AndExampleFlow(Flow): print(self.state) flow = AndExampleFlow() +flow.plot() flow.kickoff() ``` @@ -484,6 +499,8 @@ flow.kickoff() +![Flow Visual image](/images/crewai-flow-5.png) + When you run this Flow, the `logger` method will be triggered only when both the `start_method` and the `second_method` emit an output. The `and_` function is used to listen to multiple methods and trigger the listener method only when all the specified methods emit an output. @@ -527,6 +544,7 @@ class RouterFlow(Flow[ExampleState]): flow = RouterFlow() +flow.plot("my_flow_plot") flow.kickoff() ``` @@ -538,6 +556,8 @@ Fourth method running +![Flow Visual image](/images/crewai-flow-6.png) + In the above example, the `start_method` generates a random boolean value and sets it in the state. The `second_method` uses the `@router()` decorator to define conditional routing logic based on the value of the boolean. If the boolean is `True`, the method returns `"success"`, and if it is `False`, the method returns `"failed"`. @@ -641,6 +661,7 @@ class MarketResearchFlow(Flow[MarketResearchState]): # Usage example async def run_flow(): flow = MarketResearchFlow() + flow.plot("MarketResearchFlowPlot") result = await flow.kickoff_async(inputs={"product": "AI-powered chatbots"}) return result @@ -650,6 +671,8 @@ if __name__ == "__main__": asyncio.run(run_flow()) ``` +![Flow Visual image](/images/crewai-flow-7.png) + This example demonstrates several key features of using Agents in flows: 1. **Structured Output**: Using Pydantic models to define the expected output format (`MarketAnalysis`) ensures type safety and structured data throughout the flow. @@ -746,13 +769,16 @@ def kickoff(): def plot(): poem_flow = PoemFlow() - poem_flow.plot() + poem_flow.plot("PoemFlowPlot") if __name__ == "__main__": kickoff() + plot() ``` -In this example, the `PoemFlow` class defines a flow that generates a sentence count, uses the `PoemCrew` to generate a poem, and then saves the poem to a file. The flow is kicked off by calling the `kickoff()` method. +In this example, the `PoemFlow` class defines a flow that generates a sentence count, uses the `PoemCrew` to generate a poem, and then saves the poem to a file. The flow is kicked off by calling the `kickoff()` method. The PoemFlowPlot will be generated by `plot()` method. + +![Flow Visual image](/images/crewai-flow-8.png) ### Running the Flow diff --git a/docs/images/crewai-flow-1.png b/docs/images/crewai-flow-1.png new file mode 100644 index 0000000000000000000000000000000000000000..ff92bc60d8f21df1c3ab4214dd85f5c7e754b082 GIT binary patch literal 44820 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Ƞ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 literal 0 HcmV?d00001 diff --git a/docs/images/crewai-flow-2.png b/docs/images/crewai-flow-2.png new file mode 100644 index 0000000000000000000000000000000000000000..61677b6075602c4bcbf94e073e0355ab38306dfc GIT binary patch literal 43950 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 X@UzWrOYbQNKmF=uE7P)zcOL#9j{?5$ literal 0 HcmV?d00001 diff --git a/docs/images/crewai-flow-3.png b/docs/images/crewai-flow-3.png new file mode 100644 index 0000000000000000000000000000000000000000..594b523c765fbd38106d5269b109d6082762463e GIT binary patch literal 46066 zcmeEvcT|(vyKWrEGNZs08zL}{AUY^0h)CB##fX9h=|u%Wx`3gF;5f=SDriuU8WaQ} zbflM{sC1ALLJvv_J+uG`B)RVn&iUPQ@4A1SyUsmpopsGxGlcMc``i27Z++fp$9w1W zbcDX&{yheR5yGB2egT77mxsZ8`|J9(@QJ*~PjBGIDvt{~zhlxHc8tI;-`X8Jdkllg z3fZuHWexoP-HlTw9vF;p1^RDQrRysj3??TCd;FMzx8-<`Uv%5GTYUaPT{))WnDxij zONTC;+H~>O#tS+1oniZETHf{WI-Ln?%Qvcm1_Fq+3KHmSt_E#U;xq!1E`Poj2@wZueSdi|TrWtO4 zNuk%Klq}VicNmQHk9n(B-tURb6k2(AwCPXhFMt1gx6|sCx91LB5nFi|_~N^+FMr;2 zwjD_WUUApo9$tBeIq~z?A-~GajKaa_4+O494#DjCeAkwNtPMOFee-GZO}T(n zRUxw{cRwUPP+i1{a)485vfLXcW@#HoAfm@1Y(eJnN^dr|Q+eQ7jOTi(^ zS>fjJ$Bh!|dmf%WOVy1#lbaA9zsthH!X$6}o_f}Db*g`g#;*AuEwz9FYf)UEBiRU^ zp1DTgcJh9j$lqVpBdNAimRYDKj~@~4a0?P|IdrPZw$Hf41}njyCFMAr@cY2)vhSGG z;9KFoLsQ>_oZDsD%;gX4!hXr#sKnNpYzwd2s>i#?x|fd*kBn4nc+q1h`?$KEoZ)*N z(~E?3Iq;j8H%KA>xba3zh(=@=-OYG=m|Xp$hNr&A?4!}2w%wR4Ug%ZNTg)1tr}EE? zebO;Zf}7gk9x_}958Y-wslk4CbD7=P;Y_nQ;heYK+N(z?{^Y|N4H73jwTNFfdI-&J zn_zAjzt4YLG42&o>f0?m8~*xnS4zu)xQF7!X2gNV9+XQluxFPy>=Ml8vIvP=zfru6 zIFZ*?rn+Wz@1vdd9ant<2&N!5*wOsH_kfOs3PHv^B+(FJ@A=DcTlG zRsZZkFk2b&SHY0y^q12mX7W00qeeG5Dc#*DO1x4LWY-Zbn{pAR=yVJPjKEb6R1L4B zEc~<4!b#XU)c-c}aV`9~kTclhG`ZHnq(zn-28}TRulrjs8QucU` z)lB+=j2HcBv@%(BsasfGiXCJf`n+N^q_{YgzjS|qP-bLN=$RC-H{w7RkCC1}zzCPx z$}K2z=ob=nwOg zvaWgKwj-GYiX+=|(y%R2Vl(u27eCb9zC9&JEHQa+2mW{5%?ZmwLUx57wTZ`yXq0x1 ze!Ow33+UiBZ$XGZY-wlL>}lanecH%(>rtxi*G*}hdg~x+Ntf=m@@zlYL2$s$bY6hafydqX35ED}?;eZlWydj{2U_$>5x$zw;&TpeEB6R{$xDi<_JSS~ z6L9QiYKr6uP5rKoa#=&5ftk<4T^eNTi^;~5h2(TL-B9n;#x0;n@$pWqNwERThO|w$vMSPN~g3*;jiq;LRS0-<#%25 z(2_xCmi3#AWr9Alv)A#$%qN1LWwWUybNr0uY-hsDmpn!>^ECXgI%Y%Y-i&m*qThIW z^+#&u4KFX5TGE*<-O=Wr*qJ^qi=i>~Xh1SJEraYk#Ty8fObgcRQY7`iSqgngz|MEd zn3Sor8%(NkvnfWc;&>8@uB@i-vy~$}8pJ3^Zmv{HOjLc%)5|Fw6bThbtD^WIgIuR;=dZ?=}-< zMP-m`Zv{yaW`}H&VnTOnk6M}O=*$f7s*aW=c4(0;r(bI<==HiESKw{dr-lmFJVEU!6IT0`Jzy8gO_bVoQk{zzl8AO%Xy(YTj-F$(tbS`ZURSc)hp{x; zNNY8abaY733ScY|``dnE2MOzHa_$YZhe-8%>faT{a~vIA^gJb^N*J#=G|i%1UmSOd zL(`|yLzI|C+S=I@dDZkXC7%lVZa2aWP?FdvEi-z{GlX#@*q`&J+Ov!1bzHurRJDsX#!uw2geA|@pW`Q})plCv`P(U6 z)>caWbz-wixehjbUZv!ZbM0C-6)-tuU4U-30REb;9xowo*l`A@1d>D zeKk$-nQfs-x?hJJAR$SnaLB7V!ir3=a!lv;7P73)8Rx9t0Sj&W9jWhS@R)`anR&i> z(PW57?77kzwnnahPjR%ESg5n*1@SbU34MQXzg{vV4r8EsRGNt*aL$x6H*55^oD9)ALoaTY4UwFKSUYvkC~TZVq9ch~B(qEk2i48ACYTnVuHB zo3O0S?d=j0s@C=L_VsTrV=*%fbzKU|c;|7o538vjqZFqDHrEyGDV)WEp3oR0$td0; zk<&1h;+Uc5!o_ph;57SG1YYlnJ$q&#&x{;jtu3;fY}mGX{PpV4mc~>%-KTq!`ZS8} zyn!eamd-sg!%b=n*~uJFT{neelPyNoUOMIul=+c!^o#rFIl*I69RWc?{8)%DIuhx@ zZ8$F(6J7J(>5Nf2y=F7`Ik<4Cf;py^5$d~5QgvU)HJZ)9D^5E}GGKCySx{P5A%Se@ zHnO4e4`btJI@8JY3SSFJf^TeQ@!{N9-!o~E%F2aq0o?0jA3peQ(j5P5U^YpHv3!7C z#~5Ac3)tCRc%YD9#vzd_A2Un!x!0#vw}~<+V}8nU0zbi=H#h;$yUp z4yW&?l{LfREKx8)X0z7NsB|B2JqR=9dRdqFnT zS~J>zj1sC%Hz>{Kr%fE0v6Ijap!YPEUi5jmQ=7cYEcU7FDCI%sLBq6Ez6GREfs9{J zzLR;4!Z1-#U^yfQ$s)q-}nPf?$GL;@*-RwDee8?`X;YS?d z$>87t{jmc5#qAp8+c)g&+^0iA7sRKRB_-MAMa(Yl?_#R^?Axmdw%47y7af(4*5gY+ z8}f{!_(>UUVGEQj_&Ep&;Q%=f8x8|Yt1 zr7JGU>k`G%!T&pjXqeJ{G_RjiaOfHxzdx3oG|Cr;NA;wGJn#9@yy|4C|9)C+;nfC? zgQ}L5Pp~Hq;vYy{Bm}@?zc>xEFapPW#)=_B=jmnhTSuK{x~ybqmX}0QK-sI#Q#W&& z`uQ|3I}yp)@m&3xY&TXTe!)UtXC7C`?@h3#wiK7?{#_!XWgIf89VA^Gk^x?0S(f;T zTrqDI)*7;#!tWiZzQ)R$@baD=@QgXP=yfxK7>yBOV&A=1GU$=#vpm6g>YjVwQc+7xlk-Q*IOvF$(tv7|A#L)Z@!vCI8#)sDjHjq-T) z2ts`eE!~_w$4#{=vgY6Ubi!-5*Zx$#Pmp-%bM3L>Fxt1hjM*t|*3zFDrY2g!%V%A& zdK`Z`bF3g_H&f*|d;4U1D5uRVHu#eXo-ipTssP5BpH!(#RWg!RuFs&jbd^c5KWa(y z=~^iJd!i3%*xlRNxZVV!n(XkaeXTU^o)H` zWc%X7g`bUBF>fILTogW~$?g~+$fYr_2B644auoV4n2r}gLR*GK(IJzvUY=du{GMy-;r zuXF>5(Qc+(P{R`D0u@GJ(4!+DU-!K>)6bMqrZ3JlOx(R|Q#?T?A8r5_8eyf|z%|5s z`BtVRF;oqu7xtYl<6Bj4)yGPd@FR@cERXlQS)po?MqO3XbTrKQ zT+=yn8hbC~yMea`{#{jZnLNYL;YF{LDA8K#ovJ(}BzZmt#kCEWEB~J(X=`8IJ$AeK zBKcC#6>>{xtQ58)?hSP>OgHa`l`2iiyUufDbodoiVM*j1*|QZo32s%7MmNDFX6ps@ zXyEokwo5lXJrk3X%FH(B8OFqji*%k$tQ`QDrN_=Wm2H}G=>uYrWfv7>#-n%BzRc+mnzkG46^&mEm~olWep9IE|aIG zc8S8aUu(I{D}fVP%zIgYY|ZRMWJA9b4B)ulqzXKvuWUt1!5f2$okv^J;WJN|`# zS0vv)nLm`F$s1AUE%y6Ny;($vLh>H^^Gn*cU?C3 zeC5Dn9f^htk*>n}@`ZuW+U((8KgIED@{KM@gm_gHN4K0pb7}v6+`XBhFcibA)fUls z<_CC$g+&Zi`oJ#;64+;6aG<_;JTe^LKYr-p4igl8%D23FZb+u4+=i8JJQK1^OI1HI zTWjy+R1>T=`N-L7hPY8&;dRl*ygfZVJw8`Ee)gGrtTSWa=a+})ip^$c#6)}u`$T;S zcRM{7ROD%Oe`|3MijZdOm#@t?hDuf36={6*=C-2u4Ufp};^Xhbo`;#Ls;ah7sSz?H ze+8_<_@JLnWj|k9-e=Z~T#IVFw*s)&Ecxlez8XLUqOMVj6=GmH>Cz!D{RUG;6%Jp} z*Viv9F7lOBK72UQ{$re`W4pJ|*@vR)zGv1_ZU(&`S61mNo6k_ZTC<9J4XsR|V;HBk z%Dvv!4JwT2-pWuJ{f4Yci7q>k9wsv&`XItb;Pn+m{BH;%er*(d?T|o|>1%7~YflXG zwHb)P{D0I~bqb77w6h(mi!dp;aV2b@$%UBS>l?Pp)h$r?+~}LlSV4~2KC09TP&@7i z2=KMbuOHL2V!re0 zykhC#e%ET~f*7LwGcawXLn}6%5UOYD_#_}v+^hSbh}QBAX8%F!4+(~34JIxr#?zD( zLx({F{SYcpzBWn|?~5BYi51NawVD3>zELcfTp0m>!Qcegn^PRD!6=CHp7Sj<{xR*_ z1-Vn^tq&oR6cbNF*YwN6@UfZd%0%D(`Q6Vc+EEF)xtCD7_yu|>KiO^_qJciAXsf{0 z8>Lo;{&S=yX<^K5fXgG@9dRFOzsVcM!zEtrT4w|s?^{w-FC#MA4 z9wBHUac%HkSMu}nT+V$9suP$N^X1d!#cAsETvIv*?Nh5@_de>kEgYF)3H8AzN55Qm z9k!18ToV-ajx&7RepIl;xp)l#t5jPnXYaVer+pm);SB4vB++m_%X;E+V)FxUPS+CH@V)}wP)L*U? z_Zpw|cGd|+GaJ(pe7dz9^%k|!kiLR054`)2xUhe-?ZBC3-U6kO8L&`nPT;b9plX^~ z><>vQE-o&5@cT_KuOu>=yx?YSZ5PDygBNA$suYan0pV zA`D6Xv?N&hsX4?=Q zaqnjtL%~D85s+iPp96~=?3d(w4>giVLqkK*nl32%)_YZ|%7ro*D~S}~%Nug#B^H6= z1#S&Q0zVfQAFTSDv$M0ki%Ub?vD+yvsdI+osnW0!PPRzZjvgCoh>5x{UuN8T z_wAuWhY|`4RYEj5*BdmK#sxj&D1n-vdz90lDtq?q*~w&~HKw!tp%B7ye|Nyr1l1mf zI=l<%SKJTzy}phvWo%ou+~=1a14eA-$2$aW`k%j3mU@^(YVq&46kt*b$;o>u?0VOg zw(m*7WOgF49J{^t<@4vyRo84nm)zg7zoz-6E?LkV-o0{_1ZV*G{m}#Go_+Yh(MsB9 zSyCXV+-(I=z^2dBm6G{pVtK!WXv`bqpbZ;XFDU8v95*rw&lEBXRN|97akxuKF!%N| z0^5Rj|H&MSz_hA?>d@Iid4dXsL(OpS!O>o(rR|4}j8Jy93}BJ125YT&?z{D4%}XEP zo~hy-Y#U=^^78WPB9+LhrFvT}y{|C+KDM=mG5r~8RO!YM5^sd$K9NhCw=8~6^26^4 zSo~Bt^>%~Dcvj`SsMcgbzk9tBEdicE;*Q%b)jhp@vG-?KR*isI;3Tc5I+EZ&8%3`Z z>z%s$Kte+mwzJfuzP?^m!}lh9q&yHsU$)g#8GQ2k_3OF9*m_q+j90^(b&}@dmSp^V zhs^D@LMg%vQ6czoYn73N(Ck{d;)JXwElGIB)aRK{0Da00`@k+6AvA`8a>Eww1JI3T zMZlw_b>!GFhN4^>U^g$4smD{VhgsZXEE8YO~)Esf{s<2WYsbOPTgr~dHB z@bD=wFE7*)$E@9f^!jpOmq(*U4lp2gV_hiR`RD-72vr(OoS&cf=gpED)AD;Gr8+#j zoIUz(tuqYI61{oz=0L39B(`n#$PAJj$QhwRIS$kmfk|yVg4DPiqwG5ec+Ww3v%FMQ z?mp$7n-^8p)LJ?^I>g?Qcb|=Xl0o2(6@LC(R)N4@F-zk6lQNc4$mum+V5*D~P3(t4CUm(DMxPkL~Zw7AI&N(4}0i( zI4i8RJSA1#_vZHOEfN2?1ts&S3K1>!t>!n5F_+xAEE;2`R=yEACOZwj;@POf`*UpT zYn~ce7Ft?$DVF}gM4XyIfyZ83pvEjwlr>B}Wms9Bd@;!|d@gJEPn030jB2b*j6qDp zc^&bmuKxXED#LNN6&zY$fjg7JMn*;DwCJe~4#$TynApWUb?g6dNxr_ot>3-P#BQ*l zKe#r%crp^SRSK)Et$p(0_NPdfkRygPpovigzLnueU$P9=bH&TL z`nE**W|+;g8lD~8#b0jZcgyc&!3=7wcr)Rkr0JkD+y%PUu9FX{vai*;g9#cYEww*c zaKN99JhYd@n@h@B0xnRQ{KJP2MHOw&^v=dE3_MV5Fm{aNy_3;=tk`g5SB5W@tZ?<+ zU%3I!b|n0~DWU1p9bbJASq?$WpQVPRp>{xj7b zjv1vyDG~LlqYX#;AMEg-dc*!0r1^wB%ScK}lIe2Jw?H!NZC7>aE{OL2e6KWwS;&a> zAC$GKMh1_f9EHcqXlZJC3?r8Cxy(ic@!N|YvhW@iE5JtyR10P;R@Gkp7_tj zOV*!N?s;OG7WR0T&QK{6@A@HFyvq-5?hGi~FI}z_ysxh>G9SUk=qX4%A{uk&EJ55_ zjD~rkteYdvz5P{Qko@oP9ez%gwzs#h2K%W&9s^ST`p@t0lXZQa$Ng|-2>vpX6C z!lXvV$Lo9;G2weJCZ@8su0w_bZf5!OR!SApL)e;uZjZ)#aCR*pKR!ZRTDimH49O8G z%nrAAKZ+{YoH9%^eTux|tN7qiyoIE9-z^&!Z9byWf9QnY|GZtf`T2HjsU{|`ub+o% zC$Gn|tAv&2T8~Phx(G!XEyz)3tMvnBe7xNAU%wuhst{=ex)~DWY@?PIiCt&s4&s-_ z%2AeQQ1KI?MF=3;(D4iP#l5Wb-Z45W-RoMT#=;px=CAzrO3knhas|IkOiUDhx+^yG zNrZ3&xo~(gh&M_ZVm6kTPvK7ZuxqViQ#E&Uk;^}^)#3>_#BOkd@Hov-^k8t#C})Z4 zolDG}Jn8}o2$R5H+Tl@muyC$fH znGPYS&koh=`uX|E74-cP4M~j;_}J$5b}cQ-Mv~wOC`m)Ud-SHT=3?JC7&O`$A?5CK zF_XE;OzK_Ztg9!G(`&>}dK7{ap8-!Wgti7v8MbWW_CtGq-hF1+Ld(86p=9K&>uC=U zk1%1Yy>kF1{=tPQ1BdW%SEs{2hA+V!#$8@9hzI^3M7BZ+_QYl4=Ilmkl?_iW#pfuC?B>t;g~LP`VMi~qm`*)K!< zJZ&g>yA)ys^s91dmMB#W)z^%G55`Ssa>kjz7@51BC@L!AJaA2g1ZAH|_JB&rF1jm) zi@XeEUq_6r@Hku%EwRi<>@zZ&HCxTki8mnYl!^8J6^p{lLa@M9gMx%h6|#q-X5%Hf zue@9yp18kdkf7wEYPzWNvZ~;W=H9x(GUtPSO(ixhCYHRDj$BN{}=_qwsK( z6h03^?OZxi0b%v2@@Su-2sZe@CI%dot5{_aqk%tiPmnz`+)4OD{G|nr*$P&yrwSc9v;BcC_<3{-^eoNUZ3Hz2_N%TUlo3+ZpxYiTXO&r+%%TU|4*segBz)E|sBUz!+s+r6W=BVa zf#>>+CMuOGmPxCO6z@0T7LsZ;7P>=|VtrFoOPXAu;L4TI;c;jbO=Rm3Vccu?=g$=; zI$Z1}3+3+2uqXCf84Qn)`#0=~rK;7?N+u!Iv3GXHHwp4tOMjF;VNhn|KAM~~#NqM^J{C_A=-kTi)v!?D{ImdF9%k`o(ZRP`}wnwBBQ?60Z>S87x? z^VI(O^{N=J-Uz5z(|k=NUs8<59IdTrya43?y{FlGMIZsin1P|M6_JRBGzBH@>m>be z;Hq<8=jSu-$;7@AW;_p)IGtu#3)SHaF}x%Jst0`ymH{((^v7K%Z6IYO%VCMA77n-Y zG)XTSOAJeES+6+!{yEb2~fRY;ZR_% zsG6sfCB*C9WWJspc#RWy!Lr;0RrKn1@O@!m{?b^0A0kk;-YB}7_6#1!#D^QDn@0@R zhRa|lOJ*BV%?lMkLwz7uV3#z`o`H1JOkyQmLWBkv7c07G4%id^C-vyXt2dy}DQD<5Mc45&(KCTbhizQgQbh zKyqW7^OOfmJGI(e;Y_ks9SEO)CRGWmjXz2iP5^ImmT2xbkz1TKFGuc& z3G8VE6uu4M2h4p(Ua~uBWnqm3-mKuweYv7Nj95RH-Fnf_?%utNfD0A=@~j_;0h?5- zPvEqq8fX0q@Jj>a=e-EZi2zJB+c$ii0j^t+@d5q>$-*;mt?9~{ya5@lYDxZLrBpTK z9I?oyAz>1w099**kf;dIu$16}Ww;W`qnk}91df`zu#u$XXxPh}&rbs1ffNR%%qT|8qLn_Y+d+`9FoNx8Npt>coCAWrPRQZEYP(_wel2o$f{7l(>wC% zPeJ(!kql`7s@U+BwBpGk*{v2g&of!_Lw<+{a9@DMwSVtF=|QT695J-l`h8SnBr4tq za2b9UU?GobrIR?6h$w)XL($$1r2%`?h!P2aI?E>(C4(r7XzA^ZO-xKY11X7JtdA{9 z&~8gE{}LqbX>4k0iabB6Vc7Helpa54h~}^;`9TrFqBhY6aG0uU8B#PDB?{7L&$n;i zo_*uf+hqoUXU7!oL0JG)F~b@c@L=4vP+^YL#i%K3Exr+%xvN~V6C69rcH~Ounh`#- z;Ng;j>hFFr`Y^Ya zZT2(qmIH#QyEO!rRGCi~L->m!%l%qB>wx(j(jae%*;w;b7Jv?-RIcfMFih0P02k*v z$Yl};;1(|8|CXwT0w{{Wr4i~c8Cg8NRvX6h2?nPpfJvaHeS%7Fs&3BprWgK@AvP?O zEtIOyebffrPmc(R0csowsu2P^oZ!DLf9!MoUTYaJUBAB(4ZN+yN;YsvlCq%dQKGc=_17 zospy+2t_@AHbOxf^mtNeBs8`|+IP$c5Y@?i4K*=v~BV+=8SH$u#010D>sP*wL+%WL>2T%{Fe!J-vBp;9q z)dMzeAm9cmt^mGn0Q?}F+Dm!QxkO02w1rg?R5yZM+6vIDO`rR2i|7IH0LTyd;?bRu zWH-a9h1DYJnJa+i%2ihvr#_)#x>c+pa0VdeAwU&TQj;}GPt{v3PfSlwM?*fd4z5P9 z+RBlhIzc#lyW{4^W9)pwQhslN1+a;91Gk>j(a}M5t8&@&LjiWz0=ra#+3vu*14(Gy zDU@Q$XinclSTdk%;GW@l)8Y7kLE{KXK#8dVI`1|01sBhQ%vXR-B8(qZWLO2rJYkHv z01P)C76LW|M5PgMi2%-_)XaZimt?hC?{x5}JB(u~=$n*p>HAwYz3N)HMHmE_f`!8+ z7!a-22Rgr2o7*K-4is2+c93%>a5u1=#>I7s`6Yw< zRmL+bI1eCYF8@OI5CZ0tj0Qt*Lg}#|B(3bGkbqV-O&DSvpeVM#((}0GOXVO#37yNOy(#ekew4yXUcbXw)@$**66vyN9~bcC`gCrH9P(np3!!#faQ}D zWxegc2$)!6D-@eI0w&g2>p#m`A-=>(o{2h~rutfMWjU-b%$xR){Z%?45*Ff6sDC*) zhvC|22k*+aM*Oojl0ZaUR6f5FPJ8O-h{SnUP*}u~AT`C82JfOjis^xC1ym7?d_je< zTB?Axlqxufhv5#hCu2%A)rw$q0?P!F7}ja@;*T>nAU0Zg&I&Ur1o6rmEIJyumZ1yn z1oDm}odpJv>XTH>yXFG<{=*nrAs4xAM4T|E6^=Hi1K3fD?gLe$H%|VuqPCSO2na(4 z;@N^V{Tqo0jv=%&rU9Vgs6%1$&sw99{5a|oP-c=U(fl}qne?qW*YgIcORAPY%<%3% z;NeWQ;hQKft%HSadj>3tV1#d&lz6*^$yu1jBuZ*PMP10_jQL42p}*@xC0lORy6dV5 zm@~rgp}*o$zG|I;;OiFtSOG4(!AZCS3@`{CoU^D6F?wj@Db$XK_QcGj7e(!2l3tpi zki8?=thJelJp-*+Pr!Jc8FjO$*Nhf~t}c?V%?qYrkyBJJhR#hHYY2Q;2V-9ALc&ZJ7k0C@7Hc%w&jzBv+TmhiFEc zxt3D#xmPp}DJe-~5e|dO^|*5@bDH|7Eh0^3?%bH#6&Wfd0X^(51IVMZt*gtSRt%Lw zG_k#x_XC3E%csCZ;{*+fa?I4bpY?%anVJua-iJsXQ0E^NoSuPu|Fh{u|I?6}hDd3; z3q4xe+Vajzq6)k<`C_OPFo-_od}yP&Rf-D&3s8^P<91qRF_T*nLkO-8EA(L40%d_Z z!kDYe0D|RyKoOZU4PIqAMNVm`-3!dHf`v{YZugiqw7wDk>H+BXf+*=c-GC31$ogu169Ar}1_N%<1VK_j zS~3V)s)xq6K)(;bxK57+4zJAtpjiPI1KLHJW7bVCPGE_Eej!pJj0<`h30&hLz`n?u z6KmCg5Tpn}`V3%HR*P@9rnJ2GhWjp%sS1FVmH?G2U2owa>K(%K1uP%|sb?j69MuB& zU|n->Z<%G~V?_G`num2ZD7yOcRE2;m7biG!-nT{xj8K5zZZBU5Xbu0uEMlX^C-DE@;gFFPfc3uk5zV2lqoZ0=&nyofp7(vkF z3P%7gXvnZd&fc*7W^I0R9B9$T2&jp3zChxMfriImla3@JE09|nXHW`JxcK?LA7vgU z#;B3ar~`^nEGx1eI4jV&s9&c!b*neN3OLSF2y%V9L4G{P^C32L_aI=YC&8vd;XXUw zG8@FI2RM=IoR1J0Fk-}98UWYlA|cjkii zf$@Tv(*mUHTB9RyS*qc{Tm*Er1jHWHk?e*QBFYA8rXf}d!q=gL5iJFs*cycMBk-~V zE|P65_yoKHm@P^RGkoeD75o>ckRN~kiSNqf^+%;J%R(qER&(F{ z*&w+o`L^)p6sJ^j=L?thMY=a8x4aS~xBOb<_=ow4`%A~h=Dv~1xn>#K;J(4V{?^Tg z8rxeF7cPhYdc#>bR{4LxMv=^jX%ov!MC9Brin zFPZ8k|1zuawHvp^0p@K8UCuTonz?n%S!m$j0o3j#Y={FG=8rUI=u@?sER7=;0|pbV zvL2m>#bEHZALEW~SFrgDkbKIk?CcAWwbDSMNpQeU+cLul9B*(LkTx9vkZd!F=K$3s z-nue4xv0n#T?ui~z|4#c9g^#SqDLOM@&_?Al-k_<0?t|vL+|cyu%PF_LOYS1oV;Dl zGZpu^XQs`}bp(1CqqGdGcSBVhzW@G@`bWx#4jJpLV=?Jgbnc`V>yEttvF{JzctDL{ zLfTc5s833_;&W)K0m}uP1!e{`PxpHtD~Ik#DzN6q?6j65fI%UR9iwH?fOC-yeD@&r zAgLGvk6lw$^${Y#%ODBgQ!tU2628MbC%W?WHA(u~cQ-Zx>u|FIBG0gTm;pw+bb_Bq zDJdzfp*KP*Fihc%QCi#D5_#OEF-Tw5Z|Gf``655jf8^(|FxkUt%P)H=n4jC{KP?Gd z+$95p>wF%Un1K304vM{=>JlMs8CDsP5g5woMSlc(VG

OPp?oX3|&&#d7c7y&PcG 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 ipX*5d#$S_A# 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 CmC3%1QY~h#-dGOylzjNllp~y{gW8jbV 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 literal 0 HcmV?d00001 diff --git a/docs/images/crewai-flow-7.png b/docs/images/crewai-flow-7.png new file mode 100644 index 0000000000000000000000000000000000000000..ce46d9222cfb6d8a4f48dee06ee8e6849c7f1067 GIT binary patch literal 61270 zcmeFac{G*n`!`(TPN`^AWGF-miOj=pkSIf_%qnCaGS9nRNis%K<`O%EGG^9bs!W+e z$UM)sd2i3L@Ah@M-~0Rht@n@jUC&z2v-++T~Ik&H>vi$a~Oj|c>*sxvU z!a21K8#V`Q*s!UDmI|I|=v63g*ucI);oNBrmyKf`Yq3`do&w9WKDKU?;?fHz_NqE` zaa!$;2yJgjoO^sESUuv4@4_y78)a7CS3$zB`)_0oDQ!ESb<@8|RZUobn|bm+!<}mC zoVo%JU%%d&b?!9#jPd7<4{lt)g|!a1(6yZJ6v{NYHCa?FJ@|p6HM2!Kwsw%{kuEJ; zs2fyEa{fTSk&2p@fgN*a!~gRi7gT`EKO9V3

03dSEj{9|eU*wTNw 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 ABH zm33#*)mf^UtPs{-f>UjT&inn-GBOCw!j*JNp!R%6Y^%77pQpjx02(ga7ygfod=-}6 zfkrU6qa4>oc%Nmxb3lNx@eu2h)cNulIfccl8Zvp2?*`f5gd@!1=j0uB#kc3YbhKG7 zNG5g9+NPAiQe(;?a!eEx@y#14M--NzL~K2ueOGs{T(KowhS8r)H0*g$TobEhdn3V7ogyOs|eh9b(N!FZ7 z)psYak6SCcV1y<7+UeOP~neBc`t7%B}v8{0H~HV&@k#a1;gNm%(qq;awxU&A%s3 zGtXh*F0OKoMyq};4)TMXU0gEaI?b(4oU5=Vj?vl%GIS2!8dXFM8kA+B z#py}&RS|oWc9c67$?Kw3+{|^l*U!g?!nOSdwE?{Px`rw|9ClzI1{No3DyMDkYx_QB zzU|m_;;DsC&2w#Fz3i&Tu2gKhrkbN>Ua z-zc4%vzx_wDyz=s{)>54ls7>A%Yt&sNywUq%Ezfk6EWxdZx|q)-#(+bQ<0`fT>irf zzNO?!`KRJSVk5Vrb3HF{uSMVM7Oz4J51K_b=e5QcE~_B)%iLlYBe=dZ@mH%YDy zep0<<>)1gJ_6|Umrzj3Z=#3{tp6IV)`2kHdfO)Soo)%*h?7i3UFyF4I?g(tlGxnhR zl#n24DO2o4<-B|zyD`9LSnX{cCpS0S_%K6dD(t>E#r$-U7xe+goX2u>bX0NJYP|$% z7=XhqfRJ`NLZz2Hpz@AT0t^AD!0&FV5*yFOSP>PZyy%Ve&_EHwp00()V7CH<+QUyC5pb9(l1CDfw#NRptf-oN}E)>2g=q03) z^3QRWMyuPM#1)(*%W`Kpk)@hCd^z&fKg7Maw)}PaQ@F-pySm4wEzDa*r6kQ_63TqJW7H zys?zB`~~Z-2t8=jzxPy27*_dD*=NG)mK%0YmO5fw~(tj(&=0>U%gpzlf9LnZB+r z;jN8`*!gnSM@-)c@Go8s^#X|3Dvsa3xyhbfE)bK-t7|heNG)KA41RTxFr33<8n&m+ z0zZZjfPPvRDlp8CCQqq$-iyy*hqIsPtuZjU{;w&%c*kGB(TFp|=%*}!y@mM;{^VwY zMfoNNot#h=HvaLu=sAbbf35zT_qx|E=b*q~j1wEGCR}r?_qKC?`$|3gLH=}}+1^I_ zA1ZhygI#;{EjMSfOzr;xa{cu>l~};yxq<(hkd9$o3`k=p&G)&=PbojPcz`Sja9^b0 zh5avLfO=QEeuUvx){WH=)xG8JZ>)E40if}JFyZqt(--nr)h1bc=|Iy*8flknI)wcR DU_pAu literal 0 HcmV?d00001 diff --git a/docs/images/crewai-flow-8.png b/docs/images/crewai-flow-8.png new file mode 100644 index 0000000000000000000000000000000000000000..16afe8c4727bdc8d6668888d46cd9271e6fd2ef4 GIT binary patch literal 48620 zcmeFZc~sM9*ESmKqqa^w)<>#Xyg^`3S9X;z1j{Dynj``Xvu z`}*bXB_sVU8~1F)U@%*7=YPC{!EErvVE*ytm+Rq^k^ddsbBu`KI=R4OO7}H#A7)3?|u0xeC@{HSN>7AY1fXum;U*2<9F9~ zY`gr=9cM<)Slu|>vQx9WNP~tAh#?Kc#;Q$TXcG`pv=6yY5}J*Swnl%ZTUBJYx}5w1 z#saU?+t!Y+U44tm)p@SC`u6mhzu*1624Ee3+ri&!fKcLp$PNr6&!t_K`3DBm>FMiT zePS|Nmo%?0)AT$uCD(ZE%X{ndX=kjg$T6|6hLk<-=Z&{xFmE(36aj3KWO-ASI?*c& z8{+vD4TT>*M!=VIFW*XI)uku+1s-!HfzF=~ZRbkP_z}(s_qR!_(h(%jz0>xYk9XbE z^7zrgb56In9aQ#v|FEd2$nnFQpZO*ji?f?{DK`Ew|69CPpjS$$Pe4l0r@ONBbJN<| z4AGyr_%&B#r?j4Q!Aqzlm#P1rXRf zdUrac)?8CeR0;H&dObA1dB82PDB1UV!uriwG63vzCMzr~29taH1yMNKST$5~G2s;M z<+@S1J5tiIxWtR~Ch9iiu{vUo?iM)M0bzZvLrVEnuXb4Lx}Ko^+Ma8-x4;7b>!eS| zdyk^lbMZ5UGEP&9;v8d$6{5$I^>`X#BsQ~JFV)!lrAEAjE7Ooi18%1SQixS}IAB5jt@twcw)Ei%T${aSgtU?p>U zlBwwR$|OEo)1b3jv*+OTgWHjfI$)VTb|LJ#GDD;lshSd@KF;2)d#n8$QGgxk1;Z=q-_5gk{jIP#q zD35`&S}$j4h)a7^q;!6N;-h8m9rmmNX=yr-+*IGobE1cBknLL0SbV3!?rPq zCu;}BIF7bt*mGzi)v~$g?3uc8=lQKwADz3+Bgqe!yC^Y=rAFt958YmGI&^=hoG(XK z(4V|46qBS^E@KO)rIk*q_v@k4O z!4u|k59q}RWa2}|9v|(Ek|uB7WAj^Ox{!6|Hf1JmIxcidfo?r$N&J^tt@U7hCGU5~ ziCTlOYWMbqujn)Kho*z=+e*$Vdvq7rb3{@Xt3NZ@PSjlN5BLn?9Rl;=GkOJ!96G~3 z8ti@23-{8H^z+&nzWVtT8e#U8LyXj3%j9$TDKj&5rfHF|V08XZlc{f+?#t0MIhKwpzAG_Du&8d76Sk|jFJ@%KF)q%GGnaX@uPkRT3~*ExwB$CM!H|u!t8{elUz#=y<5Ae{`f^zDE#*Kj9KvX8)(l~T)@sHLyN}0 z3&ZurnkM0wU$G;cWr-CfVOIlpiIf+4GI9T?+BJCv`^%u)r*t<}{`0d;_aLUsxc*f@ zWsT`f`h+F3Ye*dzFjyS+FT%S9fk6rJBgumHT(D?L%=&5SkKdU0Ms`gmc?_CifjVDH z?&@$kxrYzDIF(q=c^W-JXW2aFco+K<-1wV!Cxi;`)6)$pzXy)Jqes*1v2HyjVPUf= zQfAvmWxC|B3uNIo=8(+noulJXdu-p4qoN$AlGrb#W9;oM-n}i4G0H3Ps2;oH#_jB) zWo$I6i7;oBe!$Y_T9IIjhL(S+RAQ(0CAgh^W{mwH@ec_VUxtVcGX9}5@+p)YHh z>c}!T6)a4QW|>Lb2ieWWVNL72$_)K!UEo5U) z2?>dD+V+`=UgwP#JOr;y%T{)1%rCeVJB5V!tT0I8rL&^nr*!#?<4d9Abaot;8m2#P zHmqsRSGAMI)|gh6WFj9NUZH!1_z|Zxd~@n-2dBf#W)jTPdH&ufNi5sgq{RW@HUsI> zTR!X)^xq%R=ZNyyrPj8t%E_&Cid~F{CZ1kW14C=9i^1A6MFLuTyM2v9SYpyj-W1Pr znGq)-$nIvA&vDChsKy*ds@KOq*ybE_VtR|-3chB`Zqc0@<&P$HT@nzy@qwc&C}S`; zKnPrM9qBMA{LtK2*!pw}*M#DnX&Vzak+ONu)w}{7v9m#mp4}sT8C;m}~eFq|10{Yz?`2x6cGclg5f1O=?7V6`09x#bhEyzUEO$@ z`k$NVqn+$^T4rk&Sb_dn;_|QTgXHt`{h1r{lTQ?9XWzRf9c38MpMCFKX@7^PznSB8 zlC&=%cWR)otp z+lsb!dcM9q`+S#q*YaGKDrH7k=|>&E#nsd#^?7HnoKK6;UjAIOyS%An_p2p4{t?75 zwn-R9LGAO&sSr7958HP!M3!mZJ?>XS@>d0nr0-t|gL`Q)GU9I+YjLI@_Ni(2xY+FY zkz8sy`-Z^OQPc827k@b|hTlnf&M3p;j5MBYj9~1JDbmf{sOnHBr*3Dz?!_^?k3oM% zu~NJ_-~jrxLRt+M%X z$G8EK-r!Y&438scelgE%S@eNO>hsEfKG%KAv~rJXj+Gp~&eQZ?-LSoGB=tEc?ZoHnTJ_v%Hd1a1p_c4o0c{w^FYvxjD z=XPfCR(tBb%tS*Yuj*TLMpowY$wC5QCFm@F!IfDC(QnVz(bjY;@6~nZAT3aO((Qhy4iv_a|iKq$c~8p!KuRFKeO2QL?sQ*m|(Oj&}xUz@v7JNC<0bu zs5peK;cVLK-u>Be+WhL<-2B$_D`B=iox7Q3G@5o9Tbxt2YvO9&e!HT>ivz<n*hZ%|^(}pY6A&`$++os1)9w;w^!^msY{K+?K=j)2p?U^OFQrLBD|3VC zM^XG-hkt&(d*yd>)X5!UQ_+DR3g&!SvsCu4jH}ak&!t&C6SnE>B6sO^RUSi*Og_Xc zdB>l;N6u^NBiY(p<>e=9mG-JFYKf`A-VCz2t>B3KRhIrv@wU3brA`?qeqKEnXjn@P z3f|ZFd9*Wp+NNEHRGd4V&6{3F#(0+GnYA{hJOPFhyYKGG^s*eqUEVOqjM%AY@o;&v zH-ka^{Ii_((b6JWhq~kOeJj5)H&!h2C?SEz-KD#;YOw!!EJTQEcN*(MpB7BMj=w_l^`#GhJnBt|^`X(Kq-hBGhxa=ky7V zcO9aQ!M_x%(3~@_glp0bwm7o*xQ%^Wn!W8j%Qjs#rsdHn!dub%;oCH zPbW(1NWLMnn&e4|ZFu(Anzk@LajGX{MS(#O2*Y;YE zt9jpC%n6C=Tsz&4wX3xD?+;(Y)G_1kRJ8GlRB&j#!_@g+3oHJEZh&>>)Df#*Sgq;q zxSCf>arZm+)l&tBh+T)4sx%khJfg?ZQYwc&JJSkY%2SC>Ix7~%v-1sPgF$f=``~n5 z$*Q!{@~uKEba({QsQ8gBM|)lj&d)g{;yeK5JXrIqIF6f*A1$8ehjJM(@o8f ziDup?n?2vUyI@wqAjGO6H65>*m(v#z!HyvtRtE;mrtxB;W#abEM>%#4P?)t1_gWMR z)Tl)KeqwI9{8*f>3BhkL&aY!sj*=Zx+x;5C9`T8{K) z)v&Tvm!65gKslj8AghcW_E6gEs%J>~F+}T{)niwJewyjbH12xkg3BtK5we@8wlj5o zTMe6+Tt$yks-mLO9cFx4TApJZ%fY%aRt~mJrO%ng){`*+MqV%&%p89g73JnXyjCDj zTr`=z?;Bg)HF7U^j7w}fVCty5w2Qt?CZBP9vbm2EBE`Vx2=~hy< zzMw7+x-v@|a0PFFcdXbqu78XbqWdsuW{7>?-f$lKQn%tKN_jyb#AZ5Ch+G9L9)Zc^ zR=bOnw3jdO@!Y3uIpYfNv7F%1XX#Z{!b)FhX7TW=-3C956_#;0g|G0|K5yJ(uGdf$ zoy9Yy>~tkrZ;jXG`eT+50(@AsaTIKXlQiY)4#Siba8;Po^p% znUcmXZc2dLkrsX>QaUKAQ+JN>Vk!4s-G%DUPn@~McF@15WDpMG`@Y#{;$<;sB z2LN`&+Kkn3D2BxEq}FP!z3FS99AHywQog%%hO}du$1$fFD7gQbWon(b6@z&hdlzzp zH{*#|rNt$C%KP5_q={Dy(o$@G4v`hFtw9lnf~^Olmr9W3GJ#x+d$AE2eVydoKjj2dP<6R7iz2W~Aws z966R|;l>|zK9(d>c4R0j0yVy>;K04J*)U2JT5R}PoRqwGPAJ^gpq}MKkEQP0*D&}6 zzG9cG*2HT!>zaHzm&TiC#}ZAch6V-&(-cx^b;zQEm;HRbBW-Pt!>;2Oy~?lC`x7dg znWnS7EB<h%cA-fkeVyftgeIJ8@fvZSoU zsHW!FiAP4pi^V)sCcw3gxKz$M&A3MyKfGqZ$Z#i(CI~yrCqPPB+F!)3nw<-oFzWRi zW6@@|lXgvA)lr9hP)QzY8WwdO`yhTPgc6dfwugCi;Qn!o*;DR9P4jd%<8!>tJlAbqz!lFkqPNjzGivu8 zR`jEBCH>_>AuG_d&RNlxw}_>ftySMcuN{Ky+DJFdX11*=hx3hck#M=){^HkPPo#8~5tcqYqyIXbdk2iv0%sUmn;_5`cQ}el~Hb4#W zEv^US&Xm*q&Oj_rM@c&J=y!zaBKAs1+yk}C)P^xYh&(ZxFj#@^yR8OCT1$&@26PmlAMWh+lkfNOUKnm+Tu zv-C30-X{@7DjGw5^r8ED)|t$*<|m69*mn2IL&Q6j5Ko2RsdH)NonlcliAk}%%hOck zCYYOX+=Sq{Gw!Ux6dV7uvuV>xA!iq@S+?uO&fFeXc>;TEFa9v+_M4!+YUH6?$dvGC zpY|lDy^Zuh+Fo>q{uS9)nO06^Y|yn5wcrSrcu7{*qsHoJ^eA-Tvog^$xf+=ONx6EI>pV;4ztT+Sk87wp7U>}ONjhpj->aS|2JR#}r!iI5t z{rqHoQ!aQ_$SscbFa;{!yIZ~d^L?Gdni+F@sC4qjaXV{{uez$DB~J1gYVu@ErZvX-wxnM|E7s}QC|K}xrx(Z0wl`!svBc51O;+&^gU;xt+1L~nwj-}(Q+_XQmKsyL9m5h z|3XFC|LJ#7HO?-Ri;RjAeh&mjUtfQHQBg+(6e7YTsY3=lR;j4Ily33}P#HL^$vpdC}@n;yxmn2JbK#~HU zU}(%m#xMTasJ+OZfI?~2o5uLUS@uMatIph()%4uW?c|D zWSDY=ye{>nwRe^3K8IRI3d_b)a@ix26}N5gcpMqM{9{Uz$nk|S*$xg(4VhXD9BITK zl_pL+m6T+o5p#IC)r~OuY`5TT^hm3|44ohtuqLlh4IgXI9DY@|zrh!K%jO&ai0~x3 zf6xBiz_+gpi2Pr*{b~c1eb`yrg0k((L7!8F2QazUc^n1iSf6ljALYPM{I3qIdi+Mzb)zKwTavaXaVh1w0gR3 zax$Lw0c-iacNodBF>x^ARs`{|qI6`Q3~;5~gAzv3@XH37_qo^=-9mBD*`57bI-8*8 zf7Ul8M`nFh?H|8wDs*Xmo=;6oOjNn~;f+__X>aA53qsfZDu-^%Uu^t+Kv2KFV){w! z3F%HL$U-|$NZQ?m&UL$N9vU1kOXqTLZ`C}!G*#hU>HxN#S}J`>X4S|s*CtV^Me^GC z_22LQUIPr~?=|>)4G^CJ*i&TMdE5d@P$&HH+j`vUu0Cug>v`Vc-r6R!+JL7)%6 zg2)3VIJwW8rjwcEbAfOwdtEg1Pfz}JIPCBbNC%K=t~uZB zVE$TlcCCcOaYI%Jp{9zCpAAj9GUIWKpdLUuNEeeM5${D&vk25#) z$tr9v!4+`xD>@_4gbpLV7;fh}%ck=Wzz3sotK-Q~E&eV*ED}(qfLffsyt+PS?(Xgc zm*Tm(A@rf~KM~m&Ee;MY_B6)shm+_2v3fNMj6t`^Dxk+HPO`rLl9Uu$+>48g`Q5R# z@U70g1svZJvwE}QBPK68BFygQJwg}E`|HD$-nQ47rB*=I!c)FOl)i<+|8plD&R!i& zEMnECsio!CvVD7iL52@rl&nryqBh=#@FiSdxMg)b-u~wGQ?TNzGgOsaU-+wO6?HNv zWdj`NeqVAa^2;2Gr#W96KC!U=>!6a75@E{)n27DT9vU$PHKs9hU%`$rf+<6tot@4E z;DDH1&sD-!`}l~-xE|wu=X-S6y1zaw92gHWExn4SQjC)fk`bh4En8Yra&Pr=tH;&X zdp+`S2l*vNxKT24U8n!rm-f{GJ$_<)rb4{3)Fs(Ha|z!Y^)>Ue@7vJ?=5*S7b)`7D zF2$4gMqoKp)g|n3)VH^{cU*5^qM+gU>M|6sUN8w}IPCRve{XMjzXsfSG;;OxbjhB4 zZG8}~+Oh$0ddwWIq3;X)S!;R8jSfn-L>~6k3F!7f?VT;sha?|yR+q?#q;f&PC=(Op3gEzOxQ=bSLNevDRKalkVvLnk3QrDGL; zTpxy$>x+gHK0nV^r(MVwhxl*}`IgrVdxeYid96cB`yQTDWje!xcYcL7^QBkC+$Xj; z>``OrbKSMMhM=Ia^F3d{sOBR}4KqeY&}rz)ImB8d(ph3F@|p|5GX^AqD6p;H28l>U zOVRDF4fu+y=-Kv$Q;8rg3BGNpZmb)6RryAZa5HQ+O_J$yV;6Zb44IgV6`8swJ%njT zs5fp`!<~C@alKT&%$nRN_}a3NG$ziUIw;D-c0^}gOd*Ai{Ob57eDx}lo#4h&iE?FA z2|||wfkMubtFH4!!g`CC{h{BMeXe9j)2IyDim8;)5ATJC(Vd4FrbviZ*I^L1&x5r* z&$gZ3?(yu`Thj9Sp{F$F4EgcwafKMHt)&c1bTn{vE-fyyyH=j-CREON(xEq^yD`^u z!~TT5%Xfq>#T!wrOOnuq`_~N9jP{2VEp<JD>|l5LrlbdY7{8Ao}iAu7Hzk$=`;)(_6jx+56)M>8WS<+fqv{I+uJc z|KmiktN&3+m&MwV#`qXthK@QlbXY+pcy1H~ZvKReNvBTe@4fY7e%VOEF{`4iu%ikf z`(g*umTU+4`GLdPnJGEO)Dy-!{Hyc*z6>ww*sSg$qok*$G|?oS;@$=lF)3Im%v}VO zErq>(eZI4FdFPI-%lHAVU7UeZ)k$ORnIB6Xpe&FwO_&bB&)m09vJL2wgwj&HS+hKL zkv>t#&@F?|Gj38^d4t&GAv49cC?IWR9`aWHEVN-{FSLdTB3=uPVow&0pB9{n)`Kr zetxfi$7PM_N*+m8e?Q*QtBT*bH*Dc!PtZ_gdq>A(+1<*H=S%v$Dw6y=Ez6c?8&rJQ z?;DdeRO%qWTMc}QOF0oR(Y-h5!_OM*hkCKXAYLLXi7c9MUL2AUKYesi{}8VE)X)PY znczbS33Ql}_&67?kpKES@e)m(D2r!=490*6^Mqc+);yWcrUtwDg3ynf?9Y>y=Syi# zrslS$*k8l0#n}eXLs(0LvUJbVfmmtp%2%M?1S#Pu6g{q~Ho*cRPNAu(sqEGNTC$V| z1_q*+PQjDz_KEufx(`r82Ds=upC;2dry5|Fa#AV&1M@D za{BOs!4U5#t*O`f4w~3Qh6#^{qO^{qo0ryMXa3xdHl(mwQvo*{fn7eprP9LgNXew2 znG8hPKH*Ngf|RlcZcBRCw-tFRKC=tev+Hxj(3VA(@FtwONhU3D; z$o)E+(?NAwK7F30Oetg1^0+ze0xSn|i^dcktu7m1Lm*$#Fw>XZVol*_no7w0gyYQg zN7u~c&Pk1c?&}fDU{xWttOKwUW)ezbVHh~zZ;qT#mVRc#zQ;{!eYs)peIjMBxFi zy1i*0e$ z9sU<22%LA?jTbw7JZXbNSFEM9iL z(VP@7i+`tJ_vpnt0oB&F{e@wJyB#l~A50aAiGAjKoSg?N@vbNL;76ZD%)XTh`yS_0 zeYk9CyKcCh3|G+%i?rlu{lb_MT1fv z!bA2W{gDmWg)=1fZJFh3`=R^$7eqOe2?1)|*KVV=!h-{)KpoRxi`I@n3HgKifS(C? zD6+WWrw&ob`NH6^k%Kae=i&2Nut3eg{#*L+9_{hcGz~iqPEV3mxzYGOu6iz`k&MOS zeCAs9Gr`~Tyb10k$7r4T_c6x0@fyA(?BA3^ueaUqVwt4u*DUS#X~<_dHzho&*{XHS zBolgqMDOG-IIJ;rvBBO5&>_EKs(b0kW( z{Mg`;@7?W}deM6{(q^o9*^3iUKAuDIS)QqL2E&>TPEH9P&kh~cles{;n5?O)HStmp z`FPUJKfZ#Y-9WR8CN3XL^eT5HvEgb7A$-`!-1V#QH4w@Jne_FVJ5I|BGyE}Ah(fb` zDp3b5#<{4y@eN8e?TCE=7I!x9Cdu}=q(%CSXJ?N5x!w382~B3IUojqqp&XfI27T3hy93GwqMIJGvmDsn5W~*IidgtM&NsSfCTb^*nHiQiFQqXq29*VNQVc`jej|RzOU};?cJ-VSmy8LWo ze_Jjpn0phr)*2&E9h86i^LIdJr=`hKMi*^`FH27j9E=ArPMb#wPVTYQo$}8Q+pFq! z)%>Qlt)So6xLIquQkJf-JNsy&sNIOK*9I7^4#pFI>ef%lFYhZ=zYaT3g5bE7K9cBd zC)2#s+T#)O1-w;|QJZ4cR3)!j1HxlmS@6PHrQpk3wLia+rQIbr7!^msig zXwS7QRCcI+@L-SXQDmo9*4EsJ^s+LIkf}1~f*=YDqIY`Odu2Z8h@#-kqZ~3Z4E&y) zpNfBfAi@zq&6dYW@--?5`fdK_4f|g=azmTk?P9vBru^xjxD(47HbfD>400xtEMN*p z1+r`}jvNlWWGi<0^JZzaW2J+^?p1Q5o5_;~|bHkfGM z$|YO1UYE29*f$(Wfm&JMzUgCTAFKvfkNzoD9f>?<0{%!wD=Y2w`T(w=-AK#n&)>J% z`Wkn^CE}_koNy#C!V@TxiXIk0#>RgCi2t#uq-12aL5YDjJS|$cTz9}}C{o>s1Pt-; zrd`K#jg?G{?Zo$>0785(gvi?A-UFB8ciCgnVs}*q3t%bt5|?Leug^cy-!I`HvONGA z%6_9QUeN>DuoEC4bSVg8P63+6$g20>)Z2N?;$dr=z7j9&eX`nsU%N*!(+o#K&cq)( zsjeRQu16TenXXI6#l$Z8!V@Rg_^Y6vt#YI3>4}3<+MiDof}fx`1;~xS8$7-G>OUuz zU0gv;4P;W5o}}R$yIV~iAXnG|6u4EN2a!n*XQVY*l##+4lR=n4a$H$nM32}^KFayr zwfl&Oe&KGsSAvbnvXpWpIp%(CREH2KZ@G*6Nj{*?DwS>yz6A|twc zgOQRfYkS!rf9T@VhtKpPZa_S-Wm$6qx}&ixL0u)a4Z?49g8dMpI?in5lmp->s(%AE z@G?M>4pXvypM2^s^CjQf#1hcNA`Nh!IAPG3fxQ*>Bsg=fRGuoduxv-}4XAzu!r8D* zfA1rNP4N5(!n*=qvleHq%);s8m7o9cQV2Ki?5$jZyqyh1+iqMHtjX7REF*3NOj{BS z0Ci?8>v);c-(P!kWhTUO4Y0)UYDq!D!VsL=0dn|Q*)o9e@pjvQK|E)#&-()g1np@& zgCdg<8yhQ22Rk5xDO9^NCshbGx8Cir^oIOcil3_rd*{gug#dbtuiYSgs^V;9xA4cV zPMPuDqEEYM@6D_|pPWGA6bs}T#KFo!MH)V00!DUc>?fgbe|+gXBGi2 z`{%`q78%6q3xacbeLf9}F|vqm?kCK(3g`By0zrSUTjdbW2Qie)kUxQIJw6z9>N~hc z&rkOiectUbhbO4k;US{f$H#`}V>6xt!VO4u&VW?OIjm=06~Kb)FD}NDWEUagkny|`rWB5ZD9kQfzsm&+NpS2b z307o)pCW^Wpkt+lvf^qiA20-`hc7hf->7zT~33P(cmE0Y{1 zRF)~Ns?tH6TiK;0bpp)14C-6lh+|#g$K|@zx?Us1xp@VL%Vcbp|i_FL3pS(vH^U$u*)uF7!scgH-K!(#$$FHMy}7Z)hU zvb=ZbkaP%pB^&4S`RxV{V3Z*#RM<{#hQu`iBB)B_xr6t2D%Qh3Jq4He9=q^XstxXG zUNvrNd*YT8D&_4y>2e9N4k^N@UKt|9&}0VM3DC86ahZc9L-FB;wFc%b)7F(mk9xw7ZfyqSSSf=xIm7p0>PZTGpVSGx34m|jWsk*%y_3mul zmw?CxFqtsY36L1fPxLHyWa>VFG9;vkhap=-*DmR~k%$Z|UMC~~of2cDc|?6M$N{BZ zUeTqCBZ(ZKBmM|?QM&Hicw)DPk0a!)DD)uIE`wO7;?ezb8CHP-e58MJnb`{buiY41 z<^FCQXnVuO6m5;Q>o=eG_4P%3Vj1cOMx@XQ2bqRCsK4hweXShOf2*#Nmppxugm^&D z^@x3K{ryR6)~QHDU!5SMj`(l`V*Cc&PMzwNs5>Cd|Z%|wU< z3Bb>=HFvf&pgc9Uv{DZ6Wl~dIHBImyX--c3YWpGfF51FbNQ^rsLt&wVHy}!ux?u~X z;>f^!A%W*W?$^{eIA7vXKtD7PwOi%JMLV&uOY$*LD4&kY`jQ%M)L4;dzE6^bLN*(l zS2|eU*Dp!iLPu2MbqT?C{2X)tMDAB;DjJ-mm~4~G8>qWc5;=qNbyz`Na6Bxk4JifQ z9~uS*N=L*mDR24*n+!DfPWd6Wl6c6f0 zP3)-{j}E-E$M}V(P=tf5-myWkG?$zpi)T{oo`A@Nqe5Q1 zSem7E?M=A0c#*+Cv$6InlY(q5L{j?oShy`EBgR=>VCf&UjGF57dPZ zetf$W6HR=%)V)DBVM5q8LVB|;3 zautVAEwaTJp%r}plOsVkUZ)UMD+^<1R{F2~NC2vo%0e9(C{@ml3eV3{rN^Nhd8=J{ zken7fqYJ%aQ|JK?0rls>w3U^9Kb{lyDYQaX54kq*a$r*h5%hzO z;~B6Zv&XBy#m_yOa)8n(4dyL+fSfs3+OE=_AgjTdU{{avFQ+~R(Q(+y5EPJk2IB|O zVfR)KQzMfmssjbD%6v)Fp$Fp^e-zxhHW|YH$hNjO-g$gNw;F`79HUV*#1;mc;hXXy z)d<<9rh&StGOfk_6ZCzh0WuppQ{dSZT>%}QYA%nKl1`}{JcvThrhiZ1K{&=B5C4Yb^Y3p!TMfB>1RVOug6)+a+AVsC3{;UUk({v*Ud3cy;2YU7gX-cUiu?b_Pgv3!net z?QKYD+a|vWjvtA2{PTCmKi@kR(&+(OvWdposP6vKXtnoKc>MK;Uu>WwX=^Xz*K(#O zkVUB22Lr)W4TK{NyX55_jdlyYEYUDp@U;byTL(%*?El||N3RW>-y}nCCja%Pd-*d+ZVZK<6=l82b|~AhC=%7isw}yx z4Mw>1;G@53F_aL0-ENeHG|Q(?Oram+I88n2RR36bDY_eKbX+|&ddbhToTe5*vfdF9 z{G+wCwM3qCZ&khW1Vk4wd@C6{#sAXwL?H%pn#yedFKv(HcTZBg5|FmXrP#s=eeW&N zKeV_{Le8aAezrhz(&~pVjsEEYZ0x_qMCDSR#w-~S8DN4XwDdH!(?r2hz#@uQC14vR z5}Yb1;P$z(x&r(ez=p$BSH(JA)&qHwA#V4b;A{&CHNyl~L32ApcP@9XV`l?={PNK1 zo(5A2&-%E#Q&z{nDu|KK9p6bWIS2GMwG=7VF{9fL8K>CDSRFCz0T$ZQC!vFLUqP9W zd(`vMF^P)iuMe$%K|g>-_*rs2@{Gr{aYc^cEpWU477~>xIRE!FG$qp@oP%jxfN3~I zqpfa3Y!V}U{A6Hup~ou&G6_t^>Tr)hH^zYA5}z_@Ru7+ET3s4)f%1QdlXkCOviV-g z`4UxSG#ZHt;51nUKg$+gQeT}!-0B52&?Hp6{+h&JA1bU)B64*SMU_jP`J-W_aHW>M z)w6I7)|dZ7)wH@uF<=*xO0ol_zub9MIR4*)DkMZJrOF#6b^oVkNSHe_R2R4u-1zjw zKsC}@RZFx4sf;~Pge|3#c}X0>vniLiI7l(*6SU<3?}xNQ^f3ENc6p zqAzMIK_@TESdaR$^_;X5s-K`v4U|3e(Fv!eB+JnWPu%HhIH%xmkWhzX?S`$5P(Va2 z0_YP7KfW|m-4h9A98|l98m8szo7YKfR3wPfo_#O;2vePtO!eB95L6JKi6&}8fy&d$ z$_g@w@7mh9aQZQem)}C&zY)6nDd=X>9xu1(csNqI4QUym8pS^{T8P?hsBt*nk&Pan z!I-TUvuakLyy#T>V7IH6SHAHXvN}B20Wtv{RNzBD4~5D7PEw1B7$Ay8^iQUDTUdT8 zcG!gvw^y(7Nc;;N)KY_Lxw0kaUf7R6C`qPq(22UMCpIDL`iJNoN9JH-f+_|5qSTwC z|8Jl1_#iF~oSrf43>4R~a0c1K9r)Dq`>rNkdVAfxIJIJ!?X_k=C)LX$^Q@ns>Fo~1 z!J~P;U(~y_hWzq};`htU*_5`KOMW`RQT;rM_gx@4wkjC z>z|x-?Y&dOT?}H+oXh`O9FE{yA*VVEi$_OmA|(q z40xHBdJXusp4~MD)y58zoPpKmV6Zj}#>MzoC~06YH@_b1qLN{+pH&l<>TeW|EzAt{ zRs>Q9gNC+LLFu;l^{q5FH#fiKgn`X~Dh#IAB1A3P#=;^C%7gE{O1aZSamBs+ z_lq6sw(=aI)%$vu$Kwx7hnXLbGw`mQxdUZd`*?Y+j0Lsm%D`zm!=zKK+IP)i!8UH% zq#8Wu(lZ%AfVNlpboJ8QV90d5{BP?L^Z{Wp;U#A?P=LZD{Rlm%AJB0?c!HtnbZo6P zuD23jm_l5^@6!pss+MSoyixV$htoXA%ski|w|Dn;^wNkl*|A0yMu$|`=e0cWXL$L2 z`2&hqm{WKCCVNduXhjI1vmR*;vkRG2C4hFvM>DygZ&DLlw~aBQP~0@VeEAVtN7JiU zU6$r2d#ec*gJDaaRnRmM4l5DIx>($&CmgQY+2v36m2%5CDVutBO-zRgv^-hWw!_22 zdsJ>bV7-P_TC#e5^I3gEL$PO{+O%&qkf$|_9=rLe0qz#h?O%WG2L=}}-wFydiYdj+ zwINn<5Pr@lue2zb?}pS0BlNW(uuu$M9FF6IoW>oErNlE)&9gUMJ|*Y}bDLYg;eBvz z<4j61VJScdb%a@6Hm>z9P8slejo8VC7XtijEu(+6gAEuGs>OqeqX< zLAT7k|Mjhrvk=uW7^6%7wyZ^{Da#rM^qqZr8WV*kPEJl^P{)3y<~=x}9#;SO z2%6c7h$Xg#81mxNr%#nbUw{2|N2#~HVT!h;6n6Qg`j57>uqyRYZ78a$dUSt3tz8W| zt_%FhK6BFCB8Tjbrh5xyQf;6xdI18T3j-B_0<{Cl4KnN)kMqJ6au9*-aIE2YACWN~08 zwiN-UW@fQawj0pfR(OK2#Uo01$BSpk7Z;&mdmm=u!5~ zQysPrVe!EacDgIw*(MjUUwI zDdpu>q?6zg$cMMl^3Th{qQNytnLdjkZkdZpRCSL%7r7_n_3KmnbVDr|SaBr?3$mca zZq^W|gajE%;BvOmh7ATj5*j;hHwB`u$pJMoVLpC^LtN1Z>V#&&M=dx_ANKDg63Gvm z{NvEa6(q90cWL>SKh87&&XF=z#@P>?)(JJtP3`TK09}BuUo0yt15}!=CT^EE>Ud$8 z$oA9puifqJGB?^fS-wSraGtkUvEAsqjEsz6@Kpba?i26cy>o?Mv;^R70mS0N{kZTX zD07Q?|20d|m^<`<$2;>9_il}VW>eayPd`l#RG5>H_3!xCzp^STZ2+0>-o2|SUglNt zrn+D0MM%lS4tRATm}t0k^Ye$dfM+HILeTP)j^s#{PPk%?^swy7lQtTPUd(^mqv25e&$60<(*X zt|IpXXE3#~$$fW!7Z)-pGl&b1laoEmwoC?81i<{{|hS||^o&>_cy=YHf$gMj3$-f+)gp>+%&<^GTPkYop_E_8S6ExCH z&~8H`HVr+Ra#TT~9rO^J8cx47r`ox>xU?X1@y>E9ac1mSRa3h_x^m@8Wep2((z_*r zM0yVCX|I+M2|83VM-&weNk!f)-74q@kh^d)p1lo$Abj=^qA}>yrfnIZipa4p^#ZSeVBmYYux-}kHk?cUcykm2 zcMH(Lsv$(bazN*x89bL&UteE&{WUetKFkt{O=WS=A-8*@_Bb7SWv;xDrop35HS*-p z=kOP49H8HL971u_69i|n9N|*mhR}0BXp&gkJG_NZ4g+2YpZ|xBpo_+_AmgLD|CmWmq%v!z@*1PO&G`i>g0y4 zdtFk}&x(Zn_W8*^MQ?<-(D)mhTssf?n@%7MmAn@j89;Kzpi9L>t5T9ed33Idp{I^vQeD!bE-mT@-s-*hr6PxsN7F41)@UJE&TM zp(lCu(xq#b84AX<5^$5p0Kmb)A^7e3v0D(&L~?KbHv^%gX@Q_K-E!9Tzy zPJDY&)eGX05LBQFxO>sj=5fbuD;r!4wrtq~o%~V+?KC%wG-Wjw{G167$1kY;yOmE`Pc$czd&%A6ch{w%Kh8n_IwB#Oz+@>A3QufIsiJd0pWAsS!azT>Ma67^WUtMvH;@L z$I7X!)MmSH(g%n*UD#@r*}kNS1tCj#*Y=5d5GpJxLUjZvZSVmk*2jd$oaZzrKLH-F zB3eq+x6GkXVro8qmYxSWh&@P7@0a^?Axk|Z0xs4H8u@2HTY)&+Ai1(Bu+%$u)k#GzkIJW6VI{-rVy?YyJV}faxQd~pE!a@*%qs5w$4*c#! zg7#Ef#{FRaxYPbg6t1&F1XHBU@c;lU7zyvr+jBCg*nq(l{rXp+`Whf$cKy9L8=t%R zw3T3<>>7mY-i3ei`Fv73k|l!zq)^sar4IaojHo1SQTB+cs%f&Ozp~Uk0;)lxn4pnt zlnlSAhKK|#6hubE>Ifi$2x|vbTpeKULkL+Q0QkCKao8d!JNpsf;%?`pXCQ#=*6!t! z435v-DM671F%IaF*Y!zFfgEGfQw^0VFyWWJMCBr&FR#Kx!NB?rNN6RY!Oews_6g$= ze_%51AV&c=5W@adHEjkFf+bKW65FTjSmIaJfPDS{W$R9g-RC>4y|b&U?Es;KAehR6 zJZhhY&yVnwLlpjs=Ri5Lug(h)V9s95w;#dD;?U+4yS5*Khaar1irt`sVwPY2(WYo!;=-yXK+L{iU;rGl9qhFjmX?<;oNG7cLneX1*EG{8c@7jhHU@FW znJ~2@xIL$Crow|YX^6W5;6H(E@9f#%)JG=|qwEO;V20l7WPaoc#RQhGEiQTo@1^rMl(wz3xvQJ$lAwJ3<}_(P|tj%gkTaZCZ|< zf%7QY**LJ`Hc+A*1Teh-aNX6GVZaA@l?8C?Rsb!|mWz-^Poy^Op6)Gf==096`S|5% zL#H{UAr~%O@B?NG-a3X>79tnQsN9)3ra~ww0TdAC%$TLFSp0lXC@_BB+BZhY}MK z=BPxG0daXqM%AHqGkQcO^(!`P)F>$XS|By==S?z|Gxz3Y^0F zEJ%pef=h7U?XvGEa&14hv>heim?S%o<3n9Y_=rh0JZ4*d73EdH@GA**Uu2S?%yI6w z-+oIt=}N-GZ)L+VJF+Bjjot&eeDmG^FMoxr#XfxaEe?Eev!lpFzJtptR)kMy7BDb)aBnt@4JNzNtd7`T}3_XU6 z`F;O0Nj;+IRb%5tWdEwF@%n4zb)f8{(tJv9_wL;zm(g+IW~;LgR||k_W;BPA{~Yg_ zM1r*A+=Fkfud;~WzxeA~x1p}w0E`tXHfYRT_`lDoy?d}>m8%Q;?Z#DJ-m(=mN|Xb7 zcixZrUAcANW;)`Ix9W5=V-zgeh0G|Q&1esae!D#L0b8~(?S;@2xuM(fr zTEb}Yf|L&E0MRjk%^e*bjw$~*bsbg=Facr_4t`dr3!%VYXR2NEy_KzwE>cthH8B%- z0I%(TvG?BLaCKeyaC%2XM1t@nS`ZOs^b$mmZirD6(MIoej6{$SM2lqf&M-vpErKYc zkIn?q%V6|TzAexD{(jf@=lAb-y>nf;qMUP_v(DaYuXV5cUK>z3PgmOJ)>h6ZPrAhJ zIY?W=;ULud+%%8z70lPuKp?P8APy_W-ZS;7 z{xYyIaM(b#bVDUhKn09;9<{%yo2BW0PHqJD$UMCPK+!Wk%|Y%9IXsgOqvuh(Sl1U*mZ?Qt$L({{4J-@UPMT_uc<2@xL(v+~oh} z!~Z@jpud3;ciaiuz53aUhfcxw9Ol=51Iu*&+3gj#IFaU7y-Q`}K|t$pAB3Av!y~bC;0G@UZUIjiYz-#Nq!hyT9K zhQ$zY@303cTF%8S;Epswamq9Dj+wbRIz9dQM&f#T+hTN6@0-N`bM5$PkgES9?dVoL zJu`tA7NI8xis4^kio?8oeA_^)0heYYTbyjRA5J>nV)icY-gT@He0RzZd?xvNOjqR#11)ZXa*&+=}6`>}j4PJ?TyQ zo9CS#mqi7F`zui@*p$_`RU-9{y-SkG^}BT)vj3)v;E0CBQ{?Z*AN{jqoGi`u2F!4} zaO<{XZmj>`MCl z*fP5rILqIr$j-VC!Wo#L_XECgxP9elEQkwQ6@5- zt$s`^meo~2Ej8z4Pg*pLA&R+nlwh#EHsCXryfHHF=$LsaoS|O~YzGDC0}rxGWM2&1 z2sAg3;MgUM5~gQjdUEy$!Iv8w0BX0L8}a+f2YV6*5PZ8e=6c5%W8}>4a3{xiEH>c} znGH)$PTQg&!x_IY6HtMy{y>wV_zugVp*iipARbpUH0R}3?+{Ri4h45kJ{OW zrX8zL^6tcpeIha~I2dy+;gj!Ej;1!s3#%#$oo&%g1h8xL>ZinlMdGV-btJqvvN`Tp2s%ElRmxXNMoc>-dys6=Kxb zY-`0?+7@ldp#TF^c-TNvkTNc;PEI5>@Sx2w`@-JFF8WuxO zjO_TX_}abG|Hp4*L~Oplep%A1qIz!c(1TR=Yx9J>l3V%^K$83?`96?=!wIpgr)Eq} z=n>-`O`wc#Zf*W1zwanS4-m!!fC0jtL}YXxR5i8zrmh0{`;%Bv(0u;tWas!)&YLKe zO~Ytqr#5O=WLljRJp1Wrb={LJgZ%ZRq5EBzDA0x=ZGIAKpt>s%3c;J;?3@dVmDh%r zCNE9Zx|s^Q#fc^h@Ren`k6=8G1me6U1->wS!NO8P9?{AlR(#SY+JSAypU{T@yd_jazxmHb`ozv2X z{+!8#X-M_ZxAq#3n@K9C)>-)HeVL{1U(a~H2?hY-RZ+JEHRNFw@V}lx7Ut$kk*sel zthXRTdk{KKwePOuQ^ui|7k;FiQ|BW(!LA+p><8wgNWU?jx>TA{a@(NXO;iYlg58is z4B?ok0GXcCuzd~6-Bs>7Z%>IZ#7FURVD4sv2_QhRw=Kp#aq=$R zO{-SlYr&Tw(`wsanS6QuDN-QoaOV2z)|TwppV~t_(c}7IKsQDjRL-138)GTi_D_^lwGfnUn#ZLrb#Hh<8+XU45>WsLE zI^!bTT|FBob=_hY9blVBHc$39KkFRlBEm15M|H2{*Eo;Y)9u-u(y*Sj{!=0wSBzG0 z5u)dKV)R=VO7}5n4y(2E{_5m!Y`OHH$%WF!cO?MsQ~A}kqaQ}iv>>Lg%cgjW=(8vy z4z>z!Ak8!?bN?BWl33m!PL<^f90E41;*&I{$;i6=9wX;5!Y(0Uq8|jSE9?XtS$YJ0 zJ3nNyY-gFnZcQvx|6q2YV@Q}hs&n5I&|u=wHxdsad%q_ei`fYz4@Yq zRAe9ZEAo#6zpO#VIORE1yNx{m$Ez0(3Qi7XtD(avpvP3NCmm_cH43S?Bs%I7FN%b7 z+1Im1_zUl4xXj<)J<2z9wb|&OWB2QiBv=q7cYO1^MJwn+okg3MPqsyej{Le=Pe;Zn zJF0{|cd6Bq;}+uI8006fWyl}lJhc0)USMUVIj7vZps8G<@!lMr4h$M)hsnM|n;ys{ z=pK3Pnz>$`uZ#-V^)#Hpmcgctev+2DCi2{5lgZm`%J*?`MFP6#$7}>#gLmz#MnGI- zgQYz>IG!`7^yewaEl|iUC#!o~!F+_Nf^ELv(u+0DKW#5`R;rR28@C(xnWO-s6C8tR z{%8vTO1;c+9Q8vEsh7&;=JrI+Vb{)Ljliy0pcG@@=|6@;>>dS6*r{nH*e47h{;q`7 zrHOQ@P}R7HV_vQbUK27rve|=1rh})qlD`ZIu_;45bEazZ5jb6dlaIhsfc<)Y%z@(; z(9c3%{kTB3aY65t^a7Y3nMFms#PmouOZ_sNZ^mB-H9wd)y9-BLNHEu-ZkRjPXc{4( zx<+kOHs|^^cHXJ-+&i4Z&;(qc-n~M`#5us0`9XET__$)#$+58~W4W8~6mNZ|2@wAi zoTCwLMVeG1oF4HFe9d;QSBSH;ZjCTc>|aKKW-97(`)$f7c?(wwS3qu)g(@xIpeY)cFmaJq%|U&j&qh(DF1-_$egX3hM&^ zp{B4=R2rb#cFH^ibyrY_XBQRKmz9+TzdL0ydg=hj zq6OHrty zNa$(U3h?u)jTSon+IWY11&e?N0ubrK@jEQ%`}os#g?--wZ&B`9>o3T&Se&CKw1Wz> zx-+8tvwJaH7spo&Ic}F&!m&twOb{=BB93!kw^T{2){b)<%54D%BXtYHd>nkxn8$ti7<5os^z(hi<+>t0IfUPx8W4 zfz0wmiHKogsiq_$lf)lCPrk+td&Vm*WBc!-vJwtq>yB^B*OtcYzqh3@9(0eKpgSAQ}@Fmy4mM{_+4tc`X(c=s+q1C<9WlrjYu^D~RIa zV*fgZ{k-sz8qfNx!p0!w2@Vb}0o0-TxWY+rNvV0kAIhF(l{yh>Lgk1G$Dn52I#N+0(5tecx#86eYYYip<1)YSNG^B*1@lOUk& zL-O($Fu8*JymEck14f-ko~>5eB!k=|JMyd*htl$Wb;_|@Oux%VTfhK`#&NZY4KLSp zU7eFMsyn-XwRK_aJCp2Yytj^}Pkkb-NQT0)JH2`>f#Rin?b42o_Tr%^gta&;GKdQj z5Sil3@1E`k3l9!}RW*tAv_`mc*cC)MGIcUt2^$5~Y^?vN;c}vL?j5e{&=`F3cD-%E zQRCj*dutS$@sZ^DT8+Qgmb_=Rsq1wzMCv79&}r-HXKWJ*178~_VutO}gJmwz4)*k^ zHrWTq&%SK6X;Rm}W*8QzK~4tlTX5%{2H%8L?Ot{FXV7kJ-`-mU{~Wvf5Hs7QF!qMU zys24gj%`l^jjGJ%>#vS5{qguf5jMNfOE{d4b$^I#d%gMh$nJK{#z6JUZohy2EMz?M zP~I{mJAi5!&?`VPn%?|=@QT{opU6Vq!7?Pu}Ca1#vl+t!5mi@k+Ss3I^NJ-QHew!+&UxUw+j= z=v)gOczMyWvGWs8bo#%Q2c&>R)${Woy}3kj@6)S;OFRO;1*jR;FOBMqjVS@ASu$Vr z_DiD;NCwSZl{YU{fqWEpsa$U&61+xslX&Q}_#smK=eHQ<3^zMZ;ScIZA}S05(B)<3 zj8D+U+-jHKNuh9|xjNjCZ#JfzTfK|rXiHqoi(bZWxETTQW945Qh5AZta=#~moj*EYg5sqO_MWHO_KHM+he&< zAFaS!EIB&`=&NM~iLU|YU;_D%+I?I^n$Y zqPo_b7bCR`RLW1DJ4+i{2KEnr%|h(ZCF#3rRC&LXx~^@@Q#bXpLIo3!Q|cCjx@UZo zpDyW7F6AzWVa^DrE8tf|dq`Qs;3_Rl7E3NHO5mQ|7D6&$pN+OsPL6#RuCI<&N`JU`uA8Gdei!#;2bvZ2Ks^Ku?Lwh9F7K*N&OoJGEj^5;`pmnDAEhQ>si-?a9U># zw6$-4mjK0L%?}L%oSeDMv-&(n^-vEhY6H3yi>ED{KBvLwSY9EtVu`Mb4y$KjVc{)f z#%HR3H?K^wLaJ`Vr!gI%5&|0Z`Ts!*0xQ8(J$?Bc_dd_ndA3}PLiMoc&F6{_jwfLn zhr28jmRi?bPVTC9YAojK@>{r6MOF)htBHxK+#Bj1Xm4*qpO}=gdUu(rUA8(A*X_T> zQp;=H@wnhNX0T6IpCxplBqyskP>NJxk~#N6CAvhXx#K+dKt%cyo?AO0ow8hw#+!aL zIt|t=sEW(QU_jInZmC+Cns?)F zDni1$hP-l<4-|5~h>!fkqBc}Q*U9wOT+O#UYxhp+-g6cT+5$8C0v*-VaT=7kB1FLN zu4s`?MuCE66)TN+c6?oA3ADqgM53PTX_b1j%)kz=>|>kKJ$}u8hLL2%$#{mWE}L>B z$J)J2E4qqDx7e<6*89J&>*sltM*a&F!2}#_K3&gb7O&y#;ix-q zAvl_wXHJXLi0}(1_|Du6qs8EV?{D}Vh0+p^Cup^&FV2*%?0;L!%}~3%VG3Ez=U2p` zh%Zfy1If50lBW@x(*x&JL~RAGjjE-#yl_ROQZbpwZ|2w*K*0S{-hEO7oE0wfw6o zWjSSJ96W~oMiZ&i$}BlXoEEop+I`l@;(rP4oPYNGifu2v4qB#j)KPYOZXa-zKzG}; zk~eL)h>r^L^74`&7*}+gl81-Fdk61=&X_&h8`P>0s|uJ`mt|rWpb8Bhl?4_eI>&J3 zPD2K+oa}GT*k`1s{t)}6|A3Cn`Q>s4`r8{%lx!KTof%f@#Mp*PTKgT7^mfoYfwS}j z)=|;JmG#%$su{nSSCgV`>r|XhOk$bu_hiajSRKY71_YbkQ6L)NR*qtv$QJ2fY|r%7 zpoN$0B=)wiKQaA&=SU)Q`@@R^q-6F+ByD0m#>{u9p1!C3#E_F+WnW9aD(;$XTO$VM zR!yj4dsM0Rg;laj72->W@0YYM%VNu(D2`s+^|}>Jna4O0NQ+4jRh6mjo?44@T4j4M zX((TdPW+a^oq2gp@1Zf6LrLR6lF**yWT1@^ZDvHDdJDd-ehU)J+_=z zIp*BE6oE@R;whz(eQT(E%BlC#uL$;X$Zs=Zh;V4GN%A7!?L6bz!4><+CA?wEJL^li zx-|HGR;%7XR1aQe#eVgVpHh;OplS94XXu^`anIrF0d=`Y!MOvva1%yb565_K6oWg* z`i)Gf45|rYxF^R`bzI^@GZ$3{#_Ny6`KA=KyH=z#6w!|!Z`No3DAed+z(nvH^|Nhn z-lH@)(pQFX<#qd!?tV2|*pDL#ce|}uUbNBmw;*NiuD=+|$l_&vqAi=Qay-)YY(PrglIRzU&3DvoTm>K^0ZycqqC#xUSIm5Om>!SVdpJ&F@V{0Gd ziIF<@wI1$CeE#IzGiL_zDH=Sfc)d+;8Su2LNmAoCPeXen2d1WVUbKx=TdwMSseGoU zrBZ1aZ#`9K{!%pAmAi`D?S3Sm6nkV}%fyo119SX!j_pGu>)v%~F53LEg0gMur2IpC zW%%l-Zn`X8Csm2KGvoHQJs0i|C+X41uwZE2vI^euEv8%8;6>O{*u9 zaFFA55+rT4bb7cz?T%MhoQ%(q-bzx|aiQe6>G@Wf-_K<&Lv(m{O|9)RhqBXe$OB3r zNCKex`niBe;&-Me7HVRZ4^|Zo4UODf%~{V-o#h$Mm-Pjh7~0g2^D8SW-;+8xE=<%h zeK-B+a86(G3$Axldjv&t40VYEF6`oCyydORTAaWo0egDY;$NGc)`>`f`FIdSb4qLj z_zih}QVG@x7&}kGyX&F&-u52>u=*LlrNhKbDc4dc2Nyl2?kE$E_y869ZdDeTgfkWn zx7T+4usEtcM6VKudSnFxIO2YjNvkFo`ZNEU6!neGghtpz2o+Ay_3LKRrtxlI6-UgS zFfFf>o&s_DZ8~%InY`onZ}qCsNi#^cUF)^k8}xIFS$#h>FtTZ0@P+7r(UMm8X7cQ% zNKL%o1JIavke%`! z=QmMD%+CBzgc?DqbooPkJ3(h9)SJn>F80|&a}?t--ys;-&6 zuE>!;`74!cqw7yRu9)|@%u+-QeAf;!vNNhYh^4X8^N)7J`?qf_8Z|`D_$eVL&T=VKB#|eMQGu2sgOH=k_2syGp2s4~ zgwndkZr$6n))Kb3{N7+}B)_&`7}4ODOJgWX;CUpxB$a>sOj#^zcVhmZoxHM`bg6PU zYQEfHk@Nmt1_5pBjCr4Am)5f#-}xTNm+Bae$uCNN%jml=LDw=|Kv*~UV8Md+OcM+G zI0tDu*LwW&J}FID;JNFI5Obrjpff344=wEOcy3HLEDbwwvWGSd_Gq55CU*%n_ir+L z9|JO`2c&wkSWkpc=|HQUwV8#5zJ$H>|L~ z54DUN7#zIxSVr?#W(XF5|L7m6BUsIeGBNve=i6K{XxS78A9O@XGn_%ZW;a1K7BBSP zLSfRtOd)cdZM#ixhTnEg6Ek6esq*JKjIOeap$$W1zwV}(h%b_Z&=YGheRq@EsI=rc zPBzHU2V2*1bp1ZgFE6|05B|B%jKioOn>P9iXfRkRL9Z$$=<^mia7idH$2M6CHkhLwV#>> zuyn8Cdk5x|1jgGZ$lco+Lv_?&-?kN9@Ov;B{LH5;rL%7gR@VK`@Rj}k!M4;Oxfe?oM zV^& zYZ@#h|9)1CYoun2bwsz%Ww*L%@?2<|+0b}$%-r%dYu!ilsEjp)<*yf*ZDF~gAw)K& z!}(mD^VaA=AI81WV)g#HAkoT`7{RFCo(H~ zfrh>3TPApz)SS&Fe`s=xEB9brL#^j%m z?~SOs5aqncO>Z?@+i?T*(b6--dzM8}bKF?q;wL`49q~2L9W5*I%H5&;!H-H6^Rbij zJYT3zRmj1zo^(bNJC0X|fG%Mo3MyD(5^tCmsY=_Hg(5IWqs-F9NLczN}6pPv|dex6HCjIgE^$aQQubx<72? zw*0|AJ4{M zFcb3q{L>=t$u&7YklnBor=0W@lmNuAPcG)TQE&j$H@NL|BD~*}j5K?1zvnW$8&hJR z5^QY!S%4e&Pz^s9r7vQeXNdMr%64a@aJTQF@Ar-OJ&HneI3q6&o)E5|r4fJ6ts&fv zOhL?E=ik?y5m(S|2O(VCDmju)-~>l_Ikvueo@4j{JCA%uwT?Ba+o#RH1zq72J9i^8 zJ+$5UH@=mWdC?sn#Y~3EMQ>iDopJu8`a)H!g-Z~fVV~dM7M9jpQ=WZ4M|ZnJD~2ae z0TLN$@1@}!7?=5R?j?Q=Mne2%a?JYzS}O`j@=jVz4tqIw+#x2r4IOun91tDq2_F*F z4zNicZdEPguGT$-4`p8kSM#~hFyCBW&A1^E9@q3u;{q4s^-B8`9a!KU3=+HAe8q4q zjzD}~W{+D4z*lo$<1HVL;9Zj=i%73B85;|>FI~-R2nifjIA~71o|bxmp-YkCEA_-b z!PFqqHDOi%^vCWRJk$`*b+=kIlpuO{eIz=+izk${)o8>wmFz&ushC`B?d!U!cIO2w zX+M}EKZPG*Bn3*EdALxXY8f*RdT8I5eNgc6iMJ7OkFou39?@j$G)(`i^foB(0a-`w zE>q40$ky6~=x@(Y>q3Hpx&Yod+vxB}=T*kT8)Be=NbS-7mzbEGF)>))iazb)t+?!WD5ol&;o z@oXW^b$=F+63{kjkz#N11sFy0(7H5_PO5HX>>XLz^V@&TsIwsJPo2;>Mu}@;RJyse z8&_xeON<$}SLYXv%~G>eIToh-`CmVWeNw$i6~ostf!Ej`e~8t4s!y$?-Ib@WZzs1E zMN^U|tvT&NJ$Z|nY*9pKrd6>|$2N5O;pQjhK1{jV0mb-{LXHwn0uiQNU)FMzb>zCs zj(kR3H*cer+}7FU+3SJhF2R#QL$L%4(8jFPY&Z%pWHhU&~7{X3L}4;WZ6>hiM}#u zZ=2uen5VVqycV4JLv#W$XX|CILQGO~C0JS~r2o81>z%{%lyV$U+$52_q+Qj0Rg+HzB)$`0d(wCA6Yp)ABZ-E*YIU!@%0; ziLkyW!y55E4{IOcgTOcU^lO{`rA41Jd4v}uX-lkva4cyUAMENQi6@bvJzhXn|7F+r zIcac>8djzsDaSG2n)yXklWn2p0SKgG5+&@LrZHs`+3!wx%6~fD>bRToK&tDaG*1^x zG_ThF%sU@@u8@@wFb0_TR?Q5?U``N-2m9W#L z2Y#R8?I5U(KA&E}R=?oKKGcUs2WkZ@>R+W(e9EDwZk5=2zvFP25d4gK=UdDR!nb}|OFDprWrQc@OcyDw<`Vh!4;P-j_G%Jg7c10qlygSw&ZZ*Onus)2@!i%hi(iPT-kWG~9kw=&s(&W>FO=1z;Jd~d{N4rY50iammEKpi80~^4imU{Nl)LQaC0k7HwqJenKeZvR?+PM1L#NxnRsMrTvPR z>ydis-TAumZG`E>Fn)Am_sQmk)orvrq2Q0@PA_Aai=eA8j}?u*?x0(D2O-vmdfu6L$OynAQe ztG4_JmAHy{+!HTL&dCrCA6)hvVz)LTR?pXqMUnkP;D@-qOzE+?%?SdRct+e%hFf$) zGT|@E=*FQ~U9JgL`=lG(oaBL#9CY`ytfNphktB^g7q9bB44U-aDgHQz6XMzPk^l4o z^f6VLo5;38oZDre`LbcHCbLU8!It<@X^rmBU#{70v0WLqW>J(0BqzITF^kDyP|-@m-5Xy?p%mFAMtnhVdN@*!J|SFmSLYX#H$9(kvzl?WoZtAcxUJ}_Dkm0K zwyoA_7Yo;)*`q&H-uyXbIK)U+DuE|Y;hGCw6n;VHY~+vNOqA9@A+ zz4-Iv2tHw7NAHFTQ%;@Sjfj&N=E^RK)@u4zZ2h`^kfp zXwvhi8>p_ zTvb_f-arKv^!^!oOx|bfl6N_k2J8NupO`wMox3HhR#D`MK7hSHhp^w(9u|0vYgd4M zv>k$v&4rw&3NoOqQTs*p;-H!4+vNbTKvSNlC#muD()Xu+qX9Yek2!raYuuJ?1@>Va zsW2wJ1Az)71C7xklcb3Exs5L&GW3eSm#QTK6$W$5$_9&2{PCF|vD9@D@5|1%b~x~S7dZ^Gb5N@83h5XyUjc4*hW-tb6e0W|7SE> z;^R8JwTh->;oh$ISB(wXWdBREt<{X^=r?vF zaLn&=boCFCfgHC+TOz!*pswinlX7GjeWbTds+n;tE@JKa72`t%m1<5E&D6{zj!&5t zhy({xT=X!GnAO=|wN%C_T@7PTX5ELAc-ue)tJcvmAm+fUk~>3aNEA^FhZ6WG{A1WHTz4l^qw;t<%Cq-0 z716p@I}lh&tC-3d{qmS$ZXJb#Q%?U|9Y%xHZ-VmHTss+lWBrM9yS-kbMm@n-!p>)O zM_(dPvpo~l8S{#BQ62cR(dhMFY-8XsZJTC9mXGk!o!q%VU{$2r>|75v4+Y|y z@q|jq(ls-m?z>;J->4y<d!P_3IWhPoKyEwhJAlY86_`bF$r$WVX}AL>HuOLaKu#8jB*sP+UR zY6$mjM<27By^|~1P6{$~*7nNNAk)tbLP*ILXuCTY9K~WN4>cwz`=Z?nNt3J{VNK&p z=(4JC>W_<6zdU*kqh>v!=&KV{S4U-hsy2<0vcheV+8OU&MU_l$o!BggZ*yrclmtAg zr*OEn?kj)DwMqD3Ij15#q{UOIsPFz&K2=;>th(puKA&C8683>#H^w)H?WRY@3u~tR z@e_yqJBDm(rK>Gv!eJul(uMlqaTO5?RPLcece&|;Xd-@!j0Ar;c?rZ8(}_*-ful#m z_%5!1r2N)n%hQOXW8>!f!xGt-K5=qoOC197>iMTLm3_kDu~E&iw`BbMwPud*(DxmX z%UST|L!ITDsxg?#qEdIlq;I&4l@&>z)|FShp$RtZdmwLmF7ojJeylRXP8Hn#E`({n&WX;mCel=BfB!!om$wiXJJ#)EJdHw{}Vpx zca;{e8!3SH_~`mn`{Z@R7s#(I@uuTJO3h5MJS*^q3Sy#KtjrpqBvvvAOw=s(j_jy~ zo;E2vT{#GzH;&x8Em zG26{^IQh8ZC>QQL;a;X&Njht7YMSp{p3%GhJVFVhgVo5$xIT`Bu}<>VRU&^!N6_*q zfKYT(R;@VJoUC=vzg(OJAW2-;$4MTDoEGD1b({n~3WN{JRx}<@O2&@D@VvFOaP9jg zXWu^!WAF84{QWc5DIjnsCjC5Y>&1IKWpC%0YmHNjV&7Tn?)8%wUvc&oTFnvsxR7UI zp1FuK{+z7I|5W5!AHaBdPQib474aQ`Xw%I9=` z>O;FZ#a{kR7Ma!xLe0+ep5Pgi`JcU=bXegVqf(*_B%I(xKbdwZ`mve_oiZ>umq+)Wg0T46aIqZ)$=eb z>NCa;0WHkRnx(-Oj|VbEy7|NYvWDJiAO@D*b~p98KW%^b=rYUQ=_okAJuZ|%5tk7o z3fH#Jn~d;++JD8w`%c90^lzojdf#&zs*6E;tjXPr!(eZqa;E8SvEZ^jhD}twD@Uu1 z$V%x-7uftE`;bbK&Ew4iR^{qdiO`7jz>N0&HfdWl#5_-TJ1_txR#EL_wDaxkedgdJ z6|44jW}b}e=7LDou@_aFjE=iUdPIjWymrR9aMR{60KUt&E=DS@5#Ih8W85JnzCtda z*^nvyMVjxHQ=uD|ZzAYTNwD7Sr_a%ySPO-@bwAx+?KKweet8_#|ITtpLy zN?uhYwRQ39koj**b2Bb&uCZvBVW`$$A=?hC{7I+A&(Yz*^gRzy8x}!YG zOqqK=ZmB|p)_bLi4jI}}$U14c0(e)(+()$+ zABXU>mA~wAH%}(!r>*7vm)r~b<3A#zd4>)SAEP|egoC6+tqM%*<=~&@`CwjSKj%)M zKECc5G?$k3QKm?Tzu{Hv%mWjU28Q^MiZD4>YoytMV=gM{<9!Ty8Q^*e5ARYy3t&Mn zC@#`x=+}Z2mWaGq`*k2BM}s~A-_Zt`vi{ExCJ)};3Am=$3vs2ihM_RRXM&@)8h(n>>pmVR;UwkiQgl}(;I!^ZviFU`6nVD^ zaZYKQ_Krv+Gy?;su0miKa5m8!~tq%`N(as9I2Yv#F4w>^5vtF14-im#p3E@U! zmVWefKXknXuA&;DU9Ng@Xlp}E-hI10ej%quwZBBrXy8r1mE|T`wb-bO$My3Qp#>owC(=JCvRz)On)R=4GFN=m~?3aXkiK#o1ar(fbB^3I>k>Ug2| z=5}}9eM1S1@`vksv_>z0P?A?+zd7U>PuX%D+h;73m8TAcqq2VRd^c{koWuEjgVkrK z%S^K%igYeY-peyeLn#)NW+A9+-xlS-KZiRup<%wAT zg;Ht`vc79krE~Bx2W^@i`{T)t8Uli3!JhSf;QovBPf*AGAlOL=)$AkcOZbo#2}fg} zgy9ilwYYP9u(6f;=*7hQ2PZJQ7ndR~WCDdy z#QQqH!Pk|2nW69f*acbE6_sK2C!g!s%hvmq_`Cv_$UydiAzjHrojzo)&q#?UA)O^N z-TLQ!P)*4Sf^Pp(*u7dYa*?le(I1EMu_~CG`#v2N!~5F@(Mo)}Uj;=^Zhm!ovaKiW zR3$fF2!oy+s(0j5?9RJid6g%hmp=X-MuKyeuGAH_D{M~$e^jb;$-BmYPevo{dQ0jg z(xS6@)O@nBpcb{pr~F!pJ0lLCJ*f0T*LR<0w8|$_?#4PI(x|<{>g}NKx>b)PZ)Aaf z#u9*y?FoNw%-*g|T|(MvyfUd{@{S<8<5m>ZxcZE{p!H0YQ638Se?^A_;;8}fDOf6g++oE!$B@ukm9rB{$s3|guC z5)Ew)NB0XoQ%>B0xdU0b3kKdAhI_)kC~CnPbiMeAN^LT8aH6E-z-X#ImSMkz&VB$;(Q0P^ zL6je~)k(_1kllUSAoj>l!*Pi&`4nddsXNJ|JMoJMSMi-ZMt#r3@|v1)F`>sT2h`Nm zr5sx~PD^53GAgnaD(`A3FnUO$w<$Oe_u9ET@W+oIe&$ImIe;Ae3ZiD<_T4A|Lc;n( zdH+!XOwvw&|I_Mu{kq`4g2e?vl}B^?0M1!FCLvioQF3lVD4$FTN7sW@pAmfdT2o=I z(0|n@cZIknAkLW_9Pc1A0}}s-h2LV8OvF&dF^bU~Jgjze)*{Lpwd&;U&|QqrPu%~Q z1@_zRpkUafqq%Nhd!$SJ=l9mk%iK0YRC*iHmmwnz6R7bJz^CTpoh2m(9vEi z5ZxH=38*2Te$RdDHcyIw1&N`EXZ4Ywn0G6(4602?7-Kgo*b&t|{a0VVaE@sC`!+O9 zHm!(%zqj;nVi07p4np^OF{ljN7qnF02jfZ0-gNk>ak7Up(F90wiH&pV($d6{x)O+A z%QZrLd0#lYDJv!BFX|w|BmvnXaBia2eGIndku( z=^;bVlA7S%G>+k$R;Brrd$i?1&jNn?64b9~pPD@DnR`bTaj7h_1c@{uHtOl=QF6;C zZVTG$8c*qrfC+PPVh5}@bq{U(hE2!~w5UX6wR7|xhwGJeGmmZJ;#KP%*{WvBUo3u= z?5=imm83Z%x!c9D@Y&bA+MST^Z4ppcaWzZ80@W=mVqd=~iZ(-I%!Cxrk$s3 zM*a7N_i7ql*W)AWpc8Wer!4k^Oc!?~tBAX9!EqXNeclUjK!VG~G9P>yVm+NA+5b+F zGw;iUgiA8p2eU`FW4?XMdG}7wx9Lw#3mLWa0q^B9Orgid>)E+EFMD7bSkW8BU&%TW zN5^HXmPep`*XjR*T$d>#A>qDT14EJ8_|ud4O)_PDx?v^FRi2X`fpH~cf8i}`XQ#GL z4QZ&U?ar`LWUd;Dmf)Fe$Z2PIR5$M%CSjm|`Ri#fNH3p_NHT zpb}4eh{{41K1WZkidG?@1UJd7%PO&or{7&VjSrCo8zu~!}bO~Yc>p3QMuZ^~8Vi9zH* zG0>z6*_H4O?bHobMk)29I2r#dFnmxVtH360Iflyg!$`~GZ(^q$fF?!CcZN(($Yx86 z1X?l%+@Qg=tN+Cw&VJYXmrLK2Z$#E|DDj>yA67V87pbkOd27(CY-^MW^Yzq!X*9r_ z1xrG=_F340#@jfl!k4746@@~n)&a$R!(t=QKHp;Se0p%*8J26U3o|xQSiw zxb_pr-6wO3qn(ur)69ybaM6;(q@e%2h#NOYA2REH5Lt2XSIYG(U;)kzL(X~q`t|dJ zwxH?i@$!ZDP2l0<@j!^@u8a%bO=AE zo5X)QfauFrVu{l?a;$ZMBt6SoSD3r&^Gw+y{BYYx`oTZ%L4()7dQQ+2-`Hy5bIR($ z$jW4G^=SmryYK#=7jQS(^UeD=#Us(bt&Em|$j$cws9&K$wt&bi(*aysjWoG$m-TrM zq9H-=rizw01%O6#t^P!JvQRwVYeQ#6gEai zMj^Q5%?mF>Xt>F*tbB5C1KG_ht}GUvlw^C4!9OnTQF=ji) ztQFM*M7G|srsUtLrI7iyjaN)Uheq#o|3AH*`#+TF8^=>f7T@oeRD=$sO~%S$$SI9O zyfm^2nMuq#595?w$ssStzMZs+V&srxjfX**hOr!ZH z0QdGgKaIsN9%$CgjMKxLCPne4ubajfhJ<$tzv&2Qik;Pxy%JQ(WY`8Lc#i< zI;YhrA09VoY&ebh0#ms?VZBrvG(jP2)hHhiNY5Xk*YFo>q!tOZva;h)y4c@9;{LAT zWB8N!t_ow;odzICswZ_bc&iYf9ukmmr&9Jx9Ik=X+|M$T#;$sRR$1^FhN)8Ou*`m znhB4Xr}U66tcnYX6^mKe5@#_jeOY>X`a@&hddqGg;QX#^TN2L!_XHYkesDBVEZVtD zLyrXnPE0~Gs>~Ov`=0Ajyv!VqMez8J5o(EK_xtcAr=gbCR&Wb#^_Q^!2?Byi84NGi zMr(JpL0C#DfNj~PBU+9iP9zfP`B8fG!WP=k=xMODvd(jp)9}0tK2GOm+h!6=3Vw;% zS~U*EZLpqP{@%}!I3;+SH%qurF)4>yr7M?p11mt>tvouX4t~R*0&(kX)bY-?b@T7u zx(shhK2OUUn?d^uq4ST5J)rr@0lY$0RaM?!ln-m)>zCG!l}^Fs}9ID}m}S=g^l4C-W#I9U$&GP@4LIJoZD- z-lH_}`qWforK42qAmp(jP;z)j3vi;0nZTPMQ$_n-fAch$1;H)Q8-6H!>)ATbt+d8)SG})@gn)ScZujA%@+lyAMQSVh z0hjR&_+oC8SR+9N?|~~Bk#q!Z1*95U!h71_@lK(kl?HSvb>4$NY{D(m3qE@ox6p-= zZ7mjJ49W|o=m*zu9bY8n0IesJ^&q7RoP%b-lGdA22g~WE?5~$vFhcJ9MyNKda|;b^ z&Seyh&QX3hI6Y7Q!81~_^0?JfEP#2q6f7Y1nGSDVZgw8H-Pv%h3wH<6t~pjnxNvd( z!5eU}oIQmTi?-GtA;Nol^NTMXky33cL)xW~oegoDJ1vq*2QI5gJ>&*fanCiSqWO8BtHI0=I-<~AqQ;%THfghYiRH{;nZ0gW0?er$ z3fDdIX@IZpoK+eKGVpXA>GlYzs2&QhU z@z>Rf9|q-M)b%OL62zkN7o81~!MrIHiCmVCXWiG?Bs&gdedW=#t($NbC%g~HU-@b# z!@Fy!+_f9#QdWEsG`H86Pab;>w!L<_JNe(f`uoWKz|zITbdy@N1h!W8mgP8)_ Date: Thu, 15 May 2025 00:43:39 +0530 Subject: [PATCH 22/40] Fix agent kn reset (#2765) * CLI command added * Added reset agent knowledge function * Reduced verbose * Added test cases * Added docs * Llama test case failing * Changed _reset_agent_knowledge function * Fixed new line error * Added docs * fixed the new line error * Refractored * Uncommmented some test cases * ruff check fixed * fixed run type checks * fixed run type checks * fixed run type checks * Made reset_fn callable by casting to silence run type checks * Changed the reset_knowledge as it expects only list of knowledge * Fixed typo in docs * Refractored the memory_system * Minor Changes * fixed test case * Fixed linting issues * Network test cases failing --------- Co-authored-by: Lucas Gomide --- docs/concepts/cli.mdx | 2 + docs/concepts/knowledge.mdx | 7 + docs/concepts/memory.mdx | 3 + src/crewai/cli/cli.py | 19 ++- src/crewai/cli/reset_memories_command.py | 9 +- src/crewai/crew.py | 104 +++++++++++---- tests/cli/cli_test.py | 12 +- tests/crew_test.py | 163 +++++++++++++++++++++++ 8 files changed, 279 insertions(+), 40 deletions(-) diff --git a/docs/concepts/cli.mdx b/docs/concepts/cli.mdx index 198cfcd8b..e8f3d3088 100644 --- a/docs/concepts/cli.mdx +++ b/docs/concepts/cli.mdx @@ -110,6 +110,8 @@ crewai reset-memories [OPTIONS] - `-s, --short`: Reset SHORT TERM memory - `-e, --entities`: Reset ENTITIES memory - `-k, --kickoff-outputs`: Reset LATEST KICKOFF TASK OUTPUTS +- `-kn, --knowledge`: Reset KNOWLEDGE storage +- `-akn, --agent-knowledge`: Reset AGENT KNOWLEDGE storage - `-a, --all`: Reset ALL memories Example: diff --git a/docs/concepts/knowledge.mdx b/docs/concepts/knowledge.mdx index b4c7627d3..a5ecd2542 100644 --- a/docs/concepts/knowledge.mdx +++ b/docs/concepts/knowledge.mdx @@ -497,6 +497,13 @@ crew = Crew( result = crew.kickoff( inputs={"question": "What is the storage capacity of the XPS 13?"} ) + +# Resetting the agent specific knowledge via crew object +crew.reset_memories(command_type = 'agent_knowledge') + +# Resetting the agent specific knowledge via CLI +crewai reset-memories --agent-knowledge +crewai reset-memories -akn ``` diff --git a/docs/concepts/memory.mdx b/docs/concepts/memory.mdx index c375d4898..43f5918e4 100644 --- a/docs/concepts/memory.mdx +++ b/docs/concepts/memory.mdx @@ -679,6 +679,7 @@ crewai reset-memories [OPTIONS] | `-e`, `--entities` | Reset ENTITIES memory. | Flag (boolean) | False | | `-k`, `--kickoff-outputs` | Reset LATEST KICKOFF TASK OUTPUTS. | Flag (boolean) | False | | `-kn`, `--knowledge` | Reset KNOWLEDEGE storage | Flag (boolean) | False | +| `-akn`, `--agent-knowledge` | Reset AGENT KNOWLEDGE storage | Flag (boolean) | False | | `-a`, `--all` | Reset ALL memories. | Flag (boolean) | False | Note: To use the cli command you need to have your crew in a file called crew.py in the same directory. @@ -716,9 +717,11 @@ my_crew.reset_memories(command_type = 'all') # Resets all the memory | `entities` | Reset ENTITIES memory. | | `kickoff_outputs` | Reset LATEST KICKOFF TASK OUTPUTS. | | `knowledge` | Reset KNOWLEDGE memory. | +| `agent_knowledge` | Reset AGENT KNOWLEDGE memory. | | `all` | Reset ALL memories. | + ## Benefits of Using CrewAI's Memory System - 🦾 **Adaptive Learning:** Crews become more efficient over time, adapting to new information and refining their approach to tasks. diff --git a/src/crewai/cli/cli.py b/src/crewai/cli/cli.py index b2d59adbe..c0eff594c 100644 --- a/src/crewai/cli/cli.py +++ b/src/crewai/cli/cli.py @@ -1,6 +1,5 @@ -import os from importlib.metadata import version as get_version -from typing import Optional, Tuple +from typing import Optional import click @@ -138,12 +137,8 @@ def log_tasks_outputs() -> None: @click.option("-s", "--short", is_flag=True, help="Reset SHORT TERM memory") @click.option("-e", "--entities", is_flag=True, help="Reset ENTITIES memory") @click.option("-kn", "--knowledge", is_flag=True, help="Reset KNOWLEDGE storage") -@click.option( - "-k", - "--kickoff-outputs", - is_flag=True, - help="Reset LATEST KICKOFF TASK OUTPUTS", -) +@click.option("-akn", "--agent-knowledge", is_flag=True, help="Reset AGENT KNOWLEDGE storage") +@click.option("-k","--kickoff-outputs",is_flag=True,help="Reset LATEST KICKOFF TASK OUTPUTS") @click.option("-a", "--all", is_flag=True, help="Reset ALL memories") def reset_memories( long: bool, @@ -151,18 +146,20 @@ def reset_memories( entities: bool, knowledge: bool, kickoff_outputs: bool, + agent_knowledge: bool, all: bool, ) -> None: """ - Reset the crew memories (long, short, entity, latest_crew_kickoff_ouputs). This will delete all the data saved. + Reset the crew memories (long, short, entity, latest_crew_kickoff_ouputs, knowledge, agent_knowledge). This will delete all the data saved. """ try: - if not all and not (long or short or entities or knowledge or kickoff_outputs): + memory_types = [long, short, entities, knowledge, agent_knowledge, kickoff_outputs, all] + if not any(memory_types): click.echo( "Please specify at least one memory type to reset using the appropriate flags." ) return - reset_memories_command(long, short, entities, knowledge, kickoff_outputs, all) + reset_memories_command(long, short, entities, knowledge, agent_knowledge, kickoff_outputs, all) except Exception as e: click.echo(f"An error occurred while resetting memories: {e}", err=True) diff --git a/src/crewai/cli/reset_memories_command.py b/src/crewai/cli/reset_memories_command.py index eaf54ffb7..d8910f735 100644 --- a/src/crewai/cli/reset_memories_command.py +++ b/src/crewai/cli/reset_memories_command.py @@ -10,6 +10,7 @@ def reset_memories_command( short, entity, knowledge, + agent_knowledge, kickoff_outputs, all, ) -> None: @@ -23,10 +24,11 @@ def reset_memories_command( kickoff_outputs (bool): Whether to reset the latest kickoff task outputs. all (bool): Whether to reset all memories. knowledge (bool): Whether to reset the knowledge. + agent_knowledge (bool): Whether to reset the agents knowledge. """ try: - if not any([long, short, entity, kickoff_outputs, knowledge, all]): + if not any([long, short, entity, kickoff_outputs, knowledge, agent_knowledge, all]): click.echo( "No memory type specified. Please specify at least one type to reset." ) @@ -67,6 +69,11 @@ def reset_memories_command( click.echo( f"[Crew ({crew.name if crew.name else crew.id})] Knowledge has been reset." ) + if agent_knowledge: + crew.reset_memories(command_type="agent_knowledge") + click.echo( + f"[Crew ({crew.name if crew.name else crew.id})] Agents knowledge has been reset." + ) except subprocess.CalledProcessError as e: click.echo(f"An error occurred while resetting the memories: {e}", err=True) diff --git a/src/crewai/crew.py b/src/crewai/crew.py index a0158f646..0164552c5 100644 --- a/src/crewai/crew.py +++ b/src/crewai/crew.py @@ -1356,7 +1356,7 @@ class Crew(FlowTrackable, BaseModel): Args: command_type: Type of memory to reset. - Valid options: 'long', 'short', 'entity', 'knowledge', + Valid options: 'long', 'short', 'entity', 'knowledge', 'agent_knowledge' 'kickoff_outputs', or 'all' Raises: @@ -1369,6 +1369,7 @@ class Crew(FlowTrackable, BaseModel): "short", "entity", "knowledge", + "agent_knowledge", "kickoff_outputs", "all", "external", @@ -1393,19 +1394,14 @@ class Crew(FlowTrackable, BaseModel): def _reset_all_memories(self) -> None: """Reset all available memory systems.""" - memory_systems = [ - ("short term", getattr(self, "_short_term_memory", None)), - ("entity", getattr(self, "_entity_memory", None)), - ("external", getattr(self, "_external_memory", None)), - ("long term", getattr(self, "_long_term_memory", None)), - ("task output", getattr(self, "_task_output_handler", None)), - ("knowledge", getattr(self, "knowledge", None)), - ] + memory_systems = self._get_memory_systems() - for name, system in memory_systems: - if system is not None: + for memory_type, config in memory_systems.items(): + if (system := config.get('system')) is not None: + name = config.get('name') try: - system.reset() + reset_fn: Callable = cast(Callable, config.get('reset')) + reset_fn(system) self._logger.log( "info", f"[Crew ({self.name if self.name else self.id})] {name} memory has been reset", @@ -1424,24 +1420,17 @@ class Crew(FlowTrackable, BaseModel): Raises: RuntimeError: If the specified memory system fails to reset """ - reset_functions = { - "long": (getattr(self, "_long_term_memory", None), "long term"), - "short": (getattr(self, "_short_term_memory", None), "short term"), - "entity": (getattr(self, "_entity_memory", None), "entity"), - "knowledge": (getattr(self, "knowledge", None), "knowledge"), - "kickoff_outputs": ( - getattr(self, "_task_output_handler", None), - "task output", - ), - "external": (getattr(self, "_external_memory", None), "external"), - } + memory_systems = self._get_memory_systems() + config = memory_systems[memory_type] + system = config.get('system') + name = config.get('name') - memory_system, name = reset_functions[memory_type] - if memory_system is None: + if system is None: raise RuntimeError(f"{name} memory system is not initialized") - + try: - memory_system.reset() + reset_fn: Callable = cast(Callable, config.get('reset')) + reset_fn(system) self._logger.log( "info", f"[Crew ({self.name if self.name else self.id})] {name} memory has been reset", @@ -1450,3 +1439,64 @@ class Crew(FlowTrackable, BaseModel): raise RuntimeError( f"[Crew ({self.name if self.name else self.id})] Failed to reset {name} memory: {str(e)}" ) from e + + def _get_memory_systems(self): + """Get all available memory systems with their configuration. + + Returns: + Dict containing all memory systems with their reset functions and display names. + """ + def default_reset(memory): + return memory.reset() + def knowledge_reset(memory): + return self.reset_knowledge(memory) + + # Get knowledge for agents + agent_knowledges = [getattr(agent, "knowledge", None) for agent in self.agents + if getattr(agent, "knowledge", None) is not None] + # Get knowledge for crew and agents + crew_knowledge = getattr(self, "knowledge", None) + crew_and_agent_knowledges = ([crew_knowledge] if crew_knowledge is not None else []) + agent_knowledges + + return { + 'short': { + 'system': getattr(self, "_short_term_memory", None), + 'reset': default_reset, + 'name': 'Short Term' + }, + 'entity': { + 'system': getattr(self, "_entity_memory", None), + 'reset': default_reset, + 'name': 'Entity' + }, + 'external': { + 'system': getattr(self, "_external_memory", None), + 'reset': default_reset, + 'name': 'External' + }, + 'long': { + 'system': getattr(self, "_long_term_memory", None), + 'reset': default_reset, + 'name': 'Long Term' + }, + 'kickoff_outputs': { + 'system': getattr(self, "_task_output_handler", None), + 'reset': default_reset, + 'name': 'Task Output' + }, + 'knowledge': { + 'system': crew_and_agent_knowledges if crew_and_agent_knowledges else None, + 'reset': knowledge_reset, + 'name': 'Crew Knowledge and Agent Knowledge' + }, + 'agent_knowledge': { + 'system': agent_knowledges if agent_knowledges else None, + 'reset': knowledge_reset, + 'name': 'Agent Knowledge' + } + } + + def reset_knowledge(self, knowledges: List[Knowledge]) -> None: + """Reset crew and agent knowledge storage.""" + for ks in knowledges: + ks.reset() diff --git a/tests/cli/cli_test.py b/tests/cli/cli_test.py index 19439cb82..0ce747637 100644 --- a/tests/cli/cli_test.py +++ b/tests/cli/cli_test.py @@ -162,8 +162,18 @@ def test_reset_knowledge(mock_get_crews, runner): assert call_count == 1, "reset_memories should have been called once" -def test_reset_memory_from_many_crews(mock_get_crews, runner): +def test_reset_agent_knowledge(mock_get_crews, runner): + result = runner.invoke(reset_memories, ["--agent-knowledge"]) + call_count = 0 + for crew in mock_get_crews.return_value: + crew.reset_memories.assert_called_once_with(command_type="agent_knowledge") + assert f"[Crew ({crew.name})] Agents knowledge has been reset." in result.output + call_count += 1 + assert call_count == 1, "reset_memories should have been called once" + + +def test_reset_memory_from_many_crews(mock_get_crews, runner): crews = [] for crew_id in ["id-1234", "id-5678"]: mock_crew = mock.Mock(spec=Crew) diff --git a/tests/crew_test.py b/tests/crew_test.py index 7c242c825..62b934883 100644 --- a/tests/crew_test.py +++ b/tests/crew_test.py @@ -14,6 +14,7 @@ from crewai.agents import CacheHandler from crewai.crew import Crew from crewai.crews.crew_output import CrewOutput from crewai.flow import Flow, start +from crewai.knowledge.knowledge import Knowledge from crewai.knowledge.source.string_knowledge_source import StringKnowledgeSource from crewai.llm import LLM from crewai.memory.contextual.contextual_memory import ContextualMemory @@ -4403,3 +4404,165 @@ def test_sets_parent_flow_when_inside_flow(researcher, writer): flow = MyFlow() result = flow.kickoff() assert result.parent_flow is flow + + +def test_reset_knowledge_with_no_crew_knowledge(researcher,writer): + crew = Crew( + agents=[researcher, writer], + process=Process.sequential, + tasks=[ + Task(description="Task 1", expected_output="output", agent=researcher), + Task(description="Task 2", expected_output="output", agent=writer), + ] + ) + + with pytest.raises(RuntimeError) as excinfo: + crew.reset_memories(command_type='knowledge') + + # Optionally, you can also check the error message + assert "Crew Knowledge and Agent Knowledge memory system is not initialized" in str(excinfo.value) # Replace with the expected message + + +def test_reset_knowledge_with_only_crew_knowledge(researcher,writer): + mock_ks = MagicMock(spec=Knowledge) + + with patch.object(Crew,'reset_knowledge') as mock_reset_agent_knowledge: + crew = Crew( + agents=[researcher, writer], + process=Process.sequential, + tasks=[ + Task(description="Task 1", expected_output="output", agent=researcher), + Task(description="Task 2", expected_output="output", agent=writer), + ], + knowledge=mock_ks + ) + + crew.reset_memories(command_type='knowledge') + mock_reset_agent_knowledge.assert_called_once_with([mock_ks]) + + +def test_reset_knowledge_with_crew_and_agent_knowledge(researcher,writer): + mock_ks_crew = MagicMock(spec=Knowledge) + mock_ks_research = MagicMock(spec=Knowledge) + mock_ks_writer = MagicMock(spec=Knowledge) + + researcher.knowledge = mock_ks_research + writer.knowledge = mock_ks_writer + + with patch.object(Crew,'reset_knowledge') as mock_reset_agent_knowledge: + crew = Crew( + agents=[researcher, writer], + process=Process.sequential, + tasks=[ + Task(description="Task 1", expected_output="output", agent=researcher), + Task(description="Task 2", expected_output="output", agent=writer), + ], + knowledge=mock_ks_crew + ) + + crew.reset_memories(command_type='knowledge') + mock_reset_agent_knowledge.assert_called_once_with([mock_ks_crew,mock_ks_research,mock_ks_writer]) + + +def test_reset_knowledge_with_only_agent_knowledge(researcher,writer): + mock_ks_research = MagicMock(spec=Knowledge) + mock_ks_writer = MagicMock(spec=Knowledge) + + researcher.knowledge = mock_ks_research + writer.knowledge = mock_ks_writer + + with patch.object(Crew,'reset_knowledge') as mock_reset_agent_knowledge: + crew = Crew( + agents=[researcher, writer], + process=Process.sequential, + tasks=[ + Task(description="Task 1", expected_output="output", agent=researcher), + Task(description="Task 2", expected_output="output", agent=writer), + ], + ) + + crew.reset_memories(command_type='knowledge') + mock_reset_agent_knowledge.assert_called_once_with([mock_ks_research,mock_ks_writer]) + + +def test_reset_agent_knowledge_with_no_agent_knowledge(researcher,writer): + crew = Crew( + agents=[researcher, writer], + process=Process.sequential, + tasks=[ + Task(description="Task 1", expected_output="output", agent=researcher), + Task(description="Task 2", expected_output="output", agent=writer), + ], + ) + + with pytest.raises(RuntimeError) as excinfo: + crew.reset_memories(command_type='agent_knowledge') + + # Optionally, you can also check the error message + assert "Agent Knowledge memory system is not initialized" in str(excinfo.value) # Replace with the expected message + + +def test_reset_agent_knowledge_with_only_crew_knowledge(researcher,writer): + mock_ks = MagicMock(spec=Knowledge) + + crew = Crew( + agents=[researcher, writer], + process=Process.sequential, + tasks=[ + Task(description="Task 1", expected_output="output", agent=researcher), + Task(description="Task 2", expected_output="output", agent=writer), + ], + knowledge=mock_ks + ) + + with pytest.raises(RuntimeError) as excinfo: + crew.reset_memories(command_type='agent_knowledge') + + # Optionally, you can also check the error message + assert "Agent Knowledge memory system is not initialized" in str(excinfo.value) # Replace with the expected message + + +def test_reset_agent_knowledge_with_crew_and_agent_knowledge(researcher,writer): + mock_ks_crew = MagicMock(spec=Knowledge) + mock_ks_research = MagicMock(spec=Knowledge) + mock_ks_writer = MagicMock(spec=Knowledge) + + researcher.knowledge = mock_ks_research + writer.knowledge = mock_ks_writer + + with patch.object(Crew,'reset_knowledge') as mock_reset_agent_knowledge: + crew = Crew( + agents=[researcher, writer], + process=Process.sequential, + tasks=[ + Task(description="Task 1", expected_output="output", agent=researcher), + Task(description="Task 2", expected_output="output", agent=writer), + ], + knowledge=mock_ks_crew + ) + + crew.reset_memories(command_type='agent_knowledge') + mock_reset_agent_knowledge.assert_called_once_with([mock_ks_research,mock_ks_writer]) + + +def test_reset_agent_knowledge_with_only_agent_knowledge(researcher,writer): + mock_ks_research = MagicMock(spec=Knowledge) + mock_ks_writer = MagicMock(spec=Knowledge) + + researcher.knowledge = mock_ks_research + writer.knowledge = mock_ks_writer + + with patch.object(Crew,'reset_knowledge') as mock_reset_agent_knowledge: + crew = Crew( + agents=[researcher, writer], + process=Process.sequential, + tasks=[ + Task(description="Task 1", expected_output="output", agent=researcher), + Task(description="Task 2", expected_output="output", agent=writer), + ], + ) + + crew.reset_memories(command_type='agent_knowledge') + mock_reset_agent_knowledge.assert_called_once_with([mock_ks_research,mock_ks_writer]) + + From b4dfb19a3a89e957c33e3020c9263a82f395c0f6 Mon Sep 17 00:00:00 2001 From: Lorenze Jay <63378463+lorenzejay@users.noreply.github.com> Date: Wed, 14 May 2025 16:06:07 -0700 Subject: [PATCH 23/40] =?UTF-8?q?Enhance=20string=20interpolation=20to=20s?= =?UTF-8?q?upport=20hyphens=20in=20variable=20names=20and=E2=80=A6=20(#283?= =?UTF-8?q?4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Enhance string interpolation to support hyphens in variable names and add corresponding test cases. Update existing tests for consistency and formatting. * Refactor tests in task_test.py by removing unused Task instances to streamline test cases for the interpolate_only method and related functions. --- src/crewai/utilities/string_utils.py | 2 +- .../test_task_interpolation_with_hyphens.yaml | 121 ++++++++++++++++++ tests/task_test.py | 106 +++++---------- 3 files changed, 157 insertions(+), 72 deletions(-) create mode 100644 tests/cassettes/test_task_interpolation_with_hyphens.yaml diff --git a/src/crewai/utilities/string_utils.py b/src/crewai/utilities/string_utils.py index 9a1857781..255e66a0b 100644 --- a/src/crewai/utilities/string_utils.py +++ b/src/crewai/utilities/string_utils.py @@ -59,7 +59,7 @@ def interpolate_only( # The regex pattern to find valid variable placeholders # Matches {variable_name} where variable_name starts with a letter/underscore # and contains only letters, numbers, and underscores - pattern = r"\{([A-Za-z_][A-Za-z0-9_]*)\}" + pattern = r"\{([A-Za-z_][A-Za-z0-9_\-]*)\}" # Find all matching variables in the input string variables = re.findall(pattern, input_string) diff --git a/tests/cassettes/test_task_interpolation_with_hyphens.yaml b/tests/cassettes/test_task_interpolation_with_hyphens.yaml new file mode 100644 index 000000000..f0f1e87c2 --- /dev/null +++ b/tests/cassettes/test_task_interpolation_with_hyphens.yaml @@ -0,0 +1,121 @@ +interactions: +- request: + body: '{"messages": [{"role": "system", "content": "You are Researcher. You''re + an expert researcher, specialized in technology, software engineering, AI and + startups. You work as a freelancer and is now working on doing research and + analysis for a new customer.\nYour personal goal is: be an assistant that responds + with say hello world\nTo give my best complete final answer to the task respond + using the exact following format:\n\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described.\n\nI MUST use these formats, my job depends on + it!"}, {"role": "user", "content": "\nCurrent Task: be an assistant that responds + with say hello world\n\nThis is the expected criteria for your final answer: + The response should be addressing: say hello world\nyou MUST return the actual + complete content as the final answer, not a summary.\n\nBegin! This is VERY + important to you, use the tools available and give your best Final Answer, your + job depends on it!\n\nThought:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '1108' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.12.9 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + body: + string: !!binary | + H4sIAAAAAAAAA4xSTW/UMBC951cMPicoScMu3RuIooUDcOOrVeS1J4mp4zG2sy2q9r9XTrqbtBSJ + iyX7zXt+b2buEgCmJNsAEx0Porc6e/vt4nf3xVxweVZ+3v/Q17fF9+pjs92+O//0iqWRQbtfKMKR + 9VJQbzUGRWaChUMeMKoW62pdropVfjYCPUnUkdbakFWU9cqorMzLKsvXWfH6gd2REujZBn4mAAB3 + 4xl9Gom3bAN5enzp0XveItucigCYIx1fGPde+cBNYOkMCjIBzWj9Axi6AcENtGqPwKGNtoEbf4MO + 4NK8V4ZreDPeN7BFrSmFr+S0fLGUdNgMnsdYZtB6AXBjKPDYljHM1QNyONnX1FpHO/+EyhpllO9q + h9yTiVZ9IMtG9JAAXI1tGh4lZ9ZRb0Md6BrH78p8NemxeTozWhzBQIHrBass02f0aomBK+0XjWaC + iw7lTJ2nwgepaAEki9R/u3lOe0quTPs/8jMgBNqAsrYOpRKPE89lDuPy/qvs1OXRMPPo9kpgHRS6 + OAmJDR/0tFLM//EB+7pRpkVnnZr2qrH1utjl5bo6bzhLDsk9AAAA//8DAAxaM/dlAwAA + headers: + CF-RAY: + - 93fdd19cdbfb6428-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Wed, 14 May 2025 22:26:43 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=eCtOgOCsKt_ybdNPdtFAocCmuQbNltR52chaHVe7Y_Q-1747261603-1.0.1.1-827eoA7wHS5SOkTsTqoMq6OSioi0VznQBVjvmabNSVX1bf5PpWZvblw58iggZ_wyKDB0EuVoeLKFspgBJa0kuQYR17hu43Y2C14sgdvOXIE; + path=/; expires=Wed, 14-May-25 22:56:43 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=QUa5MnypdaVxO826bwdQaN4G6CBEV8HYVV.7OLF.qvQ-1747261603742-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '307' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '309' + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999757' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_61d9066e0258b7095517f9f9c01d38e9 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/task_test.py b/tests/task_test.py index b09f69646..42d709a4f 100644 --- a/tests/task_test.py +++ b/tests/task_test.py @@ -837,9 +837,6 @@ def test_interpolate_inputs(): def test_interpolate_only(): """Test the interpolate_only method for various scenarios including JSON structure preservation.""" - task = Task( - description="Unused in this test", expected_output="Unused in this test" - ) # Test JSON structure preservation json_string = '{"info": "Look at {placeholder}", "nested": {"val": "{nestedVal}"}}' @@ -871,10 +868,6 @@ def test_interpolate_only(): def test_interpolate_only_with_dict_inside_expected_output(): """Test the interpolate_only method for various scenarios including JSON structure preservation.""" - task = Task( - description="Unused in this test", - expected_output="Unused in this test: {questions}", - ) json_string = '{"questions": {"main_question": "What is the user\'s name?", "secondary_question": "What is the user\'s age?"}}' result = interpolate_only( @@ -1094,11 +1087,6 @@ def test_task_execution_times(): def test_interpolate_with_list_of_strings(): - task = Task( - description="Test list interpolation", - expected_output="List: {items}", - ) - # Test simple list of strings input_str = "Available items: {items}" inputs = {"items": ["apple", "banana", "cherry"]} @@ -1112,11 +1100,6 @@ def test_interpolate_with_list_of_strings(): def test_interpolate_with_list_of_dicts(): - task = Task( - description="Test list of dicts interpolation", - expected_output="People: {people}", - ) - input_data = { "people": [ {"name": "Alice", "age": 30, "skills": ["Python", "AI"]}, @@ -1137,11 +1120,6 @@ def test_interpolate_with_list_of_dicts(): def test_interpolate_with_nested_structures(): - task = Task( - description="Test nested structures", - expected_output="Company: {company}", - ) - input_data = { "company": { "name": "TechCorp", @@ -1165,11 +1143,6 @@ def test_interpolate_with_nested_structures(): def test_interpolate_with_special_characters(): - task = Task( - description="Test special characters in dicts", - expected_output="Data: {special_data}", - ) - input_data = { "special_data": { "quotes": """This has "double" and 'single' quotes""", @@ -1188,11 +1161,6 @@ def test_interpolate_with_special_characters(): def test_interpolate_mixed_types(): - task = Task( - description="Test mixed type interpolation", - expected_output="Mixed: {data}", - ) - input_data = { "data": { "name": "Test Dataset", @@ -1214,11 +1182,6 @@ def test_interpolate_mixed_types(): def test_interpolate_complex_combination(): - task = Task( - description="Test complex combination", - expected_output="Report: {report}", - ) - input_data = { "report": [ { @@ -1243,11 +1206,6 @@ def test_interpolate_complex_combination(): def test_interpolate_invalid_type_validation(): - task = Task( - description="Test invalid type validation", - expected_output="Should never reach here", - ) - # Test with invalid top-level type with pytest.raises(ValueError) as excinfo: interpolate_only("{data}", {"data": set()}) # type: ignore we are purposely testing this failure @@ -1268,11 +1226,6 @@ def test_interpolate_invalid_type_validation(): def test_interpolate_custom_object_validation(): - task = Task( - description="Test custom object rejection", - expected_output="Should never reach here", - ) - class CustomObject: def __init__(self, value): self.value = value @@ -1304,11 +1257,6 @@ def test_interpolate_custom_object_validation(): def test_interpolate_valid_complex_types(): - task = Task( - description="Test valid complex types", - expected_output="Validation should pass", - ) - # Valid complex structure valid_data = { "name": "Valid Dataset", @@ -1328,11 +1276,6 @@ def test_interpolate_valid_complex_types(): def test_interpolate_edge_cases(): - task = Task( - description="Test edge cases", - expected_output="Edge case handling", - ) - # Test empty dict and list assert interpolate_only("{}", {"data": {}}) == "{}" assert interpolate_only("[]", {"data": []}) == "[]" @@ -1347,11 +1290,6 @@ def test_interpolate_edge_cases(): def test_interpolate_valid_types(): - task = Task( - description="Test valid types including null and boolean", - expected_output="Should pass validation", - ) - # Test with boolean and null values (valid JSON types) valid_data = { "name": "Test", @@ -1373,11 +1311,11 @@ def test_interpolate_valid_types(): def test_task_with_no_max_execution_time(): researcher = Agent( - role="Researcher", - goal="Make the best research and analysis on content about AI and AI agents", - backstory="You're an expert researcher, specialized in technology, software engineering, AI and startups. You work as a freelancer and is now working on doing research and analysis for a new customer.", - allow_delegation=False, - max_execution_time=None + role="Researcher", + goal="Make the best research and analysis on content about AI and AI agents", + backstory="You're an expert researcher, specialized in technology, software engineering, AI and startups. You work as a freelancer and is now working on doing research and analysis for a new customer.", + allow_delegation=False, + max_execution_time=None, ) task = Task( @@ -1386,7 +1324,7 @@ def test_task_with_no_max_execution_time(): agent=researcher, ) - with patch.object(Agent, "_execute_without_timeout", return_value = "ok") as execute: + with patch.object(Agent, "_execute_without_timeout", return_value="ok") as execute: result = task.execute_sync(agent=researcher) assert result.raw == "ok" execute.assert_called_once() @@ -1395,6 +1333,7 @@ def test_task_with_no_max_execution_time(): @pytest.mark.vcr(filter_headers=["authorization"]) def test_task_with_max_execution_time(): from crewai.tools import tool + """Test that execution raises TimeoutError when max_execution_time is exceeded.""" @tool("what amazing tool", result_as_answer=True) @@ -1412,7 +1351,7 @@ def test_task_with_max_execution_time(): ), allow_delegation=False, tools=[my_tool], - max_execution_time=4 + max_execution_time=4, ) task = Task( @@ -1428,6 +1367,7 @@ def test_task_with_max_execution_time(): @pytest.mark.vcr(filter_headers=["authorization"]) def test_task_with_max_execution_time_exceeded(): from crewai.tools import tool + """Test that execution raises TimeoutError when max_execution_time is exceeded.""" @tool("what amazing tool", result_as_answer=True) @@ -1445,7 +1385,7 @@ def test_task_with_max_execution_time_exceeded(): ), allow_delegation=False, tools=[my_tool], - max_execution_time=1 + max_execution_time=1, ) task = Task( @@ -1455,4 +1395,28 @@ def test_task_with_max_execution_time_exceeded(): ) with pytest.raises(TimeoutError): - task.execute_sync(agent=researcher) \ No newline at end of file + task.execute_sync(agent=researcher) + + +@pytest.mark.vcr(filter_headers=["authorization"]) +def test_task_interpolation_with_hyphens(): + agent = Agent( + role="Researcher", + goal="be an assistant that responds with {interpolation-with-hyphens}", + backstory="You're an expert researcher, specialized in technology, software engineering, AI and startups. You work as a freelancer and is now working on doing research and analysis for a new customer.", + allow_delegation=False, + ) + task = Task( + description="be an assistant that responds with {interpolation-with-hyphens}", + expected_output="The response should be addressing: {interpolation-with-hyphens}", + agent=agent, + ) + crew = Crew( + agents=[agent], + tasks=[task], + verbose=True, + ) + result = crew.kickoff(inputs={"interpolation-with-hyphens": "say hello world"}) + assert "say hello world" in task.prompt() + + assert result.raw == "Hello, World!" From 3a114463f91350bcc3ca586098a0dd721263951a Mon Sep 17 00:00:00 2001 From: Lorenze Jay <63378463+lorenzejay@users.noreply.github.com> Date: Wed, 14 May 2025 16:48:21 -0700 Subject: [PATCH 24/40] Update version to 0.120.0 and dependencies in pyproject.toml and uv.lock files (#2835) --- pyproject.toml | 4 ++-- src/crewai/__init__.py | 2 +- src/crewai/cli/templates/crew/pyproject.toml | 2 +- src/crewai/cli/templates/flow/pyproject.toml | 2 +- src/crewai/cli/templates/tool/pyproject.toml | 2 +- uv.lock | 10 +++++----- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 64deb4df1..8d6d645c6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "crewai" -version = "0.119.0" +version = "0.120.0" description = "Cutting-edge framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks." readme = "README.md" requires-python = ">=3.10,<3.13" @@ -45,7 +45,7 @@ Documentation = "https://docs.crewai.com" Repository = "https://github.com/crewAIInc/crewAI" [project.optional-dependencies] -tools = ["crewai-tools~=0.44.0"] +tools = ["crewai-tools~=0.45.0"] embeddings = [ "tiktoken~=0.7.0" ] diff --git a/src/crewai/__init__.py b/src/crewai/__init__.py index 42ce55390..85a87ec2a 100644 --- a/src/crewai/__init__.py +++ b/src/crewai/__init__.py @@ -17,7 +17,7 @@ warnings.filterwarnings( category=UserWarning, module="pydantic.main", ) -__version__ = "0.119.0" +__version__ = "0.120.0" __all__ = [ "Agent", "Crew", diff --git a/src/crewai/cli/templates/crew/pyproject.toml b/src/crewai/cli/templates/crew/pyproject.toml index d657f1c46..3b7b8c284 100644 --- a/src/crewai/cli/templates/crew/pyproject.toml +++ b/src/crewai/cli/templates/crew/pyproject.toml @@ -5,7 +5,7 @@ description = "{{name}} using crewAI" authors = [{ name = "Your Name", email = "you@example.com" }] requires-python = ">=3.10,<3.13" dependencies = [ - "crewai[tools]>=0.119.0,<1.0.0" + "crewai[tools]>=0.120.0,<1.0.0" ] [project.scripts] diff --git a/src/crewai/cli/templates/flow/pyproject.toml b/src/crewai/cli/templates/flow/pyproject.toml index 0a74a378c..aaf779e1a 100644 --- a/src/crewai/cli/templates/flow/pyproject.toml +++ b/src/crewai/cli/templates/flow/pyproject.toml @@ -5,7 +5,7 @@ description = "{{name}} using crewAI" authors = [{ name = "Your Name", email = "you@example.com" }] requires-python = ">=3.10,<3.13" dependencies = [ - "crewai[tools]>=0.119.0,<1.0.0", + "crewai[tools]>=0.120.0,<1.0.0", ] [project.scripts] diff --git a/src/crewai/cli/templates/tool/pyproject.toml b/src/crewai/cli/templates/tool/pyproject.toml index 72463bc48..8b0e7d18a 100644 --- a/src/crewai/cli/templates/tool/pyproject.toml +++ b/src/crewai/cli/templates/tool/pyproject.toml @@ -5,7 +5,7 @@ description = "Power up your crews with {{folder_name}}" readme = "README.md" requires-python = ">=3.10,<3.13" dependencies = [ - "crewai[tools]>=0.119.0" + "crewai[tools]>=0.120.0" ] [tool.crewai] diff --git a/uv.lock b/uv.lock index f3cb68ceb..d953fe589 100644 --- a/uv.lock +++ b/uv.lock @@ -738,7 +738,7 @@ wheels = [ [[package]] name = "crewai" -version = "0.119.0" +version = "0.120.0" source = { editable = "." } dependencies = [ { name = "appdirs" }, @@ -828,7 +828,7 @@ requires-dist = [ { name = "blinker", specifier = ">=1.9.0" }, { name = "chromadb", specifier = ">=0.5.23" }, { name = "click", specifier = ">=8.1.7" }, - { name = "crewai-tools", marker = "extra == 'tools'", specifier = "~=0.44.0" }, + { name = "crewai-tools", marker = "extra == 'tools'", specifier = "~=0.45.0" }, { name = "docling", marker = "extra == 'docling'", specifier = ">=2.12.0" }, { name = "fastembed", marker = "extra == 'fastembed'", specifier = ">=0.4.1" }, { name = "instructor", specifier = ">=1.3.3" }, @@ -879,7 +879,7 @@ dev = [ [[package]] name = "crewai-tools" -version = "0.44.0" +version = "0.45.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "chromadb" }, @@ -894,9 +894,9 @@ dependencies = [ { name = "pytube" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b8/1f/2977dc72628c1225bf5788ae22a65e5a53df384d19b197646d2c4760684e/crewai_tools-0.44.0.tar.gz", hash = "sha256:44e0c26079396503a326efdd9ff34bf369d410cbf95c362cc523db65b18f3c3a", size = 892004 } +sdist = { url = "https://files.pythonhosted.org/packages/e9/3a/7070dcacef56702c5d83ad1a87021b1666ff1850ff80b3aa7540892406e7/crewai_tools-0.45.0.tar.gz", hash = "sha256:1b2e4eff3f928ce5fac308d6e648719a0e4718a1228ae98980aa0d74fc16bfc7", size = 909723 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/80/b91aa837d06edbb472445ea3c92d7619518894fd3049d480e5fffbf0c21b/crewai_tools-0.44.0-py3-none-any.whl", hash = "sha256:119e2365fe66ee16e18a5e8e222994b19f76bafcc8c1bb87f61609c1e39b2463", size = 583462 }, + { url = "https://files.pythonhosted.org/packages/6e/72/db45626973027c992df75cbc7ef391f18393d631be3bceb6388c1b9f01e1/crewai_tools-0.45.0-py3-none-any.whl", hash = "sha256:9dd34e4792c075ee7a72134aedaab268e78d0e350114fd7fe2426e691c5f52a3", size = 602659 }, ] [[package]] From c566747d4a6083c3928ad6c8b2920066e12d21cf Mon Sep 17 00:00:00 2001 From: Lorenze Jay <63378463+lorenzejay@users.noreply.github.com> Date: Wed, 14 May 2025 17:34:07 -0700 Subject: [PATCH 25/40] patch version 0.120.1 --- pyproject.toml | 2 +- src/crewai/__init__.py | 2 +- src/crewai/cli/templates/crew/pyproject.toml | 2 +- src/crewai/cli/templates/flow/pyproject.toml | 2 +- src/crewai/cli/templates/tool/pyproject.toml | 2 +- uv.lock | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 8d6d645c6..2c71f236c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "crewai" -version = "0.120.0" +version = "0.120.1" description = "Cutting-edge framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks." readme = "README.md" requires-python = ">=3.10,<3.13" diff --git a/src/crewai/__init__.py b/src/crewai/__init__.py index 85a87ec2a..2144c36c8 100644 --- a/src/crewai/__init__.py +++ b/src/crewai/__init__.py @@ -17,7 +17,7 @@ warnings.filterwarnings( category=UserWarning, module="pydantic.main", ) -__version__ = "0.120.0" +__version__ = "0.120.1" __all__ = [ "Agent", "Crew", diff --git a/src/crewai/cli/templates/crew/pyproject.toml b/src/crewai/cli/templates/crew/pyproject.toml index 3b7b8c284..3f5166bfc 100644 --- a/src/crewai/cli/templates/crew/pyproject.toml +++ b/src/crewai/cli/templates/crew/pyproject.toml @@ -5,7 +5,7 @@ description = "{{name}} using crewAI" authors = [{ name = "Your Name", email = "you@example.com" }] requires-python = ">=3.10,<3.13" dependencies = [ - "crewai[tools]>=0.120.0,<1.0.0" + "crewai[tools]>=0.120.1,<1.0.0" ] [project.scripts] diff --git a/src/crewai/cli/templates/flow/pyproject.toml b/src/crewai/cli/templates/flow/pyproject.toml index aaf779e1a..5a86b4e6f 100644 --- a/src/crewai/cli/templates/flow/pyproject.toml +++ b/src/crewai/cli/templates/flow/pyproject.toml @@ -5,7 +5,7 @@ description = "{{name}} using crewAI" authors = [{ name = "Your Name", email = "you@example.com" }] requires-python = ">=3.10,<3.13" dependencies = [ - "crewai[tools]>=0.120.0,<1.0.0", + "crewai[tools]>=0.120.1,<1.0.0", ] [project.scripts] diff --git a/src/crewai/cli/templates/tool/pyproject.toml b/src/crewai/cli/templates/tool/pyproject.toml index 8b0e7d18a..192b9b314 100644 --- a/src/crewai/cli/templates/tool/pyproject.toml +++ b/src/crewai/cli/templates/tool/pyproject.toml @@ -5,7 +5,7 @@ description = "Power up your crews with {{folder_name}}" readme = "README.md" requires-python = ">=3.10,<3.13" dependencies = [ - "crewai[tools]>=0.120.0" + "crewai[tools]>=0.120.1" ] [tool.crewai] diff --git a/uv.lock b/uv.lock index d953fe589..987fc993d 100644 --- a/uv.lock +++ b/uv.lock @@ -738,7 +738,7 @@ wheels = [ [[package]] name = "crewai" -version = "0.120.0" +version = "0.120.1" source = { editable = "." } dependencies = [ { name = "appdirs" }, From 49bbf3f234e2ce89135eeb62f348f04cc75dbb15 Mon Sep 17 00:00:00 2001 From: Lucas Gomide Date: Thu, 15 May 2025 10:17:21 -0300 Subject: [PATCH 26/40] Docs Updates (#2840) * docs: remove EventHandler reference on docs * docs: add section explaining how to run a Crew from CrewBase --- docs/concepts/crews.mdx | 11 +++++++++++ docs/concepts/llms.mdx | 24 +++++++++++++++--------- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/docs/concepts/crews.mdx b/docs/concepts/crews.mdx index 97d1a7d6c..8ebefff2f 100644 --- a/docs/concepts/crews.mdx +++ b/docs/concepts/crews.mdx @@ -117,6 +117,12 @@ class YourCrewName: ) ``` +How to run the above code: + +```python code +YourCrewName().crew().kickoff(inputs={"any": "input here"}) +``` + Tasks will be executed in the order they are defined. @@ -184,6 +190,11 @@ class YourCrewName: verbose=True ) ``` +How to run the above code: + +```python code +YourCrewName().crew().kickoff(inputs={}) +``` In this example: diff --git a/docs/concepts/llms.mdx b/docs/concepts/llms.mdx index 249a2c7e5..cef763146 100644 --- a/docs/concepts/llms.mdx +++ b/docs/concepts/llms.mdx @@ -677,18 +677,24 @@ CrewAI supports streaming responses from LLMs, allowing your application to rece CrewAI emits events for each chunk received during streaming: ```python - from crewai import LLM - from crewai.utilities.events import EventHandler, LLMStreamChunkEvent + from crewai.utilities.events import ( + LLMStreamChunkEvent + ) + from crewai.utilities.events.base_event_listener import BaseEventListener - class MyEventHandler(EventHandler): - def on_llm_stream_chunk(self, event: LLMStreamChunkEvent): - # Process each chunk as it arrives - print(f"Received chunk: {event.chunk}") + class MyCustomListener(BaseEventListener): + def setup_listeners(self, crewai_event_bus): + @crewai_event_bus.on(LLMStreamChunkEvent) + def on_llm_stream_chunk(self, event: LLMStreamChunkEvent): + # Process each chunk as it arrives + print(f"Received chunk: {event.chunk}") - # Register the event handler - from crewai.utilities.events import crewai_event_bus - crewai_event_bus.register_handler(MyEventHandler()) + my_listener = MyCustomListener() ``` + + + [Click here](https://docs.crewai.com/concepts/event-listener#event-listeners) for more details + From 0b35e40a2467111a0cfc422958825985a053cd64 Mon Sep 17 00:00:00 2001 From: Tony Kipkemboi Date: Thu, 15 May 2025 12:24:25 -0400 Subject: [PATCH 27/40] docs: add StagehandTool documentation and improve MDX structure (#2842) --- docs/docs.json | 1 + docs/guides/advanced/customizing-prompts.mdx | 2 - docs/guides/advanced/fingerprinting.mdx | 2 - .../agents/crafting-effective-agents.mdx | 2 - docs/guides/concepts/evaluating-use-cases.mdx | 2 - docs/guides/crews/first-crew.mdx | 2 - docs/guides/flows/first-flow.mdx | 2 - docs/guides/flows/mastering-flow-state.mdx | 2 - docs/tools/stagehandtool.mdx | 244 ++++++++++++++++++ 9 files changed, 245 insertions(+), 14 deletions(-) create mode 100644 docs/tools/stagehandtool.mdx diff --git a/docs/docs.json b/docs/docs.json index ce5498a0f..47bf8d889 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -129,6 +129,7 @@ "tools/seleniumscrapingtool", "tools/snowflakesearchtool", "tools/spidertool", + "tools/stagehandtool", "tools/txtsearchtool", "tools/visiontool", "tools/weaviatevectorsearchtool", diff --git a/docs/guides/advanced/customizing-prompts.mdx b/docs/guides/advanced/customizing-prompts.mdx index 4458184fc..fb7c3c02a 100644 --- a/docs/guides/advanced/customizing-prompts.mdx +++ b/docs/guides/advanced/customizing-prompts.mdx @@ -4,8 +4,6 @@ description: Dive deeper into low-level prompt customization for CrewAI, enablin icon: message-pen --- -# Customizing Prompts at a Low Level - ## Why Customize Prompts? Although CrewAI's default prompts work well for many scenarios, low-level customization opens the door to significantly more flexible and powerful agent behavior. Here’s why you might want to take advantage of this deeper control: diff --git a/docs/guides/advanced/fingerprinting.mdx b/docs/guides/advanced/fingerprinting.mdx index 4de78423a..2d5267f74 100644 --- a/docs/guides/advanced/fingerprinting.mdx +++ b/docs/guides/advanced/fingerprinting.mdx @@ -4,8 +4,6 @@ description: Learn how to use CrewAI's fingerprinting system to uniquely identif icon: fingerprint --- -# Fingerprinting in CrewAI - ## Overview Fingerprints in CrewAI provide a way to uniquely identify and track components throughout their lifecycle. Each `Agent`, `Crew`, and `Task` automatically receives a unique fingerprint when created, which cannot be manually overridden. diff --git a/docs/guides/agents/crafting-effective-agents.mdx b/docs/guides/agents/crafting-effective-agents.mdx index 411b78f65..3eb208b0a 100644 --- a/docs/guides/agents/crafting-effective-agents.mdx +++ b/docs/guides/agents/crafting-effective-agents.mdx @@ -4,8 +4,6 @@ description: Learn best practices for designing powerful, specialized AI agents icon: robot --- -# Crafting Effective Agents - ## The Art and Science of Agent Design At the heart of CrewAI lies the agent - a specialized AI entity designed to perform specific roles within a collaborative framework. While creating basic agents is simple, crafting truly effective agents that produce exceptional results requires understanding key design principles and best practices. diff --git a/docs/guides/concepts/evaluating-use-cases.mdx b/docs/guides/concepts/evaluating-use-cases.mdx index 9aec99fa3..3b2498cbe 100644 --- a/docs/guides/concepts/evaluating-use-cases.mdx +++ b/docs/guides/concepts/evaluating-use-cases.mdx @@ -4,8 +4,6 @@ description: Learn how to assess your AI application needs and choose the right icon: scale-balanced --- -# Evaluating Use Cases for CrewAI - ## Understanding the Decision Framework When building AI applications with CrewAI, one of the most important decisions you'll make is choosing the right approach for your specific use case. Should you use a Crew? A Flow? A combination of both? This guide will help you evaluate your requirements and make informed architectural decisions. diff --git a/docs/guides/crews/first-crew.mdx b/docs/guides/crews/first-crew.mdx index db770c0de..3a54bfd55 100644 --- a/docs/guides/crews/first-crew.mdx +++ b/docs/guides/crews/first-crew.mdx @@ -4,8 +4,6 @@ description: Step-by-step tutorial to create a collaborative AI team that works icon: users-gear --- -# Build Your First Crew - ## Unleashing the Power of Collaborative AI Imagine having a team of specialized AI agents working together seamlessly to solve complex problems, each contributing their unique skills to achieve a common goal. This is the power of CrewAI - a framework that enables you to create collaborative AI systems that can accomplish tasks far beyond what a single AI could achieve alone. diff --git a/docs/guides/flows/first-flow.mdx b/docs/guides/flows/first-flow.mdx index fab6f8e42..efac7700f 100644 --- a/docs/guides/flows/first-flow.mdx +++ b/docs/guides/flows/first-flow.mdx @@ -4,8 +4,6 @@ description: Learn how to create structured, event-driven workflows with precise icon: diagram-project --- -# Build Your First Flow - ## Taking Control of AI Workflows with Flows CrewAI Flows represent the next level in AI orchestration - combining the collaborative power of AI agent crews with the precision and flexibility of procedural programming. While crews excel at agent collaboration, flows give you fine-grained control over exactly how and when different components of your AI system interact. diff --git a/docs/guides/flows/mastering-flow-state.mdx b/docs/guides/flows/mastering-flow-state.mdx index 24a852322..22ce2a797 100644 --- a/docs/guides/flows/mastering-flow-state.mdx +++ b/docs/guides/flows/mastering-flow-state.mdx @@ -4,8 +4,6 @@ description: A comprehensive guide to managing, persisting, and leveraging state icon: diagram-project --- -# Mastering Flow State Management - ## Understanding the Power of State in Flows State management is the backbone of any sophisticated AI workflow. In CrewAI Flows, the state system allows you to maintain context, share data between steps, and build complex application logic. Mastering state management is essential for creating reliable, maintainable, and powerful AI applications. diff --git a/docs/tools/stagehandtool.mdx b/docs/tools/stagehandtool.mdx new file mode 100644 index 000000000..13de0853e --- /dev/null +++ b/docs/tools/stagehandtool.mdx @@ -0,0 +1,244 @@ +--- +title: Stagehand Tool +description: Web automation tool that integrates Stagehand with CrewAI for browser interaction and automation +icon: hand +--- + + +# Overview + +The `StagehandTool` integrates the [Stagehand](https://docs.stagehand.dev/get_started/introduction) framework with CrewAI, enabling agents to interact with websites and automate browser tasks using natural language instructions. + +## Overview + +Stagehand is a powerful browser automation framework built by Browserbase that allows AI agents to: + +- Navigate to websites +- Click buttons, links, and other elements +- Fill in forms +- Extract data from web pages +- Observe and identify elements +- Perform complex workflows + +The StagehandTool wraps the Stagehand Python SDK to provide CrewAI agents with browser control capabilities through three core primitives: + +1. **Act**: Perform actions like clicking, typing, or navigating +2. **Extract**: Extract structured data from web pages +3. **Observe**: Identify and analyze elements on the page + +## Prerequisites + +Before using this tool, ensure you have: + +1. A [Browserbase](https://www.browserbase.com/) account with API key and project ID +2. An API key for an LLM (OpenAI or Anthropic Claude) +3. The Stagehand Python SDK installed + +Install the required dependency: + +```bash +pip install stagehand-py +``` + +## Usage + +### Basic Implementation + +The StagehandTool can be implemented in two ways: + +#### 1. Using Context Manager (Recommended) + + The context manager approach is recommended as it ensures proper cleanup of resources even if exceptions occur. + + +```python +from crewai import Agent, Task, Crew +from crewai_tools import StagehandTool +from stagehand.schemas import AvailableModel + +# Initialize the tool with your API keys using a context manager +with StagehandTool( + api_key="your-browserbase-api-key", + project_id="your-browserbase-project-id", + model_api_key="your-llm-api-key", # OpenAI or Anthropic API key + model_name=AvailableModel.CLAUDE_3_7_SONNET_LATEST, # Optional: specify which model to use +) as stagehand_tool: + # Create an agent with the tool + researcher = Agent( + role="Web Researcher", + goal="Find and summarize information from websites", + backstory="I'm an expert at finding information online.", + verbose=True, + tools=[stagehand_tool], + ) + + # Create a task that uses the tool + research_task = Task( + description="Go to https://www.example.com and tell me what you see on the homepage.", + agent=researcher, + ) + + # Run the crew + crew = Crew( + agents=[researcher], + tasks=[research_task], + verbose=True, + ) + + result = crew.kickoff() + print(result) +``` + +#### 2. Manual Resource Management + +```python +from crewai import Agent, Task, Crew +from crewai_tools import StagehandTool +from stagehand.schemas import AvailableModel + +# Initialize the tool with your API keys +stagehand_tool = StagehandTool( + api_key="your-browserbase-api-key", + project_id="your-browserbase-project-id", + model_api_key="your-llm-api-key", + model_name=AvailableModel.CLAUDE_3_7_SONNET_LATEST, +) + +try: + # Create an agent with the tool + researcher = Agent( + role="Web Researcher", + goal="Find and summarize information from websites", + backstory="I'm an expert at finding information online.", + verbose=True, + tools=[stagehand_tool], + ) + + # Create a task that uses the tool + research_task = Task( + description="Go to https://www.example.com and tell me what you see on the homepage.", + agent=researcher, + ) + + # Run the crew + crew = Crew( + agents=[researcher], + tasks=[research_task], + verbose=True, + ) + + result = crew.kickoff() + print(result) +finally: + # Explicitly clean up resources + stagehand_tool.close() +``` + +## Command Types + +The StagehandTool supports three different command types for specific web automation tasks: + +### 1. Act Command + +The `act` command type (default) enables webpage interactions like clicking buttons, filling forms, and navigation. + +```python +# Perform an action (default behavior) +result = stagehand_tool.run( + instruction="Click the login button", + url="https://example.com", + command_type="act" # Default, so can be omitted +) + +# Fill out a form +result = stagehand_tool.run( + instruction="Fill the contact form with name 'John Doe', email 'john@example.com', and message 'Hello world'", + url="https://example.com/contact" +) +``` + +### 2. Extract Command + +The `extract` command type retrieves structured data from webpages. + +```python +# Extract all product information +result = stagehand_tool.run( + instruction="Extract all product names, prices, and descriptions", + url="https://example.com/products", + command_type="extract" +) + +# Extract specific information with a selector +result = stagehand_tool.run( + instruction="Extract the main article title and content", + url="https://example.com/blog/article", + command_type="extract", + selector=".article-container" # Optional CSS selector +) +``` + +### 3. Observe Command + +The `observe` command type identifies and analyzes webpage elements. + +```python +# Find interactive elements +result = stagehand_tool.run( + instruction="Find all interactive elements in the navigation menu", + url="https://example.com", + command_type="observe" +) + +# Identify form fields +result = stagehand_tool.run( + instruction="Identify all the input fields in the registration form", + url="https://example.com/register", + command_type="observe", + selector="#registration-form" +) +``` + +## Configuration Options + +Customize the StagehandTool behavior with these parameters: + +```python +stagehand_tool = StagehandTool( + api_key="your-browserbase-api-key", + project_id="your-browserbase-project-id", + model_api_key="your-llm-api-key", + model_name=AvailableModel.CLAUDE_3_7_SONNET_LATEST, + dom_settle_timeout_ms=5000, # Wait longer for DOM to settle + headless=True, # Run browser in headless mode + self_heal=True, # Attempt to recover from errors + wait_for_captcha_solves=True, # Wait for CAPTCHA solving + verbose=1, # Control logging verbosity (0-3) +) +``` + +## Best Practices + +1. **Be Specific**: Provide detailed instructions for better results +2. **Choose Appropriate Command Type**: Select the right command type for your task +3. **Use Selectors**: Leverage CSS selectors to improve accuracy +4. **Break Down Complex Tasks**: Split complex workflows into multiple tool calls +5. **Implement Error Handling**: Add error handling for potential issues + +## Troubleshooting + + +Common issues and solutions: + +- **Session Issues**: Verify API keys for both Browserbase and LLM provider +- **Element Not Found**: Increase `dom_settle_timeout_ms` for slower pages +- **Action Failures**: Use `observe` to identify correct elements first +- **Incomplete Data**: Refine instructions or provide specific selectors + + +## Additional Resources + +For questions about the CrewAI integration: +- Join Stagehand's [Slack community](https://stagehand.dev/slack) +- Open an issue in the [Stagehand repository](https://github.com/browserbase/stagehand) +- Visit [Stagehand documentation](https://docs.stagehand.dev/) From aa6e5b703e4b530fdddd2e8a3ed1326b0db451cc Mon Sep 17 00:00:00 2001 From: Vidit Ostwal <110953813+Vidit-Ostwal@users.noreply.github.com> Date: Sat, 17 May 2025 00:48:11 +0530 Subject: [PATCH 28/40] Fix fail llama test (#2819) * Changed test case * Addd new interaction with llama * fixed linting issue * Gemma Flaky test case * Gemma Flaky test case * Minor change * Minor change * Dropped API key * Removed falky test case check file --- .../test_converter_with_llama3_2_model.yaml | 6168 +---------------- tests/utilities/test_converter.py | 13 +- 2 files changed, 44 insertions(+), 6137 deletions(-) diff --git a/tests/utilities/cassettes/test_converter_with_llama3_2_model.yaml b/tests/utilities/cassettes/test_converter_with_llama3_2_model.yaml index 6ff5c361b..e468d8e11 100644 --- a/tests/utilities/cassettes/test_converter_with_llama3_2_model.yaml +++ b/tests/utilities/cassettes/test_converter_with_llama3_2_model.yaml @@ -1,6 +1,10 @@ interactions: - request: - body: '{"name": "llama3.2:3b"}' + body: '{"model": "meta-llama/llama-3.2-3b-instruct", "messages": [{"role": "system", + "content": "Please convert the following text into valid JSON.\n\nOutput ONLY + the valid JSON and nothing else.\n\nThe JSON must follow this format exactly:\n{\n \"name\": + str,\n \"age\": int\n}"}, {"role": "user", "content": "Name: Alice Llama, Age: + 30"}], "stream": false, "stop": []}' headers: accept: - '*/*' @@ -9,6148 +13,54 @@ interactions: connection: - keep-alive content-length: - - '23' + - '365' content-type: - application/json host: - - localhost:11434 + - openrouter.ai + http-referer: + - https://litellm.ai user-agent: - litellm/1.68.0 + x-title: + - liteLLM method: POST - uri: http://localhost:11434/api/show + uri: https://openrouter.ai/api/v1/chat/completions response: body: - string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version - Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms - and conditions for use, reproduction, distribution \\nand modification of - the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means - the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed - by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations - to provide legal consent and that has legal authority\\nto bind your employer - or such other person or entity if you are entering in this Agreement\\non - their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language - models and software and algorithms, including\\nmachine-learning model code, - trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** - **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair - use of its tools and features, including Llama 3.2. If you access or use Llama - 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The - most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama - show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# - FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE - \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER - stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE - \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: - September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions - for use, reproduction, distribution \\nand modification of the Llama Materials - set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, - manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at - https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D - means you, or your employer or any other person or entity (if you are \\nentering - into this Agreement on such person or entity\u2019s behalf), of the age required - under\\napplicable laws, rules or regulations to provide legal consent and - that has legal authority\\nto bind your employer or such other person or entity - if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama - 3.2\u201D means the foundational large language models and software and algorithms, - including\\nmachine-learning model code, trained model weights, inference-enabling - code, training-enabling code,\\nfine-tuning enabling code and other elements - of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE - \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting - safe and fair use of its tools and features, including Llama 3.2. If you access - or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). - The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop - \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" + string: !!binary | + H4sIAAAAAAAAAwAAAP//dJDBTsMwEER/pZqzU1ICKfKNMwgQEieCKsfZJgbHG9mbghTl31FatZy4 + 7GHm8N7OBNdAo6WQbbY327zMi81t9vwizVv5sB9f22/DdOg730FhiHxwDUVoPFHtxgSFnhvy0OhJ + TOa96c3V8WbF+jor6syFJHG0AgWuP8kKNGxnZG25HzyJ4wAFG8kINdB/Egq2Y2cpQb9P8NwOkesE + HUbvFfYuuNTtIpnEARpJeIBCMOIOtPundaGhH+hcoaeUTEvQEyJ7goZJySUxYRG1HITCYjpVCKan + CnpV4d47S6vH5bsKalXBtMemyGcoRNqPyfiz4IntQnsK5vlDYTwzh8j9IDvhLwoJuiwX5nmOS7xs + ICzGX5K7zTz/AgAA//8DAIXfumyyAQAA headers: - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 07 May 2025 01:18:29 GMT - Transfer-Encoding: - - chunked - status: - code: 200 - message: OK -- request: - body: '{"name": "llama3.2:3b"}' - headers: - accept: - - '*/*' - accept-encoding: - - gzip, deflate - connection: + Access-Control-Allow-Origin: + - '*' + CF-RAY: + - 93ea9f59596559fa-DEL + Connection: - keep-alive - content-length: - - '23' - content-type: + Content-Encoding: + - gzip + Content-Type: - application/json - host: - - localhost:11434 - user-agent: - - litellm/1.68.0 - method: POST - uri: http://localhost:11434/api/show - response: - body: - string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version - Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms - and conditions for use, reproduction, distribution \\nand modification of - the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means - the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed - by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations - to provide legal consent and that has legal authority\\nto bind your employer - or such other person or entity if you are entering in this Agreement\\non - their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language - models and software and algorithms, including\\nmachine-learning model code, - trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** - **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair - use of its tools and features, including Llama 3.2. If you access or use Llama - 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The - most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama - show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# - FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE - \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER - stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE - \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: - September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions - for use, reproduction, distribution \\nand modification of the Llama Materials - set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, - manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at - https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D - means you, or your employer or any other person or entity (if you are \\nentering - into this Agreement on such person or entity\u2019s behalf), of the age required - under\\napplicable laws, rules or regulations to provide legal consent and - that has legal authority\\nto bind your employer or such other person or entity - if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama - 3.2\u201D means the foundational large language models and software and algorithms, - including\\nmachine-learning model code, trained model weights, inference-enabling - code, training-enabling code,\\nfine-tuning enabling code and other elements - of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE - \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting - safe and fair use of its tools and features, including Llama 3.2. If you access - or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). - The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop - \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" - headers: - Content-Type: - - application/json; charset=utf-8 Date: - - Wed, 07 May 2025 01:18:29 GMT - Transfer-Encoding: - - chunked - status: - code: 200 - message: OK -- request: - body: '{"model": "llama3.2:3b", "prompt": "### User:\nName: Alice Llama, Age: - 30\n\n### System:\nProduce JSON OUTPUT ONLY! Adhere to this format {\"name\": - \"function_name\", \"arguments\":{\"argument_name\": \"argument_value\"}} The - following functions are available to you:\n{''type'': ''function'', ''function'': - {''name'': ''SimpleModel'', ''description'': ''Correctly extracted `SimpleModel` - with all the required parameters with correct types'', ''parameters'': {''properties'': - {''name'': {''title'': ''Name'', ''type'': ''string''}, ''age'': {''title'': - ''Age'', ''type'': ''integer''}}, ''required'': [''age'', ''name''], ''type'': - ''object''}}}\n\n\n", "options": {}, "stream": false, "format": "json", "images": - []}' - headers: - accept: - - '*/*' - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '671' - host: - - localhost:11434 - user-agent: - - litellm/1.68.0 - method: POST - uri: http://localhost:11434/api/generate - response: - body: - string: '{"model":"llama3.2:3b","created_at":"2025-05-07T01:18:33.115650342Z","response":"{\"name\": - \"SimpleModel\", \"arguments\": {\"properties\": {\"name\": \"Alice Llama\", - \"age\": 30}}}","done":true,"done_reason":"stop","context":[128006,9125,128007,271,38766,1303,33025,2696,25,6790,220,2366,18,271,128009,128006,882,128007,271,14711,2724,512,678,25,30505,445,81101,11,13381,25,220,966,271,14711,744,512,1360,13677,4823,32090,27785,0,2467,6881,311,420,3645,5324,609,794,330,1723,1292,498,330,16774,23118,14819,1292,794,330,14819,3220,32075,578,2768,5865,527,2561,311,499,512,13922,1337,1232,364,1723,518,364,1723,1232,5473,609,1232,364,16778,1747,518,364,4789,1232,364,34192,398,28532,1595,16778,1747,63,449,682,279,2631,5137,449,4495,4595,518,364,14105,1232,5473,13495,1232,5473,609,1232,5473,2150,1232,364,678,518,364,1337,1232,364,928,25762,364,425,1232,5473,2150,1232,364,17166,518,364,1337,1232,364,11924,8439,2186,364,6413,1232,2570,425,518,364,609,4181,364,1337,1232,364,1735,23742,3818,128009,128006,78191,128007,271,5018,609,794,330,16778,1747,498,330,16774,794,5324,13495,794,5324,609,794,330,62786,445,81101,498,330,425,794,220,966,76642],"total_duration":2722669334,"load_duration":20956583,"prompt_eval_count":167,"prompt_eval_duration":1691522459,"eval_count":28,"eval_duration":1008844417}' - headers: - Content-Length: - - '1303' - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 07 May 2025 01:18:33 GMT - status: - code: 200 - message: OK -- request: - body: '{"name": "llama3.2:3b"}' - headers: - accept: - - '*/*' - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '23' - content-type: - - application/json - host: - - localhost:11434 - user-agent: - - litellm/1.68.0 - method: POST - uri: http://localhost:11434/api/show - response: - body: - string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version - Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms - and conditions for use, reproduction, distribution \\nand modification of - the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means - the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed - by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations - to provide legal consent and that has legal authority\\nto bind your employer - or such other person or entity if you are entering in this Agreement\\non - their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language - models and software and algorithms, including\\nmachine-learning model code, - trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** - **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair - use of its tools and features, including Llama 3.2. If you access or use Llama - 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The - most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama - show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# - FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE - \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER - stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE - \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: - September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions - for use, reproduction, distribution \\nand modification of the Llama Materials - set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, - manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at - https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D - means you, or your employer or any other person or entity (if you are \\nentering - into this Agreement on such person or entity\u2019s behalf), of the age required - under\\napplicable laws, rules or regulations to provide legal consent and - that has legal authority\\nto bind your employer or such other person or entity - if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama - 3.2\u201D means the foundational large language models and software and algorithms, - including\\nmachine-learning model code, trained model weights, inference-enabling - code, training-enabling code,\\nfine-tuning enabling code and other elements - of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE - \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting - safe and fair use of its tools and features, including Llama 3.2. If you access - or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). - The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop - \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" - headers: - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 07 May 2025 01:18:33 GMT - Transfer-Encoding: - - chunked - status: - code: 200 - message: OK -- request: - body: '{"name": "llama3.2:3b"}' - headers: - accept: - - '*/*' - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '23' - content-type: - - application/json - host: - - localhost:11434 - user-agent: - - litellm/1.68.0 - method: POST - uri: http://localhost:11434/api/show - response: - body: - string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version - Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms - and conditions for use, reproduction, distribution \\nand modification of - the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means - the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed - by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations - to provide legal consent and that has legal authority\\nto bind your employer - or such other person or entity if you are entering in this Agreement\\non - their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language - models and software and algorithms, including\\nmachine-learning model code, - trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** - **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair - use of its tools and features, including Llama 3.2. If you access or use Llama - 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The - most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama - show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# - FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE - \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER - stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE - \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: - September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions - for use, reproduction, distribution \\nand modification of the Llama Materials - set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, - manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at - https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D - means you, or your employer or any other person or entity (if you are \\nentering - into this Agreement on such person or entity\u2019s behalf), of the age required - under\\napplicable laws, rules or regulations to provide legal consent and - that has legal authority\\nto bind your employer or such other person or entity - if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama - 3.2\u201D means the foundational large language models and software and algorithms, - including\\nmachine-learning model code, trained model weights, inference-enabling - code, training-enabling code,\\nfine-tuning enabling code and other elements - of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE - \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting - safe and fair use of its tools and features, including Llama 3.2. If you access - or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). - The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop - \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" - headers: - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 07 May 2025 01:18:33 GMT - Transfer-Encoding: - - chunked - status: - code: 200 - message: OK -- request: - body: '{"name": "llama3.2:3b"}' - headers: - accept: - - '*/*' - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '23' - content-type: - - application/json - host: - - localhost:11434 - user-agent: - - litellm/1.68.0 - method: POST - uri: http://localhost:11434/api/show - response: - body: - string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version - Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms - and conditions for use, reproduction, distribution \\nand modification of - the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means - the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed - by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations - to provide legal consent and that has legal authority\\nto bind your employer - or such other person or entity if you are entering in this Agreement\\non - their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language - models and software and algorithms, including\\nmachine-learning model code, - trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** - **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair - use of its tools and features, including Llama 3.2. If you access or use Llama - 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The - most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama - show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# - FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE - \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER - stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE - \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: - September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions - for use, reproduction, distribution \\nand modification of the Llama Materials - set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, - manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at - https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D - means you, or your employer or any other person or entity (if you are \\nentering - into this Agreement on such person or entity\u2019s behalf), of the age required - under\\napplicable laws, rules or regulations to provide legal consent and - that has legal authority\\nto bind your employer or such other person or entity - if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama - 3.2\u201D means the foundational large language models and software and algorithms, - including\\nmachine-learning model code, trained model weights, inference-enabling - code, training-enabling code,\\nfine-tuning enabling code and other elements - of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE - \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting - safe and fair use of its tools and features, including Llama 3.2. If you access - or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). - The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop - \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" - headers: - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 07 May 2025 01:18:33 GMT - Transfer-Encoding: - - chunked - status: - code: 200 - message: OK -- request: - body: '{"name": "llama3.2:3b"}' - headers: - accept: - - '*/*' - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '23' - content-type: - - application/json - host: - - localhost:11434 - user-agent: - - litellm/1.68.0 - method: POST - uri: http://localhost:11434/api/show - response: - body: - string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version - Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms - and conditions for use, reproduction, distribution \\nand modification of - the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means - the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed - by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations - to provide legal consent and that has legal authority\\nto bind your employer - or such other person or entity if you are entering in this Agreement\\non - their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language - models and software and algorithms, including\\nmachine-learning model code, - trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** - **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair - use of its tools and features, including Llama 3.2. If you access or use Llama - 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The - most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama - show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# - FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE - \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER - stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE - \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: - September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions - for use, reproduction, distribution \\nand modification of the Llama Materials - set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, - manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at - https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D - means you, or your employer or any other person or entity (if you are \\nentering - into this Agreement on such person or entity\u2019s behalf), of the age required - under\\napplicable laws, rules or regulations to provide legal consent and - that has legal authority\\nto bind your employer or such other person or entity - if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama - 3.2\u201D means the foundational large language models and software and algorithms, - including\\nmachine-learning model code, trained model weights, inference-enabling - code, training-enabling code,\\nfine-tuning enabling code and other elements - of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE - \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting - safe and fair use of its tools and features, including Llama 3.2. If you access - or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). - The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop - \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" - headers: - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 07 May 2025 01:18:33 GMT - Transfer-Encoding: - - chunked - status: - code: 200 - message: OK -- request: - body: '{"name": "llama3.2:3b"}' - headers: - accept: - - '*/*' - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '23' - content-type: - - application/json - host: - - localhost:11434 - user-agent: - - litellm/1.68.0 - method: POST - uri: http://localhost:11434/api/show - response: - body: - string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version - Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms - and conditions for use, reproduction, distribution \\nand modification of - the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means - the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed - by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations - to provide legal consent and that has legal authority\\nto bind your employer - or such other person or entity if you are entering in this Agreement\\non - their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language - models and software and algorithms, including\\nmachine-learning model code, - trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** - **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair - use of its tools and features, including Llama 3.2. If you access or use Llama - 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The - most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama - show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# - FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE - \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER - stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE - \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: - September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions - for use, reproduction, distribution \\nand modification of the Llama Materials - set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, - manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at - https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D - means you, or your employer or any other person or entity (if you are \\nentering - into this Agreement on such person or entity\u2019s behalf), of the age required - under\\napplicable laws, rules or regulations to provide legal consent and - that has legal authority\\nto bind your employer or such other person or entity - if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama - 3.2\u201D means the foundational large language models and software and algorithms, - including\\nmachine-learning model code, trained model weights, inference-enabling - code, training-enabling code,\\nfine-tuning enabling code and other elements - of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE - \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting - safe and fair use of its tools and features, including Llama 3.2. If you access - or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). - The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop - \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" - headers: - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 07 May 2025 01:18:33 GMT - Transfer-Encoding: - - chunked - status: - code: 200 - message: OK -- request: - body: '{"model": "llama3.2:3b", "prompt": "### User:\nName: Alice Llama, Age: - 30\n\n### User:\nValidation Error found:\n2 validation errors for SimpleModel\nname\n Field - required [type=missing, input_value={''properties'': {''name'': ''Alice Llama'', - ''age'': 30}}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.9/v/missing\nage\n Field - required [type=missing, input_value={''properties'': {''name'': ''Alice Llama'', - ''age'': 30}}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.9/v/missing\nRecall - the function correctly, fix the errors\n\n### System:\nProduce JSON OUTPUT ONLY! - Adhere to this format {\"name\": \"function_name\", \"arguments\":{\"argument_name\": - \"argument_value\"}} The following functions are available to you:\n{''type'': - ''function'', ''function'': {''name'': ''SimpleModel'', ''description'': ''Correctly - extracted `SimpleModel` with all the required parameters with correct types'', - ''parameters'': {''properties'': {''name'': {''title'': ''Name'', ''type'': - ''string''}, ''age'': {''title'': ''Age'', ''type'': ''integer''}}, ''required'': - [''age'', ''name''], ''type'': ''object''}}}\n\n\n", "options": {}, "stream": - false, "format": "json", "images": []}' - headers: - accept: - - '*/*' - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '1186' - host: - - localhost:11434 - user-agent: - - litellm/1.68.0 - method: POST - uri: http://localhost:11434/api/generate - response: - body: - string: '{"model":"llama3.2:3b","created_at":"2025-05-07T01:18:36.524634802Z","response":"{\"name\": - \"SimpleModel\", \"arguments\": {\"name\": \"Alice Llama\", \"age\": \"30\"}}","done":true,"done_reason":"stop","context":[128006,9125,128007,271,38766,1303,33025,2696,25,6790,220,2366,18,271,128009,128006,882,128007,271,14711,2724,512,678,25,30505,445,81101,11,13381,25,220,966,271,14711,2724,512,14118,4703,1766,512,17,10741,6103,369,9170,1747,198,609,198,220,8771,2631,510,1337,28,31716,11,1988,3220,13150,13495,1232,5473,609,1232,364,62786,445,81101,518,364,425,1232,220,966,39254,1988,1857,40697,933,262,1789,4726,2038,4034,3788,1129,7805,7345,67,8322,22247,14,17,13,24,5574,14,31716,198,425,198,220,8771,2631,510,1337,28,31716,11,1988,3220,13150,13495,1232,5473,609,1232,364,62786,445,81101,518,364,425,1232,220,966,39254,1988,1857,40697,933,262,1789,4726,2038,4034,3788,1129,7805,7345,67,8322,22247,14,17,13,24,5574,14,31716,198,3905,543,279,734,12722,11,5155,279,6103,271,14711,744,512,1360,13677,4823,32090,27785,0,2467,6881,311,420,3645,5324,609,794,330,1723,1292,498,330,16774,23118,14819,1292,794,330,14819,3220,32075,578,2768,5865,527,2561,311,499,512,13922,1337,1232,364,1723,518,364,1723,1232,5473,609,1232,364,16778,1747,518,364,4789,1232,364,34192,398,28532,1595,16778,1747,63,449,682,279,2631,5137,449,4495,4595,518,364,14105,1232,5473,13495,1232,5473,609,1232,5473,2150,1232,364,678,518,364,1337,1232,364,928,25762,364,425,1232,5473,2150,1232,364,17166,518,364,1337,1232,364,11924,8439,2186,364,6413,1232,2570,425,518,364,609,4181,364,1337,1232,364,1735,23742,3818,128009,128006,78191,128007,271,5018,609,794,330,16778,1747,498,330,16774,794,5324,609,794,330,62786,445,81101,498,330,425,794,330,966,32075],"total_duration":3373549001,"load_duration":9209000,"prompt_eval_count":297,"prompt_eval_duration":2482874584,"eval_count":25,"eval_duration":881105501}' - headers: - Content-Length: - - '1869' - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 07 May 2025 01:18:36 GMT - status: - code: 200 - message: OK -- request: - body: '{"name": "llama3.2:3b"}' - headers: - accept: - - '*/*' - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '23' - content-type: - - application/json - host: - - localhost:11434 - user-agent: - - litellm/1.68.0 - method: POST - uri: http://localhost:11434/api/show - response: - body: - string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version - Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms - and conditions for use, reproduction, distribution \\nand modification of - the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means - the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed - by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations - to provide legal consent and that has legal authority\\nto bind your employer - or such other person or entity if you are entering in this Agreement\\non - their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language - models and software and algorithms, including\\nmachine-learning model code, - trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** - **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair - use of its tools and features, including Llama 3.2. If you access or use Llama - 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The - most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama - show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# - FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE - \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER - stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE - \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: - September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions - for use, reproduction, distribution \\nand modification of the Llama Materials - set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, - manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at - https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D - means you, or your employer or any other person or entity (if you are \\nentering - into this Agreement on such person or entity\u2019s behalf), of the age required - under\\napplicable laws, rules or regulations to provide legal consent and - that has legal authority\\nto bind your employer or such other person or entity - if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama - 3.2\u201D means the foundational large language models and software and algorithms, - including\\nmachine-learning model code, trained model weights, inference-enabling - code, training-enabling code,\\nfine-tuning enabling code and other elements - of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE - \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting - safe and fair use of its tools and features, including Llama 3.2. If you access - or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). - The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop - \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" - headers: - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 07 May 2025 01:18:36 GMT - Transfer-Encoding: - - chunked - status: - code: 200 - message: OK -- request: - body: '{"name": "llama3.2:3b"}' - headers: - accept: - - '*/*' - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '23' - content-type: - - application/json - host: - - localhost:11434 - user-agent: - - litellm/1.68.0 - method: POST - uri: http://localhost:11434/api/show - response: - body: - string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version - Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms - and conditions for use, reproduction, distribution \\nand modification of - the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means - the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed - by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations - to provide legal consent and that has legal authority\\nto bind your employer - or such other person or entity if you are entering in this Agreement\\non - their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language - models and software and algorithms, including\\nmachine-learning model code, - trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** - **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair - use of its tools and features, including Llama 3.2. If you access or use Llama - 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The - most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama - show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# - FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE - \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER - stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE - \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: - September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions - for use, reproduction, distribution \\nand modification of the Llama Materials - set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, - manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at - https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D - means you, or your employer or any other person or entity (if you are \\nentering - into this Agreement on such person or entity\u2019s behalf), of the age required - under\\napplicable laws, rules or regulations to provide legal consent and - that has legal authority\\nto bind your employer or such other person or entity - if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama - 3.2\u201D means the foundational large language models and software and algorithms, - including\\nmachine-learning model code, trained model weights, inference-enabling - code, training-enabling code,\\nfine-tuning enabling code and other elements - of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE - \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting - safe and fair use of its tools and features, including Llama 3.2. If you access - or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). - The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop - \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" - headers: - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 07 May 2025 01:18:36 GMT - Transfer-Encoding: - - chunked - status: - code: 200 - message: OK -- request: - body: '{"name": "llama3.2:3b"}' - headers: - accept: - - '*/*' - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '23' - content-type: - - application/json - host: - - localhost:11434 - user-agent: - - litellm/1.68.0 - method: POST - uri: http://localhost:11434/api/show - response: - body: - string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version - Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms - and conditions for use, reproduction, distribution \\nand modification of - the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means - the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed - by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations - to provide legal consent and that has legal authority\\nto bind your employer - or such other person or entity if you are entering in this Agreement\\non - their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language - models and software and algorithms, including\\nmachine-learning model code, - trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** - **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair - use of its tools and features, including Llama 3.2. If you access or use Llama - 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The - most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama - show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# - FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE - \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER - stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE - \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: - September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions - for use, reproduction, distribution \\nand modification of the Llama Materials - set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, - manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at - https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D - means you, or your employer or any other person or entity (if you are \\nentering - into this Agreement on such person or entity\u2019s behalf), of the age required - under\\napplicable laws, rules or regulations to provide legal consent and - that has legal authority\\nto bind your employer or such other person or entity - if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama - 3.2\u201D means the foundational large language models and software and algorithms, - including\\nmachine-learning model code, trained model weights, inference-enabling - code, training-enabling code,\\nfine-tuning enabling code and other elements - of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE - \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting - safe and fair use of its tools and features, including Llama 3.2. If you access - or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). - The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop - \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" - headers: - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 07 May 2025 01:18:36 GMT - Transfer-Encoding: - - chunked - status: - code: 200 - message: OK -- request: - body: '{"name": "llama3.2:3b"}' - headers: - accept: - - '*/*' - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '23' - content-type: - - application/json - host: - - localhost:11434 - user-agent: - - litellm/1.68.0 - method: POST - uri: http://localhost:11434/api/show - response: - body: - string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version - Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms - and conditions for use, reproduction, distribution \\nand modification of - the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means - the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed - by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations - to provide legal consent and that has legal authority\\nto bind your employer - or such other person or entity if you are entering in this Agreement\\non - their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language - models and software and algorithms, including\\nmachine-learning model code, - trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** - **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair - use of its tools and features, including Llama 3.2. If you access or use Llama - 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The - most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama - show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# - FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE - \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER - stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE - \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: - September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions - for use, reproduction, distribution \\nand modification of the Llama Materials - set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, - manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at - https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D - means you, or your employer or any other person or entity (if you are \\nentering - into this Agreement on such person or entity\u2019s behalf), of the age required - under\\napplicable laws, rules or regulations to provide legal consent and - that has legal authority\\nto bind your employer or such other person or entity - if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama - 3.2\u201D means the foundational large language models and software and algorithms, - including\\nmachine-learning model code, trained model weights, inference-enabling - code, training-enabling code,\\nfine-tuning enabling code and other elements - of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE - \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting - safe and fair use of its tools and features, including Llama 3.2. If you access - or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). - The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop - \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" - headers: - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 07 May 2025 01:18:36 GMT - Transfer-Encoding: - - chunked - status: - code: 200 - message: OK -- request: - body: '{"name": "llama3.2:3b"}' - headers: - accept: - - '*/*' - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '23' - content-type: - - application/json - host: - - localhost:11434 - user-agent: - - litellm/1.68.0 - method: POST - uri: http://localhost:11434/api/show - response: - body: - string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version - Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms - and conditions for use, reproduction, distribution \\nand modification of - the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means - the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed - by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations - to provide legal consent and that has legal authority\\nto bind your employer - or such other person or entity if you are entering in this Agreement\\non - their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language - models and software and algorithms, including\\nmachine-learning model code, - trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** - **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair - use of its tools and features, including Llama 3.2. If you access or use Llama - 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The - most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama - show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# - FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE - \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER - stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE - \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: - September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions - for use, reproduction, distribution \\nand modification of the Llama Materials - set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, - manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at - https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D - means you, or your employer or any other person or entity (if you are \\nentering - into this Agreement on such person or entity\u2019s behalf), of the age required - under\\napplicable laws, rules or regulations to provide legal consent and - that has legal authority\\nto bind your employer or such other person or entity - if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama - 3.2\u201D means the foundational large language models and software and algorithms, - including\\nmachine-learning model code, trained model weights, inference-enabling - code, training-enabling code,\\nfine-tuning enabling code and other elements - of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE - \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting - safe and fair use of its tools and features, including Llama 3.2. If you access - or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). - The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop - \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" - headers: - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 07 May 2025 01:18:36 GMT - Transfer-Encoding: - - chunked - status: - code: 200 - message: OK -- request: - body: '{"model": "llama3.2:3b", "prompt": "### User:\nName: Alice Llama, Age: - 30\n\n### User:\nValidation Error found:\n2 validation errors for SimpleModel\nname\n Field - required [type=missing, input_value={''properties'': {''name'': ''Alice Llama'', - ''age'': 30}}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.9/v/missing\nage\n Field - required [type=missing, input_value={''properties'': {''name'': ''Alice Llama'', - ''age'': 30}}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.9/v/missing\nRecall - the function correctly, fix the errors\n\n### User:\nValidation Error found:\n1 - validation error for SimpleModel\nage\n Input should be a valid integer [type=int_type, - input_value=''30'', input_type=str]\n For further information visit https://errors.pydantic.dev/2.9/v/int_type\nRecall - the function correctly, fix the errors\n\n### System:\nProduce JSON OUTPUT ONLY! - Adhere to this format {\"name\": \"function_name\", \"arguments\":{\"argument_name\": - \"argument_value\"}} The following functions are available to you:\n{''type'': - ''function'', ''function'': {''name'': ''SimpleModel'', ''description'': ''Correctly - extracted `SimpleModel` with all the required parameters with correct types'', - ''parameters'': {''properties'': {''name'': {''title'': ''Name'', ''type'': - ''string''}, ''age'': {''title'': ''Age'', ''type'': ''integer''}}, ''required'': - [''age'', ''name''], ''type'': ''object''}}}\n\n\n", "options": {}, "stream": - false, "format": "json", "images": []}' - headers: - accept: - - '*/*' - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '1475' - host: - - localhost:11434 - user-agent: - - litellm/1.68.0 - method: POST - uri: http://localhost:11434/api/generate - response: - body: - string: '{"model":"llama3.2:3b","created_at":"2025-05-07T01:18:39.719830887Z","response":"{ - \"name\": \"SimpleModel\", \"arguments\": {\"name\": \"Alice Llama\", \"age\": - 30} }","done":true,"done_reason":"stop","context":[128006,9125,128007,271,38766,1303,33025,2696,25,6790,220,2366,18,271,128009,128006,882,128007,271,14711,2724,512,678,25,30505,445,81101,11,13381,25,220,966,271,14711,2724,512,14118,4703,1766,512,17,10741,6103,369,9170,1747,198,609,198,220,8771,2631,510,1337,28,31716,11,1988,3220,13150,13495,1232,5473,609,1232,364,62786,445,81101,518,364,425,1232,220,966,39254,1988,1857,40697,933,262,1789,4726,2038,4034,3788,1129,7805,7345,67,8322,22247,14,17,13,24,5574,14,31716,198,425,198,220,8771,2631,510,1337,28,31716,11,1988,3220,13150,13495,1232,5473,609,1232,364,62786,445,81101,518,364,425,1232,220,966,39254,1988,1857,40697,933,262,1789,4726,2038,4034,3788,1129,7805,7345,67,8322,22247,14,17,13,24,5574,14,31716,198,3905,543,279,734,12722,11,5155,279,6103,271,14711,2724,512,14118,4703,1766,512,16,10741,1493,369,9170,1747,198,425,198,220,5688,1288,387,264,2764,7698,510,1337,16972,1857,11,1988,3220,1151,966,518,1988,1857,16311,933,262,1789,4726,2038,4034,3788,1129,7805,7345,67,8322,22247,14,17,13,24,5574,32214,1857,198,3905,543,279,734,12722,11,5155,279,6103,271,14711,744,512,1360,13677,4823,32090,27785,0,2467,6881,311,420,3645,5324,609,794,330,1723,1292,498,330,16774,23118,14819,1292,794,330,14819,3220,32075,578,2768,5865,527,2561,311,499,512,13922,1337,1232,364,1723,518,364,1723,1232,5473,609,1232,364,16778,1747,518,364,4789,1232,364,34192,398,28532,1595,16778,1747,63,449,682,279,2631,5137,449,4495,4595,518,364,14105,1232,5473,13495,1232,5473,609,1232,5473,2150,1232,364,678,518,364,1337,1232,364,928,25762,364,425,1232,5473,2150,1232,364,17166,518,364,1337,1232,364,11924,8439,2186,364,6413,1232,2570,425,518,364,609,4181,364,1337,1232,364,1735,23742,3818,128009,128006,78191,128007,271,90,330,609,794,330,16778,1747,498,330,16774,794,5324,609,794,330,62786,445,81101,498,330,425,794,220,966,92,335],"total_duration":3163444252,"load_duration":10288792,"prompt_eval_count":364,"prompt_eval_duration":2040868209,"eval_count":27,"eval_duration":1111864793}' - headers: - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 07 May 2025 01:18:39 GMT - Transfer-Encoding: - - chunked - status: - code: 200 - message: OK -- request: - body: '{"name": "llama3.2:3b"}' - headers: - accept: - - '*/*' - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '23' - content-type: - - application/json - host: - - localhost:11434 - user-agent: - - litellm/1.68.0 - method: POST - uri: http://localhost:11434/api/show - response: - body: - string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version - Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms - and conditions for use, reproduction, distribution \\nand modification of - the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means - the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed - by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations - to provide legal consent and that has legal authority\\nto bind your employer - or such other person or entity if you are entering in this Agreement\\non - their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language - models and software and algorithms, including\\nmachine-learning model code, - trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** - **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair - use of its tools and features, including Llama 3.2. If you access or use Llama - 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The - most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama - show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# - FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE - \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER - stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE - \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: - September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions - for use, reproduction, distribution \\nand modification of the Llama Materials - set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, - manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at - https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D - means you, or your employer or any other person or entity (if you are \\nentering - into this Agreement on such person or entity\u2019s behalf), of the age required - under\\napplicable laws, rules or regulations to provide legal consent and - that has legal authority\\nto bind your employer or such other person or entity - if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama - 3.2\u201D means the foundational large language models and software and algorithms, - including\\nmachine-learning model code, trained model weights, inference-enabling - code, training-enabling code,\\nfine-tuning enabling code and other elements - of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE - \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting - safe and fair use of its tools and features, including Llama 3.2. If you access - or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). - The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop - \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" - headers: - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 07 May 2025 01:18:39 GMT - Transfer-Encoding: - - chunked - status: - code: 200 - message: OK -- request: - body: '{"name": "llama3.2:3b"}' - headers: - accept: - - '*/*' - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '23' - content-type: - - application/json - host: - - localhost:11434 - user-agent: - - litellm/1.68.0 - method: POST - uri: http://localhost:11434/api/show - response: - body: - string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version - Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms - and conditions for use, reproduction, distribution \\nand modification of - the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means - the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed - by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D - or \u201Cyou\u201D means you, or your employer or any other person or entity - (if you are \\nentering into this Agreement on such person or entity\u2019s - behalf), of the age required under\\napplicable laws, rules or regulations - to provide legal consent and that has legal authority\\nto bind your employer - or such other person or entity if you are entering in this Agreement\\non - their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language - models and software and algorithms, including\\nmachine-learning model code, - trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning - enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2** - **Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair - use of its tools and features, including Llama 3.2. If you access or use Llama - 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The - most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama - show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n# - FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE - \\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER - stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE - \\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date: - September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions - for use, reproduction, distribution \\nand modification of the Llama Materials - set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications, - manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at - https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D - means you, or your employer or any other person or entity (if you are \\nentering - into this Agreement on such person or entity\u2019s behalf), of the age required - under\\napplicable laws, rules or regulations to provide legal consent and - that has legal authority\\nto bind your employer or such other person or entity - if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama - 3.2\u201D means the foundational large language models and software and algorithms, - including\\nmachine-learning model code, trained model weights, inference-enabling - code, training-enabling code,\\nfine-tuning enabling code and other elements - of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama - Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and - Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D - or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located - in or, \\nif you are an entity, your principal place of business is in the - EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside - of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below - or by using or distributing any portion or element of the Llama Materials,\\nyou - agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n - \ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable - and royalty-free limited license under Meta\u2019s intellectual property or - other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce, - distribute, copy, create derivative works \\nof, and make modifications to - the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i. - If you distribute or make available the Llama Materials (or any derivative - works thereof), \\nor a product or service (including another AI model) that - contains any of them, you shall (A) provide\\na copy of this Agreement with - any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non - a related website, user interface, blogpost, about page, or product documentation. - If you use the\\nLlama Materials or any outputs or results of the Llama Materials - to create, train, fine tune, or\\notherwise improve an AI model, which is - distributed or made available, you shall also include \u201CLlama\u201D\\nat - the beginning of any such AI model name.\\n\\n ii. If you receive Llama - Materials, or any derivative works thereof, from a Licensee as part\\nof an - integrated end user product, then Section 2 of this Agreement will not apply - to you. \\n\\n iii. You must retain in all copies of the Llama Materials - that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D - text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed - under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc. - All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials - must comply with applicable laws and regulations\\n(including trade compliance - laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama - Materials (available at https://www.llama.com/llama3_2/use-policy), which - is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional - Commercial Terms. If, on the Llama 3.2 version release date, the monthly active - users\\nof the products or services made available by or for Licensee, or - Licensee\u2019s affiliates, \\nis greater than 700 million monthly active - users in the preceding calendar month, you must request \\na license from - Meta, which Meta may grant to you in its sole discretion, and you are not - authorized to\\nexercise any of the rights under this Agreement unless or - until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer - of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY - OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS, - WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY - KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF - TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. - YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING - OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH - YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation - of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY - THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY, - OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY - INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, - EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF - ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark - licenses are granted under this Agreement, and in connection with the Llama - Materials, \\nneither Meta nor Licensee may use any name or mark owned by - or associated with the other or any of its affiliates, \\nexcept as required - for reasonable and customary use in describing and redistributing the Llama - Materials or as \\nset forth in this Section 5(a). Meta hereby grants you - a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required - \\nto comply with the last sentence of Section 1.b.i. You will comply with - Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/). - All goodwill arising out of your use of the Mark \\nwill inure to the benefit - of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and - derivatives made by or for Meta, with respect to any\\n derivative works - and modifications of the Llama Materials that are made by you, as between - you and Meta,\\n you are and will be the owner of such derivative works - and modifications.\\n\\n c. If you institute litigation or other proceedings - against Meta or any entity (including a cross-claim or\\n counterclaim - in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results, - or any portion\\n of any of the foregoing, constitutes infringement of - intellectual property or other rights owned or licensable\\n by you, then - any licenses granted to you under this Agreement shall terminate as of the - date such litigation or\\n claim is filed or instituted. You will indemnify - and hold harmless Meta from and against any claim by any third\\n party - arising out of or related to your use or distribution of the Llama Materials.\\n\\n6. - Term and Termination. The term of this Agreement will commence upon your acceptance - of this Agreement or access\\nto the Llama Materials and will continue in - full force and effect until terminated in accordance with the terms\\nand - conditions herein. Meta may terminate this Agreement if you are in breach - of any term or condition of this\\nAgreement. Upon termination of this Agreement, - you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and - 7 shall survive the termination of this Agreement. \\n\\n7. Governing Law - and Jurisdiction. This Agreement will be governed and construed under the - laws of the State of \\nCalifornia without regard to choice of law principles, - and the UN Convention on Contracts for the International\\nSale of Goods does - not apply to this Agreement. The courts of California shall have exclusive - jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE - \\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting - safe and fair use of its tools and features, including Llama 3.2. If you access - or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). - The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited - Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You - agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1. - Violate the law or others\u2019 rights, including to:\\n 1. Engage in, - promote, generate, contribute to, encourage, plan, incite, or further illegal - or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n - \ 2. Exploitation or harm to children, including the solicitation, creation, - acquisition, or dissemination of child exploitative content or failure to - report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation, - and sexual violence\\n 4. The illegal distribution of information or - materials to minors, including obscene materials, or failure to employ legally - required age-gating in connection with such information or materials.\\n 5. - Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage - in, promote, incite, or facilitate the harassment, abuse, threatening, or - bullying of individuals or groups of individuals\\n 2. Engage in, promote, - incite, or facilitate discrimination or other unlawful or harmful conduct - in the provision of employment, employment benefits, credit, housing, other - economic benefits, or other essential goods and services\\n 3. Engage in - the unauthorized or unlicensed practice of any profession including, but not - limited to, financial, legal, medical/health, or related professional practices\\n - \ 4. Collect, process, disclose, generate, or infer private or sensitive - information about individuals, including information about individuals\u2019 - identity, health, or demographic information, unless you have obtained the - right to do so in accordance with applicable law\\n 5. Engage in or facilitate - any action or generate any content that infringes, misappropriates, or otherwise - violates any third-party rights, including the outputs or results of any products - or services using the Llama Materials\\n 6. Create, generate, or facilitate - the creation of malicious code, malware, computer viruses or do anything else - that could disable, overburden, interfere with or impair the proper working, - integrity, operation or appearance of a website or computer system\\n 7. - Engage in any action, or facilitate any action, to intentionally circumvent - or remove usage restrictions or other safety measures, or to enable functionality - disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in - the planning or development of activities that present a risk of death or - bodily harm to individuals, including use of Llama 3.2 related to the following:\\n - \ 8. Military, warfare, nuclear industries or applications, espionage, use - for materials or activities that are subject to the International Traffic - Arms Regulations (ITAR) maintained by the United States Department of State - or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical - Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons - (including weapon development)\\n 10. Illegal drugs and regulated/controlled - substances\\n 11. Operation of critical infrastructure, transportation - technologies, or heavy machinery\\n 12. Self-harm or harm to others, including - suicide, cutting, and eating disorders\\n 13. Any content intended to incite - or promote violence, abuse, or any infliction of bodily harm to an individual\\n3. - Intentionally deceive or mislead others, including use of Llama 3.2 related - to the following:\\n 14. Generating, promoting, or furthering fraud or - the creation or promotion of disinformation\\n 15. Generating, promoting, - or furthering defamatory content, including the creation of defamatory statements, - images, or other content\\n 16. Generating, promoting, or further distributing - spam\\n 17. Impersonating another individual without consent, authorization, - or legal right\\n 18. Representing that the use of Llama 3.2 or outputs - are human-generated\\n 19. Generating or facilitating false online engagement, - including fake reviews and other means of fake online engagement\\n4. Fail - to appropriately disclose to end users any known dangers of your AI system\\n5. - Interact with third party tools, models, or software designed to generate - unlawful content or engage in unlawful or harmful conduct and/or represent - that the outputs of such tools, models, or software are associated with Meta - or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama - 3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License - Agreement are not being granted to you if you are an individual domiciled - in, or a company with a principal place of business in, the European Union. - This restriction does not apply to end users of a product or service that - incorporates any such multimodal models.\\n\\nPlease report any violation - of this Policy, software \u201Cbug,\u201D or other problems that could lead - to a violation of this Policy through one of the following means:\\n\\n\\n\\n* - Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n* - Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n* - Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n* - Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama - 3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop - \ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting - Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end - }}\\n{{- if .Tools }}When you receive a tool call response, use the output - to format an answer to the orginal user question.\\n\\nYou are a helpful assistant - with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range - $i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{- - if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{- - if and $.Tools $last }}\\n\\nGiven the following functions, please respond - with a JSON for a function call with its proper arguments that best answers - the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name, - \\\"parameters\\\": dictionary of argument name and its value}. Do not use - variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- - else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last - }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{- - if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name - }}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else - }}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{ - end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{ - .Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{ - end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.13.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.13.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.13.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.13.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.14.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.14.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.14.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.14.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.14.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.15.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.15.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.15.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.15.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.15.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.16.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.16.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.16.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.16.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.16.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.17.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.17.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.17.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.17.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.17.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.18.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.18.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.18.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.18.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.18.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.19.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.19.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.19.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.19.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.19.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.2.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.2.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.2.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.2.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.2.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.20.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.20.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.3.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.3.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.3.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.3.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.3.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.4.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.4.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.4.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.4.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.4.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.5.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.5.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.5.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.5.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.5.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.6.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.6.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.6.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.6.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.6.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.7.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.7.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.7.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.7.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.7.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.8.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.8.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.8.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.8.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.8.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.9.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.9.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.9.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.9.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.9.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.20.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.20.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.20.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.21.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.21.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.21.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.21.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.21.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.22.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.22.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.22.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.22.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.22.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.23.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.23.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.23.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.23.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.23.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.24.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.24.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.24.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.24.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.24.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.25.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.25.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.25.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.25.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.25.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.26.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.26.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.26.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.26.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.26.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.27.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.27.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.27.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.27.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.27.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"output_norm.weight\",\"type\":\"F32\",\"shape\":[3072]}],\"capabilities\":[\"completion\",\"tools\"],\"modified_at\":\"2025-05-07T01:18:18.293364002Z\"}" - headers: - Content-Type: - - application/json; charset=utf-8 - Date: - - Wed, 07 May 2025 01:18:39 GMT + - Mon, 12 May 2025 14:31:55 GMT + Server: + - cloudflare Transfer-Encoding: - chunked + Vary: + - Accept-Encoding + x-clerk-auth-message: + - Invalid JWT form. A JWT consists of three parts separated by dots. (reason=token-invalid, + token-carrier=header) + x-clerk-auth-reason: + - token-invalid + x-clerk-auth-status: + - signed-out status: code: 200 message: OK diff --git a/tests/utilities/test_converter.py b/tests/utilities/test_converter.py index 9c565dce6..7ebc52bed 100644 --- a/tests/utilities/test_converter.py +++ b/tests/utilities/test_converter.py @@ -1,5 +1,4 @@ import json -import os from typing import Dict, List, Optional from unittest.mock import MagicMock, Mock, patch @@ -19,6 +18,8 @@ from crewai.utilities.converter import ( validate_model, ) from crewai.utilities.pydantic_schema_parser import PydanticSchemaParser +# Tests for enums +from enum import Enum @pytest.fixture(scope="module") @@ -359,7 +360,7 @@ def test_convert_with_instructions(): @pytest.mark.vcr(filter_headers=["authorization"]) def test_converter_with_llama3_2_model(): - llm = LLM(model="ollama/llama3.2:3b", base_url="http://localhost:11434") + llm = LLM(model="openrouter/meta-llama/llama-3.2-3b-instruct") sample_text = "Name: Alice Llama, Age: 30" instructions = get_conversion_instructions(SimpleModel, llm) converter = Converter( @@ -431,7 +432,7 @@ def test_converter_error_handling(): ) with pytest.raises(ConverterError) as exc_info: - output = converter.to_pydantic() + converter.to_pydantic() assert "Failed to convert text into a Pydantic model" in str(exc_info.value) @@ -515,10 +516,6 @@ def test_converter_with_list_field(): assert output.items == [1, 2, 3] -# Tests for enums -from enum import Enum - - def test_converter_with_enum(): class Color(Enum): RED = "red" @@ -565,7 +562,7 @@ def test_converter_with_ambiguous_input(): ) with pytest.raises(ConverterError) as exc_info: - output = converter.to_pydantic() + converter.to_pydantic() assert "failed to convert text into a pydantic model" in str(exc_info.value).lower() From bef59715987ba52c94710b0c0c77745fb4ce5185 Mon Sep 17 00:00:00 2001 From: Vidit Ostwal <110953813+Vidit-Ostwal@users.noreply.github.com> Date: Sun, 18 May 2025 03:11:12 +0530 Subject: [PATCH 29/40] Added Stop parameter docs (#2854) --- docs/concepts/llms.mdx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/concepts/llms.mdx b/docs/concepts/llms.mdx index cef763146..eb2bf38ee 100644 --- a/docs/concepts/llms.mdx +++ b/docs/concepts/llms.mdx @@ -791,6 +791,24 @@ Learn how to get the most out of your LLM configuration: Remember to regularly monitor your token usage and adjust your configuration as needed to optimize costs and performance. + + + CrewAI internally uses Litellm for LLM calls, which allows you to drop additional parameters that are not needed for your specific use case. This can help simplify your code and reduce the complexity of your LLM configuration. + For example, if you don't need to send the stop parameter, you can simply omit it from your LLM call: + + ```python + from crewai import LLM + import os + + os.environ["OPENAI_API_KEY"] = "" + + o3_llm = LLM( + model="o3", + drop_params=True, + additional_drop_params=["stop"] + ) + ``` + ## Common Issues and Solutions From 227b521f9e2f1aa0a2154bd0a77d22ed9c3b48ea Mon Sep 17 00:00:00 2001 From: "devin-ai-integration[bot]" <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Mon, 19 May 2025 23:26:03 -0700 Subject: [PATCH 30/40] Add markdown attribute to Task class (#2865) * Add markdown attribute to Task class for formatting responses in Markdown Co-Authored-By: Joe Moura * Enhance markdown feature based on PR feedback Co-Authored-By: Joe Moura * Fix lint error and validation error in test_markdown_task.py Co-Authored-By: Joe Moura --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Joe Moura --- src/crewai/task.py | 25 ++++++++-- tests/test_markdown_task.py | 96 +++++++++++++++++++++++++++++++++++++ 2 files changed, 118 insertions(+), 3 deletions(-) create mode 100644 tests/test_markdown_task.py diff --git a/src/crewai/task.py b/src/crewai/task.py index 754fab491..96e52cad5 100644 --- a/src/crewai/task.py +++ b/src/crewai/task.py @@ -135,6 +135,10 @@ class Task(BaseModel): description="Whether the task should have a human review the final answer of the agent", default=False, ) + markdown: Optional[bool] = Field( + description="Whether the task should instruct the agent to return the final answer formatted in Markdown", + default=False, + ) converter_cls: Optional[Type[Converter]] = Field( description="A converter class used to export structured output", default=None, @@ -522,10 +526,14 @@ class Task(BaseModel): return guardrail_result def prompt(self) -> str: - """Prompt the task. - + """Generates the task prompt with optional markdown formatting. + + When the markdown attribute is True, instructions for formatting the + response in Markdown syntax will be added to the prompt. + Returns: - Prompt of the task. + str: The formatted prompt string containing the task description, + expected output, and optional markdown formatting instructions. """ tasks_slices = [self.description] @@ -533,6 +541,17 @@ class Task(BaseModel): expected_output=self.expected_output ) tasks_slices = [self.description, output] + + if self.markdown: + markdown_instruction = """Your final answer MUST be formatted in Markdown syntax. +Follow these guidelines: +- Use # for headers +- Use ** for bold text +- Use * for italic text +- Use - or * for bullet points +- Use `code` for inline code +- Use ```language for code blocks""" + tasks_slices.append(markdown_instruction) return "\n".join(tasks_slices) def interpolate_inputs_and_add_conversation_history( diff --git a/tests/test_markdown_task.py b/tests/test_markdown_task.py new file mode 100644 index 000000000..873d18550 --- /dev/null +++ b/tests/test_markdown_task.py @@ -0,0 +1,96 @@ +"""Test the markdown attribute in Task class.""" + +import pytest +from pydantic import BaseModel + +from crewai import Agent, Task + + +@pytest.mark.parametrize( + "markdown_enabled,should_contain_instructions", + [ + (True, True), + (False, False), + ], +) +def test_markdown_option_in_task_prompt(markdown_enabled, should_contain_instructions): + """Test that markdown flag correctly controls the inclusion of markdown formatting instructions.""" + + researcher = Agent( + role="Researcher", + goal="Research a topic", + backstory="You're a researcher specialized in providing well-formatted content.", + allow_delegation=False, + ) + + task = Task( + description="Research advances in AI in 2023", + expected_output="A summary of key AI advances in 2023", + markdown=markdown_enabled, + agent=researcher, + ) + + prompt = task.prompt() + + assert "Research advances in AI in 2023" in prompt + assert "A summary of key AI advances in 2023" in prompt + + if should_contain_instructions: + assert "Your final answer MUST be formatted in Markdown syntax." in prompt + assert "Use # for headers" in prompt + assert "Use ** for bold text" in prompt + else: + assert "Your final answer MUST be formatted in Markdown syntax." not in prompt + + +def test_markdown_with_empty_description(): + """Test markdown formatting with empty description.""" + + researcher = Agent( + role="Researcher", + goal="Research a topic", + backstory="You're a researcher.", + allow_delegation=False, + ) + + task = Task( + description="", + expected_output="A summary", + markdown=True, + agent=researcher, + ) + + prompt = task.prompt() + + assert prompt.strip() != "" + assert "A summary" in prompt + assert "Your final answer MUST be formatted in Markdown syntax." in prompt + + +def test_markdown_with_complex_output_format(): + """Test markdown with JSON output format to ensure compatibility.""" + + class ResearchOutput(BaseModel): + title: str + findings: list[str] + + researcher = Agent( + role="Researcher", + goal="Research a topic", + backstory="You're a researcher.", + allow_delegation=False, + ) + + task = Task( + description="Research topic", + expected_output="Research results", + markdown=True, + output_json=ResearchOutput, + agent=researcher, + ) + + prompt = task.prompt() + + assert "Your final answer MUST be formatted in Markdown syntax." in prompt + assert "Research topic" in prompt + assert "Research results" in prompt From 1ef22131e69c35b3633efa24e7b3fc98c50dec8c Mon Sep 17 00:00:00 2001 From: "devin-ai-integration[bot]" <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 20 May 2025 07:40:40 -0700 Subject: [PATCH 31/40] Add reasoning attribute to Agent class (#2866) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add reasoning attribute to Agent class Co-Authored-By: Joe Moura * Address PR feedback: improve type hints, error handling, refactor reasoning handler, and enhance tests and docs Co-Authored-By: Joe Moura * Implement function calling for reasoning and move prompts to translations Co-Authored-By: Joe Moura * Simplify function calling implementation with better error handling Co-Authored-By: Joe Moura * Enhance system prompts to leverage agent context (role, goal, backstory) Co-Authored-By: Joe Moura * Fix lint and type-checker issues Co-Authored-By: Joe Moura * Enhance system prompts to better leverage agent context Co-Authored-By: Joe Moura * Fix backstory access in reasoning handler for Python 3.12 compatibility Co-Authored-By: Joe Moura --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Joe Moura Co-authored-by: João Moura --- docs/concepts/reasoning.mdx | 140 ++++++++++ src/crewai/agent.py | 23 ++ src/crewai/translations/en.json | 6 + src/crewai/utilities/reasoning_handler.py | 311 ++++++++++++++++++++++ tests/agent_reasoning_test.py | 261 ++++++++++++++++++ 5 files changed, 741 insertions(+) create mode 100644 docs/concepts/reasoning.mdx create mode 100644 src/crewai/utilities/reasoning_handler.py create mode 100644 tests/agent_reasoning_test.py diff --git a/docs/concepts/reasoning.mdx b/docs/concepts/reasoning.mdx new file mode 100644 index 000000000..316af8732 --- /dev/null +++ b/docs/concepts/reasoning.mdx @@ -0,0 +1,140 @@ +--- +title: "Agent Reasoning" +--- + +# Agent Reasoning + +Agent reasoning is a feature that allows agents to reflect on a task and create a plan before execution. This helps agents approach tasks more methodically and ensures they're ready to perform the assigned work. + +## How to Use Agent Reasoning + +To enable reasoning for an agent, simply set `reasoning=True` when creating the agent: + +```python +from crewai import Agent + +agent = Agent( + role="Data Analyst", + goal="Analyze complex datasets and provide insights", + backstory="You are an experienced data analyst with expertise in finding patterns in complex data.", + reasoning=True, # Enable reasoning + max_reasoning_attempts=3 # Optional: Set a maximum number of reasoning attempts +) +``` + +## How It Works + +When reasoning is enabled, before executing a task, the agent will: + +1. Reflect on the task and create a detailed plan +2. Evaluate whether it's ready to execute the task +3. Refine the plan as necessary until it's ready or max_reasoning_attempts is reached +4. Inject the reasoning plan into the task description before execution + +This process helps the agent break down complex tasks into manageable steps and identify potential challenges before starting. + +## Configuration Options + +- `reasoning` (bool): Enable or disable reasoning (default: False) +- `max_reasoning_attempts` (int, optional): Maximum number of attempts to refine the plan before proceeding with execution. If None (default), the agent will continue refining until it's ready. + +## Example + +Here's a complete example: + +```python +from crewai import Agent, Task, Crew + +# Create an agent with reasoning enabled +analyst = Agent( + role="Data Analyst", + goal="Analyze data and provide insights", + backstory="You are an expert data analyst.", + reasoning=True, + max_reasoning_attempts=3 # Optional: Set a limit on reasoning attempts +) + +# Create a task +analysis_task = Task( + description="Analyze the provided sales data and identify key trends.", + expected_output="A report highlighting the top 3 sales trends.", + agent=analyst +) + +# Create a crew and run the task +crew = Crew(agents=[analyst], tasks=[analysis_task]) +result = crew.kickoff() + +print(result) +``` + +## Error Handling + +The reasoning process is designed to be robust, with error handling built in. If an error occurs during reasoning, the agent will proceed with executing the task without the reasoning plan. This ensures that tasks can still be executed even if the reasoning process fails. + +Here's how to handle potential errors in your code: + +```python +from crewai import Agent, Task +import logging + +# Set up logging to capture any reasoning errors +logging.basicConfig(level=logging.INFO) + +# Create an agent with reasoning enabled +agent = Agent( + role="Data Analyst", + goal="Analyze data and provide insights", + reasoning=True, + max_reasoning_attempts=3 +) + +# Create a task +task = Task( + description="Analyze the provided sales data and identify key trends.", + expected_output="A report highlighting the top 3 sales trends.", + agent=agent +) + +# Execute the task +# If an error occurs during reasoning, it will be logged and execution will continue +result = agent.execute_task(task) +``` + +## Example Reasoning Output + +Here's an example of what a reasoning plan might look like for a data analysis task: + +``` +Task: Analyze the provided sales data and identify key trends. + +Reasoning Plan: +I'll analyze the sales data to identify the top 3 trends. + +1. Understanding of the task: + I need to analyze sales data to identify key trends that would be valuable for business decision-making. + +2. Key steps I'll take: + - First, I'll examine the data structure to understand what fields are available + - Then I'll perform exploratory data analysis to identify patterns + - Next, I'll analyze sales by time periods to identify temporal trends + - I'll also analyze sales by product categories and customer segments + - Finally, I'll identify the top 3 most significant trends + +3. Approach to challenges: + - If the data has missing values, I'll decide whether to fill or filter them + - If the data has outliers, I'll investigate whether they're valid data points or errors + - If trends aren't immediately obvious, I'll apply statistical methods to uncover patterns + +4. Use of available tools: + - I'll use data analysis tools to explore and visualize the data + - I'll use statistical tools to identify significant patterns + - I'll use knowledge retrieval to access relevant information about sales analysis + +5. Expected outcome: + A concise report highlighting the top 3 sales trends with supporting evidence from the data. + +READY: I am ready to execute the task. +``` + +This reasoning plan helps the agent organize its approach to the task, consider potential challenges, and ensure it delivers the expected output. diff --git a/src/crewai/agent.py b/src/crewai/agent.py index 77fffc7e1..783be5668 100644 --- a/src/crewai/agent.py +++ b/src/crewai/agent.py @@ -119,6 +119,14 @@ class Agent(BaseAgent): default="safe", description="Mode for code execution: 'safe' (using Docker) or 'unsafe' (direct execution).", ) + reasoning: bool = Field( + default=False, + description="Whether the agent should reflect and create a plan before executing a task.", + ) + max_reasoning_attempts: Optional[int] = Field( + default=None, + description="Maximum number of reasoning attempts before executing the task. If None, will try until ready.", + ) embedder: Optional[Dict[str, Any]] = Field( default=None, description="Embedder configuration for the agent.", @@ -225,6 +233,21 @@ class Agent(BaseAgent): ValueError: If the max execution time is not a positive integer. RuntimeError: If the agent execution fails for other reasons. """ + if self.reasoning: + try: + from crewai.utilities.reasoning_handler import AgentReasoning, AgentReasoningOutput + + reasoning_handler = AgentReasoning(task=task, agent=self) + reasoning_output: AgentReasoningOutput = reasoning_handler.handle_agent_reasoning() + + # Add the reasoning plan to the task description + task.description += f"\n\nReasoning Plan:\n{reasoning_output.plan.plan}" + except Exception as e: + if hasattr(self, '_logger'): + self._logger.log("error", f"Error during reasoning process: {str(e)}") + else: + print(f"Error during reasoning process: {str(e)}") + if self.tools_handler: self.tools_handler.last_used_tool = {} # type: ignore # Incompatible types in assignment (expression has type "dict[Never, Never]", variable has type "ToolCalling") diff --git a/src/crewai/translations/en.json b/src/crewai/translations/en.json index 74cdbb032..d80ff103e 100644 --- a/src/crewai/translations/en.json +++ b/src/crewai/translations/en.json @@ -51,5 +51,11 @@ "description": "See image to understand its content, you can optionally ask a question about the image", "default_action": "Please provide a detailed description of this image, including all visual elements, context, and any notable details you can observe." } + }, + "reasoning": { + "initial_plan": "You are {role}, a professional with the following background: {backstory}\n\nYour primary goal is: {goal}\n\nAs {role}, you are creating a strategic plan for a task that requires your expertise and unique perspective.", + "refine_plan": "You are {role}, a professional with the following background: {backstory}\n\nYour primary goal is: {goal}\n\nAs {role}, you are refining a strategic plan for a task that requires your expertise and unique perspective.", + "create_plan_prompt": "You are {role} with this background: {backstory}\n\nYour primary goal is: {goal}\n\nYou have been assigned the following task:\n{description}\n\nExpected output:\n{expected_output}\n\nAvailable tools: {tools}\n\nBefore executing this task, create a detailed plan that leverages your expertise as {role} and outlines:\n1. Your understanding of the task from your professional perspective\n2. The key steps you'll take to complete it, drawing on your background and skills\n3. How you'll approach any challenges that might arise, considering your expertise\n4. How you'll strategically use the available tools based on your experience\n5. The expected outcome and how it aligns with your goal\n\nAfter creating your plan, assess whether you feel ready to execute the task.\nConclude with one of these statements:\n- \"READY: I am ready to execute the task.\"\n- \"NOT READY: I need to refine my plan because [specific reason].\"", + "refine_plan_prompt": "You are {role} with this background: {backstory}\n\nYour primary goal is: {goal}\n\nYou created the following plan for this task:\n{current_plan}\n\nHowever, you indicated that you're not ready to execute the task yet.\n\nPlease refine your plan further, drawing on your expertise as {role} to address any gaps or uncertainties.\n\nAfter refining your plan, assess whether you feel ready to execute the task.\nConclude with one of these statements:\n- \"READY: I am ready to execute the task.\"\n- \"NOT READY: I need to refine my plan further because [specific reason].\"" } } diff --git a/src/crewai/utilities/reasoning_handler.py b/src/crewai/utilities/reasoning_handler.py new file mode 100644 index 000000000..5aeb9716f --- /dev/null +++ b/src/crewai/utilities/reasoning_handler.py @@ -0,0 +1,311 @@ +import logging +import json +from typing import Tuple, cast + +from pydantic import BaseModel, Field + +from crewai.agent import Agent +from crewai.task import Task +from crewai.utilities import I18N +from crewai.llm import LLM + + +class ReasoningPlan(BaseModel): + """Model representing a reasoning plan for a task.""" + plan: str = Field(description="The detailed reasoning plan for the task.") + ready: bool = Field(description="Whether the agent is ready to execute the task.") + + +class AgentReasoningOutput(BaseModel): + """Model representing the output of the agent reasoning process.""" + plan: ReasoningPlan = Field(description="The reasoning plan for the task.") + + +class ReasoningFunction(BaseModel): + """Model for function calling with reasoning.""" + plan: str = Field(description="The detailed reasoning plan for the task.") + ready: bool = Field(description="Whether the agent is ready to execute the task.") + + +class AgentReasoning: + """ + Handles the agent reasoning process, enabling an agent to reflect and create a plan + before executing a task. + """ + def __init__(self, task: Task, agent: Agent): + if not task or not agent: + raise ValueError("Both task and agent must be provided.") + self.task = task + self.agent = agent + self.llm = cast(LLM, agent.llm) + self.logger = logging.getLogger(__name__) + self.i18n = I18N() + + def handle_agent_reasoning(self) -> AgentReasoningOutput: + """ + Public method for the reasoning process that creates and refines a plan + for the task until the agent is ready to execute it. + + Returns: + AgentReasoningOutput: The output of the agent reasoning process. + """ + return self.__handle_agent_reasoning() + + def __handle_agent_reasoning(self) -> AgentReasoningOutput: + """ + Private method that handles the agent reasoning process. + + Returns: + AgentReasoningOutput: The output of the agent reasoning process. + """ + plan, ready = self.__create_initial_plan() + + plan, ready = self.__refine_plan_if_needed(plan, ready) + + reasoning_plan = ReasoningPlan(plan=plan, ready=ready) + return AgentReasoningOutput(plan=reasoning_plan) + + def __create_initial_plan(self) -> Tuple[str, bool]: + """ + Creates the initial reasoning plan for the task. + + Returns: + Tuple[str, bool]: The initial plan and whether the agent is ready to execute the task. + """ + reasoning_prompt = self.__create_reasoning_prompt() + + if self.llm.supports_function_calling(): + plan, ready = self.__call_with_function(reasoning_prompt, "initial_plan") + return plan, ready + else: + system_prompt = self.i18n.retrieve("reasoning", "initial_plan").format( + role=self.agent.role, + goal=self.agent.goal, + backstory=self.__get_agent_backstory() + ) + + response = self.llm.call( + [ + {"role": "system", "content": system_prompt}, + {"role": "user", "content": reasoning_prompt} + ] + ) + + return self.__parse_reasoning_response(str(response)) + + def __refine_plan_if_needed(self, plan: str, ready: bool) -> Tuple[str, bool]: + """ + Refines the reasoning plan if the agent is not ready to execute the task. + + Args: + plan: The current reasoning plan. + ready: Whether the agent is ready to execute the task. + + Returns: + Tuple[str, bool]: The refined plan and whether the agent is ready to execute the task. + """ + attempt = 1 + max_attempts = self.agent.max_reasoning_attempts + + while not ready and (max_attempts is None or attempt < max_attempts): + refine_prompt = self.__create_refine_prompt(plan) + + if self.llm.supports_function_calling(): + plan, ready = self.__call_with_function(refine_prompt, "refine_plan") + else: + system_prompt = self.i18n.retrieve("reasoning", "refine_plan").format( + role=self.agent.role, + goal=self.agent.goal, + backstory=self.__get_agent_backstory() + ) + + response = self.llm.call( + [ + {"role": "system", "content": system_prompt}, + {"role": "user", "content": refine_prompt} + ] + ) + plan, ready = self.__parse_reasoning_response(str(response)) + + attempt += 1 + + if max_attempts is not None and attempt >= max_attempts: + self.logger.warning( + f"Agent reasoning reached maximum attempts ({max_attempts}) without being ready. Proceeding with current plan." + ) + break + + return plan, ready + + def __call_with_function(self, prompt: str, prompt_type: str) -> Tuple[str, bool]: + """ + Calls the LLM with function calling to get a reasoning plan. + + Args: + prompt: The prompt to send to the LLM. + prompt_type: The type of prompt (initial_plan or refine_plan). + + Returns: + Tuple[str, bool]: A tuple containing the plan and whether the agent is ready. + """ + self.logger.debug(f"Using function calling for {prompt_type} reasoning") + + function_schema = { + "name": "create_reasoning_plan", + "description": "Create or refine a reasoning plan for a task", + "parameters": { + "type": "object", + "properties": { + "plan": { + "type": "string", + "description": "The detailed reasoning plan for the task." + }, + "ready": { + "type": "boolean", + "description": "Whether the agent is ready to execute the task." + } + }, + "required": ["plan", "ready"] + } + } + + try: + system_prompt = self.i18n.retrieve("reasoning", prompt_type).format( + role=self.agent.role, + goal=self.agent.goal, + backstory=self.__get_agent_backstory() + ) + + response = self.llm.call( + [ + {"role": "system", "content": system_prompt}, + {"role": "user", "content": prompt} + ], + tools=[function_schema] + ) + + self.logger.debug(f"Function calling response: {response[:100]}...") + + try: + result = json.loads(response) + if "plan" in result and "ready" in result: + return result["plan"], result["ready"] + except (json.JSONDecodeError, KeyError): + pass + + response_str = str(response) + return response_str, "READY: I am ready to execute the task." in response_str + + except Exception as e: + self.logger.warning(f"Error during function calling: {str(e)}. Falling back to text parsing.") + + try: + system_prompt = self.i18n.retrieve("reasoning", prompt_type).format( + role=self.agent.role, + goal=self.agent.goal, + backstory=self.__get_agent_backstory() + ) + + fallback_response = self.llm.call( + [ + {"role": "system", "content": system_prompt}, + {"role": "user", "content": prompt} + ] + ) + + fallback_str = str(fallback_response) + return fallback_str, "READY: I am ready to execute the task." in fallback_str + except Exception as inner_e: + self.logger.error(f"Error during fallback text parsing: {str(inner_e)}") + return "Failed to generate a plan due to an error.", True # Default to ready to avoid getting stuck + + def __get_agent_backstory(self) -> str: + """ + Safely gets the agent's backstory, providing a default if not available. + + Returns: + str: The agent's backstory or a default value. + """ + return getattr(self.agent, "backstory", "No backstory provided") + + def __create_reasoning_prompt(self) -> str: + """ + Creates a prompt for the agent to reason about the task. + + Returns: + str: The reasoning prompt. + """ + available_tools = self.__format_available_tools() + + return self.i18n.retrieve("reasoning", "create_plan_prompt").format( + role=self.agent.role, + goal=self.agent.goal, + backstory=self.__get_agent_backstory(), + description=self.task.description, + expected_output=self.task.expected_output, + tools=available_tools + ) + + def __format_available_tools(self) -> str: + """ + Formats the available tools for inclusion in the prompt. + + Returns: + str: Comma-separated list of tool names. + """ + try: + return ', '.join([tool.name for tool in (self.task.tools or [])]) + except (AttributeError, TypeError): + return "No tools available" + + def __create_refine_prompt(self, current_plan: str) -> str: + """ + Creates a prompt for the agent to refine its reasoning plan. + + Args: + current_plan: The current reasoning plan. + + Returns: + str: The refine prompt. + """ + return self.i18n.retrieve("reasoning", "refine_plan_prompt").format( + role=self.agent.role, + goal=self.agent.goal, + backstory=self.__get_agent_backstory(), + current_plan=current_plan + ) + + def __parse_reasoning_response(self, response: str) -> Tuple[str, bool]: + """ + Parses the reasoning response to extract the plan and whether + the agent is ready to execute the task. + + Args: + response: The LLM response. + + Returns: + Tuple[str, bool]: The plan and whether the agent is ready to execute the task. + """ + if not response: + return "No plan was generated.", False + + plan = response + ready = False + + if "READY: I am ready to execute the task." in response: + ready = True + + return plan, ready + + def _handle_agent_reasoning(self) -> AgentReasoningOutput: + """ + Deprecated method for backward compatibility. + Use handle_agent_reasoning() instead. + + Returns: + AgentReasoningOutput: The output of the agent reasoning process. + """ + self.logger.warning( + "The _handle_agent_reasoning method is deprecated. Use handle_agent_reasoning instead." + ) + return self.handle_agent_reasoning() diff --git a/tests/agent_reasoning_test.py b/tests/agent_reasoning_test.py new file mode 100644 index 000000000..eea42b7a5 --- /dev/null +++ b/tests/agent_reasoning_test.py @@ -0,0 +1,261 @@ +"""Tests for reasoning in agents.""" + +import json +import pytest + +from crewai import Agent, Task +from crewai.llm import LLM +from crewai.utilities.reasoning_handler import AgentReasoning + + +@pytest.fixture +def mock_llm_responses(): + """Fixture for mock LLM responses.""" + return { + "ready": "I'll solve this simple math problem.\n\nREADY: I am ready to execute the task.\n\n", + "not_ready": "I need to think about derivatives.\n\nNOT READY: I need to refine my plan because I'm not sure about the derivative rules.", + "ready_after_refine": "I'll use the power rule for derivatives where d/dx(x^n) = n*x^(n-1).\n\nREADY: I am ready to execute the task.", + "execution": "4" + } + + +def test_agent_with_reasoning(mock_llm_responses): + """Test agent with reasoning.""" + llm = LLM("gpt-3.5-turbo") + + agent = Agent( + role="Test Agent", + goal="To test the reasoning feature", + backstory="I am a test agent created to verify the reasoning feature works correctly.", + llm=llm, + reasoning=True, + verbose=True + ) + + task = Task( + description="Simple math task: What's 2+2?", + expected_output="The answer should be a number.", + agent=agent + ) + + agent.llm.call = lambda messages, *args, **kwargs: ( + mock_llm_responses["ready"] + if any("create a detailed plan" in msg.get("content", "") for msg in messages) + else mock_llm_responses["execution"] + ) + + result = agent.execute_task(task) + + assert result == mock_llm_responses["execution"] + assert "Reasoning Plan:" in task.description + + +def test_agent_with_reasoning_not_ready_initially(mock_llm_responses): + """Test agent with reasoning that requires refinement.""" + llm = LLM("gpt-3.5-turbo") + + agent = Agent( + role="Test Agent", + goal="To test the reasoning feature", + backstory="I am a test agent created to verify the reasoning feature works correctly.", + llm=llm, + reasoning=True, + max_reasoning_attempts=2, + verbose=True + ) + + task = Task( + description="Complex math task: What's the derivative of x²?", + expected_output="The answer should be a mathematical expression.", + agent=agent + ) + + call_count = [0] + + def mock_llm_call(messages, *args, **kwargs): + if any("create a detailed plan" in msg.get("content", "") for msg in messages) or any("refine your plan" in msg.get("content", "") for msg in messages): + call_count[0] += 1 + if call_count[0] == 1: + return mock_llm_responses["not_ready"] + else: + return mock_llm_responses["ready_after_refine"] + else: + return "2x" + + agent.llm.call = mock_llm_call + + result = agent.execute_task(task) + + assert result == "2x" + assert call_count[0] == 2 # Should have made 2 reasoning calls + assert "Reasoning Plan:" in task.description + + +def test_agent_with_reasoning_max_attempts_reached(): + """Test agent with reasoning that reaches max attempts without being ready.""" + llm = LLM("gpt-3.5-turbo") + + agent = Agent( + role="Test Agent", + goal="To test the reasoning feature", + backstory="I am a test agent created to verify the reasoning feature works correctly.", + llm=llm, + reasoning=True, + max_reasoning_attempts=2, + verbose=True + ) + + task = Task( + description="Complex math task: Solve the Riemann hypothesis.", + expected_output="A proof or disproof of the hypothesis.", + agent=agent + ) + + call_count = [0] + + def mock_llm_call(messages, *args, **kwargs): + if any("create a detailed plan" in msg.get("content", "") for msg in messages) or any("refine your plan" in msg.get("content", "") for msg in messages): + call_count[0] += 1 + return f"Attempt {call_count[0]}: I need more time to think.\n\nNOT READY: I need to refine my plan further." + else: + return "This is an unsolved problem in mathematics." + + agent.llm.call = mock_llm_call + + result = agent.execute_task(task) + + assert result == "This is an unsolved problem in mathematics." + assert call_count[0] == 2 # Should have made exactly 2 reasoning calls (max_attempts) + assert "Reasoning Plan:" in task.description + + +def test_agent_reasoning_input_validation(): + """Test input validation in AgentReasoning.""" + llm = LLM("gpt-3.5-turbo") + + agent = Agent( + role="Test Agent", + goal="To test the reasoning feature", + backstory="I am a test agent created to verify the reasoning feature works correctly.", + llm=llm, + reasoning=True + ) + + with pytest.raises(ValueError, match="Both task and agent must be provided"): + AgentReasoning(task=None, agent=agent) + + task = Task( + description="Simple task", + expected_output="Simple output" + ) + with pytest.raises(ValueError, match="Both task and agent must be provided"): + AgentReasoning(task=task, agent=None) + + +def test_agent_reasoning_error_handling(): + """Test error handling during the reasoning process.""" + llm = LLM("gpt-3.5-turbo") + + agent = Agent( + role="Test Agent", + goal="To test the reasoning feature", + backstory="I am a test agent created to verify the reasoning feature works correctly.", + llm=llm, + reasoning=True + ) + + task = Task( + description="Task that will cause an error", + expected_output="Output that will never be generated", + agent=agent + ) + + call_count = [0] + + def mock_llm_call_error(*args, **kwargs): + call_count[0] += 1 + if call_count[0] <= 2: # First calls are for reasoning + raise Exception("LLM error during reasoning") + return "Fallback execution result" # Return a value for task execution + + agent.llm.call = mock_llm_call_error + + result = agent.execute_task(task) + + assert result == "Fallback execution result" + assert call_count[0] > 2 # Ensure we called the mock multiple times + + +def test_agent_with_function_calling(): + """Test agent with reasoning using function calling.""" + llm = LLM("gpt-3.5-turbo") + + agent = Agent( + role="Test Agent", + goal="To test the reasoning feature", + backstory="I am a test agent created to verify the reasoning feature works correctly.", + llm=llm, + reasoning=True, + verbose=True + ) + + task = Task( + description="Simple math task: What's 2+2?", + expected_output="The answer should be a number.", + agent=agent + ) + + agent.llm.supports_function_calling = lambda: True + + def mock_function_call(messages, *args, **kwargs): + if "tools" in kwargs: + return json.dumps({ + "plan": "I'll solve this simple math problem: 2+2=4.", + "ready": True + }) + else: + return "4" + + agent.llm.call = mock_function_call + + result = agent.execute_task(task) + + assert result == "4" + assert "Reasoning Plan:" in task.description + assert "I'll solve this simple math problem: 2+2=4." in task.description + + +def test_agent_with_function_calling_fallback(): + """Test agent with reasoning using function calling that falls back to text parsing.""" + llm = LLM("gpt-3.5-turbo") + + agent = Agent( + role="Test Agent", + goal="To test the reasoning feature", + backstory="I am a test agent created to verify the reasoning feature works correctly.", + llm=llm, + reasoning=True, + verbose=True + ) + + task = Task( + description="Simple math task: What's 2+2?", + expected_output="The answer should be a number.", + agent=agent + ) + + agent.llm.supports_function_calling = lambda: True + + def mock_function_call(messages, *args, **kwargs): + if "tools" in kwargs: + return "Invalid JSON that will trigger fallback. READY: I am ready to execute the task." + else: + return "4" + + agent.llm.call = mock_function_call + + result = agent.execute_task(task) + + assert result == "4" + assert "Reasoning Plan:" in task.description + assert "Invalid JSON that will trigger fallback" in task.description From 8d2928e49af10add10b2142af795ad6756e229c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moura?= Date: Tue, 20 May 2025 08:39:16 -0700 Subject: [PATCH 32/40] fixing handler --- src/crewai/utilities/reasoning_handler.py | 117 +++++++++++----------- 1 file changed, 60 insertions(+), 57 deletions(-) diff --git a/src/crewai/utilities/reasoning_handler.py b/src/crewai/utilities/reasoning_handler.py index 5aeb9716f..2fa5dba3c 100644 --- a/src/crewai/utilities/reasoning_handler.py +++ b/src/crewai/utilities/reasoning_handler.py @@ -45,35 +45,35 @@ class AgentReasoning: """ Public method for the reasoning process that creates and refines a plan for the task until the agent is ready to execute it. - + Returns: AgentReasoningOutput: The output of the agent reasoning process. """ return self.__handle_agent_reasoning() - + def __handle_agent_reasoning(self) -> AgentReasoningOutput: """ Private method that handles the agent reasoning process. - + Returns: AgentReasoningOutput: The output of the agent reasoning process. """ plan, ready = self.__create_initial_plan() - + plan, ready = self.__refine_plan_if_needed(plan, ready) - + reasoning_plan = ReasoningPlan(plan=plan, ready=ready) return AgentReasoningOutput(plan=reasoning_plan) def __create_initial_plan(self) -> Tuple[str, bool]: """ Creates the initial reasoning plan for the task. - + Returns: Tuple[str, bool]: The initial plan and whether the agent is ready to execute the task. """ reasoning_prompt = self.__create_reasoning_prompt() - + if self.llm.supports_function_calling(): plan, ready = self.__call_with_function(reasoning_prompt, "initial_plan") return plan, ready @@ -83,33 +83,33 @@ class AgentReasoning: goal=self.agent.goal, backstory=self.__get_agent_backstory() ) - + response = self.llm.call( [ {"role": "system", "content": system_prompt}, {"role": "user", "content": reasoning_prompt} ] ) - + return self.__parse_reasoning_response(str(response)) - + def __refine_plan_if_needed(self, plan: str, ready: bool) -> Tuple[str, bool]: """ Refines the reasoning plan if the agent is not ready to execute the task. - + Args: plan: The current reasoning plan. ready: Whether the agent is ready to execute the task. - + Returns: Tuple[str, bool]: The refined plan and whether the agent is ready to execute the task. """ attempt = 1 max_attempts = self.agent.max_reasoning_attempts - + while not ready and (max_attempts is None or attempt < max_attempts): refine_prompt = self.__create_refine_prompt(plan) - + if self.llm.supports_function_calling(): plan, ready = self.__call_with_function(refine_prompt, "refine_plan") else: @@ -118,7 +118,7 @@ class AgentReasoning: goal=self.agent.goal, backstory=self.__get_agent_backstory() ) - + response = self.llm.call( [ {"role": "system", "content": system_prompt}, @@ -126,56 +126,59 @@ class AgentReasoning: ] ) plan, ready = self.__parse_reasoning_response(str(response)) - + attempt += 1 - + if max_attempts is not None and attempt >= max_attempts: self.logger.warning( f"Agent reasoning reached maximum attempts ({max_attempts}) without being ready. Proceeding with current plan." ) break - + return plan, ready def __call_with_function(self, prompt: str, prompt_type: str) -> Tuple[str, bool]: """ Calls the LLM with function calling to get a reasoning plan. - + Args: prompt: The prompt to send to the LLM. prompt_type: The type of prompt (initial_plan or refine_plan). - + Returns: Tuple[str, bool]: A tuple containing the plan and whether the agent is ready. """ self.logger.debug(f"Using function calling for {prompt_type} reasoning") - + function_schema = { - "name": "create_reasoning_plan", - "description": "Create or refine a reasoning plan for a task", - "parameters": { - "type": "object", - "properties": { - "plan": { - "type": "string", - "description": "The detailed reasoning plan for the task." + "type": "function", + "function": { + "name": "create_reasoning_plan", + "description": "Create or refine a reasoning plan for a task", + "parameters": { + "type": "object", + "properties": { + "plan": { + "type": "string", + "description": "The detailed reasoning plan for the task." + }, + "ready": { + "type": "boolean", + "description": "Whether the agent is ready to execute the task." + } }, - "ready": { - "type": "boolean", - "description": "Whether the agent is ready to execute the task." - } - }, - "required": ["plan", "ready"] + "required": ["plan", "ready"] + } } } - + try: system_prompt = self.i18n.retrieve("reasoning", prompt_type).format( role=self.agent.role, goal=self.agent.goal, backstory=self.__get_agent_backstory() ) - + response = self.llm.call( [ {"role": "system", "content": system_prompt}, @@ -183,36 +186,36 @@ class AgentReasoning: ], tools=[function_schema] ) - + self.logger.debug(f"Function calling response: {response[:100]}...") - + try: result = json.loads(response) if "plan" in result and "ready" in result: return result["plan"], result["ready"] except (json.JSONDecodeError, KeyError): pass - + response_str = str(response) return response_str, "READY: I am ready to execute the task." in response_str - + except Exception as e: self.logger.warning(f"Error during function calling: {str(e)}. Falling back to text parsing.") - + try: system_prompt = self.i18n.retrieve("reasoning", prompt_type).format( role=self.agent.role, goal=self.agent.goal, backstory=self.__get_agent_backstory() ) - + fallback_response = self.llm.call( [ {"role": "system", "content": system_prompt}, {"role": "user", "content": prompt} ] ) - + fallback_str = str(fallback_response) return fallback_str, "READY: I am ready to execute the task." in fallback_str except Exception as inner_e: @@ -222,7 +225,7 @@ class AgentReasoning: def __get_agent_backstory(self) -> str: """ Safely gets the agent's backstory, providing a default if not available. - + Returns: str: The agent's backstory or a default value. """ @@ -231,12 +234,12 @@ class AgentReasoning: def __create_reasoning_prompt(self) -> str: """ Creates a prompt for the agent to reason about the task. - + Returns: str: The reasoning prompt. """ available_tools = self.__format_available_tools() - + return self.i18n.retrieve("reasoning", "create_plan_prompt").format( role=self.agent.role, goal=self.agent.goal, @@ -249,7 +252,7 @@ class AgentReasoning: def __format_available_tools(self) -> str: """ Formats the available tools for inclusion in the prompt. - + Returns: str: Comma-separated list of tool names. """ @@ -261,10 +264,10 @@ class AgentReasoning: def __create_refine_prompt(self, current_plan: str) -> str: """ Creates a prompt for the agent to refine its reasoning plan. - + Args: current_plan: The current reasoning plan. - + Returns: str: The refine prompt. """ @@ -279,29 +282,29 @@ class AgentReasoning: """ Parses the reasoning response to extract the plan and whether the agent is ready to execute the task. - + Args: response: The LLM response. - + Returns: Tuple[str, bool]: The plan and whether the agent is ready to execute the task. """ if not response: return "No plan was generated.", False - + plan = response ready = False - + if "READY: I am ready to execute the task." in response: ready = True - + return plan, ready - + def _handle_agent_reasoning(self) -> AgentReasoningOutput: """ Deprecated method for backward compatibility. Use handle_agent_reasoning() instead. - + Returns: AgentReasoningOutput: The output of the agent reasoning process. """ From 50b8f83428cbe1e6b618b7e73698ac144f3c9be8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moura?= Date: Tue, 20 May 2025 14:21:21 -0700 Subject: [PATCH 33/40] reasoning logs --- src/crewai/utilities/events/event_listener.py | 30 ++++ src/crewai/utilities/events/event_types.py | 8 ++ .../utilities/events/reasoning_events.py | 31 +++++ .../events/utils/console_formatter.py | 130 +++++++++++++++++- src/crewai/utilities/reasoning_handler.py | 77 ++++++++++- 5 files changed, 271 insertions(+), 5 deletions(-) create mode 100644 src/crewai/utilities/events/reasoning_events.py diff --git a/src/crewai/utilities/events/event_listener.py b/src/crewai/utilities/events/event_listener.py index a76b87964..caf83bfdc 100644 --- a/src/crewai/utilities/events/event_listener.py +++ b/src/crewai/utilities/events/event_listener.py @@ -56,6 +56,11 @@ from .tool_usage_events import ( ToolUsageFinishedEvent, ToolUsageStartedEvent, ) +from .reasoning_events import ( + AgentReasoningStartedEvent, + AgentReasoningCompletedEvent, + AgentReasoningFailedEvent, +) class EventListener(BaseEventListener): @@ -406,5 +411,30 @@ class EventListener(BaseEventListener): self.formatter.current_crew_tree, ) + # ----------- REASONING EVENTS ----------- + + @crewai_event_bus.on(AgentReasoningStartedEvent) + def on_agent_reasoning_started(source, event: AgentReasoningStartedEvent): + self.formatter.handle_reasoning_started( + self.formatter.current_agent_branch, + event.attempt, + self.formatter.current_crew_tree, + ) + + @crewai_event_bus.on(AgentReasoningCompletedEvent) + def on_agent_reasoning_completed(source, event: AgentReasoningCompletedEvent): + self.formatter.handle_reasoning_completed( + event.plan, + event.ready, + self.formatter.current_crew_tree, + ) + + @crewai_event_bus.on(AgentReasoningFailedEvent) + def on_agent_reasoning_failed(source, event: AgentReasoningFailedEvent): + self.formatter.handle_reasoning_failed( + event.error, + self.formatter.current_crew_tree, + ) + event_listener = EventListener() diff --git a/src/crewai/utilities/events/event_types.py b/src/crewai/utilities/events/event_types.py index 4e0673758..5d4a41dcc 100644 --- a/src/crewai/utilities/events/event_types.py +++ b/src/crewai/utilities/events/event_types.py @@ -43,6 +43,11 @@ from .tool_usage_events import ( ToolUsageFinishedEvent, ToolUsageStartedEvent, ) +from .reasoning_events import ( + AgentReasoningStartedEvent, + AgentReasoningCompletedEvent, + AgentReasoningFailedEvent, +) EventTypes = Union[ CrewKickoffStartedEvent, @@ -74,4 +79,7 @@ EventTypes = Union[ LLMStreamChunkEvent, LLMGuardrailStartedEvent, LLMGuardrailCompletedEvent, + AgentReasoningStartedEvent, + AgentReasoningCompletedEvent, + AgentReasoningFailedEvent, ] diff --git a/src/crewai/utilities/events/reasoning_events.py b/src/crewai/utilities/events/reasoning_events.py new file mode 100644 index 000000000..03d484de3 --- /dev/null +++ b/src/crewai/utilities/events/reasoning_events.py @@ -0,0 +1,31 @@ +from crewai.utilities.events.base_events import BaseEvent + + +class AgentReasoningStartedEvent(BaseEvent): + """Event emitted when an agent starts reasoning about a task.""" + + type: str = "agent_reasoning_started" + agent_role: str + task_id: str + attempt: int = 1 # The current reasoning/refinement attempt + + +class AgentReasoningCompletedEvent(BaseEvent): + """Event emitted when an agent finishes its reasoning process.""" + + type: str = "agent_reasoning_completed" + agent_role: str + task_id: str + plan: str + ready: bool + attempt: int = 1 + + +class AgentReasoningFailedEvent(BaseEvent): + """Event emitted when the reasoning process fails.""" + + type: str = "agent_reasoning_failed" + agent_role: str + task_id: str + error: str + attempt: int = 1 \ No newline at end of file diff --git a/src/crewai/utilities/events/utils/console_formatter.py b/src/crewai/utilities/events/utils/console_formatter.py index b9adc9fda..e3ae471d2 100644 --- a/src/crewai/utilities/events/utils/console_formatter.py +++ b/src/crewai/utilities/events/utils/console_formatter.py @@ -15,6 +15,7 @@ class ConsoleFormatter: current_method_branch: Optional[Tree] = None current_lite_agent_branch: Optional[Tree] = None tool_usage_counts: Dict[str, int] = {} + current_reasoning_branch: Optional[Tree] = None # Track reasoning status def __init__(self, verbose: bool = False): self.console = Console(width=None) @@ -399,7 +400,11 @@ class ConsoleFormatter: tree_to_use = branch_to_use or crew_tree if branch_to_use is None or tree_to_use is None: - return None + # If we don't have a valid branch, default to crew_tree if provided + if crew_tree is not None: + branch_to_use = tree_to_use = crew_tree + else: + return None # Update tool usage count self.tool_usage_counts[tool_name] = self.tool_usage_counts.get(tool_name, 0) + 1 @@ -501,7 +506,11 @@ class ConsoleFormatter: tree_to_use = branch_to_use or crew_tree if branch_to_use is None or tree_to_use is None: - return None + # If we don't have a valid branch, default to crew_tree if provided + if crew_tree is not None: + branch_to_use = tree_to_use = crew_tree + else: + return None # Only add thinking status if we don't have a current tool branch if self.current_tool_branch is None: @@ -797,7 +806,7 @@ class ConsoleFormatter: tree_to_use = branch_to_use or crew_tree if branch_to_use is None or tree_to_use is None: - # If we don't have a valid branch, use crew_tree as the branch if available + # If we don't have a valid branch, default to crew_tree if provided if crew_tree is not None: branch_to_use = tree_to_use = crew_tree else: @@ -982,3 +991,118 @@ class ConsoleFormatter: "Knowledge Search Failed", "Search Error", "red", Error=error ) self.print_panel(error_content, "Search Error", "red") + + # ----------- AGENT REASONING EVENTS ----------- + + def handle_reasoning_started( + self, + agent_branch: Optional[Tree], + attempt: int, + crew_tree: Optional[Tree], + ) -> Optional[Tree]: + """Handle agent reasoning started (or refinement) event.""" + if not self.verbose: + return None + + # Prefer LiteAgent branch if we are within a LiteAgent context + branch_to_use = self.current_lite_agent_branch or agent_branch + tree_to_use = branch_to_use or crew_tree + + if branch_to_use is None or tree_to_use is None: + # If we don't have a valid branch, default to crew_tree if provided + if crew_tree is not None: + branch_to_use = tree_to_use = crew_tree + else: + return None + + # Reuse existing reasoning branch if present + reasoning_branch = self.current_reasoning_branch + if reasoning_branch is None: + reasoning_branch = branch_to_use.add("") + self.current_reasoning_branch = reasoning_branch + + # Build label text depending on attempt + status_text = ( + f"Reasoning (Attempt {attempt})" if attempt > 1 else "Reasoning..." + ) + self.update_tree_label(reasoning_branch, "🧠", status_text, "blue") + + self.print(tree_to_use) + self.print() + + return reasoning_branch + + def handle_reasoning_completed( + self, + plan: str, + ready: bool, + crew_tree: Optional[Tree], + ) -> None: + """Handle agent reasoning completed event.""" + if not self.verbose: + return + + reasoning_branch = self.current_reasoning_branch + tree_to_use = ( + self.current_lite_agent_branch + or self.current_agent_branch + or crew_tree + ) + + style = "green" if ready else "yellow" + status_text = "Reasoning Completed" if ready else "Reasoning Completed (Not Ready)" + + if reasoning_branch is not None: + self.update_tree_label(reasoning_branch, "✅", status_text, style) + + if tree_to_use is not None: + self.print(tree_to_use) + + # Show plan in a panel (trim very long plans) + if plan: + plan_panel = Panel( + Text(plan, style="white"), + title="🧠 Reasoning Plan", + border_style=style, + padding=(1, 2), + ) + self.print(plan_panel) + + self.print() + + # Clear stored branch after completion + self.current_reasoning_branch = None + + def handle_reasoning_failed( + self, + error: str, + crew_tree: Optional[Tree], + ) -> None: + """Handle agent reasoning failure event.""" + if not self.verbose: + return + + reasoning_branch = self.current_reasoning_branch + tree_to_use = ( + self.current_lite_agent_branch + or self.current_agent_branch + or crew_tree + ) + + if reasoning_branch is not None: + self.update_tree_label(reasoning_branch, "❌", "Reasoning Failed", "red") + + if tree_to_use is not None: + self.print(tree_to_use) + + # Error panel + error_content = self.create_status_content( + "Reasoning Failed", + "Error", + "red", + Error=error, + ) + self.print_panel(error_content, "Reasoning Error", "red") + + # Clear stored branch after failure + self.current_reasoning_branch = None diff --git a/src/crewai/utilities/reasoning_handler.py b/src/crewai/utilities/reasoning_handler.py index 2fa5dba3c..cb94eb38a 100644 --- a/src/crewai/utilities/reasoning_handler.py +++ b/src/crewai/utilities/reasoning_handler.py @@ -8,6 +8,12 @@ from crewai.agent import Agent from crewai.task import Task from crewai.utilities import I18N from crewai.llm import LLM +from crewai.utilities.events.crewai_event_bus import crewai_event_bus +from crewai.utilities.events.reasoning_events import ( + AgentReasoningStartedEvent, + AgentReasoningCompletedEvent, + AgentReasoningFailedEvent, +) class ReasoningPlan(BaseModel): @@ -49,7 +55,55 @@ class AgentReasoning: Returns: AgentReasoningOutput: The output of the agent reasoning process. """ - return self.__handle_agent_reasoning() + # Emit a reasoning started event (attempt 1) + try: + crewai_event_bus.emit( + self.agent, + AgentReasoningStartedEvent( + agent_role=self.agent.role, + task_id=str(self.task.id), + attempt=1, + ), + ) + except Exception: + # Ignore event bus errors to avoid breaking execution + pass + + try: + output = self.__handle_agent_reasoning() + + # Emit reasoning completed event + try: + crewai_event_bus.emit( + self.agent, + AgentReasoningCompletedEvent( + agent_role=self.agent.role, + task_id=str(self.task.id), + plan=output.plan.plan, + ready=output.plan.ready, + attempt=1, + ), + ) + except Exception: + pass + + return output + except Exception as e: + # Emit reasoning failed event + try: + crewai_event_bus.emit( + self.agent, + AgentReasoningFailedEvent( + agent_role=self.agent.role, + task_id=str(self.task.id), + error=str(e), + attempt=1, + ), + ) + except Exception: + pass + + raise def __handle_agent_reasoning(self) -> AgentReasoningOutput: """ @@ -108,6 +162,19 @@ class AgentReasoning: max_attempts = self.agent.max_reasoning_attempts while not ready and (max_attempts is None or attempt < max_attempts): + # Emit event for each refinement attempt + try: + crewai_event_bus.emit( + self.agent, + AgentReasoningStartedEvent( + agent_role=self.agent.role, + task_id=str(self.task.id), + attempt=attempt + 1, + ), + ) + except Exception: + pass + refine_prompt = self.__create_refine_prompt(plan) if self.llm.supports_function_calling(): @@ -179,12 +246,18 @@ class AgentReasoning: backstory=self.__get_agent_backstory() ) + # Prepare a simple callable that just returns the tool arguments as JSON + def _create_reasoning_plan(plan: str, ready: bool): # noqa: N802 + """Return the reasoning plan result in JSON string form.""" + return json.dumps({"plan": plan, "ready": ready}) + response = self.llm.call( [ {"role": "system", "content": system_prompt}, {"role": "user", "content": prompt} ], - tools=[function_schema] + tools=[function_schema], + available_functions={"create_reasoning_plan": _create_reasoning_plan}, ) self.logger.debug(f"Function calling response: {response[:100]}...") From e21d54654cebbc4d4d38c3491d98f730f1885a43 Mon Sep 17 00:00:00 2001 From: Tony Kipkemboi Date: Tue, 20 May 2025 18:06:41 -0400 Subject: [PATCH 34/40] docs: add MCP integration documentation and update enterprise docs (#2868) --- docs/docs.json | 6 + docs/enterprise/introduction.mdx | 10 +- docs/images/enterprise/crew-secrets.png | Bin 0 -> 370680 bytes .../enterprise/mcp-enterprise-download.png | Bin 0 -> 246753 bytes docs/mcp/crewai-mcp-integration.mdx | 229 ++++++++++++++++++ 5 files changed, 240 insertions(+), 5 deletions(-) create mode 100644 docs/images/enterprise/crew-secrets.png create mode 100644 docs/images/enterprise/mcp-enterprise-download.png create mode 100644 docs/mcp/crewai-mcp-integration.mdx diff --git a/docs/docs.json b/docs/docs.json index 47bf8d889..6146cb7d4 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -139,6 +139,12 @@ "tools/youtubevideosearchtool" ] }, + { + "group": "MCP Integration", + "pages": [ + "mcp/crewai-mcp-integration" + ] + }, { "group": "Agent Monitoring & Observability", "pages": [ diff --git a/docs/enterprise/introduction.mdx b/docs/enterprise/introduction.mdx index 3d6e85214..c76410a83 100644 --- a/docs/enterprise/introduction.mdx +++ b/docs/enterprise/introduction.mdx @@ -64,14 +64,14 @@ CrewAI Enterprise extends the power of the open-source framework with features d Sign Up - - Use code or Crew Studio to create your crew + + Use code or Crew Studio to build your crew - Create Crew + Build Crew diff --git a/docs/images/enterprise/crew-secrets.png b/docs/images/enterprise/crew-secrets.png new file mode 100644 index 0000000000000000000000000000000000000000..a5c4560553267bb33d38817ef13bfd61ce00d43c GIT binary patch literal 370680 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

xAK_?9Nx#GNYx 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ℜHKm(z!yv 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 literal 0 HcmV?d00001 diff --git a/docs/images/enterprise/mcp-enterprise-download.png b/docs/images/enterprise/mcp-enterprise-download.png new file mode 100644 index 0000000000000000000000000000000000000000..f4ca0ad2e492a81bd935460b8a352313ae49f1ff GIT binary patch literal 246753 zcmdqHgC-#p9Mj)i6Q3$r(vh3$ z&k!?p?g#G$o@e=;$eb@AN3#7yH|L4*%rdyC3OYsb3XVj>+2!}^O19`3T<&}gp-IFS zTk5v9BcWGR#K)^?!W@XZQ!0$3oyYAfK|xrc&Zn-SmxOpX*qKK9Uly|m(%2u&5WIST zS0deA{r#bl@X!LuAbAoI^*ue$l}8Zp#>IWrRXgiWC0QzCLOea|ny@Im#9Pz=ftc*b zt;9g;h9ytmz_9PsJ{nqDn{4yZ-`Ht56?|WSS+I23-4Od8EitnS71EI^+n&Rm)?11X z`8Toi@mOd3(!3_ATZyWgG?yRQ8 zQ6BiqoqJNfX04Ij$@7Lv=uI10uHal=mD+oPi@ia?R<8Z>1-2;LJ=vnyPHzl9SHEU8 zJwbXRWBrC=c{N;^s)}KO+CR9g61N32v=SM(qBe^z)lv7&a+7N^`j)d;8M$VFOhx-5jy<6_Qp@+ zl{}*X-YNpIbF_mh+Drt%UuJt6H&nh$JDDj!P{$qGof6(1ztRf(`*6XL}q z3(3ost_DIUXn)!fEWJNg?bFa1oJry_=4 zN&kM2UKaMfpG8s~=DDooOKyP=>r`8Mb3qWu+)f^|oPH=t_O(DinpYr|FFO8M;YOad zJ}ED|!|gKq=kaAvpXANzTb9i6K8D|g(=x;q<=MYAs-vByV~&55Z;}W5Dv@74>b>>G zi|10@A5ZQh<|Dh!gzy7;wOh2b;Tqi)op)XhJSKizESxUS`(nt5oBcF84+62{% zO}}nTufVj$d_?yqiTje4j4TW?97j=?~3$>UpVofqANZPAjtNsK(BK zRhz@WK>T(l5dC62B%HNJkLERrKarXeTZnQWyAwAPTOG9v%}0_H6|+42u?%`u?FUsn z##D?^>5&Oh2L%NMb%jg?9}0a9cM2XB#A{e4F(h89By-+RkyWqZqP8dBrrMU>#@}Yn z(4OLHNwVq7SQA+DKYn^_bgX7yR+k}Wl*!p<-29^1?DEs8BTg1-uk=3|dGM{L(x!e% zH4!1YA9SDc{-@sz84elaB50A-+Gl23GYT_eGeflzw$%gieama7>#b{&9^oEW>w*Kf z4Go?#ml3DwEGWn+w5c#B_YN@jiLR%tYpo>=ocAU0_3=&fs_?$%f5xBnoQgm14&rV` zbZNBt-30zWMyQH{s&4(2ht7r$&zcKQ75zeLzlfMLnKo%4tB&pNW=5xLMi2O;-Am&s zd;8pG^5x|7vVdnorR^`+ARYGj0g6W-R>@h)eme9xusirUTunAl_DnvR2%5M7PlMA< z0_}Mne%Nz4rrOsz#yS{2u@v*mw9VWU1CHK#d+Wu+$`4Z-jN^vm$CEVnd*kr2%n9*P z3Yg%i3p6-Sc_Md*Yb$lzYb$o!0WLT-1alq@Dp4EF-{IcggYH1DzPf&8Erl3Bo`Sj+ zX5QN;I*z_PoKAGwa`*xLHgyTq|QMr;R6#-&OQa{h4yCG_PEo{ygpGd^SDbSU4-#u<&;7)z#$iAKkaGw-OH3 zj;wY-n?=3!V&XB0@oLGJO!LfB(pl~oYi~C{Z~M+4QSulS-zo0W<&3#?&z+9hRBWqa z@3+UF%||}DP2EkXEe@Ya58I}xW_izX_thWFUW{+(A1B{eqpw~Nm=E7Co(K3!`d6Gu z9z-3V9z8nSJxV?yJ1;x-hga@pZ!IjzZP@IjY7N3ob`X zqct$OnCF-gf>^>ZeCL?uU%@f&9tF3mxRQc2wAe^q-`pn&qKbYUH7kc4rxxcggAIf7{3^9_)ssAP z8@I>QkBM!1()|S%n!I?Y#2a|e{)mLy&J0!wnpoyEqjt##$flxc-9P{6`_bhNG!3bE zG36^O+WsIocJJq(U%~zEtEuj)O~dns`)(gRmFzp!^E_ALyT`a-1;+&@vXoYL4|Hl> zkN>Pu@`dn47#10F8hwEt+Pm8qBRx=eg6*1B{eAqw9V+@h6}&Rq->ShBsS2a%^+F zGQg@9#|1#tKqFV}b}5LW0iDHYsb4V7N16j#?M`o8+s{JRDenTboi(PR-zQyma-64~ zQO@TLEiTpkX#zt6%=0zAYM%EiD}L;vhwsW%f0|1@Sa>?mJa*{oSzwDs9wuILN9 zvXO^b3$waTLQY`m^Z*xB>k_J*Jc{n7jIoz&GrjkbuAQ6R2sc*CL@)r@KK*M;`rR+& zKt_4Ii5@T?=-A})uB~aV;cDXc9AmNnu79TM?4r}2_m=aH`2;L@5HS@#m(wV;`07tn z@Vown_JHN{{qx?lm;=xK1X=Zw$_!${HHDZzCHITU!^;x2|5? zBp<`@@CfAXpP71@>S#;bxH=2IdhKd$E9mR&c1?mO>nn|GI@@}^V)J!&a`BY*mE-tp zgfy;w{aA>D?XMwTj&dBPI{IwNt{%2*;)240!W{BsY;0_@98>*=OiyZe$j^nMD zmz%VZ(7Si<1mB4Yx_a0NJ(iM^5)u{>5)l!=jS%qkbMboRE8ybE`S&FMGmna`r;Ufb zo0q+-3)}U)udH3Yz2rDJt{3{>zrWwp*4O_3R&w$D*S2sQ6uRyadMqd`^#4ZYW&h^C zkX`ruP4?Hm{$5V@dNOH!dtX~8GZlMh99MC#CNK3^O!lv3{-fvrUi5Fu=bpA6%C62h zLNEFM6U)Dd|Go2{gnun*`hQD477>^D_ci~m>)%MP_aLq3VUJtx)io34AIl2;$FqNp zmle9^@V{~VZ*l(h6emx4GFhSj)eU*FzUbExcz6nU8Y+s36QXwTITX);637f2Y|9m_DaJS8;%~Zc2@&gAO8HeFrl{@4gPVv~e*uzg> zp93ILSGy8dN6v%6E%qbicExQc?V=+YqISb6QkyZ~=bAo>5>j|v`= zx=NnC>50s-*_l_JpN4-Z9ZN%VJ@W%6p6S^RD6=Z2=hx+m3~<*f^Ink+HgEBRf52w| zZ=Z3rs)yW-IPU1b;Gu%6tVZguYQ2hLo=nxVK*(Yg@@bZzl2u5iZXRv!jGR!KsJj(hgMQ^;a{F-NGbv@uJu1S*GM15+!R2}61J$rBVILmG*Y;mcpS zvLk>TkSx~C){Ab4Gb|H$=M#*g{(7mKGT4`c(APv>9+^%)`C`S20>9NoOYTDL2P6y1 zJ=W9c@Kdw{q^Y(|O5sAbTlz(zvMY|zke8IqGig>*AxU=FyDpu4iplPx7&e1fM!y_D za+pB0AEtDu?RS0-E?quC!*(dEA!XhlU|=iI6|!pt=wEewVplJJeDZEjs+Jmy$I8ww z82mvt&4ALNSrh4+K(fWLYw(KpA=N#yCy$c^T}{^s1>Fnp5{s-%jOXbQ8rg<16l`&5 z@^k6Y5l|*Mq@xTTfNit<&s&QGs^(hCpkiP@m?ki$Nkejl|l?Qfx8u08FCL7>WaqK=l4u#@VIn?1^W&Dd1Gcvl4y zH}@TDA-&p_uyvxZfz9d`5@ygX_JMRkX!PPJl=FSX9eDy2TN-Z{VQ+7YS-v;ZlaLH_7%#Cg#n zD)*>;EbPTC*IUfic<`IUXHK`(8}dXHw^eiU%tpt=pKntQP-vDZw-0DqdQoln7o!5Y2n3b5S*qcBs0-av7d{un_$>byn!d4Dt zXNvxOI-P22FPQd6VINXfzN5E&TfBgiF?5T7S5ML}>$TE?*YSp&~?^)+Fa< ztkUUoux}fS?UMN=Pdsl$V`1H_a>>sk&u|Ka)Y|vh!JB?K4&Enbz;;uIGw=@>&8`Y{ zrEU@cL6ccq$YKUs3r-6FQ+Jc`z>g~SV_B>*j?vqmi*n`x2ez3#CIG{ zs-{BLaE99x-4nC9I9pG6uem7jFY`@+&mLadpshe#!6WleE$oNv$czkNDAg<}-R9`@ z-2F6Z?1UmKvr2RH=I`5x1eQ_piL;&8+c$fnp#9tlDW*A+h!hcu?R3PLL8c@^!=^lo zDNQfqbSx>cw|a&uuiR(J$UAb-CECYP#$LtSHm3F1#N%~L;1zMWW-O!^Ty@`4IrbJ1 zlmim8^T!}?2D9j3nctL@xTBocWaP<*v;sZbdLOqzld=h=!lp{%XJgQ7=pq_<$y>fZm$bqtno5zjq zv^xRcC#{rpC3#}fULV2@qR1o2Up!o9_d0Mv7v4jAx>i7!Tj_Vp%HfBiDDaq|l3$4dPsjKr3y z9Xqk#_%Ell=YM!PzN1$SXv4g|<%@Gj5;iY?9xsz66Iiv2fXOJP+k z;*vG%KR=MOuMrs)MMxhH+%VJh;oME_Y1mDScuCIA`ejSlS98%;?)2H8FQ8pRN|_0R z7r}dk8Xr|>urk51IWlfaONOsBhr zn?9CWT}P-8A?6FaK#s7`bwF+IFd)mZfC*b$y_35O@Sn)7kiguKgXgMQoRLbX^U)j` zs|w)bdIY#^<8oSIf&$5-htXn2r8(DP8R9#mzEz(H1wQY+2vv`J_JBgX*;w5X6@a=O zjKSACL|hP(j^Grk%zfz!=bR7!-rmANk`*pO93YBe;EMDgfJ_WLLBYaF!dny z99;tTpyh7(8kNvsT0*u6fV;&hB_XH4DHLA9ytQm}w#EwSzONp(l`Be*E%i5H)WX*F zW6DqLQRPPme?|U;P2eI3=Su!|b#0illL#;bg))=lf%|3H!7uGDb8@g_lb(&8{<3J) z%>1TaHqWvp>lqy=+iro_)&#lU#N3B0{^QSms{^4^hd24_r$z}~HkH!AU??pIho1Xw zqM2L^o^)C07S*u>y=@`(^0I)BM#2{wiBFH{$Yj@&0_ai}0HVK!<)jnmh`Y~E7g+W)< z*^H~exLl7wVXFama{z|#{Ne<$iR?Y8J^<8vhwr0*$3@~y;7Z*Obc7QIWlty!Vuihi z4ie`>$C!?`@e$Uqqn|bw5ROg{*UV#?IN;aeNqTllnIZ@ms z6ZcM3&-by+>s zp96A$b-B&sz~98-*)#zolJvuY-L-sC4It=v8ua zCR?Dojkz<270VfL+2t}TahkBl}FwrW4DE_tI%$m`(DCmp|*=xt6=Fm#bEV8 zY}xRS0lt)kH^|fP0OeyXKI$K#=xV1f&u*cxkXQz7Rob?)d zUw+5D+CM_A;`B++n_1XZ+y;Gc4V7?__C(s0%?j({y8}vc$dVay3_4KCi`Tg!_c9?T6c1&vg_7ae>FV(u#5 z_-U6+sf3U6!inwi(&H}c;1Aax2(ThBwmhX?NHw7M;2C0#b*?sFzC@lKadQP{o@I{M z`Xl`nXB_hfj`XbpuC3P>7irbbM=|r*Ae{42JEy9~I(SB0V|Wj_34p8LzaX=0fBn~h zh)x}MbieH5L`**aE<+`R_h1jx)guTW{1{kVAq(V#1fz?^{Gohk8@p_hI5QKDMS^S} z5`Fwm9R&%(`V{{%a{!)tj4ACFl;<@8zORxKXPL6!HgGS`qIqkO#eLwJn$Hf}C|z3J z6~mV<5WfDBi}HR6)^HIMAdh{?KYy12JB!#n>Locsm<;ovGq9RL*DUt}Pslw#2UZCT zwUEhS{V|i5gXgSOREwa2t0Fu2Hz%*sf!h+tdS;y1 z+DaTIL>A_k61o=%JoIwZp|PK%gEBghUB4ho>T@K)dM(Mx69|b2fmMt`p22A%0A{x%uj( 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 +We will also be integrating **Streamable HTTP** transport in the near future. +Streamable HTTP is designed for efficient, bi-directional communication over a single HTTP connection. + + +## Installation + +Before you start using MCP with `crewai-tools`, you need to install the `mcp` extra `crewai-tools` dependency with the following command: + +```shell +uv pip install 'crewai-tools[mcp]' +``` + +### Integrating MCP Tools with `MCPServerAdapter` + +The `MCPServerAdapter` class from `crewai-tools` is the primary way to connect to an MCP server and make its tools available to your CrewAI agents. +It supports different transport mechanisms, primarily **Stdio** (for local servers) and **SSE** (Server-Sent Events).You have two main options for managing the connection lifecycle: + +### Option 1: Fully Managed Connection (Recommended) + +Using a Python context manager (`with` statement) is the recommended approach. It automatically handles starting and stopping the connection to the MCP server. + +**For a local Stdio-based MCP server:** + +```python +from crewai import Agent, Task, Crew +from crewai_tools import MCPServerAdapter +from mcp import StdioServerParameters +import os + +server_params=StdioServerParameters( + command="uxv", # Or your python3 executable i.e. "python3" + args=["mock_server.py"], + env={"UV_PYTHON": "3.12", **os.environ}, +) + +with MCPServerAdapter(server_params) as tools: + print(f"Available tools from Stdio MCP server: {[tool.name for tool in tools]}") + + # Example: Using the tools from the Stdio MCP server in a CrewAI Agent + agent = Agent( + role="Web Information Retriever", + goal="Scrape content from a specified URL.", + backstory="An AI that can fetch and process web page data via an MCP tool.", + tools=tools, + verbose=True, + ) + task = Task( + description="Scrape content from a specified URL.", + expected_output="Scraped content from the specified URL.", + agent=agent, + ) + crew = Crew( + agents=[agent], + tasks=[task], + verbose=True, + ) + result = crew.kickoff() + print(result) +``` + +**For a remote SSE-based MCP server:** + +```python +from crewai_tools import MCPServerAdapter +from crewai import Agent, Task, Crew + +server_params = {"url": "http://localhost:8000/sse"} + +with MCPServerAdapter(server_params) as tools: + print(f"Available tools from SSE MCP server: {[tool.name for tool in tools]}") + + # Example: Using the tools from the SSE MCP server in a CrewAI Agent + agent = Agent( + role="Web Information Retriever", + goal="Scrape content from a specified URL.", + backstory="An AI that can fetch and process web page data via an MCP tool.", + tools=tools, + verbose=True, + ) + task = Task( + description="Scrape content from a specified URL.", + expected_output="Scraped content from the specified URL.", + agent=agent, + ) + crew = Crew( + agents=[agent], + tasks=[task], + verbose=True, + ) + result = crew.kickoff() + print(result) +``` + +### Option 2: More control over the MCP server connection lifecycle + +If you need finer-grained control over the MCP server connection lifecycle, you can instantiate `MCPServerAdapter` directly and manage its `start()` and `stop()` methods. + + +You **MUST** call `mcp_server_adapter.stop()` to ensure the connection is closed and resources are released. Using a `try...finally` block is highly recommended. + + +#### Stdio Transport Example (Manual) + +```python +from mcp import StdioServerParameters +from crewai_tools import MCPServerAdapter +from crewai import Agent, Task, Crew +import os + +stdio_params = StdioServerParameters( + command="uvx", # Or your python3 executable i.e. "python3" + args=["--quiet", "your-mcp-server@0.1.3"], + env={"UV_PYTHON": "3.12", **os.environ}, +) + +mcp_server_adapter = MCPServerAdapter(server_params=stdio_params) +try: + mcp_server_adapter.start() # Manually start the connection + tools = mcp_server_adapter.tools + print(f"Available tools (manual Stdio): {[tool.name for tool in tools]}") + + # Use 'tools' with your Agent, Task, Crew setup as in Option 1 + agent = Agent( + role="Medical Researcher", + goal="Find recent studies on a given topic using PubMed.", + backstory="An AI assistant specialized in biomedical literature research.", + tools=tools, + verbose=True + ) + + task = Task( + description="Search for recent articles on 'crispr gene editing'.", + expected_output="A summary of the top 3 recent articles.", + agent=agent + ) + + crew = Crew( + agents=[agent], + tasks=[task], + verbose=True, + process=Process.sequential + ) + + result = crew.kickoff() + print(result) +finally: + print("Stopping Stdio MCP server connection (manual)...") + mcp_server_adapter.stop() # **Crucial: Ensure stop is called** +``` + + +#### SSE Transport Example (Manual) + +```python +from crewai_tools import MCPServerAdapter +from crewai import Agent, Task, Crew, Process +from mcp import StdioServerParameters + + +server_params = {"url": "http://localhost:8000/sse"} + +try: + mcp_server_adapter = MCPServerAdapter(server_params) + mcp_server_adapter.start() + tools = mcp_server_adapter.tools + print(f"Available tools (manual SSE): {[tool.name for tool in tools]}") + + agent = Agent( + role="Medical Researcher", + goal="Find recent studies on a given topic using PubMed.", + backstory="An AI assistant specialized in biomedical literature research.", + tools=tools, + verbose=True + ) + + task = Task( + description="Search for recent articles on 'crispr gene editing'.", + expected_output="A summary of the top 3 recent articles.", + agent=agent + ) + + crew = Crew( + agents=[agent], + tasks=[task], + verbose=True, + process=Process.sequential + ) + + result = crew.kickoff() + print(result) +finally: + print("Stopping SSE MCP server connection (manual)...") + mcp_server_adapter.stop() # **Crucial: Ensure stop is called** +``` + +## Staying Safe with MCP + +Always ensure that you trust an MCP Server before using it. + + +#### Security Warning: DNS Rebinding Attacks +SSE transports can be vulnerable to DNS rebinding attacks if not properly secured. +To prevent this: + +1. **Always validate Origin headers** on incoming SSE connections to ensure they come from expected sources +2. **Avoid binding servers to all network interfaces** (0.0.0.0) when running locally - bind only to localhost (127.0.0.1) instead +3. **Implement proper authentication** for all SSE connections + +Without these protections, attackers could use DNS rebinding to interact with local MCP servers from remote websites. + +For more details, see the [MCP Transport Security](https://modelcontextprotocol.io/docs/concepts/transports#security-considerations) documentation. + +### Limitations +* **Supported Primitives**: Currently, `MCPServerAdapter` primarily supports adapting MCP `tools`. +Other MCP primitives like `prompts` or `resources` are not directly integrated as CrewAI components through this adapter at this time. +* **Output Handling**: The adapter typically processes the primary text output from an MCP tool (e.g., `.content[0].text`). Complex or multi-modal outputs might require custom handling if not fitting this pattern. From eb6364284fbdee118750012279ab0c2334d64d16 Mon Sep 17 00:00:00 2001 From: Vini Brasil Date: Wed, 21 May 2025 09:31:13 -0300 Subject: [PATCH 35/40] Fix encoding error when creating tools (#2876) This commit fixes a `UnicodeDecodeError` when creating tools. This was caused when reading template files. --- src/crewai/cli/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/crewai/cli/utils.py b/src/crewai/cli/utils.py index 74fc414d9..f88213a58 100644 --- a/src/crewai/cli/utils.py +++ b/src/crewai/cli/utils.py @@ -161,7 +161,7 @@ def tree_find_and_replace(directory, find, replace): for filename in files: filepath = os.path.join(path, filename) - with open(filepath, "r") as file: + with open(filepath, "r", encoding="utf-8", errors="ignore") as file: contents = file.read() with open(filepath, "w") as file: file.write(contents.replace(find, replace)) From 910ed716d9e65bf9cce51c3f646a5d319f69f62c Mon Sep 17 00:00:00 2001 From: Tony Kipkemboi Date: Wed, 21 May 2025 10:58:13 -0400 Subject: [PATCH 36/40] Reasoning docs update (#2871) * Add MCP integration documentation and update enterprise docs * Update MCP integration docs with code syntax improvements * Standardize documentation structure and add reasoning docs --- docs/concepts/agents.mdx | 2 +- docs/concepts/cli.mdx | 2 +- docs/concepts/collaboration.mdx | 2 +- docs/concepts/crews.mdx | 2 +- docs/concepts/event-listener.mdx | 4 ++-- docs/concepts/flows.mdx | 2 +- docs/concepts/knowledge.mdx | 2 +- docs/concepts/llms.mdx | 7 ++++--- docs/concepts/memory.mdx | 2 +- docs/concepts/planning.mdx | 4 ++-- docs/concepts/processes.mdx | 3 ++- docs/concepts/reasoning.mdx | 17 ++++++++++++----- docs/concepts/tasks.mdx | 4 ++-- docs/concepts/testing.mdx | 2 +- docs/concepts/tools.mdx | 4 +--- docs/concepts/training.mdx | 2 +- docs/docs.json | 1 + 17 files changed, 35 insertions(+), 27 deletions(-) diff --git a/docs/concepts/agents.mdx b/docs/concepts/agents.mdx index 4234e6428..fb992ba0a 100644 --- a/docs/concepts/agents.mdx +++ b/docs/concepts/agents.mdx @@ -21,7 +21,7 @@ Think of an agent as a specialized team member with specific skills, expertise, CrewAI Enterprise includes a Visual Agent Builder that simplifies agent creation and configuration without writing code. Design your agents visually and test them in real-time. -![Visual Agent Builder Screenshot](../images/enterprise/crew-studio-quickstart) +![Visual Agent Builder Screenshot](/images/enterprise/crew-studio-interface.png) The Visual Agent Builder enables: - Intuitive agent configuration with form-based interfaces diff --git a/docs/concepts/cli.mdx b/docs/concepts/cli.mdx index e8f3d3088..f66d04b44 100644 --- a/docs/concepts/cli.mdx +++ b/docs/concepts/cli.mdx @@ -4,7 +4,7 @@ description: Learn how to use the CrewAI CLI to interact with CrewAI. icon: terminal --- -# CrewAI CLI Documentation +## Overview The CrewAI CLI provides a set of commands to interact with CrewAI, allowing you to create, train, run, and manage crews & flows. diff --git a/docs/concepts/collaboration.mdx b/docs/concepts/collaboration.mdx index 63e59cb97..bfe87df04 100644 --- a/docs/concepts/collaboration.mdx +++ b/docs/concepts/collaboration.mdx @@ -4,7 +4,7 @@ description: Exploring the dynamics of agent collaboration within the CrewAI fra icon: screen-users --- -## Collaboration Fundamentals +## Overview Collaboration in CrewAI is fundamental, enabling agents to combine their skills, share information, and assist each other in task execution, embodying a truly cooperative ecosystem. diff --git a/docs/concepts/crews.mdx b/docs/concepts/crews.mdx index 8ebefff2f..4e4c2eeff 100644 --- a/docs/concepts/crews.mdx +++ b/docs/concepts/crews.mdx @@ -4,7 +4,7 @@ description: Understanding and utilizing crews in the crewAI framework with comp icon: people-group --- -## What is a Crew? +## Overview A crew in crewAI represents a collaborative group of agents working together to achieve a set of tasks. Each crew defines the strategy for task execution, agent collaboration, and the overall workflow. diff --git a/docs/concepts/event-listener.mdx b/docs/concepts/event-listener.mdx index 95726e23a..c97fbe06a 100644 --- a/docs/concepts/event-listener.mdx +++ b/docs/concepts/event-listener.mdx @@ -4,7 +4,7 @@ description: 'Tap into CrewAI events to build custom integrations and monitoring icon: spinner --- -# Event Listeners +## Overview CrewAI provides a powerful event system that allows you to listen for and react to various events that occur during the execution of your Crew. This feature enables you to build custom integrations, monitoring solutions, logging systems, or any other functionality that needs to be triggered based on CrewAI's internal events. @@ -21,7 +21,7 @@ When specific actions occur in CrewAI (like a Crew starting execution, an Agent CrewAI Enterprise provides a built-in Prompt Tracing feature that leverages the event system to track, store, and visualize all prompts, completions, and associated metadata. This provides powerful debugging capabilities and transparency into your agent operations. -![Prompt Tracing Dashboard](../images/enterprise/prompt-tracing.png) +![Prompt Tracing Dashboard](/images/enterprise/traces-overview.png) With Prompt Tracing you can: - View the complete history of all prompts sent to your LLM diff --git a/docs/concepts/flows.mdx b/docs/concepts/flows.mdx index 80a0abc13..9d868ca5e 100644 --- a/docs/concepts/flows.mdx +++ b/docs/concepts/flows.mdx @@ -4,7 +4,7 @@ description: Learn how to create and manage AI workflows using CrewAI Flows. icon: arrow-progress --- -## Introduction +## Overview CrewAI Flows is a powerful feature designed to streamline the creation and management of AI workflows. Flows allow developers to combine and coordinate coding tasks and Crews efficiently, providing a robust framework for building sophisticated AI automations. diff --git a/docs/concepts/knowledge.mdx b/docs/concepts/knowledge.mdx index a5ecd2542..01b8e82bc 100644 --- a/docs/concepts/knowledge.mdx +++ b/docs/concepts/knowledge.mdx @@ -4,7 +4,7 @@ description: What is knowledge in CrewAI and how to use it. icon: book --- -## What is Knowledge? +## Overview Knowledge in CrewAI is a powerful system that allows AI agents to access and utilize external information sources during their tasks. Think of it as giving your agents a reference library they can consult while working. diff --git a/docs/concepts/llms.mdx b/docs/concepts/llms.mdx index eb2bf38ee..7802c4964 100644 --- a/docs/concepts/llms.mdx +++ b/docs/concepts/llms.mdx @@ -4,9 +4,10 @@ description: 'A comprehensive guide to configuring and using Large Language Mode icon: 'microchip-ai' --- - - CrewAI integrates with multiple LLM providers through LiteLLM, giving you the flexibility to choose the right model for your specific use case. This guide will help you understand how to configure and use different LLM providers in your CrewAI projects. - +## Overview + +CrewAI integrates with multiple LLM providers through LiteLLM, giving you the flexibility to choose the right model for your specific use case. This guide will help you understand how to configure and use different LLM providers in your CrewAI projects. + ## What are LLMs? diff --git a/docs/concepts/memory.mdx b/docs/concepts/memory.mdx index 43f5918e4..df9e34ac9 100644 --- a/docs/concepts/memory.mdx +++ b/docs/concepts/memory.mdx @@ -4,7 +4,7 @@ description: Leveraging memory systems in the CrewAI framework to enhance agent icon: database --- -## Introduction to Memory Systems in CrewAI +## Overview The crewAI framework introduces a sophisticated memory system designed to significantly enhance the capabilities of AI agents. This system comprises `short-term memory`, `long-term memory`, `entity memory`, and `contextual memory`, each serving a unique purpose in aiding agents to remember, diff --git a/docs/concepts/planning.mdx b/docs/concepts/planning.mdx index c92d64ebe..6161a6dbb 100644 --- a/docs/concepts/planning.mdx +++ b/docs/concepts/planning.mdx @@ -1,10 +1,10 @@ --- title: Planning description: Learn how to add planning to your CrewAI Crew and improve their performance. -icon: brain +icon: ruler-combined --- -## Introduction +## Overview The planning feature in CrewAI allows you to add planning capability to your crew. When enabled, before each Crew iteration, all Crew information is sent to an AgentPlanner that will plan the tasks step by step, and this plan will be added to each task description. diff --git a/docs/concepts/processes.mdx b/docs/concepts/processes.mdx index ee3ed72b2..6daa67a0f 100644 --- a/docs/concepts/processes.mdx +++ b/docs/concepts/processes.mdx @@ -4,7 +4,8 @@ description: Detailed guide on workflow management through processes in CrewAI, icon: bars-staggered --- -## Understanding Processes +## Overview + Processes orchestrate the execution of tasks by agents, akin to project management in human teams. These processes ensure tasks are distributed and executed efficiently, in alignment with a predefined strategy. diff --git a/docs/concepts/reasoning.mdx b/docs/concepts/reasoning.mdx index 316af8732..0f7644d9a 100644 --- a/docs/concepts/reasoning.mdx +++ b/docs/concepts/reasoning.mdx @@ -1,12 +1,14 @@ --- -title: "Agent Reasoning" +title: Reasoning +description: "Learn how to enable and use agent reasoning to improve task execution." +icon: brain --- -# Agent Reasoning +## Overview Agent reasoning is a feature that allows agents to reflect on a task and create a plan before execution. This helps agents approach tasks more methodically and ensures they're ready to perform the assigned work. -## How to Use Agent Reasoning +## Usage To enable reasoning for an agent, simply set `reasoning=True` when creating the agent: @@ -35,8 +37,13 @@ This process helps the agent break down complex tasks into manageable steps and ## Configuration Options -- `reasoning` (bool): Enable or disable reasoning (default: False) -- `max_reasoning_attempts` (int, optional): Maximum number of attempts to refine the plan before proceeding with execution. If None (default), the agent will continue refining until it's ready. + + Enable or disable reasoning + + + + Maximum number of attempts to refine the plan before proceeding with execution. If None (default), the agent will continue refining until it's ready. + ## Example diff --git a/docs/concepts/tasks.mdx b/docs/concepts/tasks.mdx index b88d52a92..89e290b30 100644 --- a/docs/concepts/tasks.mdx +++ b/docs/concepts/tasks.mdx @@ -4,7 +4,7 @@ description: Detailed guide on managing and creating tasks within the CrewAI fra icon: list-check --- -## Overview of a Task +## Overview In the CrewAI framework, a `Task` is a specific assignment completed by an `Agent`. @@ -15,7 +15,7 @@ Tasks within CrewAI can be collaborative, requiring multiple agents to work toge CrewAI Enterprise includes a Visual Task Builder in Crew Studio that simplifies complex task creation and chaining. Design your task flows visually and test them in real-time without writing code. -![Task Builder Screenshot](../images/enterprise/crew-studio-quickstart.png) +![Task Builder Screenshot](/images/enterprise/crew-studio-interface.png) The Visual Task Builder enables: - Drag-and-drop task creation diff --git a/docs/concepts/testing.mdx b/docs/concepts/testing.mdx index ec6edda02..61d08e0e9 100644 --- a/docs/concepts/testing.mdx +++ b/docs/concepts/testing.mdx @@ -4,7 +4,7 @@ description: Learn how to test your CrewAI Crew and evaluate their performance. icon: vial --- -## Introduction +## Overview Testing is a crucial part of the development process, and it is essential to ensure that your crew is performing as expected. With crewAI, you can easily test your crew and evaluate its performance using the built-in testing capabilities. diff --git a/docs/concepts/tools.mdx b/docs/concepts/tools.mdx index d5f9d9cfc..1f04836ad 100644 --- a/docs/concepts/tools.mdx +++ b/docs/concepts/tools.mdx @@ -4,7 +4,7 @@ description: Understanding and leveraging tools within the CrewAI framework for icon: screwdriver-wrench --- -## Introduction +## Overview CrewAI tools empower agents with capabilities ranging from web searching and data analysis to collaboration and delegating tasks among coworkers. This documentation outlines how to create, integrate, and leverage these tools within the CrewAI framework, including a new focus on collaboration tools. @@ -18,8 +18,6 @@ enabling everything from simple searches to complex interactions and effective t CrewAI Enterprise provides a comprehensive Tools Repository with pre-built integrations for common business systems and APIs. Deploy agents with enterprise tools in minutes instead of days. -![Tools Repository Screenshot](../images/enterprise/tools-repository.png) - The Enterprise Tools Repository includes: - Pre-built connectors for popular enterprise systems - Custom tool creation interface diff --git a/docs/concepts/training.mdx b/docs/concepts/training.mdx index 549763fde..2784c87db 100644 --- a/docs/concepts/training.mdx +++ b/docs/concepts/training.mdx @@ -4,7 +4,7 @@ description: Learn how to train your CrewAI agents by giving them feedback early icon: dumbbell --- -## Introduction +## Overview The training feature in CrewAI allows you to train your AI agents using the command-line interface (CLI). By running the command `crewai train -n `, you can specify the number of iterations for the training process. diff --git a/docs/docs.json b/docs/docs.json index 6146cb7d4..c669739dd 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -74,6 +74,7 @@ "concepts/collaboration", "concepts/training", "concepts/memory", + "concepts/reasoning", "concepts/planning", "concepts/testing", "concepts/cli", From b3484c1d0e6dd88ac39a67732a9b83d6c5c3818a Mon Sep 17 00:00:00 2001 From: Tony Kipkemboi Date: Wed, 21 May 2025 11:23:53 -0400 Subject: [PATCH 37/40] Document knowledge events in event-listener.mdx and knowledge.mdx (#2872) --- docs/concepts/event-listener.mdx | 9 ++++ docs/concepts/knowledge.mdx | 55 +++++++++++++++++++--- src/crewai/utilities/events/event_types.py | 14 ++++++ 3 files changed, 72 insertions(+), 6 deletions(-) diff --git a/docs/concepts/event-listener.mdx b/docs/concepts/event-listener.mdx index c97fbe06a..9e7d638e2 100644 --- a/docs/concepts/event-listener.mdx +++ b/docs/concepts/event-listener.mdx @@ -224,6 +224,15 @@ CrewAI provides a wide range of events that you can listen for: - **ToolExecutionErrorEvent**: Emitted when a tool execution encounters an error - **ToolSelectionErrorEvent**: Emitted when there's an error selecting a tool +### Knowledge Events + +- **KnowledgeRetrievalStartedEvent**: Emitted when a knowledge retrieval is started +- **KnowledgeRetrievalCompletedEvent**: Emitted when a knowledge retrieval is completed +- **KnowledgeQueryStartedEvent**: Emitted when a knowledge query is started +- **KnowledgeQueryCompletedEvent**: Emitted when a knowledge query is completed +- **KnowledgeQueryFailedEvent**: Emitted when a knowledge query fails +- **KnowledgeSearchQueryFailedEvent**: Emitted when a knowledge search query fails + ### Flow Events - **FlowCreatedEvent**: Emitted when a Flow is created diff --git a/docs/concepts/knowledge.mdx b/docs/concepts/knowledge.mdx index 01b8e82bc..774847abc 100644 --- a/docs/concepts/knowledge.mdx +++ b/docs/concepts/knowledge.mdx @@ -36,12 +36,15 @@ CrewAI supports various types of knowledge sources out of the box: ## Supported Knowledge Parameters -| Parameter | Type | Required | Description | -| :--------------------------- | :---------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sources` | **List[BaseKnowledgeSource]** | Yes | List of knowledge sources that provide content to be stored and queried. Can include PDF, CSV, Excel, JSON, text files, or string content. | -| `collection_name` | **str** | No | Name of the collection where the knowledge will be stored. Used to identify different sets of knowledge. Defaults to "knowledge" if not provided. | -| `storage` | **Optional[KnowledgeStorage]** | No | Custom storage configuration for managing how the knowledge is stored and retrieved. If not provided, a default storage will be created. | - + + List of knowledge sources that provide content to be stored and queried. Can include PDF, CSV, Excel, JSON, text files, or string content. + + + Name of the collection where the knowledge will be stored. Used to identify different sets of knowledge. Defaults to \"knowledge\" if not provided. + + +Custom storage configuration for managing how the knowledge is stored and retrieved. If not provided, a default storage will be created. + Unlike retrieval from a vector database using a tool, agents preloaded with knowledge will not need a retrieval persona or task. @@ -432,6 +435,46 @@ Query rewriting happens transparently using a system prompt that instructs the L This mechanism is fully automatic and requires no configuration from users. The agent's LLM is used to perform the query rewriting, so using a more capable LLM can improve the quality of rewritten queries. +## Knowledge Events + +CrewAI emits events during the knowledge retrieval process that you can listen for using the event system. These events allow you to monitor, debug, and analyze how knowledge is being retrieved and used by your agents. + +### Available Knowledge Events + +- **KnowledgeRetrievalStartedEvent**: Emitted when an agent starts retrieving knowledge from sources +- **KnowledgeRetrievalCompletedEvent**: Emitted when knowledge retrieval is completed, including the query used and the retrieved content +- **KnowledgeQueryStartedEvent**: Emitted when a query to knowledge sources begins +- **KnowledgeQueryCompletedEvent**: Emitted when a query completes successfully +- **KnowledgeQueryFailedEvent**: Emitted when a query to knowledge sources fails +- **KnowledgeSearchQueryFailedEvent**: Emitted when a search query fails + +### Example: Monitoring Knowledge Retrieval + +```python +from crewai.utilities.events import ( + KnowledgeRetrievalStartedEvent, + KnowledgeRetrievalCompletedEvent, +) +from crewai.utilities.events.base_event_listener import BaseEventListener + +class KnowledgeMonitorListener(BaseEventListener): + def setup_listeners(self, crewai_event_bus): + @crewai_event_bus.on(KnowledgeRetrievalStartedEvent) + def on_knowledge_retrieval_started(source, event): + print(f"Agent '{event.agent.role}' started retrieving knowledge") + + @crewai_event_bus.on(KnowledgeRetrievalCompletedEvent) + def on_knowledge_retrieval_completed(source, event): + print(f"Agent '{event.agent.role}' completed knowledge retrieval") + print(f"Query: {event.query}") + print(f"Retrieved {len(event.retrieved_knowledge)} knowledge chunks") + +# Create an instance of your listener +knowledge_monitor = KnowledgeMonitorListener() +``` + +For more information on using events, see the [Event Listeners](https://docs.crewai.com/concepts/event-listener) documentation. + ### Example ```python diff --git a/src/crewai/utilities/events/event_types.py b/src/crewai/utilities/events/event_types.py index 5d4a41dcc..46f289caf 100644 --- a/src/crewai/utilities/events/event_types.py +++ b/src/crewai/utilities/events/event_types.py @@ -48,6 +48,14 @@ from .reasoning_events import ( AgentReasoningCompletedEvent, AgentReasoningFailedEvent, ) +from .knowledge_events import ( + KnowledgeRetrievalStartedEvent, + KnowledgeRetrievalCompletedEvent, + KnowledgeQueryStartedEvent, + KnowledgeQueryCompletedEvent, + KnowledgeQueryFailedEvent, + KnowledgeSearchQueryFailedEvent, +) EventTypes = Union[ CrewKickoffStartedEvent, @@ -82,4 +90,10 @@ EventTypes = Union[ AgentReasoningStartedEvent, AgentReasoningCompletedEvent, AgentReasoningFailedEvent, + KnowledgeRetrievalStartedEvent, + KnowledgeRetrievalCompletedEvent, + KnowledgeQueryStartedEvent, + KnowledgeQueryCompletedEvent, + KnowledgeQueryFailedEvent, + KnowledgeSearchQueryFailedEvent, ] From 169d3233e826ae971ee591f95573094812088ec5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moura?= Date: Wed, 21 May 2025 09:44:56 -0700 Subject: [PATCH 38/40] Updating Logging (#2874) --- docs/concepts/reasoning.mdx | 2 +- src/crewai/telemetry/telemetry.py | 2 +- .../events/utils/console_formatter.py | 223 ++++++++++++------ 3 files changed, 147 insertions(+), 80 deletions(-) diff --git a/docs/concepts/reasoning.mdx b/docs/concepts/reasoning.mdx index 0f7644d9a..c6890f71c 100644 --- a/docs/concepts/reasoning.mdx +++ b/docs/concepts/reasoning.mdx @@ -116,7 +116,7 @@ Here's an example of what a reasoning plan might look like for a data analysis t Task: Analyze the provided sales data and identify key trends. Reasoning Plan: -I'll analyze the sales data to identify the top 3 trends. +I'll analyze the sales data to identify the top 3 trends. 1. Understanding of the task: I need to analyze sales data to identify key trends that would be valuable for business decision-making. diff --git a/src/crewai/telemetry/telemetry.py b/src/crewai/telemetry/telemetry.py index e22d757cd..59d613a55 100644 --- a/src/crewai/telemetry/telemetry.py +++ b/src/crewai/telemetry/telemetry.py @@ -64,7 +64,7 @@ class Telemetry: attribute in the Crew class. """ - def __init__(self): + def __init__(self) -> None: self.ready: bool = False self.trace_set: bool = False diff --git a/src/crewai/utilities/events/utils/console_formatter.py b/src/crewai/utilities/events/utils/console_formatter.py index e3ae471d2..72a02b2f7 100644 --- a/src/crewai/utilities/events/utils/console_formatter.py +++ b/src/crewai/utilities/events/utils/console_formatter.py @@ -4,6 +4,7 @@ from rich.console import Console from rich.panel import Panel from rich.text import Text from rich.tree import Tree +from rich.live import Live class ConsoleFormatter: @@ -20,6 +21,12 @@ class ConsoleFormatter: def __init__(self, verbose: bool = False): self.console = Console(width=None) self.verbose = verbose + # Live instance to dynamically update a Tree renderable (e.g. the Crew tree) + # When multiple Tree objects are printed sequentially we reuse this Live + # instance so the previous render is replaced instead of writing a new one. + # Once any non-Tree renderable is printed we stop the Live session so the + # final Tree persists on the terminal. + self._live: Optional[Live] = None def create_panel(self, content: Text, title: str, style: str = "blue") -> Panel: """Create a standardized panel with consistent styling.""" @@ -60,7 +67,7 @@ class ConsoleFormatter: label.append(f"{prefix} ", style=f"{style} bold") label.append(name, style=style) if status: - label.append("\n Status: ", style="white") + label.append("\nStatus: ", style="white") label.append(status, style=f"{style} bold") tree.label = label @@ -69,7 +76,46 @@ class ConsoleFormatter: return parent.add(Text(text, style=style)) def print(self, *args, **kwargs) -> None: - """Print to console with consistent formatting if verbose is enabled.""" + """Custom print that replaces consecutive Tree renders. + + * If the argument is a single ``Tree`` instance, we either start a + ``Live`` session (first tree) or update the existing one (subsequent + trees). This results in the tree being rendered in-place instead of + being appended repeatedly to the log. + + * A blank call (no positional arguments) is ignored while a Live + session is active so it does not prematurely terminate the tree + rendering. + + * Any other renderable will terminate the Live session (if one is + active) so the last tree stays on screen and the new content is + printed normally. + """ + + # Case 1: updating / starting live Tree rendering + if len(args) == 1 and isinstance(args[0], Tree): + tree = args[0] + + if not self._live: + # Start a new Live session for the first tree + self._live = Live(tree, console=self.console, refresh_per_second=4) + self._live.start() + else: + # Update existing Live session + self._live.update(tree, refresh=True) + return # Nothing else to do + + # Case 2: blank line while a live session is running – ignore so we + # don't break the in-place rendering behaviour + if len(args) == 0 and self._live: + return + + # Case 3: printing something other than a Tree → terminate live session + if self._live: + self._live.stop() + self._live = None + + # Finally, pass through to the regular Console.print implementation self.console.print(*args, **kwargs) def print_panel( @@ -157,7 +203,7 @@ class ConsoleFormatter: task_content = Text() task_content.append(f"📋 Task: {task_id}", style="yellow bold") - task_content.append("\n Status: ", style="white") + task_content.append("\nStatus: ", style="white") task_content.append("Executing Task...", style="yellow dim") task_branch = None @@ -197,11 +243,17 @@ class ConsoleFormatter: # Update tree label for branch in crew_tree.children: if str(task_id) in str(branch.label): + # Build label without introducing stray blank lines task_content = Text() + # First line: Task ID task_content.append(f"📋 Task: {task_id}", style=f"{style} bold") - task_content.append("\n Assigned to: ", style="white") + + # Second line: Assigned to + task_content.append("\nAssigned to: ", style="white") task_content.append(agent_role, style=style) - task_content.append("\n Status: ", style="white") + + # Third line: Status + task_content.append("Status: ", style="white") task_content.append(status_text, style=f"{style} bold") branch.label = task_content self.print(crew_tree) @@ -220,18 +272,16 @@ class ConsoleFormatter: if not self.verbose or not task_branch or not crew_tree: return None - agent_branch = task_branch.add("") - self.update_tree_label( - agent_branch, "🤖 Agent:", agent_role, "green", "In Progress" - ) + # Instead of creating a separate Agent node, we treat the task branch + # itself as the logical agent branch so that Reasoning/Tool nodes are + # nested under the task without an extra visual level. - self.print(crew_tree) - self.print() + # Store the task branch as the current_agent_branch for future nesting. + self.current_agent_branch = task_branch - # Set the current_agent_branch attribute directly - self.current_agent_branch = agent_branch - - return agent_branch + # No additional tree modification needed; return the task branch so + # caller logic remains unchanged. + return task_branch def update_agent_status( self, @@ -241,19 +291,10 @@ class ConsoleFormatter: status: str = "completed", ) -> None: """Update agent status in the tree.""" - if not self.verbose or agent_branch is None or crew_tree is None: - return - - self.update_tree_label( - agent_branch, - "🤖 Agent:", - agent_role, - "green", - "✅ Completed" if status == "completed" else "❌ Failed", - ) - - self.print(crew_tree) - self.print() + # We no longer render a separate agent branch, so this method simply + # updates the stored branch reference (already the task branch) without + # altering the tree. Keeping it a no-op avoids duplicate status lines. + return def create_flow_tree(self, flow_name: str, flow_id: str) -> Optional[Tree]: """Create and initialize a flow tree.""" @@ -266,7 +307,7 @@ class ConsoleFormatter: flow_label = Text() flow_label.append("🌊 Flow: ", style="blue bold") flow_label.append(flow_name, style="blue") - flow_label.append("\n ID: ", style="white") + flow_label.append("\nID: ", style="white") flow_label.append(flow_id, style="blue") flow_tree = Tree(flow_label) @@ -281,7 +322,7 @@ class ConsoleFormatter: flow_label = Text() flow_label.append("🌊 Flow: ", style="blue bold") flow_label.append(flow_name, style="blue") - flow_label.append("\n ID: ", style="white") + flow_label.append("\nID: ", style="white") flow_label.append(flow_id, style="blue") flow_tree.label = flow_label @@ -395,9 +436,15 @@ class ConsoleFormatter: if not self.verbose: return None - # Use LiteAgent branch if available, otherwise use regular agent branch - branch_to_use = self.current_lite_agent_branch or agent_branch - tree_to_use = branch_to_use or crew_tree + # Parent for tool usage: LiteAgent > Agent > Task + branch_to_use = ( + self.current_lite_agent_branch + or agent_branch + or self.current_task_branch + ) + + # Render full crew tree when available for consistent live updates + tree_to_use = self.current_crew_tree or crew_tree or branch_to_use if branch_to_use is None or tree_to_use is None: # If we don't have a valid branch, default to crew_tree if provided @@ -423,10 +470,9 @@ class ConsoleFormatter: "yellow", ) - # Only print if this is a new tool usage - if tool_branch not in branch_to_use.children: - self.print(tree_to_use) - self.print() + # Print updated tree immediately + self.print(tree_to_use) + self.print() return tool_branch @@ -440,8 +486,8 @@ class ConsoleFormatter: if not self.verbose or tool_branch is None: return - # Use LiteAgent branch if available, otherwise use crew tree - tree_to_use = self.current_lite_agent_branch or crew_tree + # Decide which tree to render: prefer full crew tree, else parent branch + tree_to_use = self.current_crew_tree or crew_tree or self.current_task_branch if tree_to_use is None: return @@ -472,8 +518,8 @@ class ConsoleFormatter: if not self.verbose: return - # Use LiteAgent branch if available, otherwise use crew tree - tree_to_use = self.current_lite_agent_branch or crew_tree + # Decide which tree to render: prefer full crew tree, else parent branch + tree_to_use = self.current_crew_tree or crew_tree or self.current_task_branch if tool_branch: self.update_tree_label( @@ -501,9 +547,15 @@ class ConsoleFormatter: if not self.verbose: return None - # Use LiteAgent branch if available, otherwise use regular agent branch - branch_to_use = self.current_lite_agent_branch or agent_branch - tree_to_use = branch_to_use or crew_tree + # Parent for tool usage: LiteAgent > Agent > Task + branch_to_use = ( + self.current_lite_agent_branch + or agent_branch + or self.current_task_branch + ) + + # Render full crew tree when available for consistent live updates + tree_to_use = self.current_crew_tree or crew_tree or branch_to_use if branch_to_use is None or tree_to_use is None: # If we don't have a valid branch, default to crew_tree if provided @@ -532,24 +584,33 @@ class ConsoleFormatter: if not self.verbose or tool_branch is None: return - # Use LiteAgent branch if available, otherwise use regular agent branch - branch_to_use = self.current_lite_agent_branch or agent_branch - tree_to_use = branch_to_use or crew_tree - - if branch_to_use is None or tree_to_use is None: + # Decide which tree to render: prefer full crew tree, else parent branch + tree_to_use = self.current_crew_tree or crew_tree or self.current_task_branch + if tree_to_use is None: return - # Remove the thinking status node when complete, but only if it exists + # Remove the thinking status node when complete if "Thinking" in str(tool_branch.label): - try: - # Check if the node is actually in the children list - if tool_branch in branch_to_use.children: - branch_to_use.children.remove(tool_branch) - self.print(tree_to_use) - self.print() - except Exception: - # If any error occurs during removal, just continue without removing - pass + parents = [ + self.current_lite_agent_branch, + self.current_agent_branch, + self.current_task_branch, + tree_to_use, + ] + removed = False + for parent in parents: + if isinstance(parent, Tree) and tool_branch in parent.children: + parent.children.remove(tool_branch) + removed = True + break + + # Clear pointer if we just removed the current_tool_branch + if self.current_tool_branch is tool_branch: + self.current_tool_branch = None + + if removed: + self.print(tree_to_use) + self.print() def handle_llm_call_failed( self, tool_branch: Optional[Tree], error: str, crew_tree: Optional[Tree] @@ -558,8 +619,8 @@ class ConsoleFormatter: if not self.verbose: return - # Use LiteAgent branch if available, otherwise use crew tree - tree_to_use = self.current_lite_agent_branch or crew_tree + # Decide which tree to render: prefer full crew tree, else parent branch + tree_to_use = self.current_crew_tree or crew_tree or self.current_task_branch # Update tool branch if it exists if tool_branch: @@ -601,7 +662,7 @@ class ConsoleFormatter: test_label = Text() test_label.append("🧪 Test: ", style="blue bold") test_label.append(crew_name or "Crew", style="blue") - test_label.append("\n Status: ", style="white") + test_label.append("\nStatus: ", style="white") test_label.append("In Progress", style="yellow") test_tree = Tree(test_label) @@ -623,7 +684,7 @@ class ConsoleFormatter: test_label = Text() test_label.append("✅ Test: ", style="green bold") test_label.append(crew_name or "Crew", style="green") - test_label.append("\n Status: ", style="white") + test_label.append("\nStatus: ", style="white") test_label.append("Completed", style="green bold") flow_tree.label = test_label @@ -712,7 +773,7 @@ class ConsoleFormatter: lite_agent_label = Text() lite_agent_label.append("🤖 LiteAgent: ", style="cyan bold") lite_agent_label.append(lite_agent_role, style="cyan") - lite_agent_label.append("\n Status: ", style="white") + lite_agent_label.append("\nStatus: ", style="white") lite_agent_label.append("In Progress", style="yellow") lite_agent_tree = Tree(lite_agent_label) @@ -751,7 +812,7 @@ class ConsoleFormatter: lite_agent_label = Text() lite_agent_label.append(f"{prefix} ", style=f"{style} bold") lite_agent_label.append(lite_agent_role, style=style) - lite_agent_label.append("\n Status: ", style="white") + lite_agent_label.append("Status: ", style="white") lite_agent_label.append(status_text, style=f"{style} bold") lite_agent_branch.label = lite_agent_label @@ -1004,16 +1065,20 @@ class ConsoleFormatter: if not self.verbose: return None - # Prefer LiteAgent branch if we are within a LiteAgent context - branch_to_use = self.current_lite_agent_branch or agent_branch - tree_to_use = branch_to_use or crew_tree + # Prefer LiteAgent > Agent > Task branch as the parent for reasoning + branch_to_use = ( + self.current_lite_agent_branch + or agent_branch + or self.current_task_branch + ) - if branch_to_use is None or tree_to_use is None: - # If we don't have a valid branch, default to crew_tree if provided - if crew_tree is not None: - branch_to_use = tree_to_use = crew_tree - else: - return None + # We always want to render the full crew tree when possible so the + # Live view updates coherently. Fallbacks: crew tree → branch itself. + tree_to_use = self.current_crew_tree or crew_tree or branch_to_use + + if branch_to_use is None: + # Nothing to attach to, abort + return None # Reuse existing reasoning branch if present reasoning_branch = self.current_reasoning_branch @@ -1044,8 +1109,9 @@ class ConsoleFormatter: reasoning_branch = self.current_reasoning_branch tree_to_use = ( - self.current_lite_agent_branch - or self.current_agent_branch + self.current_crew_tree + or self.current_lite_agent_branch + or self.current_task_branch or crew_tree ) @@ -1084,8 +1150,9 @@ class ConsoleFormatter: reasoning_branch = self.current_reasoning_branch tree_to_use = ( - self.current_lite_agent_branch - or self.current_agent_branch + self.current_crew_tree + or self.current_lite_agent_branch + or self.current_task_branch or crew_tree ) From 31ffa90075ee953a57db5e62ed83c26d6b65fbf9 Mon Sep 17 00:00:00 2001 From: Lorenze Jay <63378463+lorenzejay@users.noreply.github.com> Date: Wed, 21 May 2025 10:32:03 -0700 Subject: [PATCH 39/40] telemetry initialization and enhance event handling (#2853) * Refactor Crew class memory initialization and enhance event handling - Simplified the initialization of the external memory attribute in the Crew class. - Updated memory system retrieval logic for consistency in key usage. - Introduced a singleton pattern for the Telemetry class to ensure a single instance. - Replaced telemetry usage in CrewEvaluator with event bus emissions for test results. - Added new CrewTestResultEvent to handle crew test results more effectively. - Updated event listener to process CrewTestResultEvent and log telemetry data accordingly. - Enhanced tests to validate the singleton pattern in Telemetry and the new event handling logic. * linted * Remove unused telemetry attribute from Crew class memory initialization * fix ordering of test * Implement thread-safe singleton pattern in Telemetry class - Introduced a threading lock to ensure safe instantiation of the Telemetry singleton. - Updated the __new__ method to utilize double-checked locking for instance creation. --- src/crewai/crew.py | 98 ++++---- src/crewai/telemetry/telemetry.py | 11 + .../evaluators/crew_evaluator_handler.py | 16 +- src/crewai/utilities/events/crew_events.py | 9 + src/crewai/utilities/events/event_listener.py | 10 + tests/telemetry/test_telemetry.py | 34 ++- ...st_crew_emits_test_kickoff_type_event.yaml | 216 ++++++++++++++---- tests/utilities/test_events.py | 16 +- 8 files changed, 302 insertions(+), 108 deletions(-) diff --git a/src/crewai/crew.py b/src/crewai/crew.py index 0164552c5..0505e3b0b 100644 --- a/src/crewai/crew.py +++ b/src/crewai/crew.py @@ -315,9 +315,7 @@ class Crew(FlowTrackable, BaseModel): """Initialize private memory attributes.""" self._external_memory = ( # External memory doesn’t support a default value since it was designed to be managed entirely externally - self.external_memory.set_crew(self) - if self.external_memory - else None + self.external_memory.set_crew(self) if self.external_memory else None ) self._long_term_memory = self.long_term_memory @@ -1204,7 +1202,6 @@ class Crew(FlowTrackable, BaseModel): "_long_term_memory", "_entity_memory", "_external_memory", - "_telemetry", "agents", "tasks", "knowledge_sources", @@ -1397,10 +1394,10 @@ class Crew(FlowTrackable, BaseModel): memory_systems = self._get_memory_systems() for memory_type, config in memory_systems.items(): - if (system := config.get('system')) is not None: - name = config.get('name') + if (system := config.get("system")) is not None: + name = config.get("name") try: - reset_fn: Callable = cast(Callable, config.get('reset')) + reset_fn: Callable = cast(Callable, config.get("reset")) reset_fn(system) self._logger.log( "info", @@ -1422,14 +1419,14 @@ class Crew(FlowTrackable, BaseModel): """ memory_systems = self._get_memory_systems() config = memory_systems[memory_type] - system = config.get('system') - name = config.get('name') + system = config.get("system") + name = config.get("name") if system is None: raise RuntimeError(f"{name} memory system is not initialized") - + try: - reset_fn: Callable = cast(Callable, config.get('reset')) + reset_fn: Callable = cast(Callable, config.get("reset")) reset_fn(system) self._logger.log( "info", @@ -1442,58 +1439,67 @@ class Crew(FlowTrackable, BaseModel): def _get_memory_systems(self): """Get all available memory systems with their configuration. - + Returns: Dict containing all memory systems with their reset functions and display names. """ + def default_reset(memory): return memory.reset() + def knowledge_reset(memory): return self.reset_knowledge(memory) - - # Get knowledge for agents - agent_knowledges = [getattr(agent, "knowledge", None) for agent in self.agents - if getattr(agent, "knowledge", None) is not None] + + # Get knowledge for agents + agent_knowledges = [ + getattr(agent, "knowledge", None) + for agent in self.agents + if getattr(agent, "knowledge", None) is not None + ] # Get knowledge for crew and agents crew_knowledge = getattr(self, "knowledge", None) - crew_and_agent_knowledges = ([crew_knowledge] if crew_knowledge is not None else []) + agent_knowledges + crew_and_agent_knowledges = ( + [crew_knowledge] if crew_knowledge is not None else [] + ) + agent_knowledges return { - 'short': { - 'system': getattr(self, "_short_term_memory", None), - 'reset': default_reset, - 'name': 'Short Term' + "short": { + "system": getattr(self, "_short_term_memory", None), + "reset": default_reset, + "name": "Short Term", }, - 'entity': { - 'system': getattr(self, "_entity_memory", None), - 'reset': default_reset, - 'name': 'Entity' + "entity": { + "system": getattr(self, "_entity_memory", None), + "reset": default_reset, + "name": "Entity", }, - 'external': { - 'system': getattr(self, "_external_memory", None), - 'reset': default_reset, - 'name': 'External' + "external": { + "system": getattr(self, "_external_memory", None), + "reset": default_reset, + "name": "External", }, - 'long': { - 'system': getattr(self, "_long_term_memory", None), - 'reset': default_reset, - 'name': 'Long Term' + "long": { + "system": getattr(self, "_long_term_memory", None), + "reset": default_reset, + "name": "Long Term", }, - 'kickoff_outputs': { - 'system': getattr(self, "_task_output_handler", None), - 'reset': default_reset, - 'name': 'Task Output' + "kickoff_outputs": { + "system": getattr(self, "_task_output_handler", None), + "reset": default_reset, + "name": "Task Output", }, - 'knowledge': { - 'system': crew_and_agent_knowledges if crew_and_agent_knowledges else None, - 'reset': knowledge_reset, - 'name': 'Crew Knowledge and Agent Knowledge' + "knowledge": { + "system": crew_and_agent_knowledges + if crew_and_agent_knowledges + else None, + "reset": knowledge_reset, + "name": "Crew Knowledge and Agent Knowledge", + }, + "agent_knowledge": { + "system": agent_knowledges if agent_knowledges else None, + "reset": knowledge_reset, + "name": "Agent Knowledge", }, - 'agent_knowledge': { - 'system': agent_knowledges if agent_knowledges else None, - 'reset': knowledge_reset, - 'name': 'Agent Knowledge' - } } def reset_knowledge(self, knowledges: List[Knowledge]) -> None: diff --git a/src/crewai/telemetry/telemetry.py b/src/crewai/telemetry/telemetry.py index 59d613a55..ffd78d28e 100644 --- a/src/crewai/telemetry/telemetry.py +++ b/src/crewai/telemetry/telemetry.py @@ -9,6 +9,7 @@ import warnings from contextlib import contextmanager from importlib.metadata import version from typing import TYPE_CHECKING, Any, Optional +import threading from opentelemetry import trace from opentelemetry.exporter.otlp.proto.http.trace_exporter import ( @@ -64,6 +65,16 @@ class Telemetry: attribute in the Crew class. """ + _instance = None + _lock = threading.Lock() + + def __new__(cls): + if cls._instance is None: + with cls._lock: + if cls._instance is None: + cls._instance = super(Telemetry, cls).__new__(cls) + return cls._instance + def __init__(self) -> None: self.ready: bool = False self.trace_set: bool = False diff --git a/src/crewai/utilities/evaluators/crew_evaluator_handler.py b/src/crewai/utilities/evaluators/crew_evaluator_handler.py index 984dcf97f..70d762956 100644 --- a/src/crewai/utilities/evaluators/crew_evaluator_handler.py +++ b/src/crewai/utilities/evaluators/crew_evaluator_handler.py @@ -9,7 +9,8 @@ from crewai.agent import Agent from crewai.llm import BaseLLM from crewai.task import Task from crewai.tasks.task_output import TaskOutput -from crewai.telemetry import Telemetry +from crewai.utilities.events import crewai_event_bus +from crewai.utilities.events.crew_events import CrewTestResultEvent class TaskEvaluationPydanticOutput(BaseModel): @@ -36,7 +37,6 @@ class CrewEvaluator: def __init__(self, crew, eval_llm: InstanceOf[BaseLLM]): self.crew = crew self.llm = eval_llm - self._telemetry = Telemetry() self._setup_for_evaluating() def _setup_for_evaluating(self) -> None: @@ -178,11 +178,15 @@ class CrewEvaluator: evaluation_result = evaluation_task.execute_sync() if isinstance(evaluation_result.pydantic, TaskEvaluationPydanticOutput): - self._test_result_span = self._telemetry.individual_test_result_span( + crewai_event_bus.emit( self.crew, - evaluation_result.pydantic.quality, - current_task.execution_duration, - self.llm.model, + CrewTestResultEvent( + quality=evaluation_result.pydantic.quality, + execution_duration=current_task.execution_duration, + model=self.llm.model, + crew_name=self.crew.name, + crew=self.crew, + ), ) self.tasks_scores[self.iteration].append(evaluation_result.pydantic.quality) self.run_execution_times[self.iteration].append( diff --git a/src/crewai/utilities/events/crew_events.py b/src/crewai/utilities/events/crew_events.py index d73cd95d3..103f3ecd3 100644 --- a/src/crewai/utilities/events/crew_events.py +++ b/src/crewai/utilities/events/crew_events.py @@ -100,3 +100,12 @@ class CrewTestFailedEvent(CrewBaseEvent): error: str type: str = "crew_test_failed" + + +class CrewTestResultEvent(CrewBaseEvent): + """Event emitted when a crew test result is available""" + + quality: float + execution_duration: float + model: str + type: str = "crew_test_result" diff --git a/src/crewai/utilities/events/event_listener.py b/src/crewai/utilities/events/event_listener.py index caf83bfdc..e147e9606 100644 --- a/src/crewai/utilities/events/event_listener.py +++ b/src/crewai/utilities/events/event_listener.py @@ -37,6 +37,7 @@ from .crew_events import ( CrewKickoffStartedEvent, CrewTestCompletedEvent, CrewTestFailedEvent, + CrewTestResultEvent, CrewTestStartedEvent, CrewTrainCompletedEvent, CrewTrainFailedEvent, @@ -134,6 +135,15 @@ class EventListener(BaseEventListener): def on_crew_train_failed(source, event: CrewTrainFailedEvent): self.formatter.handle_crew_train_failed(event.crew_name or "Crew") + @crewai_event_bus.on(CrewTestResultEvent) + def on_crew_test_result(source, event: CrewTestResultEvent): + self._telemetry.individual_test_result_span( + source.crew, + event.quality, + int(event.execution_duration), + event.model, + ) + # ----------- TASK EVENTS ----------- @crewai_event_bus.on(TaskStartedEvent) diff --git a/tests/telemetry/test_telemetry.py b/tests/telemetry/test_telemetry.py index 092a795b4..51c5a79f1 100644 --- a/tests/telemetry/test_telemetry.py +++ b/tests/telemetry/test_telemetry.py @@ -6,6 +6,8 @@ import pytest from crewai import Agent, Crew, Task from crewai.telemetry import Telemetry +from opentelemetry import trace + @pytest.mark.parametrize( "env_var,value,expected_ready", @@ -34,9 +36,6 @@ def test_telemetry_enabled_by_default(): assert telemetry.ready is True -from opentelemetry import trace - - @patch("crewai.telemetry.telemetry.logger.error") @patch( "opentelemetry.exporter.otlp.proto.http.trace_exporter.OTLPSpanExporter.export", @@ -67,3 +66,32 @@ def test_telemetry_fails_due_connect_timeout(export_mock, logger_mock): export_mock.assert_called_once() logger_mock.assert_called_once_with(error) + + +def test_telemetry_singleton_pattern(): + """Test that Telemetry uses the singleton pattern correctly.""" + Telemetry._instance = None + + telemetry1 = Telemetry() + telemetry2 = Telemetry() + + assert telemetry1 is telemetry2 + + setattr(telemetry1, "test_attribute", "test_value") + assert hasattr(telemetry2, "test_attribute") + assert getattr(telemetry2, "test_attribute") == "test_value" + + import threading + + instances = [] + + def create_instance(): + instances.append(Telemetry()) + + threads = [threading.Thread(target=create_instance) for _ in range(5)] + for thread in threads: + thread.start() + for thread in threads: + thread.join() + + assert all(instance is telemetry1 for instance in instances) diff --git a/tests/utilities/cassettes/test_crew_emits_test_kickoff_type_event.yaml b/tests/utilities/cassettes/test_crew_emits_test_kickoff_type_event.yaml index 5905cf66c..aa6c77ad1 100644 --- a/tests/utilities/cassettes/test_crew_emits_test_kickoff_type_event.yaml +++ b/tests/utilities/cassettes/test_crew_emits_test_kickoff_type_event.yaml @@ -1,4 +1,114 @@ interactions: +- request: + body: null + headers: {} + method: GET + uri: https://pypi.org/pypi/agentops/json + response: + body: + string: '{"info":{"author":null,"author_email":"Alex Reibman , + Shawn Qiu , Braelyn Boynton , Howard + Gil , Constantin Teodorescu , Pratyush + Shukla , Travis Dent , Dwij Patel ","bugtrack_url":null,"classifiers":["License + :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming + Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming + Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming + Language :: Python :: 3.13","Programming Language :: Python :: 3.9"],"description":"","description_content_type":null,"docs_url":null,"download_url":null,"downloads":{"last_day":-1,"last_month":-1,"last_week":-1},"dynamic":null,"home_page":null,"keywords":null,"license":null,"license_expression":null,"license_files":["LICENSE"],"maintainer":null,"maintainer_email":null,"name":"agentops","package_url":"https://pypi.org/project/agentops/","platform":null,"project_url":"https://pypi.org/project/agentops/","project_urls":{"Homepage":"https://github.com/AgentOps-AI/agentops","Issues":"https://github.com/AgentOps-AI/agentops/issues"},"provides_extra":null,"release_url":"https://pypi.org/project/agentops/0.4.12/","requires_dist":["httpx<0.29.0,>=0.24.0","opentelemetry-api==1.29.0; + python_version < \"3.10\"","opentelemetry-api>1.29.0; python_version >= \"3.10\"","opentelemetry-exporter-otlp-proto-http==1.29.0; + python_version < \"3.10\"","opentelemetry-exporter-otlp-proto-http>1.29.0; + python_version >= \"3.10\"","opentelemetry-instrumentation==0.50b0; python_version + < \"3.10\"","opentelemetry-instrumentation>=0.50b0; python_version >= \"3.10\"","opentelemetry-sdk==1.29.0; + python_version < \"3.10\"","opentelemetry-sdk>1.29.0; python_version >= \"3.10\"","opentelemetry-semantic-conventions==0.50b0; + python_version < \"3.10\"","opentelemetry-semantic-conventions>=0.50b0; python_version + >= \"3.10\"","ordered-set<5.0.0,>=4.0.0","packaging<25.0,>=21.0","psutil<6.1.0,>=5.9.8","pyyaml<7.0,>=5.3","requests<3.0.0,>=2.0.0","termcolor<2.5.0,>=2.3.0","wrapt<2.0.0,>=1.0.0"],"requires_python":"<3.14,>=3.9","summary":"Observability + and DevTool Platform for AI Agents","version":"0.4.12","yanked":false,"yanked_reason":null},"last_serial":29075100,"releases":{"0.0.1":[{"comment_text":"","digests":{"blake2b_256":"9b4641d084346e88671acc02e3a0049d3e0925fe99edd88c8b82700dc3c04d01","md5":"2b491f3b3dd01edd4ee37c361087bb46","sha256":"f2cb9d59a0413e7977a44a23dbd6a9d89cda5309b63ed08f5c346c7488acf645"},"downloads":-1,"filename":"agentops-0.0.1-py3-none-any.whl","has_sig":false,"md5_digest":"2b491f3b3dd01edd4ee37c361087bb46","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":10328,"upload_time":"2023-08-21T18:33:47","upload_time_iso_8601":"2023-08-21T18:33:47.827866Z","url":"https://files.pythonhosted.org/packages/9b/46/41d084346e88671acc02e3a0049d3e0925fe99edd88c8b82700dc3c04d01/agentops-0.0.1-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"b280bf609d98778499bd42df723100a8e910d9b9827cbd00b804cf0b13bb3c87","md5":"ff218fc16d45cf72f73d50ee9a0afe82","sha256":"5c3d4311b9dde0c71cb475ec99d2963a71604c78d468b333f55e81364f4fe79e"},"downloads":-1,"filename":"agentops-0.0.1.tar.gz","has_sig":false,"md5_digest":"ff218fc16d45cf72f73d50ee9a0afe82","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":11452,"upload_time":"2023-08-21T18:33:49","upload_time_iso_8601":"2023-08-21T18:33:49.613830Z","url":"https://files.pythonhosted.org/packages/b2/80/bf609d98778499bd42df723100a8e910d9b9827cbd00b804cf0b13bb3c87/agentops-0.0.1.tar.gz","yanked":false,"yanked_reason":null}],"0.0.10":[{"comment_text":"","digests":{"blake2b_256":"92933862af53105332cb524db237138d3284b5d6abcc7df5fd4406e382372d94","md5":"8bdea319b5579775eb88efac72e70cd6","sha256":"e8a333567458c1df35538d626bc596f3ba7b8fa2aac5015bc378f3f7f8850669"},"downloads":-1,"filename":"agentops-0.0.10-py3-none-any.whl","has_sig":false,"md5_digest":"8bdea319b5579775eb88efac72e70cd6","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":14752,"upload_time":"2023-12-16T01:40:40","upload_time_iso_8601":"2023-12-16T01:40:40.867657Z","url":"https://files.pythonhosted.org/packages/92/93/3862af53105332cb524db237138d3284b5d6abcc7df5fd4406e382372d94/agentops-0.0.10-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"c63136b1f2e508b67f92ddb5f51f2acf5abdf2bf4b32d5b355d8018b368dc854","md5":"87bdcd4d7469d22ce922234d4f0b2b98","sha256":"5fbc567bece7b218fc35ce70d208e88e89bb399a9dbf84ab7ad59a2aa559648c"},"downloads":-1,"filename":"agentops-0.0.10.tar.gz","has_sig":false,"md5_digest":"87bdcd4d7469d22ce922234d4f0b2b98","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":15099,"upload_time":"2023-12-16T01:40:42","upload_time_iso_8601":"2023-12-16T01:40:42.281826Z","url":"https://files.pythonhosted.org/packages/c6/31/36b1f2e508b67f92ddb5f51f2acf5abdf2bf4b32d5b355d8018b368dc854/agentops-0.0.10.tar.gz","yanked":false,"yanked_reason":null}],"0.0.11":[{"comment_text":"","digests":{"blake2b_256":"7125ed114f918332cda824092f620b1002fd76ab6b538dd83711b31c93907139","md5":"83ba7e621f01412144aa38306fc1e04c","sha256":"cb80823e065d17dc26bdc8fe951ea7e04b23677ef2b4da939669c6fe1b2502bf"},"downloads":-1,"filename":"agentops-0.0.11-py3-none-any.whl","has_sig":false,"md5_digest":"83ba7e621f01412144aa38306fc1e04c","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":16627,"upload_time":"2023-12-21T19:50:28","upload_time_iso_8601":"2023-12-21T19:50:28.595886Z","url":"https://files.pythonhosted.org/packages/71/25/ed114f918332cda824092f620b1002fd76ab6b538dd83711b31c93907139/agentops-0.0.11-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"9e037750b04398cda2548bbf3d84ce554c4009592095c060c4904e773f3a43da","md5":"5bbb120cc9a5f5ff6fb5dd45691ba279","sha256":"cbf0f39768d47e32be448a3ff3ded665fce64ff8a90c0e10692fd7a3ab4790ee"},"downloads":-1,"filename":"agentops-0.0.11.tar.gz","has_sig":false,"md5_digest":"5bbb120cc9a5f5ff6fb5dd45691ba279","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":16794,"upload_time":"2023-12-21T19:50:29","upload_time_iso_8601":"2023-12-21T19:50:29.881561Z","url":"https://files.pythonhosted.org/packages/9e/03/7750b04398cda2548bbf3d84ce554c4009592095c060c4904e773f3a43da/agentops-0.0.11.tar.gz","yanked":false,"yanked_reason":null}],"0.0.12":[{"comment_text":"","digests":{"blake2b_256":"adf5cc3e93b2328532ea80b8b36450b8b48a8199ebbe1f75ebb490e57a926b88","md5":"694ba49ca8841532039bdf8dc0250b85","sha256":"9a2c773efbe3353f60d1b86da12333951dad288ba54839615a53b57e5965bea8"},"downloads":-1,"filename":"agentops-0.0.12-py3-none-any.whl","has_sig":false,"md5_digest":"694ba49ca8841532039bdf8dc0250b85","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":18602,"upload_time":"2024-01-03T03:47:07","upload_time_iso_8601":"2024-01-03T03:47:07.184203Z","url":"https://files.pythonhosted.org/packages/ad/f5/cc3e93b2328532ea80b8b36450b8b48a8199ebbe1f75ebb490e57a926b88/agentops-0.0.12-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"7eb0633ecd30c74a0613c7330ececf0303286622ce429f08ce0daa9ee8cc4ecf","md5":"025daef9622472882a1fa58b6c1fddb5","sha256":"fbb4c38711a7dff3ab08004591451b5a5c33bea5e496fa71fac668c7284513d2"},"downloads":-1,"filename":"agentops-0.0.12.tar.gz","has_sig":false,"md5_digest":"025daef9622472882a1fa58b6c1fddb5","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":19826,"upload_time":"2024-01-03T03:47:08","upload_time_iso_8601":"2024-01-03T03:47:08.942790Z","url":"https://files.pythonhosted.org/packages/7e/b0/633ecd30c74a0613c7330ececf0303286622ce429f08ce0daa9ee8cc4ecf/agentops-0.0.12.tar.gz","yanked":false,"yanked_reason":null}],"0.0.13":[{"comment_text":"","digests":{"blake2b_256":"3a0f9c1500adb4191531374db4d7920c51aba92c5472d13d172108e881c36948","md5":"f0a3b78c15af3ab467778f94fb50bf4a","sha256":"3379a231f37a375bda421114a5626643263e84ce951503d0bdff8411149946e0"},"downloads":-1,"filename":"agentops-0.0.13-py3-none-any.whl","has_sig":false,"md5_digest":"f0a3b78c15af3ab467778f94fb50bf4a","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":18709,"upload_time":"2024-01-07T08:57:57","upload_time_iso_8601":"2024-01-07T08:57:57.456769Z","url":"https://files.pythonhosted.org/packages/3a/0f/9c1500adb4191531374db4d7920c51aba92c5472d13d172108e881c36948/agentops-0.0.13-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"cbf9a3824bd30d7107aaca8d409165c0a3574a879efd7ca0fea755e903623b61","md5":"0ebceb6aad82c0622adcd4c2633fc677","sha256":"5e6adf68c2a533496648ea3fabb6e791f39ce810d18dbc1354d118b195fd8556"},"downloads":-1,"filename":"agentops-0.0.13.tar.gz","has_sig":false,"md5_digest":"0ebceb6aad82c0622adcd4c2633fc677","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":19933,"upload_time":"2024-01-07T08:57:59","upload_time_iso_8601":"2024-01-07T08:57:59.146933Z","url":"https://files.pythonhosted.org/packages/cb/f9/a3824bd30d7107aaca8d409165c0a3574a879efd7ca0fea755e903623b61/agentops-0.0.13.tar.gz","yanked":false,"yanked_reason":null}],"0.0.14":[{"comment_text":"","digests":{"blake2b_256":"252b1d8ee3b4ab02215eb1a52865a9f2c209d6d4cbf4a3444fb7faf23b02ca66","md5":"a8ba77b0ec0d25072b2e0535a135cc40","sha256":"d5bb4661642daf8fc63a257ef0f04ccc5c79a73e73d57ea04190e74d9a3e6df9"},"downloads":-1,"filename":"agentops-0.0.14-py3-none-any.whl","has_sig":false,"md5_digest":"a8ba77b0ec0d25072b2e0535a135cc40","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":18710,"upload_time":"2024-01-08T21:52:28","upload_time_iso_8601":"2024-01-08T21:52:28.340899Z","url":"https://files.pythonhosted.org/packages/25/2b/1d8ee3b4ab02215eb1a52865a9f2c209d6d4cbf4a3444fb7faf23b02ca66/agentops-0.0.14-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"bf3a1fdf85563c47c2fc6571a1406aecb772f644d53a2adabf4981012971587a","md5":"1ecf7177ab57738c6663384de20887e5","sha256":"c54cee1c9ed1b5b7829fd80d5d01278b1efb50e977e5a890627f4688d0f2afb2"},"downloads":-1,"filename":"agentops-0.0.14.tar.gz","has_sig":false,"md5_digest":"1ecf7177ab57738c6663384de20887e5","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":19932,"upload_time":"2024-01-08T21:52:29","upload_time_iso_8601":"2024-01-08T21:52:29.988596Z","url":"https://files.pythonhosted.org/packages/bf/3a/1fdf85563c47c2fc6571a1406aecb772f644d53a2adabf4981012971587a/agentops-0.0.14.tar.gz","yanked":false,"yanked_reason":null}],"0.0.15":[{"comment_text":"","digests":{"blake2b_256":"0c5374cbe5c78db9faa7c939d1a91eff111c4d3f13f4d8d18920ddd48f89f335","md5":"c4528a66151e76c7b1abdcac3c3eaf52","sha256":"aa8034dc9a0e9e56014a06fac521fc2a63a968d34f73e4d4c9bef4b0e87f8241"},"downloads":-1,"filename":"agentops-0.0.15-py3-none-any.whl","has_sig":false,"md5_digest":"c4528a66151e76c7b1abdcac3c3eaf52","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":18734,"upload_time":"2024-01-23T08:43:24","upload_time_iso_8601":"2024-01-23T08:43:24.651479Z","url":"https://files.pythonhosted.org/packages/0c/53/74cbe5c78db9faa7c939d1a91eff111c4d3f13f4d8d18920ddd48f89f335/agentops-0.0.15-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"da56c7d8189f4accc182be6729bc44a8006d981173e721ff4751ab784bbadfb3","md5":"cd27bff6c943c6fcbed33ed8280ab5ea","sha256":"71b0e048d2f1b86744105509436cbb6fa51e6b418a50a8253849dc6cdeda6cca"},"downloads":-1,"filename":"agentops-0.0.15.tar.gz","has_sig":false,"md5_digest":"cd27bff6c943c6fcbed33ed8280ab5ea","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":19985,"upload_time":"2024-01-23T08:43:26","upload_time_iso_8601":"2024-01-23T08:43:26.316265Z","url":"https://files.pythonhosted.org/packages/da/56/c7d8189f4accc182be6729bc44a8006d981173e721ff4751ab784bbadfb3/agentops-0.0.15.tar.gz","yanked":false,"yanked_reason":null}],"0.0.16":[{"comment_text":"","digests":{"blake2b_256":"b694d78d43f49688829cab72b7326db1d9e3f436f71eed113f26d402fefa6856","md5":"657c2cad11b3c8b97469524bff19b916","sha256":"e9633dcbc419a47db8de13bd0dc4f5d55f0a50ef3434ffe8e1f8a3468561bd60"},"downloads":-1,"filename":"agentops-0.0.16-py3-none-any.whl","has_sig":false,"md5_digest":"657c2cad11b3c8b97469524bff19b916","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":18736,"upload_time":"2024-01-23T09:03:05","upload_time_iso_8601":"2024-01-23T09:03:05.799496Z","url":"https://files.pythonhosted.org/packages/b6/94/d78d43f49688829cab72b7326db1d9e3f436f71eed113f26d402fefa6856/agentops-0.0.16-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"ec353005c98c1e2642d61510a9977c2118d3baa72f50e3c45ef6a341bfd9a3b0","md5":"2f9b28dd0953fdd2da606e19b9131006","sha256":"469588d72734fc6e90c66cf9658613baf2a0b94c933a23cab16820435576c61f"},"downloads":-1,"filename":"agentops-0.0.16.tar.gz","has_sig":false,"md5_digest":"2f9b28dd0953fdd2da606e19b9131006","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":19986,"upload_time":"2024-01-23T09:03:07","upload_time_iso_8601":"2024-01-23T09:03:07.645949Z","url":"https://files.pythonhosted.org/packages/ec/35/3005c98c1e2642d61510a9977c2118d3baa72f50e3c45ef6a341bfd9a3b0/agentops-0.0.16.tar.gz","yanked":false,"yanked_reason":null}],"0.0.17":[{"comment_text":"","digests":{"blake2b_256":"f3b2eff27fc5373097fc4f4d3d90f4d0fad1c3be7b923a6213750fe1cb022e6e","md5":"20325afd9b9d9633b120b63967d4ae85","sha256":"1a7c8d8fc8821e2e7eedbbe2683e076bfaca3434401b0d1ca6b830bf3230e61e"},"downloads":-1,"filename":"agentops-0.0.17-py3-none-any.whl","has_sig":false,"md5_digest":"20325afd9b9d9633b120b63967d4ae85","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":18827,"upload_time":"2024-01-23T17:12:19","upload_time_iso_8601":"2024-01-23T17:12:19.300806Z","url":"https://files.pythonhosted.org/packages/f3/b2/eff27fc5373097fc4f4d3d90f4d0fad1c3be7b923a6213750fe1cb022e6e/agentops-0.0.17-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"ac2a2cb7548cce5b009bee9e6f9b46b26df1cca777830231e2d1603b83740053","md5":"4ac65e38fa45946f1d382ce290b904e9","sha256":"cc1e7f796a84c66a29b271d8f0faa4999c152c80195911b817502da002a3ae02"},"downloads":-1,"filename":"agentops-0.0.17.tar.gz","has_sig":false,"md5_digest":"4ac65e38fa45946f1d382ce290b904e9","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":20063,"upload_time":"2024-01-23T17:12:20","upload_time_iso_8601":"2024-01-23T17:12:20.558647Z","url":"https://files.pythonhosted.org/packages/ac/2a/2cb7548cce5b009bee9e6f9b46b26df1cca777830231e2d1603b83740053/agentops-0.0.17.tar.gz","yanked":false,"yanked_reason":null}],"0.0.18":[{"comment_text":"","digests":{"blake2b_256":"321102c865df2245ab8cfaeb48a72ef7011a7bbbe1553a43791d68295ff7c20d","md5":"ad10ec2bf28bf434d3d2f11500f5a396","sha256":"df241f6a62368aa645d1599bb6885688fba0d49dcc26f97f7f65ab29a6af1a2a"},"downloads":-1,"filename":"agentops-0.0.18-py3-none-any.whl","has_sig":false,"md5_digest":"ad10ec2bf28bf434d3d2f11500f5a396","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":18860,"upload_time":"2024-01-24T04:39:06","upload_time_iso_8601":"2024-01-24T04:39:06.952175Z","url":"https://files.pythonhosted.org/packages/32/11/02c865df2245ab8cfaeb48a72ef7011a7bbbe1553a43791d68295ff7c20d/agentops-0.0.18-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"7831bd4249dcf9a0cdcad5451ca62aa83187295bb9c16fd1b3034999bff7ceaf","md5":"76dc30c0a2e68f09c0411c23dd5e3a36","sha256":"47e071424247dbbb1b9aaf07ff60a7e376ae01666478d0305d62a9068d61c1c1"},"downloads":-1,"filename":"agentops-0.0.18.tar.gz","has_sig":false,"md5_digest":"76dc30c0a2e68f09c0411c23dd5e3a36","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":20094,"upload_time":"2024-01-24T04:39:09","upload_time_iso_8601":"2024-01-24T04:39:09.795862Z","url":"https://files.pythonhosted.org/packages/78/31/bd4249dcf9a0cdcad5451ca62aa83187295bb9c16fd1b3034999bff7ceaf/agentops-0.0.18.tar.gz","yanked":false,"yanked_reason":null}],"0.0.19":[{"comment_text":"","digests":{"blake2b_256":"9d48292d743b748eddc01b51747e1dac4b62dea0eb5f240877bae821c0049572","md5":"a26178cdf9d5fc5b466a30e5990c16a1","sha256":"0e663e26aad41bf0288d250685e88130430dd087d03ffc69aa7f43e587921b59"},"downloads":-1,"filename":"agentops-0.0.19-py3-none-any.whl","has_sig":false,"md5_digest":"a26178cdf9d5fc5b466a30e5990c16a1","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":18380,"upload_time":"2024-01-24T07:58:38","upload_time_iso_8601":"2024-01-24T07:58:38.440021Z","url":"https://files.pythonhosted.org/packages/9d/48/292d743b748eddc01b51747e1dac4b62dea0eb5f240877bae821c0049572/agentops-0.0.19-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"dfe6f3b3fc53b050ec70de947e27227d0ea1e7a75037d082fc5f4d914178d12f","md5":"c62a69951acd19121b059215cf0ddb8b","sha256":"3d46faabf2dad44bd4705279569c76240ab5c71f03f511ba9d363dfd033d453e"},"downloads":-1,"filename":"agentops-0.0.19.tar.gz","has_sig":false,"md5_digest":"c62a69951acd19121b059215cf0ddb8b","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":19728,"upload_time":"2024-01-24T07:58:41","upload_time_iso_8601":"2024-01-24T07:58:41.352463Z","url":"https://files.pythonhosted.org/packages/df/e6/f3b3fc53b050ec70de947e27227d0ea1e7a75037d082fc5f4d914178d12f/agentops-0.0.19.tar.gz","yanked":false,"yanked_reason":null}],"0.0.2":[{"comment_text":"","digests":{"blake2b_256":"e593e3863d3c61a75e43a347d423f754bc57559989773af6a9c7bc696ff1d6b4","md5":"8ff77b84c32a4e846ce50c6844664b49","sha256":"3bea2bdd8a26c190675aaf2775d97bc2e3c52d7da05c04ae8ec46fed959e0c6e"},"downloads":-1,"filename":"agentops-0.0.2-py3-none-any.whl","has_sig":false,"md5_digest":"8ff77b84c32a4e846ce50c6844664b49","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":10452,"upload_time":"2023-08-28T23:14:23","upload_time_iso_8601":"2023-08-28T23:14:23.488523Z","url":"https://files.pythonhosted.org/packages/e5/93/e3863d3c61a75e43a347d423f754bc57559989773af6a9c7bc696ff1d6b4/agentops-0.0.2-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"82dbea7088c3ba71d9882a8d09d896d8529100f3103d1fe58ff4b890f9d616f1","md5":"02c4fed5ca014de524e5c1dfe3ec2dd2","sha256":"dc183d28965a9514cb33d916b29b3159189f5be64c4a7d943be0cad1a00379f9"},"downloads":-1,"filename":"agentops-0.0.2.tar.gz","has_sig":false,"md5_digest":"02c4fed5ca014de524e5c1dfe3ec2dd2","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":11510,"upload_time":"2023-08-28T23:14:24","upload_time_iso_8601":"2023-08-28T23:14:24.882664Z","url":"https://files.pythonhosted.org/packages/82/db/ea7088c3ba71d9882a8d09d896d8529100f3103d1fe58ff4b890f9d616f1/agentops-0.0.2.tar.gz","yanked":false,"yanked_reason":null}],"0.0.20":[{"comment_text":"","digests":{"blake2b_256":"ad68d8cc6d631618e04ec6988d0c3f4462a74b0b5849719b8373c2470cf9d533","md5":"09b2866043abc3e5cb5dfc17b80068cb","sha256":"ba20fc48902434858f28e3c4a7febe56d275a28bd33378868e7fcde2f53f2430"},"downloads":-1,"filename":"agentops-0.0.20-py3-none-any.whl","has_sig":false,"md5_digest":"09b2866043abc3e5cb5dfc17b80068cb","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":18367,"upload_time":"2024-01-25T07:12:48","upload_time_iso_8601":"2024-01-25T07:12:48.514177Z","url":"https://files.pythonhosted.org/packages/ad/68/d8cc6d631618e04ec6988d0c3f4462a74b0b5849719b8373c2470cf9d533/agentops-0.0.20-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"0ba37435a8ce7125c7d75b931a373a188acf1c9e793be28db1b5c5e5a57d7a10","md5":"fb700178ad44a4697b696ecbd28d115c","sha256":"d50623b03b410c8c88718c29ea271304681e1305b5c05ba824edb92d18aab4f8"},"downloads":-1,"filename":"agentops-0.0.20.tar.gz","has_sig":false,"md5_digest":"fb700178ad44a4697b696ecbd28d115c","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":19707,"upload_time":"2024-01-25T07:12:49","upload_time_iso_8601":"2024-01-25T07:12:49.915462Z","url":"https://files.pythonhosted.org/packages/0b/a3/7435a8ce7125c7d75b931a373a188acf1c9e793be28db1b5c5e5a57d7a10/agentops-0.0.20.tar.gz","yanked":false,"yanked_reason":null}],"0.0.21":[{"comment_text":"","digests":{"blake2b_256":"9182ceb8c12e05c0e56ea6c5ba7395c57764ffc5a8134fd045b247793873c172","md5":"ce428cf01a0c1066d3f1f3c8ca6b4f9b","sha256":"fdefe50d945ad669b33c90bf526f9af0e7dc4792b4443aeb907b0a36de2be186"},"downloads":-1,"filename":"agentops-0.0.21-py3-none-any.whl","has_sig":false,"md5_digest":"ce428cf01a0c1066d3f1f3c8ca6b4f9b","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":18483,"upload_time":"2024-02-22T03:07:14","upload_time_iso_8601":"2024-02-22T03:07:14.032143Z","url":"https://files.pythonhosted.org/packages/91/82/ceb8c12e05c0e56ea6c5ba7395c57764ffc5a8134fd045b247793873c172/agentops-0.0.21-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"acbb361e3d7ed85fc4207ffbbe44ddfa7ee3b8f96b76c3712d4153d63ebb45e2","md5":"360f00d330fa37ad10f687906e31e219","sha256":"ec10f8e64c553a1c400f1d5c792c3daef383cd718747cabb8e5abc9ef685f25d"},"downloads":-1,"filename":"agentops-0.0.21.tar.gz","has_sig":false,"md5_digest":"360f00d330fa37ad10f687906e31e219","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":19787,"upload_time":"2024-02-22T03:07:15","upload_time_iso_8601":"2024-02-22T03:07:15.546312Z","url":"https://files.pythonhosted.org/packages/ac/bb/361e3d7ed85fc4207ffbbe44ddfa7ee3b8f96b76c3712d4153d63ebb45e2/agentops-0.0.21.tar.gz","yanked":false,"yanked_reason":null}],"0.0.22":[{"comment_text":"","digests":{"blake2b_256":"b9da29a808d5bd3045f80b5652737e94695056b4a7cf7830ed7de037b1fe941c","md5":"d9e04a68f0b143432b9e34341e4f0a17","sha256":"fbcd962ff08a2e216637341c36c558be74368fbfda0b2408e55388e4c96474ca"},"downloads":-1,"filename":"agentops-0.0.22-py3-none-any.whl","has_sig":false,"md5_digest":"d9e04a68f0b143432b9e34341e4f0a17","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":18485,"upload_time":"2024-02-29T21:16:00","upload_time_iso_8601":"2024-02-29T21:16:00.124986Z","url":"https://files.pythonhosted.org/packages/b9/da/29a808d5bd3045f80b5652737e94695056b4a7cf7830ed7de037b1fe941c/agentops-0.0.22-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"4d842d1c5d80c69e6c9b8f3fd925c2f2fd084ad6eb29d93fdeadbdeca79e5eda","md5":"8f3b286fd01c2c43f7f7b1e4aebe3594","sha256":"397544ce90474fee59f1e8561c92f4923e9034842be593f1ac41437c5fca5841"},"downloads":-1,"filename":"agentops-0.0.22.tar.gz","has_sig":false,"md5_digest":"8f3b286fd01c2c43f7f7b1e4aebe3594","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":19784,"upload_time":"2024-02-29T21:16:01","upload_time_iso_8601":"2024-02-29T21:16:01.909583Z","url":"https://files.pythonhosted.org/packages/4d/84/2d1c5d80c69e6c9b8f3fd925c2f2fd084ad6eb29d93fdeadbdeca79e5eda/agentops-0.0.22.tar.gz","yanked":false,"yanked_reason":null}],"0.0.3":[{"comment_text":"","digests":{"blake2b_256":"324eda261865c2042eeb5da9827a350760e435896855d5480b8f3136212c3f65","md5":"07a9f9f479a14e65b82054a145514e8d","sha256":"35351701e3caab900243771bda19d6613bdcb84cc9ef2e1adde431a775c09af8"},"downloads":-1,"filename":"agentops-0.0.3-py3-none-any.whl","has_sig":false,"md5_digest":"07a9f9f479a14e65b82054a145514e8d","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":11872,"upload_time":"2023-09-13T23:03:34","upload_time_iso_8601":"2023-09-13T23:03:34.300564Z","url":"https://files.pythonhosted.org/packages/32/4e/da261865c2042eeb5da9827a350760e435896855d5480b8f3136212c3f65/agentops-0.0.3-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"643485e455d4f411b56bef2a99c40e32f35f456c93deda0a3915231f1da92e56","md5":"c637ee3cfa358b65ed14cfc20d5f803f","sha256":"45a57492e4072f3f27b5e851f6e501b54c796f6ace5f65ecf70e51dbe18ca1a8"},"downloads":-1,"filename":"agentops-0.0.3.tar.gz","has_sig":false,"md5_digest":"c637ee3cfa358b65ed14cfc20d5f803f","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":12455,"upload_time":"2023-09-13T23:03:35","upload_time_iso_8601":"2023-09-13T23:03:35.513682Z","url":"https://files.pythonhosted.org/packages/64/34/85e455d4f411b56bef2a99c40e32f35f456c93deda0a3915231f1da92e56/agentops-0.0.3.tar.gz","yanked":false,"yanked_reason":null}],"0.0.4":[{"comment_text":"","digests":{"blake2b_256":"20cc12cf2391854ed588eaf6cdc87f60048f84e8dc7d15792850b7e90a0406b8","md5":"7a3c11004517e22dc7cde83cf6d8d5e8","sha256":"5a5cdcbe6e32c59237521182b83768e650b4519416b42f4e13929a115a0f20ee"},"downloads":-1,"filename":"agentops-0.0.4-py3-none-any.whl","has_sig":false,"md5_digest":"7a3c11004517e22dc7cde83cf6d8d5e8","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":13520,"upload_time":"2023-09-22T09:23:52","upload_time_iso_8601":"2023-09-22T09:23:52.896099Z","url":"https://files.pythonhosted.org/packages/20/cc/12cf2391854ed588eaf6cdc87f60048f84e8dc7d15792850b7e90a0406b8/agentops-0.0.4-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"98d2d9f9932d17711dd5d98af674c868686bdbdd9aaae9b8d69e9eecfd4c68f4","md5":"712d3bc3b28703963f8f398845b1d17a","sha256":"97743c6420bc5ba2655ac690041d5f5732fb950130cf61ab25ef6d44be6ecfb2"},"downloads":-1,"filename":"agentops-0.0.4.tar.gz","has_sig":false,"md5_digest":"712d3bc3b28703963f8f398845b1d17a","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":14050,"upload_time":"2023-09-22T09:23:54","upload_time_iso_8601":"2023-09-22T09:23:54.315467Z","url":"https://files.pythonhosted.org/packages/98/d2/d9f9932d17711dd5d98af674c868686bdbdd9aaae9b8d69e9eecfd4c68f4/agentops-0.0.4.tar.gz","yanked":false,"yanked_reason":null}],"0.0.5":[{"comment_text":"","digests":{"blake2b_256":"e900cd903074a01932ded9a05dac7849a16c5850ed20c027b954b1eccfba54c1","md5":"1bd4fd6cca14dac4947ecc6c4e3fe0a1","sha256":"e39e1051ba8c58f222f3495196eb939ccc53f04bd279372ae01e694973dd25d6"},"downloads":-1,"filename":"agentops-0.0.5-py3-none-any.whl","has_sig":false,"md5_digest":"1bd4fd6cca14dac4947ecc6c4e3fe0a1","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":14107,"upload_time":"2023-10-07T00:22:48","upload_time_iso_8601":"2023-10-07T00:22:48.714074Z","url":"https://files.pythonhosted.org/packages/e9/00/cd903074a01932ded9a05dac7849a16c5850ed20c027b954b1eccfba54c1/agentops-0.0.5-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"08d5c29068ce4df9c85865b45e1cdb7be1df06e54fce087fad18ec390a7aea54","md5":"4d8fc5553e3199fe24d6118337884a2b","sha256":"8f3662e600ba57e9a102c6bf86a6a1e16c0e53e1f38a84fa1b9c01cc07ca4990"},"downloads":-1,"filename":"agentops-0.0.5.tar.gz","has_sig":false,"md5_digest":"4d8fc5553e3199fe24d6118337884a2b","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":14724,"upload_time":"2023-10-07T00:22:50","upload_time_iso_8601":"2023-10-07T00:22:50.304226Z","url":"https://files.pythonhosted.org/packages/08/d5/c29068ce4df9c85865b45e1cdb7be1df06e54fce087fad18ec390a7aea54/agentops-0.0.5.tar.gz","yanked":false,"yanked_reason":null}],"0.0.6":[{"comment_text":"","digests":{"blake2b_256":"2f5b5f3bd8a5b2d96b6417fd4a3fc72ed484e3a4ffacac49035f17bb8df1dd5b","md5":"b7e701ff7953ecca01ceec3a6b9374b2","sha256":"05dea1d06f8f8d06a8f460d18d302febe91f4dad2e3fc0088d05b7017765f3b6"},"downloads":-1,"filename":"agentops-0.0.6-py3-none-any.whl","has_sig":false,"md5_digest":"b7e701ff7953ecca01ceec3a6b9374b2","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":14236,"upload_time":"2023-10-27T06:56:14","upload_time_iso_8601":"2023-10-27T06:56:14.029277Z","url":"https://files.pythonhosted.org/packages/2f/5b/5f3bd8a5b2d96b6417fd4a3fc72ed484e3a4ffacac49035f17bb8df1dd5b/agentops-0.0.6-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"4af43743bf40518545c8906687038e5717b1bd33db7ba300a084ec4f6c9c59e0","md5":"0a78dcafcbc6292cf0823181cdc226a7","sha256":"0057cb5d6dc0dd2c444f3371faef40c844a1510700b31824a4fccf5302713361"},"downloads":-1,"filename":"agentops-0.0.6.tar.gz","has_sig":false,"md5_digest":"0a78dcafcbc6292cf0823181cdc226a7","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":14785,"upload_time":"2023-10-27T06:56:15","upload_time_iso_8601":"2023-10-27T06:56:15.069192Z","url":"https://files.pythonhosted.org/packages/4a/f4/3743bf40518545c8906687038e5717b1bd33db7ba300a084ec4f6c9c59e0/agentops-0.0.6.tar.gz","yanked":false,"yanked_reason":null}],"0.0.7":[{"comment_text":"","digests":{"blake2b_256":"3cb1d15c39bbc95f66c64d01cca304f9b4b0c3503509ad92ef29f926c9163599","md5":"f494f6c256899103a80666be68d136ad","sha256":"6984429ca1a9013fd4386105516cb36a46dd7078f7ac81e0a4701f1700bd25b5"},"downloads":-1,"filename":"agentops-0.0.7-py3-none-any.whl","has_sig":false,"md5_digest":"f494f6c256899103a80666be68d136ad","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":14370,"upload_time":"2023-11-02T06:37:36","upload_time_iso_8601":"2023-11-02T06:37:36.480189Z","url":"https://files.pythonhosted.org/packages/3c/b1/d15c39bbc95f66c64d01cca304f9b4b0c3503509ad92ef29f926c9163599/agentops-0.0.7-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"ba709ae02fc635cab51b237dcc3657ec69aac61ee67ea5f903cfae07de19abc8","md5":"b163eaaf9cbafbbd19ec3f91b2b56969","sha256":"a6f36d94a82d8e481b406f040790cefd4d939f07108737c696327d97c0ccdaf4"},"downloads":-1,"filename":"agentops-0.0.7.tar.gz","has_sig":false,"md5_digest":"b163eaaf9cbafbbd19ec3f91b2b56969","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":14895,"upload_time":"2023-11-02T06:37:37","upload_time_iso_8601":"2023-11-02T06:37:37.698159Z","url":"https://files.pythonhosted.org/packages/ba/70/9ae02fc635cab51b237dcc3657ec69aac61ee67ea5f903cfae07de19abc8/agentops-0.0.7.tar.gz","yanked":false,"yanked_reason":null}],"0.0.8":[{"comment_text":"","digests":{"blake2b_256":"8147fa3ee8807ad961aa50a773b6567e3a624000936d3cc1a578af72d83e02e7","md5":"20cffb5534b4545fa1e8b24a6a24b1da","sha256":"5d50b2ab18a203dbb4555a2cd482dae8df5bf2aa3e771a9758ee28b540330da3"},"downloads":-1,"filename":"agentops-0.0.8-py3-none-any.whl","has_sig":false,"md5_digest":"20cffb5534b4545fa1e8b24a6a24b1da","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":14391,"upload_time":"2023-11-23T06:17:56","upload_time_iso_8601":"2023-11-23T06:17:56.154712Z","url":"https://files.pythonhosted.org/packages/81/47/fa3ee8807ad961aa50a773b6567e3a624000936d3cc1a578af72d83e02e7/agentops-0.0.8-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"707473dc640a3fecfbe84ab7da230f7c862f72f231514a2a488b43a896146ed6","md5":"bba7e74b58849f15d50f4e1270cbd23f","sha256":"3a625d2acc922d99563ce71c5032b0b3b0db57d1c6fade319cf1bb636608eca0"},"downloads":-1,"filename":"agentops-0.0.8.tar.gz","has_sig":false,"md5_digest":"bba7e74b58849f15d50f4e1270cbd23f","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":14775,"upload_time":"2023-11-23T06:17:58","upload_time_iso_8601":"2023-11-23T06:17:58.768877Z","url":"https://files.pythonhosted.org/packages/70/74/73dc640a3fecfbe84ab7da230f7c862f72f231514a2a488b43a896146ed6/agentops-0.0.8.tar.gz","yanked":false,"yanked_reason":null}],"0.1.0":[{"comment_text":"","digests":{"blake2b_256":"c2a41dc8456edc9bccc0c560967cfdce23a4d7ab8162946be288b54391d80f7c","md5":"5fb09f82b7eeb270c6644dcd3656953f","sha256":"b480fd51fbffc76ae13bb885c2adb1236a7d3b0095b4dafb4a992f6e25647433"},"downloads":-1,"filename":"agentops-0.1.0-py3-none-any.whl","has_sig":false,"md5_digest":"5fb09f82b7eeb270c6644dcd3656953f","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":25045,"upload_time":"2024-04-03T02:01:56","upload_time_iso_8601":"2024-04-03T02:01:56.936873Z","url":"https://files.pythonhosted.org/packages/c2/a4/1dc8456edc9bccc0c560967cfdce23a4d7ab8162946be288b54391d80f7c/agentops-0.1.0-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"a81756443f28de774cb7c863a2856e1b07658a9a772ba86dfb1cfbb19bc08fe3","md5":"b93c602c1d1da5d8f7a2dcdaa70f8e21","sha256":"22d3dc87dedf93b3b78a0dfdef8c685b2f3bff9fbab32016360e298a24d311dc"},"downloads":-1,"filename":"agentops-0.1.0.tar.gz","has_sig":false,"md5_digest":"b93c602c1d1da5d8f7a2dcdaa70f8e21","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":24685,"upload_time":"2024-04-03T02:01:58","upload_time_iso_8601":"2024-04-03T02:01:58.623055Z","url":"https://files.pythonhosted.org/packages/a8/17/56443f28de774cb7c863a2856e1b07658a9a772ba86dfb1cfbb19bc08fe3/agentops-0.1.0.tar.gz","yanked":false,"yanked_reason":null}],"0.1.0b1":[{"comment_text":"","digests":{"blake2b_256":"c03a329c59f001f50701e9e541775c79304a5ce4ffe34d717b1d2af555362e9e","md5":"7c7e84b3b4448580bf5a7e9c08012477","sha256":"825ab57ac5f7840f5a7f8ac195f4af75ec07a9c0972b17d1a57a595420d06208"},"downloads":-1,"filename":"agentops-0.1.0b1-py3-none-any.whl","has_sig":false,"md5_digest":"7c7e84b3b4448580bf5a7e9c08012477","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":23258,"upload_time":"2024-03-18T18:51:08","upload_time_iso_8601":"2024-03-18T18:51:08.693772Z","url":"https://files.pythonhosted.org/packages/c0/3a/329c59f001f50701e9e541775c79304a5ce4ffe34d717b1d2af555362e9e/agentops-0.1.0b1-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"026ee44f1d5a49924867475f7d101abe40170c0674b4b395f28ce88552c1ba71","md5":"9cf6699fe45f13f1893c8992405e7261","sha256":"f5ce4b34999fe4b21a4ce3643980253d30f8ea9c55f01d96cd35631355fc7ac3"},"downloads":-1,"filename":"agentops-0.1.0b1.tar.gz","has_sig":false,"md5_digest":"9cf6699fe45f13f1893c8992405e7261","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":23842,"upload_time":"2024-03-18T18:51:10","upload_time_iso_8601":"2024-03-18T18:51:10.250127Z","url":"https://files.pythonhosted.org/packages/02/6e/e44f1d5a49924867475f7d101abe40170c0674b4b395f28ce88552c1ba71/agentops-0.1.0b1.tar.gz","yanked":false,"yanked_reason":null}],"0.1.0b2":[{"comment_text":"","digests":{"blake2b_256":"6a25e9282f81c3f2615ef6543a0b5ca49dd14b03f311fc5a108ad1aff4f0b720","md5":"1d3e736ef44c0ad8829c50f036ac807b","sha256":"485362b9a68d2327da250f0681b30a9296f0b41e058672b023ae2a8ed924b4d3"},"downloads":-1,"filename":"agentops-0.1.0b2-py3-none-any.whl","has_sig":false,"md5_digest":"1d3e736ef44c0ad8829c50f036ac807b","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":23477,"upload_time":"2024-03-21T23:31:20","upload_time_iso_8601":"2024-03-21T23:31:20.022797Z","url":"https://files.pythonhosted.org/packages/6a/25/e9282f81c3f2615ef6543a0b5ca49dd14b03f311fc5a108ad1aff4f0b720/agentops-0.1.0b2-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"3165f702684da6e01f8df74a4291be2914c382ec4cb6f8ed2c3dc6d5a9f177ff","md5":"0d51a6f6bf7cb0d3651574404c9c703c","sha256":"cf9a8b54cc4f76592b6380729c03ec7adfe2256e6b200876d7595e50015f5d62"},"downloads":-1,"filename":"agentops-0.1.0b2.tar.gz","has_sig":false,"md5_digest":"0d51a6f6bf7cb0d3651574404c9c703c","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":23659,"upload_time":"2024-03-21T23:31:21","upload_time_iso_8601":"2024-03-21T23:31:21.330837Z","url":"https://files.pythonhosted.org/packages/31/65/f702684da6e01f8df74a4291be2914c382ec4cb6f8ed2c3dc6d5a9f177ff/agentops-0.1.0b2.tar.gz","yanked":false,"yanked_reason":null}],"0.1.0b3":[{"comment_text":"","digests":{"blake2b_256":"2e64bfe82911b8981ce57f86154915d53b45fffa83ccb9cd6cf4cc71af3f796b","md5":"470bc56525c114dddd908628dcb4f267","sha256":"45b5aaa9f38989cfbfcc4f64e3041050df6d417177874316839225085e60d18d"},"downloads":-1,"filename":"agentops-0.1.0b3-py3-none-any.whl","has_sig":false,"md5_digest":"470bc56525c114dddd908628dcb4f267","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":23522,"upload_time":"2024-03-25T19:34:58","upload_time_iso_8601":"2024-03-25T19:34:58.102867Z","url":"https://files.pythonhosted.org/packages/2e/64/bfe82911b8981ce57f86154915d53b45fffa83ccb9cd6cf4cc71af3f796b/agentops-0.1.0b3-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"0858e4b718e30a6bbe27d32b7128398cb3884f83f89b4121e36cbb7f979466ca","md5":"8ddb13824d3636d841739479e02a12e6","sha256":"9020daab306fe8c7ed0a98a9edcad9772eb1df0eacce7f936a5ed6bf0f7d2af1"},"downloads":-1,"filename":"agentops-0.1.0b3.tar.gz","has_sig":false,"md5_digest":"8ddb13824d3636d841739479e02a12e6","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":23641,"upload_time":"2024-03-25T19:35:01","upload_time_iso_8601":"2024-03-25T19:35:01.119334Z","url":"https://files.pythonhosted.org/packages/08/58/e4b718e30a6bbe27d32b7128398cb3884f83f89b4121e36cbb7f979466ca/agentops-0.1.0b3.tar.gz","yanked":false,"yanked_reason":null}],"0.1.0b4":[{"comment_text":"","digests":{"blake2b_256":"67f860440d18b674b06c5a9f4f334bf1f1656dca9f6763d5dd3a2be9e5d2c256","md5":"b11f47108926fb46964bbf28675c3e35","sha256":"93a1f241c3fd7880c3d29ab64baa0661d9ba84e2071092aecb3e4fc574037900"},"downloads":-1,"filename":"agentops-0.1.0b4-py3-none-any.whl","has_sig":false,"md5_digest":"b11f47108926fb46964bbf28675c3e35","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":23512,"upload_time":"2024-03-26T01:14:54","upload_time_iso_8601":"2024-03-26T01:14:54.986869Z","url":"https://files.pythonhosted.org/packages/67/f8/60440d18b674b06c5a9f4f334bf1f1656dca9f6763d5dd3a2be9e5d2c256/agentops-0.1.0b4-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"10feabb836b04b7eae44383f5616ed1c4c6e9aee9beecc3df4617f69f7e3adc5","md5":"fa4512f74baf9909544ebab021862740","sha256":"4716b4e2a627d7a3846ddee3d334c8f5e8a1a2d231ec5286379c0f22920a2a9d"},"downloads":-1,"filename":"agentops-0.1.0b4.tar.gz","has_sig":false,"md5_digest":"fa4512f74baf9909544ebab021862740","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":23668,"upload_time":"2024-03-26T01:14:56","upload_time_iso_8601":"2024-03-26T01:14:56.921017Z","url":"https://files.pythonhosted.org/packages/10/fe/abb836b04b7eae44383f5616ed1c4c6e9aee9beecc3df4617f69f7e3adc5/agentops-0.1.0b4.tar.gz","yanked":false,"yanked_reason":null}],"0.1.0b5":[{"comment_text":"","digests":{"blake2b_256":"3ac591c14d08000def551f70ccc1da9ab8b37f57561d24cf7fdf6cd3547610ee","md5":"52a2212b79870ee48f0dbdad852dbb90","sha256":"ed050e51137baa4f46769c77595e1cbe212bb86243f27a29b50218782a0d8242"},"downloads":-1,"filename":"agentops-0.1.0b5-py3-none-any.whl","has_sig":false,"md5_digest":"52a2212b79870ee48f0dbdad852dbb90","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":24597,"upload_time":"2024-04-02T00:56:17","upload_time_iso_8601":"2024-04-02T00:56:17.570921Z","url":"https://files.pythonhosted.org/packages/3a/c5/91c14d08000def551f70ccc1da9ab8b37f57561d24cf7fdf6cd3547610ee/agentops-0.1.0b5-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"84d6f0bbe5883b86e749f2f02896d94054ebd84b4d66524e4b7004263ae21a6f","md5":"89c6aa7864f45c17f42a38bb6fae904b","sha256":"6ebe6a94f0898fd47521755b6c8083c5f6c0c8bb30d43441200b9ef67998ed01"},"downloads":-1,"filename":"agentops-0.1.0b5.tar.gz","has_sig":false,"md5_digest":"89c6aa7864f45c17f42a38bb6fae904b","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":24624,"upload_time":"2024-04-02T00:56:18","upload_time_iso_8601":"2024-04-02T00:56:18.703411Z","url":"https://files.pythonhosted.org/packages/84/d6/f0bbe5883b86e749f2f02896d94054ebd84b4d66524e4b7004263ae21a6f/agentops-0.1.0b5.tar.gz","yanked":false,"yanked_reason":null}],"0.1.0b7":[{"comment_text":"","digests":{"blake2b_256":"3cc4ebdb56f0ff88ad20ddba765093aa6c1fc655a8f2bbafbcb2057f998d814f","md5":"d117591df22735d1dedbdc034c93bff6","sha256":"0d4fdb036836dddcce770cffcb2d564b0011a3307224d9a4675fc9bf80ffa5d2"},"downloads":-1,"filename":"agentops-0.1.0b7-py3-none-any.whl","has_sig":false,"md5_digest":"d117591df22735d1dedbdc034c93bff6","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":24592,"upload_time":"2024-04-02T03:20:11","upload_time_iso_8601":"2024-04-02T03:20:11.132539Z","url":"https://files.pythonhosted.org/packages/3c/c4/ebdb56f0ff88ad20ddba765093aa6c1fc655a8f2bbafbcb2057f998d814f/agentops-0.1.0b7-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"cbf0c32014a8ee12df4596ec4d90428e73e0cc5277d1b9bd2b53f815a7f0ea1f","md5":"20364eb7d493e6f9b46666f36be8fb2f","sha256":"938b29cd894ff38c7b1dee02f6422458702ccf8f3b69b69bc0e4220e42a33629"},"downloads":-1,"filename":"agentops-0.1.0b7.tar.gz","has_sig":false,"md5_digest":"20364eb7d493e6f9b46666f36be8fb2f","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":24611,"upload_time":"2024-04-02T03:20:12","upload_time_iso_8601":"2024-04-02T03:20:12.490524Z","url":"https://files.pythonhosted.org/packages/cb/f0/c32014a8ee12df4596ec4d90428e73e0cc5277d1b9bd2b53f815a7f0ea1f/agentops-0.1.0b7.tar.gz","yanked":false,"yanked_reason":null}],"0.1.1":[{"comment_text":"","digests":{"blake2b_256":"ba13ff18b4ff72805bcbe7437aa445cde854a44b4b358564ed2b044678e270b9","md5":"d4f77de8dd58468c6c307e735c1cfaa9","sha256":"8afc0b7871d17f8cbe9996cab5ca10a8a3ed33a3406e1ddc257fadc214daa79a"},"downloads":-1,"filename":"agentops-0.1.1-py3-none-any.whl","has_sig":false,"md5_digest":"d4f77de8dd58468c6c307e735c1cfaa9","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":25189,"upload_time":"2024-04-05T22:41:01","upload_time_iso_8601":"2024-04-05T22:41:01.867983Z","url":"https://files.pythonhosted.org/packages/ba/13/ff18b4ff72805bcbe7437aa445cde854a44b4b358564ed2b044678e270b9/agentops-0.1.1-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"1dec1d2af6e33dd097feaf1e41a4d34c66d4e4e59ce35c5efac85c18614b9d4b","md5":"f072d8700d4e22fc25eae8bb29a54d1f","sha256":"001582703d5e6ffe67a51f9d67a303b5344e4ef8ca315f24aa43e0dd3d19f53b"},"downloads":-1,"filename":"agentops-0.1.1.tar.gz","has_sig":false,"md5_digest":"f072d8700d4e22fc25eae8bb29a54d1f","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":24831,"upload_time":"2024-04-05T22:41:03","upload_time_iso_8601":"2024-04-05T22:41:03.677234Z","url":"https://files.pythonhosted.org/packages/1d/ec/1d2af6e33dd097feaf1e41a4d34c66d4e4e59ce35c5efac85c18614b9d4b/agentops-0.1.1.tar.gz","yanked":false,"yanked_reason":null}],"0.1.10":[{"comment_text":"","digests":{"blake2b_256":"cdf9a295ed62701dd4e56d5b57e45e0425db2bcea992c687534c9a2dd1e001f1","md5":"8d82b9cb794b4b4a1e91ddece5447bcf","sha256":"8b80800d4fa5a7a6c85c79f2bf39a50fb446ab8b209519bd51f44dee3b38517e"},"downloads":-1,"filename":"agentops-0.1.10-py3-none-any.whl","has_sig":false,"md5_digest":"8d82b9cb794b4b4a1e91ddece5447bcf","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":29769,"upload_time":"2024-05-10T20:13:39","upload_time_iso_8601":"2024-05-10T20:13:39.477237Z","url":"https://files.pythonhosted.org/packages/cd/f9/a295ed62701dd4e56d5b57e45e0425db2bcea992c687534c9a2dd1e001f1/agentops-0.1.10-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"f3788e027be4aa50f677a46bba1e0132f021e90d299c6eae093181a91679e378","md5":"4dd3d1fd8c08efb1a08ae212ed9211d7","sha256":"73fbd36cd5f3052d22e64dbea1fa9d70fb02658a901a600101801daa73f359f9"},"downloads":-1,"filename":"agentops-0.1.10.tar.gz","has_sig":false,"md5_digest":"4dd3d1fd8c08efb1a08ae212ed9211d7","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":30268,"upload_time":"2024-05-10T20:14:25","upload_time_iso_8601":"2024-05-10T20:14:25.258530Z","url":"https://files.pythonhosted.org/packages/f3/78/8e027be4aa50f677a46bba1e0132f021e90d299c6eae093181a91679e378/agentops-0.1.10.tar.gz","yanked":false,"yanked_reason":null}],"0.1.11":[{"comment_text":"","digests":{"blake2b_256":"1ebfaaa31babe3bf687312592f99fe900e3808058658577bd1367b7df0332a08","md5":"73c0b028248665a7927688fb8baa7680","sha256":"e9411981a5d0b1190b93e3e1124db3ac6f17015c65a84b92a793f34d79b694c9"},"downloads":-1,"filename":"agentops-0.1.11-py3-none-any.whl","has_sig":false,"md5_digest":"73c0b028248665a7927688fb8baa7680","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":30952,"upload_time":"2024-05-17T00:32:49","upload_time_iso_8601":"2024-05-17T00:32:49.202597Z","url":"https://files.pythonhosted.org/packages/1e/bf/aaa31babe3bf687312592f99fe900e3808058658577bd1367b7df0332a08/agentops-0.1.11-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"6ee43f71a7d1d63595058cd6945e7b9e2de1b06ace04176a6723b7bfb37bf880","md5":"36092e907e4f15a6bafd6788383df112","sha256":"4a365ee56303b5b80d9de21fc13ccb7a3fe44544a6c165327bbfd9213bfe0191"},"downloads":-1,"filename":"agentops-0.1.11.tar.gz","has_sig":false,"md5_digest":"36092e907e4f15a6bafd6788383df112","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":31256,"upload_time":"2024-05-17T00:32:50","upload_time_iso_8601":"2024-05-17T00:32:50.919974Z","url":"https://files.pythonhosted.org/packages/6e/e4/3f71a7d1d63595058cd6945e7b9e2de1b06ace04176a6723b7bfb37bf880/agentops-0.1.11.tar.gz","yanked":false,"yanked_reason":null}],"0.1.12":[{"comment_text":"","digests":{"blake2b_256":"67f5227dffbebeffd3b404db0dd71805f00814e458c0d081faf7a4e70c7e984f","md5":"2591924de6f2e5580e4733b0e8336e2c","sha256":"b4b47c990638b74810cc1c38624ada162094b46e3fdd63883642a16bc5258386"},"downloads":-1,"filename":"agentops-0.1.12-py3-none-any.whl","has_sig":false,"md5_digest":"2591924de6f2e5580e4733b0e8336e2c","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":35605,"upload_time":"2024-05-24T20:11:52","upload_time_iso_8601":"2024-05-24T20:11:52.863109Z","url":"https://files.pythonhosted.org/packages/67/f5/227dffbebeffd3b404db0dd71805f00814e458c0d081faf7a4e70c7e984f/agentops-0.1.12-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"9f9ae6dc42ad8d40ad47c6116629b2cbda443d314327ab4d33e1044cb75ba88b","md5":"4c2e76e7b6d4799ef4b464dee29e7255","sha256":"c4f762482fb240fc3503907f52498f2d8d9e4f80236ee4a12bf039317a85fcd7"},"downloads":-1,"filename":"agentops-0.1.12.tar.gz","has_sig":false,"md5_digest":"4c2e76e7b6d4799ef4b464dee29e7255","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":35103,"upload_time":"2024-05-24T20:11:54","upload_time_iso_8601":"2024-05-24T20:11:54.846567Z","url":"https://files.pythonhosted.org/packages/9f/9a/e6dc42ad8d40ad47c6116629b2cbda443d314327ab4d33e1044cb75ba88b/agentops-0.1.12.tar.gz","yanked":false,"yanked_reason":null}],"0.1.2":[{"comment_text":"","digests":{"blake2b_256":"e709193dfe68c2d23de2c60dd0af2af336cbf81d3a3f0c175705783b4c1da580","md5":"588d9877b9767546606d3d6d76d247fc","sha256":"ec79e56889eadd2bab04dfe2f6a899a1b90dc347a66cc80488297368386105b4"},"downloads":-1,"filename":"agentops-0.1.2-py3-none-any.whl","has_sig":false,"md5_digest":"588d9877b9767546606d3d6d76d247fc","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":25359,"upload_time":"2024-04-09T23:00:51","upload_time_iso_8601":"2024-04-09T23:00:51.897995Z","url":"https://files.pythonhosted.org/packages/e7/09/193dfe68c2d23de2c60dd0af2af336cbf81d3a3f0c175705783b4c1da580/agentops-0.1.2-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"8acc872aba374093481bb40ed6b7531b1500b00138baf6bfb9ca7c20fb889d58","md5":"80f8f7c56b1e1a6ff4c48877fe12dd12","sha256":"d213e1037d2d319743889c2bdbc10dc068b0591e2c6c156f69019302490336d5"},"downloads":-1,"filename":"agentops-0.1.2.tar.gz","has_sig":false,"md5_digest":"80f8f7c56b1e1a6ff4c48877fe12dd12","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":24968,"upload_time":"2024-04-09T23:00:53","upload_time_iso_8601":"2024-04-09T23:00:53.227389Z","url":"https://files.pythonhosted.org/packages/8a/cc/872aba374093481bb40ed6b7531b1500b00138baf6bfb9ca7c20fb889d58/agentops-0.1.2.tar.gz","yanked":false,"yanked_reason":null}],"0.1.3":[{"comment_text":"","digests":{"blake2b_256":"9701aad65170506dcf29606e9e619d2c0caaee565e5e8b14a791c3e0e86c6356","md5":"4dc967275c884e2a5a1de8df448ae1c6","sha256":"f1ca0f2c5156d826381e9ebd634555215c67e1cb344683abddb382e594f483e4"},"downloads":-1,"filename":"agentops-0.1.3-py3-none-any.whl","has_sig":false,"md5_digest":"4dc967275c884e2a5a1de8df448ae1c6","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":25393,"upload_time":"2024-04-09T23:24:20","upload_time_iso_8601":"2024-04-09T23:24:20.821465Z","url":"https://files.pythonhosted.org/packages/97/01/aad65170506dcf29606e9e619d2c0caaee565e5e8b14a791c3e0e86c6356/agentops-0.1.3-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"5e22afde273bcf52cfc6581fba804b44eeebea6ff2ae774f0e5917fa1dd3ee09","md5":"624c9b63dbe56c8b1dd535e1b20ada81","sha256":"dd65e80ec70accfac0692171199b6ecfa37a7d109a3c25f2191c0934b5004114"},"downloads":-1,"filename":"agentops-0.1.3.tar.gz","has_sig":false,"md5_digest":"624c9b63dbe56c8b1dd535e1b20ada81","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":24994,"upload_time":"2024-04-09T23:24:22","upload_time_iso_8601":"2024-04-09T23:24:22.610198Z","url":"https://files.pythonhosted.org/packages/5e/22/afde273bcf52cfc6581fba804b44eeebea6ff2ae774f0e5917fa1dd3ee09/agentops-0.1.3.tar.gz","yanked":false,"yanked_reason":null}],"0.1.4":[{"comment_text":"","digests":{"blake2b_256":"50313e20afb169e707941cc3342cecb88060aa8746e95d72a202fd90ac4096b6","md5":"3f64b736522ea40c35db6d2a609fc54f","sha256":"476a5e795a6cc87858a0885be61b1e05eed21e4c6ab47f20348c48717c2ac454"},"downloads":-1,"filename":"agentops-0.1.4-py3-none-any.whl","has_sig":false,"md5_digest":"3f64b736522ea40c35db6d2a609fc54f","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":25558,"upload_time":"2024-04-11T19:26:01","upload_time_iso_8601":"2024-04-11T19:26:01.162829Z","url":"https://files.pythonhosted.org/packages/50/31/3e20afb169e707941cc3342cecb88060aa8746e95d72a202fd90ac4096b6/agentops-0.1.4-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"e0688b1a21f72b85c9bdd56da4223c991bdfb5d0c2accd9ddd326616bf952795","md5":"6f4601047f3e2080b4f7363ff84f15f3","sha256":"d55e64953f84654d44557b496a3b3744a20449b854af84fa83a15be75b362b3d"},"downloads":-1,"filename":"agentops-0.1.4.tar.gz","has_sig":false,"md5_digest":"6f4601047f3e2080b4f7363ff84f15f3","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":25390,"upload_time":"2024-04-11T19:26:02","upload_time_iso_8601":"2024-04-11T19:26:02.991657Z","url":"https://files.pythonhosted.org/packages/e0/68/8b1a21f72b85c9bdd56da4223c991bdfb5d0c2accd9ddd326616bf952795/agentops-0.1.4.tar.gz","yanked":false,"yanked_reason":null}],"0.1.5":[{"comment_text":"","digests":{"blake2b_256":"641c742793fa77c803e5667830ccd34b8d313d11f361a105fe92ce68d871cc5f","md5":"964421a604c67c07b5c72b70ceee6ce8","sha256":"bc65dd4cd85d1ffcba195f2490b5a4380d0b565dd0f4a71ecc64ed96a7fe1eee"},"downloads":-1,"filename":"agentops-0.1.5-py3-none-any.whl","has_sig":false,"md5_digest":"964421a604c67c07b5c72b70ceee6ce8","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":25793,"upload_time":"2024-04-20T01:56:23","upload_time_iso_8601":"2024-04-20T01:56:23.089343Z","url":"https://files.pythonhosted.org/packages/64/1c/742793fa77c803e5667830ccd34b8d313d11f361a105fe92ce68d871cc5f/agentops-0.1.5-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"62beabcb235daf34d4740961c4ad295b8dfb8a053ac6a1e341394e36f722ea89","md5":"3ff7fa3135bc5c4254aaa99e3cc00dc8","sha256":"17f0a573362d9c4770846874a4091662304d6889e21ca6a7dd747be48b9c8597"},"downloads":-1,"filename":"agentops-0.1.5.tar.gz","has_sig":false,"md5_digest":"3ff7fa3135bc5c4254aaa99e3cc00dc8","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":25664,"upload_time":"2024-04-20T01:56:24","upload_time_iso_8601":"2024-04-20T01:56:24.303013Z","url":"https://files.pythonhosted.org/packages/62/be/abcb235daf34d4740961c4ad295b8dfb8a053ac6a1e341394e36f722ea89/agentops-0.1.5.tar.gz","yanked":false,"yanked_reason":null}],"0.1.6":[{"comment_text":"","digests":{"blake2b_256":"430b9f3fcfc2f9778dbbfc1fd68b223e9a91938505ef987e17b93a631bb6b2e4","md5":"28ce2e6aa7a4598fa1e764d9762fd030","sha256":"9dff841ef71f5fad2d897012a00f50011a706970e0e5eaae9d7b0540a637b128"},"downloads":-1,"filename":"agentops-0.1.6-py3-none-any.whl","has_sig":false,"md5_digest":"28ce2e6aa7a4598fa1e764d9762fd030","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":26154,"upload_time":"2024-04-20T03:48:58","upload_time_iso_8601":"2024-04-20T03:48:58.494391Z","url":"https://files.pythonhosted.org/packages/43/0b/9f3fcfc2f9778dbbfc1fd68b223e9a91938505ef987e17b93a631bb6b2e4/agentops-0.1.6-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"a6c2b437246ce28bad9c2bbad9a9371f7008f76a979fb19699588212f653daf9","md5":"fc81fd641ad630a17191d4a9cf77193b","sha256":"48ddb49fc01eb83ce151d3f08ae670b3d603c454aa35b4ea145f2dc15e081b36"},"downloads":-1,"filename":"agentops-0.1.6.tar.gz","has_sig":false,"md5_digest":"fc81fd641ad630a17191d4a9cf77193b","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":25792,"upload_time":"2024-04-20T03:48:59","upload_time_iso_8601":"2024-04-20T03:48:59.957150Z","url":"https://files.pythonhosted.org/packages/a6/c2/b437246ce28bad9c2bbad9a9371f7008f76a979fb19699588212f653daf9/agentops-0.1.6.tar.gz","yanked":false,"yanked_reason":null}],"0.1.7":[{"comment_text":"","digests":{"blake2b_256":"1ca529570477f62973c6b835e09dc5bbda7498c1a26ba7a428cdb08a71ae86ca","md5":"a1962d1bb72c6fd00e67e83fe56a3692","sha256":"ce7a9e89dcf17507ee6db85017bef8f87fc4e8a23745f3f73e1fbda5489fb6f9"},"downloads":-1,"filename":"agentops-0.1.7-py3-none-any.whl","has_sig":false,"md5_digest":"a1962d1bb72c6fd00e67e83fe56a3692","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.10","size":27891,"upload_time":"2024-05-03T19:21:38","upload_time_iso_8601":"2024-05-03T19:21:38.018602Z","url":"https://files.pythonhosted.org/packages/1c/a5/29570477f62973c6b835e09dc5bbda7498c1a26ba7a428cdb08a71ae86ca/agentops-0.1.7-py3-none-any.whl","yanked":true,"yanked_reason":"Introduced + breaking bug"},{"comment_text":"","digests":{"blake2b_256":"b2447ce75e71fcc9605a609b41adc52d517eba4356d15f7ca77d46f683ca07f1","md5":"9a9bb22af4b30c454d46b9a01e8701a0","sha256":"70d22e9a71ea13af6e6ad9c1cffe63c98f9dbccf91bda199825609379b2babaf"},"downloads":-1,"filename":"agentops-0.1.7.tar.gz","has_sig":false,"md5_digest":"9a9bb22af4b30c454d46b9a01e8701a0","packagetype":"sdist","python_version":"source","requires_python":">=3.10","size":28122,"upload_time":"2024-05-03T19:21:39","upload_time_iso_8601":"2024-05-03T19:21:39.415523Z","url":"https://files.pythonhosted.org/packages/b2/44/7ce75e71fcc9605a609b41adc52d517eba4356d15f7ca77d46f683ca07f1/agentops-0.1.7.tar.gz","yanked":true,"yanked_reason":"Introduced + breaking bug"}],"0.1.8":[{"comment_text":"","digests":{"blake2b_256":"38c63d0d19eeae4c3c9e3ff5957b10c3c16a4a9fd2be6673fbfc965f8bb4fd08","md5":"e12d3d92f51f5b2fed11a01742e5b5b5","sha256":"d49d113028a891d50900bb4fae253218cc49519f7fe39f9ea15f8f2b29d6d7ef"},"downloads":-1,"filename":"agentops-0.1.8-py3-none-any.whl","has_sig":false,"md5_digest":"e12d3d92f51f5b2fed11a01742e5b5b5","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.10","size":27977,"upload_time":"2024-05-04T03:01:53","upload_time_iso_8601":"2024-05-04T03:01:53.905081Z","url":"https://files.pythonhosted.org/packages/38/c6/3d0d19eeae4c3c9e3ff5957b10c3c16a4a9fd2be6673fbfc965f8bb4fd08/agentops-0.1.8-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"9269e51fa1714f169f692e4fad0a42ebeb77c7a27c48f62b751c869ad6441c69","md5":"07dbdb45f9ec086b1bc314d6a8264423","sha256":"5762137a84e2309e1b6ca9a0fd72c8b72c90f6f73ba49549980722221960cac8"},"downloads":-1,"filename":"agentops-0.1.8.tar.gz","has_sig":false,"md5_digest":"07dbdb45f9ec086b1bc314d6a8264423","packagetype":"sdist","python_version":"source","requires_python":">=3.10","size":28189,"upload_time":"2024-05-04T03:01:55","upload_time_iso_8601":"2024-05-04T03:01:55.328668Z","url":"https://files.pythonhosted.org/packages/92/69/e51fa1714f169f692e4fad0a42ebeb77c7a27c48f62b751c869ad6441c69/agentops-0.1.8.tar.gz","yanked":false,"yanked_reason":null}],"0.1.9":[{"comment_text":"","digests":{"blake2b_256":"eb5a920e71729bd1f06b002ee146b38b0d1862357a1f484628e6b20a7d3dcca1","md5":"6ae4929d91c4bb8025edc86b5322630c","sha256":"af7983ba4929b04a34714dd97d7e82c11384ebbe9d7d8bc7b673e1263c4c79a1"},"downloads":-1,"filename":"agentops-0.1.9-py3-none-any.whl","has_sig":false,"md5_digest":"6ae4929d91c4bb8025edc86b5322630c","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":28458,"upload_time":"2024-05-07T07:07:30","upload_time_iso_8601":"2024-05-07T07:07:30.798380Z","url":"https://files.pythonhosted.org/packages/eb/5a/920e71729bd1f06b002ee146b38b0d1862357a1f484628e6b20a7d3dcca1/agentops-0.1.9-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"df2b8fc76d629d8a83b0796612a27b966426550114c930eee5d730654fcd9fe9","md5":"43090632f87cd398ed77b57daa8c28d6","sha256":"7f428bfda2db57a994029b1c9f72b63ca7660616635c9c671b2b729d112a833e"},"downloads":-1,"filename":"agentops-0.1.9.tar.gz","has_sig":false,"md5_digest":"43090632f87cd398ed77b57daa8c28d6","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":28596,"upload_time":"2024-05-07T07:07:35","upload_time_iso_8601":"2024-05-07T07:07:35.242350Z","url":"https://files.pythonhosted.org/packages/df/2b/8fc76d629d8a83b0796612a27b966426550114c930eee5d730654fcd9fe9/agentops-0.1.9.tar.gz","yanked":false,"yanked_reason":null}],"0.2.0":[{"comment_text":"","digests":{"blake2b_256":"483560ec38a81a7e9588d32730ed4f581621169216f968771d5f611388f68a9b","md5":"bdda5480977cccd55628e117e8c8da04","sha256":"bee84bf046c9b4346c5f0f50e2087a992e8d2eae80b3fe9f01c456b49c299bcc"},"downloads":-1,"filename":"agentops-0.2.0-py3-none-any.whl","has_sig":false,"md5_digest":"bdda5480977cccd55628e117e8c8da04","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":35921,"upload_time":"2024-05-28T22:04:14","upload_time_iso_8601":"2024-05-28T22:04:14.813154Z","url":"https://files.pythonhosted.org/packages/48/35/60ec38a81a7e9588d32730ed4f581621169216f968771d5f611388f68a9b/agentops-0.2.0-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"8d7591c79141d31da4e56d6c6a00737b50dcc2f1ce8a711c1293d2a1d70478fc","md5":"71e3c3b9fe0286c9b58d81ba1c12a42d","sha256":"ca340136abff6a3727729c3eda87f0768e5ba2b672ce03320cb52ad138b05598"},"downloads":-1,"filename":"agentops-0.2.0.tar.gz","has_sig":false,"md5_digest":"71e3c3b9fe0286c9b58d81ba1c12a42d","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":35498,"upload_time":"2024-05-28T22:04:16","upload_time_iso_8601":"2024-05-28T22:04:16.598374Z","url":"https://files.pythonhosted.org/packages/8d/75/91c79141d31da4e56d6c6a00737b50dcc2f1ce8a711c1293d2a1d70478fc/agentops-0.2.0.tar.gz","yanked":false,"yanked_reason":null}],"0.2.1":[{"comment_text":"","digests":{"blake2b_256":"fa3b84032b7dca3d7315b329db6681bbfe0872c2a46d62ca992a05f2d6a078e1","md5":"ce3fc46711fa8225a3d6a9566f95f875","sha256":"7dde95db92c8306c0a17e193bfb5ee20e71e16630ccc629db685e148b3aca3f6"},"downloads":-1,"filename":"agentops-0.2.1-py3-none-any.whl","has_sig":false,"md5_digest":"ce3fc46711fa8225a3d6a9566f95f875","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":36375,"upload_time":"2024-06-03T18:40:02","upload_time_iso_8601":"2024-06-03T18:40:02.820700Z","url":"https://files.pythonhosted.org/packages/fa/3b/84032b7dca3d7315b329db6681bbfe0872c2a46d62ca992a05f2d6a078e1/agentops-0.2.1-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"d6286ad330da5736588a54575fde95502006da58c3e9f4f15933f5876c1e1482","md5":"faa972c26a3e59fb6ca04f253165da22","sha256":"9f18a36a79c04e9c06f6e96aefe75f0fb1d08e562873315d6cb945488306e515"},"downloads":-1,"filename":"agentops-0.2.1.tar.gz","has_sig":false,"md5_digest":"faa972c26a3e59fb6ca04f253165da22","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":35784,"upload_time":"2024-06-03T18:40:05","upload_time_iso_8601":"2024-06-03T18:40:05.431174Z","url":"https://files.pythonhosted.org/packages/d6/28/6ad330da5736588a54575fde95502006da58c3e9f4f15933f5876c1e1482/agentops-0.2.1.tar.gz","yanked":false,"yanked_reason":null}],"0.2.2":[{"comment_text":"","digests":{"blake2b_256":"fbe73a57dd30e354b7bcc5a86908fc92aa16378035c69eb225ce254387940b5d","md5":"c24e4656bb6de14ffb9d810fe7872829","sha256":"57aab8a5d76a0dd7b1f0b14e90e778c42444eeaf5c48f2f387719735d7d840ee"},"downloads":-1,"filename":"agentops-0.2.2-py3-none-any.whl","has_sig":false,"md5_digest":"c24e4656bb6de14ffb9d810fe7872829","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":36588,"upload_time":"2024-06-05T19:30:29","upload_time_iso_8601":"2024-06-05T19:30:29.208415Z","url":"https://files.pythonhosted.org/packages/fb/e7/3a57dd30e354b7bcc5a86908fc92aa16378035c69eb225ce254387940b5d/agentops-0.2.2-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"89c51cbd038b9d2898b7f1b05943c338aa4aa9654d7e7763d8fa8d73a25fbfb6","md5":"401bfce001638cc26d7975f6534b5bab","sha256":"d4135c96ad7ec39c81015b3e33dfa977d2d846a685aba0d1922d2d6e3dca7fff"},"downloads":-1,"filename":"agentops-0.2.2.tar.gz","has_sig":false,"md5_digest":"401bfce001638cc26d7975f6534b5bab","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":36012,"upload_time":"2024-06-05T19:30:31","upload_time_iso_8601":"2024-06-05T19:30:31.173781Z","url":"https://files.pythonhosted.org/packages/89/c5/1cbd038b9d2898b7f1b05943c338aa4aa9654d7e7763d8fa8d73a25fbfb6/agentops-0.2.2.tar.gz","yanked":false,"yanked_reason":null}],"0.2.3":[{"comment_text":"","digests":{"blake2b_256":"b66fb36e2bb7158f45b6c496ce3cec50ef861e130cfa3ec8c62e709d63fa9e94","md5":"b3f6a8d97cc0129a9e4730b7810509c6","sha256":"a1829a21301223c26464cbc9da5bfba2f3750e21238912ee1d2f3097c358859a"},"downloads":-1,"filename":"agentops-0.2.3-py3-none-any.whl","has_sig":false,"md5_digest":"b3f6a8d97cc0129a9e4730b7810509c6","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":36986,"upload_time":"2024-06-13T19:56:33","upload_time_iso_8601":"2024-06-13T19:56:33.675807Z","url":"https://files.pythonhosted.org/packages/b6/6f/b36e2bb7158f45b6c496ce3cec50ef861e130cfa3ec8c62e709d63fa9e94/agentops-0.2.3-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"f4d34aed81a4ec4251131b94fb8ed4edf0823922bfda66ba0e4c43d9452111d2","md5":"466abe04d466a950d4bcebbe9c3ccc27","sha256":"b502b83bb4954386a28c4304028ba8cd2b45303f7e1f84720477b521267a3b4e"},"downloads":-1,"filename":"agentops-0.2.3.tar.gz","has_sig":false,"md5_digest":"466abe04d466a950d4bcebbe9c3ccc27","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":37024,"upload_time":"2024-06-13T19:56:35","upload_time_iso_8601":"2024-06-13T19:56:35.481794Z","url":"https://files.pythonhosted.org/packages/f4/d3/4aed81a4ec4251131b94fb8ed4edf0823922bfda66ba0e4c43d9452111d2/agentops-0.2.3.tar.gz","yanked":false,"yanked_reason":null}],"0.2.4":[{"comment_text":"","digests":{"blake2b_256":"a4d4e91fb66bc2eb7effb53f7d9481da04e60809d10240306452a8307aca7985","md5":"f1ba1befb6bd854d5fd6f670937dcb55","sha256":"96162c28cc0391011c04e654273e5a96ec4dcf015e27a7ac12a1ea4077d38950"},"downloads":-1,"filename":"agentops-0.2.4-py3-none-any.whl","has_sig":false,"md5_digest":"f1ba1befb6bd854d5fd6f670937dcb55","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":37518,"upload_time":"2024-06-24T19:31:58","upload_time_iso_8601":"2024-06-24T19:31:58.838680Z","url":"https://files.pythonhosted.org/packages/a4/d4/e91fb66bc2eb7effb53f7d9481da04e60809d10240306452a8307aca7985/agentops-0.2.4-py3-none-any.whl","yanked":true,"yanked_reason":"Potential + breaking change"},{"comment_text":"","digests":{"blake2b_256":"8e4b920629e08c956cdc74a31ab466d005eb13d86c2d58fa2d2bd261cf36c37b","md5":"527c82f21f01f13b879a1fca90ddb209","sha256":"d263de21eb40e15eb17adc31821fc0dee4ff4ca4501a9feb7ed376d473063208"},"downloads":-1,"filename":"agentops-0.2.4.tar.gz","has_sig":false,"md5_digest":"527c82f21f01f13b879a1fca90ddb209","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":37656,"upload_time":"2024-06-24T19:32:01","upload_time_iso_8601":"2024-06-24T19:32:01.155014Z","url":"https://files.pythonhosted.org/packages/8e/4b/920629e08c956cdc74a31ab466d005eb13d86c2d58fa2d2bd261cf36c37b/agentops-0.2.4.tar.gz","yanked":true,"yanked_reason":"Potential + breaking change"}],"0.2.5":[{"comment_text":"","digests":{"blake2b_256":"47c73ab9d7d971b664a9bdff6e6464afb6c1de8eb0f845d8de93eb036d5dcc60","md5":"bed576cc1591da4783777920fb223761","sha256":"ff87b82d1efaf50b10624e00c6e9334f4c16ffe08ec7f9889b4417c231c31471"},"downloads":-1,"filename":"agentops-0.2.5-py3-none-any.whl","has_sig":false,"md5_digest":"bed576cc1591da4783777920fb223761","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":37529,"upload_time":"2024-06-26T22:57:15","upload_time_iso_8601":"2024-06-26T22:57:15.646328Z","url":"https://files.pythonhosted.org/packages/47/c7/3ab9d7d971b664a9bdff6e6464afb6c1de8eb0f845d8de93eb036d5dcc60/agentops-0.2.5-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"31c48f2af30ae75dbdb4697506f80f76ce786f79014deb8c6679fa62962fdd6f","md5":"42def99798edfaf201fa6f62846e77c5","sha256":"6bad7aca37af6174307769550a53ec00824049a57e97b8868a9a213b2272adb4"},"downloads":-1,"filename":"agentops-0.2.5.tar.gz","has_sig":false,"md5_digest":"42def99798edfaf201fa6f62846e77c5","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":37703,"upload_time":"2024-06-26T22:57:17","upload_time_iso_8601":"2024-06-26T22:57:17.337904Z","url":"https://files.pythonhosted.org/packages/31/c4/8f2af30ae75dbdb4697506f80f76ce786f79014deb8c6679fa62962fdd6f/agentops-0.2.5.tar.gz","yanked":false,"yanked_reason":null}],"0.2.6":[{"comment_text":"","digests":{"blake2b_256":"5af2f90538b00d887c04a5570e8a3af4aef27a600a67c058a0ee6befafd60748","md5":"8ef3ed13ed582346b71648ca9df30f7c","sha256":"59e88000a9f108931fd68056f22def7a7f4b3015906de5791e777c23ba7dee52"},"downloads":-1,"filename":"agentops-0.2.6-py3-none-any.whl","has_sig":false,"md5_digest":"8ef3ed13ed582346b71648ca9df30f7c","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":37534,"upload_time":"2024-06-28T21:41:56","upload_time_iso_8601":"2024-06-28T21:41:56.933334Z","url":"https://files.pythonhosted.org/packages/5a/f2/f90538b00d887c04a5570e8a3af4aef27a600a67c058a0ee6befafd60748/agentops-0.2.6-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"bcf412c388dccc301ad54a501843ba5b5dd359575dcef9ac24c18a619a32214d","md5":"89a6b04f12801682b53ee0133593ce74","sha256":"7906a08c9154355484deb173b82631f9acddec3775b2d5e8ca946abdee27183b"},"downloads":-1,"filename":"agentops-0.2.6.tar.gz","has_sig":false,"md5_digest":"89a6b04f12801682b53ee0133593ce74","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":37874,"upload_time":"2024-06-28T21:41:59","upload_time_iso_8601":"2024-06-28T21:41:59.143953Z","url":"https://files.pythonhosted.org/packages/bc/f4/12c388dccc301ad54a501843ba5b5dd359575dcef9ac24c18a619a32214d/agentops-0.2.6.tar.gz","yanked":false,"yanked_reason":null}],"0.3.0":[{"comment_text":"","digests":{"blake2b_256":"b8e996f12ac457f46c370c6f70f344e975d534f2c92853703ee29802f0127024","md5":"d9c6995a843b49ac7eb6f500fa1f3c2a","sha256":"22aeb3355e66b32a2b2a9f676048b81979b2488feddb088f9266034b3ed50539"},"downloads":-1,"filename":"agentops-0.3.0-py3-none-any.whl","has_sig":false,"md5_digest":"d9c6995a843b49ac7eb6f500fa1f3c2a","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":39430,"upload_time":"2024-07-17T18:38:24","upload_time_iso_8601":"2024-07-17T18:38:24.763919Z","url":"https://files.pythonhosted.org/packages/b8/e9/96f12ac457f46c370c6f70f344e975d534f2c92853703ee29802f0127024/agentops-0.3.0-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"7e2d6fda9613562c0394d7ef3dd8f0cb9fc4ebaa8d413862fce33940c73564d6","md5":"8fa67ca01ca726e3bfcd66898313f33f","sha256":"6c0c08a57410fa5e826a7bafa1deeba9f7b3524709427d9e1abbd0964caaf76b"},"downloads":-1,"filename":"agentops-0.3.0.tar.gz","has_sig":false,"md5_digest":"8fa67ca01ca726e3bfcd66898313f33f","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":41734,"upload_time":"2024-07-17T18:38:26","upload_time_iso_8601":"2024-07-17T18:38:26.447237Z","url":"https://files.pythonhosted.org/packages/7e/2d/6fda9613562c0394d7ef3dd8f0cb9fc4ebaa8d413862fce33940c73564d6/agentops-0.3.0.tar.gz","yanked":false,"yanked_reason":null}],"0.3.10":[{"comment_text":"","digests":{"blake2b_256":"eb5e3ac36b33d3e95747d64effd509f66a9b3b76b47216b16f492e27d8d90b0c","md5":"6fade0b81fc65b2c79a869b5f240590b","sha256":"b304d366691281e08c1f02307aabdd551ae4f68b0de82bbbb4cf6f651af2dd16"},"downloads":-1,"filename":"agentops-0.3.10-py3-none-any.whl","has_sig":false,"md5_digest":"6fade0b81fc65b2c79a869b5f240590b","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":41201,"upload_time":"2024-08-19T20:51:49","upload_time_iso_8601":"2024-08-19T20:51:49.487947Z","url":"https://files.pythonhosted.org/packages/eb/5e/3ac36b33d3e95747d64effd509f66a9b3b76b47216b16f492e27d8d90b0c/agentops-0.3.10-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"8367ca0cb01df6b529f0127d23ec661e92c95ff68faf544439d86ec2331f3a52","md5":"639da9c2a3381cb3f62812bfe48a5e57","sha256":"40f895019f29bc5a6c023110cbec32870e5edb3e3926f8100974db8d3e299e2a"},"downloads":-1,"filename":"agentops-0.3.10.tar.gz","has_sig":false,"md5_digest":"639da9c2a3381cb3f62812bfe48a5e57","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":45332,"upload_time":"2024-08-19T20:51:50","upload_time_iso_8601":"2024-08-19T20:51:50.714217Z","url":"https://files.pythonhosted.org/packages/83/67/ca0cb01df6b529f0127d23ec661e92c95ff68faf544439d86ec2331f3a52/agentops-0.3.10.tar.gz","yanked":false,"yanked_reason":null}],"0.3.11":[{"comment_text":"","digests":{"blake2b_256":"0b078e6a74f084463def9d79d2c84d79475adc0229bbfb2e57401b0616ba6d6a","md5":"e760d867d9431d1bc13798024237ab99","sha256":"75fe10b8fc86c7f5c2633139ac1c06959611f22434fc1aaa8688c3c223fde8b5"},"downloads":-1,"filename":"agentops-0.3.11-py3-none-any.whl","has_sig":false,"md5_digest":"e760d867d9431d1bc13798024237ab99","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":50252,"upload_time":"2024-09-17T21:57:23","upload_time_iso_8601":"2024-09-17T21:57:23.085964Z","url":"https://files.pythonhosted.org/packages/0b/07/8e6a74f084463def9d79d2c84d79475adc0229bbfb2e57401b0616ba6d6a/agentops-0.3.11-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"3746057c552ea7ded5c954bdcbaf8a7dca07b6109633e040bf33de5f97a1289b","md5":"3b661fb76d343ec3bdef5b70fc9e5cc3","sha256":"38a2ffeeac1d722cb72c32d70e1c840424902b57934c647ef10de15478fe8f27"},"downloads":-1,"filename":"agentops-0.3.11.tar.gz","has_sig":false,"md5_digest":"3b661fb76d343ec3bdef5b70fc9e5cc3","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":48018,"upload_time":"2024-09-17T21:57:24","upload_time_iso_8601":"2024-09-17T21:57:24.699442Z","url":"https://files.pythonhosted.org/packages/37/46/057c552ea7ded5c954bdcbaf8a7dca07b6109633e040bf33de5f97a1289b/agentops-0.3.11.tar.gz","yanked":false,"yanked_reason":null}],"0.3.12":[{"comment_text":"","digests":{"blake2b_256":"ac0a9004d7a8c2865ed804ddd6968095ef100ac554bc51ada7a2f3c0b4e9142b","md5":"be18cdad4333c6013d9584b84b4c7875","sha256":"4767def30de5dd97397728efcb50398a4f6d6823c1b534846f0a9b0cb85a6d45"},"downloads":-1,"filename":"agentops-0.3.12-py3-none-any.whl","has_sig":false,"md5_digest":"be18cdad4333c6013d9584b84b4c7875","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":50794,"upload_time":"2024-09-23T19:30:49","upload_time_iso_8601":"2024-09-23T19:30:49.050650Z","url":"https://files.pythonhosted.org/packages/ac/0a/9004d7a8c2865ed804ddd6968095ef100ac554bc51ada7a2f3c0b4e9142b/agentops-0.3.12-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"2c6d4f640d9fadd22f8cd7cb9857eed1f56d422f11b130ba226b947454eb0f0b","md5":"91aa981d4199ac73b4d7407547667e2f","sha256":"11ce3048656b5d146d02a4890dd50c8d2801ca5ad5caccab17d573cd8eea6e83"},"downloads":-1,"filename":"agentops-0.3.12.tar.gz","has_sig":false,"md5_digest":"91aa981d4199ac73b4d7407547667e2f","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":48525,"upload_time":"2024-09-23T19:30:50","upload_time_iso_8601":"2024-09-23T19:30:50.568151Z","url":"https://files.pythonhosted.org/packages/2c/6d/4f640d9fadd22f8cd7cb9857eed1f56d422f11b130ba226b947454eb0f0b/agentops-0.3.12.tar.gz","yanked":false,"yanked_reason":null}],"0.3.13":[{"comment_text":"","digests":{"blake2b_256":"68efa3b8adc0de2e7daa1e6e2734af9a0e37c90e3346b8a804e3fdc322c82b6c","md5":"948e9278dfc02e1a6ba2ec563296779a","sha256":"81bfdfedd990fbc3064ee42a67422ddbee07b6cd96c5fca7e124eb8c1e0cebdc"},"downloads":-1,"filename":"agentops-0.3.13-py3-none-any.whl","has_sig":false,"md5_digest":"948e9278dfc02e1a6ba2ec563296779a","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":50813,"upload_time":"2024-10-02T18:32:59","upload_time_iso_8601":"2024-10-02T18:32:59.208892Z","url":"https://files.pythonhosted.org/packages/68/ef/a3b8adc0de2e7daa1e6e2734af9a0e37c90e3346b8a804e3fdc322c82b6c/agentops-0.3.13-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"3511fb06b4cee96285a5f745809d0f4efddef70d2a82112a633ed53834d6fc64","md5":"27a923eaceb4ae35abe2cf1aed1b8241","sha256":"319b7325fb79004ce996191aa21f0982489be22cc1acc2f3f6d02cdff1db2429"},"downloads":-1,"filename":"agentops-0.3.13.tar.gz","has_sig":false,"md5_digest":"27a923eaceb4ae35abe2cf1aed1b8241","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":48559,"upload_time":"2024-10-02T18:33:00","upload_time_iso_8601":"2024-10-02T18:33:00.614409Z","url":"https://files.pythonhosted.org/packages/35/11/fb06b4cee96285a5f745809d0f4efddef70d2a82112a633ed53834d6fc64/agentops-0.3.13.tar.gz","yanked":false,"yanked_reason":null}],"0.3.14":[{"comment_text":"","digests":{"blake2b_256":"1c2775ab5bf99341a6a02775e3858f54a18cbcda0f35b5c6c0f114a829d62b8e","md5":"ad2d676d293c4baa1f9afecc61654e50","sha256":"f4a2fcf1a7caf1d5383bfb66d8a9d567f3cb88fc7495cfd81ade167b0c06a4ea"},"downloads":-1,"filename":"agentops-0.3.14-py3-none-any.whl","has_sig":false,"md5_digest":"ad2d676d293c4baa1f9afecc61654e50","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":50825,"upload_time":"2024-10-14T23:53:48","upload_time_iso_8601":"2024-10-14T23:53:48.464714Z","url":"https://files.pythonhosted.org/packages/1c/27/75ab5bf99341a6a02775e3858f54a18cbcda0f35b5c6c0f114a829d62b8e/agentops-0.3.14-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"46cb183fdaf40ae97ac1806ba91f6f23d55dc0a1a5cdf0881a5c834c8ca7175a","md5":"b90053253770c8e1c385b18e7172d58f","sha256":"fcb515e5743d73efee851b687692bed74797dc88e29a8327b2bbfb21d73a7447"},"downloads":-1,"filename":"agentops-0.3.14.tar.gz","has_sig":false,"md5_digest":"b90053253770c8e1c385b18e7172d58f","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":48548,"upload_time":"2024-10-14T23:53:50","upload_time_iso_8601":"2024-10-14T23:53:50.306080Z","url":"https://files.pythonhosted.org/packages/46/cb/183fdaf40ae97ac1806ba91f6f23d55dc0a1a5cdf0881a5c834c8ca7175a/agentops-0.3.14.tar.gz","yanked":false,"yanked_reason":null}],"0.3.15":[{"comment_text":"","digests":{"blake2b_256":"eadebed95f173bd304abe219b2b0a6f4e1f8e38b6733b19f2444a30fe2e731e1","md5":"7a46ccd127ffcd52eff26edaf5721bd9","sha256":"d5617108bbd9871a4250415f4e536ba33c2a6a2d2bec9342046303fb9e839f9d"},"downloads":-1,"filename":"agentops-0.3.15-py3-none-any.whl","has_sig":false,"md5_digest":"7a46ccd127ffcd52eff26edaf5721bd9","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":55349,"upload_time":"2024-11-09T01:18:40","upload_time_iso_8601":"2024-11-09T01:18:40.622134Z","url":"https://files.pythonhosted.org/packages/ea/de/bed95f173bd304abe219b2b0a6f4e1f8e38b6733b19f2444a30fe2e731e1/agentops-0.3.15-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"33a40ef511dc3f23bba2d345b464223b1e7acc3c2a29230a93abb8fbcb6faebf","md5":"7af7abcf01e8d3ef64ac287e9300528f","sha256":"4358f85929d55929002cae589323d36b68fc4d12d0ea5010a80bfc4c7addc0ec"},"downloads":-1,"filename":"agentops-0.3.15.tar.gz","has_sig":false,"md5_digest":"7af7abcf01e8d3ef64ac287e9300528f","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":51296,"upload_time":"2024-11-09T01:18:42","upload_time_iso_8601":"2024-11-09T01:18:42.358185Z","url":"https://files.pythonhosted.org/packages/33/a4/0ef511dc3f23bba2d345b464223b1e7acc3c2a29230a93abb8fbcb6faebf/agentops-0.3.15.tar.gz","yanked":false,"yanked_reason":null}],"0.3.15rc1":[{"comment_text":"","digests":{"blake2b_256":"0978ac2f89ccb7b3a31742f5b70434953faff168da6cab67c0836f432919c762","md5":"7f805adf76594ac4bc169b1a111817f4","sha256":"86069387a265bc6c5fa00ffbb3f8a131254a51ee3a9b8b35af4aca823dee76f1"},"downloads":-1,"filename":"agentops-0.3.15rc1-py3-none-any.whl","has_sig":false,"md5_digest":"7f805adf76594ac4bc169b1a111817f4","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":50798,"upload_time":"2024-10-31T04:36:11","upload_time_iso_8601":"2024-10-31T04:36:11.059082Z","url":"https://files.pythonhosted.org/packages/09/78/ac2f89ccb7b3a31742f5b70434953faff168da6cab67c0836f432919c762/agentops-0.3.15rc1-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"4317d6950ad32c33317509ea05a64d01ab661515165ffbd4e120148826b69ffb","md5":"5f131294c10c9b60b33ec93edc106f4f","sha256":"897ab94ae4fca8f1711216f9317dbf6f14e5d018c866086ef0b8831dc125e4ad"},"downloads":-1,"filename":"agentops-0.3.15rc1.tar.gz","has_sig":false,"md5_digest":"5f131294c10c9b60b33ec93edc106f4f","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":48739,"upload_time":"2024-10-31T04:36:12","upload_time_iso_8601":"2024-10-31T04:36:12.630857Z","url":"https://files.pythonhosted.org/packages/43/17/d6950ad32c33317509ea05a64d01ab661515165ffbd4e120148826b69ffb/agentops-0.3.15rc1.tar.gz","yanked":false,"yanked_reason":null}],"0.3.16":[{"comment_text":"","digests":{"blake2b_256":"b876e1c933480ec9ad093a841321e5c9f7f16a0af59f339ba2c840851b1af01d","md5":"d57593bb32704fae1163656f03355a71","sha256":"7763e65efe053fa81cea2a2e16f015c7603365280972e0c0709eec32c3c8569e"},"downloads":-1,"filename":"agentops-0.3.16-py3-none-any.whl","has_sig":false,"md5_digest":"d57593bb32704fae1163656f03355a71","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":55351,"upload_time":"2024-11-09T18:44:21","upload_time_iso_8601":"2024-11-09T18:44:21.626158Z","url":"https://files.pythonhosted.org/packages/b8/76/e1c933480ec9ad093a841321e5c9f7f16a0af59f339ba2c840851b1af01d/agentops-0.3.16-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"aa748e77e654b37a5e0c977eca4f7e92740c1e24be39c827815e7bd8da429003","md5":"23078e1dc78ef459a667feeb904345c1","sha256":"564163eb048939d64e848c7e6caf25d6c0aee31200623ef97efe492f090f8939"},"downloads":-1,"filename":"agentops-0.3.16.tar.gz","has_sig":false,"md5_digest":"23078e1dc78ef459a667feeb904345c1","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":51308,"upload_time":"2024-11-09T18:44:23","upload_time_iso_8601":"2024-11-09T18:44:23.037514Z","url":"https://files.pythonhosted.org/packages/aa/74/8e77e654b37a5e0c977eca4f7e92740c1e24be39c827815e7bd8da429003/agentops-0.3.16.tar.gz","yanked":false,"yanked_reason":null}],"0.3.17":[{"comment_text":"","digests":{"blake2b_256":"6c3038a659671eec20fcae759bd69655ec45b08c4e875627b33e3b05bd46f299","md5":"93bbe3bd4ee492e7e73780c07897b017","sha256":"0d24dd082270a76c98ad0391101d5b5c3d01e389c5032389ecd551285e4b0662"},"downloads":-1,"filename":"agentops-0.3.17-py3-none-any.whl","has_sig":false,"md5_digest":"93bbe3bd4ee492e7e73780c07897b017","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":55503,"upload_time":"2024-11-10T02:39:28","upload_time_iso_8601":"2024-11-10T02:39:28.884052Z","url":"https://files.pythonhosted.org/packages/6c/30/38a659671eec20fcae759bd69655ec45b08c4e875627b33e3b05bd46f299/agentops-0.3.17-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"2131d9a3747df04b7915ee1cffaa4a5636f8ed0e1385e5236b0da085ccce936a","md5":"49e8cf186203cadaa39301c4ce5fda42","sha256":"a893cc7c37eda720ab59e8facaa2774cc23d125648aa00539ae485ff592e8b77"},"downloads":-1,"filename":"agentops-0.3.17.tar.gz","has_sig":false,"md5_digest":"49e8cf186203cadaa39301c4ce5fda42","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":51469,"upload_time":"2024-11-10T02:39:30","upload_time_iso_8601":"2024-11-10T02:39:30.636907Z","url":"https://files.pythonhosted.org/packages/21/31/d9a3747df04b7915ee1cffaa4a5636f8ed0e1385e5236b0da085ccce936a/agentops-0.3.17.tar.gz","yanked":false,"yanked_reason":null}],"0.3.18":[{"comment_text":"","digests":{"blake2b_256":"978dbd4cad95dad722dc2d3e4179feab1058ef846828c0e15e51e8bfaea373ee","md5":"d9afc3636cb969c286738ce02ed12196","sha256":"8b48d8a1662f276653430fd541c77fa4f9a15a43e881b518ff88ea56925afcf7"},"downloads":-1,"filename":"agentops-0.3.18-py3-none-any.whl","has_sig":false,"md5_digest":"d9afc3636cb969c286738ce02ed12196","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":58032,"upload_time":"2024-11-19T19:06:19","upload_time_iso_8601":"2024-11-19T19:06:19.068511Z","url":"https://files.pythonhosted.org/packages/97/8d/bd4cad95dad722dc2d3e4179feab1058ef846828c0e15e51e8bfaea373ee/agentops-0.3.18-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"c55246bb2f29b9e5f2e1d8b124296b7794934a9048de635d9e7d6a95e791ad7b","md5":"02a4fc081499360aac58485a94a6ca33","sha256":"4d509754df7be52579597cc9f53939c5218131a0379463e0ff6f6f40cde9fcc4"},"downloads":-1,"filename":"agentops-0.3.18.tar.gz","has_sig":false,"md5_digest":"02a4fc081499360aac58485a94a6ca33","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":55394,"upload_time":"2024-11-19T19:06:21","upload_time_iso_8601":"2024-11-19T19:06:21.306448Z","url":"https://files.pythonhosted.org/packages/c5/52/46bb2f29b9e5f2e1d8b124296b7794934a9048de635d9e7d6a95e791ad7b/agentops-0.3.18.tar.gz","yanked":false,"yanked_reason":null}],"0.3.19":[{"comment_text":"","digests":{"blake2b_256":"fc1e48616d2db40717d560a561e13521009655d447388f944f12f2b3811e6d7d","md5":"a9e23f1d31821585017e97633b058233","sha256":"1888a47dd3d9b92c5f246cdeeab333def5acbd26833d3148c63e8793457405b3"},"downloads":-1,"filename":"agentops-0.3.19-py3-none-any.whl","has_sig":false,"md5_digest":"a9e23f1d31821585017e97633b058233","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":38648,"upload_time":"2024-12-04T00:54:00","upload_time_iso_8601":"2024-12-04T00:54:00.173948Z","url":"https://files.pythonhosted.org/packages/fc/1e/48616d2db40717d560a561e13521009655d447388f944f12f2b3811e6d7d/agentops-0.3.19-py3-none-any.whl","yanked":true,"yanked_reason":"Broken + dependency, please install 0.3.18"},{"comment_text":"","digests":{"blake2b_256":"b319bb0e9895cb6da29f764f8d7b95b10ac8fde400bc17028f9bd486e9574dbe","md5":"f6424c41464d438007e9628748a0bea6","sha256":"ca0d4ba35ae699169ae20f74f72ca6a5780a8768ba2a2c32589fc5292ed81674"},"downloads":-1,"filename":"agentops-0.3.19.tar.gz","has_sig":false,"md5_digest":"f6424c41464d438007e9628748a0bea6","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":48360,"upload_time":"2024-12-04T00:54:01","upload_time_iso_8601":"2024-12-04T00:54:01.418776Z","url":"https://files.pythonhosted.org/packages/b3/19/bb0e9895cb6da29f764f8d7b95b10ac8fde400bc17028f9bd486e9574dbe/agentops-0.3.19.tar.gz","yanked":true,"yanked_reason":"Broken + dependency, please install 0.3.18"}],"0.3.2":[{"comment_text":"","digests":{"blake2b_256":"9d2c23b745a61d48df788b8020e5ea37e94f9da59b322a17accafe18d8cb4006","md5":"62d576d9518a627fe4232709c0721eff","sha256":"b35988e04378624204572bb3d7a454094f879ea573f05b57d4e75ab0bfbb82af"},"downloads":-1,"filename":"agentops-0.3.2-py3-none-any.whl","has_sig":false,"md5_digest":"62d576d9518a627fe4232709c0721eff","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":39527,"upload_time":"2024-07-21T03:09:56","upload_time_iso_8601":"2024-07-21T03:09:56.844372Z","url":"https://files.pythonhosted.org/packages/9d/2c/23b745a61d48df788b8020e5ea37e94f9da59b322a17accafe18d8cb4006/agentops-0.3.2-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"d2a1cc21406646c065e83435fe30fa205b99b2204d8074eca31926a5f8ef4381","md5":"30b247bcae25b181485a89213518241c","sha256":"55559ac4a43634831dfa8937c2597c28e332809dc7c6bb3bc3c8b233442e224c"},"downloads":-1,"filename":"agentops-0.3.2.tar.gz","has_sig":false,"md5_digest":"30b247bcae25b181485a89213518241c","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":41894,"upload_time":"2024-07-21T03:09:58","upload_time_iso_8601":"2024-07-21T03:09:58.409826Z","url":"https://files.pythonhosted.org/packages/d2/a1/cc21406646c065e83435fe30fa205b99b2204d8074eca31926a5f8ef4381/agentops-0.3.2.tar.gz","yanked":false,"yanked_reason":null}],"0.3.20":[{"comment_text":"","digests":{"blake2b_256":"a854ae9147a490dd9bd03ab7bfc5af47f40ff675840a9aa143896b385a8f8d3a","md5":"a13af8737ddff8a0c7c0f05cee70085f","sha256":"b5396e11b0bfef46b85604e8e36ab17668057711edd56f1edb0a067b8676fdcc"},"downloads":-1,"filename":"agentops-0.3.20-py3-none-any.whl","has_sig":false,"md5_digest":"a13af8737ddff8a0c7c0f05cee70085f","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":38674,"upload_time":"2024-12-07T00:06:31","upload_time_iso_8601":"2024-12-07T00:06:31.901162Z","url":"https://files.pythonhosted.org/packages/a8/54/ae9147a490dd9bd03ab7bfc5af47f40ff675840a9aa143896b385a8f8d3a/agentops-0.3.20-py3-none-any.whl","yanked":true,"yanked_reason":"Wrong + release"},{"comment_text":"","digests":{"blake2b_256":"c1eb19d04c801854ba75e235eb87c51a6a9c5b1a89e8579cb745c83f8bf84e08","md5":"11754497191d8340eda7a831720d9b74","sha256":"c71406294804a82795310a4afc492064a8884b1ba47e12607230975bc1291ce3"},"downloads":-1,"filename":"agentops-0.3.20.tar.gz","has_sig":false,"md5_digest":"11754497191d8340eda7a831720d9b74","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":48332,"upload_time":"2024-12-07T00:06:33","upload_time_iso_8601":"2024-12-07T00:06:33.568362Z","url":"https://files.pythonhosted.org/packages/c1/eb/19d04c801854ba75e235eb87c51a6a9c5b1a89e8579cb745c83f8bf84e08/agentops-0.3.20.tar.gz","yanked":true,"yanked_reason":"Wrong + release"}],"0.3.20rc1":[{"comment_text":"","digests":{"blake2b_256":"073de7eba58e2a60c0136eee2760b20f99607001d372de26505feee891e0976b","md5":"73c6ac515ee9d555e27a7ba7e26e3a46","sha256":"079ea8138938e27a3e1319a235a6f4cf98c0d6846731d854aa83b8422d570bda"},"downloads":-1,"filename":"agentops-0.3.20rc1-py3-none-any.whl","has_sig":false,"md5_digest":"73c6ac515ee9d555e27a7ba7e26e3a46","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":38718,"upload_time":"2024-12-07T00:10:18","upload_time_iso_8601":"2024-12-07T00:10:18.796963Z","url":"https://files.pythonhosted.org/packages/07/3d/e7eba58e2a60c0136eee2760b20f99607001d372de26505feee891e0976b/agentops-0.3.20rc1-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"02ff111d618c21aad946caedb666030f1f374a0d558228b9061ea2b46acb6bcd","md5":"17062e985b931dc85b4855922d7842ce","sha256":"ef48447e07a3eded246b2f7e10bba74422a34563ffdc667ac16b2d3383475a3f"},"downloads":-1,"filename":"agentops-0.3.20rc1.tar.gz","has_sig":false,"md5_digest":"17062e985b931dc85b4855922d7842ce","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":48329,"upload_time":"2024-12-07T00:10:20","upload_time_iso_8601":"2024-12-07T00:10:20.510407Z","url":"https://files.pythonhosted.org/packages/02/ff/111d618c21aad946caedb666030f1f374a0d558228b9061ea2b46acb6bcd/agentops-0.3.20rc1.tar.gz","yanked":false,"yanked_reason":null}],"0.3.20rc10":[{"comment_text":"","digests":{"blake2b_256":"a7274706d8d9c8f4abecc1dda2b9b02cd02ffe895220bd39f58322a46ccc7254","md5":"2c66a93c691c6b8cac2f2dc8fab9efae","sha256":"3c10d77f2fe88b61d97ad007820c1ba968c62f692986ea2b2cbfd8b22ec9e5bc"},"downloads":-1,"filename":"agentops-0.3.20rc10-py3-none-any.whl","has_sig":false,"md5_digest":"2c66a93c691c6b8cac2f2dc8fab9efae","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":57423,"upload_time":"2024-12-10T03:41:04","upload_time_iso_8601":"2024-12-10T03:41:04.579814Z","url":"https://files.pythonhosted.org/packages/a7/27/4706d8d9c8f4abecc1dda2b9b02cd02ffe895220bd39f58322a46ccc7254/agentops-0.3.20rc10-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"efe9e304f465945f57e4c6d35cd35fff53dc2a2e36b9b32793fa57017467b0c2","md5":"9882d32866b94d925ba36ac376c30bea","sha256":"f0c72c20e7fe41054c22c6257420314863549dd91428a892ac9b47b81cdfcc8c"},"downloads":-1,"filename":"agentops-0.3.20rc10.tar.gz","has_sig":false,"md5_digest":"9882d32866b94d925ba36ac376c30bea","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":57564,"upload_time":"2024-12-10T03:41:06","upload_time_iso_8601":"2024-12-10T03:41:06.899043Z","url":"https://files.pythonhosted.org/packages/ef/e9/e304f465945f57e4c6d35cd35fff53dc2a2e36b9b32793fa57017467b0c2/agentops-0.3.20rc10.tar.gz","yanked":false,"yanked_reason":null}],"0.3.20rc11":[{"comment_text":"","digests":{"blake2b_256":"8dbf598ec2532b713a228f4041c9b2c10358cd43e6aecf6128d0988a0b5f103e","md5":"d9ab67a850aefcb5bf9467b48f74675d","sha256":"3e5d4c19de6c58ae684693f47a2f03db35eaf4cd6d8aafc1e804a134462c2b55"},"downloads":-1,"filename":"agentops-0.3.20rc11-py3-none-any.whl","has_sig":false,"md5_digest":"d9ab67a850aefcb5bf9467b48f74675d","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":60280,"upload_time":"2024-12-10T22:45:05","upload_time_iso_8601":"2024-12-10T22:45:05.280119Z","url":"https://files.pythonhosted.org/packages/8d/bf/598ec2532b713a228f4041c9b2c10358cd43e6aecf6128d0988a0b5f103e/agentops-0.3.20rc11-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"210642e51fff6a4537fb811a15bc22d00343145285c6246dc069433d61436e1b","md5":"ca5279f4cb6ad82e06ef542a2d08d06e","sha256":"9211489c6a01bc9cda4061826f8b80d0989cfcd7fbabe1dd2ed5a5cb76b3d6f0"},"downloads":-1,"filename":"agentops-0.3.20rc11.tar.gz","has_sig":false,"md5_digest":"ca5279f4cb6ad82e06ef542a2d08d06e","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":59718,"upload_time":"2024-12-10T22:45:09","upload_time_iso_8601":"2024-12-10T22:45:09.616947Z","url":"https://files.pythonhosted.org/packages/21/06/42e51fff6a4537fb811a15bc22d00343145285c6246dc069433d61436e1b/agentops-0.3.20rc11.tar.gz","yanked":false,"yanked_reason":null}],"0.3.20rc12":[{"comment_text":"","digests":{"blake2b_256":"dc281db6f49f10ac849683de1d7f5b5ef492be2a996325302167b8388f375d51","md5":"8b2611d2510f0d4fac7ab824d7658ff7","sha256":"9237652d28db89315c49c0705829b291c17280e07d41272f909e2609acec650b"},"downloads":-1,"filename":"agentops-0.3.20rc12-py3-none-any.whl","has_sig":false,"md5_digest":"8b2611d2510f0d4fac7ab824d7658ff7","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":60282,"upload_time":"2024-12-10T23:10:54","upload_time_iso_8601":"2024-12-10T23:10:54.516317Z","url":"https://files.pythonhosted.org/packages/dc/28/1db6f49f10ac849683de1d7f5b5ef492be2a996325302167b8388f375d51/agentops-0.3.20rc12-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"10c073cb9a55592f55bb44c9206f50f41d7b7a8a8d6fd67d42f40c8f9f184b0e","md5":"02b3a68f3491564af2e29f0f216eea1e","sha256":"d4d3a73ac34b2a00edb6e6b5b220cbb031bb76ff58d85e2096b536be24aee4fe"},"downloads":-1,"filename":"agentops-0.3.20rc12.tar.gz","has_sig":false,"md5_digest":"02b3a68f3491564af2e29f0f216eea1e","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":59731,"upload_time":"2024-12-10T23:10:56","upload_time_iso_8601":"2024-12-10T23:10:56.822803Z","url":"https://files.pythonhosted.org/packages/10/c0/73cb9a55592f55bb44c9206f50f41d7b7a8a8d6fd67d42f40c8f9f184b0e/agentops-0.3.20rc12.tar.gz","yanked":false,"yanked_reason":null}],"0.3.20rc13":[{"comment_text":"","digests":{"blake2b_256":"4ed48a97563074235f266281167c70ab90833c195e2b704087e414509ae3ec32","md5":"c86fe22044483f94bc044a3bf7b054b7","sha256":"2fbb3b55701d9aea64f622e7e29aa417772e897e2414f74ed3954d99009d224f"},"downloads":-1,"filename":"agentops-0.3.20rc13-py3-none-any.whl","has_sig":false,"md5_digest":"c86fe22044483f94bc044a3bf7b054b7","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":64724,"upload_time":"2024-12-10T23:27:50","upload_time_iso_8601":"2024-12-10T23:27:50.895316Z","url":"https://files.pythonhosted.org/packages/4e/d4/8a97563074235f266281167c70ab90833c195e2b704087e414509ae3ec32/agentops-0.3.20rc13-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"767e59c6f34e9a067d9152021de7e3146e5c0f69f36434dcb3026ff03f382489","md5":"152a70647d5ff28fe851e4cc406d8fb4","sha256":"b7a6d1d7f603bbb2605cc747762ae866bdee53941c4c76087c9f0f0a5efad03b"},"downloads":-1,"filename":"agentops-0.3.20rc13.tar.gz","has_sig":false,"md5_digest":"152a70647d5ff28fe851e4cc406d8fb4","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":63242,"upload_time":"2024-12-10T23:27:53","upload_time_iso_8601":"2024-12-10T23:27:53.657606Z","url":"https://files.pythonhosted.org/packages/76/7e/59c6f34e9a067d9152021de7e3146e5c0f69f36434dcb3026ff03f382489/agentops-0.3.20rc13.tar.gz","yanked":false,"yanked_reason":null}],"0.3.20rc2":[{"comment_text":"","digests":{"blake2b_256":"cebbbca58531e21f4c1c92cbe6ba15d0f308ff8f3b27083cd0ce6358c7d1d117","md5":"5a9fcd99e0b6e3b24e721b22c3ee5907","sha256":"ada95d42e82abef16c1e83443dc42d02bb470ee48b1fa8f2d58a20703511a7be"},"downloads":-1,"filename":"agentops-0.3.20rc2-py3-none-any.whl","has_sig":false,"md5_digest":"5a9fcd99e0b6e3b24e721b22c3ee5907","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":38716,"upload_time":"2024-12-07T00:20:01","upload_time_iso_8601":"2024-12-07T00:20:01.561074Z","url":"https://files.pythonhosted.org/packages/ce/bb/bca58531e21f4c1c92cbe6ba15d0f308ff8f3b27083cd0ce6358c7d1d117/agentops-0.3.20rc2-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"124aec14492566949b7383ae321cb40c1edc18940712b277c08d32392566f7a8","md5":"ff8db0075584474e35784b080fb9b6b1","sha256":"60462b82390e78fd21312c5db45f0f48dfcc9c9ab354e6bf232db557ccf57c13"},"downloads":-1,"filename":"agentops-0.3.20rc2.tar.gz","has_sig":false,"md5_digest":"ff8db0075584474e35784b080fb9b6b1","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":48341,"upload_time":"2024-12-07T00:20:02","upload_time_iso_8601":"2024-12-07T00:20:02.519240Z","url":"https://files.pythonhosted.org/packages/12/4a/ec14492566949b7383ae321cb40c1edc18940712b277c08d32392566f7a8/agentops-0.3.20rc2.tar.gz","yanked":false,"yanked_reason":null}],"0.3.20rc4":[{"comment_text":"","digests":{"blake2b_256":"a1551125b2b3823fcb3f3afa3c6b9621541799ac329622ee21038babbfbedf39","md5":"a82f1b73347d3a2fe33f31cec01ca376","sha256":"72253950b46a11b5b1163b13bbb9d5b769e6cdb7b102acf46efac8cf02f7eaac"},"downloads":-1,"filename":"agentops-0.3.20rc4-py3-none-any.whl","has_sig":false,"md5_digest":"a82f1b73347d3a2fe33f31cec01ca376","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":38719,"upload_time":"2024-12-07T00:53:45","upload_time_iso_8601":"2024-12-07T00:53:45.212239Z","url":"https://files.pythonhosted.org/packages/a1/55/1125b2b3823fcb3f3afa3c6b9621541799ac329622ee21038babbfbedf39/agentops-0.3.20rc4-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"a180420ef26926052b12d1c2010360b4037f6765321055ce7e09c6bfaeac3480","md5":"1a314ff81d87a774e5e1cf338151a353","sha256":"4218fcfa42644dd86ee50ac7806d08783e4629db30b127bc8011c9c3523eeb5c"},"downloads":-1,"filename":"agentops-0.3.20rc4.tar.gz","has_sig":false,"md5_digest":"1a314ff81d87a774e5e1cf338151a353","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":48332,"upload_time":"2024-12-07T00:53:47","upload_time_iso_8601":"2024-12-07T00:53:47.581677Z","url":"https://files.pythonhosted.org/packages/a1/80/420ef26926052b12d1c2010360b4037f6765321055ce7e09c6bfaeac3480/agentops-0.3.20rc4.tar.gz","yanked":false,"yanked_reason":null}],"0.3.20rc5":[{"comment_text":"","digests":{"blake2b_256":"7747e61c5387124f53a3095261427888ab88e192828e3bb8be92660bf4e008d0","md5":"fd7343ddf99f077d1a159b87d84ed79c","sha256":"97df38116ec7fe337fc04b800e423aa8b5e69681565c02dc4af3e9c60764827e"},"downloads":-1,"filename":"agentops-0.3.20rc5-py3-none-any.whl","has_sig":false,"md5_digest":"fd7343ddf99f077d1a159b87d84ed79c","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":44545,"upload_time":"2024-12-07T01:38:17","upload_time_iso_8601":"2024-12-07T01:38:17.177125Z","url":"https://files.pythonhosted.org/packages/77/47/e61c5387124f53a3095261427888ab88e192828e3bb8be92660bf4e008d0/agentops-0.3.20rc5-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"145fa0bf5ee5b56dacf63b9712ac62169c585c6222efe043cc77f3148f709965","md5":"20a32d514b5d51851dbcbdfb2c189491","sha256":"48111083dab1fc30f0545e0812c4aab00fc9e9d48de42de95d254699396992a8"},"downloads":-1,"filename":"agentops-0.3.20rc5.tar.gz","has_sig":false,"md5_digest":"20a32d514b5d51851dbcbdfb2c189491","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":53243,"upload_time":"2024-12-07T01:38:18","upload_time_iso_8601":"2024-12-07T01:38:18.772880Z","url":"https://files.pythonhosted.org/packages/14/5f/a0bf5ee5b56dacf63b9712ac62169c585c6222efe043cc77f3148f709965/agentops-0.3.20rc5.tar.gz","yanked":false,"yanked_reason":null}],"0.3.20rc6":[{"comment_text":"","digests":{"blake2b_256":"85f3a5ae3d8d47aa5160a5c805551d75077cad61bff9626abe44079d29d1c299","md5":"30f87c628c530e82e27b8bc2d2a46d8a","sha256":"d03f16832b3a5670d9c3273b95c9d9def772c203b2cd4ac52ae0e7f6d3b1b9e4"},"downloads":-1,"filename":"agentops-0.3.20rc6-py3-none-any.whl","has_sig":false,"md5_digest":"30f87c628c530e82e27b8bc2d2a46d8a","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":61844,"upload_time":"2024-12-07T01:49:11","upload_time_iso_8601":"2024-12-07T01:49:11.801219Z","url":"https://files.pythonhosted.org/packages/85/f3/a5ae3d8d47aa5160a5c805551d75077cad61bff9626abe44079d29d1c299/agentops-0.3.20rc6-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"060e24f42ed1de3d892355f3ba90f0b7f659855fafd18851e59aa7174fa30615","md5":"384c60ee11b827b8bad31cef20a35a17","sha256":"45aa4797269214d41858537d95050964f330651da5c7412b2895e714a81f30f5"},"downloads":-1,"filename":"agentops-0.3.20rc6.tar.gz","has_sig":false,"md5_digest":"384c60ee11b827b8bad31cef20a35a17","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":61004,"upload_time":"2024-12-07T01:49:13","upload_time_iso_8601":"2024-12-07T01:49:13.917920Z","url":"https://files.pythonhosted.org/packages/06/0e/24f42ed1de3d892355f3ba90f0b7f659855fafd18851e59aa7174fa30615/agentops-0.3.20rc6.tar.gz","yanked":false,"yanked_reason":null}],"0.3.20rc7":[{"comment_text":"","digests":{"blake2b_256":"d502edf7ba8aff1a994176da4c95688c9ba0428ac3bd9a0db2392fe5009162a9","md5":"9b43c5e2df12abac01ffc5262e991825","sha256":"95972115c5c753ceee477834de902afaf0664107048e44eee2c65e74e05656a2"},"downloads":-1,"filename":"agentops-0.3.20rc7-py3-none-any.whl","has_sig":false,"md5_digest":"9b43c5e2df12abac01ffc5262e991825","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":40117,"upload_time":"2024-12-07T02:12:48","upload_time_iso_8601":"2024-12-07T02:12:48.512036Z","url":"https://files.pythonhosted.org/packages/d5/02/edf7ba8aff1a994176da4c95688c9ba0428ac3bd9a0db2392fe5009162a9/agentops-0.3.20rc7-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"5d7029d8d02fcf6db627c6b20ceab974c455e23a25fc0e991c0a8d0eaebda523","md5":"9de760856bed3f7adbd1d0ab7ba0a63a","sha256":"7c793b7b199a61ca61366ddb8fd94986fac262ef6514918c3baaa08184b86669"},"downloads":-1,"filename":"agentops-0.3.20rc7.tar.gz","has_sig":false,"md5_digest":"9de760856bed3f7adbd1d0ab7ba0a63a","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":49661,"upload_time":"2024-12-07T02:12:50","upload_time_iso_8601":"2024-12-07T02:12:50.120388Z","url":"https://files.pythonhosted.org/packages/5d/70/29d8d02fcf6db627c6b20ceab974c455e23a25fc0e991c0a8d0eaebda523/agentops-0.3.20rc7.tar.gz","yanked":false,"yanked_reason":null}],"0.3.20rc8":[{"comment_text":"","digests":{"blake2b_256":"6d0f66418c0b20f40fe11de50f29481abdb266ff641ac6166eab9eac3d7364d2","md5":"52a2cea48e48d1818169c07507a6c7a9","sha256":"8cf2e9fe6400a4fb4367a039cacc5d76339a8fd2749a44243389547e928e545c"},"downloads":-1,"filename":"agentops-0.3.20rc8-py3-none-any.whl","has_sig":false,"md5_digest":"52a2cea48e48d1818169c07507a6c7a9","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":57414,"upload_time":"2024-12-07T02:17:51","upload_time_iso_8601":"2024-12-07T02:17:51.404804Z","url":"https://files.pythonhosted.org/packages/6d/0f/66418c0b20f40fe11de50f29481abdb266ff641ac6166eab9eac3d7364d2/agentops-0.3.20rc8-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"4d18250b066f23ccbb22f2bba8df101361abd5724ddcef59a4d63d4539c7cd82","md5":"f7887176e88d4434e38e237850363b80","sha256":"a06e7939dd4d59c9880ded1b129fd4548b34be5530a46cf043326740bdfeca56"},"downloads":-1,"filename":"agentops-0.3.20rc8.tar.gz","has_sig":false,"md5_digest":"f7887176e88d4434e38e237850363b80","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":57521,"upload_time":"2024-12-07T02:17:53","upload_time_iso_8601":"2024-12-07T02:17:53.055737Z","url":"https://files.pythonhosted.org/packages/4d/18/250b066f23ccbb22f2bba8df101361abd5724ddcef59a4d63d4539c7cd82/agentops-0.3.20rc8.tar.gz","yanked":false,"yanked_reason":null}],"0.3.21":[{"comment_text":"","digests":{"blake2b_256":"c4cb3b6cc5a08d11d9e56501f980222da0fa41814b7d6948a7f6354f31739af6","md5":"c7592f9e7993dbe307fbffd7e4da1e51","sha256":"4f98beecdce4c7cbee80ec26658a9657ba307a1fb2910b589f85325d3259b75b"},"downloads":-1,"filename":"agentops-0.3.21-py3-none-any.whl","has_sig":false,"md5_digest":"c7592f9e7993dbe307fbffd7e4da1e51","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":64701,"upload_time":"2024-12-11T12:24:00","upload_time_iso_8601":"2024-12-11T12:24:00.934724Z","url":"https://files.pythonhosted.org/packages/c4/cb/3b6cc5a08d11d9e56501f980222da0fa41814b7d6948a7f6354f31739af6/agentops-0.3.21-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"83f6bfd27fa4b948c353eaff579dafdf4eb54833f5c526e00c6f2faee4b467a8","md5":"83d7666511cccf3b0d4354cebd99b110","sha256":"d8e8d1f6d154554dba64ec5b139905bf76c68f21575af9fa2ca1697277fe36f2"},"downloads":-1,"filename":"agentops-0.3.21.tar.gz","has_sig":false,"md5_digest":"83d7666511cccf3b0d4354cebd99b110","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":63185,"upload_time":"2024-12-11T12:24:02","upload_time_iso_8601":"2024-12-11T12:24:02.068404Z","url":"https://files.pythonhosted.org/packages/83/f6/bfd27fa4b948c353eaff579dafdf4eb54833f5c526e00c6f2faee4b467a8/agentops-0.3.21.tar.gz","yanked":false,"yanked_reason":null}],"0.3.22":[{"comment_text":"","digests":{"blake2b_256":"11e721b42168ecfd0a9fff9dea51201646b6e62c4f52c8cd9c2a6400125d7234","md5":"26061ab467e358b63251f9547275bbbd","sha256":"992f4f31d80e8b0b2098abf58ae2707c60538e4b66e5aec8cf49fb269d5a2adc"},"downloads":-1,"filename":"agentops-0.3.22-py3-none-any.whl","has_sig":false,"md5_digest":"26061ab467e358b63251f9547275bbbd","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":39539,"upload_time":"2025-01-11T03:21:39","upload_time_iso_8601":"2025-01-11T03:21:39.093169Z","url":"https://files.pythonhosted.org/packages/11/e7/21b42168ecfd0a9fff9dea51201646b6e62c4f52c8cd9c2a6400125d7234/agentops-0.3.22-py3-none-any.whl","yanked":true,"yanked_reason":"Broken + dependency"},{"comment_text":"","digests":{"blake2b_256":"e067e61aa4c2e329da10b5e95d325091e599d8a00a28843a54bdcefa7a2eef8d","md5":"bcf45b6c4c56884ed2409f835571af62","sha256":"705d772b6994f8bab0cd163b24602009353f7906c72d9db008af11683f6e9341"},"downloads":-1,"filename":"agentops-0.3.22.tar.gz","has_sig":false,"md5_digest":"bcf45b6c4c56884ed2409f835571af62","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":52845,"upload_time":"2025-01-11T03:21:41","upload_time_iso_8601":"2025-01-11T03:21:41.762282Z","url":"https://files.pythonhosted.org/packages/e0/67/e61aa4c2e329da10b5e95d325091e599d8a00a28843a54bdcefa7a2eef8d/agentops-0.3.22.tar.gz","yanked":true,"yanked_reason":"Broken + dependency"}],"0.3.23":[{"comment_text":null,"digests":{"blake2b_256":"e67de1434765cf0a3d62372b74f47919aa17c0b01909823f7d3ee705edf821a9","md5":"1f0f02509b8ba713db72e57a072f01a6","sha256":"ecfff77d8f9006361ef2a2e8593271e97eb54b7b504abfb8abd6504006baca56"},"downloads":-1,"filename":"agentops-0.3.23-py3-none-any.whl","has_sig":false,"md5_digest":"1f0f02509b8ba713db72e57a072f01a6","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":70098,"upload_time":"2025-01-12T02:11:56","upload_time_iso_8601":"2025-01-12T02:11:56.319763Z","url":"https://files.pythonhosted.org/packages/e6/7d/e1434765cf0a3d62372b74f47919aa17c0b01909823f7d3ee705edf821a9/agentops-0.3.23-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"5c7fa4fd91f8fd819e1ecfdc608d1c7ade83de0f9dddd868e2c2c139a2fdae25","md5":"b7922399f81fb26517eb69fc7fef97c9","sha256":"4e4de49caeaf567b8746082f84a8cdd65afe2c698720f6f40251bbc4fdffe4c9"},"downloads":-1,"filename":"agentops-0.3.23.tar.gz","has_sig":false,"md5_digest":"b7922399f81fb26517eb69fc7fef97c9","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":64225,"upload_time":"2025-01-12T02:11:59","upload_time_iso_8601":"2025-01-12T02:11:59.360077Z","url":"https://files.pythonhosted.org/packages/5c/7f/a4fd91f8fd819e1ecfdc608d1c7ade83de0f9dddd868e2c2c139a2fdae25/agentops-0.3.23.tar.gz","yanked":false,"yanked_reason":null}],"0.3.24":[{"comment_text":null,"digests":{"blake2b_256":"254ea7d131802bac2ece5302ebf78dcef1ba1ba2f8b3a51fbe44c7f52bae6a53","md5":"39c39d8a7f1285add0fec21830a89a4a","sha256":"c5dfc8098b0dd49ddd819aa55280d07f8bfbf2f8fa088fc51ff5849b65062b10"},"downloads":-1,"filename":"agentops-0.3.24-py3-none-any.whl","has_sig":false,"md5_digest":"39c39d8a7f1285add0fec21830a89a4a","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":71957,"upload_time":"2025-01-18T19:08:02","upload_time_iso_8601":"2025-01-18T19:08:02.053316Z","url":"https://files.pythonhosted.org/packages/25/4e/a7d131802bac2ece5302ebf78dcef1ba1ba2f8b3a51fbe44c7f52bae6a53/agentops-0.3.24-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"71fee96e22c4bf762f34cd5ba435880470dad4576ab357ee61742fe053752322","md5":"3e1b7e0a31197936e099a7509128f794","sha256":"c97a3af959b728bcfbfb1ac2494cef82d8804defc9dac858648b39a9ecdcd2e4"},"downloads":-1,"filename":"agentops-0.3.24.tar.gz","has_sig":false,"md5_digest":"3e1b7e0a31197936e099a7509128f794","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":233974,"upload_time":"2025-01-18T19:08:04","upload_time_iso_8601":"2025-01-18T19:08:04.121618Z","url":"https://files.pythonhosted.org/packages/71/fe/e96e22c4bf762f34cd5ba435880470dad4576ab357ee61742fe053752322/agentops-0.3.24.tar.gz","yanked":false,"yanked_reason":null}],"0.3.25":[{"comment_text":null,"digests":{"blake2b_256":"e6e39cff4ed65c5deac34f427ed60cd7af3604ec7ed8a999c351f6411e190d3b","md5":"328dedc417be02fc28f8a4c7ed7b52e9","sha256":"4faebf73a62aa0bcac8578428277ca5b9af5e828f49f2cb03a9695b8426e6b9d"},"downloads":-1,"filename":"agentops-0.3.25-py3-none-any.whl","has_sig":false,"md5_digest":"328dedc417be02fc28f8a4c7ed7b52e9","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":71971,"upload_time":"2025-01-22T10:43:16","upload_time_iso_8601":"2025-01-22T10:43:16.070593Z","url":"https://files.pythonhosted.org/packages/e6/e3/9cff4ed65c5deac34f427ed60cd7af3604ec7ed8a999c351f6411e190d3b/agentops-0.3.25-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"2fdfeb00eaabebb51feae0724a5928f25df4d71d1c8392204f4f849351fd748c","md5":"a40bc7037baf6dbba92d63331f561a28","sha256":"868d855b6531d1fa2d1047db2cb03ddb1121062fd51c44b564dc626f15cc1e40"},"downloads":-1,"filename":"agentops-0.3.25.tar.gz","has_sig":false,"md5_digest":"a40bc7037baf6dbba92d63331f561a28","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":234024,"upload_time":"2025-01-22T10:43:17","upload_time_iso_8601":"2025-01-22T10:43:17.986230Z","url":"https://files.pythonhosted.org/packages/2f/df/eb00eaabebb51feae0724a5928f25df4d71d1c8392204f4f849351fd748c/agentops-0.3.25.tar.gz","yanked":false,"yanked_reason":null}],"0.3.26":[{"comment_text":null,"digests":{"blake2b_256":"f521671c458951850bd3a445aa09eafd2793aae1104fa68351a5c3976cdf762b","md5":"c3f8fa92ff5a94a37516e774c7f58b9a","sha256":"20948f52e3ffb4ba1d52301c3a82e59490182c4dad22774ad831dce0181eb5c2"},"downloads":-1,"filename":"agentops-0.3.26-py3-none-any.whl","has_sig":false,"md5_digest":"c3f8fa92ff5a94a37516e774c7f58b9a","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":72090,"upload_time":"2025-01-24T23:44:06","upload_time_iso_8601":"2025-01-24T23:44:06.828461Z","url":"https://files.pythonhosted.org/packages/f5/21/671c458951850bd3a445aa09eafd2793aae1104fa68351a5c3976cdf762b/agentops-0.3.26-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"76a1b03c6348a77798e750bde4eec03b4af620d71b9e4b64ff7dcf0860025a2d","md5":"ba4d0f2411ec72828677b38a395465cc","sha256":"bc824bf8727332f59bf803cf84440d13e9e398406222ab29f45909ac1e39f815"},"downloads":-1,"filename":"agentops-0.3.26.tar.gz","has_sig":false,"md5_digest":"ba4d0f2411ec72828677b38a395465cc","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":234235,"upload_time":"2025-01-24T23:44:08","upload_time_iso_8601":"2025-01-24T23:44:08.541961Z","url":"https://files.pythonhosted.org/packages/76/a1/b03c6348a77798e750bde4eec03b4af620d71b9e4b64ff7dcf0860025a2d/agentops-0.3.26.tar.gz","yanked":false,"yanked_reason":null}],"0.3.4":[{"comment_text":"","digests":{"blake2b_256":"52f32bd714234ec345153c0fcbc9e4896c306c347f3fb66a3aa6d6fc109a7243","md5":"c7a975a86900f7dbe6861a21fdd3c2d8","sha256":"126f7aed4ba43c1399b5488d67a03d10cb4c531e619c650776f826ca00c1aa24"},"downloads":-1,"filename":"agentops-0.3.4-py3-none-any.whl","has_sig":false,"md5_digest":"c7a975a86900f7dbe6861a21fdd3c2d8","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":39915,"upload_time":"2024-07-24T23:15:03","upload_time_iso_8601":"2024-07-24T23:15:03.892439Z","url":"https://files.pythonhosted.org/packages/52/f3/2bd714234ec345153c0fcbc9e4896c306c347f3fb66a3aa6d6fc109a7243/agentops-0.3.4-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"d28b88a2c9c2df655de806adbb5deebb12c64d19d6aa3cfa759da642953525e0","md5":"f48a2ab7fcaf9cf11a25805ac5300e26","sha256":"a92c9cb7c511197f0ecb8cb5aca15d35022c15a3d2fd2aaaa34cd7e5dc59393f"},"downloads":-1,"filename":"agentops-0.3.4.tar.gz","has_sig":false,"md5_digest":"f48a2ab7fcaf9cf11a25805ac5300e26","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":42063,"upload_time":"2024-07-24T23:15:05","upload_time_iso_8601":"2024-07-24T23:15:05.586475Z","url":"https://files.pythonhosted.org/packages/d2/8b/88a2c9c2df655de806adbb5deebb12c64d19d6aa3cfa759da642953525e0/agentops-0.3.4.tar.gz","yanked":false,"yanked_reason":null}],"0.3.5":[{"comment_text":"","digests":{"blake2b_256":"f253f9672c6aa3c79b6a5b64321e93d2316f126add867ceb2e3e95ea8b4bf1b0","md5":"bd45dc8100fd3974dff11014d12424ff","sha256":"687cb938ecf9d1bf7650afc910e2b2e1b8b6d9e969215aeb49e57f1555a2a756"},"downloads":-1,"filename":"agentops-0.3.5-py3-none-any.whl","has_sig":false,"md5_digest":"bd45dc8100fd3974dff11014d12424ff","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":39177,"upload_time":"2024-08-01T19:32:19","upload_time_iso_8601":"2024-08-01T19:32:19.765946Z","url":"https://files.pythonhosted.org/packages/f2/53/f9672c6aa3c79b6a5b64321e93d2316f126add867ceb2e3e95ea8b4bf1b0/agentops-0.3.5-py3-none-any.whl","yanked":true,"yanked_reason":"Introduces + FileNotFoundError impacting OpenAI and LiteLLM integrations"},{"comment_text":"","digests":{"blake2b_256":"235508ce5915f1ceb86ea6f7a6e8c8dc025b34981408a1b638316b5140fad525","md5":"53ef2f5230de09260f4ead09633dde62","sha256":"ae98540355ce9b892a630e61a7224a9175657cad1b7e799269238748ca7bc0ea"},"downloads":-1,"filename":"agentops-0.3.5.tar.gz","has_sig":false,"md5_digest":"53ef2f5230de09260f4ead09633dde62","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":42699,"upload_time":"2024-08-01T19:32:21","upload_time_iso_8601":"2024-08-01T19:32:21.259555Z","url":"https://files.pythonhosted.org/packages/23/55/08ce5915f1ceb86ea6f7a6e8c8dc025b34981408a1b638316b5140fad525/agentops-0.3.5.tar.gz","yanked":true,"yanked_reason":"Introduces + FileNotFoundError impacting OpenAI and LiteLLM integrations"}],"0.3.6":[{"comment_text":"","digests":{"blake2b_256":"be89412afc864df3715d377cff9fe15deadaccdc0902b0a242f742f286e6d84b","md5":"149922f5cd986a8641b6e88c991af0cc","sha256":"413f812eb015fb31175a507784afe08123adfa9e227870e315899b059f42b443"},"downloads":-1,"filename":"agentops-0.3.6-py3-none-any.whl","has_sig":false,"md5_digest":"149922f5cd986a8641b6e88c991af0cc","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":39431,"upload_time":"2024-08-02T06:48:19","upload_time_iso_8601":"2024-08-02T06:48:19.594149Z","url":"https://files.pythonhosted.org/packages/be/89/412afc864df3715d377cff9fe15deadaccdc0902b0a242f742f286e6d84b/agentops-0.3.6-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"c3bf85f1439c3951ef69c81dbd7ef6df8a11df957e8d1180d835d71c11fa5131","md5":"b68d3124e365867f891bec4fb211a398","sha256":"0941f2486f3a561712ba6f77d560b49e2df55be141f243da0f9dc97ed43e6968"},"downloads":-1,"filename":"agentops-0.3.6.tar.gz","has_sig":false,"md5_digest":"b68d3124e365867f891bec4fb211a398","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":42933,"upload_time":"2024-08-02T06:48:21","upload_time_iso_8601":"2024-08-02T06:48:21.508300Z","url":"https://files.pythonhosted.org/packages/c3/bf/85f1439c3951ef69c81dbd7ef6df8a11df957e8d1180d835d71c11fa5131/agentops-0.3.6.tar.gz","yanked":false,"yanked_reason":null}],"0.3.7":[{"comment_text":"","digests":{"blake2b_256":"a34d05ba61e4fbd976dabe736d74fb2bb14d064ca758f05f084c0dadb6ac5cb1","md5":"551df1e89278270e0f5522d41f5c28ae","sha256":"7eeec5bef41e9ba397b3d880bcec8cd0818209ab31665c85e8b97615011a23d9"},"downloads":-1,"filename":"agentops-0.3.7-py3-none-any.whl","has_sig":false,"md5_digest":"551df1e89278270e0f5522d41f5c28ae","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":39816,"upload_time":"2024-08-08T23:21:45","upload_time_iso_8601":"2024-08-08T23:21:45.035395Z","url":"https://files.pythonhosted.org/packages/a3/4d/05ba61e4fbd976dabe736d74fb2bb14d064ca758f05f084c0dadb6ac5cb1/agentops-0.3.7-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"9f31034c3e062287f4fe9f57f2448e9508617a26bbb8a16b11c77cda9b28e1c0","md5":"1c48a797903a25988bae9b72559307ec","sha256":"048ee3caa5edf01b98c994e4e3ff90c09d83f820a43a70f07db96032c3386750"},"downloads":-1,"filename":"agentops-0.3.7.tar.gz","has_sig":false,"md5_digest":"1c48a797903a25988bae9b72559307ec","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":43495,"upload_time":"2024-08-08T23:21:46","upload_time_iso_8601":"2024-08-08T23:21:46.798531Z","url":"https://files.pythonhosted.org/packages/9f/31/034c3e062287f4fe9f57f2448e9508617a26bbb8a16b11c77cda9b28e1c0/agentops-0.3.7.tar.gz","yanked":false,"yanked_reason":null}],"0.3.9":[{"comment_text":"","digests":{"blake2b_256":"660ce931f892e0cedd40d861c3deff4134e1af1d226d6dc9762b32514d6dbc9f","md5":"82792de7bccabed058a24d3bd47443db","sha256":"582c9ddb30a9bb951b4d3ee2fd0428ba77d4a4367950b9cc6043f45b10bf12d8"},"downloads":-1,"filename":"agentops-0.3.9-py3-none-any.whl","has_sig":false,"md5_digest":"82792de7bccabed058a24d3bd47443db","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":40235,"upload_time":"2024-08-15T21:21:33","upload_time_iso_8601":"2024-08-15T21:21:33.468748Z","url":"https://files.pythonhosted.org/packages/66/0c/e931f892e0cedd40d861c3deff4134e1af1d226d6dc9762b32514d6dbc9f/agentops-0.3.9-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"e17b68cef3aaf44d423046b7779e9325e4feef5257e6d784a55c9dadf84bd61a","md5":"470f3b2663b71eb2f1597903bf8922e7","sha256":"7c999edbc64196924acdb06da09ec664a09d9fec8e73ba4e0f89e5f3dafc79e5"},"downloads":-1,"filename":"agentops-0.3.9.tar.gz","has_sig":false,"md5_digest":"470f3b2663b71eb2f1597903bf8922e7","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":43796,"upload_time":"2024-08-15T21:21:34","upload_time_iso_8601":"2024-08-15T21:21:34.591272Z","url":"https://files.pythonhosted.org/packages/e1/7b/68cef3aaf44d423046b7779e9325e4feef5257e6d784a55c9dadf84bd61a/agentops-0.3.9.tar.gz","yanked":false,"yanked_reason":null}],"0.4.0":[{"comment_text":null,"digests":{"blake2b_256":"060e66184fab1fc3bdd955ac20ea7bdef78f5b9aecc4080ea3e054c2a2436991","md5":"250de44e3599992c75625cef67682ecd","sha256":"b4821b8ec69c05a4d13b34eaad4762bb06a4f14e1241d57c16fdd28de5c8c929"},"downloads":-1,"filename":"agentops-0.4.0-py3-none-any.whl","has_sig":false,"md5_digest":"250de44e3599992c75625cef67682ecd","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":171419,"upload_time":"2025-03-13T11:24:15","upload_time_iso_8601":"2025-03-13T11:24:15.042606Z","url":"https://files.pythonhosted.org/packages/06/0e/66184fab1fc3bdd955ac20ea7bdef78f5b9aecc4080ea3e054c2a2436991/agentops-0.4.0-py3-none-any.whl","yanked":true,"yanked_reason":"broken + dependencies"},{"comment_text":null,"digests":{"blake2b_256":"ff7f8a57d060489c780db3e15c4d9ff8c670e5db583549c74dd2d32ae6ec10c0","md5":"ea0932849a7311750c6ac0e567c90182","sha256":"45f5367cecd8a0b648055b6ec76e8a6a2801425e80dede8f86b39e9c6cfe1d98"},"downloads":-1,"filename":"agentops-0.4.0.tar.gz","has_sig":false,"md5_digest":"ea0932849a7311750c6ac0e567c90182","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":248757,"upload_time":"2025-03-13T11:24:16","upload_time_iso_8601":"2025-03-13T11:24:16.866033Z","url":"https://files.pythonhosted.org/packages/ff/7f/8a57d060489c780db3e15c4d9ff8c670e5db583549c74dd2d32ae6ec10c0/agentops-0.4.0.tar.gz","yanked":true,"yanked_reason":"broken + dependencies"}],"0.4.1":[{"comment_text":null,"digests":{"blake2b_256":"736e7ab03c56260ec59bfaeeb08efb76f55ec6153861ad2a9cf20b38b222e4e7","md5":"3fcebe0141ca19b2fbcb53e918003ce9","sha256":"69c944e22628bc0f52c534007d2453da2a1988a7fd1f993720c4a15b0f70465a"},"downloads":-1,"filename":"agentops-0.4.1-py3-none-any.whl","has_sig":false,"md5_digest":"3fcebe0141ca19b2fbcb53e918003ce9","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":171402,"upload_time":"2025-03-13T16:29:26","upload_time_iso_8601":"2025-03-13T16:29:26.477091Z","url":"https://files.pythonhosted.org/packages/73/6e/7ab03c56260ec59bfaeeb08efb76f55ec6153861ad2a9cf20b38b222e4e7/agentops-0.4.1-py3-none-any.whl","yanked":true,"yanked_reason":"Broken + dependencies"},{"comment_text":null,"digests":{"blake2b_256":"ca303217cd3480ad099ffa92848ccbc8672e5232c22918c95a4b99e49c0ef31e","md5":"ec421fa88b575b827fc0d3fd02f45515","sha256":"fec044f0346dca6aba17e458e669ac1f52f1b618a4a15b43342615096c5e7d56"},"downloads":-1,"filename":"agentops-0.4.1.tar.gz","has_sig":false,"md5_digest":"ec421fa88b575b827fc0d3fd02f45515","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":248747,"upload_time":"2025-03-13T16:29:27","upload_time_iso_8601":"2025-03-13T16:29:27.905694Z","url":"https://files.pythonhosted.org/packages/ca/30/3217cd3480ad099ffa92848ccbc8672e5232c22918c95a4b99e49c0ef31e/agentops-0.4.1.tar.gz","yanked":true,"yanked_reason":"Broken + dependencies"}],"0.4.10":[{"comment_text":null,"digests":{"blake2b_256":"301e0fe4fb617a5a69a8692b571d726f03e713a37d94d6a43c595a08fc33cff3","md5":"5ac7ec12e80bae6946dc10e46ef768f7","sha256":"917ad7ad51af0ca00cace2a3ae1d1d36e0d65dc813e030fcd377ff98535002bd"},"downloads":-1,"filename":"agentops-0.4.10-py3-none-any.whl","has_sig":false,"md5_digest":"5ac7ec12e80bae6946dc10e46ef768f7","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":198777,"upload_time":"2025-05-08T20:37:29","upload_time_iso_8601":"2025-05-08T20:37:29.322288Z","url":"https://files.pythonhosted.org/packages/30/1e/0fe4fb617a5a69a8692b571d726f03e713a37d94d6a43c595a08fc33cff3/agentops-0.4.10-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"a0ef0a56be3981bd464ad5a22fa3a859421f4b5560cbbb082f3ef9aca9cdb1a7","md5":"1954d07bfa38ba5c5ce0e516b7dbfdc9","sha256":"b66a48b4ec50c9cb34abc6ff1df873f0dcddbbb528d8a8c0527cb97b24c91b36"},"downloads":-1,"filename":"agentops-0.4.10.tar.gz","has_sig":false,"md5_digest":"1954d07bfa38ba5c5ce0e516b7dbfdc9","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":284727,"upload_time":"2025-05-08T20:37:30","upload_time_iso_8601":"2025-05-08T20:37:30.744217Z","url":"https://files.pythonhosted.org/packages/a0/ef/0a56be3981bd464ad5a22fa3a859421f4b5560cbbb082f3ef9aca9cdb1a7/agentops-0.4.10.tar.gz","yanked":false,"yanked_reason":null}],"0.4.11":[{"comment_text":null,"digests":{"blake2b_256":"35cde66dea05d2d8070f886e8f4ce86905cf1cce2f89622e041f26e39f717c9e","md5":"20424d54ba76517d586d4bcc92dda3bf","sha256":"b08c84fd69f36fcd5d6f2b14d16ff88b977a9a417d92448c9709f3c7990d6438"},"downloads":-1,"filename":"agentops-0.4.11-py3-none-any.whl","has_sig":false,"md5_digest":"20424d54ba76517d586d4bcc92dda3bf","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":198789,"upload_time":"2025-05-12T20:38:29","upload_time_iso_8601":"2025-05-12T20:38:29.202046Z","url":"https://files.pythonhosted.org/packages/35/cd/e66dea05d2d8070f886e8f4ce86905cf1cce2f89622e041f26e39f717c9e/agentops-0.4.11-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"349df76fc1760cb21788967db3dd22ff2e6521c42b8ecee152e6ac4278e7cade","md5":"b7affd8b15834e4f9cb63066d7d160d1","sha256":"6eb80ee4a0653f9bdc9fc7641bf60cb7546cd34ff1c04dfbc4fca77dbb07edda"},"downloads":-1,"filename":"agentops-0.4.11.tar.gz","has_sig":false,"md5_digest":"b7affd8b15834e4f9cb63066d7d160d1","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":284735,"upload_time":"2025-05-12T20:38:30","upload_time_iso_8601":"2025-05-12T20:38:30.393540Z","url":"https://files.pythonhosted.org/packages/34/9d/f76fc1760cb21788967db3dd22ff2e6521c42b8ecee152e6ac4278e7cade/agentops-0.4.11.tar.gz","yanked":false,"yanked_reason":null}],"0.4.12":[{"comment_text":null,"digests":{"blake2b_256":"eb86772ed94e4e55433e8014933dab08aa6dfbcd8072f7fd74ffcad335ba0e73","md5":"831a3d54bccce09cc6c2a352776d02e6","sha256":"7c2685ae9c9de1a1071f6a29d395444191744d5ee58e33c020a69e2388dc2f7c"},"downloads":-1,"filename":"agentops-0.4.12-py3-none-any.whl","has_sig":false,"md5_digest":"831a3d54bccce09cc6c2a352776d02e6","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":198319,"upload_time":"2025-05-15T19:59:27","upload_time_iso_8601":"2025-05-15T19:59:27.609093Z","url":"https://files.pythonhosted.org/packages/eb/86/772ed94e4e55433e8014933dab08aa6dfbcd8072f7fd74ffcad335ba0e73/agentops-0.4.12-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"0cf664cea8e916a305d2dc2f3f3840a1d4cae40e1927892e1fcc11f83ec7ebee","md5":"7e97e0612a6e8544b37a2fa2e1633166","sha256":"530f15d428a4c78db918fa766366c8f11105c4d1d3b1a56de027747d805a573f"},"downloads":-1,"filename":"agentops-0.4.12.tar.gz","has_sig":false,"md5_digest":"7e97e0612a6e8544b37a2fa2e1633166","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":284309,"upload_time":"2025-05-15T19:59:28","upload_time_iso_8601":"2025-05-15T19:59:28.955745Z","url":"https://files.pythonhosted.org/packages/0c/f6/64cea8e916a305d2dc2f3f3840a1d4cae40e1927892e1fcc11f83ec7ebee/agentops-0.4.12.tar.gz","yanked":false,"yanked_reason":null}],"0.4.2":[{"comment_text":null,"digests":{"blake2b_256":"b13fcb38831e86502e3a30460a27e72a254df39cc2f223d1952e063e2d0b1f70","md5":"c958500ff1e2b600064e980d526f3ad8","sha256":"4c376e3a95d1c65a864e8a5ab6f4bdb62f76abf2271b3c9a1cda2a0ad33b2b1a"},"downloads":-1,"filename":"agentops-0.4.2-py3-none-any.whl","has_sig":false,"md5_digest":"c958500ff1e2b600064e980d526f3ad8","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":171420,"upload_time":"2025-03-13T16:56:31","upload_time_iso_8601":"2025-03-13T16:56:31.589623Z","url":"https://files.pythonhosted.org/packages/b1/3f/cb38831e86502e3a30460a27e72a254df39cc2f223d1952e063e2d0b1f70/agentops-0.4.2-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"4bd0f2c1951661617febfd14c3e98a58fbd805e48f453356e912dc8efc950490","md5":"7a125604d2bb3494714462442f0ac47c","sha256":"42cbc30a0eecee5db468d01dcbe398d57f080cbf8bb09aecc2ce40c5a21509a5"},"downloads":-1,"filename":"agentops-0.4.2.tar.gz","has_sig":false,"md5_digest":"7a125604d2bb3494714462442f0ac47c","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":248754,"upload_time":"2025-03-13T16:56:33","upload_time_iso_8601":"2025-03-13T16:56:33.062966Z","url":"https://files.pythonhosted.org/packages/4b/d0/f2c1951661617febfd14c3e98a58fbd805e48f453356e912dc8efc950490/agentops-0.4.2.tar.gz","yanked":false,"yanked_reason":null}],"0.4.3":[{"comment_text":null,"digests":{"blake2b_256":"398892f5a663cf616607e92a0499f5b636fe4e5ae8a6b7febc436077cd02ecd5","md5":"e739880fc1b0cf1e15a816277ca1e8d9","sha256":"c69cf884fc20cd3b44dd07bc9bca9ecec72e44fd2b12c50523670e3743fbbe6c"},"downloads":-1,"filename":"agentops-0.4.3-py3-none-any.whl","has_sig":false,"md5_digest":"e739880fc1b0cf1e15a816277ca1e8d9","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":111111,"upload_time":"2025-03-14T17:35:53","upload_time_iso_8601":"2025-03-14T17:35:53.978325Z","url":"https://files.pythonhosted.org/packages/39/88/92f5a663cf616607e92a0499f5b636fe4e5ae8a6b7febc436077cd02ecd5/agentops-0.4.3-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"c296f6f5268ffd68079185c6b21190a6ab5b35997678ce89af211d3c3683cc16","md5":"8df7f60a4346721caf9a4a74b0ba2e32","sha256":"48379801976e5e6c830ee40b247d7e7834fb79fb18d2cec926a8c06bdf767090"},"downloads":-1,"filename":"agentops-0.4.3.tar.gz","has_sig":false,"md5_digest":"8df7f60a4346721caf9a4a74b0ba2e32","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":209668,"upload_time":"2025-03-14T17:35:55","upload_time_iso_8601":"2025-03-14T17:35:55.387572Z","url":"https://files.pythonhosted.org/packages/c2/96/f6f5268ffd68079185c6b21190a6ab5b35997678ce89af211d3c3683cc16/agentops-0.4.3.tar.gz","yanked":false,"yanked_reason":null}],"0.4.4":[{"comment_text":null,"digests":{"blake2b_256":"e230799eb1a6b63e6f072611e4d6c5f7d70d969b1c2d14735100a5295eb794fd","md5":"76de08f25b0f1765ec9b3ce200f2273c","sha256":"a33f32e0d09e942b501a4066460b77bc1f6be960bdbd8dfed1cfc5950702f87c"},"downloads":-1,"filename":"agentops-0.4.4-py3-none-any.whl","has_sig":false,"md5_digest":"76de08f25b0f1765ec9b3ce200f2273c","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":115456,"upload_time":"2025-03-17T21:08:16","upload_time_iso_8601":"2025-03-17T21:08:16.149499Z","url":"https://files.pythonhosted.org/packages/e2/30/799eb1a6b63e6f072611e4d6c5f7d70d969b1c2d14735100a5295eb794fd/agentops-0.4.4-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"65e969c80c4c8fbf27826644c2bbcaf657bf9882a7974b115bff5021c683560d","md5":"2c34c20f9b785c60ea1cc6011b50684b","sha256":"509daf197bb27f8e5b1ac87e516487883178335c70328fd74897b1a5fadbf0bd"},"downloads":-1,"filename":"agentops-0.4.4.tar.gz","has_sig":false,"md5_digest":"2c34c20f9b785c60ea1cc6011b50684b","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":209971,"upload_time":"2025-03-17T21:08:17","upload_time_iso_8601":"2025-03-17T21:08:17.396763Z","url":"https://files.pythonhosted.org/packages/65/e9/69c80c4c8fbf27826644c2bbcaf657bf9882a7974b115bff5021c683560d/agentops-0.4.4.tar.gz","yanked":false,"yanked_reason":null}],"0.4.5":[{"comment_text":null,"digests":{"blake2b_256":"5cf1848e02d7233e3bfe74119e28a4fb7cf9dd3363eb215cf8bb8ca835317cc7","md5":"e70f8b49cbbbf5b6a56bbfc51938581c","sha256":"ec45a775dd5f494fe137620ce3e43aa06a6858495bed31c4b9019b343a34d092"},"downloads":-1,"filename":"agentops-0.4.5-py3-none-any.whl","has_sig":false,"md5_digest":"e70f8b49cbbbf5b6a56bbfc51938581c","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":148034,"upload_time":"2025-03-25T00:05:57","upload_time_iso_8601":"2025-03-25T00:05:57.075368Z","url":"https://files.pythonhosted.org/packages/5c/f1/848e02d7233e3bfe74119e28a4fb7cf9dd3363eb215cf8bb8ca835317cc7/agentops-0.4.5-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"cc2c243f2e01dae6cc2583bca8009c735bb08267c9f51f0e916154b91329e08f","md5":"16781e2f18e40444f869c38b3b27c70c","sha256":"d82d908072c8ffea1b90d63d651ccb73dec8597ef830e60b4311efb4f5593e8e"},"downloads":-1,"filename":"agentops-0.4.5.tar.gz","has_sig":false,"md5_digest":"16781e2f18e40444f869c38b3b27c70c","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":232839,"upload_time":"2025-03-25T00:05:58","upload_time_iso_8601":"2025-03-25T00:05:58.270348Z","url":"https://files.pythonhosted.org/packages/cc/2c/243f2e01dae6cc2583bca8009c735bb08267c9f51f0e916154b91329e08f/agentops-0.4.5.tar.gz","yanked":false,"yanked_reason":null}],"0.4.6":[{"comment_text":null,"digests":{"blake2b_256":"316124fa78f759c68e1484ed04ed6d0d60ad4b6b58d02570a65dc670975fd954","md5":"36d7d7e64cde9ed73d4ced26e9ee4fb0","sha256":"283929b8f7a1bc79693a6c982e012ccceac4645c6a35709603e7ff83332ec00d"},"downloads":-1,"filename":"agentops-0.4.6-py3-none-any.whl","has_sig":false,"md5_digest":"36d7d7e64cde9ed73d4ced26e9ee4fb0","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":160863,"upload_time":"2025-04-07T22:18:58","upload_time_iso_8601":"2025-04-07T22:18:58.881418Z","url":"https://files.pythonhosted.org/packages/31/61/24fa78f759c68e1484ed04ed6d0d60ad4b6b58d02570a65dc670975fd954/agentops-0.4.6-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"d0073869f9b99dbc45ac55bc0dbfd8cf6b22de850a716004135ec96a29c3d81e","md5":"1390e3bc3185a4e97492958c1c4e549c","sha256":"78179a0d2c02217445fb7315bb963496bb338c96bcc126bebfb45a5733fea23e"},"downloads":-1,"filename":"agentops-0.4.6.tar.gz","has_sig":false,"md5_digest":"1390e3bc3185a4e97492958c1c4e549c","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":254164,"upload_time":"2025-04-07T22:19:00","upload_time_iso_8601":"2025-04-07T22:19:00.589814Z","url":"https://files.pythonhosted.org/packages/d0/07/3869f9b99dbc45ac55bc0dbfd8cf6b22de850a716004135ec96a29c3d81e/agentops-0.4.6.tar.gz","yanked":false,"yanked_reason":null}],"0.4.7":[{"comment_text":null,"digests":{"blake2b_256":"a4be6d708281bd3a282879859231fb7d2ab1d0fec6ee421ec6b02d08a3726670","md5":"3bb2171ad2809a49c43935f1d249aa02","sha256":"b1c4acda70ef45a3c7deac01a695b922a14bb762826ba68fb2b8c3859f4e87da"},"downloads":-1,"filename":"agentops-0.4.7-py3-none-any.whl","has_sig":false,"md5_digest":"3bb2171ad2809a49c43935f1d249aa02","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":182708,"upload_time":"2025-04-24T00:39:39","upload_time_iso_8601":"2025-04-24T00:39:39.403616Z","url":"https://files.pythonhosted.org/packages/a4/be/6d708281bd3a282879859231fb7d2ab1d0fec6ee421ec6b02d08a3726670/agentops-0.4.7-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"20a5d142e98481d82912280e29b5b73dc5a5deea4d34c132045333b5201c1209","md5":"62c78776d059798f2e6a74bf1b03932f","sha256":"ad6dca62ff88d4c09eda34e3393c138880a5126682b53cf0c881a7dbb61dcc0d"},"downloads":-1,"filename":"agentops-0.4.7.tar.gz","has_sig":false,"md5_digest":"62c78776d059798f2e6a74bf1b03932f","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":272982,"upload_time":"2025-04-24T00:39:40","upload_time_iso_8601":"2025-04-24T00:39:40.931148Z","url":"https://files.pythonhosted.org/packages/20/a5/d142e98481d82912280e29b5b73dc5a5deea4d34c132045333b5201c1209/agentops-0.4.7.tar.gz","yanked":false,"yanked_reason":null}],"0.4.8":[{"comment_text":null,"digests":{"blake2b_256":"96d32cee2a94f2917be9c7575238dfff3088a51a6376168a2c7287da0e8b654c","md5":"a02a327b4620a909e831fbd6889bf25e","sha256":"86f439d47c0fdfcb3525859528300b19bb96c105875d0b5b3d205260aedc3f24"},"downloads":-1,"filename":"agentops-0.4.8-py3-none-any.whl","has_sig":false,"md5_digest":"a02a327b4620a909e831fbd6889bf25e","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":182678,"upload_time":"2025-04-27T09:10:39","upload_time_iso_8601":"2025-04-27T09:10:39.925403Z","url":"https://files.pythonhosted.org/packages/96/d3/2cee2a94f2917be9c7575238dfff3088a51a6376168a2c7287da0e8b654c/agentops-0.4.8-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"ba64732ebe57c77123058cbc03eec0795267fac65aa6032b8906b1dfe80ff837","md5":"f947ace32256ff3ee6b2a6c716ef3543","sha256":"c299ca067298f568ae2885e4d21951b0bdb7067692d930b57ff1f19bd447ae5a"},"downloads":-1,"filename":"agentops-0.4.8.tar.gz","has_sig":false,"md5_digest":"f947ace32256ff3ee6b2a6c716ef3543","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":272951,"upload_time":"2025-04-27T09:10:41","upload_time_iso_8601":"2025-04-27T09:10:41.806172Z","url":"https://files.pythonhosted.org/packages/ba/64/732ebe57c77123058cbc03eec0795267fac65aa6032b8906b1dfe80ff837/agentops-0.4.8.tar.gz","yanked":false,"yanked_reason":null}],"0.4.9":[{"comment_text":null,"digests":{"blake2b_256":"5814e40def8897f404273f69d6841793b3dbdcbb8f2948fb6bd9c50087239b37","md5":"f49c139fbf17affaa3e8165743971a50","sha256":"622b9ecdc1b5e91c5ac3aa92d2f756d083c4e0ba830d8e94c3785f7290587a97"},"downloads":-1,"filename":"agentops-0.4.9-py3-none-any.whl","has_sig":false,"md5_digest":"f49c139fbf17affaa3e8165743971a50","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":198463,"upload_time":"2025-05-02T23:51:48","upload_time_iso_8601":"2025-05-02T23:51:48.502905Z","url":"https://files.pythonhosted.org/packages/58/14/e40def8897f404273f69d6841793b3dbdcbb8f2948fb6bd9c50087239b37/agentops-0.4.9-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"32efa2af9802799b3d26c570b8dd18669e3577fb58fa093a3c9cfafbf179376c","md5":"5eb22fdc989748711f0252c3679388e9","sha256":"c69a0c912a75367850036c20368d4722462b5769eb86bdebabb0695f8be4c8bd"},"downloads":-1,"filename":"agentops-0.4.9.tar.gz","has_sig":false,"md5_digest":"5eb22fdc989748711f0252c3679388e9","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":284471,"upload_time":"2025-05-02T23:51:49","upload_time_iso_8601":"2025-05-02T23:51:49.781274Z","url":"https://files.pythonhosted.org/packages/32/ef/a2af9802799b3d26c570b8dd18669e3577fb58fa093a3c9cfafbf179376c/agentops-0.4.9.tar.gz","yanked":false,"yanked_reason":null}]},"urls":[{"comment_text":null,"digests":{"blake2b_256":"eb86772ed94e4e55433e8014933dab08aa6dfbcd8072f7fd74ffcad335ba0e73","md5":"831a3d54bccce09cc6c2a352776d02e6","sha256":"7c2685ae9c9de1a1071f6a29d395444191744d5ee58e33c020a69e2388dc2f7c"},"downloads":-1,"filename":"agentops-0.4.12-py3-none-any.whl","has_sig":false,"md5_digest":"831a3d54bccce09cc6c2a352776d02e6","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":198319,"upload_time":"2025-05-15T19:59:27","upload_time_iso_8601":"2025-05-15T19:59:27.609093Z","url":"https://files.pythonhosted.org/packages/eb/86/772ed94e4e55433e8014933dab08aa6dfbcd8072f7fd74ffcad335ba0e73/agentops-0.4.12-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"0cf664cea8e916a305d2dc2f3f3840a1d4cae40e1927892e1fcc11f83ec7ebee","md5":"7e97e0612a6e8544b37a2fa2e1633166","sha256":"530f15d428a4c78db918fa766366c8f11105c4d1d3b1a56de027747d805a573f"},"downloads":-1,"filename":"agentops-0.4.12.tar.gz","has_sig":false,"md5_digest":"7e97e0612a6e8544b37a2fa2e1633166","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":284309,"upload_time":"2025-05-15T19:59:28","upload_time_iso_8601":"2025-05-15T19:59:28.955745Z","url":"https://files.pythonhosted.org/packages/0c/f6/64cea8e916a305d2dc2f3f3840a1d4cae40e1927892e1fcc11f83ec7ebee/agentops-0.4.12.tar.gz","yanked":false,"yanked_reason":null}],"vulnerabilities":[]} + + ' + headers: + Accept-Ranges: + - bytes + Connection: + - keep-alive + Content-Length: + - '141284' + Date: + - Fri, 16 May 2025 22:11:18 GMT + Permissions-Policy: + - publickey-credentials-create=(self),publickey-credentials-get=(self),accelerometer=(),ambient-light-sensor=(),autoplay=(),battery=(),camera=(),display-capture=(),document-domain=(),encrypted-media=(),execution-while-not-rendered=(),execution-while-out-of-viewport=(),fullscreen=(),gamepad=(),geolocation=(),gyroscope=(),hid=(),identity-credentials-get=(),idle-detection=(),local-fonts=(),magnetometer=(),microphone=(),midi=(),otp-credentials=(),payment=(),picture-in-picture=(),screen-wake-lock=(),serial=(),speaker-selection=(),storage-access=(),usb=(),web-share=(),xr-spatial-tracking=() + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Vary: + - Accept-Encoding + X-Cache: + - MISS, HIT, HIT + X-Cache-Hits: + - 0, 14, 0 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - deny + X-Permitted-Cross-Domain-Policies: + - none + X-Served-By: + - cache-iad-kjyo7100048-IAD, cache-iad-kjyo7100044-IAD, cache-sjc10057-SJC + X-Timer: + - S1747433478.903585,VS0,VE171 + X-XSS-Protection: + - 1; mode=block + access-control-allow-headers: + - Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since + access-control-allow-methods: + - GET + access-control-allow-origin: + - '*' + access-control-expose-headers: + - X-PyPI-Last-Serial + access-control-max-age: + - '86400' + cache-control: + - max-age=900, public + content-security-policy: + - base-uri 'self'; connect-src 'self' https://api.github.com/repos/ https://api.github.com/search/issues + https://gitlab.com/api/ https://analytics.python.org fastly-insights.com *.fastly-insights.com + *.ethicalads.io https://api.pwnedpasswords.com https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/sre/mathmaps/ + https://2p66nmmycsj3.statuspage.io; default-src 'none'; font-src 'self' fonts.gstatic.com; + form-action 'self' https://checkout.stripe.com; frame-ancestors 'none'; frame-src + 'none'; img-src 'self' https://pypi-camo.freetls.fastly.net/ *.fastly-insights.com + *.ethicalads.io ethicalads.blob.core.windows.net; script-src 'self' https://analytics.python.org + *.fastly-insights.com *.ethicalads.io 'sha256-U3hKDidudIaxBDEzwGJApJgPEf2mWk6cfMWghrAa6i0=' + https://cdn.jsdelivr.net/npm/mathjax@3.2.2/ 'sha256-1CldwzdEg2k1wTmf7s5RWVd7NMXI/7nxxjJM2C4DqII=' + 'sha256-0POaN8stWYQxhzjKS+/eOfbbJ/u4YHO5ZagJvLpMypo='; style-src 'self' fonts.googleapis.com + *.ethicalads.io 'sha256-2YHqZokjiizkHi1Zt+6ar0XJ0OeEy/egBnlm+MDMtrM=' 'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=' + 'sha256-JLEjeN9e5dGsz5475WyRaoA4eQOdNPxDIeUhclnJDCE=' 'sha256-mQyxHEuwZJqpxCw3SLmc4YOySNKXunyu2Oiz1r3/wAE=' + 'sha256-OCf+kv5Asiwp++8PIevKBYSgnNLNUZvxAp4a7wMLuKA=' 'sha256-h5LOiLhk6wiJrGsG5ItM0KimwzWQH/yAcmoJDJL//bY='; + worker-src *.fastly-insights.com + content-type: + - application/json + etag: + - '"f+xzB2HkOqSq5o8PEbR7zQ"' + referrer-policy: + - origin-when-cross-origin + x-pypi-last-serial: + - '29075100' + status: + code: 200 + message: OK - request: body: '{"messages": [{"role": "system", "content": "You are base_agent. You are a helpful assistant that just says hi\nYour personal goal is: Just say hi\nTo @@ -22,10 +132,12 @@ interactions: - '838' content-type: - application/json + cookie: + - _cfuvid=pgWR9g.y6i.3_EHHkfdBfvv5isYFU_joRq3kXvX2IE4-1740180069173-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.61.0 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -35,32 +147,33 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.61.0 + - 1.68.2 x-stainless-raw-response: - 'true' + x-stainless-read-timeout: + - '600.0' x-stainless-retry-count: - '0' x-stainless-runtime: - CPython x-stainless-runtime-version: - - 3.12.8 + - 3.12.9 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-B4VsaBZ4ec4b0ab4pkqWgyxTFVVfc\",\n \"object\": - \"chat.completion\",\n \"created\": 1740415556,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"I now can give a great answer \\nFinal - Answer: hi\",\n \"refusal\": null\n },\n \"logprobs\": null,\n - \ \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 161,\n \"completion_tokens\": 12,\n \"total_tokens\": 173,\n \"prompt_tokens_details\": - {\n \"cached_tokens\": 0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": - {\n \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\": - 0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\": - \"default\",\n \"system_fingerprint\": \"fp_7fcd609668\"\n}\n" + body: + string: !!binary | + H4sIAAAAAAAAAwAAAP//jFLBatwwEL37Kwad18W7a9bBt/ZQKBSaQCnZtsHMSmNbrSwpkrxJCfvv + RfJm7bQp9GLwvHlP783MUwbApGA1MN5j4INV+bvbx73f74vD52t12yna3X/9pPqPNzf3xy/XbBUZ + 5vCDeHhmveFmsIqCNHqCuSMMFFXXVVmV221ZXSVgMIJUpHU25KXJB6llvik2ZV5U+frqzO6N5ORZ + Dd8yAICn9I0+taBHVkOxeq4M5D12xOpLEwBzRsUKQ++lD6gDW80gNzqQTtY/gDYPwFFDJ48ECF20 + Daj9AzmA7/q91KjgbfqvoZdLHUft6DFm0aNSCwC1NgHjLFKCuzNyunhWprPOHPwfVNZKLX3fOEJv + dPTng7EsoacM4C7NZnwRl1lnBhuaYH5Sem69W096bF7JAt2cwWACqkW92q5e0WsEBZTKL6bLOPKe + xEydV4GjkGYBZIvUf7t5TXtKLnX3P/IzwDnZQKKxjoTkLxPPbY7ixf6r7TLlZJh5ckfJqQmSXNyE + oBZHNd0R8798oKFppe7IWSenY2ptIw7IcVeItmDZKfsNAAD//wMAOpzy51oDAAA= headers: CF-RAY: - - 9170edc5da6f230e-SJC + - 940e35c4d9de174e-SJC Connection: - keep-alive Content-Encoding: @@ -68,14 +181,14 @@ interactions: Content-Type: - application/json Date: - - Mon, 24 Feb 2025 16:45:57 GMT + - Fri, 16 May 2025 22:11:18 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=lvRw4Nyef7N35to64fj2_kHDfbZp0KSFbwgF5chYMRI-1740415557-1.0.1.1-o5BaN1FpBwv5Wq6zIlv0rCB28lk5hVI9wZQWU3pig1jgyAKDkYzTwZ0MlSR6v6TPIX9RfepjrO3.Gk3FEmcVRw; - path=/; expires=Mon, 24-Feb-25 17:15:57 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=7gYhEK1ZebbV2RqWIdRN.0Kv_XoKdpvnwX3SkGHCXnU-1747433478-1.0.1.1-2aU819p9q3cYgN_xx91359ew9UFwtVswCekjsQw7Qgz4X9r3RzR9e0CRqkfXgCACAMxJI7BJCmWvJ0bRuKaFrXbWRGphDbDW5xMKyMxQxbY; + path=/; expires=Fri, 16-May-25 22:41:18 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=ySaVoTQvAcQyH5QoJQJDj75e5j8HwGFPOlFMAWEvXJk-1740415557302-0.0.1.1-604800000; + - _cfuvid=SuZPImI5tNZ3RsqGDhWpp3lM9bZ.ClZzaHNPgVIvvHA-1747433478823-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -90,11 +203,13 @@ interactions: openai-organization: - crewai-iuxna1 openai-processing-ms: - - '721' + - '405' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '411' x-ratelimit-limit-requests: - '30000' x-ratelimit-limit-tokens: @@ -102,15 +217,16 @@ interactions: x-ratelimit-remaining-requests: - '29999' x-ratelimit-remaining-tokens: - - '149999808' + - '149999824' x-ratelimit-reset-requests: - 2ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_fc3b3bcd4382cddaa3c04ce7003e4857 - http_version: HTTP/1.1 - status_code: 200 + - req_8274f4da736f4f31854b3c8ad67d02fb + status: + code: 200 + message: OK - request: body: '{"messages": [{"role": "system", "content": "You are Task Execution Evaluator. Evaluator agent for crew evaluation with precise capabilities to evaluate the @@ -147,12 +263,12 @@ interactions: content-type: - application/json cookie: - - __cf_bm=lvRw4Nyef7N35to64fj2_kHDfbZp0KSFbwgF5chYMRI-1740415557-1.0.1.1-o5BaN1FpBwv5Wq6zIlv0rCB28lk5hVI9wZQWU3pig1jgyAKDkYzTwZ0MlSR6v6TPIX9RfepjrO3.Gk3FEmcVRw; - _cfuvid=ySaVoTQvAcQyH5QoJQJDj75e5j8HwGFPOlFMAWEvXJk-1740415557302-0.0.1.1-604800000 + - _cfuvid=SuZPImI5tNZ3RsqGDhWpp3lM9bZ.ClZzaHNPgVIvvHA-1747433478823-0.0.1.1-604800000; + __cf_bm=7gYhEK1ZebbV2RqWIdRN.0Kv_XoKdpvnwX3SkGHCXnU-1747433478-1.0.1.1-2aU819p9q3cYgN_xx91359ew9UFwtVswCekjsQw7Qgz4X9r3RzR9e0CRqkfXgCACAMxJI7BJCmWvJ0bRuKaFrXbWRGphDbDW5xMKyMxQxbY host: - api.openai.com user-agent: - - OpenAI/Python 1.61.0 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -162,33 +278,34 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.61.0 + - 1.68.2 x-stainless-raw-response: - 'true' + x-stainless-read-timeout: + - '600.0' x-stainless-retry-count: - '0' x-stainless-runtime: - CPython x-stainless-runtime-version: - - 3.12.8 + - 3.12.9 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-B4Vsbd9AsRaJ2exDtWnHAwC8rIjfi\",\n \"object\": - \"chat.completion\",\n \"created\": 1740415557,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"I now can give a great answer \\nFinal - Answer: { \\n \\\"quality\\\": 10 \\n} \",\n \"refusal\": null\n - \ },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n - \ ],\n \"usage\": {\n \"prompt_tokens\": 338,\n \"completion_tokens\": - 22,\n \"total_tokens\": 360,\n \"prompt_tokens_details\": {\n \"cached_tokens\": - 0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": {\n - \ \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\": - 0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\": - \"default\",\n \"system_fingerprint\": \"fp_7fcd609668\"\n}\n" + body: + string: !!binary | + H4sIAAAAAAAAAwAAAP//jFJda9swFH33r7joOS5p7Cat39qNjY0xKNtgYS5Gka4drfKVJsn9IOS/ + F9lp7OwD9mKwzj1H5xzdXQLAlGQFMLHlQbRWpzffn9bB3mbvb9T688dv9f31+u3X2y9vmk8XS8Fm + kWE2P1GEV9aZMK3VGJShARYOecCoer7KV3mW5aurHmiNRB1pjQ1pbtJWkUoX80Wezlfp+eWBvTVK + oGcF/EgAAHb9N/okiU+sgPns9aRF73mDrDgOATBndDxh3HvlA6fAZiMoDAWk3voHIPMIghM06gGB + QxNtAyf/iA6gpHeKuIbr/r+AXUkAJfvVca3CcxnDzc/mJe2n8g7rzvMYkTqtJwAnMoHHivpgdwdk + f4yiTWOd2fjfqKxWpPy2csi9oWjbB2NZj+4TgLu+su6kBWadaW2ogrnH/rosuxz02PhSI7pYHMBg + AtcT1vJQ9KleJTFwpf2kdCa42KIcqeML8U4qMwGSSeo/3fxNe0iuqPkf+REQAm1AWVmHUonTxOOY + w7jI/xo7ttwbZh7dgxJYBYUuvoTEmnd6WC/mn33AtqoVNeisU8OO1ba6yHGTb+TyKmPJPnkBAAD/ + /wMAiyaGKXEDAAA= headers: CF-RAY: - - 9170edd15bb5230e-SJC + - 940e35cada1f174e-SJC Connection: - keep-alive Content-Encoding: @@ -196,7 +313,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 24 Feb 2025 16:45:58 GMT + - Fri, 16 May 2025 22:11:19 GMT Server: - cloudflare Transfer-Encoding: @@ -212,11 +329,13 @@ interactions: openai-organization: - crewai-iuxna1 openai-processing-ms: - - '860' + - '696' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload + x-envoy-upstream-service-time: + - '708' x-ratelimit-limit-requests: - '30000' x-ratelimit-limit-tokens: @@ -224,13 +343,14 @@ interactions: x-ratelimit-remaining-requests: - '29999' x-ratelimit-remaining-tokens: - - '149999578' + - '149999594' x-ratelimit-reset-requests: - 2ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_fad452c2d10b5fc95809130912b08837 - http_version: HTTP/1.1 - status_code: 200 + - req_1227f2635e62eb396693c8857c57b878 + status: + code: 200 + message: OK version: 1 diff --git a/tests/utilities/test_events.py b/tests/utilities/test_events.py index 150a383cb..2f6f11b61 100644 --- a/tests/utilities/test_events.py +++ b/tests/utilities/test_events.py @@ -1,4 +1,3 @@ -import os from datetime import datetime from unittest.mock import Mock, patch @@ -22,6 +21,7 @@ from crewai.utilities.events.crew_events import ( CrewKickoffFailedEvent, CrewKickoffStartedEvent, CrewTestCompletedEvent, + CrewTestResultEvent, CrewTestStartedEvent, ) from crewai.utilities.events.crewai_event_bus import crewai_event_bus @@ -38,7 +38,6 @@ from crewai.utilities.events.llm_events import ( LLMCallCompletedEvent, LLMCallFailedEvent, LLMCallStartedEvent, - LLMCallType, LLMStreamChunkEvent, ) from crewai.utilities.events.task_events import ( @@ -132,6 +131,10 @@ def test_crew_emits_test_kickoff_type_event(): def handle_crew_test_end(source, event): received_events.append(event) + @crewai_event_bus.on(CrewTestResultEvent) + def handle_crew_test_result(source, event): + received_events.append(event) + eval_llm = LLM(model="gpt-4o-mini") with ( patch.object( @@ -149,13 +152,16 @@ def test_crew_emits_test_kickoff_type_event(): assert args[2] is None assert args[3] == eval_llm - assert len(received_events) == 2 + assert len(received_events) == 3 assert received_events[0].crew_name == "TestCrew" assert isinstance(received_events[0].timestamp, datetime) assert received_events[0].type == "crew_test_started" assert received_events[1].crew_name == "TestCrew" assert isinstance(received_events[1].timestamp, datetime) - assert received_events[1].type == "crew_test_completed" + assert received_events[1].type == "crew_test_result" + assert received_events[2].crew_name == "TestCrew" + assert isinstance(received_events[2].timestamp, datetime) + assert received_events[2].type == "crew_test_completed" @pytest.mark.vcr(filter_headers=["authorization"]) @@ -309,7 +315,7 @@ def test_agent_emits_execution_error_event(): ) as invoke_mock: invoke_mock.side_effect = Exception(error_message) - with pytest.raises(Exception) as e: + with pytest.raises(Exception): base_agent.execute_task( task=base_task, ) From 9945da7dbeddeb09c8bd8ae1f2b40e706cb32b6e Mon Sep 17 00:00:00 2001 From: Greyson LaLonde Date: Wed, 21 May 2025 13:47:41 -0400 Subject: [PATCH 40/40] Add HallucinationGuardrail no-op implementation with tests (#2869) - Add `HallucinationGuardrail` class as enterprise feature placeholder - Update LLM guardrail events to support `HallucinationGuardrail` instances - Add comprehensive tests for `HallucinationGuardrail` initialization and behavior - Add integration tests for `HallucinationGuardrail` with task execution system - Ensure no-op behavior always returns True --- src/crewai/tasks/hallucination_guardrail.py | 96 ++++++++++++++++ .../utilities/events/llm_guardrail_events.py | 5 +- tests/test_hallucination_guardrail.py | 108 ++++++++++++++++++ tests/test_task_guardrails.py | 37 +++++- 4 files changed, 244 insertions(+), 2 deletions(-) create mode 100644 src/crewai/tasks/hallucination_guardrail.py create mode 100644 tests/test_hallucination_guardrail.py diff --git a/src/crewai/tasks/hallucination_guardrail.py b/src/crewai/tasks/hallucination_guardrail.py new file mode 100644 index 000000000..3079bc243 --- /dev/null +++ b/src/crewai/tasks/hallucination_guardrail.py @@ -0,0 +1,96 @@ +"""Hallucination Guardrail Placeholder for CrewAI. + +This is a no-op version of the HallucinationGuardrail for the open-source repository. + +Classes: + HallucinationGuardrail: Placeholder guardrail that validates task outputs. +""" + +from typing import Any, Optional, Tuple + +from crewai.llm import LLM +from crewai.tasks.task_output import TaskOutput +from crewai.utilities.logger import Logger + + +class HallucinationGuardrail: + """Placeholder for the HallucinationGuardrail feature. + + Attributes: + context: The reference context that outputs would be checked against. + llm: The language model that would be used for evaluation. + threshold: Optional minimum faithfulness score that would be required to pass. + tool_response: Optional tool response information that would be used in evaluation. + + Examples: + >>> # Basic usage with default verdict logic + >>> guardrail = HallucinationGuardrail( + ... context="AI helps with various tasks including analysis and generation.", + ... llm=agent.llm + ... ) + + >>> # With custom threshold for stricter validation + >>> strict_guardrail = HallucinationGuardrail( + ... context="Quantum computing uses qubits in superposition.", + ... llm=agent.llm, + ... threshold=8.0 # Would require score >= 8 to pass in enterprise version + ... ) + + >>> # With tool response for additional context + >>> guardrail_with_tools = HallucinationGuardrail( + ... context="The current weather data", + ... llm=agent.llm, + ... tool_response="Weather API returned: Temperature 22°C, Humidity 65%" + ... ) + """ + + def __init__( + self, + context: str, + llm: LLM, + threshold: Optional[float] = None, + tool_response: str = "", + ): + """Initialize the HallucinationGuardrail placeholder. + + Args: + context: The reference context that outputs would be checked against. + llm: The language model that would be used for evaluation. + threshold: Optional minimum faithfulness score that would be required to pass. + tool_response: Optional tool response information that would be used in evaluation. + """ + self.context = context + self.llm: LLM = llm + self.threshold = threshold + self.tool_response = tool_response + self._logger = Logger(verbose=True) + self._logger.log( + "warning", + """Hallucination detection is a no-op in open source, use it for free at https://app.crewai.com\n""", + color="red", + ) + + @property + def description(self) -> str: + """Generate a description of this guardrail for event logging.""" + return "HallucinationGuardrail (no-op)" + + def __call__(self, task_output: TaskOutput) -> Tuple[bool, Any]: + """Validate a task output against hallucination criteria. + + In the open source, this method always returns that the output is valid. + + Args: + task_output: The output to be validated. + + Returns: + A tuple containing: + - True + - The raw task output + """ + self._logger.log( + "warning", + "Premium hallucination detection skipped (use for free at https://app.crewai.com)\n", + color="red", + ) + return True, task_output.raw diff --git a/src/crewai/utilities/events/llm_guardrail_events.py b/src/crewai/utilities/events/llm_guardrail_events.py index a484c187a..01831e12c 100644 --- a/src/crewai/utilities/events/llm_guardrail_events.py +++ b/src/crewai/utilities/events/llm_guardrail_events.py @@ -19,10 +19,13 @@ class LLMGuardrailStartedEvent(BaseEvent): from inspect import getsource from crewai.tasks.llm_guardrail import LLMGuardrail + from crewai.tasks.hallucination_guardrail import HallucinationGuardrail super().__init__(**data) - if isinstance(self.guardrail, LLMGuardrail): + if isinstance(self.guardrail, LLMGuardrail) or isinstance( + self.guardrail, HallucinationGuardrail + ): self.guardrail = self.guardrail.description.strip() elif isinstance(self.guardrail, Callable): self.guardrail = getsource(self.guardrail).strip() diff --git a/tests/test_hallucination_guardrail.py b/tests/test_hallucination_guardrail.py new file mode 100644 index 000000000..af08a3924 --- /dev/null +++ b/tests/test_hallucination_guardrail.py @@ -0,0 +1,108 @@ +from unittest.mock import Mock + +import pytest + +from crewai.llm import LLM +from crewai.tasks.hallucination_guardrail import HallucinationGuardrail +from crewai.tasks.task_output import TaskOutput + + +def test_hallucination_guardrail_initialization(): + """Test that the hallucination guardrail initializes correctly with all parameters.""" + mock_llm = Mock(spec=LLM) + + guardrail = HallucinationGuardrail(context="Test reference context", llm=mock_llm) + + assert guardrail.context == "Test reference context" + assert guardrail.llm == mock_llm + assert guardrail.threshold is None + assert guardrail.tool_response == "" + + guardrail = HallucinationGuardrail( + context="Test reference context", + llm=mock_llm, + threshold=8.5, + tool_response="Sample tool response", + ) + + assert guardrail.context == "Test reference context" + assert guardrail.llm == mock_llm + assert guardrail.threshold == 8.5 + assert guardrail.tool_response == "Sample tool response" + + +def test_hallucination_guardrail_no_op_behavior(): + """Test that the guardrail always returns True in the open-source version.""" + mock_llm = Mock(spec=LLM) + guardrail = HallucinationGuardrail( + context="Test reference context", + llm=mock_llm, + threshold=9.0, + ) + + task_output = TaskOutput( + raw="Sample task output", + description="Test task", + expected_output="Expected output", + agent="Test Agent", + ) + + result, output = guardrail(task_output) + + assert result is True + assert output == "Sample task output" + + +def test_hallucination_guardrail_description(): + """Test that the guardrail provides the correct description for event logging.""" + guardrail = HallucinationGuardrail( + context="Test reference context", llm=Mock(spec=LLM) + ) + + assert guardrail.description == "HallucinationGuardrail (no-op)" + + +@pytest.mark.parametrize( + "context,task_output_text,threshold,tool_response", + [ + ( + "Earth orbits the Sun once every 365.25 days.", + "It takes Earth approximately one year to go around the Sun.", + None, + "", + ), + ( + "Python was created by Guido van Rossum in 1991.", + "Python is a programming language developed by Guido van Rossum.", + 7.5, + "", + ), + ( + "The capital of France is Paris.", + "Paris is the largest city and capital of France.", + 9.0, + "Geographic API returned: France capital is Paris", + ), + ], +) +def test_hallucination_guardrail_always_passes( + context, task_output_text, threshold, tool_response +): + """Test that the guardrail always passes regardless of configuration in open-source version.""" + mock_llm = Mock(spec=LLM) + + guardrail = HallucinationGuardrail( + context=context, llm=mock_llm, threshold=threshold, tool_response=tool_response + ) + + task_output = TaskOutput( + raw=task_output_text, + description="Test task", + expected_output="Expected output", + agent="Test Agent", + ) + + result, output = guardrail(task_output) + + assert result is True + assert output == task_output_text diff --git a/tests/test_task_guardrails.py b/tests/test_task_guardrails.py index aaac05bb7..901b962b9 100644 --- a/tests/test_task_guardrails.py +++ b/tests/test_task_guardrails.py @@ -1,9 +1,10 @@ -from unittest.mock import ANY, Mock, patch +from unittest.mock import Mock, patch import pytest from crewai import Agent, Task from crewai.llm import LLM +from crewai.tasks.hallucination_guardrail import HallucinationGuardrail from crewai.tasks.llm_guardrail import LLMGuardrail from crewai.tasks.task_output import TaskOutput from crewai.utilities.events import ( @@ -267,3 +268,37 @@ def test_guardrail_when_an_error_occurs(sample_agent, task_output): max_retries=0, ) task.execute_sync(agent=sample_agent) + + +def test_hallucination_guardrail_integration(): + """Test that HallucinationGuardrail integrates properly with the task system.""" + agent = Mock() + agent.role = "test_agent" + agent.execute_task.return_value = "test result" + agent.crew = None + + mock_llm = Mock(spec=LLM) + guardrail = HallucinationGuardrail( + context="Test reference context for validation", llm=mock_llm, threshold=8.0 + ) + + task = Task( + description="Test task with hallucination guardrail", + expected_output="Valid output", + guardrail=guardrail, + ) + + result = task.execute_sync(agent=agent) + assert isinstance(result, TaskOutput) + assert result.raw == "test result" + + +def test_hallucination_guardrail_description_in_events(): + """Test that HallucinationGuardrail description appears correctly in events.""" + mock_llm = Mock(spec=LLM) + guardrail = HallucinationGuardrail(context="Test context", llm=mock_llm) + + assert guardrail.description == "HallucinationGuardrail (no-op)" + + event = LLMGuardrailStartedEvent(guardrail=guardrail, retry_count=0) + assert event.guardrail == "HallucinationGuardrail (no-op)"