import{s as Ae,n as Ke,o as Oe}from"../chunks/scheduler.505acc25.js";import{S as De,i as el,e as a,s,c as p,q as ll,h as tl,a as i,d as t,b as o,f as We,g as c,j as m,r as nl,k as z,l as xe,m as n,n as r,t as d,o as u,p as b}from"../chunks/index.b1175496.js";import{C as sl,H as P}from"../chunks/Heading.eda51538.js";import{C as A}from"../chunks/CodeBlock.9d480d26.js";import{E as ol}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.ea377ea6.js";function al(Ie){let M,K,q,O,g,D,w,ee,Z,Ce=`<strong>定义清晰明确的工具集对性能至关重要。</strong> 正如我们在<a href="../../unit1/tools">第一单元</a>中讨论的，清晰的工具接口更便于 LLM 使用。
就像人类工程师使用的软件API接口一样，如果工具的工作原理容易理解，LLM就能更好地利用它。`,le,j,Le="LlamaIndex 中主要包含<strong>四种工具类型</strong>：",te,J,Re='<img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit2/llama-index/tools.png" alt="工具"/>',ne,U,Ve="<li><code>FunctionTool</code>：将任意 Python 函数转换为智能体可以使用的工具。它能自动识别函数的工作原理。</li> <li><code>QueryEngineTool</code>：让智能体能够使用查询引擎的工具。由于智能体本身基于查询引擎构建，因此它们也可以将其他智能体作为工具使用。</li> <li><code>Toolspecs</code>：由社区创建的预设工具集，通常包含针对特定服务（如 Gmail）的工具。</li> <li><code>Utility Tools</code>：帮助处理来自其他工具的大量数据的特殊工具。</li>",se,$,ke="下面我们将详细讲解每种工具的使用方法。",oe,v,ae,f,Be='<p>您可以通过<a href="https://huggingface.co/agents-course/notebooks/blob/main/unit2/llama-index/tools.ipynb" target="_blank">这个 Notebook</a>中的代码进行实践（支持 Google Colab 运行）。</p>',ie,G,He=`FunctionTool 提供了一种简单的方式，可以将任意 Python 函数封装成智能体可用的工具。
你可以传递同步或异步函数给这个工具，并可选地指定<code>name</code>和<code>description</code>参数。
工具名称和描述尤为重要，它们能帮助智能体理解何时以及如何有效地使用该工具。
以下示例演示了如何创建并调用 FunctionTool。`,me,_,pe,y,Ee='<p>使用带有函数调用的智能体或 LLM 时，所选工具（以及为该工具编写的参数）在很大程度上取决于工具名称以及工具用途和参数的描述。在<a href="https://docs.llamaindex.ai/en/stable/examples/workflow/function_calling_agent/">函数调用指南</a>。</p>',ce,W,re,x,Ne=`我们在上一单元中定义的 <code>QueryEngine</code> 可以使用 <code>QueryEngineTool</code> 类轻松转换为工具。
让我们看看如何在下面的示例中从 <code>QueryEngine</code> 创建 <code>QueryEngineTool</code>。`,de,I,ue,C,be,L,Xe=`将 <code>ToolSpecs</code> 视为可以和谐协作的工具集合 - 就像一个组织良好的专业工具包。
就像机械师的工具包包含用于车辆维修的互补工具一样，<code>ToolSpec</code> 会将相关工具组合起来用于特定目的。
例如，会计智能体的 <code>ToolSpec</code> 可以优雅地集成电子表格功能、电子邮件功能和计算工具，以精确高效地处理财务任务。`,Me,T,F,Se="安装 Google Toolspec",_e,R,fe,V,Qe="现在我们可以加载工具规范并将其转换为工具列表。",ye,k,Te,B,Fe="为了更详细地了解这些工具，我们可以查看每个工具的<code>元数据</code>。",he,H,ge,E,we,N,qe=`很多时候，直接查询 API <strong>可能会返回过量数据</strong>，其中部分可能无关紧要、超出 LLM 的上下文窗口容量，或导致不必要的 token 消耗。
让我们详细了解以下两个主要实用工具：`,Ze,X,Ye="<li><code>OnDemandToolLoader</code>：该工具可将任何现有的 LlamaIndex 数据加载器（BaseReader 类）转化为智能体可使用的工具。该工具可通过调用数据加载器<code>load_data</code>所需的所有参数以及自然语言查询字符串来触发。在执行过程中，我们首先从数据加载器加载数据，建立索引（例如使用向量存储），然后进行”按需”查询。这三个步骤都在单个工具调用中完成。</li> <li><code>LoadAndSearchToolSpec</code>：该工具规范接受任何现有工具作为输入。作为工具规范，它实现了<code>to_tool_list</code>方法，调用该方法时会返回两个工具：加载工具和搜索工具。加载工具的执行会调用底层工具并对输出建立索引（默认使用向量索引）。搜索工具的执行会接受查询字符串作为输入并调用底层索引。</li>",je,h,ze='<p>您可以在<a href="https://llamahub.ai/">LlamaHub</a>找到各种工具规范和实用工具</p>',Je,S,Pe="现在我们已经理解了 LlamaIndex 中智能体和工具的基础知识，接下来让我们看看如何<strong>使用 LlamaIndex 创建可配置且易管理的工作流程！</strong>",Ue,Q,$e,Y,ve;return g=new sl({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),w=new P({props:{title:"在 LlamaIndex 中使用工具",local:"在-llamaindex-中使用工具",headingTag:"h1"}}),v=new P({props:{title:"创建FunctionTool",local:"创建functiontool",headingTag:"h2"}}),_=new A({props:{code:"ZnJvbSUyMGxsYW1hX2luZGV4LmNvcmUudG9vbHMlMjBpbXBvcnQlMjBGdW5jdGlvblRvb2wlMEElMEFkZWYlMjBnZXRfd2VhdGhlcihsb2NhdGlvbiUzQSUyMHN0ciklMjAtJTNFJTIwc3RyJTNBJTBBJTIwJTIwJTIwJTIwJTIyJTIyJTIyVXNlZnVsJTIwZm9yJTIwZ2V0dGluZyUyMHRoZSUyMHdlYXRoZXIlMjBmb3IlMjBhJTIwZ2l2ZW4lMjBsb2NhdGlvbi4lMjIlMjIlMjIlMEElMjAlMjAlMjAlMjBwcmludChmJTIyR2V0dGluZyUyMHdlYXRoZXIlMjBmb3IlMjAlN0Jsb2NhdGlvbiU3RCUyMiklMEElMjAlMjAlMjAlMjByZXR1cm4lMjBmJTIyVGhlJTIwd2VhdGhlciUyMGluJTIwJTdCbG9jYXRpb24lN0QlMjBpcyUyMHN1bm55JTIyJTBBJTBBdG9vbCUyMCUzRCUyMEZ1bmN0aW9uVG9vbC5mcm9tX2RlZmF1bHRzKCUwQSUyMCUyMCUyMCUyMGdldF93ZWF0aGVyJTJDJTBBJTIwJTIwJTIwJTIwbmFtZSUzRCUyMm15X3dlYXRoZXJfdG9vbCUyMiUyQyUwQSUyMCUyMCUyMCUyMGRlc2NyaXB0aW9uJTNEJTIyVXNlZnVsJTIwZm9yJTIwZ2V0dGluZyUyMHRoZSUyMHdlYXRoZXIlMjBmb3IlMjBhJTIwZ2l2ZW4lMjBsb2NhdGlvbi4lMjIlMkMlMEEpJTBBdG9vbC5jYWxsKCUyMk5ldyUyMFlvcmslMjIp",highlighted:`<span class="hljs-keyword">from</span> llama_index.core.tools <span class="hljs-keyword">import</span> FunctionTool

<span class="hljs-keyword">def</span> <span class="hljs-title function_">get_weather</span>(<span class="hljs-params">location: <span class="hljs-built_in">str</span></span>) -&gt; <span class="hljs-built_in">str</span>:
    <span class="hljs-string">&quot;&quot;&quot;Useful for getting the weather for a given location.&quot;&quot;&quot;</span>
    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Getting weather for <span class="hljs-subst">{location}</span>&quot;</span>)
    <span class="hljs-keyword">return</span> <span class="hljs-string">f&quot;The weather in <span class="hljs-subst">{location}</span> is sunny&quot;</span>

tool = FunctionTool.from_defaults(
    get_weather,
    name=<span class="hljs-string">&quot;my_weather_tool&quot;</span>,
    description=<span class="hljs-string">&quot;Useful for getting the weather for a given location.&quot;</span>,
)
tool.call(<span class="hljs-string">&quot;New York&quot;</span>)`,wrap:!1}}),W=new P({props:{title:"创建 QueryEngineTool",local:"创建-queryenginetool",headingTag:"h2"}}),I=new A({props:{code:"ZnJvbSUyMGxsYW1hX2luZGV4LmNvcmUlMjBpbXBvcnQlMjBWZWN0b3JTdG9yZUluZGV4JTBBZnJvbSUyMGxsYW1hX2luZGV4LmNvcmUudG9vbHMlMjBpbXBvcnQlMjBRdWVyeUVuZ2luZVRvb2wlMEFmcm9tJTIwbGxhbWFfaW5kZXgubGxtcy5odWdnaW5nZmFjZV9hcGklMjBpbXBvcnQlMjBIdWdnaW5nRmFjZUluZmVyZW5jZUFQSSUwQWZyb20lMjBsbGFtYV9pbmRleC5lbWJlZGRpbmdzLmh1Z2dpbmdmYWNlX2FwaSUyMGltcG9ydCUyMEh1Z2dpbmdGYWNlSW5mZXJlbmNlQVBJRW1iZWRkaW5nJTBBZnJvbSUyMGxsYW1hX2luZGV4LnZlY3Rvcl9zdG9yZXMuY2hyb21hJTIwaW1wb3J0JTIwQ2hyb21hVmVjdG9yU3RvcmUlMEElMEFlbWJlZF9tb2RlbCUyMCUzRCUyMEh1Z2dpbmdGYWNlSW5mZXJlbmNlQVBJRW1iZWRkaW5nKCUyMkJBQUklMkZiZ2Utc21hbGwtZW4tdjEuNSUyMiklMEElMEFkYiUyMCUzRCUyMGNocm9tYWRiLlBlcnNpc3RlbnRDbGllbnQocGF0aCUzRCUyMi4lMkZhbGZyZWRfY2hyb21hX2RiJTIyKSUwQWNocm9tYV9jb2xsZWN0aW9uJTIwJTNEJTIwZGIuZ2V0X29yX2NyZWF0ZV9jb2xsZWN0aW9uKCUyMmFsZnJlZCUyMiklMEF2ZWN0b3Jfc3RvcmUlMjAlM0QlMjBDaHJvbWFWZWN0b3JTdG9yZShjaHJvbWFfY29sbGVjdGlvbiUzRGNocm9tYV9jb2xsZWN0aW9uKSUwQSUwQWluZGV4JTIwJTNEJTIwVmVjdG9yU3RvcmVJbmRleC5mcm9tX3ZlY3Rvcl9zdG9yZSh2ZWN0b3Jfc3RvcmUlMkMlMjBlbWJlZF9tb2RlbCUzRGVtYmVkX21vZGVsKSUwQSUwQWxsbSUyMCUzRCUyMEh1Z2dpbmdGYWNlSW5mZXJlbmNlQVBJKG1vZGVsX25hbWUlM0QlMjJRd2VuJTJGUXdlbjIuNS1Db2Rlci0zMkItSW5zdHJ1Y3QlMjIpJTBBcXVlcnlfZW5naW5lJTIwJTNEJTIwaW5kZXguYXNfcXVlcnlfZW5naW5lKGxsbSUzRGxsbSklMEF0b29sJTIwJTNEJTIwUXVlcnlFbmdpbmVUb29sLmZyb21fZGVmYXVsdHMocXVlcnlfZW5naW5lJTJDJTIwbmFtZSUzRCUyMnNvbWUlMjB1c2VmdWwlMjBuYW1lJTIyJTJDJTIwZGVzY3JpcHRpb24lM0QlMjJzb21lJTIwdXNlZnVsJTIwZGVzY3JpcHRpb24lMjIp",highlighted:`<span class="hljs-keyword">from</span> llama_index.core <span class="hljs-keyword">import</span> VectorStoreIndex
<span class="hljs-keyword">from</span> llama_index.core.tools <span class="hljs-keyword">import</span> QueryEngineTool
<span class="hljs-keyword">from</span> llama_index.llms.huggingface_api <span class="hljs-keyword">import</span> HuggingFaceInferenceAPI
<span class="hljs-keyword">from</span> llama_index.embeddings.huggingface_api <span class="hljs-keyword">import</span> HuggingFaceInferenceAPIEmbedding
<span class="hljs-keyword">from</span> llama_index.vector_stores.chroma <span class="hljs-keyword">import</span> ChromaVectorStore

embed_model = HuggingFaceInferenceAPIEmbedding(<span class="hljs-string">&quot;BAAI/bge-small-en-v1.5&quot;</span>)

db = chromadb.PersistentClient(path=<span class="hljs-string">&quot;./alfred_chroma_db&quot;</span>)
chroma_collection = db.get_or_create_collection(<span class="hljs-string">&quot;alfred&quot;</span>)
vector_store = ChromaVectorStore(chroma_collection=chroma_collection)

index = VectorStoreIndex.from_vector_store(vector_store, embed_model=embed_model)

llm = HuggingFaceInferenceAPI(model_name=<span class="hljs-string">&quot;Qwen/Qwen2.5-Coder-32B-Instruct&quot;</span>)
query_engine = index.as_query_engine(llm=llm)
tool = QueryEngineTool.from_defaults(query_engine, name=<span class="hljs-string">&quot;some useful name&quot;</span>, description=<span class="hljs-string">&quot;some useful description&quot;</span>)`,wrap:!1}}),C=new P({props:{title:"创建 Toolspecs",local:"创建-toolspecs",headingTag:"h2"}}),R=new A({props:{code:"cGlwJTIwaW5zdGFsbCUyMGxsYW1hLWluZGV4LXRvb2xzLWdvb2dsZQ==",highlighted:"pip install llama-index-tools-google",wrap:!1}}),k=new A({props:{code:"ZnJvbSUyMGxsYW1hX2luZGV4LnRvb2xzLmdvb2dsZSUyMGltcG9ydCUyMEdtYWlsVG9vbFNwZWMlMEElMEF0b29sX3NwZWMlMjAlM0QlMjBHbWFpbFRvb2xTcGVjKCklMEF0b29sX3NwZWNfbGlzdCUyMCUzRCUyMHRvb2xfc3BlYy50b190b29sX2xpc3QoKQ==",highlighted:`<span class="hljs-keyword">from</span> llama_index.tools.google <span class="hljs-keyword">import</span> GmailToolSpec

tool_spec = GmailToolSpec()
tool_spec_list = tool_spec.to_tool_list()`,wrap:!1}}),H=new A({props:{code:"JTVCKHRvb2wubWV0YWRhdGEubmFtZSUyQyUyMHRvb2wubWV0YWRhdGEuZGVzY3JpcHRpb24pJTIwZm9yJTIwdG9vbCUyMGluJTIwdG9vbF9zcGVjX2xpc3QlNUQ=",highlighted:'[(tool.metadata.name, tool.metadata.description) <span class="hljs-keyword">for</span> tool <span class="hljs-keyword">in</span> tool_spec_list]',wrap:!1}}),E=new P({props:{title:"实用工具",local:"实用工具",headingTag:"h2"}}),Q=new ol({props:{source:"https://github.com/huggingface/agents-course/blob/main/units/zh-CN/unit2/llama-index/tools.mdx"}}),{c(){M=a("meta"),K=s(),q=a("p"),O=s(),p(g.$$.fragment),D=s(),p(w.$$.fragment),ee=s(),Z=a("p"),Z.innerHTML=Ce,le=s(),j=a("p"),j.innerHTML=Le,te=s(),J=a("p"),J.innerHTML=Re,ne=s(),U=a("ol"),U.innerHTML=Ve,se=s(),$=a("p"),$.textContent=ke,oe=s(),p(v.$$.fragment),ae=s(),f=a("blockquote"),f.innerHTML=Be,ie=s(),G=a("p"),G.innerHTML=He,me=s(),p(_.$$.fragment),pe=s(),y=a("blockquote"),y.innerHTML=Ee,ce=s(),p(W.$$.fragment),re=s(),x=a("p"),x.innerHTML=Ne,de=s(),p(I.$$.fragment),ue=s(),p(C.$$.fragment),be=s(),L=a("p"),L.innerHTML=Xe,Me=s(),T=a("details"),F=a("summary"),F.textContent=Se,_e=ll(`
正如 [LlamaHub 部分](llama-hub) 中介绍的那样，我们可以使用以下命令安装 Google toolspec：

	`),p(R.$$.fragment),fe=s(),V=a("p"),V.textContent=Qe,ye=s(),p(k.$$.fragment),Te=s(),B=a("p"),B.innerHTML=Fe,he=s(),p(H.$$.fragment),ge=s(),p(E.$$.fragment),we=s(),N=a("p"),N.innerHTML=qe,Ze=s(),X=a("ol"),X.innerHTML=Ye,je=s(),h=a("blockquote"),h.innerHTML=ze,Je=s(),S=a("p"),S.innerHTML=Pe,Ue=s(),p(Q.$$.fragment),$e=s(),Y=a("p"),this.h()},l(e){const l=tl("svelte-u9bgzb",document.head);M=i(l,"META",{name:!0,content:!0}),l.forEach(t),K=o(e),q=i(e,"P",{}),We(q).forEach(t),O=o(e),c(g.$$.fragment,e),D=o(e),c(w.$$.fragment,e),ee=o(e),Z=i(e,"P",{"data-svelte-h":!0}),m(Z)!=="svelte-2m2wye"&&(Z.innerHTML=Ce),le=o(e),j=i(e,"P",{"data-svelte-h":!0}),m(j)!=="svelte-3o10ap"&&(j.innerHTML=Le),te=o(e),J=i(e,"P",{"data-svelte-h":!0}),m(J)!=="svelte-1puooe3"&&(J.innerHTML=Re),ne=o(e),U=i(e,"OL",{"data-svelte-h":!0}),m(U)!=="svelte-au1cjc"&&(U.innerHTML=Ve),se=o(e),$=i(e,"P",{"data-svelte-h":!0}),m($)!=="svelte-1jlj8k4"&&($.textContent=ke),oe=o(e),c(v.$$.fragment,e),ae=o(e),f=i(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),m(f)!=="svelte-t6s5r7"&&(f.innerHTML=Be),ie=o(e),G=i(e,"P",{"data-svelte-h":!0}),m(G)!=="svelte-c86ggq"&&(G.innerHTML=He),me=o(e),c(_.$$.fragment,e),pe=o(e),y=i(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),m(y)!=="svelte-1molfgm"&&(y.innerHTML=Ee),ce=o(e),c(W.$$.fragment,e),re=o(e),x=i(e,"P",{"data-svelte-h":!0}),m(x)!=="svelte-19fn29r"&&(x.innerHTML=Ne),de=o(e),c(I.$$.fragment,e),ue=o(e),c(C.$$.fragment,e),be=o(e),L=i(e,"P",{"data-svelte-h":!0}),m(L)!=="svelte-4ryh0b"&&(L.innerHTML=Xe),Me=o(e),T=i(e,"DETAILS",{});var Ge=We(T);F=i(Ge,"SUMMARY",{"data-svelte-h":!0}),m(F)!=="svelte-jh6hbu"&&(F.textContent=Se),_e=nl(Ge,`
正如 [LlamaHub 部分](llama-hub) 中介绍的那样，我们可以使用以下命令安装 Google toolspec：

	`),c(R.$$.fragment,Ge),Ge.forEach(t),fe=o(e),V=i(e,"P",{"data-svelte-h":!0}),m(V)!=="svelte-1fx0kig"&&(V.textContent=Qe),ye=o(e),c(k.$$.fragment,e),Te=o(e),B=i(e,"P",{"data-svelte-h":!0}),m(B)!=="svelte-io2nl"&&(B.innerHTML=Fe),he=o(e),c(H.$$.fragment,e),ge=o(e),c(E.$$.fragment,e),we=o(e),N=i(e,"P",{"data-svelte-h":!0}),m(N)!=="svelte-1w2i7nx"&&(N.innerHTML=qe),Ze=o(e),X=i(e,"OL",{"data-svelte-h":!0}),m(X)!=="svelte-1aywyxf"&&(X.innerHTML=Ye),je=o(e),h=i(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),m(h)!=="svelte-2q4ehq"&&(h.innerHTML=ze),Je=o(e),S=i(e,"P",{"data-svelte-h":!0}),m(S)!=="svelte-drrdj6"&&(S.innerHTML=Pe),Ue=o(e),c(Q.$$.fragment,e),$e=o(e),Y=i(e,"P",{}),We(Y).forEach(t),this.h()},h(){z(M,"name","hf:doc:metadata"),z(M,"content",il),z(f,"class","tip"),z(y,"class","tip"),z(h,"class","tip")},m(e,l){xe(document.head,M),n(e,K,l),n(e,q,l),n(e,O,l),r(g,e,l),n(e,D,l),r(w,e,l),n(e,ee,l),n(e,Z,l),n(e,le,l),n(e,j,l),n(e,te,l),n(e,J,l),n(e,ne,l),n(e,U,l),n(e,se,l),n(e,$,l),n(e,oe,l),r(v,e,l),n(e,ae,l),n(e,f,l),n(e,ie,l),n(e,G,l),n(e,me,l),r(_,e,l),n(e,pe,l),n(e,y,l),n(e,ce,l),r(W,e,l),n(e,re,l),n(e,x,l),n(e,de,l),r(I,e,l),n(e,ue,l),r(C,e,l),n(e,be,l),n(e,L,l),n(e,Me,l),n(e,T,l),xe(T,F),xe(T,_e),r(R,T,null),n(e,fe,l),n(e,V,l),n(e,ye,l),r(k,e,l),n(e,Te,l),n(e,B,l),n(e,he,l),r(H,e,l),n(e,ge,l),r(E,e,l),n(e,we,l),n(e,N,l),n(e,Ze,l),n(e,X,l),n(e,je,l),n(e,h,l),n(e,Je,l),n(e,S,l),n(e,Ue,l),r(Q,e,l),n(e,$e,l),n(e,Y,l),ve=!0},p:Ke,i(e){ve||(d(g.$$.fragment,e),d(w.$$.fragment,e),d(v.$$.fragment,e),d(_.$$.fragment,e),d(W.$$.fragment,e),d(I.$$.fragment,e),d(C.$$.fragment,e),d(R.$$.fragment,e),d(k.$$.fragment,e),d(H.$$.fragment,e),d(E.$$.fragment,e),d(Q.$$.fragment,e),ve=!0)},o(e){u(g.$$.fragment,e),u(w.$$.fragment,e),u(v.$$.fragment,e),u(_.$$.fragment,e),u(W.$$.fragment,e),u(I.$$.fragment,e),u(C.$$.fragment,e),u(R.$$.fragment,e),u(k.$$.fragment,e),u(H.$$.fragment,e),u(E.$$.fragment,e),u(Q.$$.fragment,e),ve=!1},d(e){e&&(t(K),t(q),t(O),t(D),t(ee),t(Z),t(le),t(j),t(te),t(J),t(ne),t(U),t(se),t($),t(oe),t(ae),t(f),t(ie),t(G),t(me),t(pe),t(y),t(ce),t(re),t(x),t(de),t(ue),t(be),t(L),t(Me),t(T),t(fe),t(V),t(ye),t(Te),t(B),t(he),t(ge),t(we),t(N),t(Ze),t(X),t(je),t(h),t(Je),t(S),t(Ue),t($e),t(Y)),t(M),b(g,e),b(w,e),b(v,e),b(_,e),b(W,e),b(I,e),b(C,e),b(R),b(k,e),b(H,e),b(E,e),b(Q,e)}}}const il='{"title":"在 LlamaIndex 中使用工具","local":"在-llamaindex-中使用工具","sections":[{"title":"创建FunctionTool","local":"创建functiontool","sections":[],"depth":2},{"title":"创建 QueryEngineTool","local":"创建-queryenginetool","sections":[],"depth":2},{"title":"创建 Toolspecs","local":"创建-toolspecs","sections":[],"depth":2},{"title":"实用工具","local":"实用工具","sections":[],"depth":2}],"depth":1}';function ml(Ie){return Oe(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class bl extends De{constructor(M){super(),el(this,M,ml,al,Ae,{})}}export{bl as component};
