1 |
- import{J as u,K as be,r as H,o,N as n,a as e,O as $,Q as T,V as Z,W as P,X as F,Y as k,b as S,w as X,Z as ee,c as ot,$ as L,a0 as Zt,a1 as U,v as W,d as vt,a2 as pt,a3 as ie,a4 as re,H as gt,a5 as ht,a6 as Oe,a7 as ge,a8 as es,a9 as Re,aa as mt,ab as he,ac as ts,ad as ss,ae as G,af as nt,ag as as,ah as ls,ai as Ie,aj as os,ak as it,al as rt,am as ns,an as is,ao as rs}from"./vendor-CsNcCXs6.js";import{_ as ce}from"./index-gaVcwU-1.js";const cs="/assets/logo-BC4F3nQv.png",us="/assets/avter-DUp3luTf.png",ct="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1735280866862'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='17804'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='32'%20height='32'%3e%3cpath%20d='M474%20152m8%200l60%200q8%200%208%208l0%20704q0%208-8%208l-60%200q-8%200-8-8l0-704q0-8%208-8Z'%20fill='%2381bdfe'%20p-id='17805'%3e%3c/path%3e%3cpath%20d='M168%20474m8%200l672%200q8%200%208%208l0%2060q0%208-8%208l-672%200q-8%200-8-8l0-60q0-8%208-8Z'%20fill='%2381bdfe'%20p-id='17806'%3e%3c/path%3e%3c/svg%3e",ds="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1735280492544'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='4326'%20width='32'%20height='32'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cpath%20d='M442.514286%2073.142857c82.529524%2064.24381%20140.239238%20126.610286%20173.129143%20187.099429%2031.158857%2057.295238%2043.666286%20115.907048%2037.546666%20175.835428l-1.219047%209.996191%206.095238-4.973715a174.055619%20174.055619%200%200%200%2049.249524-69.607619l2.681904-7.411809%207.704381-23.04c82.285714%2055.734857%20123.440762%20150.064762%20123.440762%20283.062857C841.142857%20823.515429%20665.795048%20950.857143%20521.654857%20950.857143c-144.11581%200-308.224-85.333333-334.750476-263.875048-26.550857-178.541714%2083.480381-261.90019%20158.427429-378.197333C395.288381%20231.253333%20427.690667%20152.697905%20442.514286%2073.142857z%20m33.718857%20154.575238c-17.554286%2041.447619-39.424%2082.407619-65.536%20122.904381l-8.313905%2012.653714c-8.411429%2012.507429-17.310476%2024.941714-28.818286%2040.374858l-40.96%2054.467047c-63.634286%2086.869333-80.944762%20136.021333-68.851809%20217.526857%2017.92%20120.441905%20128.341333%20197.778286%20257.901714%20197.778286%20120.905143%200%20241.785905-110.933333%20241.785905-249.344%200-61.976381-9.825524-111.323429-29.110857-149.699048-8.240762%209.411048-17.237333%2018.285714-26.965334%2026.59962l-159.085714%20130.023619%2026.697143-195.364572c6.41219-46.811429-2.462476-92.208762-27.648-138.483809-13.214476-24.30781-31.98781-49.737143-56.368762-76.166096l-8.338286-8.850285-6.387809%2015.579428z'%20p-id='4327'%20fill='%23ff4d4f'%3e%3c/path%3e%3c/svg%3e",vs="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1735287774232'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='1465'%20width='16'%20height='16'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cpath%20d='M563.8%20512l262.5-312.9c4.4-5.2%200.7-13.1-6.1-13.1h-79.8c-4.7%200-9.2%202.1-12.3%205.7L511.6%20449.8%20295.1%20191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8%200-10.5%207.9-6.1%2013.1L459.4%20512%20196.9%20824.9c-4.4%205.2-0.7%2013.1%206.1%2013.1h79.8c4.7%200%209.2-2.1%2012.3-5.7l216.5-258.1%20216.5%20258.1c3%203.6%207.5%205.7%2012.3%205.7h79.8c6.8%200%2010.5-7.9%206.1-13.1L563.8%20512z'%20p-id='1466'%3e%3c/path%3e%3c/svg%3e",ps="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1735280690063'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='8850'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='32'%20height='32'%3e%3cpath%20d='M1022.955204%20556.24776c0%20100.19191-81.516572%20181.698249-181.718715%20181.698249l-185.637977%200c-11.2973%200-20.466124-9.168824-20.466124-20.466124%200-11.307533%209.168824-20.466124%2020.466124-20.466124l185.637977%200c77.628008%200%20140.786467-63.148226%20140.786467-140.766001%200-77.423347-62.841234-140.448776-140.203182-140.766001-0.419556%200.030699-0.828878%200.051165-1.248434%200.061398-5.935176%200.153496-11.665691-2.302439-15.666818-6.702656-4.001127-4.41045-5.884011-10.345626-5.157463-16.250102%201.330298-10.806113%201.944282-19.760043%201.944282-28.192086%200-60.763922-23.658839-117.874641-66.617234-160.833035-42.968627-42.958394-100.089579-66.617234-160.843268-66.617234-47.368844%200-92.742241%2014.449084-131.208321%2041.781592-37.616736%2026.738991-65.952084%2063.700811-81.925894%20106.884332-2.425236%206.54916-8.012488%2011.399631-14.827707%2012.893658-6.815219%201.483794-13.927197-0.603751-18.859533-5.536087-19.289322-19.340487-44.943608-29.982872-72.245418-29.982872-56.322773%200-102.146425%2045.813419-102.146425%20102.125959%200%200.317225%200.040932%200.982374%200.092098%201.627057%200.061398%200.920976%200.122797%201.831718%200.153496%202.762927%200.337691%209.465582-5.863545%2017.928325-15.001669%2020.455891-32.356942%208.943696-61.541635%2028.550243-82.181721%2055.217602-21.305235%2027.516704-32.571836%2060.508096-32.571836%2095.41307%200%2086.244246%2070.188572%20156.422585%20156.443052%20156.422585l169.981393%200c11.2973%200%2020.466124%209.15859%2020.466124%2020.466124%200%2011.2973-9.168824%2020.466124-20.466124%2020.466124l-169.981393%200c-108.828614%200-197.3753-88.536452-197.3753-197.354833%200-44.053332%2014.223956-85.712127%2041.126676-120.473839%2022.809495-29.450752%2053.897537-52.086285%2088.710414-64.816215%205.065366-74.322729%2067.149353-133.2447%20142.751215-133.2447%2028.386514%200%2055.504128%208.217149%2078.651314%2023.52581%2019.657712-39.868009%2048.842405-74.169233%2085.497233-100.212376%2045.434795-32.295544%2099.004875-49.354058%20154.918325-49.354058%2071.692832%200%20139.087778%2027.915793%20189.782368%2078.600149%2050.694589%2050.694589%2078.610382%20118.089535%2078.610382%20189.782368%200%203.704368-0.102331%207.470135-0.296759%2011.368932C952.633602%20386.245901%201022.955204%20463.188294%201022.955204%20556.24776z'%20p-id='8851'%3e%3c/path%3e%3cpath%20d='M629.258611%20589.106122c-3.990894%203.990894-9.230222%205.996574-14.46955%205.996574s-10.478655-2.00568-14.46955-5.996574l-67.087954-67.077721%200%20358.689289c0%2011.307533-9.15859%2020.466124-20.466124%2020.466124-11.307533%200-20.466124-9.15859-20.466124-20.466124l0-358.689289-67.087954%2067.077721c-7.992021%207.992021-20.947078%207.992021-28.939099%200s-7.992021-20.957311%200-28.949332l102.023628-102.013395c7.992021-7.992021%2020.947078-7.992021%2028.939099%200l102.023628%20102.013395C637.250632%20568.148811%20637.250632%20581.114101%20629.258611%20589.106122z'%20p-id='8852'%3e%3c/path%3e%3c/svg%3e",gs="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1735280632344'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='7700'%20width='32'%20height='32'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cpath%20d='M924.672%20126.976q36.864%2036.864%2054.784%2082.432t17.92%2093.696-17.92%2093.696-54.784%2082.432l-392.192%20389.12q-36.864%2036.864-90.624%2061.44t-113.664%2028.672-122.368-16.384-115.712-73.728q-52.224-52.224-72.704-113.152t-16.384-121.344%2028.16-113.664%2060.928-90.112l348.16-345.088q9.216-9.216%2027.136-4.608t27.136%2013.824q8.192%209.216%2013.312%2027.136t-4.096%2027.136l-347.136%20344.064q-27.648%2027.648-46.08%2064.512t-21.504%2078.848%2012.288%2084.992%2055.296%2082.944q35.84%2035.84%2079.36%2050.688t86.528%2012.288%2081.92-18.944%2066.56-44.032l391.168-388.096q27.648-27.648%2039.424-57.344t11.264-58.88-13.824-56.832-36.864-51.2q-44.032-43.008-98.816-40.448t-110.08%2057.856l-353.28%20351.232q-23.552%2023.552-23.04%2052.224t18.944%2047.104q22.528%2022.528%2051.712%2018.432t47.616-22.528l320.512-318.464q9.216-9.216%2027.136-4.608t27.136%2013.824%2014.336%2027.136-4.096%2027.136l-321.536%20318.464q-36.864%2036.864-70.656%2051.2t-63.488%2012.8-55.296-15.872-47.104-34.816q-17.408-16.384-31.232-41.984t-15.872-56.32%2010.752-65.536%2049.664-70.656q18.432-18.432%2032.768-33.792%2012.288-13.312%2023.04-23.552t11.776-11.264l285.696-284.672q36.864-36.864%2080.384-57.856t88.576-24.064%2088.576%2012.288%2080.384%2052.224z'%20p-id='7701'%20fill='%231e1e1e'%3e%3c/path%3e%3c/svg%3e",hs="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1735280808939'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='15804'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='32'%20height='32'%3e%3cpath%20d='M873.8816%20150.1184C973.9264%20250.2656%201024%20370.8928%201024%20512c0%20141.2096-50.0736%20261.8368-150.1184%20361.8816C773.7344%20973.9264%20653.1072%201024%20512%201024c-141.1072%200-261.7344-50.0736-361.8816-150.1184C50.0736%20773.8368%200%20653.2096%200%20512c0-141.1072%2050.0736-261.7344%20150.1184-361.8816C250.2656%2050.0736%20370.8928%200%20512%200%20653.1072%200%20773.7344%2050.0736%20873.8816%20150.1184zM819.712%20526.7456%20507.0848%20211.6608%20192%20526.7456l56.6272%2054.1696%20219.0336-219.0336%200%20477.4912%2078.7456%200L546.4064%20361.8816l219.0336%20219.0336L819.712%20526.7456z'%20p-id='15805'%20fill='%234096ff'%3e%3c/path%3e%3c/svg%3e",ut="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1735295375625'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='3239'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='16'%20height='16'%3e%3cpath%20d='M659.748571%20245.272381l-51.687619-51.687619-318.439619%20318.585905%20318.415238%20318.268952%2051.712-51.736381-266.703238-266.556952z'%20p-id='3240'%3e%3c/path%3e%3c/svg%3e",dt="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1735295357873'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='2254'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='16'%20height='16'%3e%3cpath%20d='M605.086476%20512.146286L338.358857%20245.272381l51.760762-51.687619%20318.415238%20318.585905L390.095238%20830.415238l-51.687619-51.736381z'%20p-id='2255'%3e%3c/path%3e%3c/svg%3e",ms="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1735287324782'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='1522'%20width='32'%20height='32'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cpath%20d='M616.746667%2085.333333L896%20347.904V853.333333a85.333333%2085.333333%200%200%201-85.333333%2085.333334H213.333333a85.333333%2085.333333%200%200%201-85.333333-85.333334V170.666667a85.333333%2085.333333%200%200%201%2085.333333-85.333334h403.413334z%20m244.352%20295.381334L581.802667%20118.186667v177.237333a85.333333%2085.333333%200%200%200%2085.333333%2085.333333h193.962667z%20m-107.264%2076.373333h-49.152l-79.488%20227.157333-109.354667-227.114666h-13.226667l-110.506666%20226.688-77.824-226.688H265.130667l113.749333%20328.192h13.226667l117.12-239.36%20114.858666%20239.36h13.781334l115.968-328.192z'%20fill='%235197e8'%20p-id='1523'%3e%3c/path%3e%3c/svg%3e",fs="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1735378230313'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='3218'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='16'%20height='16'%3e%3cpath%20d='M784%20371.2c-16-25.6-35.2-44.8-44.8-54.4-9.6-9.6-28.8-9.6-38.4%203.2-9.6%209.6-9.6%2028.8%203.2%2038.4%203.2%203.2%206.4%206.4%209.6%209.6%209.6%209.6%2019.2%2022.4%2025.6%2035.2%2057.6%2086.4%2057.6%20179.2-38.4%20278.4-9.6%209.6-9.6%2028.8%200%2038.4%209.6%209.6%2028.8%209.6%2038.4%200C851.2%20598.4%20851.2%20476.8%20784%20371.2z'%20p-id='3219'%3e%3c/path%3e%3cpath%20d='M896%20246.4c-16-25.6-35.2-48-54.4-70.4-9.6-12.8-19.2-19.2-25.6-25.6-9.6-9.6-28.8-9.6-38.4%203.2-9.6%209.6-9.6%2028.8%203.2%2038.4%203.2%203.2%2012.8%209.6%2022.4%2022.4%2016%2019.2%2032%2038.4%2048%2064%20105.6%20160%20105.6%20336-70.4%20518.4-9.6%209.6-9.6%2028.8%200%2038.4%209.6%209.6%2028.8%209.6%2038.4%200C1014.4%20630.4%201014.4%20425.6%20896%20246.4z'%20p-id='3220'%3e%3c/path%3e%3cpath%20d='M483.2%2086.4l-217.6%20185.6-108.8%200c-57.6%200-108.8%2048-108.8%20108.8l0%20272c0%2060.8%2048%20108.8%20108.8%20108.8l96%200%20230.4%20182.4c54.4%2041.6%20105.6%2016%20105.6-51.2l0-755.2C588.8%2067.2%20534.4%2041.6%20483.2%2086.4zM534.4%20889.6c0%2022.4-3.2%2022.4-19.2%209.6l-236.8-185.6c-3.2-3.2-9.6-6.4-16-6.4l-105.6%200c-28.8%200-54.4-25.6-54.4-54.4l0-272c0-28.8%2025.6-54.4%2054.4-54.4l118.4%200c6.4%200%2012.8-3.2%2016-6.4l224-192c16-12.8%2016-12.8%2016%206.4L531.2%20889.6z'%20p-id='3221'%3e%3c/path%3e%3c/svg%3e",ws="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAUVJREFUOE+l0z8snlEUBvCfxSZhwSpYxGCUGJAYLaSxaDcWg4EYJBKaSAxNDR0sLFIWEV2MTTA0MRrEUq0VSyUWMbknuW/y+vJ9n+JON+fPc57znHMa1H6dmMvudfypFtpQB+AALdn/D+MvAaxgGo+4Qx+Gc9IRztCMRmwme8QrMzjHPm7Rij1cZICe9J8o+T6k2N5KgCt8SckbJapN+X9fss1gAR21GAS1IYxUiPgz2Y8z9WcMQu2oPIZuXGILYd/NlSfzFKbQhd/4EUxCg6g4mPT4nCuE8teI0S1mgLXMph0xkVHMJ5FPygBfcYjo+wazmUlgROVvaEuJoUe0uFwAVGthFQM4zQz68QtL1VooBC7GWIj4MfX9KTu/p8SdWiIWADHG7WJBsrG8iUVc3THG4vzFw1sW6d2rXHkrrz6mSoD/Oucnp3ZSV0/fYroAAAAASUVORK5CYII=",qe="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1736386332100'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='3350'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='16'%20height='16'%3e%3cpath%20d='M923.04%20689.226667L515.786667%20281.973333a5.333333%205.333333%200%200%200-7.573334%200l-407.253333%20407.253334a5.333333%205.333333%200%200%200%200%207.573333l45.226667%2045.226667a5.333333%205.333333%200%200%200%207.573333%200l354.453333-354.453334a5.333333%205.333333%200%200%201%207.573334%200l354.453333%20354.453334a5.333333%205.333333%200%200%200%207.573333%200l45.226667-45.226667a5.333333%205.333333%200%200%200%200-7.573333z'%20p-id='3351'%3e%3c/path%3e%3c/svg%3e",Fe="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1736386047967'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='2366'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='16'%20height='16'%3e%3cpath%20d='M545.322667%20615.808L248.021333%20329.258667a33.706667%2033.706667%200%200%200-46.421333%200c-12.8%2012.373333-12.8%2032.384%200%2044.714666L544%20704l342.4-330.026667c12.8-12.373333%2012.8-32.341333%200-44.714666a33.706667%2033.706667%200%200%200-46.421333%200l-294.656%20286.549333z'%20fill='%23000000'%20p-id='2367'%3e%3c/path%3e%3c/svg%3e",ys={class:"model-config"},_s=["src"],ks={class:"config-panel"},bs={class:"model-list"},Cs={class:"model-header"},Ss={class:"model-title"},xs={class:"model-form"},Ds={class:"form-item"},$s={class:"form-item"},As={key:0,class:"form-item"},Is={class:"form-item"},Ts={class:"form-item"},Ms={class:"action-buttons"},Es={__name:"index",setup(v){const d=[{label:"主流模型",options:[{label:"ChatGPT",value:"chatgpt",endpoint:"https://api.openai.com/v1"},{label:"Claude",value:"claude",endpoint:"https://api.anthropic.com"},{label:"GPT-4",value:"gpt4",endpoint:"https://api.openai.com/v1"}]},{label:"开源模型",options:[{label:"DeepSeek",value:"deepseek",endpoint:"https://api.deepseek.com/v1"},{label:"Ollama",value:"ollama",endpoint:"http://localhost:11434"},{label:"ChatGLM",value:"chatglm",endpoint:"https://api.zhipuai.cn/v1"}]},{label:"国内模型",options:[{label:"阿里通义千问",value:"qianwen",endpoint:"https://dashscope.aliyuncs.com/api/v1"},{label:"百度文心一言",value:"wenxin",endpoint:"https://aip.baidubce.com/rpc/2.0/ai_custom/v1"},{label:"讯飞星火",value:"spark",endpoint:"https://spark-api.xf-yun.com/v1"}]},{label:"其他",options:[{label:"自定义模型",value:"custom",endpoint:""}]}],h=u(!1),_=u(!1),p=u(!1),y=u([{type:"",key:"",endpoint:"",name:""}]),l=u([]),m=async()=>{p.value=!0;try{const c=(await U.get("http://58.246.234.210:8062/api/models")).data;if(console.log(c),c.code===2e3){const b=c.data.models.map(I=>({label:I.name,value:I.type,description:I.description||""}));l.value=[{label:"API模型",options:b},...d]}}catch(i){console.error("获取模型列表失败:",i),W.error("获取模型列表失败")}finally{p.value=!1}},R=i=>({chatgpt:"请输入 OpenAI API Key",gpt4:"请输入 OpenAI API Key",claude:"请输入 Anthropic API Key",deepseek:"请输入 DeepSeek API Key",qianwen:"请输入阿里云 API Key",wenxin:"请输入百度 API Key",spark:"请输入讯飞 API Key",chatglm:"请输入智谱 API Key",ollama:"可选:请输入访问密钥",custom:"请输入 API Key"})[i]||"请输入 API Key",O=(i,c)=>{const b=y.value[c],I=l.value.flatMap(J=>J.options).find(J=>J.value===i);I&&(b.endpoint=I.endpoint,b.name=I.label)},D=()=>{h.value=!h.value},x=()=>{y.value.push({type:"",key:"",endpoint:"",name:""})},w=i=>{if(y.value.length===1){W.warning("至少保留一个模型配置");return}y.value.splice(i,1)},E=i=>!(!i.type||!i.key||i.type==="ollama"&&!i.endpoint||i.type==="custom"&&(!i.name||!i.endpoint)),Y=async()=>{if(y.value.some(c=>!E(c))){W.error("请填写完整的模型信息");return}_.value=!0;try{localStorage.setItem("modelConfig",JSON.stringify(y.value)),W.success("配置保存成功")}catch{W.error("配置保存失败")}finally{_.value=!1}},f=()=>{const i=localStorage.getItem("modelConfig");i&&(y.value=JSON.parse(i))};return be(async()=>{f(),await m()}),(i,c)=>{const b=H("a-button"),I=H("a-select-option"),J=H("a-select-opt-group"),Ce=H("a-select"),Se=H("a-input-password"),ue=H("a-input");return o(),n("div",ys,[e("div",{class:"config-header",onClick:D},[c[0]||(c[0]=e("img",{src:ws,alt:"setting",class:"config-icon"},null,-1)),c[1]||(c[1]=e("span",null,"模型配置",-1)),e("img",{src:h.value?$(qe):$(Fe),alt:"toggle",class:"toggle-icon"},null,8,_s)]),T(e("div",ks,[e("div",bs,[(o(!0),n(P,null,F(y.value,(A,de)=>(o(),n("div",{key:de,class:"model-item"},[e("div",Cs,[e("span",Ss,"模型 "+k(de+1),1),S(b,{type:"link",danger:"",size:"small",onClick:M=>w(de)},{default:X(()=>c[2]||(c[2]=[ee("删除")])),_:2},1032,["onClick"])]),e("div",xs,[e("div",Ds,[c[3]||(c[3]=e("label",null,"选择模型",-1)),S(Ce,{style:{width:"200px"},value:A.type,"onUpdate:value":M=>A.type=M,placeholder:"请选择模型",onChange:M=>O(M,de)},{default:X(()=>[(o(!0),n(P,null,F(l.value,M=>(o(),ot(J,{key:M.label,label:M.label},{default:X(()=>[(o(!0),n(P,null,F(M.options,me=>(o(),ot(I,{key:me.value,value:me.value},{default:X(()=>[ee(k(me.label),1)]),_:2},1032,["value"]))),128))]),_:2},1032,["label"]))),128))]),_:2},1032,["value","onUpdate:value","onChange"])]),A.type?(o(),n(P,{key:0},[e("div",$s,[c[4]||(c[4]=e("label",null,"API Key",-1)),S(Se,{value:A.key,"onUpdate:value":M=>A.key=M,placeholder:R(A.type)},null,8,["value","onUpdate:value","placeholder"])]),A.type==="ollama"?(o(),n("div",As,[c[5]||(c[5]=e("label",null,"服务器地址",-1)),S(ue,{value:A.endpoint,"onUpdate:value":M=>A.endpoint=M,placeholder:"例如: http://localhost:11434"},null,8,["value","onUpdate:value"])])):L("",!0),A.type==="custom"?(o(),n(P,{key:1},[e("div",Is,[c[6]||(c[6]=e("label",null,"模型名称",-1)),S(ue,{value:A.name,"onUpdate:value":M=>A.name=M,placeholder:"请输入自定义模型名称"},null,8,["value","onUpdate:value"])]),e("div",Ts,[c[7]||(c[7]=e("label",null,"服务器地址",-1)),S(ue,{value:A.endpoint,"onUpdate:value":M=>A.endpoint=M,placeholder:"请输入API地址"},null,8,["value","onUpdate:value"])])],64)):L("",!0)],64)):L("",!0)])]))),128))]),S(b,{type:"dashed",block:"",class:"add-model-btn",onClick:x},{default:X(()=>[S($(Zt)),c[8]||(c[8]=ee(" 添加模型 "))]),_:1}),e("div",Ms,[S(b,{type:"primary",loading:_.value,onClick:Y},{default:X(()=>c[9]||(c[9]=[ee(" 保存配置 ")])),_:1},8,["loading"])])],512),[[Z,h.value]])])}}},zs=ce(Es,[["__scopeId","data-v-e8e9ff38"]]),Ls=vt({name:"SearchResults",components:{FileSearchOutlined:pt},props:{searchResults:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1},total:{type:Number,default:0},message:{type:String,default:""},enableWebSearch:{type:Boolean,default:!0}},emits:["update:total","update:enableWebSearch"],setup(v,{emit:d}){const h=u([]),_=u(!1),p=u(""),y=u(!1),l=u(v.total),m=u(v.enableWebSearch);ie(()=>v.total,w=>{l.value=w}),ie(()=>v.searchResults,w=>{h.value=w,_.value=h.value.length<v.total},{immediate:!0}),ie(()=>v.message,w=>{w&&v.enableWebSearch&&(p.value=w,O())}),ie(()=>v.enableWebSearch,w=>{m.value=w,w||D()});const R=w=>gt(w).format("YYYY-MM-DD"),O=async()=>{if(!(!p.value.trim()||y.value||!v.enableWebSearch)){y.value=!0;try{const w=await U.post("http://58.246.234.210:8062/api/web-search-results/",{query:p.value,num_results:20,page:1,page_size:20,engine:"bing"});console.log("API Response:",w.data),w.data&&w.data.code===200&&(h.value=w.data.data.result||[],console.log("Total Results:",w.data.data.total),l.value=w.data.data.total||0,d("update:total",w.data.data.total||0))}catch(w){console.error("Web search failed:",w),h.value=[],l.value=0,d("update:total",0)}finally{y.value=!1}}},D=()=>{p.value="",h.value=[],l.value=0,d("update:total",0)},x=()=>{m.value=!m.value,d("update:enableWebSearch",m.value)};return{displayResults:h,loading:v.loading,total:l,hasMore:_,formatDate:R,searchQuery:p,isSearching:y,handleSearch:O,clearSearch:D,isSearchEnabled:m,toggleSearch:x}}}),Ps={class:"search-results"},Us={class:"search-box"},Vs={class:"input-wrapper"},Gs=["disabled"],Ws={class:"results-header"},Bs={class:"result-stats"},Rs={key:0,class:"results-list"},Os={class:"result-title"},qs=["href"],Fs={class:"result-url"},Ns={class:"result-snippet"},Ks={class:"result-meta"},Ys={class:"result-date"},Qs={class:"result-source"},Js={key:0,class:"loading-more",ref:"loadingTrigger"},Hs={key:0,class:"loading-spinner"},Xs={key:1},js={key:1,class:"no-results"};function Zs(v,d,h,_,p,y){const l=H("FileSearchOutlined");return o(),n("div",Ps,[e("div",Us,[e("div",Vs,[T(e("input",{"onUpdate:modelValue":d[0]||(d[0]=m=>v.searchQuery=m),type:"text",placeholder:"Enter your search query"},null,512),[[re,v.searchQuery]]),v.searchQuery?(o(),n("span",{key:0,class:"clear-icon",onClick:d[1]||(d[1]=(...m)=>v.clearSearch&&v.clearSearch(...m))},"×")):L("",!0)]),e("button",{onClick:d[2]||(d[2]=(...m)=>v.handleSearch&&v.handleSearch(...m)),disabled:v.isSearching}," 搜索一下 ",8,Gs)]),e("div",Ws,[d[4]||(d[4]=e("h2",null,"Related Search Results",-1)),e("div",Bs," Found "+k(v.total)+" results ",1)]),e("div",{class:"results-container",ref:"resultsContainer",onScroll:d[3]||(d[3]=(...m)=>v.handleScroll&&v.handleScroll(...m))},[v.displayResults.length>0?(o(),n("div",Rs,[(o(!0),n(P,null,F(v.displayResults,(m,R)=>(o(),n("div",{key:R,class:"result-item"},[e("h3",Os,[e("a",{href:m.link,target:"_blank",rel:"noopener noreferrer"},k(m.title),9,qs)]),e("p",Fs,k(m.link),1),e("p",Ns,k(m.snippet),1),e("div",Ks,[e("span",Ys,k(v.formatDate(m.date)),1),e("span",Qs,k(m.source),1)])]))),128)),v.hasMore?(o(),n("div",Js,[v.loading?(o(),n("div",Hs)):(o(),n("span",Xs,"Loading more results..."))],512)):L("",!0)])):(o(),n("div",js,[S(l,{class:"no-results-icon"}),d[5]||(d[5]=e("p",null,"No related results found",-1))]))],544)])}const ea=ce(Ls,[["render",Zs],["__scopeId","data-v-b3bbc36b"]]),ta="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAVZJREFUOE+l079Ll1EUBvDP/b73G9HeIISDUxiOtQTiEGFOCipE0BiELQ0KgoOgk/Rjk5zdGnL2L2hyMRIHocEpaGgsvfrq1feFF339Wni3e885z3mec58T3PCEXvWRJSwkrsy7MhB5h6cYqgEiH/EnMV83bgUoWA086vDymO9NBpEVPEsMZZBLAJHPGEhMYD9SZoBb3D9gNxdFFjGXuBMKpgJTjVnk4if4XSWfART8CNxO9FXv2yUrIXcoma4BjviCo/peM6iKPmTWibeRkVMyy2cAvaZ8IX4vsl/l343s/C9A1l837I9stUnYOP371Cahy0zJTGKw4EXgdejyqjwfWn0G07m+X80hVnlrGE1sFnzqsHvpGwvWAo8Lxv+yV1Puso6vh6x2eYPZQx72MtJwh+kWI2UPTHZ4fsC366w8igcNK2dp7xNj+NnqxOZy3WiZ/nXLTwAE1GVpm7M6FwAAAABJRU5ErkJggg==",sa={class:"voice-config"},aa=["src"],la={class:"config-panel"},oa={class:"config-item"},na={class:"voice-select-container"},ia=["value"],ra={class:"config-item"},ca={class:"slider-container"},ua={class:"slider-value"},da={class:"config-item",style:{display:"flex","justify-content":"space-around"}},va=["disabled"],pa=["disabled"],ga={__name:"index",setup(v){const d=ht(),h=u(!1),_=u([]),p=Oe({role:"",speed:1,language:"zh"}),y=u(!1),l=u(!1),m=u(null),R=async()=>{try{const i=(await U.get("http://58.246.234.210:8062/chatbot/current_voice_config")).data.data;if(console.log("Current config:",i),i&&i.voice_name&&_.value.length>0){const c=_.value.find(b=>b.name===i.voice_name);console.log("Matched voice:",c),c&&(p.role=c.id,p.speed=i.speed||1,p.language=c.language,w())}}catch(f){console.error("获取当前语音配置失败:",f)}},O=async()=>{try{const i=(await U.get("http://58.246.234.210:8062/chatbot/list_voices")).data.data.voices;_.value=Object.values(i).flat(),console.log("Voice list:",_.value),await R()}catch(f){console.error("获取语音列表失败:",f)}},D=f=>({"zh-cn":"中文","en-us":"英文","ja-jp":"日语","ko-kr":"韩语"})[f]||f;be(()=>{O()});const x=()=>{h.value=!h.value},w=()=>{d.commit("updateVoiceConfig",{...p})},E=async()=>{if(p.role){y.value=!0;try{const f=new FormData;f.append("voice_id",p.role),await U.post("http://58.246.234.210:8062/switch_voice_config",f,{headers:{"Content-Type":"multipart/form-data"}})}catch(f){console.error("切换语音失败:",f),alert("语音切换失败")}finally{y.value=!1}}},Y=async()=>{if(!(!p.role||l.value))try{l.value=!0;const i=(await U.get(`http://58.246.234.210:8062/get_voice_preview?voice_id=${p.role}`)).data;if(i.code!==200)throw new Error(i.msg||"获取音频失败");m.value&&(m.value.pause(),m.value=null);let c;if(i.audio&&i.audio.startsWith("data:audio"))c=new Audio(i.audio);else if(i.audio_url){const I=i.audio_url.startsWith("http")?i.audio_url:`http://58.246.234.210:8062${i.audio_url}`;c=new Audio(I)}else throw new Error("无效的音频数据");m.value=c,c.onended=()=>{l.value=!1,m.value=null},c.onerror=b=>{console.error("音频播放失败:",b),l.value=!1,m.value=null,alert("试听失败")},c.oncanplaythrough=async()=>{try{await c.play()}catch(b){console.error("播放音频失败:",b),l.value=!1,m.value=null,alert("播放失败")}}}catch(f){console.error("试听失败:",f),l.value=!1,alert(f.message||"试听失败")}};return ge(()=>{m.value&&(m.value.pause(),m.value=null)}),(f,i)=>(o(),n("div",sa,[e("div",{class:"config-header",onClick:x},[i[2]||(i[2]=e("img",{src:ta,alt:"voice",class:"config-icon"},null,-1)),i[3]||(i[3]=e("span",null,"语音配置",-1)),e("img",{src:h.value?$(qe):$(Fe),alt:"toggle",class:"toggle-icon"},null,8,aa)]),T(e("div",la,[e("div",oa,[i[4]||(i[4]=e("label",null,"语音角色",-1)),e("div",na,[T(e("select",{"onUpdate:modelValue":i[0]||(i[0]=c=>p.role=c),onChange:w},[(o(!0),n(P,null,F(_.value,c=>(o(),n("option",{key:c.id,value:c.id},k(c.name+"_"+c.gender)+" ("+k(D(c.language))+") ",9,ia))),128))],544),[[es,p.role]])])]),e("div",ra,[i[5]||(i[5]=e("label",null,"语速",-1)),e("div",ca,[T(e("input",{type:"range","onUpdate:modelValue":i[1]||(i[1]=c=>p.speed=c),min:"0.5",max:"2",step:"0.1",onChange:w},null,544),[[re,p.speed]]),e("span",ua,k(p.speed)+"x",1)])]),e("div",da,[e("button",{class:"preview-button",onClick:Y,disabled:l.value},k(l.value?"播放中...":"试听"),9,va),e("button",{class:"switch-button",onClick:E,disabled:y.value},k(y.value?"切换中...":"切换语音"),9,pa)])],512),[[Z,h.value]])]))}},ha=ce(ga,[["__scopeId","data-v-8bc2e758"]]),ma="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='64%2064%20896%20896'%20width='16'%20height='16'%20fill='currentColor'%3e%3cpath%20d='M832%2064H192c-17.7%200-32%2014.3-32%2032v832c0%2017.7%2014.3%2032%2032%2032h640c17.7%200%2032-14.3%2032-32V96c0-17.7-14.3-32-32-32zm-260%2072h96v209.9L621.5%20312%20572%20347.4V136zm220%20752H232V136h280v296.9c0%203.3%201%206.6%203%209.3a15.9%2015.9%200%200%200%2022.3%203.7l83.8-59.9%2081.4%2059.4c2.7%202%206%203.1%209.3%203.1%208.8%200%2016-7.2%2016-16V136h64v752z'/%3e%3c/svg%3e",fa={class:"knowledge-config"},wa=["src"],ya={class:"config-panel"},_a={class:"knowledge-list"},ka={class:"group-header"},ba={class:"checkbox-list"},Ca={class:"item-desc"},Sa={class:"action-buttons"},xa={__name:"index",setup(v){const d=u([]),h=u(!1),_=u(!1),p=Oe({product:[],tech:[],industry:[]}),y=()=>{h.value=!h.value},l=async()=>{_.value=!0;try{localStorage.setItem("knowledgeConfig",JSON.stringify(p)),W.success("知识库配置保存成功")}catch{W.error("知识库配置保存失败")}finally{_.value=!1}},m=()=>{const D=localStorage.getItem("knowledgeConfig");if(D){const x=JSON.parse(D);Object.keys(x).forEach(w=>{p[w]=x[w]})}},R=async D=>{try{const x=new URLSearchParams;return x.append("page",1),x.append("kb_id",D),x.append("pageSize",9999),(await U.post("http://58.246.234.210:8062/docType/selectTypeList",x,{headers:{"Content-Type":"application/x-www-form-urlencoded",Authorization:`JWT ${localStorage.getItem("token")}`}})).data.data||[]}catch(x){return console.error("获取知识库子项失败:",x),[]}},O=async()=>{try{const x=await U.post("http://58.246.234.210:8062/kbm/selectBucketInfo",{user_id:2},{headers:{Authorization:`JWT ${localStorage.getItem("token")}`}}),w=await Promise.all(x.data.data.map(async E=>{const Y=await R(E.id);return console.log(Y),{label:E.name,key:E.id,items:Y.map(f=>({label:f.name,value:f.id}))}}));d.value=w,d.value.forEach(E=>{p[E.key]||(p[E.key]=[])})}catch(D){W.error("获取知识库信息失败"),console.error("获取知识库信息失败:",D)}};return be(async()=>{await O(),m()}),(D,x)=>{const w=H("a-checkbox"),E=H("a-checkbox-group"),Y=H("a-button");return o(),n("div",fa,[e("div",{class:"config-header",onClick:y},[x[0]||(x[0]=e("img",{src:ma,alt:"knowledge",class:"config-icon"},null,-1)),x[1]||(x[1]=e("span",null,"知识库配置",-1)),e("img",{src:h.value?$(qe):$(Fe),alt:"toggle",class:"toggle-icon"},null,8,wa)]),T(e("div",ya,[e("div",_a,[(o(!0),n(P,null,F(d.value,f=>(o(),n("div",{class:"knowledge-group",key:f.label},[e("div",ka,k(f.label),1),e("div",ba,[S(E,{value:p[f.key],"onUpdate:value":i=>p[f.key]=i},{default:X(()=>[(o(!0),n(P,null,F(f.items,i=>(o(),n("div",{key:i.value,class:"checkbox-item"},[S(w,{value:i.value},{default:X(()=>[ee(k(i.label)+" ",1),e("span",Ca,k(i.description),1)]),_:2},1032,["value"])]))),128))]),_:2},1032,["value","onUpdate:value"])])]))),128))]),e("div",Sa,[S(Y,{type:"primary",loading:_.value,onClick:l},{default:X(()=>x[2]||(x[2]=[ee(" 保存配置 ")])),_:1},8,["loading"])])],512),[[Z,h.value]])])}}},Da=ce(xa,[["__scopeId","data-v-6b9363c0"]]),$a=vt({name:"KnowledgeResults",props:{searchResults:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1},total:{type:Number,default:0},message:{type:String,default:""},searchType:{type:String,default:"remote",validator:v=>["remote","local"].includes(v)}},emits:["update:enableSearch","search"],setup(v,{emit:d}){const h=u(""),_=u(!1),p=u(!1),y=u([]),l=u(1),m=u(20),R=Re(()=>v.searchType==="local"?"搜索本地知识库...":"搜索远程知识库...");ie(()=>v.searchResults,f=>{y.value=f}),ie(()=>v.message,f=>{f&&(h.value=f,O())});const O=async()=>{if(!(!h.value.trim()||_.value)){_.value=!0,l.value=1;try{d("search",{query:h.value,page:l.value,pageSize:m.value,type:v.searchType})}finally{_.value=!1}}},D=async()=>{if(!(_.value||!p.value)){_.value=!0,l.value+=1;try{d("search",{query:h.value,page:l.value,pageSize:m.value,type:v.searchType})}finally{_.value=!1}}};return{searchQuery:h,isSearching:_,displayResults:y,hasMore:p,handleSearch:O,clearSearch:()=>{h.value="",y.value=[],l.value=1,d("update:enableSearch",!1)},formatDate:f=>gt(f).format("YYYY-MM-DD HH:mm"),handleScroll:f=>{const{scrollTop:i,scrollHeight:c,clientHeight:b}=f.target;c-i-b<50&&!_.value&&p.value&&D()},placeholder:R,formatContent:f=>f?f.replace(new RegExp(h.value,"gi"),i=>`<span style="color: #1677ff; font-weight: 500;">${i}</span>`):""}}}),Aa={class:"knowledge-results"},Ia={class:"search-box"},Ta={class:"input-wrapper"},Ma=["placeholder"],Ea={class:"result-title"},za=["innerHTML"],La={class:"result-meta"},Pa={class:"result-source"},Ua={class:"result-date"},Va={key:0,class:"load-more"},Ga={key:1,class:"loading-state"},Wa={key:2,class:"empty-state"};function Ba(v,d,h,_,p,y){return o(),n("div",Aa,[e("div",Ia,[e("div",Ta,[T(e("input",{"onUpdate:modelValue":d[0]||(d[0]=l=>v.searchQuery=l),type:"text",placeholder:v.placeholder,onKeyup:d[1]||(d[1]=mt((...l)=>v.handleSearch&&v.handleSearch(...l),["enter"])),class:"search-input"},null,40,Ma),[[re,v.searchQuery]]),v.searchQuery?(o(),n("span",{key:0,class:"clear-icon",onClick:d[2]||(d[2]=(...l)=>v.clearSearch&&v.clearSearch(...l))},"×")):L("",!0)])]),!v.loading&&v.searchResults.length>0?(o(),n("div",{key:0,class:"results-container",ref:"resultsContainer",onScroll:d[3]||(d[3]=(...l)=>v.handleScroll&&v.handleScroll(...l))},[(o(!0),n(P,null,F(v.displayResults,l=>(o(),n("div",{key:l.id,class:"result-item"},[e("div",Ea,k(l.title),1),e("div",{class:"result-content",innerHTML:v.formatContent(l.content)},null,8,za),e("div",La,[e("span",Pa,"来源: "+k(l.source||"知识库"),1),e("span",Ua,k(v.formatDate(l.date)),1)])]))),128)),v.hasMore?(o(),n("div",Va,d[4]||(d[4]=[e("div",{class:"loading-spinner"},null,-1),e("span",null,"加载更多...",-1)]))):L("",!0)],544)):v.loading?(o(),n("div",Ga,d[5]||(d[5]=[e("div",{class:"loading-spinner"},null,-1),e("p",null,"正在搜索...",-1)]))):(o(),n("div",Wa,[d[6]||(d[6]=e("div",{class:"empty-icon"},"🔍",-1)),e("p",null,k(v.searchQuery?"未找到相关内容":"请输入关键词搜索"),1)]))])}const Ra=ce($a,[["render",Ba],["__scopeId","data-v-580b7e4d"]]),Oa={name:"ChangePasswordDialog",props:{visible:{type:Boolean,default:!1}},data(){return{formData:{old_password:"",new_password:"",confirm_password:""}}},methods:{closeDialog(){this.$emit("update:visible",!1),this.resetForm()},resetForm(){this.formData={old_password:"",new_password:"",confirm_password:""}},async handleSubmit(){var v,d;if(!this.formData.old_password){this.$message.error("请输入原密码");return}if(!this.formData.new_password){this.$message.error("请输入新密码");return}if(!this.formData.confirm_password){this.$message.error("请确认新密码");return}if(this.formData.new_password!==this.formData.confirm_password){this.$message.error("两次输入的新密码不一致");return}try{const h=await U.post("http://58.246.234.210:8062/user/change_password",{old_password:this.formData.old_password,new_password:this.formData.new_password,confirm_password:this.formData.confirm_password},{headers:{Authorization:`JWT ${localStorage.getItem("token")}`}});if(h.data.code===200){this.$message.success("密码修改成功"),this.closeDialog();try{await U.post("http://58.246.234.210:8062/user/logout",{},{headers:{Authorization:`JWT ${localStorage.getItem("token")}`}}),localStorage.removeItem("token"),this.$router.push("/login")}catch(_){console.error("退出登录失败:",_),localStorage.removeItem("token"),this.$router.push("/login")}}else this.$message.error(h.data.message||"密码修改失败")}catch(h){this.$message.error("密码修改失败:"+(((d=(v=h.response)==null?void 0:v.data)==null?void 0:d.message)||h.message))}}}},qa={class:"dialog-content"},Fa={class:"dialog-header"},Na={class:"dialog-body"},Ka={class:"form-group"},Ya={class:"form-group"},Qa={class:"form-group"},Ja={class:"dialog-footer"};function Ha(v,d,h,_,p,y){return h.visible?(o(),n("div",{key:0,class:"dialog-overlay",onClick:d[6]||(d[6]=he((...l)=>y.closeDialog&&y.closeDialog(...l),["self"]))},[e("div",qa,[e("div",Fa,[d[7]||(d[7]=e("h3",null,"修改密码",-1)),e("button",{class:"close-button",onClick:d[0]||(d[0]=(...l)=>y.closeDialog&&y.closeDialog(...l))},"×")]),e("div",Na,[e("div",Ka,[d[8]||(d[8]=e("label",null,"原密码:",-1)),T(e("input",{type:"password","onUpdate:modelValue":d[1]||(d[1]=l=>p.formData.old_password=l),placeholder:"请输入原密码"},null,512),[[re,p.formData.old_password]])]),e("div",Ya,[d[9]||(d[9]=e("label",null,"新密码:",-1)),T(e("input",{type:"password","onUpdate:modelValue":d[2]||(d[2]=l=>p.formData.new_password=l),placeholder:"请输入新密码"},null,512),[[re,p.formData.new_password]])]),e("div",Qa,[d[10]||(d[10]=e("label",null,"确认密码:",-1)),T(e("input",{type:"password","onUpdate:modelValue":d[3]||(d[3]=l=>p.formData.confirm_password=l),placeholder:"请确认新密码"},null,512),[[re,p.formData.confirm_password]])])]),e("div",Ja,[e("button",{class:"cancel-button",onClick:d[4]||(d[4]=(...l)=>y.closeDialog&&y.closeDialog(...l))},"取消"),e("button",{class:"confirm-button",onClick:d[5]||(d[5]=(...l)=>y.handleSubmit&&y.handleSubmit(...l))},"确认")])])])):L("",!0)}const Xa=ce(Oa,[["render",Ha],["__scopeId","data-v-b963ecb7"]]),ja={class:"header"},Za={class:"user-profile-bar"},el={class:"user-info-bar"},tl=["title"],sl=["src","alt"],al={class:"user-name"},ll={class:"user-name"},ol={class:"dropdown-menu"},nl=["src"],il={class:"conversation-list"},rl=["onClick"],cl={class:"config-container"},ul={class:"chat"},dl={key:0,class:"welcome-section"},vl={class:"suggestion-section"},pl={class:"cards-container"},gl={class:"suggestion-card"},hl={class:"suggestion-items"},ml=["onClick"],fl={class:"message-bubble"},wl={class:"message-content"},yl={key:0,class:"image-preview"},_l=["src"],kl={key:1,class:"video-preview"},bl=["src"],Cl={key:2,class:"file-info-display"},Sl=["src"],xl={class:"file-details"},Dl=["title"],$l={class:"file-size"},Al=["innerHTML"],Il={key:2},Tl={key:3,class:"audio-controls"},Ml=["onClick"],El={key:0,class:"wave-animation"},zl=["src"],Ll={class:"input-container"},Pl={class:"search-toggle-item"},Ul={class:"toggle-content"},Vl={class:"toggle-text"},Gl={class:"toggle-switch"},Wl=["disabled"],Bl={class:"search-toggle-item"},Rl={class:"toggle-content"},Ol={class:"toggle-text"},ql={class:"toggle-switch"},Fl={class:"search-toggle-item"},Nl={class:"toggle-content"},Kl=["value","disabled"],Yl={key:0,value:""},Ql={key:1,value:""},Jl=["value"],Hl={key:0,class:"attachments-panel"},Xl={class:"panel-content"},jl={key:0,style:{display:"flex","justify-content":"center"}},Zl={key:0,class:"upload-loading"},eo={key:1},to={class:"file-list"},so={key:0,class:"file-loading"},ao=["src"],lo=["src"],oo=["src"],no=["onClick"],io={key:0,class:"file-info"},ro={class:"file-name"},co={class:"file-size"},uo={class:"input-wrapper"},vo=["disabled"],po=["src"],go={class:"right-menu-content"},ho={class:"right-menu-tabs"},mo={class:"panel-container"},fo={class:"panel-container"},wo={class:"document-preview"},yo={class:"preview-container"},_o={key:0,class:"direct-preview"},ko={class:"preview-header"},bo={class:"preview-body"},Co=["src"],So=["src"],xo={key:2},Do={key:3},$o=["src"],Ao={key:5,class:"file-preview"},Io={class:"panel-container"},To=0,Mo=800,Eo={__name:"report",setup(v){const d=new ts({html:!0,linkify:!0,typographer:!0});u(!1);const h=u(""),_=u(!1),p=u(!1),y=u(null),l=u([]),m=u([]);u(!1);const R=u(1),O=u(1),D=u(null),x=ht(),w=ls(),E=u([{id:1,title:"当前会话",messages:[]}]),Y=u(!1),f=u(null),i=u(!1),c=u(null),b=u(null),I=u(!1),J=u(null),Ce=u(!1),Se=u([]),ue=u([]);let A=null;const de=u([]),M=u(!1),me=u(0),z=u(!0),j=u(!1),Te=u(!1),fe=u(!1),Me=u([]),Ee=u(0),ze=u(!1),Le=()=>{Te.value=window.innerWidth<=768};ge(()=>{window.removeEventListener("resize",Le)});const se=u(!1),Ne=()=>{console.log(se.value),se.value=!se.value},ft=()=>{j.value=!j.value,Te.value&&(document.body.style.overflow=j.value?"auto":"hidden",j.value||(p.value=!0)),document.querySelector(".chat")&&(document.querySelector(".chat").style.left=j.value?"0":"260px")},wt=()=>{p.value=!p.value,p.value?document.querySelector(".chat")&&(document.querySelector(".chat").style.right="0"):(z.value=!0,document.querySelector(".chat")&&(document.querySelector(".chat").style.right=`${ae.value}px`)),Te.value&&(document.body.style.overflow=p.value?"auto":"hidden",p.value||(j.value=!0))},yt=()=>{p.value=!1,document.querySelector(".chat")&&(document.querySelector(".chat").style.right=`${ae.value}px`)},_t=async()=>{Ce.value=!0;try{const s=await U.get("http://58.246.234.210:8062/api/document/summary",{headers:{Authorization:`JWT ${localStorage.getItem("token")}`}});console.log("API Response:",s.data),s.data.code===200&&(J.value=s.data.data.items,console.log("Document Summary:",J.value),kt())}catch(s){console.error("获取文档摘要失败:",s)}finally{Ce.value=!1}},kt=()=>{A&&clearInterval(A);const s=()=>{var t;if(!((t=J.value)!=null&&t.length)){console.log("No document summary data available");return}try{const r=J.value[0];if(r!=null&&r.questions){const C=[...r.questions.map(V=>({question:V}))].sort(()=>.5-Math.random());Se.value=C.slice(0,3)}}catch(r){console.error("解析 Hot Topics 失败:",r)}try{const r=J.value[1];if(r!=null&&r.questions){const C=[...r.questions.map(V=>({question:V}))].sort(()=>.5-Math.random());ue.value=C.slice(0,3)}}catch(r){console.error("解析 Design Guide 失败:",r)}};s(),A=setInterval(s,5e3)},bt=s=>{console.log("QA clicked:",s),s!=null&&s.question&&(h.value=s.question,Pe())};ge(()=>{A&&clearInterval(A)});const Ke=()=>{_.value=!_.value},Ct=s=>{l.value=l.value.filter(t=>t!==s)},Ye=()=>{var s;I.value||(s=y.value)==null||s.click()},Qe=async s=>{try{const t=new FormData;t.append("file",s);const r=await U.post("http://58.246.234.210:8062/upload/file",t,{headers:{"Content-Type":"multipart/form-data"}});if(r.data.status===2e3)return r.data.data.fileUrl;throw new Error(r.data.message||"文件上传失败")}catch(t){throw console.error("文件上传失败:",t),t}},Je=async s=>{const t=Array.from(s.target.files);if(t.length===0)return;const r=10*1024*1024;if(t.filter(g=>!!(ve(g)&&g.size>r)).length>0){alert("Video files must not exceed 10MB"),s.target.value="";return}I.value=!0;try{for(const g of t){const C={name:g.name,size:g.size,sizeFormatted:He(g.size),type:g.type,isUploading:!0};l.value.push(C);try{const V=await Qe(g),Q=l.value.findIndex(oe=>oe.name===g.name);Q!==-1&&l.value.splice(Q,1,{...C,url:V,isUploading:!1})}catch(V){l.value=l.value.filter(Q=>Q.name!==g.name),console.error("单个文件上传失败:",V)}}}catch(g){console.error("文件上传失败:",g)}finally{I.value=!1,s.target.value="",l.value.length>0&&(q.value="preview",p.value=!1,document.querySelector(".chat")&&(document.querySelector(".chat").style.right=`${ae.value}px`))}t.length>0&&z.value&&(z.value=!1)},He=s=>{if(!s||isNaN(s))return"0 B";const t=1024,r=["B","KB","MB","GB"],a=Math.floor(Math.log(s)/Math.log(t));return parseFloat((s/Math.pow(t,a)).toFixed(2))+" "+r[a]},Xe=s=>s.url&&te(s)?s.url:ms,te=s=>{var a,g,C;const t=["jpg","jpeg","png","gif","webp"],r=((C=(g=(a=s.name)==null?void 0:a.split("."))==null?void 0:g.pop())==null?void 0:C.toLowerCase())||"";return t.includes(r)},ve=s=>{var a,g,C;const t=["mp4","webm","ogg"],r=((C=(g=(a=s.name)==null?void 0:a.split("."))==null?void 0:g.pop())==null?void 0:C.toLowerCase())||"";return t.includes(r)},St=s=>{const t=s.name.split(".").pop().toLowerCase(),r=["jpg","jpeg","png","gif","webp"],a=["mp4","webm","ogg"];return r.includes(t)?"image":a.includes(t)?"video":"document"},xe=()=>{D.value&&Ie(()=>{D.value.scrollTop=D.value.scrollHeight})},De=u(""),Pe=async()=>{var oe,at;if(!localStorage.getItem("token")){w.push("/login");return}if(!h.value.trim()&&l.value.length===0||Y.value)return;const t=h.value.trim();h.value="",z.value?ye.value=t:fe.value&&(ye.value=t,et({query:t,page:1,pageSize:20}));let r=t;const a=[],g=[],C=[];l.value.forEach(K=>{const ne=St(K);ne==="image"?a.push(K.url):ne==="video"?g.push(K.url):C.push(K.url)});const V={id:Date.now(),role:"user",content:r,displayContent:r,files:l.value.map(K=>({name:K.name,size:K.sizeFormatted,type:K.type,url:K.url}))};m.value.push(V),xe();const Q={id:Date.now()+1,role:"assistant",content:"Thinking...",displayContent:"Thinking...",isLoading:!0};m.value.push(Q),xe();try{const K=z.value?"http://58.246.234.210:8062/api/chat/web-search-llm/":"http://58.246.234.210:8062/api/chat/online/multimodal",ne=await U.post(K,{message:t,chat_config_id:"2",user_id:"13365429324",session_id:De.value,source:"pc",image_urls:a,video_urls:g,documents:C,merchant_id:JSON.parse(localStorage.getItem("userInfo")).merchant.merchant_id,model_type:tt.value.type,model_name:tt.value.name},{headers:{Authorization:`JWT ${localStorage.getItem("token")}`}});m.value=m.value.filter(jt=>jt.id!==Q.id);const pe=z.value?ne.data.data:ne.data,Ht=z.value?pe.answer:pe.choices[0].message.content,Xt=z.value?(oe=pe.audio_info)==null?void 0:oe.audio:(at=pe.audio_info)==null?void 0:at.audio,lt=(z.value,pe.session_id);lt&&(De.value=lt);const ke=Oe({id:Date.now()+2,role:"assistant",content:Ht,displayContent:"",audioData:Xt||null});m.value.push(ke),ke.audioData&&!i.value&&await st(ke.audioData,ke.id),await xt(ke)}catch(K){console.error("发送消息失败:",K),m.value=m.value.filter(ne=>ne.id!==Q.id),m.value.push({id:Date.now()+2,role:"assistant",content:"Sorry, there was an error processing your request.",displayContent:"Sorry, there was an error processing your request."})}finally{Y.value=!1,await Ie(),xe()}},xt=async s=>{if(!s||!s.content){console.error("Invalid message or content is missing");return}return new Promise(t=>{let a=0;s.displayContent="";const g=()=>{a<s.content.length?(s.displayContent=s.content.substring(0,a+1),a++,Ie(()=>{xe(),setTimeout(g,30)})):t()};g()})},Dt=()=>{O.value++;const s={id:Date.now(),title:`New Conversation ${O.value}`,messages:[]};E.value.push(s),De.value="",je(s.id)},je=s=>{R.value=s;const t=E.value.find(r=>r.id===s);m.value=t?t.messages:[],De.value=""},$t=async s=>{if(I.value)return;const t=Array.from(s.dataTransfer.files);if(t.length===0)return;const r=10*1024*1024;t.filter(a=>!!(ve(a)&&a.size>r)),I.value=!0;try{for(const a of t){const g={name:a.name,size:a.size,sizeFormatted:He(a.size),type:a.type,isUploading:!0};l.value.push(g);try{const C=await Qe(a),V=l.value.findIndex(Q=>Q.name===a.name);V!==-1&&l.value.splice(V,1,{...g,url:C,isUploading:!1})}catch(C){l.value=l.value.filter(V=>V.name!==a.name),console.error("单个文件上传失败:",C)}}}catch(a){console.error("文件上传失败:",a)}finally{I.value=!1,l.value.length>0&&(q.value="preview",p.value=!1,document.querySelector(".chat")&&(document.querySelector(".chat").style.right=`${ae.value}px`))}t.length>0&&z.value&&(z.value=!1)},At=s=>{s.audioData?c.value===s.id?we():st(s.audioData,s.id):c.value===s.id?we():It(s.content,s.id)},It=async(s,t)=>{try{if(c.value&&c.value!==t&&we(),c.value===t)return;const r=await U.post("http://58.246.234.210:8062/api/voices/play_text",{text:s},{headers:{Authorization:`JWT ${localStorage.getItem("token")}`}});if(r.data.code===200){const a=new Audio(`http://58.246.234.210:8062${r.data.audio_url}`);b.value=a,c.value=t,i.value=!0,a.onended=()=>{c.value=null,b.value=null,i.value=!1},a.onerror=g=>{console.error("播放文本失败:",g),W.error("播放失败,请稍后重试"),c.value=null,b.value=null,i.value=!1},await a.play()}}catch(r){console.error("播放文本失败:",r),W.error("播放失败,请稍后重试"),c.value=null,b.value=null,i.value=!1}},we=()=>{f.value&&(f.value.pause(),f.value.currentTime=0,f.value=null),b.value&&(b.value.pause(),b.value.currentTime=0,b.value=null),i.value=!1,c.value=null};ge(()=>{we()});const Tt=s=>s?d.render(s):"",ae=u(450),Ze=s=>{s.preventDefault();const t=s.type==="mousedown"?s.clientX:s.touches[0].clientX,r=ae.value,a=C=>{if(p.value)return;const V=C.type==="mousemove"?C.clientX:C.touches[0].clientX,Q=t-V;let oe=Math.min(Math.max(r+Q,To),Mo);ae.value=oe,document.querySelector(".chat")&&(document.querySelector(".chat").style.right=`${oe}px`)},g=()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",g),document.removeEventListener("touchmove",a),document.removeEventListener("touchend",g)};document.addEventListener("mousemove",a),document.addEventListener("mouseup",g),document.addEventListener("touchmove",a),document.addEventListener("touchend",g)};u(!0);const ye=u(""),Mt=s=>{console.log(z),z.value=s,s&&(yt(),q.value="search")},q=u("search"),Et=u(!1),Ue=()=>{Et.value=window.innerWidth<=480};ge(()=>{window.removeEventListener("resize",Ue)});const $e=u(!1),Ve=()=>{$e.value=window.innerWidth<=768};ge(()=>{window.removeEventListener("resize",Ve)});const zt=Re(()=>!p.value),Lt=s=>{s.target.checked&&(z.value=!1,q.value="knowledge",h.value.trim()&&et({query:h.value,page:1,pageSize:20}))},et=async s=>{if(!(!s.query.trim()||!fe.value)){ze.value=!0;try{const t=await U.post("http://58.246.234.210:8062/chataids/mysql_fuzzy_search/",{keywords:s.query,documents:[],document_ids:[],limit:5},{headers:{Authorization:`JWT ${localStorage.getItem("token")}`}});console.log(t),t.data&&t.data.status===200&&(Me.value=t.data.data.data.results||[],Ee.value=t.data.data.data.total||0)}catch(t){console.error("Knowledge search failed:",t),Me.value=[],Ee.value=0}finally{ze.value=!1}}},Pt=s=>{s.target.checked&&(fe.value=!1,q.value="search",h.value.trim()&&(ye.value=h.value))},Ut="http://58.246.234.210:8062",le=u([]),_e=u(null),Ae=u(!1),tt=Re(()=>{if(!_e.value||!le.value.length)return{type:"",name:""};const s=le.value.find(t=>t.id===_e.value);return{type:(s==null?void 0:s.type)||"",name:(s==null?void 0:s.name)||""}}),Vt=async()=>{Ae.value=!0;try{const t=await(await fetch(`${Ut}/api/models`)).json();console.log(t),t.code===2e3&&(le.value=(t.data.models||[]).map(r=>({id:r.id,name:r.name,type:r.type||r.model_type||"default"})),le.value.length>0&&(_e.value=le.value[0].id))}catch(s){console.error("Failed to fetch models:",s)}finally{Ae.value=!1}},Gt=s=>{_e.value=s},Ge=u({name:"",role:""});be(()=>{Ve(),window.addEventListener("resize",Ve),Ue(),window.addEventListener("resize",Ue),Le(),window.addEventListener("resize",Le),Vt(),_t();const s=localStorage.getItem("userInfo");if(s)try{Ge.value=JSON.parse(s)}catch(t){console.error("解析用户信息失败:",t)}});const We=u(!1),Wt=()=>{We.value=!0,se.value=!1},Bt=async()=>{try{await U.post("http://58.246.234.210:8062/user/logout",{},{headers:{Authorization:`JWT ${localStorage.getItem("token")}`}}),localStorage.removeItem("token"),localStorage.removeItem("userInfo"),localStorage.removeItem("permissions"),localStorage.removeItem("username"),localStorage.removeItem("mobile"),x.commit("app/setUser",{user:{},permission:[],auth:{}}),se.value=!1,w.push("/login")}catch(s){console.error("退出登录失败:",s),localStorage.clear(),w.push("/login")}},Rt=async()=>{var s,t;try{const r=await U.post("http://58.246.234.210:8062/user/create_invitation",{},{headers:{Authorization:`JWT ${localStorage.getItem("token")}`}});if(console.log(r),r.data.code===200){W.success("创建邀请成功");const a=`${window.location.protocol}//${window.location.host}`;window.location.href=`${a}${r.data.data.invitation_link}`}else W.error(r.data.message||"创建邀请失败")}catch(r){console.error("创建邀请失败:",r),W.error(((t=(s=r.response)==null?void 0:s.data)==null?void 0:t.message)||"创建邀请失败,请稍后重试")}se.value=!1},st=async(s,t)=>{try{if(c.value&&c.value!==t&&we(),c.value===t)return;const r=new Audio(s);b.value=r,c.value=t,i.value=!0,r.onended=()=>{c.value=null,b.value=null,i.value=!1},r.onerror=a=>{console.error("播放音频失败:",a),W.error("播放失败,请稍后重试"),c.value=null,b.value=null,i.value=!1},await r.play()}catch(r){console.error("播放音频失败:",r),W.error("播放失败,请稍后重试"),c.value=null,b.value=null,i.value=!1}},N=u(!1),Be=s=>{document.documentElement.classList.toggle("dark-theme",s)},Ot=()=>{N.value=!N.value,localStorage.setItem("theme",N.value?"dark":"light"),Be(N.value)};be(()=>{const s=localStorage.getItem("theme");s?N.value=s==="dark":N.value=window.matchMedia("(prefers-color-scheme: dark)").matches,Be(N.value),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",r=>{localStorage.getItem("theme")||(N.value=r.matches,Be(r.matches))})});const qt=u({xls:!1,minColLength:15,minRowLength:50,widthOffset:50,heightOffset:30,forceRender:!0,maxSheetLength:10,showGridLines:!0,defaultFontSize:12,defaultRowHeight:24,autoFitColumn:!0,overflowColumns:!0,showToolbar:!0}),Ft=()=>{console.log("Excel文件渲染完成"),Ie(()=>{window.dispatchEvent(new Event("resize"))})},Nt=s=>{console.error("Excel文件渲染失败:",s),W.error("Excel预览失败:"+(s.message||"请尝试下载后查看"))},Kt=s=>{var a,g,C;if(!s)return!1;const t=["doc","docx"],r=((C=(g=(a=s.name)==null?void 0:a.split("."))==null?void 0:g.pop())==null?void 0:C.toLowerCase())||"";return t.includes(r)},Yt=s=>{var a,g,C;if(!s)return!1;const t=["xls","xlsx"],r=((C=(g=(a=s.name)==null?void 0:a.split("."))==null?void 0:g.pop())==null?void 0:C.toLowerCase())||"";return t.includes(r)},Qt=s=>{var t,r;return s&&((r=(t=s.name)==null?void 0:t.toLowerCase())==null?void 0:r.endsWith(".pdf"))||!1},B=u(null);ie(()=>l.value,s=>{s&&s.length>0?B.value=s[s.length-1]:B.value=null},{immediate:!0,deep:!0});const Jt=()=>{B.value=null};return(s,t)=>{var r;return o(),n("div",{class:G(["layout",{"dark-theme":N.value}])},[S(Xa,{visible:We.value,"onUpdate:visible":t[0]||(t[0]=a=>We.value=a)},null,8,["visible"]),e("div",ja,[e("div",Za,[t[14]||(t[14]=e("div",{class:"logo"},[e("img",{src:cs,alt:"logo",class:"logo-img"})],-1)),e("div",el,[e("div",{class:"theme-switch",onClick:Ot,title:N.value?"切换到浅色模式":"切换到深色模式"},[S(ss,{name:"theme-icon",mode:"out-in"},{default:X(()=>[(o(),n("img",{key:N.value,src:N.value?"../assets/svg/sun.svg":"../assets/svg/moon.svg",alt:N.value?"切换到浅色模式":"切换到深色模式",class:"theme-icon"},null,8,sl))]),_:1})],8,tl),e("div",{class:"user-info",onClick:Ne},[e("div",al,"商户名称:"+k(((r=Ge.value.merchant)==null?void 0:r.merchant_name)||"未登录用户"),1),e("div",ll,"当前用户:"+k(Ge.value.username||"未登录用户"),1)]),e("div",{class:"avatar",onClick:Ne},t[10]||(t[10]=[e("img",{src:us,alt:"用户头像"},null,-1)]))]),T(e("div",ol,[e("div",{class:"dropdown-item",onClick:Wt},t[11]||(t[11]=[e("i",{class:"fas fa-key"},null,-1),ee(" 修改密码 ")])),e("div",{class:"dropdown-item",onClick:Rt},t[12]||(t[12]=[e("i",{class:"fas fa-user-plus"},null,-1),ee(" 创建邀请 ")])),e("div",{class:"dropdown-item",onClick:Bt},t[13]||(t[13]=[e("i",{class:"fas fa-sign-out-alt"},null,-1),ee(" 退出登录 ")]))],512),[[Z,se.value]])])]),e("div",{class:G(["collapse-left-button",{"menu-collapsed":j.value}]),onClick:ft},[e("img",{src:j.value?$(dt):$(ut),alt:"toggle",class:"collapse-icon"},null,8,nl)],2),e("div",{class:G(["menu",{collapsed:j.value}])},[e("button",{class:"new-conversation-btn",onClick:Dt},t[15]||(t[15]=[e("img",{class:"tab-icon",src:ct,alt:""},null,-1),e("span",null,"New Conversation",-1)])),e("div",il,[(o(!0),n(P,null,F(E.value,a=>(o(),n("div",{key:a.id,class:G(["conversation-item",{active:R.value===a.id}]),onClick:g=>je(a.id)},k(a.title),11,rl))),128))]),e("div",cl,[S(Da),S(zs),S(ha)])],2),e("div",ul,[m.value.length===0?(o(),n("div",dl,[e("div",vl,[t[18]||(t[18]=e("h3",null,"嗨,我是你的智能助手",-1)),e("div",pl,[e("div",gl,[t[16]||(t[16]=e("div",{class:"card-header"},[e("img",{src:ds,alt:"hot topics",class:"tab-icon"}),e("h4",null,"推荐问题")],-1)),t[17]||(t[17]=e("p",{class:"card-subtitle"},"为您精选的热门问题",-1)),e("div",hl,[(o(!0),n(P,null,F([...Se.value,...ue.value],(a,g)=>(o(),n("div",{key:g,class:"suggestion-item",onClick:C=>bt(a)},k(a.question),9,ml))),128))])])])])])):(o(),n("div",{key:1,class:"message-list",ref_key:"messageList",ref:D},[(o(!0),n(P,null,F(m.value,a=>(o(),n("div",{key:a.id,class:G(["message-item",a.role==="user"?"user":"assistant"])},[e("div",fl,[e("div",wl,[a.role==="user"&&a.files?(o(!0),n(P,{key:0},F(a.files,g=>(o(),n("div",{key:g.name,class:"file-message"},[te(g)?(o(),n("div",yl,[e("img",{src:g.url,class:"preview-image"},null,8,_l)])):ve(g)?(o(),n("div",kl,[e("video",{controls:"",class:"preview-video",src:g.url,preload:"metadata"}," Your browser does not support the video tag. ",8,bl)])):(o(),n("div",Cl,[e("img",{src:Xe(g),class:"file-type-icon"},null,8,Sl),e("div",xl,[e("span",{class:"file-name",title:g.name},k(g.name),9,Dl),e("span",$l,k(g.size),1)])]))]))),128)):L("",!0),a.role==="assistant"?(o(),n("div",{key:1,class:"message-text",innerHTML:Tt(a.displayContent)},null,8,Al)):(o(),n("div",Il,k(a.content),1)),a.role==="assistant"?(o(),n("div",Tl,[e("button",{class:"audio-btn",onClick:g=>At(a)},[c.value===a.id?(o(),n("div",El,t[19]||(t[19]=[e("span",{class:"wave-bar"},null,-1),e("span",{class:"wave-bar"},null,-1),e("span",{class:"wave-bar"},null,-1),e("span",{class:"wave-bar"},null,-1)]))):(o(),n("img",{key:1,src:$(fs),alt:"播放",class:"audio-icon"},null,8,zl))],8,Ml)])):L("",!0)])])],2))),128))],512)),e("div",Ll,[e("div",{class:G(["search-toggles",{compact:$e.value}])},[e("div",Pl,[e("div",Ul,[S($(os)),T(e("span",Vl,"互联网",512),[[Z,!$e.value]]),e("div",Gl,[T(e("input",{type:"checkbox",id:"webSearchToggle","onUpdate:modelValue":t[1]||(t[1]=a=>z.value=a),onChange:Pt,disabled:l.value.length>0,class:"toggle-input"},null,40,Wl),[[nt,z.value]]),e("label",{for:"webSearchToggle",class:G(["toggle-label",{disabled:l.value.length>0}])},t[20]||(t[20]=[e("span",{class:"toggle-slider"},null,-1)]),2)])])]),e("div",Bl,[e("div",Rl,[S($(it)),T(e("span",Ol,"知识库",512),[[Z,!$e.value]]),e("div",ql,[T(e("input",{type:"checkbox",id:"knowledgeSearchToggle","onUpdate:modelValue":t[2]||(t[2]=a=>fe.value=a),onChange:Lt,class:"toggle-input"},null,544),[[nt,fe.value]]),t[21]||(t[21]=e("label",{for:"knowledgeSearchToggle",class:"toggle-label"},[e("span",{class:"toggle-slider"})],-1))])])]),e("div",Fl,[e("div",Nl,[e("select",{class:"model-select",value:_e.value,onChange:t[3]||(t[3]=a=>Gt(a.target.value)),disabled:Ae.value},[Ae.value?(o(),n("option",Yl,"加载中...")):le.value.length===0?(o(),n("option",Ql,"无可用模型")):L("",!0),(o(!0),n(P,null,F(le.value,a=>(o(),n("option",{key:a.id,value:a.id},k(a.name),9,Jl))),128))],40,Kl)])])],2),_.value?(o(),n("div",Hl,[e("div",Xl,[e("div",{class:"attachments-header"},[t[23]||(t[23]=e("span",null,"Attachments",-1)),e("button",{class:"close-btn",onClick:Ke},t[22]||(t[22]=[e("img",{src:vs,alt:""},null,-1)]))]),l.value.length===0?(o(),n("div",jl,[e("div",{class:G(["upload-area",{"has-files":l.value.length>0}]),onClick:Ye,onDrop:he($t,["prevent"]),onDragover:t[4]||(t[4]=he(()=>{},["prevent"])),onDragenter:t[5]||(t[5]=he(()=>{},["prevent"]))},[I.value?(o(),n("div",Zl,t[24]||(t[24]=[e("div",{class:"loading-spinner"},null,-1),e("div",{class:"upload-text"},"Uploading...",-1)]))):(o(),n(P,{key:1},[t[25]||(t[25]=e("img",{src:ps,alt:"upload",class:"upload-icon"},null,-1)),t[26]||(t[26]=e("div",{class:"upload-text"},"Upload files",-1)),t[27]||(t[27]=e("div",{class:"upload-hint"}," Click or drag files to this area to upload ",-1))],64)),e("input",{type:"file",ref_key:"fileInput",ref:y,style:{display:"none"},onChange:Je,multiple:""},null,544)],34)])):L("",!0),l.value.length!==0?(o(),n("div",eo,[e("div",to,[(o(!0),n(P,null,F(l.value,a=>(o(),n("div",{key:a.name,class:G(["file-item",{"is-image":te(a)}])},[e("div",{class:G(te(a)?"file-wrapper":"")},[a.isUploading?(o(),n("div",so,t[28]||(t[28]=[e("div",{class:"loading-spinner"},null,-1)]))):te(a)?(o(),n("img",{key:1,src:a.url,alt:"file",class:"file-icon"},null,8,ao)):ve(a)?(o(),n("video",{key:2,src:a.url,class:"file-icon",preload:"metadata"}," Your browser does not support the video tag. ",8,lo)):(o(),n("img",{key:3,src:Xe(a),alt:"file",class:G(te(a)||ve(a)?"file-icon":"")},null,10,oo)),a.isUploading?L("",!0):(o(),n("button",{key:4,class:"remove-btn",onClick:he(g=>Ct(a),["stop"])}," × ",8,no))],2),te(a)?L("",!0):(o(),n("div",io,[e("span",ro,k(a.name),1),e("span",co,k(a.sizeFormatted),1)]))],2))),128)),e("button",{class:"add-more-btn",onClick:he(Ye,["stop"])},t[29]||(t[29]=[e("img",{src:ct,alt:"add"},null,-1)]))]),e("input",{type:"file",ref_key:"fileInput",ref:y,style:{display:"none"},onChange:Je,multiple:""},null,544)])):L("",!0)])])):L("",!0),e("div",uo,[e("button",{class:"attachment-btn",onClick:Ke},t[30]||(t[30]=[e("img",{src:gs,alt:"attachment",class:"tab-icon"},null,-1)])),T(e("input",{type:"text",class:"message-input","onUpdate:modelValue":t[6]||(t[6]=a=>h.value=a),onKeyup:mt(Pe,["enter"]),placeholder:"Type a message..."},null,544),[[re,h.value]]),e("button",{class:"send-btn",onClick:Pe,disabled:!h.value&&l.value.length===0},t[31]||(t[31]=[e("img",{src:hs,alt:"send"},null,-1)]),8,vo)])])]),e("div",{class:G(["right_menu",{collapsed:!zt.value}]),style:as({width:ae.value+"px"})},[e("div",{class:G(["collapse-button",{"menu-expanded":!p.value,"menu-collapsed":p.value}]),onClick:wt},[e("img",{src:p.value?$(ut):$(dt),alt:"toggle",class:"collapse-icon"},null,8,po)],2),e("div",{class:"resize-handle",onMousedown:Ze,onTouchstart:Ze},null,32),e("div",go,[e("div",ho,[e("div",{class:G(["tab-item",{active:q.value==="search"}]),onClick:t[7]||(t[7]=a=>q.value="search")},[S($(pt)),t[32]||(t[32]=e("span",null,"搜索",-1))],2),e("div",{class:G(["tab-item",{active:q.value==="knowledge"}]),onClick:t[8]||(t[8]=a=>q.value="knowledge")},[S($(it)),t[33]||(t[33]=e("span",null,"知识库",-1))],2),e("div",{class:G(["tab-item",{active:q.value==="preview"}]),onClick:t[9]||(t[9]=a=>q.value="preview")},[S($(rt)),t[34]||(t[34]=e("span",null,"文档预览",-1))],2)]),T(e("div",mo,[S(ea,{searchResults:de.value,loading:M.value,total:me.value,enableWebSearch:z.value,message:ye.value,"onUpdate:enableWebSearch":Mt},null,8,["searchResults","loading","total","enableWebSearch","message"])],512),[[Z,q.value==="search"]]),T(e("div",fo,[t[36]||(t[36]=e("div",{class:"preview-header"},[e("span",null,"文档预览")],-1)),e("div",wo,[e("div",yo,[B.value?(o(),n("div",_o,[e("div",ko,[e("span",null,k(B.value.name),1),e("button",{class:"close-btn",onClick:Jt},[S($(ns))])]),e("div",bo,[te(B.value)?(o(),n("img",{key:0,src:B.value.url,class:"preview-image",alt:"preview"},null,8,Co)):ve(B.value)?(o(),n("video",{key:1,src:B.value.url,controls:"",class:"preview-video"},null,8,So)):Kt(B.value)?(o(),n("div",xo,[S($(is),{src:B.value.url,class:"doc-preview"},null,8,["src"])])):Yt(B.value)?(o(),n("div",Do,[S($(rs),{options:qt.value,onRendered:Ft,onError:Nt,src:B.value.url,class:"doc-preview"},null,8,["options","src"])])):Qt(B.value)?(o(),n("iframe",{key:4,src:B.value.url,style:{width:"100%",height:"100%"},frameborder:"0"},null,8,$o)):(o(),n("div",Ao,[S($(rt),{class:"large-icon"}),t[35]||(t[35]=e("p",null,"该文件类型暂不支持预览",-1))]))])])):L("",!0)])])],512),[[Z,q.value==="preview"]]),T(e("div",Io,[t[37]||(t[37]=e("div",{class:"search-header"},[e("span",null,"知识库搜索结果")],-1)),S(Ra,{searchResults:Me.value,loading:ze.value,total:Ee.value,message:ye.value},null,8,["searchResults","loading","total","message"])],512),[[Z,q.value==="knowledge"]])])],6)],2)}}},Po=ce(Eo,[["__scopeId","data-v-047b9a1e"]]);export{Po as default};
|