1<!doctype html> 2<html lang="zh-CN"> 3 4<head> 5 <meta charset="utf-8" /> 6 <meta name="viewport" content="width=device-width, initial-scale=1" /> 7 <title>å½å é«é AI 大模å API ä¸è½¬ - å ¸åè¯å </title> 8 <meta name="canvas:aspect-ratio" content="16:9" /> 9 <link href="/statics/css/font-awesome4.7.0.min.css" rel="stylesheet" type="text/css"> 10 <link href="/statics/css/css2.css" rel="stylesheet" type="text/css"> 11 <link href="/statics/css/common.css" rel="stylesheet" type="text/css"> 12 </head> 13 14<body> 15 <!-- âââ Navigation ââââââââââââââââââââââââââââââââââââââââââââââââ --> 16 <div class="hero-grid-bg" aria-hidden="true"></div> 17 <header class="topnav" id="top" data-component="Navigation" data-od-id="topnav"> 18 <div class="container topnav-inner"> 19 <a href="/" class="logo" style="text-decoration:none; opacity:1;"> 20 <img src="/statics/images/logo.png" alt="å ¸åè¯å "> 21 </a> 22 <nav> 23 <ul class="nav-links"> 24 <li><a href="/">é¦é¡µ</a></li> 25 <li class="nav-dropdown"> 26 <a href="/agent/qwenwork">AIåºç¨
27 <svg class="dropdown-arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 28 <polyline points="6 9 12 15 18 9" /> 29 </svg> 30 </a> 31 <ul class="dropdown-menu"> 32 <li><a href="/agent/qwenwork">åé®åå ¬</a></li> 33 <!-- <li><a href="/agent/ihuiwa">ç»è</a></li> --> 34 <li><a href="/agent/traework">Trae Work</a></li> 35 <li><a href="/agent/workbuddy">WorkBuddy</a></li> 36 </ul> 37 </li> 38 <li><a href="/model">模å广åº</a></li> 39 <li><a href="/pricing">ä»·æ ¼</a></li> 40 <li><a href="https://api-doc.aa.com.cn" target="_blank">ææ¡£ä¸å¿</a></li> 41 <li class="nav-dropdown"> 42 <a href="/about/company">å ³äºæä»¬ 43 <svg class="dropdown-arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 44 <polyline points="6 9 12 15 18 9" /> 45 </svg> 46 </a> 47 <ul class="dropdown-menu"> 48 <li><a href="/about/company">å ¬å¸ä»ç»</a></li> 49 <li><a href="/about/qualifications">èµè´¨è£èª</a></li> 50 <li><a href="/about/methodology">æµè¯æ¹æ³è®º</a></li> 51 <li><a href="/about/sla">SLA</a></li> 52 <li><a href="/about/contact">èç³»æ¹å¼</a></li> 53 </ul> 54 </li> 55 <li class="hidden console" id="console-link"><a href="/console/">æ§å¶å°</a></li> 56 </ul> 57 </nav> 58 <div class="nav-actions"> 59 <!-- ç¨æ·ä¿¡æ¯åºå --> 60 <!-- <div id="user-area" class="relative flex items-center"> --> 61 <div id="user-area"> 62 <button class="btn btn-secondary btn-sm hidden" id="login-button">ç»å½</button> 63 <button class="btn btn-primary btn-sm hidden" id="register-button">注å</button> 64 <!-- ç¨æ·å¤´åå䏿èåï¼å·²ç»å½ç¶æï¼ --> 65 <div id="user-dropdown" class="hidden nav-dropdown"> 66 <button id="user-avatar" class="flex items-center p-1 rounded-full hover:bg-gray-100 transition-colors"> 67 <img id="avatar-img" src="" alt="ç¨æ·å¤´å" class="w-8 h-8 rounded-full object-cover hidden"> 68 <span id="avatar-initial" class="w-8 h-8 rounded-full bg-primary text-white flex items-center justify-center text-sm font-medium hidden"></span> 69 </button> 70 <div class="absolute right-0 w-28 bg-white rounded-lg shadow-lg py-1 z-50 hidden"> 71 <ul class="dropdown-menu" style="top: calc(100% - 8px) !important;"> 72 <li><a href="https://www.aa.com.cn/console/" class="block px-6 py-2 text-gray-700 hover:bg-gray-100 align-center">模å广åº</a></li> 73 <li><a href="https://www.aa.com.cn/console/user" class="block px-6 py-2 text-gray-700 hover:bg-gray-100 align-center">个人信æ¯</a></li> 74 <li><a href="https://www.aa.com.cn/console/recharge" class="block px-6 py-2 text-gray-700 hover:bg-gray-100 align-center">积åå å¼</a></li> 75 <li><a href="#" id="logout-button" class="block px-6 py-2 text-red-500 hover:bg-red-100 align-center">éåºç»å½</a></li> 76 </ul> 77 </div> 78 </div> 79 </div> 80 </div> 81 <button class="menu-toggle" aria-label="æå¼èå"> 82 <svg class="icon-hamburger" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 83 <line x1="3" y1="6" x2="21" y2="6" /> 84 <line x1="3" y1="12" x2="21" y2="12" /> 85 <line x1="3" y1="18" x2="21" y2="18" /> 86 </svg> 87 <svg class="icon-close" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 88 <line x1="18" y1="6" x2="6" y2="18" /> 89 <line x1="6" y1="6" x2="18" y2="18" /> 90 </svg> 91 </button> 92 </div> 93 </header> 94 95 <!-- âââ Mobile Menu âââââââââââââââââââââââââââââââââââââââââââââââ --> 96 <div class="mobile-menu" id="mobileMenu"> 97 <ul class="mobile-menu-links"> 98 <li><a href="/">é¦é¡µ</a></li> 99 <li> 100 <a href="/agent/qwenwork">AIåºç¨</a> 101 <ul class="mobile-dropdown-menu"> 102 <li><a href="/agent/qwenwork">åé®åå ¬</a></li> 103 <!-- <li><a href="/agent/ihuiwa">ç»è</a></li> --> 104 <li><a href="/agent/traework">Trae Work</a></li> 105 <li><a href="/agent/workbuddy">WorkBuddy</a></li> 106 </ul> 107 </li> 108 <li><a href="/model">模å广åº</a></li> 109 <li><a href="/pricing">ä»·æ ¼</a></li> 110 <li><a href="https://api-doc.aa.com.cn" target="_blank">ææ¡£ä¸å¿</a></li> 111 <li> 112 <a href="/about/company">
112å ³äºæä»¬</a> 113 <ul class="mobile-dropdown-menu"> 114 <li><a href="/about/company">å ¬å¸ä»ç»</a></li> 115 <li><a href="/about/qualifications">èµè´¨è£èª</a></li> 116 <li><a href="/about/methodology">æµè¯æ¹æ³è®º</a></li> 117 <li><a href="/about/sla">SLA</a></li> 118 <li><a href="/about/contact">èç³»æ¹å¼</a></li> 119 </ul> 120 </li> 121 <li class="mobile-console hidden"><a href="/console/">æ§å¶å°</a></li> 122 <li class="mobile-ucenter hidden"> 123 <a href="#">个人ä¸å¿</a> 124 <ul class="mobile-dropdown-menu"> 125 <li><a href="https://www.aa.com.cn/console/">模å广åº</a></li> 126 <li><a href="https://www.aa.com.cn/console/user">个人信æ¯</a></li> 127 <li><a href="https://www.aa.com.cn/console/recharge">积åå å¼</a></li> 128 </ul> 129 </li> 130 </ul> 131 <div class="mobile-menu-footer"> 132 <a href="https://uc.aa.com.cn/login/oauth/authorize?client_id=5cbb2506c9e13330fe1a&response_type=code&redirect_uri=https%3A%2F%2Fwww.aa.com.cn%2Fconsole%2Fcallback&theme=light&origin=home&icode=" class="btn btn-primary" id="mobile-menu-login-button">ç»å½</a> 133 <button class="btn btn-secondary hidden" id="mobile-menu-logout-button">éåºç»å½</button> 134 </div> 135 </div> 136 137 <main id="content"> 138 <!-- âââ Hero / Banner âââââââââââââââââââââââââââââââââââââââââââ --> 139 <section class="hero section" data-component="Hero" data-od-id="hero"> 140 <div class="container hero-inner"> 141 <div class="hero-content"> 142 <p class="eyebrow"><span class="eyebrow-dot"></span>é¢å ç人工æºè½åºç¨åºåº§</p> 143 <h1>å½å é«é AI 大模å<br/>API ä¸è½¬</h1> 144 <p class="lead">éè¿ç»ä¸ãæ 忥å£åè®®æ¥å ¥æµ·éå½å 模åãæ¿è½½ AI åºç¨ï¼é«æç®¡ç token èµäº§ï¼è¿æ¥æªæ¥ã</p> 145 <div class="hero-cta"> 146 <button class="btn btn-primary btn-lg" id="now-get"> 147 ç«å³è·å API Key 148 <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg> 149 </button> 150 <a href="https://api-doc.aa.com.cn" target="_blank" class="btn btn-secondary btn-lg">æ¥çæ¥å ¥ææ¡£</a> 151 </div> 152 <p style="margin-top: var(--gap-lg); font-size: 14px; color: var(--fg-tertiary);">ç°å¨å¼å§ï¼5 åéæ¥å ¥å ¨ç½å¤§æ¨¡å</p> 153 <div class="hero-apps"> 154 <div class="hero-apps-label">常ç¨åºç¨æ¯æ</div> 155 <div class="hero-apps-desc">å®ç¾æ¯æåç±»å·¥å ·çæåè®®</div> 156 <div class="hero-apps-list"> 157 <span class="hero-app-pill"> 158 <svg xmlns="http://www.w3.org/2000/svg" fill="#d97757" viewBox="0 0 100 100" class="w-full fill-current"><path d="m19.6 66.5 19.7-11 .3-1-.3-.5h-1l-3.3-.2-11.2-.3L14 53l-9.5-.5-2.4-.5L0 49l.2-1.5 2-1.3 2.9.2 6.3.5 9.5.6 6.9.4L38 49.1h1.6l.2-.7-.5-.4-.4-.4L29 41l-10.6-7-5.6-4.1-3-2-1.5-2-.6-4.2 2.7-3 3.7.3.9.2 3.7 2.9 8 6.1L37 36l1.5 1.2.6-.4.1-.3-.7-1.1L33 25l-6-10.4-2.7-4.3-.7-2.6c-.3-1-.4-2-.4-3l3-4.2L28 0l4.2.6L33.8 2l2.6 6 4.1 9.3L47 29.9l2 3.8 1 3.4.3 1h.7v-.5l.5-7.2 1-8.7 1-11.2.3-3.2 1.6-3.8 3-2L61 2.6l2 2.9-.3 1.8-1.1 7.7L59 27.1l-1.5 8.2h.9l1-1.1 4.1-5.4 6.9-8.6 3-3.5L77 13l2.3-1.8h4.3l3.1 4.7-1.4 4.9-4.4 5.6-3.7 4.7-5.3 7.1-3.2 5.7.3.4h.7l12-2.6 6.4-1.1 7.6-1.3 3.5 1.6.4 1.6-1.4 3.4-8.2 2-9.6 2-14.3 3.3-.2.1.2.3 6.4.6 2.8.2h6.8l12.6 1 3.3 2 1.9 2.7-.3 2-5.1 2.6-6.8-1.6-16-3.8-5.4-1.3h-.8v.4l4.6 4.5 8.3 7.5L89 80.1l.5 2.4-1.3 2-1.4-.2-9.2-7-3.6-3-8-6.8h-.5v.7l1.8 2.7 9.8 14.7.5 4.5-.7 1.4-2.6 1-2.7-.6-5.8-8-6-9-4.7-8.2-.5.4-2.9 30.2-1.3 1.5-3 1.2-2.5-2-1.4-3 1.4-6.2 1.6-8 1.3-6.4 1.2-7.9.7-2.6v-.2H49L43 72l-9 12.3-7.2 7.6-1.7.7-3-1.5.3-2.8L24 86l10-12.8 6-7.9 4-4.6-.1-.5h-.3L17.2 77.4l-4.7.6-2-2 .2-3 1-1 8-5.5Z"></path></svg> 159 Claude Code 160 </span>
161 <span class="hero-app-pill"> 162 <svg t="1784017964799" class="icon" viewBox="0 0 1089 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1764" width="200" height="200"><path d="M466.63477617 31.24645905c61.12522043 0.88373813 118.42090898 24.45008817 165.40631938 71.43549856 6.92261532 6.92261532 12.96149253 8.54280189 22.24074285 7.21719472 134.77006433-19.00036972 253.04368363 66.13306981 277.78835118 200.01939602 6.48074626 35.20223538 4.41869063 70.25718107-5.59700813 104.57567833-2.50392469 8.3955122-0.88373813 13.69794096 4.56598031 20.32597691 111.49829366 136.83211996 44.7760651 343.77413131-125.63810368 388.84477577-9.72111939 2.50392469-13.99252034 6.92261532-17.38018316 15.75999661-63.33456576 164.66987094-276.02087492 209.00406699-400.03879204 83.36596328-6.1861669-6.1861669-11.48859565-7.51177407-19.88410786-6.33345656-136.68483027 19.2949491-255.10573925-65.98578013-279.55582743-201.34500323-6.33345658-34.7603663-3.97682157-69.37344294 6.03887721-103.25007113 2.50392469-8.3955122 0.88373813-13.69794096-4.41869062-20.32597692-111.94016272-136.97940963-44.03961664-345.39431787 126.96371087-389.28664484 8.54280189-2.20934532 12.51962347-5.89158752 15.6127069-13.84523064 36.82242196-96.32745582 126.22726243-157.59996593 233.89602422-157.15809688z m148.17342591 593.13557275c-77.32708608 44.6287754-152.1502475 87.49007455-226.38425013 131.08782212-16.79102442 9.86840908-31.07812413 9.5738297-47.86914855-0.29457938-58.17942668-34.46578693-116.80072242-67.90054606-175.42201815-101.48259488-4.27140094-2.35663501-7.80635344-7.2171947-14.58167908-5.15513907-7.95364315 71.58278827 14.4343894 131.23511182 73.20297482 173.50725221 59.2104545 42.56671978 124.3124965 47.86914853 188.82537976 13.69794097 65.98578013-34.907656 129.76221494-74.08671296 194.42238788-111.49829366 3.68224221-2.06205563 7.80635344-3.68224221 7.80635345-9.13196065v-90.73044766z m-41.24111259-487.38157692c-1.47289687-5.15513907-5.30242877-6.62803595-8.24822251-8.69009157-58.91587511-39.9155054-121.66128212-46.24896197-185.29042725-14.87625848-64.21830387 31.81457257-98.38951143 86.16446736-100.30427737 157.89454531-1.91476594 72.90839547-0.29457937 145.81679091-0.73644845 218.72518637 0 7.80635344 2.65121438 11.93046471 9.27925032 15.46541723 21.65158411 11.93046471 43.00858883 24.59737787 64.36559358 36.82242194 2.65121438 1.47289687 5.0078494 4.71327001 9.42654001 1.91476595 0-86.31175705 0.29457937-173.06538315-0.14728967-259.81900928-0.1472897-17.82205222 6.62803595-29.31064787 22.09345315-38.00073943 44.7760651-25.18653662 89.11026111-51.10952167 133.59174684-76.88521704 18.70579035-10.75214722 37.4115807-21.79887379 55.97008135-32.551021z m85.28072925 341.56478599v18.85308004c0 81.89306641-0.1472897 163.93342252 0.14728967 245.82648892 0.1472897 16.64373472-6.03887719 27.98504069-20.62055629 35.93868382-20.47326659 11.19401627-40.50466414 23.12448098-60.68335137 34.76036634-43.45045791 25.18653662-87.04820548 50.37307323-134.62277464 77.91624483 4.12411126 1.47289687 6.1861669 1.76747625 7.65906377 2.94579376 54.64447417 39.9155054 114.29679772 49.04746604 176.89491503 24.00821909 62.5981173-25.03924691 102.95549177-72.6138161 110.61455554-139.63062402 9.27925033-81.89306641 1.91476594-164.66987094 3.3876628-247.00480644 0.1472897-4.41869063-1.91476594-6.92261532-5.44971843-8.98467094-25.03924691-14.4343894-49.93120416-28.86877882-77.32708608-44.6287754zM554.71400945 367.2142369c6.03887719 3.68224221 10.16298847 6.03887719 14.13981004 8.39551221 71.2882089 41.24111259 142.42912809 82.62951485 214.01191636 123.42875836 15.46541722 8.83738127 22.09345317 20.47326659 21.94616348 38.14802915-0.44186907 68.19512544-0.1472897 136.39025089-0.14728969 204.58537633 0 5.0078494 0.44186907 9.86840908 0.73644844 15.90728628 3.68224221-1.3256072 5.89158752-2.06205563 8.10093282-2.94579374 64.0710142-29.75251694 102.07175363-79.6837211 108.11063085-149.79361249 6.33345658-72.6138161-22.68261193-130.94053245-84.98614986-169.38314097-62.745407-38.73718787-127.55286961-74.08671296-191.32930443-111.20371428-5.59700814-3.24037312-9.72111939-3.68224221-15.61270692-0.29457938-24.15550879 14.13981003-48.60559698 27.83775099-74.97045109 43.15587853zM216.24230691 270.44491203c-6.62803595-0.88373813-10.60485751 2.20934532-14.72896877 4.27140094-60.97793075 30.63625506-96.62203518 80.12559015-102.21904332 147.87884654-5.74429781 70.25718107 21.50429441 127.9947387 81.15661796 165.70089876 63.92372449 40.35737445 130.64595307 76.44334797 196.04257446 114.44408742 3.82953187 2.20934532 7.36448439 4.12411126 11.78317501 1.47289688 25.33382629-14.72896878 50.66765259-29.45793756 77.47437578-44.92335477-5.59700814-3.38766283-9.42654002-5.89158752-13.40336158-8.24822253-71.2882089-41.24111259-142.42912809-82.62951485-214.01191636-123.28146868-16.05457598-9.13196064-22.53532223-21.06242535-22.38803255-39.32634664 0.58915875-72.31923671 0.29457937-144.7857631 0.29457937-217.98873792z m190.15098694 130.79324274c6.1861669-3.24037312 10.31027814-5.30242877 14.28709973-7.65906375 70.55176044-40.65195383 141.25081059-81.00932829 211.36070197-122.39773056 16.79102442-9.86840908 31.07812413-10.16298847 47.86914854-0.29457937 59.0631648 34.907656 118.56819867 68.78428419 177.92594284 102.95549177 3.5349525 2.06205563 6.48074626 5.89158752 12.51962347 4.12411125 7.80635344-70.10989139-13.40336159-129.32034589-70.69905013-171.73977596-59.50503387-44.18690634-125.34352431-50.22578353-191.03472509-15.6127069-65.98578013 34.907656-129.76221494 74.08671296-194.56967756 111.35100396-3.68224221 2.06205563-7.65906378 3.82953187-7.65906377 9.27925033v89.99399923z m208.41490823 115.9169843c0-20.17868721-0.44186907-36.96971163 0.14728969-53.61344636 0.29457937-7.65906378-2.20934532-12.0777544-8.98467096-15.75999658
162-29.45793756-16.49644503-58.76858542-33.43475913-87.78465391-50.6676526-5.59700814-3.38766283-9.72111939-3.38766283-15.46541723-0.14728971-29.01606849 17.23289347-58.32671636 34.17120756-87.78465393 50.66765261-6.77532564 3.82953187-8.83738127 8.24822251-8.83738127 15.90728628 0.44186907 32.84560039 0.58915875 65.83849045 0 98.68409082-0.1472897 8.98467097 3.09308345 13.69794096 10.75214722 17.67476253 13.99252034 7.2171947 27.24859225 15.61270692 40.94653321 23.41906036 17.38018317 9.86840908 34.7603663 27.6904613 51.99325978 27.54317163 17.96934191-0.1472897 35.79139413-17.52747284 53.46615667-27.54317163 16.9383141-9.72111939 39.17905696-16.20186565 48.75288666-30.78354473 9.86840908-15.46541722 1.76747625-39.03176725 2.79850407-55.38092262z" fill="#030303" p-id="1765"></path></svg> 163 Codex 164 </span> 165 <span class="hero-app-pill"> 166 <svg t="1784018012974" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2799" width="200" height="200"><path d="M716.8 819.2H307.2V409.6h409.6v409.6z" fill="#CFCECD" p-id="2800"></path><path d="M716.8 204.8H307.2v614.4h409.6V204.8z m204.8 819.2H102.4V0h819.2v1024z" fill="#211E1E" p-id="2801"></path></svg> 167 OpenCode 168 </span> 169 <span class="hero-app-pill more"> 170 <svg viewBox="0 0 24 24" fill="currentColor"><circle cx="6" cy="12" r="2"/><circle cx="12" cy="12" r="2"/><circle cx="18" cy="12" r="2"/></svg> 171 æ´å¤ 172 </span> 173 </div> 174 </div> 175 </div> 176 <div class="hero-code" id="quickstart"> 177 <div class="code-container"> 178 <div class="code-tabs" role="tablist"> 179 <button class="code-tab active" data-code-tab="chat" role="tab" aria-selected="true">Chat</button> 180 <button class="code-tab" data-code-tab="responses" role="tab" aria-selected="false">Responses</button> 181 <button class="code-tab" data-code-tab="claude" role="tab" aria-selected="false">Claude</button> 182 <button class="code-tab" data-code-tab="gemini" role="tab" aria-selected="false">Gemini</button> 183 </div> 184 <!-- Chat --> 185 <div class="code-panel active" data-code-panel="chat"> 186 <div class="code-panel-scroll"> 187 <div class="code-endpoint"><span class="method-badge">POST</span> /api/v1/chat/completions</div> 188 <div class="code-section-label">Request</div> 189 <div class="code-block"><span class="fn">curl</span> -X POST <span class="str">"https://api.aa.com.cn/api/v1/chat/completions"</span> \ 190<span class="op">-H</span> <span class="str">"Authorization: Bearer sk-****"</span> \ 191<span class="op">-H</span> <span class="str">"Content-Type: application/json"</span> \ 192<span class="op">-d</span> <span class="str">'{ 193 "model": "deepseek-v4-flash", 194 "messages": [ 195 {"role": "user", "content": "ä½ å¥½ï¼"} 196 ] 197}'</span></div> 198 <div class="code-section-label">Response</div> 199 <div class="code-block">{ 200<span class="str">"choices"</span>: [{ 201 <span class="str">"message"</span>: { <span class="str">"content"</span>: <span class="str">"ä½ å¥½ï¼ææ¯å ¸åè¯å AIå©æï¼æä»ä¹å¯ä»¥å¸®å©æ¨çåï¼"</span> } 202}], 203<span class="str">"usage"</span>: { <span class="str">"total_tokens"</span>: <span class="num">27</span> } 204}</div> 205 </div> 206 <div class="code-status"> 207 <span class="status-left">142 MS • 27 TOKENS • COST $0.00081</span> 208 <span class="status-right">STREAM • SSE</span> 209 </div> 210 </div> 211 <!-- Responses --> 212 <div class="code-panel" data-code-panel="responses"> 213 <div class="code-panel-scroll"> 214 <div class="code-endpoint"><span class="method-badge">POST</span> /api/v1/responses</div> 215 <div class="code-section-label">Request</div> 216 <div class="code-block"><span class="fn">curl</span> -X POST <span class="str">"https://api.aa.com.cn/api/v1/responses"</span> \ 217<span class="op">-H</span> <span class="str">"Authorization: Bearer sk-****"</span> \ 218<span class="op">-H</span> <span class="str">"Content-Type: application/json"</span> \ 219<span class="op">-d</span> <span class="str">'{ 220 "model": "qwen3.7-max", 221 "input": "ä½ å¥½ï¼" 222}'</span></div> 223 <div class="code-section-label">Response</div> 224 <div class="code-block">{ 225<span class="str">"output"</span>: [{ 226 <span class="str">"type"</span>: <span class="str">"message"</span>, 227 <span class="str">
227"content"</span>: [{ <span class="str">"text"</span>: <span class="str">"ä½ å¥½ï¼æä»ä¹å¯ä»¥å¸®å©æ¨çåï¼"</span> }] 228}], 229<span class="str">"usage"</span>: { <span class="str">"total_tokens"</span>: <span class="num">31</span> } 230}</div> 231 </div> 232 <div class="code-status"> 233 <span class="status-left">168 MS • 31 TOKENS • COST $0.00093</span> 234 <span class="status-right">STREAM • SSE</span> 235 </div> 236 </div> 237 <!-- Claude --> 238 <div class="code-panel" data-code-panel="claude"> 239 <div class="code-panel-scroll"> 240 <div class="code-endpoint"><span class="method-badge">POST</span> /api/v1/messages</div> 241 <div class="code-section-label">Request</div> 242 <div class="code-block"><span class="fn">curl</span> -X POST <span class="str">"https://api.aa.com.cn/api/v1/messages"</span> \ 243<span class="op">-H</span> <span class="str">"x-api-key: sk-****"</span> \ 244<span class="op">-H</span> <span class="str">"Content-Type: application/json"</span> \ 245<span class="op">-d</span> <span class="str">'{ 246 "model": "deepseek-v4-pro", 247 "max_tokens": 1024, 248 "messages": [ 249 {"role": "user", "content": "ä½ å¥½ï¼"} 250 ] 251}'</span></div> 252 <div class="code-section-label">Response</div> 253 <div class="code-block">{ 254<span class="str">"content"</span>: [{ 255 <span class="str">"type"</span>: <span class="str">"text"</span>, 256 <span class="str">"text"</span>: <span class="str">"ä½ å¥½ï¼ææ¯ Claudeï¼æä»ä¹å¯ä»¥å¸®å©æ¨çåï¼"</span> 257}], 258<span class="str">"usage"</span>: { <span class="str">"output_tokens"</span>: <span class="num">19</span> } 259}</div> 260 </div> 261 <div class="code-status"> 262 <span class="status-left">203 MS • 19 TOKENS • COST $0.00114</span> 263 <span class="status-right">STREAM • SSE</span> 264 </div> 265 </div> 266 <!-- Gemini --> 267 <div class="code-panel" data-code-panel="gemini"> 268 <div class="code-panel-scroll"> 269 <div class="code-endpoint"><span class="method-badge">POST</span> /api/v1/v1beta/models/gemini-3.5-flash:generateContent</div> 270 <div class="code-section-label">Request</div> 271 <div class="code-block"><span class="fn">curl</span> -X POST <span class="str">"https://api.aa.com.cn/api/v1/v1beta/models/gemini-3.5-flash:generateContent"</span> \ 272<span class="op">-H</span> <span class="str">"Authorization: Bearer sk-****"</span> \ 273<span class="op">-H</span> <span class="str">"Content-Type: application/json"</span> \ 274<span class="op">-d</span> <span class="str">'{ 275 "contents": [{ 276 "parts": [{"text": "ä½ å¥½ï¼"}] 277 }] 278}'</span></div> 279 <div class="code-section-label">Response</div> 280 <div class="code-block">{ 281<span class="str">"candidates"</span>: [{ 282 <span class="str">"content"</span>: { 283 <span class="str">"parts"</span>: [{ <span class="str">"text"</span>: <span class="str">"ä½ å¥½ï¼ææ¯ Geminiï¼æä»ä¹å¯ä»¥å¸®å©æ¨çåï¼"</span> }] 284 } 285}], 286<span class="str">"usageMetadata"</span>: { <span class="str">"totalTokenCount"</span>: <span class="num">24</span> } 287}</div> 288 </div> 289 <div class="code-status"> 290 <span class="status-left">156 MS • 24 TOKENS • COST $0.00072</span> 291 <span class="status-right">STREAM • SSE</span> 292 </div> 293 </div> 294 </div> 295 </div> 296 </div> 297 </section> 298 299 <!-- âââ 为ä»ä¹éæ©å ¸åè¯å âââââââââââââââââââââââââââââââââââââââ --> 300 <section class="section" id="why" data-component="Features" data-od-id="why"> 301 <div class="container"> 302 <div class="section-header"> 303 <p class="eyebrow">WHY US</p> 304 <h2>为ä»ä¹éæ©å ¸åè¯å </h2> 305 </div> 306 <div class="features-grid"> 307 <div class="feature-card"> 308 <div class="feature-icon"> 309 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round">
309<path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/></svg> 310 </div> 311 <h3>å½å ç´è¿ï¼æéä½å»¶è¿</h3> 312 <p>é¿éäºèç¹é¨ç½²ï¼æ é代çï¼å½å é«éç´è¿ï¼å¹³åå»¶è¿ 50msã</p> 313 <div class="feature-highlight">å¹³åå»¶è¿ 50ms</div> 314 </div> 315 <div class="feature-card"> 316 <div class="feature-icon"> 317 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"/><path d="M17 5H9.5a3.5 3.5 0 000 7h5a3.5 3.5 0 010 7H6"/></svg> 318 </div> 319 <h3>æ´ä½ææ¬ï¼æé计费</h3> 320 <p>è¾å ¥è¾åº token ä»·æ ¼æ¯å®æ¹ä½çº¦ 30%â70%ï¼ç¨å¤å°ä»å¤å°ï¼æ æä½æ¶è´¹ã</p> 321 <div class="feature-highlight">æ¯å®æ¹ä½çº¦ 30%â70%</div> 322 </div> 323 <div class="feature-card"> 324 <div class="feature-icon"> 325 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg> 326 </div> 327 <h3>é¶æ¹å¨æ¥å ¥ï¼å ¼å®¹ OpenAI</h3> 328 <p>æ éä¿®æ¹ SDKï¼ä» æ¹ base_url ä¸è¡ä»£ç å³å¯æ¥å ¥ï¼å®å ¨å ¼å®¹ OpenAI API æ ¼å¼ã</p> 329 <div class="feature-highlight">ä» æ¹ base_url</div> 330 </div> 331 <div class="feature-card"> 332 <div class="feature-icon"> 333 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0110 0v4"/></svg> 334 </div> 335 <h3>99.9% SLA ä¿é</h3> 336 <p>æºè½è·¯ç±ä¸èªå¨æ é转移ï¼å¤èç¹é«å¯ç¨é¨ç½²ï¼ä¼ä¸çº§ç¨³å®æ§ä¿éã</p> 337 <div class="feature-highlight">æºè½è·¯ç± · èªå¨æ é转移</div> 338 </div> 339 </div> 340 </div> 341 </section> 342 343 <!-- âââ 主æµååå ¨è¦ç âââââââââââââââââââââââââââââââââââââââââââ --> 344 <section class="section" id="providers" data-component="Providers" data-od-id="providers"> 345 <div class="container"> 346 <div class="section-header"> 347 <p class="eyebrow">MODEL PROVIDERS</p> 348 <h2>主æµååå ¨è¦ç</h2> 349 <p>éè¿ä¸ä¸ª API 端ç¹è®¿é® 100+ 款大模åï¼è¦çå½å å¤ä¸»æµååã</p> 350 </div> 351 <div class="providers-layout"> 352 <!-- Row 1: scrolls right --> 353 <div class="providers-scroll-wrapper"> 354 <div class="provider-track scroll-right"> 355 <div class="provider-set" aria-hidden="false"> 356 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/tencent.png" alt="" aria-hidden="true"></div><div class="provider-name">è ¾è®¯äº</div></div> 357 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/zhipu.svg" alt="" aria-hidden="true"></div><div class="provider-name">æºè°± AI</div></div> 358 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/qwen.svg" alt="" aria-hidden="true"></div><div class="provider-name">éä¹åé®</div></div> 359 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/deepseek.svg" alt="" aria-hidden="true"></div><div class="provider-name">DeepSeek</div></div> 360 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/bytedance.svg" alt="" aria-hidden="true"></div><div class="provider-name">åèè±å </div></div> 361 </div> 362 <div class="provider-set" aria-hidden="true"> 363 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/tencent.png" alt="" aria-hidden="true"></div><div class="provider-name">è ¾è®¯äº</div></div> 364 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/zhipu.svg" alt="" aria-hidden="true"></div><div class="provider-name">æºè°± AI</div></div> 365 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/qwen.svg" alt="" aria-hidden="true"></div><div class="provider-name">éä¹åé®</div></div> 366 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/deepseek.svg" alt="" aria-hidden="true"></div><div class="provider-name">DeepSeek</div></div> 367 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/bytedance.svg" alt="" aria-hidden="true"></div><div class="provider-name">åèè±å </div></div> 368 </div> 369 <div class="provider-set" aria-hidden="true"> 370 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/tencent.png" alt="" aria-hidden="true"></div><div class="provider-name">è ¾è®¯äº</div></div> 371 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/zhipu.svg" alt="" aria-hidden="true"></div><div class="provider-name">æºè°± AI</div></div> 372 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/qwen.svg" alt="" aria-hidden="true"></div><div class="provider-name">éä¹åé®</div></div> 373 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/deepseek.svg" alt="" aria-hidden="true"></div><div class="provider-name">DeepSeek</div></div> 374 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/bytedance.svg" alt="" aria-hidden="true"></div><div class="provider-name">åèè±å </div></div> 375 </div> 376 <div class="provider-set" aria-hidden="true"> 377 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/tencent.png" alt="" aria-hidden="true"></div><div class="provider-name">è ¾è®¯äº</div></div> 378 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/zhipu.svg" alt="" aria-hidden="true"></div><div class="provider-name">æºè°± AI</div></div> 379 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/qwen.svg" alt="" aria-hidden="true"></div><div class="provider-name">éä¹åé®</div></div> 380 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/deepseek.svg" alt="" aria-hidden="true"></div><div class="provider-name">DeepSeek</div></div> 381 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/bytedance.svg" alt="" aria-hidden="true"></div><div class="provider-name">åèè±å </div></div> 382 </div> 383 </div> 384 </div> 385 <!-- Row 2: scrolls left --> 386 <div class="providers-scroll-wrapper"> 387 <div class="provider-track scroll-left"> 388 <div class="provider-set" aria-hidden="false"> 389 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/kling.svg" alt="" aria-hidden="true"></div><div class="provider-name">å¿«æå¯çµ</div></div> 390 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/jimeng.svg" alt="" aria-hidden="true"></div><div class="provider-name">峿¢¦</div></div> 391 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/minimax.svg" alt="" aria-hidden="true"></div><div class="provider-name">MiniMax</div></div> 392 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/vidu.svg" alt="" aria-hidden="true"></div><div class="provider-name">Vidu</div></div> 393 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/happy-horse.png" alt="" aria-hidden="true"></div><div class="provider-name">HappyHorse</div></div> 394 </div> 395 <div class="provider-set" aria-hidden="true"> 396 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/kling.svg" alt="" aria-hidden="true"></div><div class="provider-name">å¿«æå¯çµ</div></div> 397 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/jimeng.svg" alt="" aria-hidden="true"></div><div class="provider-name">峿¢¦</div></div> 398 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/minimax.svg" alt="" aria-hidden="true"></div><div class="provider-name">MiniMax</div></div> 399 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/vidu.svg" alt="" aria-hidden="true"></div><div class="provider-name">Vidu</div></div> 400 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/happy-horse.png" alt="" aria-hidden="true"></div><div class="provider-name">HappyHorse</div></div> 401 </div> 402 <div class="provider-set" aria-hidden="true"> 403 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/kling.svg" alt="" aria-hidden="true"></div><div class="provider-name">å¿«æå¯çµ</div></div> 404 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/jimeng.svg" alt="" aria-hidden="true"></div><div class="provider-name">峿¢¦</div></div> 405 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/minimax.svg" alt="" aria-hidden="true"></div><div class="provider-name">MiniMax</div></div> 406 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/vidu.svg" alt="" aria-hidden="true"></div><div class="provider-name">Vidu</div></div> 407 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/happy-horse.png" alt="" aria-hidden="true"></div><div class="provider-name">HappyHorse</div></div> 408 </div> 409 <div class="provider-set" aria-hidden="true"> 410 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/kling.svg" alt="" aria-hidden="true"></div><div class="provider-name">å¿«æå¯çµ</div></div> 411 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/jimeng.svg" alt="" aria-hidden="true"></div><div class="provider-name">峿¢¦</div></div> 412 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/minimax.svg" alt="" aria-hidden="true"></div><div class="provider-name">MiniMax</div></div> 413 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/vidu.svg" alt="" aria-hidden="true"></div><div class="provider-name">Vidu</div></div> 414 <div class="provider-item"><div class="provider-logo"><img src="/statics/images/logos/happy-horse.png" alt="" aria-hidden="true"></div><div class="provider-name">HappyHorse</div></div> 415 </div> 416 </div> 417 </div> 418 </div> 419 </div> 420 </section> 421 422 <!-- âââ 䏿¥æ¥å ¥ï¼5 åéè·é âââââââââââââââââââââââââââââââââââââ --> 423 <section class="section" id="steps" data-component="Steps" data-od-id="steps"> 424 <div class="container"> 425 <div class="section-header"> 426 <p class="eyebrow">QUICK START</p> 427 <h2>䏿¥æ¥å ¥ï¼5 åéè·é</h2> 428 </div> 429 <div class="steps-grid"> 430 <div class="step-card"> 431 <div class="step-number">01</div> 432 <h3>注åè´¦å·</h3> 433 <p>å¨å®ç½æ³¨åè´¦å·ï¼è·åä¸å± API Keyï¼å³å»å¼å§ä½¿ç¨ã</p> 434 </div> 435 <div class="step-card"> 436 <div class="step-number">
43602</div> 437 <h3>æ¿æ¢ base_url</h3> 438 <p>å¨ç°æ SDK ä¸å° base_url æ¿æ¢ä¸ºå ¸åè¯å 端ç¹ï¼æ éæ¹å¨ä¸å¡ä»£ç ã</p> 439 <div class="step-code">base_url = "https://api.aa.com.cn/api/v1"</div> 440 </div> 441 <div class="step-card"> 442 <div class="step-number">03</div> 443 <h3>å¼å§è°ç¨</h3> 444 <p>è°ç¨ä»»ææ¨¡åï¼æå®é token ç¨é计费ï¼ç¨å¤å°ä»å¤å°ã</p> 445 </div> 446 </div> 447 </div> 448 </section> 449 450 <!-- âââ å ¸ååºç¨åºæ¯ âââââââââââââââââââââââââââââââââââââââââââââ --> 451 <section class="section" id="cases" data-component="UseCases" data-od-id="cases"> 452 <div class="container"> 453 <div class="section-header"> 454 <p class="eyebrow">USE CASES</p> 455 <h2>å ¸ååºç¨åºæ¯</h2> 456 </div> 457 <div class="cases-grid"> 458 <div class="case-card"> 459 <div class="case-tag">Agent</div> 460 <h3>AI Agent ç¼æ</h3> 461 <p>æå»ºå¤æ AI Agent 工使µï¼æ¯æå·¥å ·è°ç¨ä¸å¤è½®å¯¹è¯ï¼çµæ´»ç¼æå¤æ¨¡ååä½ã</p> 462 <div class="case-recommend">æ¨è模å: <span>GLM-5.2</span></div> 463 </div> 464 <div class="case-card"> 465 <div class="case-tag">RAG</div> 466 <h3>æºè½å®¢æ / RAG</h3> 467 <p>åºäºç¥è¯åºçæºè½é®çç³»ç»ï¼ä¼ç§ç䏿çè§£è½åï¼ç²¾åæ£ç´¢å¢å¼ºçæã</p> 468 <div class="case-recommend">æ¨è模å: <span>DeepSeek-V4-Flash</span></div> 469 </div> 470 <div class="case-card"> 471 <div class="case-tag">Content</div> 472 <h3>å å®¹çæ / SEO</h3> 473 <p>ä½ææ¬æ¹éçæé¿æãè¥éææ¡ä¸ SEO å å®¹ï¼æéè®¡è´¹å¤§å¹ éä½å 容çäº§ææ¬ã</p> 474 <div class="case-recommend">æ¨è模å: <span>Qwen3.7-Max / GLM-5.2</span></div> 475 </div> 476 <div class="case-card"> 477 <div class="case-tag">Research</div> 478 <h3>ç§ç / æ°æ®åæ</h3> 479 <p>è°ç¨æ¨ç模åè¿è¡æ°æ®åæä¸ç§ç 计ç®ï¼æ éèªå»º GPU éç¾¤ï¼æéå¼¹æ§ä½¿ç¨ã</p> 480 <div class="case-recommend">æ¨è模å: <span>DeepSeek-V4-Pro</span></div> 481 </div> 482 </div> 483 </div> 484 </section> 485 486 <!-- âââ CTA / åå¤å¥½ç®å âââââââââââââââââââââââââââââââââââââââ --> 487 <section class="cta-section" data-component="CTA" data-od-id="cta"> 488 <div class="cta-content"> 489 <h2 class="cta-title"> 490 åå¤å¥½ç®å<br> 491 <span class="gradient-text">ä½ ç AI éæäºåï¼</span> 492 </h2> 493 <div class="cta-buttons"> 494 <button class="cta-btn-primary" id="to-start"> 495 å¼å§ä½¿ç¨ 496 <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg> 497 </button> 498 <a href="/pricing" class="cta-btn-secondary">æ¥çå®ä»·</a> 499 </div> 500 </div> 501 </section> 502 </main> 503 504 <!-- âââ Footer ââââââââââââââââââââââââââââââââââââââââââââââââââââ --> 505 <footer class="pagefoot" data-component="Footer" data-od-id="footer"> 506 <div class="container"> 507 <div class="footer-grid"> 508 <div class="footer-brand"> 509 <span class="logo"> 510 <img src="/statics/images/logo.png" alt="å ¸åè¯å "> 511 </span> 512 <p>å½å é«é AI 大模å API ä¸è½¬ï¼éè¿ç»ä¸æ¥å£æ¥å ¥æµ·é模åã</p> 513 </div> 514 <div class="footer-col"> 515 <h4>产å</h4> 516 <ul> 517 <li><a href="#why">æ ¸å¿ä¼å¿</a></li> 518 <li><a href="#providers">模ååå</a></li> 519 <li><a href="#quickstart">代ç 示ä¾</a></li> 520 <li><a href="#cases">åºç¨åºæ¯</a></li> 521 </ul> 522 </div> 523 <div class="footer-col"> 524 <h4>å¼åè </h4> 525 <ul> 526 <li><a href="https://api-doc.aa.com.cn">å¿«éæ¥å ¥</a></li> 527 <li><a href="https://api-doc.aa.com.cn">
527API ææ¡£</a></li> 528 </ul> 529 </div> 530 <div class="footer-col"> 531 <h4>å ³äº</h4> 532 <ul> 533 <li><a href="/about/company">å ³äºæä»¬</a></li> 534 <li><a href="/about/contact">èç³»æ¹å¼</a></li> 535 </ul> 536 </div> 537 538 <div class="footer-col"> 539 <h4>åæ é¾æ¥</h4> 540 <ul> 541 <li><a href="https://www.wangpan.com.cn" target="_blank" title="ä¼ä¸ç½ç">ä¼ä¸ç½ç</a></li> 542 <li><a href="https://www.321.com.cn" target="_blank" title="321çä¿¡">321çä¿¡</a></li> 543 <li><a href="https://www.mail.com.cn" target="_blank" title="ä¼ä¸é®ç®±">ä¼ä¸é®ç®±</a></li> 544 <li><a href="http://www.023dns.com" target="_blank" title="ååèæº">ååèæº</a></li> 545 <li><a href="https://www.aimao.com" target="_blank" title="ç¹ç§ç«è§é¢åä½">è§é¢åä½</a></li> 546 </ul> 547 </div> 548 549 </div> 550 <div class="footer-bottom"> 551 <span>© 2026 éåºå ¸åç§ææéå ¬å¸</span> 552 <span> 553 <a href="https://beian.miit.gov.cn/" target="_blank">æ¸ICPå¤10013348å·-35</a> 554 </span> 555 </div> 556 </div> 557 </footer> 558 559 <!-- ç»å½å¼¹çª --> 560 <div id="login-modal" class="fixed inset-0 z-50 flex items-center justify-center hidden"> 561 <div class="absolute inset-0 bg-black bg-opacity-50"></div> 562 <div class="relative bg-white rounded-lg overflow-hidden shadow-xl w-full max-w-[40rem] max-h-[95vh]"> 563 <div class="login-frame-clip relative h-[53vh] w-full rounded-lg"> 564 <h2 class="ml-4 mt-4 bold text-lg font-medium">å建ãç»å½æ¨çå¼åè è´¦å·</h2> 565 <button id="close-modal" class="absolute right-3 top-0 z-20 flex h-9 w-9 items-center justify-center rounded-full border border-brand-border bg-brand-card/92 text-gray-300 transition-colors hover:border-gray-500 hover:text-red-500"> 566 <i class="fa fa-times"></i> 567 </button> 568 <iframe id="login-iframe" src="" width="100%" height="100%" frameborder="0"></iframe> 569 </div> 570 </div> 571 </div> 572 573 <!-- åå°é¡¶é¨æé® --> 574 <div id="back-to-top" class="back-to-top"> 575 <i class="fa fa-chevron-up"></i> 576 </div> 577 578
578<script> 579 // icode 580 sessionStorage.setItem('icode', ''); 581 582 /* âââ Code tabs âââââââââââââââââââââââââââââââââââââââââââââââ */ 583 (function() { 584 var tabs = document.querySelectorAll('.code-tab'); 585 var panels = document.querySelectorAll('.code-panel'); 586 tabs.forEach(function(tab) { 587 tab.addEventListener('click', function() { 588 var target = tab.getAttribute('data-code-tab'); 589 tabs.forEach(function(t) { 590 t.classList.remove('active'); 591 t.setAttribute('aria-selected', 'false'); 592 }); 593 panels.forEach(function(p) { 594 p.classList.remove('active'); 595 }); 596 tab.classList.add('active'); 597 tab.setAttribute('aria-selected', 'true'); 598 document.querySelector('[data-code-panel="' + target + '"]').classList.add('active'); 599 }); 600 }); 601 })(); 602 603 /* âââ Navigation scroll effect âââââââââââââââââââââââââââââââ */ 604 (function() { 605 var nav = document.querySelector('.topnav'); 606 var scrollThreshold = 50; 607 var ticking = false; 608 609 function updateNav() { 610 if (window.scrollY > scrollThreshold) { 611 nav.classList.add('scrolled'); 612 } else { 613 nav.classList.remove('scrolled'); 614 } 615 ticking = false; 616 } 617 618 window.addEventListener('scroll', function() { 619 if (!ticking) { 620 window.requestAnimationFrame(updateNav); 621 ticking = true; 622 } 623 }, { 624 passive: true 625 }); 626 })(); 627 628 /* âââ Mobile menu toggle âââââââââââââââââââââââââââââââââââââ */ 629 (function() { 630 var menuToggle = document.querySelector('.menu-toggle'); 631 var mobileMenu = document.getElementById('mobileMenu'); 632 var nav = document.querySelector('.topnav'); 633 var menuLinks = mobileMenu.querySelectorAll('a'); 634 635 function openMenu() { 636 mobileMenu.classList.add('open'); 637 nav.classList.add('menu-open'); 638 document.body.style.overflow = 'hidden'; 639 menuToggle.setAttribute('aria-label', 'å ³éèå'); 640 } 641 642 function closeMenu() { 643 mobileMenu.classList.remove('open'); 644 nav.classList.remove('menu-open'); 645 document.body.style.overflow = ''; 646 menuToggle.setAttribute('aria-label', 'æå¼èå'); 647 } 648 649 menuToggle.addEventListener('click', function() { 650 if (mobileMenu.classList.contains('open')) { 651 closeMenu(); 652 } else { 653 openMenu(); 654 } 655 }); 656 657 menuLinks.forEach(function(link) { 658 link.addEventListener('click', closeMenu); 659 }); 660 })(); 661 662 (function() { 663 // ç»å½åè½ 664 const loginButton = document.getElementById('login-button'); 665 const loginButtonMobile = document.getElementById('login-button-mobile'); 666 const loginModal = document.getElementById('login-modal'); 667 const closeModal = document.getElementById('close-modal'); 668 const loginIframe = document.getElementById('login-iframe'); 669 const loginFrameClip = document.querySelector('.login-frame-clip'); 670 const nowGetButton = document.getElementById('now-get'); 671 const toStartButton = document.getElementById('to-start'); 672 const mobileMenuLoginButton = document.getElementById('mobile-menu-login-button'); 673 let login_url = "https://uc.aa.com.cn/login/oauth/authorize?client_id=5cbb2506c9e13330fe1a&response_type=code&redirect_uri=https%3A%2F%2Fwww.aa.com.cn%2Fconsole%2Fcallback&theme=light&origin=home&icode="; 674 let register_url = "https://uc.aa.com.cn/signup?client_id=5cbb2506c9e13330fe1a&response_type=code&redirect_uri=https%3A%2F%2Fwww.aa.com.cn%2Fconsole%2Fcallback&theme=light&origin=home&icode="; 675 676 677 // ç嬿¥èªiframeçæ¶æ¯ 678 window.addEventListener('message', function(event) { 679 // æ£æ¥æ¶æ¯æ¯å¦è¡¨ç¤ºç»å½æå 680 if (event.data.type === 'login_success' || 'access_token' in event.data) { 681 // ç»å½æåï¼å ³éå¼¹çª 682 closeLoginModal(); 683 // åå ¥ Cookie 684 document.cookie = "access_token=" + event.data.access_token + "; path=/"; 685 localStorage.setItem("access_token", event.data.access_token); 686 // å·æ°é¡µé¢ 687 location.reload(); 688 } 689 }); 690 691 // ç»å½å½æ° 692 function showLoginModal() { 693 // 设置iframeçsrc 694 loginIframe.src = login_url; 695 // æ¾ç¤ºå¼¹çª 696 loginModal.classList.remove('hidden'); 697 // ç¦æ¢èæ¯æ»å¨ 698 document.body.classList.add('modal-open'); 699 } 700 701 // ç¹å»ç«å³è·å API Key æé® 702 if (nowGetButton) { 703 nowGetButton.addEventListener('click', function() { 704 if (localStorage.getItem('access_token')) { // å·²ç»å½ï¼ç´æ¥è·³è½¬å°api key é¡µé¢ 705 window.location.href = '/console/api-key'; 706 } else { 707 // 夿æ¯å¦ç§»å¨ç«¯ï¼ç§»å¨ç«¯ç´æ¥è·³è½¬ 708 if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { 709 window.location.href = login_url; 710 } else { 711 showLoginModal(); 712 } 713 } 714 }); 715 } 716 717 // ç¹å»å¼å§ä½¿ç¨æé® 718 if (toStartButton) { 719 toStartButton.addEventListener('click', function() { 720 if (localStorage.getItem('access_token')) { // å·²ç»å½ï¼ç´æ¥è·³è½¬å°å®ä»·é¡µé¢ 721 window.location.href = '/console/'; 722 } else { 723 // 夿æ¯å¦ç§»å¨ç«¯ï¼ç§»å¨ç«¯ç´æ¥è·³è½¬ 724 if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { 725 window.location.href = login_url; 726 } else { 727 showLoginModal(); 728 } 729 } 730 }); 731 } 732 733 // ç¹å»ç»å½æé® 734 if (loginButton) { 735 loginButton.addEventListener('click', showLoginModal); 736 } 737 738 // 注å彿° 739 function showRegisterModal() { 740 // 设置iframeçsrc 741 loginIframe.src = register_url; 742 // æ¾ç¤ºå¼¹çª 743 loginModal.classList.remove('hidden'); 744 // ç¦æ¢èæ¯æ»å¨ 745 document.body.classList.add('modal-open'); 746 } 747 748 // ç¹å»æ³¨åæé® 749 const registerButton = document.getElementById('register-button'); 750 if (registerButton) { 751 registerButton.addEventListener('click', showRegisterModal); 752 } 753 754 // å ³éå¼¹çª 755 function closeLoginModal() { 756 loginModal.classList.add('hidden'); 757 loginIframe.src = ''; 758 // æ¢å¤èæ¯æ»å¨ 759 document.body.classList.remove('modal-open'); 760 } 761 762 closeModal.addEventListener('click', closeLoginModal); 763 764 // ç¹å»é®ç½©å±å ³éå¼¹çª 765 loginModal.addEventListener('click', function(e) { 766 if (e.target === loginModal) { 767 closeLoginModal(); 768 } 769 }); 770 771 // ç¨æ·ä¿¡æ¯å䏿èå 772 const userArea = document.getElementById('user-area'); 773 const userDropdown = document.getElementById('user-dropdown'); 774 const userAvatar = document.getElementById('user-avatar'); 775 const avatarImg = document.getElementById('avatar-img'); 776 const avatarInitial = document.getElementById('avatar-initial'); 777 const logoutButton = document.getElementById('logout-button'); 778 const mobileMenuLogoutButton = document.getElementById('mobile-menu-logout-button'); 779 const mobileUcenter = document.querySelector('.mobile-ucenter'); 780 const mobileConsole = document.querySelector('.mobile-console'); 781 const mobileLogoutButton = document.getElementById('mobile-logout-button'); 782 const consoleLink = document.getElementById('console-link'); 783 784 avatarImg.onerror = function() { // å¾çå 载失败æ¶ï¼æ¾ç¤ºé¦å符ï¼éèå¾ç 785 avatarImg.classList.add('hidden'); 786 avatarInitial.classList.remove('hidden'); 787 }; 788 789 avatarImg.onload = function() { // å¾çå è½½æåæ¶ï¼æ¾ç¤ºå¾çï¼éèé¦å符 790 avatarImg.classList.remove('hidden'); 791 avatarInitial.classList.add('hidden'); 792 }; 793 794 // æ£æ¥ç¨æ·ç»å½ç¶æ 795 function checkLoginStatus() { 796 const accessToken = localStorage.getItem('access_token'); 797 if (accessToken) { 798 // ætokenï¼è·åç¨æ·ä¿¡æ¯ 799 fetch('/api/user/profile', { 800 headers: { 801 'Authorization': 'Bearer ' + accessToken 802 } 803 }) 804 .then(response => response.json()) 805 .then(data => { 806 if (data.code === 200 && data.data) { 807 // æ¾ç¤ºç¨æ·å¤´å 808 loginButton.classList.add('hidden'); 809 loginButton.classList.remove('sm:block'); 810 registerButton.classList.add('hidden'); 811 registerButton.classList.remove('sm:block'); 812 if (loginButtonMobile) { 813 loginButtonMobile.classList.add('hidden'); 814 } 815 userDropdown.classList.remove('hidden'); 816 // ç§»å¨ç«¯èåï¼éèç»å½æé®ï¼æ¾ç¤ºéåºç»å½æé® 817 if (mobileMenuLoginButton) { 818 mobileMenuLoginButton.classList.add('hidden'); 819 } 820 if (mobileMenuLogoutButton) { 821 mobileMenuLogoutButton.classList.remove('hidden'); 822 } 823 // æ¾ç¤ºæ§å¶å° 824 if (mobileConsole) { 825 mobileConsole.classList.remove('hidden'); 826 } 827 // æ¾ç¤ºä¸ªäººä¸å¿ 828 if (mobileUcenter) { 829 mobileUcenter.classList.remove('hidden'); 830 } 831 // æ¾ç¤ºæ§å¶å°é¾æ¥ 832 if (consoleLink) { 833 consoleLink.classList.remove('hidden'); 834 } 835 const displayName = data.data.display_name || data.data.name || 'A'; 836 avatarInitial.textContent = displayName.charAt(0).toUpperCase(); 837 avatarImg.src = data.data.avatar; 838 // ææ¬å°åå¨çtokenåå ¥ Cookieï¼ç§»å¨ç«¯çç»å½æ¯è·³è½¬ï¼æªè¿è¡cookieç»´æ¤ï¼ï¼cookieå¨éåºç»å½æ¶éè¦ä½¿ç¨ 839 document.cookie = "access_token=" + accessToken + "; path=/"; 840 } else { 841 // 没æç¨æ·ä¿¡æ¯ï¼æ¾ç¤ºç»å½æé® 842 loginButton.classList.remove('hidden'); 843 loginButton.classList.add('sm:block'); 844 registerButton.classList.remove('hidden'); 845 registerButton.classList.add('sm:block'); 846 if (loginButtonMobile) { 847 loginButtonMobile.classList.remove('hidden'); 848 } 849 userDropdown.classList.add('hidden'); 850 // ç§»å¨ç«¯èåï¼æ¾ç¤ºç»å½æé®ï¼éèéåºç»å½æé® 851 if (mobileMenuLoginButton) { 852 mobileMenuLoginButton.classList.remove('hidden'); 853 } 854 if (mobileMenuLogoutButton) { 855 mobileMenuLogoutButton.classList.add('hidden'); 856 } 857 // éèæ§å¶å°é¾æ¥ 858 if (consoleLink) { 859 consoleLink.classList.add('hidden'); 860 } 861 } 862 }) 863 .catch(error => { 864 console.error('è·åç¨æ·ä¿¡æ¯å¤±è´¥:', error); 865 // åºéæ¶æ¾ç¤ºç»å½æé® 866 loginButton.classList.remove('hidden'); 867 loginButton.classList.add('sm:block'); 868 registerButton.classList.remove('hidden'); 869 registerButton.classList.add('sm:block'); 870 if (loginButtonMobile) { 871 loginButtonMobile.classList.remove('hidden'); 872 } 873 userDropdown.classList.add('hidden'); 874 // ç§»å¨ç«¯èåï¼æ¾ç¤ºç»å½æé®ï¼éèéåºç»å½æé® 875 if (mobileMenuLoginButton) { 876 mobileMenuLoginButton.classList.remove('hidden'); 877 } 878 if (mobileMenuLogoutButton) { 879 mobileMenuLogoutButton.classList.add('hidden'); 880 } 881 // éèæ§å¶å°é¾æ¥ 882 if (consoleLink) { 883 consoleLink.classList.add('hidden'); 884 } 885 }); 886 } else { 887 // 没ætokenï¼æ¾ç¤ºç»å½æé® 888 loginButton.classList.remove('hidden'); 889 loginButton.classList.add('sm:block'); 890 registerButton.classList.remove('hidden'); 891 registerButton.classList.add('sm:block'); 892 if (loginButtonMobile) { 893 loginButtonMobile.classList.remove('hidden'); 894 } 895 userDropdown.classList.add('hidden'); 896 // ç§»å¨ç«¯èåï¼æ¾ç¤ºç»å½æé®ï¼éèéåºç»å½æé® 897 if (mobileMenuLoginButton) { 898 mobileMenuLoginButton.classList.remove('hidden'); 899 } 900 if (mobileMenuLogoutButton) { 901 mobileMenuLogoutButton.classList.add('hidden'); 902 } 903 // éèæ§å¶å°é¾æ¥ 904 if (consoleLink) { 905 consoleLink.classList.add('hidden'); 906 } 907 } 908 } 909 910 // åå§åæ¶æ£æ¥ç»å½ç¶æ 911 checkLoginStatus(); 912 913 // ç¨æ·å¤´åæ¬åææ 914 userAvatar.addEventListener('mouseenter', function() { 915 userDropdown.querySelector('div').classList.remove('hidden'); 916 }); 917 918 userArea.addEventListener('mouseleave', function() { 919 userDropdown.querySelector('div').classList.add('hidden'); 920 }); 921 922 // éåºç»å½ 923 logoutButton.addEventListener('click', function(e) { 924 e.preventDefault(); 925 localStorage.removeItem('access_token'); 926 window.location.href = '/logout'; 927 }); 928 929 // ç§»å¨ç«¯èåéåºç»å½ 930 if (mobileMenuLogoutButton) { 931 mobileMenuLogoutButton.addEventListener('click', function(e) { 932 e.preventDefault(); 933 localStorage.removeItem('access_token'); 934 window.location.href = '/logout'; 935 }); 936 } 937 938 // å»ºè®¾ä¸æç¤º 939 const aboutLink = document.getElementById('about-link'); 940 const mobileAboutLink = document.getElementById('mobile-about-link'); 941 942 if (aboutLink) { 943 aboutLink.addEventListener('click', function(e) { 944 e.preventDefault(); 945 alert('建设ä¸'); 946 }); 947 } 948 949 if (mobileAboutLink) { 950 mobileAboutLink.addEventListener('click', function(e) { 951 e.preventDefault(); 952 alert('建设ä¸'); 953 }); 954 } 955 956 // ç§»å¨ç«¯èå 957 const mobileMenuButton = document.getElementById('mobile-menu-button'); 958 const mobileMenu = document.getElementById('mobile-menu'); 959 960 if (mobileMenuButton && mobileMenu) { 961 mobileMenuButton.addEventListener('click', function() { 962 mobileMenu.classList.toggle('hidden'); 963 }); 964 965 // ç¹å»é¡µé¢å ¶ä»å°æ¹å ³éèå 966 document.addEventListener('click', function(e) { 967 if (!mobileMenuButton.contains(e.target) && !mobileMenu.contains(e.target)) { 968 mobileMenu.classList.add('hidden'); 969 } 970 }); 971 } 972 973 // åå°é¡¶é¨æé® 974 const backToTopButton = document.getElementById('back-to-top'); 975 if (backToTopButton) { 976 // æ¾ç¤º/éèæé® 977 window.addEventListener('scroll', function() { 978 if (window.scrollY > 300) { 979 backToTopButton.classList.add('show'); 980 } else { 981 backToTopButton.classList.remove('show'); 982 } 983 }); 984 985 // ç¹å»åå°é¡¶é¨ 986 backToTopButton.addEventListener('click', function() { 987 window.scrollTo({ 988 top: 0, 989 behavior: 'smooth' 990 }); 991 }); 992 } 993 })(); 994 </script>
994 995 </body> 996 997</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.