134 lines
143 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>caller | Marsho AI</title>
<meta name="description" content="Kawaii, Intelligent and Easy to Extend">
<meta name="generator" content="VitePress v1.6.3">
<link rel="preload stylesheet" href="/assets/style.DvoidLlL.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.DEVd50K1.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.0_0tl2Go.js">
<link rel="modulepreload" href="/assets/chunks/framework.AELpvxz7.js">
<link rel="modulepreload" href="/assets/en_dev_api_plugin_func_call_caller.md.CmmMyc7F.lean.js">
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-46cada41><!--[--><!--]--><!--[--><span tabindex="-1" data-v-82af304d></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-82af304d>Skip to content</a><!--]--><!----><header class="VPNav" data-v-46cada41 data-v-0ec1cc98><div class="VPNavBar" data-v-0ec1cc98 data-v-97e37718><div class="wrapper" data-v-97e37718><div class="container" data-v-97e37718><div class="title" data-v-97e37718><div class="VPNavBarTitle has-sidebar" data-v-97e37718 data-v-9620ba61><a class="title" href="/en/" data-v-9620ba61><!--[--><!--]--><!--[--><!--[--><!--[--><img class="VPImage dark logo" src="/marsho-full.svg" alt="Marsho Logo" data-v-ce14eec4><!--]--><!--[--><img class="VPImage light logo" src="/marsho-full.svg" alt="Marsho Logo" data-v-ce14eec4><!--]--><!--]--><!--]--><span data-v-9620ba61>Marsho AI</span><!--[--><!--]--></a></div></div><div class="content" data-v-97e37718><div class="content-body" data-v-97e37718><!--[--><!--]--><div class="VPNavBarSearch search" data-v-97e37718><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-97e37718 data-v-fd0d02da><span id="main-nav-aria-label" class="visually-hidden" data-v-fd0d02da> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/en" tabindex="0" data-v-fd0d02da data-v-c7cdc412><!--[--><span data-v-c7cdc412>Home</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/en/start/install" tabindex="0" data-v-fd0d02da data-v-c7cdc412><!--[--><span data-v-c7cdc412>Usage</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/en/dev/extension" tabindex="0" data-v-fd0d02da data-v-c7cdc412><!--[--><span data-v-c7cdc412>Develop</span><!--]--></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-97e37718 data-v-da60b316 data-v-3174d294><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Language" data-v-3174d294><span class="text" data-v-3174d294><span class="vpi-languages option-icon" data-v-3174d294></span><!----><span class="vpi-chevron-down text-icon" data-v-3174d294></span></span></button><div class="menu" data-v-3174d294><div class="VPMenu" data-v-3174d294 data-v-90ca5f1b><!----><!--[--><!--[--><div class="items" data-v-da60b316><p class="title" data-v-da60b316>English</p><!--[--><div class="VPMenuLink" data-v-da60b316 data-v-5a3b110a><a class="VPLink link" href="/dev/api/plugin/func_call/caller" data-v-5a3b110a><!--[--><span data-v-5a3b110a>简体中文</span><!--]--></a></div><div class="VPMenuLink" data-v-da60b316 data-v-5a3b110a><a class="VPLink link" href="/ja/dev/api/plugin/func_call/caller" data-v-5a3b110a><!--[--><span data-v-5a3b110a>日本語</span><!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-97e37718 data-v-b569c26a><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-b569c26a data-v-a8d11977 data-v-d4fb1d40><span class="check" data-v-d4fb1d40><span class="icon" data-v-d4fb1d40><!--[--><span class="vpi-sun sun" data-v-a8d11977></span><span class="vpi-moon moon" data-v-a8d11977></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-97e37718 data-v-25e71cd1 data-v-93344165><!--[--><a class="VPSocialLink no-icon" href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai" aria-label="github" target="_blank" rel="noopener" data-v-93344165 data-v-b8870a62><span class="vpi-social-github"></span></a><a class="VPSocialLink no-icon" href="https://git.liteyuki.icu/LiteyukiStudio/nonebot-plugin-marshoai" aria-label target="_blank" rel="noopener" data-v-93344165 data-v-b8870a62><svg t="1725391346807" class="icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5067" width="256" height="256"><path d="M1004.692673 466.396616l-447.094409-447.073929c-25.743103-25.763582-67.501405-25.763582-93.264987 0l-103.873521 103.873521 78.171378 78.171378c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928 0 14.827372-3.358686 28.856031-9.359266 41.389666l127.97824 127.97824c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928s-42.98709 96.00928-96.00928 96.00928-96.00928-42.98709-96.00928-96.00928c0-14.827372 3.358686-28.856031 9.359266-41.389666l-127.97824-127.97824c-3.051489 1.454065-6.184898 2.744293-9.379746 3.870681l0 266.97461c37.273227 13.188988 63.99936 48.721433 63.99936 90.520695 0 53.02219-42.98709 96.00928-96.00928 96.00928s-96.00928-42.98709-96.00928-96.00928c0-41.799262 26.726133-77.331707 63.99936-90.520695l0-266.97461c-37.273227-13.188988-63.99936-48.721433-63.99936-90.520695 0-14.827372 3.358686-28.856031 9.359266-41.389666l-78.171378-78.171378-295.892081 295.871601c-25.743103 25.784062-25.743103 67.542365 0 93.285467l447.114889 447.073929c25.743103 25.743103 67.480925 25.743103 93.264987 0l445.00547-445.00547c25.763582-25.763582 25.763582-67.542365 0-93.285467z" fill="#a2d8f4" p-id="5068"></path></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-97e37718 data-v-7f49392e data-v-3174d294><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-3174d294><span class="vpi-more-horizontal icon" data-v-3174d294></span></button><div class="menu" data-v-3174d294><div class="VPMenu" data-v-3174d294 data-v-90ca5f1b><!----><!--[--><!--[--><div class="group translations" data-v-7f49392e><p class="trans-title" data-v-7f49392e>English</p><!--[--><div class="VPMenuLink" data-v-7f49392e data-v-5a3b110a><a class="VPLink link" href="/dev/api/plugin/func_call/caller" data-v-5a3b110a><!--[--><span data-v-5a3b110a>简体中文</span><!--]--></a></div><div class="VPMenuLink" data-v-7f49392e data-v-5a3b110a><a class="VPLink link" href="/ja/dev/api/plugin/func_call/caller" data-v-5a3b110a><!--[--><span data-v-5a3b110a>日本語</span><!--]--></a></div><!--]--></div><div class="group" data-v-7f49392e><div class="item appearance" data-v-7f49392e><p class="label" data-v-7f49392e>Theme</p><div class="appearance-action" data-v-7f49392e><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-7f49392e data-v-a8d11977 data-v-d4fb1d40><span class="check" data-v-d4fb1d40><span class="icon" data-v-d4fb1d40><!--[--><span class="vpi-sun sun" data-v-a8d11977></span><span class="vpi-moon moon" data-v-a8d11977></span><!--]--></span></span></button></div></div></div><div class="group" data-v-7f49392e><div class="item social-links" data-v-7f49392e><div class="VPSocialLinks social-links-list" data-v-7f49392e data-v-93344165><!--[--><a class="VPSocialLink no-icon" href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai" aria-label="github" target="_blank" rel="noopener" data-v-93344165 data-v-b8870a62><span class="vpi-social-github"></span></a><a class="VPSocialLink no-icon" href="https://git.liteyuki.icu/LiteyukiStudio/nonebot-plugin-marshoai" aria-label target="_blank" rel="noopener" data-v-93344165 data-v-b8870a62><svg t="1725391346807" class="icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5067" width="256" height="256"><path d="M1004.692673 466.396616l-447.094409-447.073929c-25.743103-25.763582-67.501405-25.763582-93.264987 0l-103.873521 103.873521 78.171378 78.171378c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928 0 14.827372-3.358686 28.856031-9.359266 41.389666l127.97824 127.97824c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928s-42.98709 96.00928-96.00928 96.00928-96.00928-42.98709-96.00928-96.00928c0-14.827372 3.358686-28.856031 9.359266-41.389666l-127.97824-127.97824c-3.051489 1.454065-6.184898 2.744293-9.379746 3.870681l0 266.97461c37.273227 13.188988 63.99936 48.721433 63.99936 90.520695 0 53.02219-42.98709 96.00928-96.00928 96.00928s-96.00928-42.98709-96.00928-96.00928c0-41.799262 26.726133-77.331707 63.99936-90.520695l0-266.97461c-37.273227-13.188988-63.99936-48.721433-63.99936-90.520695 0-14.827372 3.358686-28.856031 9.359266-41.389666l-78.171378-78.171378-295.892081 295.871601c-25.743103 25.784062-25.743103 67.542365 0 93.285467l447.114889 447.073929c25.743103 25.743103 67.480925 25.743103 93.264987 0l445.00547-445.00547c25.763582-25.763582 25.763582-67.542365 0-93.285467z" fill="#a2d8f4" p-id="5068"></path></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-97e37718 data-v-3c8ac357><span class="container" data-v-3c8ac357><span class="top" data-v-3c8ac357></span><span class="middle" data-v-3c8ac357></span><span class="bottom" data-v-3c8ac357></span></span></button></div></div></div></div><div class="divider" data-v-97e37718><div class="divider-line" data-v-97e37718></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-46cada41 data-v-2dee1f17><div class="container" data-v-2dee1f17><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-2dee1f17><span class="vpi-align-left menu-icon" data-v-2dee1f17></span><span class="menu-text" data-v-2dee1f17>Option</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-2dee1f17 data-v-706d3217><button data-v-706d3217>To top</button><!----></div></div></div><aside class="VPSidebar" data-v-46cada41 data-v-2a145dbd><div class="curtain" data-v-2a145dbd></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-2a145dbd><span class="visually-hidden" id="sidebar-aria-label" data-v-2a145dbd> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-45128375><section class="VPSidebarItem level-0 has-active" data-v-45128375 data-v-4cd12723><div class="item" role="button" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><h2 class="text" data-v-4cd12723>MARSHOAI</h2><!----></div><div class="items" data-v-4cd12723><!--[--><section class="VPSidebarItem level-1 collapsible collapsed is-link has-active" data-v-4cd12723 data-v-4cd12723><div class="item" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/index" data-v-4cd12723><!--[--><h3 class="text" data-v-4cd12723>api</h3><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><div class="VPSidebarItem level-2 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/azure" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>azure</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/azure_onebot" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>azure_onebot</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-2 collapsible collapsed" data-v-4cd12723 data-v-4cd12723><div class="item" role="button" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><h4 class="text" data-v-4cd12723>plugins</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><section class="VPSidebarItem level-3 collapsible collapsed is-link" data-v-4cd12723 data-v-4cd12723><div class="item" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/marshoai_basic/index" data-v-4cd12723><!--[--><h5 class="text" data-v-4cd12723>marshoai_basic</h5><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/marshoai_basic/" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>index</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-3 collapsible collapsed is-link" data-v-4cd12723 data-v-4cd12723><div class="item" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/builtin_tools/index" data-v-4cd12723><!--[--><h5 class="text" data-v-4cd12723>builtin_tools</h5><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/builtin_tools/chat" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>chat</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/builtin_tools/file_io" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>file_io</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/builtin_tools/" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>index</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/builtin_tools/liteyuki" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>liteyuki</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/builtin_tools/manager" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>manager</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/builtin_tools/network" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>network</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/builtin_tools/utils" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>utils</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-3 collapsible collapsed is-link" data-v-4cd12723 data-v-4cd12723><div class="item" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/marshoai_bangumi/index" data-v-4cd12723><!--[--><h5 class="text" data-v-4cd12723>marshoai_bangumi</h5><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/marshoai_bangumi/" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>index</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-3 collapsible collapsed is-link" data-v-4cd12723 data-v-4cd12723><div class="item" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/twisuki_megakits/index" data-v-4cd12723><!--[--><h5 class="text" data-v-4cd12723>twisuki_megakits</h5><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/twisuki_megakits/" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>index</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/twisuki_megakits/mk_morse_code" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>mk_morse_code</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/twisuki_megakits/mk_nya_code" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>mk_nya_code</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-3 collapsible collapsed is-link" data-v-4cd12723 data-v-4cd12723><div class="item" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/twisuki_petcat/index" data-v-4cd12723><!--[--><h5 class="text" data-v-4cd12723>twisuki_petcat</h5><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/twisuki_petcat/" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>index</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/twisuki_petcat/pc_cat" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>pc_cat</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/twisuki_petcat/pc_info" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>pc_info</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/twisuki_petcat/pc_shop" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>pc_shop</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins/twisuki_petcat/pc_token" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>pc_token</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section><section class="VPSidebarItem level-2 collapsible collapsed" data-v-4cd12723 data-v-4cd12723><div class="item" role="button" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><h4 class="text" data-v-4cd12723>plugins_test</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><section class="VPSidebarItem level-3 collapsible collapsed is-link" data-v-4cd12723 data-v-4cd12723><div class="item" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins_test/marshoai_basic/index" data-v-4cd12723><!--[--><h5 class="text" data-v-4cd12723>marshoai_basic</h5><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins_test/marshoai_basic/" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>index</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-3 collapsible collapsed is-link" data-v-4cd12723 data-v-4cd12723><div class="item" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins_test/marshoai_memory/index" data-v-4cd12723><!--[--><h5 class="text" data-v-4cd12723>marshoai_memory</h5><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins_test/marshoai_memory/command" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>command</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins_test/marshoai_memory/config" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>config</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins_test/marshoai_memory/" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>index</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-3 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins_test/random_number_generator" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>random_number_generator</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-3 collapsible collapsed is-link" data-v-4cd12723 data-v-4cd12723><div class="item" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins_test/snowykami_testplugin/index" data-v-4cd12723><!--[--><h5 class="text" data-v-4cd12723>snowykami_testplugin</h5><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins_test/snowykami_testplugin/" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>index</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-3 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugins_test/weather_demo" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>weather_demo</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2 collapsible collapsed" data-v-4cd12723 data-v-4cd12723><div class="item" role="button" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><h4 class="text" data-v-4cd12723>tools</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><section class="VPSidebarItem level-3 collapsible collapsed is-link" data-v-4cd12723 data-v-4cd12723><div class="item" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools/marshoai_bangumi/index" data-v-4cd12723><!--[--><h5 class="text" data-v-4cd12723>marshoai_bangumi</h5><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools/marshoai_bangumi/" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>index</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-3 collapsible collapsed is-link" data-v-4cd12723 data-v-4cd12723><div class="item" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools/marshoai_basic/index" data-v-4cd12723><!--[--><h5 class="text" data-v-4cd12723>marshoai_basic</h5><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools/marshoai_basic/" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>index</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-3 collapsible collapsed is-link" data-v-4cd12723 data-v-4cd12723><div class="item" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools/marshoai_megakits/index" data-v-4cd12723><!--[--><h5 class="text" data-v-4cd12723>marshoai_megakits</h5><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools/marshoai_megakits/" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>index</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools/marshoai_megakits/mk_common" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>mk_common</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools/marshoai_megakits/mk_info" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>mk_info</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools/marshoai_megakits/mk_morse_code" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>mk_morse_code</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools/marshoai_megakits/mk_nya_code" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>mk_nya_code</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-3 collapsible collapsed is-link" data-v-4cd12723 data-v-4cd12723><div class="item" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools/marshoai_memory/index" data-v-4cd12723><!--[--><h5 class="text" data-v-4cd12723>marshoai_memory</h5><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools/marshoai_memory/" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>index</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-3 collapsible collapsed is-link" data-v-4cd12723 data-v-4cd12723><div class="item" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools/marshoai_meogirl/index" data-v-4cd12723><!--[--><h5 class="text" data-v-4cd12723>marshoai_meogirl</h5><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools/marshoai_meogirl/" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>index</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools/marshoai_meogirl/mg_info" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>mg_info</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools/marshoai_meogirl/mg_introduce" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>mg_introduce</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools/marshoai_meogirl/mg_search" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>mg_search</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section><section class="VPSidebarItem level-2 collapsible collapsed" data-v-4cd12723 data-v-4cd12723><div class="item" role="button" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><h4 class="text" data-v-4cd12723>tools_wip</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><section class="VPSidebarItem level-3 collapsible collapsed is-link" data-v-4cd12723 data-v-4cd12723><div class="item" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools_wip/marshoai_memory/index" data-v-4cd12723><!--[--><h5 class="text" data-v-4cd12723>marshoai_memory</h5><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/tools_wip/marshoai_memory/" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>index</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section><div class="VPSidebarItem level-2 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/config" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>config</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/constants" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>constants</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/deal_latex" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>deal_latex</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/dev" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>dev</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/hooks" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>hooks</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/hunyuan" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>hunyuan</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>index</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/instances" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>instances</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/marsho" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>marsho</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/marsho_onebot" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>marsho_onebot</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/metadata" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>metadata</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/models" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>models</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/observer" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>observer</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-2 collapsible collapsed is-link has-active" data-v-4cd12723 data-v-4cd12723><div class="item" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugin/index" data-v-4cd12723><!--[--><h4 class="text" data-v-4cd12723>plugin</h4><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><div class="VPSidebarItem level-3 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugin/register" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>register</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-3 collapsible collapsed is-link has-active" data-v-4cd12723 data-v-4cd12723><div class="item" tabindex="0" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugin/func_call/index" data-v-4cd12723><!--[--><h5 class="text" data-v-4cd12723>func_call</h5><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-4cd12723><span class="vpi-chevron-right caret-icon" data-v-4cd12723></span></div></div><div class="items" data-v-4cd12723><!--[--><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugin/func_call/caller" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>caller</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugin/func_call/" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>index</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugin/func_call/models" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>models</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugin/func_call/params" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>params</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-4 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugin/func_call/utils" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>utils</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-3 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugin/" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>index</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugin/load" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>load</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugin/models" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>models</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugin/typing" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>typing</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/plugin/utils" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>utils</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-2 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/util" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>util</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-4cd12723 data-v-4cd12723><div class="item" data-v-4cd12723><div class="indicator" data-v-4cd12723></div><a class="VPLink link link" href="/en/dev/api/util_hunyuan" data-v-4cd12723><!--[--><p class="text" data-v-4cd12723>util_hunyuan</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-46cada41 data-v-d4bdad33><div class="VPDoc has-sidebar has-aside" data-v-d4bdad33 data-v-03864d9f><!--[--><!--]--><div class="container" data-v-03864d9f><div class="aside" data-v-03864d9f><div class="aside-curtain" data-v-03864d9f></div><div class="aside-container" data-v-03864d9f><div class="aside-content" data-v-03864d9f><div class="VPDocAside" data-v-03864d9f data-v-b9132f9a><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-b9132f9a data-v-2d71a95a><div class="content" data-v-2d71a95a><div class="outline-marker" data-v-2d71a95a></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-2d71a95a>On this page</div><ul class="VPDocOutlineItem root" data-v-2d71a95a data-v-0332be60><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-b9132f9a></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-03864d9f><div class="content-container" data-v-03864d9f><!--[--><!--]--><main class="main" data-v-03864d9f><div style="position:relative;" class="vp-doc _en_dev_api_plugin_func_call_caller" data-v-03864d9f><div><h1 id="module-nonebot-plugin-marshoai-plugin-func-call-caller" tabindex="-1"><strong>Module</strong> <code>nonebot_plugin_marshoai.plugin.func_call.caller</code> <a class="header-anchor" href="#module-nonebot-plugin-marshoai-plugin-func-call-caller" aria-label="Permalink to &quot;**Module** `nonebot_plugin_marshoai.plugin.func_call.caller`&quot;"></a></h1><h3 id="class-caller" tabindex="-1"><em><strong>class</strong></em> <code>Caller</code> <a class="header-anchor" href="#class-caller" aria-label="Permalink to &quot;***class*** `Caller`&quot;"></a></h3><hr><h4 id="func-init-self-name-str-description-str-none-none-func-type-str-function-no-module-name-bool-false" tabindex="-1"><em><strong>func</strong></em> <code>__init__(self, name: str = &#39;&#39;, description: str | None = None, func_type: str = &#39;function&#39;, no_module_name: bool = False)</code> <a class="header-anchor" href="#func-init-self-name-str-description-str-none-none-func-type-str-function-no-module-name-bool-false" aria-label="Permalink to &quot;***func*** `__init__(self, name: str = &#39;&#39;, description: str | None = None, func_type: str = &#39;function&#39;, no_module_name: bool = False)`&quot;"></a></h4><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L20" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> __init__</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, name: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, description: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">None</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, func_type: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;function&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, no_module_name: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">bool</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">False</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">):</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._name: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> name</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;函数名称&#39;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._description </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> description</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;函数描述&#39;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._func_type </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> func_type</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;函数类型&#39;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.no_module_name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> no_module_name</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;是否不包含模块名&#39;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._plugin: Plugin </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;所属插件对象,装饰时声明&#39;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.func: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">ASYNC_FUNCTION_CALL_FUNC</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;函数对象&#39;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.module_name: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;&#39;</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;模块名,仅为父级模块名,不一定是插件顶级模块名&#39;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._parameters: dict[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, Any] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {}</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;声明参数&#39;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.di: SessionContextDepends </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> SessionContextDepends()</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;依赖注入的参数信息&#39;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.default: dict[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, Any] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {}</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;默认值&#39;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.ctx: SessionContext </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._permission: Permission </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._rule: Rule </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span></span></code></pre></div></details><hr><h4 id="func-params-self-kwargs-any-caller" tabindex="-1"><em><strong>func</strong></em> <code>params(self, **kwargs: Any) -&gt; Caller</code> <a class="header-anchor" href="#func-params-self-kwargs-any-caller" aria-label="Permalink to &quot;***func*** `params(self, **kwargs: Any) -&gt; Caller`&quot;"></a></h4><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L55" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> params</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">**</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">kwargs: Any) -&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;Caller&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._parameters.update(kwargs)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span></span></code></pre></div></details><hr><h4 id="func-permission-self-permission-permission-caller" tabindex="-1"><em><strong>func</strong></em> <code>permission(self, permission: Permission) -&gt; Caller</code> <a class="header-anchor" href="#func-permission-self-permission-permission-caller" aria-label="Permalink to &quot;***func*** `permission(self, permission: Permission) -&gt; Caller`&quot;"></a></h4><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L59" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> permission</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, permission: Permission) -&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;Caller&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._permission </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._permission </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">or</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> permission</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span></span></code></pre></div></details><hr><h4 id="async-func-pre-check-self-tuple-bool-str" tabindex="-1"><em><strong>async func</strong></em> <code>pre_check(self) -&gt; tuple[bool, str]</code> <a class="header-anchor" href="#async-func-pre-check-self-tuple-bool-str" aria-label="Permalink to &quot;***async func*** `pre_check(self) -&gt; tuple[bool, str]`&quot;"></a></h4><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L63" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> pre_check</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self) -&gt; tuple[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">bool</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]:</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.ctx </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">is</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">False</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;上下文为空&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.ctx.bot </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">is</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> or</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.ctx.event </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">is</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">False</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;Context is None&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._permission </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">and</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">not</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> await</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._permission(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.ctx.bot, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.ctx.event)):</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">False</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;告诉用户 Permission Denied 权限不足&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.ctx.state </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">is</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">False</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;State is None&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._rule </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">and</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">not</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> await</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._rule(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.ctx.bot, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.ctx.event, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.ctx.state)):</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">False</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;告诉用户 Rule Denied 规则不匹配&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">True</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span></code></pre></div></details><hr><h4 id="func-rule-self-rule-rule-caller" tabindex="-1"><em><strong>func</strong></em> <code>rule(self, rule: Rule) -&gt; Caller</code> <a class="header-anchor" href="#func-rule-self-rule-rule-caller" aria-label="Permalink to &quot;***func*** `rule(self, rule: Rule) -&gt; Caller`&quot;"></a></h4><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L82" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> rule</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, rule: Rule) -&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;Caller&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._rule </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._rule </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">and</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> rule</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span></span></code></pre></div></details><hr><h4 id="func-name-self-name-str-caller" tabindex="-1"><em><strong>func</strong></em> <code>name(self, name: str) -&gt; Caller</code> <a class="header-anchor" href="#func-name-self-name-str-caller" aria-label="Permalink to &quot;***func*** `name(self, name: str) -&gt; Caller`&quot;"></a></h4><p><strong>Description</strong>: 设置函数名称</p><p><strong>Arguments</strong>:</p><blockquote><ul><li>name (str): 函数名称</li></ul></blockquote><p><strong>Return</strong>: Caller: Caller对象</p><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L86" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, name: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) -&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;Caller&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> name</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span></span></code></pre></div></details><hr><h4 id="func-description-self-description-str-caller" tabindex="-1"><em><strong>func</strong></em> <code>description(self, description: str) -&gt; Caller</code> <a class="header-anchor" href="#func-description-self-description-str-caller" aria-label="Permalink to &quot;***func*** `description(self, description: str) -&gt; Caller`&quot;"></a></h4><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L98" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> description</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, description: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) -&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;Caller&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._description </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> description</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span></span></code></pre></div></details><hr><h4 id="func-self-func-f-f" tabindex="-1"><em><strong>func</strong></em> <code>self () func: F =&gt; F</code> <a class="header-anchor" href="#func-self-func-f-f" aria-label="Permalink to &quot;***func*** `self () func: F =&gt; F`&quot;"></a></h4><p><strong>Description</strong>: 装饰函数注册为一个可被AI调用的function call函数</p><p><strong>Arguments</strong>:</p><blockquote><ul><li>func (F): 函数对象</li></ul></blockquote><p><strong>Return</strong>: F: 函数对象</p><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L102" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> __call__</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, func: F) -&gt; F:</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> global</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> _caller_data</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> not</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._name:</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> func.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">__name__</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> sig </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> inspect.signature(func)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> name, param </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">in</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> sig.parameters.items():</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> issubclass</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(param.annotation, Event) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">or</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> isinstance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(param.annotation, Event):</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.di.event </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> name</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> issubclass</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(param.annotation, Caller) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">or</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> isinstance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(param.annotation, Caller):</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.di.caller </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> name</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> issubclass</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(param.annotation, Bot) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">or</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> isinstance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(param.annotation, Bot):</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.di.bot </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> name</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> issubclass</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(param.annotation, Matcher) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">or</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> isinstance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(param.annotation, Matcher):</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.di.matcher </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> name</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> param.annotation </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> T_State:</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.di.state </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> name</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> name, param </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">in</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> sig.parameters.items():</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> param.default </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">is</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> not</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> inspect.Parameter.empty:</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.default[name] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> param.default</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> is_coroutine_callable(func):</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.func </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> func</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> else</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.func </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> async_wrap(func)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (module </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> inspect.getmodule(func)):</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> module_name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> module.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">__name__</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.split(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;.&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)[</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> else</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> module_name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;&#39;</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.module_name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> module_name</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> _caller_data[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.aifc_name] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> logger.opt(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">colors</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">True</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">).debug(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;&lt;y&gt;加载函数 </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">{self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.full_name</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">}</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">{self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._description</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">}</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&lt;/y&gt;&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> func</span></span></code></pre></div></details><hr><h4 id="func-data-self-dict-str-any" tabindex="-1"><em><strong>func</strong></em> <code>data(self) -&gt; dict[str, Any]</code> <a class="header-anchor" href="#func-data-self-dict-str-any" aria-label="Permalink to &quot;***func*** `data(self) -&gt; dict[str, Any]`&quot;"></a></h4><p><strong>Return</strong>: dict[str, Any]: 函数的json数据</p><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L162" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> data</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self) -&gt; dict[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, Any]:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> properties </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {key: value.data() </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> key, value </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._parameters.items()}</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> not</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> properties:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> properties[</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;placeholder&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;type&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;string&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;description&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;占位符,用于显示在对话框中&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;type&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._func_type, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;function&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;name&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.aifc_name, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;description&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._description, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;parameters&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;type&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;object&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;properties&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: properties}, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;required&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: [key </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> key, value </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._parameters.items() </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> value.default </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">is</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]}}</span></span></code></pre></div></details><hr><h4 id="func-set-ctx-self-ctx-sessioncontext-none" tabindex="-1"><em><strong>func</strong></em> <code>set_ctx(self, ctx: SessionContext) -&gt; None</code> <a class="header-anchor" href="#func-set-ctx-self-ctx-sessioncontext-none" aria-label="Permalink to &quot;***func*** `set_ctx(self, ctx: SessionContext) -&gt; None`&quot;"></a></h4><p><strong>Description</strong>: 设置依赖注入上下文</p><p><strong>Arguments</strong>:</p><blockquote><ul><li>ctx (SessionContext): 依赖注入上下文</li></ul></blockquote><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L191" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> set_ctx</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, ctx: SessionContext) -&gt; </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">None</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ctx.caller </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.ctx </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ctx</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> type_name, arg_name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.di.model_dump().items():</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> arg_name:</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.default[arg_name] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ctx.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">__getattribute__</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(type_name)</span></span></code></pre></div></details><hr><h4 id="func-with-ctx-self-ctx-sessioncontext-caller" tabindex="-1"><em><strong>func</strong></em> <code>with_ctx(self, ctx: SessionContext) -&gt; Caller</code> <a class="header-anchor" href="#func-with-ctx-self-ctx-sessioncontext-caller" aria-label="Permalink to &quot;***func*** `with_ctx(self, ctx: SessionContext) -&gt; Caller`&quot;"></a></h4><p><strong>Description</strong>: 设置依赖注入上下文</p><p><strong>Arguments</strong>:</p><blockquote><ul><li>ctx (SessionContext): 依赖注入上下文</li></ul></blockquote><p><strong>Return</strong>: Caller: Caller对象</p><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L204" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> with_ctx</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, ctx: SessionContext) -&gt; </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;Caller&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.set_ctx(ctx)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span></span></code></pre></div></details><hr><h4 id="async-func-call-self-args-any-kwargs-any-any" tabindex="-1"><em><strong>async func</strong></em> <code>call(self, *args: Any, **kwargs: Any) -&gt; Any</code> <a class="header-anchor" href="#async-func-call-self-args-any-kwargs-any-any" aria-label="Permalink to &quot;***async func*** `call(self, *args: Any, **kwargs: Any) -&gt; Any`&quot;"></a></h4><p><strong>Description</strong>: 调用函数</p><p><strong>Return</strong>: Any: 函数返回值</p><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L221" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> call</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">args: Any, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">**</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">kwargs: Any) -&gt; Any:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> y, r </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> await</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.pre_check()</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> not</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> y:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> logger.debug(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;Function </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">{self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._name</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">}</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> pre_check failed: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">{</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">r</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">}</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> r</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.func </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">is</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> raise</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> ValueError</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;未注册函数对象&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> name, value </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">in</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.default.items():</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">not</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> in</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> kwargs:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> kwargs[name] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> value</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> await</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.func(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">args, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">**</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">kwargs)</span></span></code></pre></div></details><hr><p><a href="https://docs.python.org/3/library/functions.html#property" target="_blank" rel="noreferrer"><code>@property</code></a></p><h4 id="func-short-name-self-str" tabindex="-1"><em><strong>func</strong></em> <code>short_name(self) -&gt; str</code> <a class="header-anchor" href="#func-short-name-self-str" aria-label="Permalink to &quot;***func*** `short_name(self) -&gt; str`&quot;"></a></h4><p><strong>Description</strong>: 函数本名</p><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L243" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">@</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">property</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> short_name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self) -&gt; </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._name.split(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;.&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)[</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span></code></pre></div></details><hr><p><a href="https://docs.python.org/3/library/functions.html#property" target="_blank" rel="noreferrer"><code>@property</code></a></p><h4 id="func-aifc-name-self-str" tabindex="-1"><em><strong>func</strong></em> <code>aifc_name(self) -&gt; str</code> <a class="header-anchor" href="#func-aifc-name-self-str" aria-label="Permalink to &quot;***func*** `aifc_name(self) -&gt; str`&quot;"></a></h4><p><strong>Description</strong>: AI调用名没有点</p><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L248" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">@</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">property</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> aifc_name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self) -&gt; </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.no_module_name:</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._name</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.full_name.replace(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;.&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;-&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span></code></pre></div></details><hr><p><a href="https://docs.python.org/3/library/functions.html#property" target="_blank" rel="noreferrer"><code>@property</code></a></p><h4 id="func-full-name-self-str" tabindex="-1"><em><strong>func</strong></em> <code>full_name(self) -&gt; str</code> <a class="header-anchor" href="#func-full-name-self-str" aria-label="Permalink to &quot;***func*** `full_name(self) -&gt; str`&quot;"></a></h4><p><strong>Description</strong>: 完整名</p><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L255" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">@</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">property</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> full_name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self) -&gt; </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.module_name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">+</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;.&#39;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> +</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._name</span></span></code></pre></div></details><hr><p><a href="https://docs.python.org/3/library/functions.html#property" target="_blank" rel="noreferrer"><code>@property</code></a></p><h4 id="func-short-info-self-str" tabindex="-1"><em><strong>func</strong></em> <code>short_info(self) -&gt; str</code> <a class="header-anchor" href="#func-short-info-self-str" aria-label="Permalink to &quot;***func*** `short_info(self) -&gt; str`&quot;"></a></h4><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L260" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">@</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">property</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> short_info</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(self) -&gt; </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">{self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.full_name</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">}</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">{self</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">._description</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">}</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">)&#39;</span></span></code></pre></div></details><hr><h3 id="func-on-function-call-name-str-description-str-none-none-func-type-str-function-no-module-name-bool-false-caller" tabindex="-1"><em><strong>func</strong></em> <code>on_function_call(name: str = &#39;&#39;, description: str | None = None, func_type: str = &#39;function&#39;, no_module_name: bool = False) -&gt; Caller</code> <a class="header-anchor" href="#func-on-function-call-name-str-description-str-none-none-func-type-str-function-no-module-name-bool-false-caller" aria-label="Permalink to &quot;***func*** `on_function_call(name: str = &#39;&#39;, description: str | None = None, func_type: str = &#39;function&#39;, no_module_name: bool = False) -&gt; Caller`&quot;"></a></h3><p><strong>Arguments</strong>:</p><blockquote><ul><li>name: 函数名称若为空则从函数的__name__属性获取</li><li>description: 函数描述若为None则从函数的docstring中获取</li><li>func_type: 函数类型默认为function若要注册为 Moonshot AI 的内置函数则为builtin_function</li><li>no_module_name: 是否不包含模块名,当注册为 Moonshot AI 的内置函数时为True</li></ul></blockquote><p><strong>Return</strong>: Caller: Caller对象</p><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L264" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> on_function_call</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(name: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, description: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> None</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">None</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, func_type: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;function&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, no_module_name: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">bool</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">False</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) -&gt; Caller:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> caller </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> Caller(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">name, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">description</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">description, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">func_type</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">func_type, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">no_module_name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">no_module_name)</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> caller</span></span></code></pre></div></details><hr><h3 id="func-get-function-calls-dict-str-caller" tabindex="-1"><em><strong>func</strong></em> <code>get_function_calls() -&gt; dict[str, Caller]</code> <a class="header-anchor" href="#func-get-function-calls-dict-str-caller" aria-label="Permalink to &quot;***func*** `get_function_calls() -&gt; dict[str, Caller]`&quot;"></a></h3><p><strong>Description</strong>: 获取所有已注册的function call函数</p><p><strong>Return</strong>: dict[str, Caller]: 所有已注册的function call函数</p><details><summary><b>Source code</b> or <a href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/plugin/func_call/caller.py#L290" target="_blank">View on GitHub</a></summary><div class="language-python vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">def</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> get_function_calls</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() -&gt; dict[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">str</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, Caller]:</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> _caller_data</span></span></code></pre></div></details></div></div></main><footer class="VPDocFooter" data-v-03864d9f data-v-79bc013e><!--[--><!--]--><div class="edit-info" data-v-79bc013e><div class="edit-link" data-v-79bc013e><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai//plugin/func_call/caller.py" target="_blank" rel="noreferrer" data-v-79bc013e><!--[--><span class="vpi-square-pen edit-link-icon" data-v-79bc013e></span> Edit this page<!--]--></a></div><!----></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-79bc013e><span class="visually-hidden" id="doc-footer-aria-label" data-v-79bc013e>Pager</span><div class="pager" data-v-79bc013e><a class="VPLink link pager-link prev" href="/en/dev/api/plugin/func_call/index" data-v-79bc013e><!--[--><span class="desc" data-v-79bc013e>Prev</span><span class="title" data-v-79bc013e>func_call</span><!--]--></a></div><div class="pager" data-v-79bc013e><a class="VPLink link pager-link next" href="/en/dev/api/plugin/func_call/" data-v-79bc013e><!--[--><span class="desc" data-v-79bc013e>Next</span><span class="title" data-v-79bc013e>index</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-46cada41 data-v-5dbe423c><div class="container" data-v-5dbe423c><p class="message" data-v-5dbe423c>The document is being improved. Suggestions are welcome.</p><p class="copyright" data-v-5dbe423c>© 2024 <a href="https://liteyuki.icu" target="_blank">Liteyuki Studio</a></p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"dev_api_azure.md\":\"BWxHkwhT\",\"dev_api_azure_onebot.md\":\"BsJhgztq\",\"dev_api_config.md\":\"BZQygKZM\",\"dev_api_constants.md\":\"BQXkHkcu\",\"dev_api_deal_latex.md\":\"CcbPszxu\",\"dev_api_dev.md\":\"D3bR8yUw\",\"dev_api_hooks.md\":\"Dx3JiNYl\",\"dev_api_hunyuan.md\":\"84ZOS2dB\",\"dev_api_index.md\":\"CKz7r0xO\",\"dev_api_instances.md\":\"D0EGVkFU\",\"dev_api_marsho.md\":\"BfllRqHb\",\"dev_api_marsho_onebot.md\":\"DVPrHwsF\",\"dev_api_metadata.md\":\"DcWsjAzN\",\"dev_api_models.md\":\"-PFe3xV6\",\"dev_api_observer.md\":\"BxJvd7GM\",\"dev_api_plugin_func_call_caller.md\":\"B-Afofa_\",\"dev_api_plugin_func_call_index.md\":\"DJqaEalq\",\"dev_api_plugin_func_call_models.md\":\"BzVX8der\",\"dev_api_plugin_func_call_params.md\":\"GsAhbAnt\",\"dev_api_plugin_func_call_utils.md\":\"Cv6vsuiA\",\"dev_api_plugin_index.md\":\"C9mfk9HL\",\"dev_api_plugin_load.md\":\"BaKQuUHB\",\"dev_api_plugin_models.md\":\"Tm7t-ikW\",\"dev_api_plugin_register.md\":\"DSL2EGTF\",\"dev_api_plugin_typing.md\":\"CBPWUMVA\",\"dev_api_plugin_utils.md\":\"BTfSKGuq\",\"dev_api_plugins_builtin_tools_chat.md\":\"aFal8Gow\",\"dev_api_plugins_builtin_tools_file_io.md\":\"BKz6hg1O\",\"dev_api_plugins_builtin_tools_index.md\":\"-VV3V62O\",\"dev_api_plugins_builtin_tools_liteyuki.md\":\"DzKH_VlV\",\"dev_api_plugins_builtin_tools_manager.md\":\"BuenSvBP\",\"dev_api_plugins_builtin_tools_network.md\":\"dF5tbLpw\",\"dev_api_plugins_builtin_tools_utils.md\":\"CAzqH2x9\",\"dev_api_plugins_marshoai_bangumi_index.md\":\"17VF_fLc\",\"dev_api_plugins_marshoai_basic_index.md\":\"TTNgR0hC\",\"dev_api_plugins_test_marshoai_basic_index.md\":\"BRO5viiM\",\"dev_api_plugins_test_marshoai_memory_command.md\":\"Bweavysv\",\"dev_api_plugins_test_marshoai_memory_config.md\":\"1MjwossB\",\"dev_api_plugins_test_marshoai_memory_index.md\":\"DT78YGqo\",\"dev_api_plugins_test_random_number_generator.md\":\"CMxdtMHP\",\"dev_api_plugins_test_snowykami_testplugin_index.md\":\"CXbiHEYp\",\"dev_api_plugins_test_weather_demo.md\":\"DqU_unWp\",\"dev_api_plugins_twisuki_megakits_index.md\":\"-woi3Nla\",\"dev_api_plugins_twisuki_megakits_mk_morse_code.md\":\"DcFUIHkA\",\"dev_api_plugins_twisuki_megakits_mk_nya_code.md\":\"C3bf8sjb\",\"dev_api_plugins_twisuki_petcat_index.md\":\"DrBGExmf\",\"dev_api_plugins_twisuki_petcat_pc_cat.md\":\"CHiYX-sA\",\"dev_api_plugins_twisuki_petcat_pc_info.md\":\"Bf0kh5d7\",\"dev_api_plugins_twisuki_petcat_pc_shop.md\":\"DjOux-Bu\",\"dev_api_plugins_twisuki_petcat_pc_token.md\":\"CUonlZEg\",\"dev_api_tools_marshoai_bangumi_index.md\":\"AgX3pxXS\",\"dev_api_tools_marshoai_basic_index.md\":\"Ch_Siirr\",\"dev_api_tools_marshoai_megakits_index.md\":\"C7Wrewvp\",\"dev_api_tools_marshoai_megakits_mk_common.md\":\"BM5eSRuV\",\"dev_api_tools_marshoai_megakits_mk_info.md\":\"C1kleNHU\",\"dev_api_tools_marshoai_megakits_mk_morse_code.md\":\"Ck4fcY80\",\"dev_api_tools_marshoai_megakits_mk_nya_code.md\":\"BD-geeZX\",\"dev_api_tools_marshoai_memory_index.md\":\"D12ATfZV\",\"dev_api_tools_marshoai_meogirl_index.md\":\"D329UtlF\",\"dev_api_tools_marshoai_meogirl_mg_info.md\":\"BGx2xHo4\",\"dev_api_tools_marshoai_meogirl_mg_introduce.md\":\"DFmMY7uc\",\"dev_api_tools_marshoai_meogirl_mg_search.md\":\"DQcDOb49\",\"dev_api_tools_wip_marshoai_memory_index.md\":\"CVH4XmiE\",\"dev_api_util.md\":\"DEeRUIe8\",\"dev_api_util_hunyuan.md\":\"BKSF1JNE\",\"dev_extension.md\":\"MeX5SXJC\",\"dev_index.md\":\"ZMOYQWTr\",\"dev_project.md\":\"CT7Wi5Sp\",\"en_dev_api_azure.md\":\"D2NkLSs5\",\"en_dev_api_azure_onebot.md\":\"CkpsHNA3\",\"en_dev_api_config.md\":\"DeZ7DeZC\",\"en_dev_api_constants.md\":\"9cK-2Rnd\",\"en_dev_api_deal_latex.md\":\"CDNhgyqb\",\"en_dev_api_dev.md\":\"DwQwAQ2O\",\"en_dev_api_hooks.md\":\"B8fuQmIt\",\"en_dev_api_hunyuan.md\":\"BREw4BH2\",\"en_dev_api_index.md\":\"D6wqE3Go\",\"en_dev_api_instances.md\":\"C-rZEpVa\",\"en_dev_api_marsho.md\":\"D54YjST5\",\"en_dev_api_marsho_onebot.md\":\"DnSZOfp1\",\"en_dev_api_metadata.md\":\"D7OEYakw\",\"en_dev_api_models.md\":\"ud2_nMfy\",\"en_dev_api_observer.md\":\"Buavwltn\",\"en_dev_api_plugin_func_call_caller.md\":\"CmmMyc7F\",\"en_dev_api_plugin_func_call_index.md\":\"DHzPv4Ru\",\"en_dev_api_plugin_func_call_models.md\":\"DEU3e-ya\",\"en_dev_api_plugin_func_call_params.md\":\"DRLswz-P\",\"en_dev_api_plugin_func_call_utils.md\":\"DsqMXz_K\",\"en_dev_api_plugin_index.md\":\"BkRnWH4_\",\"en_dev_api_plugin_load.md\":\"BqI5wsjI\",\"en_dev_api_plugin_models.md\":\"oxy5gRRp\",\"en_dev_api_plugin_register.md\":\"DX9dpKIB\",\"en_dev_api_plugin_typing.md\":\"BkmgBa4M\",\"en_dev_api_plugin_utils.md\":\"DU4V8pmV\",\"en_dev_api_plugins_builtin_tools_chat.md\":\"NZM89geB\",\"en_dev_api_plugins_builtin_tools_file_io.md\":\"tW4VmItn\",\"en_dev_api_plugins_builtin_tools_index.md\":\"C-XkxGtY\",\"en_dev_api_plugins_builtin_tools_liteyuki.md\":\"RQry7oYv\",\"en_dev_api_plugins_builtin_tools_manager.md\":\"0b459wxY\",\"en_dev_api_plugins_builtin_tools_network.md\":\"-ABGsH5V\",\"en_dev_api_plugins_builtin_tools_utils.md\":\"YU2iLw8W\",\"en_dev_api_plugins_marshoai_bangumi_index.md\":\"BybXEg8m\",\"en_dev_api_plugins_marshoai_basic_index.md\":\"DeeLIVrI\",\"en_dev_api_plugins_test_marshoai_basic_index.md\":\"wMr4Ve9L\",\"en_dev_api_plugins_test_marshoai_memory_command.md\":\"C6E66iFg\",\"en_dev_api_plugins_test_marshoai_memory_config.md\":\"INuymK3L\",\"en_dev_api_plugins_test_marshoai_memory_index.md\":\"D6RlqtVH\",\"en_dev_api_plugins_test_random_number_generator.md\":\"BX4GQvB8\",\"en_dev_api_plugins_test_snowykami_testplugin_index.md\":\"BayHCb8s\",\"en_dev_api_plugins_test_weather_demo.md\":\"CSDh9TgV\",\"en_dev_api_plugins_twisuki_megakits_index.md\":\"ONfKcuRP\",\"en_dev_api_plugins_twisuki_megakits_mk_morse_code.md\":\"YkyuSz4X\",\"en_dev_api_plugins_twisuki_megakits_mk_nya_code.md\":\"C5O4Xv8O\",\"en_dev_api_plugins_twisuki_petcat_index.md\":\"C7CHQqy2\",\"en_dev_api_plugins_twisuki_petcat_pc_cat.md\":\"CRx4SeFR\",\"en_dev_api_plugins_twisuki_petcat_pc_info.md\":\"DmAZ17n9\",\"en_dev_api_plugins_twisuki_petcat_pc_shop.md\":\"tvO7JKea\",\"en_dev_api_plugins_twisuki_petcat_pc_token.md\":\"Bs6TDv2w\",\"en_dev_api_tools_marshoai_bangumi_index.md\":\"CQOz1f3Y\",\"en_dev_api_tools_marshoai_basic_index.md\":\"DdtXVLj-\",\"en_dev_api_tools_marshoai_megakits_index.md\":\"BD0eqLf4\",\"en_dev_api_tools_marshoai_megakits_mk_common.md\":\"B2t_B3CF\",\"en_dev_api_tools_marshoai_megakits_mk_info.md\":\"BJ4oiY1p\",\"en_dev_api_tools_marshoai_megakits_mk_morse_code.md\":\"D9jpqguN\",\"en_dev_api_tools_marshoai_megakits_mk_nya_code.md\":\"BFEjDzeJ\",\"en_dev_api_tools_marshoai_memory_index.md\":\"CFtluJuC\",\"en_dev_api_tools_marshoai_meogirl_index.md\":\"Bz7f_dXk\",\"en_dev_api_tools_marshoai_meogirl_mg_info.md\":\"XSL809yZ\",\"en_dev_api_tools_marshoai_meogirl_mg_introduce.md\":\"B9C0fcLo\",\"en_dev_api_tools_marshoai_meogirl_mg_search.md\":\"CnuveyHi\",\"en_dev_api_tools_wip_marshoai_memory_index.md\":\"Dof0UKI9\",\"en_dev_api_util.md\":\"DJBRZ231\",\"en_dev_api_util_hunyuan.md\":\"BCpNZGK5\",\"en_dev_index.md\":\"DG35zGMQ\",\"en_index.md\":\"fR4OoA7a\",\"en_start_index.md\":\"DCunCG6I\",\"en_start_install.md\":\"DdHi3Ttu\",\"index.md\":\"C0OrEz4R\",\"ja_index.md\":\"DFz97jLH\",\"start_index.md\":\"CHwPvREK\",\"start_install-old.md\":\"Ca7nPfgk\",\"start_install.md\":\"BLebC2pi\",\"start_use.md\":\"DeU3oXMj\"}");function deserializeFunctions(r){return Array.isArray(r)?r.map(deserializeFunctions):typeof r=="object"&&r!==null?Object.keys(r).reduce((t,n)=>(t[n]=deserializeFunctions(r[n]),t),{}):typeof r=="string"&&r.startsWith("_vp-fn_")?new Function(`return ${r.slice(7)}`)():r};window.__VP_SITE_DATA__=deserializeFunctions(JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"VitePress\",\"description\":\"A VitePress site\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"logo\":{\"light\":\"/marsho-full.svg\",\"dark\":\"/marsho-full.svg\",\"alt\":\"Marsho Logo\"},\"sidebar\":{\"/dev/\":{\"base\":\"/dev/\",\"items\":[{\"text\":\"MARSHOAI\",\"items\":[{\"text\":\"项目开发\",\"link\":\"project\"},{\"text\":\"扩展开发\",\"link\":\"extension\"},{\"text\":\"api\",\"link\":\"api/index.md\",\"items\":[{\"text\":\"azure\",\"link\":\"api/azure\"},{\"text\":\"azure_onebot\",\"link\":\"api/azure_onebot\"},{\"text\":\"plugins\",\"items\":[{\"text\":\"marshoai_basic\",\"link\":\"api/plugins/marshoai_basic/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/plugins/marshoai_basic/\"}],\"collapsed\":true},{\"text\":\"builtin_tools\",\"link\":\"api/plugins/builtin_tools/index.md\",\"items\":[{\"text\":\"chat\",\"link\":\"api/plugins/builtin_tools/chat\"},{\"text\":\"file_io\",\"link\":\"api/plugins/builtin_tools/file_io\"},{\"text\":\"index\",\"link\":\"api/plugins/builtin_tools/\"},{\"text\":\"liteyuki\",\"link\":\"api/plugins/builtin_tools/liteyuki\"},{\"text\":\"manager\",\"link\":\"api/plugins/builtin_tools/manager\"},{\"text\":\"network\",\"link\":\"api/plugins/builtin_tools/network\"},{\"text\":\"utils\",\"link\":\"api/plugins/builtin_tools/utils\"}],\"collapsed\":true},{\"text\":\"marshoai_bangumi\",\"link\":\"api/plugins/marshoai_bangumi/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/plugins/marshoai_bangumi/\"}],\"collapsed\":true},{\"text\":\"twisuki_megakits\",\"link\":\"api/plugins/twisuki_megakits/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/plugins/twisuki_megakits/\"},{\"text\":\"mk_morse_code\",\"link\":\"api/plugins/twisuki_megakits/mk_morse_code\"},{\"text\":\"mk_nya_code\",\"link\":\"api/plugins/twisuki_megakits/mk_nya_code\"}],\"collapsed\":true},{\"text\":\"twisuki_petcat\",\"link\":\"api/plugins/twisuki_petcat/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/plugins/twisuki_petcat/\"},{\"text\":\"pc_cat\",\"link\":\"api/plugins/twisuki_petcat/pc_cat\"},{\"text\":\"pc_info\",\"link\":\"api/plugins/twisuki_petcat/pc_info\"},{\"text\":\"pc_shop\",\"link\":\"api/plugins/twisuki_petcat/pc_shop\"},{\"text\":\"pc_token\",\"link\":\"api/plugins/twisuki_petcat/pc_token\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"plugins_test\",\"items\":[{\"text\":\"marshoai_basic\",\"link\":\"api/plugins_test/marshoai_basic/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/plugins_test/marshoai_basic/\"}],\"collapsed\":true},{\"text\":\"marshoai_memory\",\"link\":\"api/plugins_test/marshoai_memory/index.md\",\"items\":[{\"text\":\"command\",\"link\":\"api/plugins_test/marshoai_memory/command\"},{\"text\":\"config\",\"link\":\"api/plugins_test/marshoai_memory/config\"},{\"text\":\"index\",\"link\":\"api/plugins_test/marshoai_memory/\"}],\"collapsed\":true},{\"text\":\"random_number_generator\",\"link\":\"api/plugins_test/random_number_generator\"},{\"text\":\"snowykami_testplugin\",\"link\":\"api/plugins_test/snowykami_testplugin/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/plugins_test/snowykami_testplugin/\"}],\"collapsed\":true},{\"text\":\"weather_demo\",\"link\":\"api/plugins_test/weather_demo\"}],\"collapsed\":true},{\"text\":\"tools\",\"items\":[{\"text\":\"marshoai_bangumi\",\"link\":\"api/tools/marshoai_bangumi/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/tools/marshoai_bangumi/\"}],\"collapsed\":true},{\"text\":\"marshoai_basic\",\"link\":\"api/tools/marshoai_basic/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/tools/marshoai_basic/\"}],\"collapsed\":true},{\"text\":\"marshoai_megakits\",\"link\":\"api/tools/marshoai_megakits/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/tools/marshoai_megakits/\"},{\"text\":\"mk_common\",\"link\":\"api/tools/marshoai_megakits/mk_common\"},{\"text\":\"mk_info\",\"link\":\"api/tools/marshoai_megakits/mk_info\"},{\"text\":\"mk_morse_code\",\"link\":\"api/tools/marshoai_megakits/mk_morse_code\"},{\"text\":\"mk_nya_code\",\"link\":\"api/tools/marshoai_megakits/mk_nya_code\"}],\"collapsed\":true},{\"text\":\"marshoai_memory\",\"link\":\"api/tools/marshoai_memory/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/tools/marshoai_memory/\"}],\"collapsed\":true},{\"text\":\"marshoai_meogirl\",\"link\":\"api/tools/marshoai_meogirl/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/tools/marshoai_meogirl/\"},{\"text\":\"mg_info\",\"link\":\"api/tools/marshoai_meogirl/mg_info\"},{\"text\":\"mg_introduce\",\"link\":\"api/tools/marshoai_meogirl/mg_introduce\"},{\"text\":\"mg_search\",\"link\":\"api/tools/marshoai_meogirl/mg_search\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"tools_wip\",\"items\":[{\"text\":\"marshoai_memory\",\"link\":\"api/tools_wip/marshoai_memory/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/tools_wip/marshoai_memory/\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"config\",\"link\":\"api/config\"},{\"text\":\"constants\",\"link\":\"api/constants\"},{\"text\":\"deal_latex\",\"link\":\"api/deal_latex\"},{\"text\":\"dev\",\"link\":\"api/dev\"},{\"text\":\"hooks\",\"link\":\"api/hooks\"},{\"text\":\"hunyuan\",\"link\":\"api/hunyuan\"},{\"text\":\"index\",\"link\":\"api/\"},{\"text\":\"instances\",\"link\":\"api/instances\"},{\"text\":\"marsho\",\"link\":\"api/marsho\"},{\"text\":\"marsho_onebot\",\"link\":\"api/marsho_onebot\"},{\"text\":\"metadata\",\"link\":\"api/metadata\"},{\"text\":\"models\",\"link\":\"api/models\"},{\"text\":\"observer\",\"link\":\"api/observer\"},{\"text\":\"plugin\",\"link\":\"api/plugin/index.md\",\"items\":[{\"text\":\"register\",\"link\":\"api/plugin/register\"},{\"text\":\"func_call\",\"link\":\"api/plugin/func_call/index.md\",\"items\":[{\"text\":\"caller\",\"link\":\"api/plugin/func_call/caller\"},{\"text\":\"index\",\"link\":\"api/plugin/func_call/\"},{\"text\":\"models\",\"link\":\"api/plugin/func_call/models\"},{\"text\":\"params\",\"link\":\"api/plugin/func_call/params\"},{\"text\":\"utils\",\"link\":\"api/plugin/func_call/utils\"}],\"collapsed\":true},{\"text\":\"index\",\"link\":\"api/plugin/\"},{\"text\":\"load\",\"link\":\"api/plugin/load\"},{\"text\":\"models\",\"link\":\"api/plugin/models\"},{\"text\":\"typing\",\"link\":\"api/plugin/typing\"},{\"text\":\"utils\",\"link\":\"api/plugin/utils\"}],\"collapsed\":true},{\"text\":\"util\",\"link\":\"api/util\"},{\"text\":\"util_hunyuan\",\"link\":\"api/util_hunyuan\"}],\"collapsed\":true}]}]},\"/start/\":{\"base\":\"/start/\",\"items\":[{\"text\":\"MARSHOAI\",\"items\":[{\"text\":\"安装\",\"link\":\"install-old\"},{\"text\":\"安装\",\"link\":\"install\"},{\"text\":\"使用\",\"link\":\"use\"}]}]},\"/en/dev/\":{\"base\":\"/en/dev/\",\"items\":[{\"text\":\"MARSHOAI\",\"items\":[{\"text\":\"api\",\"link\":\"api/index.md\",\"items\":[{\"text\":\"azure\",\"link\":\"api/azure\"},{\"text\":\"azure_onebot\",\"link\":\"api/azure_onebot\"},{\"text\":\"plugins\",\"items\":[{\"text\":\"marshoai_basic\",\"link\":\"api/plugins/marshoai_basic/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/plugins/marshoai_basic/\"}],\"collapsed\":true},{\"text\":\"builtin_tools\",\"link\":\"api/plugins/builtin_tools/index.md\",\"items\":[{\"text\":\"chat\",\"link\":\"api/plugins/builtin_tools/chat\"},{\"text\":\"file_io\",\"link\":\"api/plugins/builtin_tools/file_io\"},{\"text\":\"index\",\"link\":\"api/plugins/builtin_tools/\"},{\"text\":\"liteyuki\",\"link\":\"api/plugins/builtin_tools/liteyuki\"},{\"text\":\"manager\",\"link\":\"api/plugins/builtin_tools/manager\"},{\"text\":\"network\",\"link\":\"api/plugins/builtin_tools/network\"},{\"text\":\"utils\",\"link\":\"api/plugins/builtin_tools/utils\"}],\"collapsed\":true},{\"text\":\"marshoai_bangumi\",\"link\":\"api/plugins/marshoai_bangumi/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/plugins/marshoai_bangumi/\"}],\"collapsed\":true},{\"text\":\"twisuki_megakits\",\"link\":\"api/plugins/twisuki_megakits/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/plugins/twisuki_megakits/\"},{\"text\":\"mk_morse_code\",\"link\":\"api/plugins/twisuki_megakits/mk_morse_code\"},{\"text\":\"mk_nya_code\",\"link\":\"api/plugins/twisuki_megakits/mk_nya_code\"}],\"collapsed\":true},{\"text\":\"twisuki_petcat\",\"link\":\"api/plugins/twisuki_petcat/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/plugins/twisuki_petcat/\"},{\"text\":\"pc_cat\",\"link\":\"api/plugins/twisuki_petcat/pc_cat\"},{\"text\":\"pc_info\",\"link\":\"api/plugins/twisuki_petcat/pc_info\"},{\"text\":\"pc_shop\",\"link\":\"api/plugins/twisuki_petcat/pc_shop\"},{\"text\":\"pc_token\",\"link\":\"api/plugins/twisuki_petcat/pc_token\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"plugins_test\",\"items\":[{\"text\":\"marshoai_basic\",\"link\":\"api/plugins_test/marshoai_basic/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/plugins_test/marshoai_basic/\"}],\"collapsed\":true},{\"text\":\"marshoai_memory\",\"link\":\"api/plugins_test/marshoai_memory/index.md\",\"items\":[{\"text\":\"command\",\"link\":\"api/plugins_test/marshoai_memory/command\"},{\"text\":\"config\",\"link\":\"api/plugins_test/marshoai_memory/config\"},{\"text\":\"index\",\"link\":\"api/plugins_test/marshoai_memory/\"}],\"collapsed\":true},{\"text\":\"random_number_generator\",\"link\":\"api/plugins_test/random_number_generator\"},{\"text\":\"snowykami_testplugin\",\"link\":\"api/plugins_test/snowykami_testplugin/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/plugins_test/snowykami_testplugin/\"}],\"collapsed\":true},{\"text\":\"weather_demo\",\"link\":\"api/plugins_test/weather_demo\"}],\"collapsed\":true},{\"text\":\"tools\",\"items\":[{\"text\":\"marshoai_bangumi\",\"link\":\"api/tools/marshoai_bangumi/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/tools/marshoai_bangumi/\"}],\"collapsed\":true},{\"text\":\"marshoai_basic\",\"link\":\"api/tools/marshoai_basic/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/tools/marshoai_basic/\"}],\"collapsed\":true},{\"text\":\"marshoai_megakits\",\"link\":\"api/tools/marshoai_megakits/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/tools/marshoai_megakits/\"},{\"text\":\"mk_common\",\"link\":\"api/tools/marshoai_megakits/mk_common\"},{\"text\":\"mk_info\",\"link\":\"api/tools/marshoai_megakits/mk_info\"},{\"text\":\"mk_morse_code\",\"link\":\"api/tools/marshoai_megakits/mk_morse_code\"},{\"text\":\"mk_nya_code\",\"link\":\"api/tools/marshoai_megakits/mk_nya_code\"}],\"collapsed\":true},{\"text\":\"marshoai_memory\",\"link\":\"api/tools/marshoai_memory/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/tools/marshoai_memory/\"}],\"collapsed\":true},{\"text\":\"marshoai_meogirl\",\"link\":\"api/tools/marshoai_meogirl/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/tools/marshoai_meogirl/\"},{\"text\":\"mg_info\",\"link\":\"api/tools/marshoai_meogirl/mg_info\"},{\"text\":\"mg_introduce\",\"link\":\"api/tools/marshoai_meogirl/mg_introduce\"},{\"text\":\"mg_search\",\"link\":\"api/tools/marshoai_meogirl/mg_search\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"tools_wip\",\"items\":[{\"text\":\"marshoai_memory\",\"link\":\"api/tools_wip/marshoai_memory/index.md\",\"items\":[{\"text\":\"index\",\"link\":\"api/tools_wip/marshoai_memory/\"}],\"collapsed\":true}],\"collapsed\":true},{\"text\":\"config\",\"link\":\"api/config\"},{\"text\":\"constants\",\"link\":\"api/constants\"},{\"text\":\"deal_latex\",\"link\":\"api/deal_latex\"},{\"text\":\"dev\",\"link\":\"api/dev\"},{\"text\":\"hooks\",\"link\":\"api/hooks\"},{\"text\":\"hunyuan\",\"link\":\"api/hunyuan\"},{\"text\":\"index\",\"link\":\"api/\"},{\"text\":\"instances\",\"link\":\"api/instances\"},{\"text\":\"marsho\",\"link\":\"api/marsho\"},{\"text\":\"marsho_onebot\",\"link\":\"api/marsho_onebot\"},{\"text\":\"metadata\",\"link\":\"api/metadata\"},{\"text\":\"models\",\"link\":\"api/models\"},{\"text\":\"observer\",\"link\":\"api/observer\"},{\"text\":\"plugin\",\"link\":\"api/plugin/index.md\",\"items\":[{\"text\":\"register\",\"link\":\"api/plugin/register\"},{\"text\":\"func_call\",\"link\":\"api/plugin/func_call/index.md\",\"items\":[{\"text\":\"caller\",\"link\":\"api/plugin/func_call/caller\"},{\"text\":\"index\",\"link\":\"api/plugin/func_call/\"},{\"text\":\"models\",\"link\":\"api/plugin/func_call/models\"},{\"text\":\"params\",\"link\":\"api/plugin/func_call/params\"},{\"text\":\"utils\",\"link\":\"api/plugin/func_call/utils\"}],\"collapsed\":true},{\"text\":\"index\",\"link\":\"api/plugin/\"},{\"text\":\"load\",\"link\":\"api/plugin/load\"},{\"text\":\"models\",\"link\":\"api/plugin/models\"},{\"text\":\"typing\",\"link\":\"api/plugin/typing\"},{\"text\":\"utils\",\"link\":\"api/plugin/utils\"}],\"collapsed\":true},{\"text\":\"util\",\"link\":\"api/util\"},{\"text\":\"util_hunyuan\",\"link\":\"api/util_hunyuan\"}],\"collapsed\":true}]}]},\"/en/start/\":{\"base\":\"/en/start/\",\"items\":[{\"text\":\"MARSHOAI\",\"items\":[{\"text\":\"install\",\"link\":\"install\"}]}]}},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/LiteyukiStudio/nonebot-plugin-marshoai\"},{\"icon\":{\"svg\":\"<svg t=\\\"1725391346807\\\" class=\\\"icon\\\" viewBox=\\\"0 0 1025 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" p-id=\\\"5067\\\" width=\\\"256\\\" height=\\\"256\\\"><path d=\\\"M1004.692673 466.396616l-447.094409-447.073929c-25.743103-25.763582-67.501405-25.763582-93.264987 0l-103.873521 103.873521 78.171378 78.171378c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928 0 14.827372-3.358686 28.856031-9.359266 41.389666l127.97824 127.97824c12.533635-6.00058 26.562294-9.359266 41.389666-9.359266 53.02219 0 96.00928 42.98709 96.00928 96.00928s-42.98709 96.00928-96.00928 96.00928-96.00928-42.98709-96.00928-96.00928c0-14.827372 3.358686-28.856031 9.359266-41.389666l-127.97824-127.97824c-3.051489 1.454065-6.184898 2.744293-9.379746 3.870681l0 266.97461c37.273227 13.188988 63.99936 48.721433 63.99936 90.520695 0 53.02219-42.98709 96.00928-96.00928 96.00928s-96.00928-42.98709-96.00928-96.00928c0-41.799262 26.726133-77.331707 63.99936-90.520695l0-266.97461c-37.273227-13.188988-63.99936-48.721433-63.99936-90.520695 0-14.827372 3.358686-28.856031 9.359266-41.389666l-78.171378-78.171378-295.892081 295.871601c-25.743103 25.784062-25.743103 67.542365 0 93.285467l447.114889 447.073929c25.743103 25.743103 67.480925 25.743103 93.264987 0l445.00547-445.00547c25.763582-25.763582 25.763582-67.542365 0-93.285467z\\\" fill=\\\"#a2d8f4\\\" p-id=\\\"5068\\\"></path></svg>\"},\"link\":\"https://git.liteyuki.icu/LiteyukiStudio/nonebot-plugin-marshoai\"}]},\"locales\":{\"root\":{\"label\":\"简体中文\",\"lang\":\"zh-Hans\",\"title\":\"小棉智能\",\"description\":\"可爱,智能且易扩展\",\"themeConfig\":{\"docFooter\":{\"prev\":\"上一页\",\"next\":\"下一页\"},\"nav\":[{\"text\":\"家\",\"link\":\"/\"},{\"text\":\"使用\",\"link\":\"/start/use\"},{\"text\":\"开发\",\"link\":\"/dev/extension\"}],\"editLink\":{\"pattern\":\"_vp-fn_({ filePath }) => {\\n if (!filePath) {\\n throw new Error(\\\"filePath is undefined\\\");\\n }\\n const regex = /^(dev\\\\/api|[^\\\\/]+\\\\/dev\\\\/api)/;\\n if (regex.test(filePath)) {\\n filePath = filePath.replace(regex, \\\"\\\").replace(\\\"index.md\\\", \\\"__init__.py\\\").replace(\\\".md\\\", \\\".py\\\");\\n const fileName = filePath.split(\\\"/\\\").pop();\\n const parentFolder = filePath.split(\\\"/\\\").slice(-2, -1)[0];\\n if (fileName && parentFolder && fileName.split(\\\".\\\")[0] === parentFolder) {\\n filePath = filePath.split(\\\"/\\\").slice(0, -1).join(\\\"/\\\") + \\\"/__init__.py\\\";\\n }\\n return `https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/${filePath}`;\\n } else {\\n return `https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/docs/${filePath}`;\\n }\\n }\",\"text\":\"编辑此页面\"},\"langMenuLabel\":\"语言\",\"returnToTopLabel\":\"返回顶部\",\"sidebarMenuLabel\":\"菜单\",\"darkModeSwitchLabel\":\"主题\",\"lightModeSwitchTitle\":\"轻色模式\",\"darkModeSwitchTitle\":\"深色模式\",\"footer\":{\"message\":\"文档完善中,欢迎提出建议或帮助我们完善。\",\"copyright\":\"© 2024 <a href=\\\"https://liteyuki.icu\\\" target=\\\"_blank\\\">Liteyuki Studio</a>\"}}},\"en\":{\"label\":\"English\",\"lang\":\"en-US\",\"title\":\"Marsho AI\",\"description\":\"Kawaii, Intelligent and Easy to Extend\",\"themeConfig\":{\"docFooter\":{\"prev\":\"Prev\",\"next\":\"Next\"},\"nav\":[{\"text\":\"Home\",\"link\":\"/en\"},{\"text\":\"Usage\",\"link\":\"/en/start/install\"},{\"text\":\"Develop\",\"link\":\"/en/dev/extension\"}],\"editLink\":{\"pattern\":\"_vp-fn_({ filePath }) => {\\n if (!filePath) {\\n throw new Error(\\\"filePath is undefined\\\");\\n }\\n const regex = /^(dev\\\\/api|[^\\\\/]+\\\\/dev\\\\/api)/;\\n if (regex.test(filePath)) {\\n filePath = filePath.replace(regex, \\\"\\\").replace(\\\"index.md\\\", \\\"__init__.py\\\").replace(\\\".md\\\", \\\".py\\\");\\n const fileName = filePath.split(\\\"/\\\").pop();\\n const parentFolder = filePath.split(\\\"/\\\").slice(-2, -1)[0];\\n if (fileName && parentFolder && fileName.split(\\\".\\\")[0] === parentFolder) {\\n filePath = filePath.split(\\\"/\\\").slice(0, -1).join(\\\"/\\\") + \\\"/__init__.py\\\";\\n }\\n return `https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/${filePath}`;\\n } else {\\n return `https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/docs/${filePath}`;\\n }\\n }\",\"text\":\"Edit this page\"},\"langMenuLabel\":\"Language\",\"returnToTopLabel\":\"To top\",\"sidebarMenuLabel\":\"Option\",\"darkModeSwitchLabel\":\"Theme\",\"lightModeSwitchTitle\":\"Light\",\"darkModeSwitchTitle\":\"Dark\",\"footer\":{\"message\":\"The document is being improved. Suggestions are welcome.\",\"copyright\":\"© 2024 <a href=\\\"https://liteyuki.icu\\\" target=\\\"_blank\\\">Liteyuki Studio</a>\"}}},\"ja\":{\"label\":\"日本語\",\"lang\":\"ja-JP\",\"title\":\"Marsho AI\",\"description\":\"かわいくて、賢くて、拡張しやすい\",\"themeConfig\":{\"docFooter\":{\"prev\":\"前へ\",\"next\":\"次へ\"},\"nav\":[{\"text\":\"ホーム\",\"link\":\"/ja\"},{\"text\":\"使用方法\",\"link\":\"/ja/start/install\"},{\"text\":\"開発\",\"link\":\"/ja/dev/extension\"}],\"editLink\":{\"pattern\":\"_vp-fn_({ filePath }) => {\\n if (!filePath) {\\n throw new Error(\\\"filePath is undefined\\\");\\n }\\n const regex = /^(dev\\\\/api|[^\\\\/]+\\\\/dev\\\\/api)/;\\n if (regex.test(filePath)) {\\n filePath = filePath.replace(regex, \\\"\\\").replace(\\\"index.md\\\", \\\"__init__.py\\\").replace(\\\".md\\\", \\\".py\\\");\\n const fileName = filePath.split(\\\"/\\\").pop();\\n const parentFolder = filePath.split(\\\"/\\\").slice(-2, -1)[0];\\n if (fileName && parentFolder && fileName.split(\\\".\\\")[0] === parentFolder) {\\n filePath = filePath.split(\\\"/\\\").slice(0, -1).join(\\\"/\\\") + \\\"/__init__.py\\\";\\n }\\n return `https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/nonebot_plugin_marshoai/${filePath}`;\\n } else {\\n return `https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/tree/main/docs/${filePath}`;\\n }\\n }\",\"text\":\"このページを編集\"},\"langMenuLabel\":\"言語\",\"returnToTopLabel\":\"トップへ戻る\",\"sidebarMenuLabel\":\"オプション\",\"darkModeSwitchLabel\":\"テーマ\",\"lightModeSwitchTitle\":\"ライト\",\"darkModeSwitchTitle\":\"ダーク\",\"footer\":{\"message\":\"ドキュメントは改善中です。ご意見をお待ちしております。\",\"copyright\":\"© 2024 <a href=\\\"https://liteyuki.icu\\\" target=\\\"_blank\\\">Liteyuki Studio</a>\"}}}},\"scrollOffset\":134,\"cleanUrls\":true}"));</script>
</body>
</html>