PageSourceSearch

https://telet.ai/assets/index-BSWs8h3O.js

js telet.ai collected 2026-10-05 14:44:58 UTC 1,360,213 bytes, 338 lines download raw bytes

vendor: 6,012 bytes, lines 1-10
1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/maptiler-sdk-C0xmb5Ux.js","assets/events-DUW6C-WX.js","assets/maptiler-weather-BhTpvdrl.js","assets/maptiler-sdk-BjaAvAjq.css"])))=>i.map(i=>d[i]);
2function Ob(n,t){for(var s=0;s<t.length;s++){const o=t[s];if(typeof o!="string"&&!Array.isArray(o)){for(const d in o)if(d!=="default"&&!(d in n)){const p=Object.getOwnPropertyDescriptor(o,d);p&&Object.defineProperty(n,d,p.get?p:{enumerable:!0,get:()=>o[d]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const d of document.querySelectorAll('link[rel="modulepreload"]'))o(d);new MutationObserver(d=>{for(const p of d)if(p.type==="childList")for(const c of p.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&o(c)}).observe(document,{childList:!0,subtree:!0});function s(d){const p={};return d.integrity&&(p.integrity=d.integrity),d.referrerPolicy&&(p.referrerPolicy=d.referrerPolicy),d.crossOrigin==="use-credentials"?p.credentials="include":d.crossOrigin==="anonymous"?p.credentials="omit":p.credentials="same-origin",p}function o(d){if(d.ep)return;d.ep=!0;const p=s(d);fetch(d.href,p)}})();function Bb(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Ll={exports:{}},ji={},Pl={exports:{}},he={};/**
3 * @license React
4 * react.production.min.js
5 *
6 * Copyright (c) Facebook, Inc. and its affiliates.
7 *
8 * This source code is licensed under the MIT license found in the
9 * LICENSE file in the root directory of this source tree.
10 */var Jm;function Kb(){if(Jm)return he;Jm=1;var n=Symbol.for("react.element"),t=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),d=Symbol.for("react.profiler"),p=Symbol.for("react.provider"),c=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),b=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),y=Symbol.iterator;function A(w){return w===null||typeof w!="object"?null:(w=y&&w[y]||w["@@iterator"],typeof w=="function"?w:null)}var M={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},P=Object.assign,z={};function C(w,R,ie){this.props=w,this.context=R,this.refs=z,this.updater=ie||M}C.prototype.isReactComponent={},C.prototype.setState=function(w,R){if(typeof w!="object"&&typeof w!="function"&&w!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,w,R,"setState")},C.prototype.forceUpdate=function(w){this.updater.enqueueForceUpdate(this,w,"forceUpdate")};function E(){}E.prototype=C.prototype;function F(w,R,ie){this.props=w,this.context=R,this.refs=z,this.updater=ie||M}var K=F.prototype=new E;K.constructor=F,P(K,C.prototype),K.isPureReactComponent=!0;var U=Array.isArray,W=Object.prototype.hasOwnProperty,J={current:null},de={key:!0,ref:!0,__self:!0,__source:!0};function O(w,R,ie){var le,fe={},ye=null,ce=null;if(R!=null)for(le in R.ref!==void 0&&(ce=R.ref),R.key!==void 0&&(ye=""+R.key),R)W.call(R,le)&&!de.hasOwnProperty(le)&&(fe[le]=R[le]);var Ae=arguments.length-2;if(Ae===1)fe.children=ie;else if(1<Ae){for(var we=Array(Ae),He=0;He<Ae;He++)we[He]=arguments[He+2];fe.children=we}if(w&&w.defaultProps)for(le in Ae=w.defaultProps,Ae)fe[le]===void 0&&(fe[le]=Ae[le]);return{$$typeof:n,type:w,key:ye,ref:ce,props:fe,_owner:J.current}}function _(w,R){return{$$typeof:n,type:w.type,key:R,ref:w.ref,props:w.props,_owner:w._owner}}function te(w){return typeof w=="object"&&w!==null&&w.$$typeof===n}function be(w){var R={"=":"=0",":":"=2"};return"$"+w.replace(/[=:]/g,function(ie){return R[ie]})}var pe=/\/+/g;function ke(w,R){return typeof w=="object"&&w!==null&&w.key!=null?be(""+w.key):R.toString(36)}function Ie(w,R,ie,le,fe){var ye=typeof w;(ye==="undefined"||ye==="boolean")&&(w=null);var ce=!1;if(w===null)ce=!0;else switch(ye){case"string":case"number":ce=!0;break;case"object":switch(w.$$typeof){case n:case t:ce=!0}}if(ce)return ce=w,fe=fe(ce),w=le===""?"."+ke(ce,0):le,U(fe)?(ie="",w!=null&&(ie=w.replace(pe,"$&/")+"/"),Ie(fe,R,ie,"",function(He){return He})):fe!=null&&(te(fe)&&(fe=_(fe,ie+(!fe.key||ce&&ce.key===fe.key?"":(""+fe.key).replace(pe,"$&/")+"/")+w)),R.push(fe)),1;if(ce=0,le=le===""?".":le+":",U(w))for(var Ae=0;Ae<w.length;Ae++){ye=w[Ae];var we=le+ke(ye,Ae);ce+=Ie(ye,R,ie,we,fe)}else if(we=A(w),typeof we=="function")for(w=we.call(w),Ae=0;!(ye=w.next()).done;)ye=ye.value,we=le+ke(ye,Ae++),ce+=Ie(ye,R,ie,we,fe);else if(ye==="object")throw R=String(w),Error("Objects are not valid as a React child (found: "+(R==="[object Object]"?"object with keys {"+Object.keys(w).join(", ")+"}":R)+"). If you meant to render a collection of children, use an array instead.");return ce}function me(w,R,ie){if(w==null)return w;var le=[],fe=0;return Ie(w,le,"","",function(ye){return R.call(ie,ye,fe++)}),le}function Le(w){if(w._status===-1){var R=w._result;R=R(),R.then(function(ie){(w._status===0||w._status===-1)&&(w._status=1,w._result=ie)},function(ie){(w._status===0||w._status===-1)&&(w._status=2,w._result=ie)}),w._status===-1&&(w._status=0,w._result=R)}if(w._status===1)return w._result.default;throw w._result}var se={current:null},D={transition:null},Q={ReactCurrentDispatcher:se,ReactCurrentBatchConfig:D,ReactCurrentOwner:J};function q(){throw Error("act(...) is not supported in production builds of React.")}return he.Children={map:me,forEach:function(w,R,ie){me(w,function(){R.apply(this,arguments)},ie)},count:function(w){var R=0;return me(w,function(){R++}),R},toArray:function(w){return me(w,function(R){return R})||[]},only:function(w){if(!te(w))throw Error("React.Children.only expected to receive a single React element child.");return w}},he.Component=C,he.Fragment=s,he.Profiler=d,he.PureComponent=F,he.StrictMode=o,he.Suspense=h,he.__SECRET_INT
vendor: 4,956 bytes, lines 10-26
10ERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Q,he.act=q,he.cloneElement=function(w,R,ie){if(w==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+w+".");var le=P({},w.props),fe=w.key,ye=w.ref,ce=w._owner;if(R!=null){if(R.ref!==void 0&&(ye=R.ref,ce=J.current),R.key!==void 0&&(fe=""+R.key),w.type&&w.type.defaultProps)var Ae=w.type.defaultProps;for(we in R)W.call(R,we)&&!de.hasOwnProperty(we)&&(le[we]=R[we]===void 0&&Ae!==void 0?Ae[we]:R[we])}var we=arguments.length-2;if(we===1)le.children=ie;else if(1<we){Ae=Array(we);for(var He=0;He<we;He++)Ae[He]=arguments[He+2];le.children=Ae}return{$$typeof:n,type:w.type,key:fe,ref:ye,props:le,_owner:ce}},he.createContext=function(w){return w={$$typeof:c,_currentValue:w,_currentValue2:w,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},w.Provider={$$typeof:p,_context:w},w.Consumer=w},he.createElement=O,he.createFactory=function(w){var R=O.bind(null,w);return R.type=w,R},he.createRef=function(){return{current:null}},he.forwardRef=function(w){return{$$typeof:g,render:w}},he.isValidElement=te,he.lazy=function(w){return{$$typeof:f,_payload:{_status:-1,_result:w},_init:Le}},he.memo=function(w,R){return{$$typeof:b,type:w,compare:R===void 0?null:R}},he.startTransition=function(w){var R=D.transition;D.transition={};try{w()}finally{D.transition=R}},he.unstable_act=q,he.useCallback=function(w,R){return se.current.useCallback(w,R)},he.useContext=function(w){return se.current.useContext(w)},he.useDebugValue=function(){},he.useDeferredValue=function(w){return se.current.useDeferredValue(w)},he.useEffect=function(w,R){return se.current.useEffect(w,R)},he.useId=function(){return se.current.useId()},he.useImperativeHandle=function(w,R,ie){return se.current.useImperativeHandle(w,R,ie)},he.useInsertionEffect=function(w,R){return se.current.useInsertionEffect(w,R)},he.useLayoutEffect=function(w,R){return se.current.useLayoutEffect(w,R)},he.useMemo=function(w,R){return se.current.useMemo(w,R)},he.useReducer=function(w,R,ie){return se.current.useReducer(w,R,ie)},he.useRef=function(w){return se.current.useRef(w)},he.useState=function(w){return se.current.useState(w)},he.useSyncExternalStore=function(w,R,ie){return se.current.useSyncExternalStore(w,R,ie)},he.useTransition=function(){return se.current.useTransition()},he.version="18.3.1",he}var Zm;function Ad(){return Zm||(Zm=1,Pl.exports=Kb()),Pl.exports}/**
11 * @license React
12 * react-jsx-runtime.production.min.js
13 *
14 * Copyright (c) Facebook, Inc. and its affiliates.
15 *
16 * This source code is licensed under the MIT license found in the
17 * LICENSE file in the root directory of this source tree.
18 */var Xm;function Vb(){if(Xm)return ji;Xm=1;var n=Ad(),t=Symbol.for("react.element"),s=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,d=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};function c(g,h,b){var f,y={},A=null,M=null;b!==void 0&&(A=""+b),h.key!==void 0&&(A=""+h.key),h.ref!==void 0&&(M=h.ref);for(f in h)o.call(h,f)&&!p.hasOwnProperty(f)&&(y[f]=h[f]);if(g&&g.defaultProps)for(f in h=g.defaultProps,h)y[f]===void 0&&(y[f]=h[f]);return{$$typeof:t,type:g,key:A,ref:M,props:y,_owner:d.current}}return ji.Fragment=s,ji.jsx=c,ji.jsxs=c,ji}var Ym;function Fb(){return Ym||(Ym=1,Ll.exports=Vb()),Ll.exports}var l=Fb(),sr={},wl={exports:{}},ha={},Sl={exports:{}},Il={};/**
19 * @license React
20 * scheduler.production.min.js
21 *
22 * Copyright (c) Facebook, Inc. and its affiliates.
23 *
24 * This source code is licensed under the MIT license found in the
25 * LICENSE file in the root directory of this source tree.
26 */var ep;function Wb(){return ep||(ep=1,(function(n){function t(D,Q){var q=D.length;D.push(Q);e:for(;0<q;){var w=q-1>>>1,R=D[w];if(0<d(R,Q))D[w]=Q,D[q]=R,q=w;else break e}}function s(D){return D.length===0?null:D[0]}function o(D){if(D.length===0)return null;var Q=D[0],q=D.pop();if(q!==Q){D[0]=q;e:for(var w=0,R=D.length,ie=R>>>1;w<ie;){var le=2*(w+1)-1,fe=D[le],ye=le+1,ce=D[ye];if(0>d(fe,q))ye<R&&0>d(ce,fe)?(D[w]=ce,D[ye]=q,w=ye):(D[w]=fe,D[le]=q,w=le);else if(ye<R&&0>d(ce,q))D[w]=ce,D[ye]=q,w=ye;else break e}}return Q}function d(D,Q){var q=D.sortIndex-Q.sortIndex;return q!==0?q:D.id-Q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var p=performance;n.unstable_now=function(){return p.now()}}else{var c=Date,g=c.now();n.unstable_now=function(){return c.now()-g}}var h=[],b=[],f=1,y=null,A=3,M=!1,P=!1,z=!1,C=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,F=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function K(D){for(var Q=s(b);Q!==null;){if(Q.callback===null)o(b);else if(Q.startTime<=D)o(b),Q.sortIndex=Q.expirationTime,t(h,Q);else break;Q=s(b)}}
vendor: 17,893 bytes, lines 26-38
26function U(D){if(z=!1,K(D),!P)if(s(h)!==null)P=!0,Le(W);else{var Q=s(b);Q!==null&&se(U,Q.startTime-D)}}function W(D,Q){P=!1,z&&(z=!1,E(O),O=-1),M=!0;var q=A;try{for(K(Q),y=s(h);y!==null&&(!(y.expirationTime>Q)||D&&!be());){var w=y.callback;if(typeof w=="function"){y.callback=null,A=y.priorityLevel;var R=w(y.expirationTime<=Q);Q=n.unstable_now(),typeof R=="function"?y.callback=R:y===s(h)&&o(h),K(Q)}else o(h);y=s(h)}if(y!==null)var ie=!0;else{var le=s(b);le!==null&&se(U,le.startTime-Q),ie=!1}return ie}finally{y=null,A=q,M=!1}}var J=!1,de=null,O=-1,_=5,te=-1;function be(){return!(n.unstable_now()-te<_)}function pe(){if(de!==null){var D=n.unstable_now();te=D;var Q=!0;try{Q=de(!0,D)}finally{Q?ke():(J=!1,de=null)}}else J=!1}var ke;if(typeof F=="function")ke=function(){F(pe)};else if(typeof MessageChannel<"u"){var Ie=new MessageChannel,me=Ie.port2;Ie.port1.onmessage=pe,ke=function(){me.postMessage(null)}}else ke=function(){C(pe,0)};function Le(D){de=D,J||(J=!0,ke())}function se(D,Q){O=C(function(){D(n.unstable_now())},Q)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(D){D.callback=null},n.unstable_continueExecution=function(){P||M||(P=!0,Le(W))},n.unstable_forceFrameRate=function(D){0>D||125<D?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):_=0<D?Math.floor(1e3/D):5},n.unstable_getCurrentPriorityLevel=function(){return A},n.unstable_getFirstCallbackNode=function(){return s(h)},n.unstable_next=function(D){switch(A){case 1:case 2:case 3:var Q=3;break;default:Q=A}var q=A;A=Q;try{return D()}finally{A=q}},n.unstable_pauseExecution=function(){},n.unstable_requestPaint=function(){},n.unstable_runWithPriority=function(D,Q){switch(D){case 1:case 2:case 3:case 4:case 5:break;default:D=3}var q=A;A=D;try{return Q()}finally{A=q}},n.unstable_scheduleCallback=function(D,Q,q){var w=n.unstable_now();switch(typeof q=="object"&&q!==null?(q=q.delay,q=typeof q=="number"&&0<q?w+q:w):q=w,D){case 1:var R=-1;break;case 2:R=250;break;case 5:R=1073741823;break;case 4:R=1e4;break;default:R=5e3}return R=q+R,D={id:f++,callback:Q,priorityLevel:D,startTime:q,expirationTime:R,sortIndex:-1},q>w?(D.sortIndex=q,t(b,D),s(h)===null&&D===s(b)&&(z?(E(O),O=-1):z=!0,se(U,q-w))):(D.sortIndex=R,t(h,D),P||M||(P=!0,Le(W))),D},n.unstable_shouldYield=be,n.unstable_wrapCallback=function(D){var Q=A;return function(){var q=A;A=Q;try{return D.apply(this,arguments)}finally{A=q}}}})(Il)),Il}var ap;function qb(){return ap||(ap=1,Sl.exports=Wb()),Sl.exports}/**
27 * @license React
28 * react-dom.production.min.js
29 *
30 * Copyright (c) Facebook, Inc. and its affiliates.
31 *
32 * This source code is licensed under the MIT license found in the
33 * LICENSE file in the root directory of this source tree.
34 */var np;function Ub(){if(np)return ha;np=1;var n=Ad(),t=qb();function s(e){for(var a="https://reactjs.org/docs/error-decoder.html?invariant="+e,i=1;i<arguments.length;i++)a+="&args[]="+encodeURIComponent(arguments[i]);return"Minified React error #"+e+"; visit "+a+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var o=new Set,d={};function p(e,a){c(e,a),c(e+"Capture",a)}function c(e,a){for(d[e]=a,e=0;e<a.length;e++)o.add(a[e])}var g=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),h=Object.prototype.hasOwnProperty,b=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f={},y={};function A(e){return h.call(y,e)?!0:h.call(f,e)?!1:b.test(e)?y[e]=!0:(f[e]=!0,!1)}function M(e,a,i,r){if(i!==null&&i.type===0)return!1;switch(typeof a){case"function":case"symbol":return!0;case"boolean":return r?!1:i!==null?!i.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function P(e,a,i,r){if(a===null||typeof a>"u"||M(e,a,i,r))return!0;if(r)return!1;if(i!==null)switch(i.type){case 3:return!a;case 4:return a===!1;case 5:return isNaN(a);case 6:return isNaN(a)||1>a}return!1}function z(e,a,i,r,u,m,k){this.acceptsBooleans=a===2||a===3||a===4,this.attributeName=r,this.attributeNamespace=u,this.mustUseProperty=i,this.propertyName=e,this.type=a,this.sanitizeURL=m,this.removeEmptyString=k}var C={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){C[e]=new z(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var a=e[0];C[a]=new z(a,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){C[e]=new z(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){C[e]=new z(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){C[e]=new z(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){C[e]=new z(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){C[e]=new z(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){C[e]=new z(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){C[e]=new z(e,5,!1,e.toLowerCase(),null,!1,!1)});var E=/[\-:]([a-z])/g;function F(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var a=e.replace(E,F);C[a]=new z(a,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var a=e.replace(E,F);C[a]=new z(a,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var a=e.replace(E,F);C[a]=new z(a,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){C[e]=new z(e,1,!1,e.toLowerCase(),null,!1,!1)}),C.xlinkHref=new z("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){C[e]=new z(e,1,!1,e.toLowerCase(),null,!0,!0)});function K(e,a,i,r){var u=C.hasOwnProperty(a)?C[a]:null;(u!==null?u.type!==0:r||!(2<a.length)||a[0]!=="o"&&a[0]!=="O"||a[1]!=="n"&&a[1]!=="N")&&(P(a,i,u,r)&&(i=null),r||u===null?A(a)&&(i===null?e.removeAttribute(a):e.setAttribute(a,""+i)):u.mustUseProperty?e[u.propertyName]=i===null?u.type===3?!1:"":i:(a=u.attributeName,r=u.attributeNamespace,i===null?e.removeAttribute(a):(u=u.type,i=u===3||u===4&&i===!0?"":""+i,r?e.setAttributeNS(r,a,i):e.setAttribute(a,i))))}var U=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,W=Symbol.for("react.element"),J=Symbol.for("react.portal"),de=Symbol.for("react.fragment"),O=Symbol.for("react.strict_mode"),_=Symbol.for("react.profiler"),te=Symbol.for("react.provider"),be=Symbol.for("react.context"),pe=Symbol.for("react.forward_ref"),ke=Symbol.for("react.suspense"),Ie=Symbol.for("react.suspense_list"),me=Symbol.for("react.memo"),Le=Symbol.for("react.lazy"),se=Symbol.for("react.offscreen"),D=Symbol.iterator;function Q(e){return e===null||typeof e!="object"?null:(e=D&&e[D]||e["@@iterator"],typeof e=="function"?e:null)}var q=Object.assign,w;function R(e){if(w===void 0)try{throw Error()}catch(i){var a=i.stack.trim().match(/\n( *(at )?)/);w=a&&a[1]||""}return`
35`+w+e}var ie=!1;function le(e,a){if(!e||ie)return"";ie=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(a)if(a=function(){throw Error()},Object.defineProperty(a.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(a,[])}catch(j){var r=j}Reflect.construct(e,[],a)}else{try{a.call()}catch(j){r=j}e.call(a.prototype)}else{try{throw Error()}catch(j){r=j}e()}}catch(j){if(j&&r&&typeof j.stack=="string"){for(var u=j.stack.split(`
36`),m=r.stack.split(`
37`),k=u.length-1,v=m.length-1;1<=k&&0<=v&&u[k]!==m[v];)v--;for(;1<=k&&0<=v;k--,v--)if(u[k]!==m[v]){if(k!==1||v!==1)do if(k--,v--,0>v||u[k]!==m[v]){var x=`
38`+u[k].replace(" at new "," at ");return e.displayName&&x.includes("<anonymous>")&&(x=x.replace("<anonymous>",e.displayName)),x}while(1<=k&&0<=v);break}}}finally{ie=!1,Error.prepareStackTrace=i}return(e=e?e.displayName||e.name:"")?R(e):""}function fe(e){switch(e.tag){case 5:return R(e.type);case 16:return R("Lazy");case 13:return R("Suspense");case 19:return R("SuspenseList");case 0:case 2:case 15:return e=le(e.type,!1),e;case 11:return e=le(e.type.render,!1),e;case 1:return e=le(e.type,!0),e;default:return""}}function ye(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case de:return"Fragment";case J:return"Portal";case _:return"Profiler";case O:return"StrictMode";case ke:return"Suspense";case Ie:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case be:return(e.displayName||"Context")+".Consumer";case te:return(e._context.displayName||"Context")+".Provider";case pe:var a=e.render;return e=e.displayName,e||(e=a.displayName||a.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case me:return a=e.displayName||null,a!==null?a:ye(e.type)||"Memo";case Le:a=e._payload,e=e._init;try{return ye(e(a))}catch{}}return null}function ce(e){var a=e.type;switch(e.tag){case 24:return"Cache";case 9:return(a.displayName||"Context")+".Consumer";case 10:return(a._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=a.render,e=e.displayName||e.name||"",a.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return a;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ye(a);case 8:return a===O?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof a=="function")return a.displayName||a.name||null;if(typeof a=="string")return a}return null}function Ae(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function we(e){var a=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(a==="checkbox"||a==="radio")}function He(e){var a=we(e)?"checked":"value",i=Object.getOwnPropertyDescriptor(e.constructor.prototype,a),r=""+e[a];if(!e.hasOwnProperty(a)&&typeof i<"u"&&typeof i.get=="function"&&typeof i.set=="function"){var u=i.get,m=i.set;return Object.defineProperty(e,a,{configurable:!0,get:function(){return u.call(this)},set:function(k){r=""+k,m.call(this,k)}}),Object.defineProperty(e,a,{enumerable:i.enumerable}),{getValue:function(){return r},setValue:function(k){r=""+k},stopTracking:function(){e._valueTracker=null,delete e[a]}}}}function un(e){e._valueTracker||(e._valueTracker=He(e))}function Gn(e){if(!e)return!1;var a=e._valueTracker;if(!a)return!0;var i=a.getValue(),r="";return e&&(r=we(e)?e.checked?"true":"false":e.value),e=r,e!==i?(a.setValue(e),!0):!1}function Ji(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function jr(e,a){var i=a.checked;return q({},a,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:i??e._wrapperState.initialChecked})}function tu(e,a){var i=a.defaultValue==null?"":a.defaultValue,r=a.checked!=null?a.checked:a.defaultChecked;i=Ae(a.value!=null?a.value:i),e._wrapperState={initialChecked:r,initialValue:i,controlled:a.type==="checkbox"||a.type==="radio"?a.checked!=null:a.value!=null}}function iu(e,a){a=a.checked,a!=null&&K(e,"checked",a,!1)}function Cr(e,a){iu(e,a);var i=Ae(a.value),r=a.type;if(i!=null)r==="number"?(i===0&&e.value===""||e.value!=i)&&(e.value=""+i):e.value!==""+i&&(e.value=""+i);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}a.hasOwnProperty("value")?Dr(e,a.type,i):a.hasOwnProperty("defaultValue")&&Dr(e,a.type,Ae(a.defaultValue)),a.checked==null&&a.defaultChecked!=null&&(e.defaultChecked=!!a.defaultChecked)}function su(e,a,i){if(a.hasOwnProperty("value")||a.hasOwnProperty("defaultValue")){var r=a.type;if(!(r!=="submit"&&r!=="reset"||a.value!==void 0&&a.value!==null))return;a=""+e._wrapperState.initialValue,i||a===e.value||(e.value=a),e.defaultValue=a}i=e.name,i!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,i!==""&&(e.name=i)}function Dr(e,a,i){(a!=="number"||Ji(e.ownerDocument)!==e)&&(i==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+i&&(e.defaultValue=""+i))}var qt=Array.isArray;function it(e,a,i,r){if(e=e.options,a){a={};for(var u=0;u<i.length;u++)a["$"+i[u]]=!0;for(i=0;i<e.length;i++)u=a.hasOwnProperty("$"+e[i].value),e[i].selected!==u&&(e[i].selected=u),u&&r&&(e[i].defaultSelected=!0)}else{for(i=""+Ae(i),a=null,u=0;u<e.length;u++){if(e[u].value===i){e[u].selected=!0,r&&(e[u].defaultSelected=!0);return}a!==null||e[u].disabled||(a=e[u])}a!==null&&(a.selected=!0)}}function zr(e,a){if(a.dangerouslySetInnerHTML!=null)throw Error(s(91));return q({},a,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ru(e,a){var i=a.value;if(i==null){if(i=a.children,a=a.defaultValue,i!=null){if(a!=null)throw Error(s(92));if(qt(i)){if(1<i.length)throw Error(s(93));i=i[0]}a=i}a==null&&(a=""),i=a}e._wrapperState={initialValue:Ae(i)}}function ou(e,a){var i=Ae(a.value),r=Ae(a.defaultValue);i!=null&&(i=""+i,i!==e.value&&(e.value=i),a.defaultValue==null&&e.defaultValue!==i&&(e.defaultValue=i)),r!=null&&(e.defaultValue=""+r)}function lu(e){var a=e.textContent;a===e._wrapperState.initialValue&&a!==""&&a!==null&&(e.value=a)}function du(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Tr(e,a){return e==null||e==="http://www.w3.org/1999/xhtml"?du(a):e==="http://www.w3.org/2000/svg"&&a==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Zi,uu=(function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(a,i,r,u){MSApp.execUnsafeLocalFunction(function(){return e(a,i,r,u)})}:e})(function(e,a){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=a;else{for(Zi=Zi||document.createElement("div"),Zi.innerHTML="<svg>"+a.valueOf().toString()+"</svg>",a=Zi.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;a.firstChild;)e.appendChild(a.firstChild)}});function Ut(e,a){if(a){var i=e.firstChild;if(i&&i===e.lastChild&&i.nodeType===3){i.nodeValue=a;return}}e.textContent=a}var _t={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ff=["Webkit","ms","Moz","O"];Object.keys(_t).forEach(function(e){Ff.forEach(function(a){a=a+e.charAt(0).toUpperCase()+e.substring(1),_t[a]=_t[e]})});function cu(e,a,i){return a==null||typeof a=="boolean"||a===""?"":i||typeof a!="number"||a===0||_t.hasOwnProperty(e)&&_t[e]?(""+a).trim():a+"px"}function mu(e,a){e=e.style;for(var i in a)if(a.hasOwnProperty(i)){var r=i.indexOf("--")===0,u=cu(i,a[i],r);i==="float"&&(i="cssFloat"),r?e.setProperty(i,u):e[i]=u}}var Wf=q({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Er(e,a){if(a){if(Wf[e]&&(a.children!=null||a.dangerouslySetInnerHTML!=null))throw Error(s(137,e));if(a.dangerouslySetInnerHTML!=null){if(a.children!=null)throw Error(s(60));if(typeof a.dangerouslySetInnerHTML!="object"||!("__html"in a.dangerouslySetInnerHTML))throw Error(s(61))}if(a.style!=null&&typeof a.style!="object")throw Error(s(62))}}function Rr(e,a){if(e.indexOf("-")===-1)return typeof a.is=="str
38ing";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Nr=null;function Gr(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Or=null,st=null,rt=null;function pu(e){if(e=gi(e)){if(typeof Or!="function")throw Error(s(280));var a=e.stateNode;a&&(a=vs(a),Or(e.stateNode,e.type,a))}}function gu(e){st?rt?rt.push(e):rt=[e]:st=e}function hu(){if(st){var e=st,a=rt;if(rt=st=null,pu(e),a)for(e=0;e<a.length;e++)pu(a[e])}}function fu(e,a){return e(a)}function ku(){}var Br=!1;function bu(e,a,i){if(Br)return e(a,i);Br=!0;try{return fu(e,a,i)}finally{Br=!1,(st!==null||rt!==null)&&(ku(),hu())}}function Ht(e,a){var i=e.stateNode;if(i===null)return null;var r=vs(i);if(r===null)return null;i=r[a];e:switch(a){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(e=e.type,r=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!r;break e;default:e=!1}if(e)return null;if(i&&typeof i!="function")throw Error(s(231,a,typeof i));return i}var Kr=!1;if(g)try{var $t={};Object.defineProperty($t,"passive",{get:function(){Kr=!0}}),window.addEventListener("test",$t,$t),window.removeEventListener("test",$t,$t)}catch{Kr=!1}function qf(e,a,i,r,u,m,k,v,x){var j=Array.prototype.slice.call(arguments,3);try{a.apply(i,j)}catch(G){this.onError(G)}}var Qt=!1,Xi=null,Yi=!1,Vr=null,Uf={onError:function(e){Qt=!0,Xi=e}};function _f(e,a,i,r,u,m,k,v,x){Qt=!1,Xi=null,qf.apply(Uf,arguments)}function Hf(e,a,i,r,u,m,k,v,x){if(_f.apply(this,arguments),Qt){if(Qt){var j=Xi;Qt=!1,Xi=null}else throw Error(s(198));Yi||(Yi=!0,Vr=j)}}function On(e){var a=e,i=e;if(e.alternate)for(;a.return;)a=a.return;else{e=a;do a=e,(a.flags&4098)!==0&&(i=a.return),e=a.return;while(e)}return a.tag===3?i:null}function yu(e){if(e.tag===13){var a=e.memoizedState;if(a===null&&(e=e.alternate,e!==null&&(a=e.memoizedState)),a!==null)return a.dehydrated}return null}function vu(e){if(On(e)!==e)throw Error(s(188))}function $f(e){var a=e.alternate;if(!a){if(a=On(e),a===null)throw Error(s(188));return a!==e?null:e}for(var i=e,r=a;;){var u=i.return;if(u===null)break;var m=u.alternate;if(m===null){if(r=u.return,r!==null){i=r;continue}break}if(u.child===m.child){for(m=u.child;m;){if(m===i)return vu(u),e;if(m===r)return vu(u),a;m=m.sibling}throw Error(s(188))}if(i.return!==r.return)i=u,r=m;else{for(var k=!1,v=u.child;v;){if(v===i){k=!0,i=u,r=m;break}if(v===r){k=!0,r=u,i=m;break}v=v.sibling}if(!k){for(v=m.child;v;){if(v===i){k=!0,i=m,r=u;break}if(v===r){k=!0,r=m,i=u;break}v=v.sibling}if(!k)throw Error(s(189))}}if(i.alternate!==r)throw Error(s(190))}if(i.tag!==3)throw Error(s(188));return i.stateNode.current===i?e:a}function Au(e){return e=$f(e),e!==null?xu(e):null}function xu(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var a=xu(e);if(a!==null)return a;e=e.sibling}return null}var Lu=t.unstable_scheduleCallback,Pu=t.unstable_cancelCallback,Qf=t.unstable_shouldYield,Jf=t.unstable_requestPaint,Be=t.unstable_now,Zf=t.unstable_getCurrentPriorityLevel,Fr=t.unstable_ImmediatePriority,wu=t.unstable_UserBlockingPriority,es=t.unstable_NormalPriority,Xf=t.unstable_LowPriority,Su=t.unstable_IdlePriority,as=null,Ka=null;function Yf(e){if(Ka&&typeof Ka.onCommitFiberRoot=="function")try{Ka.onCommitFiberRoot(as,e,void 0,(e.current.flags&128)===128)}catch{}}var Ca=Math.clz32?Math.clz32:nk,ek=Math.log,ak=Math.LN2;function nk(e){return e>>>=0,e===0?32:31-(ek(e)/ak|0)|0}var ns=64,ts=4194304;function Jt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function is(e,a){var i=e.pendingLanes;if(i===0)return 0;var r=0,u=e.suspendedLanes,m=e.pingedLanes,k=i&268435455;if(k!==0){var v=k&~u;v!==0?r=Jt(v):(m&=k,m!==0&&(r=Jt(m)))}else k=i&~u,k!==0?r=Jt(k):m!==0&&(r=Jt(m));if(r===0)return 0;if(a!==0&&a!==r&&(a&u)===0&&(u=r&-r,m=a&-a,u>=m||u===16&&(m&4194240)!==0))return a;
vendor: 26,985 bytes, lines 38-39
38if((r&4)!==0&&(r|=i&16),a=e.entangledLanes,a!==0)for(e=e.entanglements,a&=r;0<a;)i=31-Ca(a),u=1<<i,r|=e[i],a&=~u;return r}function tk(e,a){switch(e){case 1:case 2:case 4:return a+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ik(e,a){for(var i=e.suspendedLanes,r=e.pingedLanes,u=e.expirationTimes,m=e.pendingLanes;0<m;){var k=31-Ca(m),v=1<<k,x=u[k];x===-1?((v&i)===0||(v&r)!==0)&&(u[k]=tk(v,a)):x<=a&&(e.expiredLanes|=v),m&=~v}}function Wr(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Iu(){var e=ns;return ns<<=1,(ns&4194240)===0&&(ns=64),e}function qr(e){for(var a=[],i=0;31>i;i++)a.push(e);return a}function Zt(e,a,i){e.pendingLanes|=a,a!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,a=31-Ca(a),e[a]=i}function sk(e,a){var i=e.pendingLanes&~a;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=a,e.mutableReadLanes&=a,e.entangledLanes&=a,a=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<i;){var u=31-Ca(i),m=1<<u;a[u]=0,r[u]=-1,e[u]=-1,i&=~m}}function Ur(e,a){var i=e.entangledLanes|=a;for(e=e.entanglements;i;){var r=31-Ca(i),u=1<<r;u&a|e[r]&a&&(e[r]|=a),i&=~u}}var Se=0;function Mu(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var ju,_r,Cu,Du,zu,Hr=!1,ss=[],cn=null,mn=null,pn=null,Xt=new Map,Yt=new Map,gn=[],rk="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Tu(e,a){switch(e){case"focusin":case"focusout":cn=null;break;case"dragenter":case"dragleave":mn=null;break;case"mouseover":case"mouseout":pn=null;break;case"pointerover":case"pointerout":Xt.delete(a.pointerId);break;case"gotpointercapture":case"lostpointercapture":Yt.delete(a.pointerId)}}function ei(e,a,i,r,u,m){return e===null||e.nativeEvent!==m?(e={blockedOn:a,domEventName:i,eventSystemFlags:r,nativeEvent:m,targetContainers:[u]},a!==null&&(a=gi(a),a!==null&&_r(a)),e):(e.eventSystemFlags|=r,a=e.targetContainers,u!==null&&a.indexOf(u)===-1&&a.push(u),e)}function ok(e,a,i,r,u){switch(a){case"focusin":return cn=ei(cn,e,a,i,r,u),!0;case"dragenter":return mn=ei(mn,e,a,i,r,u),!0;case"mouseover":return pn=ei(pn,e,a,i,r,u),!0;case"pointerover":var m=u.pointerId;return Xt.set(m,ei(Xt.get(m)||null,e,a,i,r,u)),!0;case"gotpointercapture":return m=u.pointerId,Yt.set(m,ei(Yt.get(m)||null,e,a,i,r,u)),!0}return!1}function Eu(e){var a=Bn(e.target);if(a!==null){var i=On(a);if(i!==null){if(a=i.tag,a===13){if(a=yu(i),a!==null){e.blockedOn=a,zu(e.priority,function(){Cu(i)});return}}else if(a===3&&i.stateNode.current.memoizedState.isDehydrated){e.blockedOn=i.tag===3?i.stateNode.containerInfo:null;return}}}e.blockedOn=null}function rs(e){if(e.blockedOn!==null)return!1;for(var a=e.targetContainers;0<a.length;){var i=Qr(e.domEventName,e.eventSystemFlags,a[0],e.nativeEvent);if(i===null){i=e.nativeEvent;var r=new i.constructor(i.type,i);Nr=r,i.target.dispatchEvent(r),Nr=null}else return a=gi(i),a!==null&&_r(a),e.blockedOn=i,!1;a.shift()}return!0}function Ru(e,a,i){rs(e)&&i.delete(a)}function lk(){Hr=!1,cn!==null&&rs(cn)&&(cn=null),mn!==null&&rs(mn)&&(mn=null),pn!==null&&rs(pn)&&(pn=null),Xt.forEach(Ru),Yt.forEach(Ru)}function ai(e,a){e.blockedOn===a&&(e.blockedOn=null,Hr||(Hr=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,lk)))}function ni(e){function a(u){return ai(u,e)}if(0<ss.length){ai(ss[0],e);for(var i=1;i<ss.length;i++){var r=ss[i];r.blockedOn===e&&(r.blockedOn=null)}}for(cn!==null&&ai(cn,e),mn!==null&&ai(mn,e),pn!==null&&ai(pn,e),Xt.forEach(a),Yt.forEach(a),i=0;i<gn.length;i++)r=gn[i],r.blockedOn===e&&(r.blockedOn=null);for(;0<gn.length&&(i=gn[0],i.blockedOn===null);)Eu(i),i.blockedOn===null&&gn.shift()}var ot=U.ReactCurrentBatchConfig,os=!0;function dk(e,a,i,r){var u=Se,m=ot.transition;ot.transition=null;try{Se=1,$r(e,a,i,r)}finally{Se=u,ot.transition=m}}function uk(e,a,i,r){var u=Se,m=ot.transition;ot.transition=null;try{Se=4,$r(e,a,i,r)}finally{Se=u,ot.transition=m}}function $r(e,a,i,r){if(os){var u=Qr(e,a,i,r);if(u===null)po(e,a,r,ls,i),Tu(e,r);else if(ok(u,e,a,i,r))r.stopPropagation();else if(Tu(e,r),a&4&&-1<rk.indexOf(e)){for(;u!==null;){var m=gi(u);if(m!==null&&ju(m),m=Qr(e,a,i,r),m===null&&po(e,a,r,ls,i),m===u)break;u=m}u!==null&&r.stopPropagation()}else po(e,a,r,null,i)}}var ls=null;function Qr(e,a,i,r){if(ls=null,e=Gr(r),e=Bn(e),e!==null)if(a=On(e),a===null)e=null;else if(i=a.tag,i===13){if(e=yu(a),e!==null)return e;e=null}else if(i===3){if(a.stateNode.current.memoizedState.isDehydrated)return a.tag===3?a.stateNode.containerInfo:null;e=null}else a!==e&&(e=null);return ls=e,null}function Nu(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Zf()){case Fr:return 1;case wu:return 4;case es:case Xf:return 16;case Su:return 536870912;default:return 16}default:return 16}}var hn=null,Jr=null,ds=null;function Gu(){if(ds)return ds;var e,a=Jr,i=a.length,r,u="value"in hn?hn.value:hn.textContent,m=u.length;for(e=0;e<i&&a[e]===u[e];e++);var k=i-e;for(r=1;r<=k&&a[i-r]===u[m-r];r++);return ds=u.slice(e,1<r?1-r:void 0)}function us(e){var a=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&a===13&&(e=13)):e=a,e===10&&(e=13),32<=e||e===13?e:0}function cs(){return!0}function Ou(){return!1}function fa(e){function a(i,r,u,m,k){this._reactName=i,this._targetInst=u,this.type=r,this.nativeEvent=m,this.target=k,this.currentTarget=null;for(var v in e)e.hasOwnProperty(v)&&(i=e[v],this[v]=i?i(m):m[v]);return this.isDefaultPrevented=(m.defaultPrevented!=null?m.defaultPrevented:m.returnValue===!1)?cs:Ou,this.isPropagationStopped=Ou,this}return q(a.prototype,{preventDefault:function(){this.defaultPrevented=!0;var i=this.nativeEvent;i&&(i.preventDefault?i.preventDefault():typeof i.returnValue!="unknown"&&(i.returnValue=!1),this.isDefaultPrevented=cs)},stopPropagation:function(){var i=this.nativeEvent;i&&(i.stopPropagation?i.stopPropagation():typeof i.cancelBubble!="unknown"&&(i.cancelBubble=!0),this.isPropagationStopped=cs)},persist:function(){},isPersistent:cs}),a}var lt={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Zr=fa(lt),ti=q({},lt,{view:0,detail:0}),ck=fa(ti),Xr,Yr,ii,ms=q({},ti,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:ao,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==ii&&(ii&&e.type==="mousemove"?(Xr=e.screenX-ii.screenX,Yr=e.screenY-ii.screenY):Yr=Xr=0,ii=e),Xr)},movementY:function(e){return"movementY"in e?e.movementY:Yr}}),Bu=fa(ms),mk=q({},ms,{dataTransfer:0}),pk=fa(mk),gk=q({},ti,{relatedTarget:0}),eo=fa(gk),hk=q({},lt,{animationName:0,elapsedTime:0,pseudoElement:0}),fk=fa(hk),kk=q({},lt,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),bk=fa(kk),yk=q({},lt,{data:0}),Ku=fa(yk),vk={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Ak={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},xk={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Lk(e){var a=this.nativeEvent;return a.getModifierState?a.getModifierState(e):(e=xk[e])?!!a[e]:!1}function ao(){return Lk}var Pk=q({},ti,{key:function(e){if(e.key){var a=vk[e.key]||e.key;if(a!=="Unidentified")return a}return e.type==="keypress"?(e=us(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Ak[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:ao,charCode:function(e){return e.type==="keypress"?us(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?us(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),wk=fa(Pk),Sk=q({},ms,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Vu=fa(Sk),Ik=q({},ti,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:ao}),Mk=fa(Ik),jk=q({},lt,{propertyName:0,elapsedTime:0,pseudoElement:0}),Ck=fa(jk),Dk=q({},ms,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),zk=fa(Dk),Tk=[9,13,27,32],no=g&&"CompositionEvent"in window,si=null;g&&"documentMode"in document&&(si=document.documentMode);var Ek=g&&"TextEvent"in window&&!si,Fu=g&&(!no||si&&8<si&&11>=si),Wu=" ",qu=!1;function Uu(e,a){switch(e){case"keyup":return Tk.indexOf(a.keyCode)!==-1;case"keydown":return a.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function _u(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var dt=!1;function Rk(e,a){switch(e){case"compositionend":return _u(a);case"keypress":return a.which!==32?null:(qu=!0,Wu);case"textInput":return e=a.data,e===Wu&&qu?null:e;default:return null}}function Nk(e,a){if(dt)return e==="compositionend"||!no&&Uu(e,a)?(e=Gu(),ds=Jr=hn=null,dt=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(a.ctrlKey||a.altKey||a.metaKey)||a.ctrlKey&&a.altKey){if(a.char&&1<a.char.length)return a.char;if(a.which)return String.fromCharCode(a.which)}return null;case"compositionend":return Fu&&a.locale!=="ko"?null:a.data;default:return null}}var Gk={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Hu(e){var a=e&&e.nodeName&&e.nodeName.toLowerCase();return a==="input"?!!Gk[e.type]:a==="textarea"}function $u(e,a,i,r){gu(r),a=ks(a,"onChange"),0<a.length&&(i=new Zr("onChange","change",null,i,r),e.push({event:i,listeners:a}))}var ri=null,oi=null;function Ok(e){mc(e,0)}function ps(e){var a=gt(e);if(Gn(a))return e}function Bk(e,a){if(e==="change")return a}var Qu=!1;if(g){var to;if(g){var io="oninput"in document;if(!io){var Ju=document.createElement("div");Ju.setAttribute("oninput","return;"),io=typeof Ju.oninput=="function"}to=io}else to=!1;Qu=to&&(!document.documentMode||9<document.documentMode)}function Zu(){ri&&(ri.detachEvent("onpropertychange",Xu),oi=ri=null)}function Xu(e){if(e.propertyName==="value"&&ps(oi)){var a=[];$u(a,oi,e,Gr(e)),bu(Ok,a)}}function Kk(e,a,i){e==="focusin"?(Zu(),ri=a,oi=i,ri.attachEvent("onpropertychange",Xu)):e==="focusout"&&Zu()}function Vk(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return ps(oi)}function Fk(e,a){if(e==="click")return ps(a)}function Wk(e,a){if(e==="input"||e==="change")return ps(a)}function qk(e,a){return e===a&&(e!==0||1/e===1/a)||e!==e&&a!==a}var Da=typeof Object.is=="function"?Object.is:qk;function li(e,a){if(Da(e,a))return!0;if(typeof e!="object"||e===null||typeof a!="object"||a===null)return!1;var i=Object.keys(e),r=Object.keys(a);if(i.length!==r.length)return!1;for(r=0;r<i.length;r++){var u=i[r];if(!h.call(a,u)||!Da(e[u],a[u]))return!1}return!0}function Yu(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ec(e,a){var i=Yu(e);e=0;for(var r;i;){if(i.nodeType===3){if(r=e+i.textContent.length,e<=a&&r>=a)return{node:i,offset:a-e};e=r}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=Yu(i)}}function ac(e,a){return e&&a?e===a?!0:e&&e.nodeType===3?!1:a&&a.nodeType===3?ac(e,a.parentNode):"contains"in e?e.contains(a):e.compareDocumentPosition?!!(e.compareDocumentPosition(a)&16):!1:!1}function nc(){for(var e=window,a=Ji();a instanceof e.HTMLIFrameElement;){try{var i=typeof a.contentWindow.location.href=="string"}catch{i=!1}if(i)e=a.contentWindow;else break;a=Ji(e.document)}return a}function so(e){var a=e&&e.nodeName&&e.nodeName.toLowerCase();return a&&(a==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||a==="textarea"||e.contentEditable==="true")}function Uk(e){var a=nc(),i=e.focusedElem,r=e.selectionRange;if(a!==i&&i&&i.ownerDocument&&ac(i.ownerDocument.documentElement,i)){if(r!==null&&so(i)){if(a=r.start,e=r.end,e===void 0&&(e=a),"selectionStart"in i)i.selectionStart=a,i.selectionEnd=Math.min(e,i.value.length);else if(e=(a=i.ownerDocument||document)&&a.defaultView||window,e.getSelection){e=e.getSelection();var u=i.textContent.length,m=Math.min(r.start,u);r=r.end===void 0?m:Math.min(r.end,u),!e.extend&&m>r&&(u=r,r=m,m=u),u=ec(i,m);var k=ec(i,r);u&&k&&(e.rangeCount!==1||e.anchorNode!==u.node||e.anchorOffset!==u.offset||e.focusNode!==k.node||e.focusOffset!==k.offset)&&(a=a.createRange(),a.setStart(u.node,u.offset),e.removeAllRanges(),m>r?(e.addRange(a),e.extend(k.node,k.offset)):(a.setEnd(k.node,k.offset),e.addRange(a)))}}for(a=[],e=i;e=e.parentNode;)e.nodeType===1&&a.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof i.focus=="function"&&i.focus(),i=0;i<a.length;i++)e=a[i],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var _k=g&&"documentMode"in document&&11>=document.documentMode,ut=null,ro=null,di=null,oo=!1;function tc(e,a,i){var r=i.window===i?i.document:i.nodeType===9?i:i.ownerDocument;oo||ut==null||ut!==Ji(r)||(r=ut,"selectionStart"in r&&so(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),di&&li(di,r)||(di=r,r=ks(ro,"onSelect"),0<r.length&&(a=new Zr("onSelect","select",null,a,i),e.push({event:a,listeners:r}),a.target=ut)))}function gs(e,a){var i={};return i[e.toLowerCase()]=a.toLowerCase(),i["Webkit"+e]="webkit"+a,i["Moz"+e]="moz"+a,i}var ct={animationend:gs("Animation","AnimationEnd"),animationiteration:gs("Animation","AnimationIteration"),animationstart:gs("Animation","AnimationStart"),transitionend:gs("Transition","TransitionEnd")},lo={},ic={};g&&(ic=document.createElement("div").style,"AnimationEvent"in window||(delete ct.animationend.animation,delete ct.animationiteration.animation,delete ct.animationstart.animation),"TransitionEvent"in window||delete ct.transitionend.transition);function hs(e){if(lo[e])return lo[e];if(!ct[e])return e;var a=ct[e],i;for(i in a)if(a.hasOwnProperty(i)&&i in ic)return lo[e]=a[i];return e}var sc=hs("animationend"),rc=hs("animationiteration"),oc=hs("animationstart"),lc=hs("transitionend"),dc=new Map,uc="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function fn(e,a){dc.set(e,a),p(a,[e])}for(var uo=0;uo<uc.length;uo++){var co=uc[uo],Hk=co.toLowerCase(),$k=co[0].toUpperCase()+co.slice(1);fn(Hk,"on"+$k)}fn(sc,"onAnimationEnd"),fn(rc,"onAnimationIteration"),fn(oc,"onAnimationStart"),fn("dblclick","onDoubleClick"),fn("focusin","onFocus"),fn("focusout","onBlur"),fn(lc,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),p("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),p("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),p("onBeforeInput",["compositionend","keypress","textInput","paste"]),p("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),p("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),p("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var ui="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Qk=new Set("cancel close invalid load scroll toggle".split(" ").concat(ui));function cc(e,a,i){var r=e.type||"unknown-event";e.currentTarget=i,Hf(r,a,void 0,e),e.currentTarget=null}function mc(e,a){a=(a&4)!==0;for(var i=0;i<e.length;i++){var r=e[i],u=r.event;r=r.listeners;e:{var m=void 0;if(a)for(var k=r.length-1;0<=k;k--){var v=r[k],x=v.instance,j=v.currentTarget;if(v=v.listener,x!==m&&u.isPropagationStopped())break e;cc(u,v,j),m=x}else for(k=0;k<r.length;k++){if(v=r[k],x=v.instance,j=v.currentTarget,v=v.listener,x!==m&&u.isPropagationStopped())break e;cc(u,v,j),m=x}}}if(Yi)throw e=Vr,Yi=!1,Vr=null,e}function je(e,a){var i=a[yo];i===void 0&&(i=a[yo]=new Set);var r=e+"__bubble";i.has(r)||(pc(a,e,2,!1),i.add(r))}function mo(e,a,i){var r=0;a&&(r|=4),pc(i,e,r,a)}var fs="_reactListening"+Math.random().toString(36).slice(2);function ci(e){if(!e[fs]){e[fs]=!0,o.forEach(function(i){i!=="selectionchange"&&(Qk.has(i)||mo(i,!1,e),mo(i,!0,e))});var a=e.nodeType===9?e:e.ownerDocument;a===null||a[fs]||(a[fs]=!0,mo("selectionchange",!1,a))}}function pc(e,a,i,r){switch(Nu(a)){case 1:var u=dk;break;case 4:u=uk;break;default:u=$r}i=u.bind(null,a,i,e),u=void 0,!Kr||a!=="touchstart"&&a!=="touchmove"&&a!=="wheel"||(u=!0),r?u!==void 0?e.addEventListener(a,i,{capture:!0,passive:u}):e.addEventListener(a,i,!0):u!==void 0?e.addEventListener(a,i,{passive:u}):e.addEventListener(a,i,!1)}function po(e,a,i,r,u){var m=r;if((a&1)===0&&(a&2)===0&&r!==null)e:for(;;){if(r===null)return;var k=r.tag;if(k===3||k===4){var v=r.stateNode.containerInfo;if(v===u||v.nodeType===8&&v.parentNode===u)break;if(k===4)for(k=r.return;k!==null;){var x=k.tag;if((x===3||x===4)&&(x=k.stateNode.containerInfo,x===u||x.nodeType===8&&x.parentNode===u))return;k=k.return}for(;v!==null;){if(k=Bn(v),k===null)return;if(x=k.tag,x===5||x===6){r=m=k;continue e}v=v.parentNode}}r=r.return}bu(function(){var j=m,G=Gr(i),B=[];e:{var N=dc.get(e);if(N!==void 0){var H=Zr,Z=e;switch(e){case"keypress":if(us(i)===0)break e;case"keydown":case"keyup":H=wk;break;case"focusin":Z="focus",H=eo;break;case"focusout":Z="blur",H=eo;break;case"beforeblur":case"afterblur":H=eo;break;case"click":if(i.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":H=Bu;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":H=pk;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":H=Mk;break;case sc:case rc:case oc:H=fk;break;case lc:H=Ck;break;case"scroll":H=ck;break;case"wheel":H=zk;break;case"copy":case"cut":case"paste":H=bk;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":H=Vu}var ae=(a&4)!==0,Ke=!ae&&e==="scroll",S=ae?N!==null?N+"Capture":null:N;ae=[];for(var L=j,I;L!==null;){I=L;var V=I.stateNode;if(I.tag===5&&V!==null&&(I=V,S!==null&&(V=Ht(L,S),V!=null&&ae.push(mi(L,V,I)))),Ke)break;L=L.return}0<ae.length&&(N=new H(N,Z,null,i,G),B.push({event:N,listeners:ae}))}}if((a&7)===0){e:{if(N=e==="mouseover"||e==="pointerover",H=e==="mouseout"||e==="pointerout",N&&i!==Nr&&(Z=i.relatedTarget||i.fromElement)&&(Bn(Z)||Z[Qa]))break e;if((H||N)&&(N=G.window===G?G:(N=G.ownerDocument)?N.defaultView||N.parentWindow:window,H?(Z=i.relatedTarget||i.toElement,H=j,Z=Z?Bn(Z):null,Z!==null&&(Ke=On(Z),Z!==Ke||Z.tag!==5&&Z.tag!==6)&&(Z=null)):(H=null,Z=j),H!==Z)){if(ae=Bu,V="onMouseLeave",S="onMouseEnter",L="mouse",(e==="pointerout"||e==="pointerover")&&(ae=Vu,V="onPointerLeave",S="onPointerEnter",L="pointer"),Ke=H==null?N:gt(H),I=Z==null?N:gt(Z),N=new ae(V,L+"leave",H,i,G),N.target=Ke,N.relatedTarget=I,V=null,Bn(G)===j&&(ae=new ae(S,L+"enter",Z,i,G),ae.target=I,ae.relatedTarget=Ke,V=ae),Ke=V,H&&Z)a:{for(ae=H,S=Z,L=0,I=ae;I;I=mt(I))L++;for(I=0,V=S;V;V=mt(V))I++;for(;0<L-I;)ae=mt(ae),L--;for(;0<I-L;)S=mt(S),I--;for(;L--;){if(ae===S||S!==null&&ae===S.alternate)break a;ae=mt(ae),S=mt(S)}ae=null}else ae=null;H!==null&&gc(B,N,H,ae,!1),Z!==null&&Ke!==null&&gc(B,Ke,Z,ae,!0)}}e:{if(N=j?gt(j):window,H=N.nodeName&&N.nodeName.toLowerCase(),H==="select"||H==="input"&&N.type==="file")var ne=Bk;else if(Hu(N))if(Qu)ne=Wk;else{ne=Vk;var re=Kk}else(H=N.nodeName)&&H.toLowerCase()==="input"&&(N.type==="checkbox"||N.type==="radio")&&(ne=Fk);if(ne&&(ne=ne(e,j))){$u(B,ne,i,G);break e}re&&re(e,N,j),e==="focusout"&&(re=N._wrapperState)&&re.controlled&&N.type==="number"&&Dr(N,"number",N.value)}switch(re=j?gt(j):window,e){case"focusin":(Hu(re)||re.contentEditable==="true")&&(ut=re,ro=j,di=null);break;case"focusout":di=ro=ut=null;break;case"mousedown":oo=!0;break;case"contextmenu":case"mouseup":case"dragend":oo=!1,tc(B,i,G);break;case"selectionchange":if(_k)break;case"keydown":case"keyup":tc(B,i,G)}var oe;if(no)e:{switch(e){case"compositionstart":var ue="onCompositionStart";break e;case"compositionend":ue="onCompositionEnd";break e;case"compositionupdate":ue="onCompositionUpdate";break e}ue=void 0}else dt?Uu(e,i)&&(ue="onCompositionEnd"):e==="keydown"&&i.keyCode===229&&(ue="onCompositionStart");ue&&(Fu&&i.locale!=="ko"&&(dt||ue!=="onCompositionStart"?ue==="onCompositionEnd"&&dt&&(oe=Gu()):(hn=G,Jr="value"in hn?hn.value:hn.textContent,dt=!0)),re=ks(j,ue),0<re.length&&(ue=new Ku(ue,e,null,i,G),B.push({event:ue,listeners:re}),oe?ue.data=oe:(oe=_u(i),oe!==null&&(ue.data=oe)))),(oe=Ek?Rk(e,i):Nk(e,i))&&(j=ks(j,"onBeforeInput"),0<j.length&&(G=new Ku("onBeforeInput","beforeinput",null,i,G),B.push({event:G,listeners:j}),G.data=oe))}mc(B,a)})}function mi(e,a,i){return{instance:e,listener:a,currentTarget:i}}function ks(e,a){for(var i=a+"Capture",r=[];e!==null;){var u=e,m=u.stateNode;u.tag===5&&m!==null&&(u=m,m=Ht(e,i),m!=null&&r.unshift(mi(e,m,u)),m=Ht(e,a),m!=null&&r.push(mi(e,m,u))),e=e.return}return r}function mt(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function gc(e,a,i,r,u){for(var m=a._reactName,k=[];i!==null&&i!==r;){var v=i,x=v.alternate,j=v.stateNode;if(x!==null&&x===r)break;v.tag===5&&j!==null&&(v=j,u?(x=Ht(i,m),x!=null&&k.unshift(mi(i,x,v))):u||(x=Ht(i,m),x!=null&&k.push(mi(i,x,v)))),i=i.return}k.length!==0&&e.push({event:a,listeners:k})}var Jk=/\r\n?/g,Zk=/\u0000|\uFFFD/g;function hc(e){return(typeof e=="string"?e:""+e).replace(Jk,`
39`).replace(Zk,"")}function bs(e,a,i){if(a=hc(a),hc(e)!==a&&i)throw Error(s(425))}function ys(){}var go=null,ho=null;function fo(e,a){return e==="textarea"||e==="noscript"||typeof a.children=="string"||typeof a.children=="number"||typeof a.dangerouslySetInnerHTML=="object"&&a.dangerouslySetInnerHTML!==null&&a.dangerouslySetInnerHTML.__html!=null}var ko=typeof setTimeout=="function"?setTimeout:void 0,Xk=typeof clearTimeout=="function"?clearTimeout:void 0,fc=typeof Promise=="function"?Promise:void 0,Yk=typeof queueMicrotask=="function"?queueMicrotask:typeof fc<"u"?function(e){return fc.resolve(null).then(e).catch(eb)}:ko;function eb(e){setTimeout(function(){throw e})}function bo(e,a){var i=a,r=0;do{var u=i.nextSibling;if(e.removeChild(i),u&&u.nodeType===8)if(i=u.data,i==="/$"){if(r===0){e.removeChild(u),ni(a);return}r--}else i!=="$"&&i!=="$?"&&i!=="$!"||r++;i=u}while(i);ni(a)}function kn(e){for(;e!=null;e=e.nextSibling){var a=e.nodeType;if(a===1||a===3)break;if(a===8){if(a=e.data,a==="$"||a==="$!"||a==="$?")break;if(a==="/$")return null}}return e}function kc(e){e=e.previousSibling;for(var a=0;e;){if(e.nodeType===8){var i=e.data;if(i==="$"||i==="$!"||i==="$?"){if(a===0)return e;a--}else i==="/$"&&a++}e=e.previousSibling}return null}var pt=Math.random().toString(36).slice(2),Va="__reactFiber$"+pt,pi="__reactProps$"+pt,Qa="__reactContainer$"+pt,yo="__reactEvents$"+pt,ab="__reactListeners$"+pt,nb="__reactHandles$"+pt;function Bn(e){var a=e[Va];if(a)return a;for(var i=e.parentNode;i;){if(a=i[Qa]||i[Va]){if(i=a.alternate,a.child!==null||i!==null&&i.child!==null)for(e=kc(e);e!==null;){if(i=e[Va])return i;e=kc(e)}return a}e=i,i=e.parentNode}return null}function gi(e){return e=e[Va]||e[Qa],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function gt(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(s(33))}function vs(e){return e[pi]||null}var vo=[],ht=-1;function bn(e){return{current:e}}function Ce(e){0>ht||(e.current=vo[ht],vo[ht]=null,ht--)}function Me(e,a){ht++,vo[ht]=e.current,e.current=a}var yn={},ea=bn(yn),ua=bn(!1),Kn=yn;function ft(e,a){var i=e.type.contextTypes;if(!i)return yn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===a)return r.__reactInternalMemoizedMaskedChildContext;var u={},m;
vendor: 5,006 bytes, line 39
39for(m in i)u[m]=a[m];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=u),u}function ca(e){return e=e.childContextTypes,e!=null}function As(){Ce(ua),Ce(ea)}function bc(e,a,i){if(ea.current!==yn)throw Error(s(168));Me(ea,a),Me(ua,i)}function yc(e,a,i){var r=e.stateNode;if(a=a.childContextTypes,typeof r.getChildContext!="function")return i;r=r.getChildContext();for(var u in r)if(!(u in a))throw Error(s(108,ce(e)||"Unknown",u));return q({},i,r)}function xs(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||yn,Kn=ea.current,Me(ea,e),Me(ua,ua.current),!0}function vc(e,a,i){var r=e.stateNode;if(!r)throw Error(s(169));i?(e=yc(e,a,Kn),r.__reactInternalMemoizedMergedChildContext=e,Ce(ua),Ce(ea),Me(ea,e)):Ce(ua),Me(ua,i)}var Ja=null,Ls=!1,Ao=!1;function Ac(e){Ja===null?Ja=[e]:Ja.push(e)}function tb(e){Ls=!0,Ac(e)}function vn(){if(!Ao&&Ja!==null){Ao=!0;var e=0,a=Se;try{var i=Ja;for(Se=1;e<i.length;e++){var r=i[e];do r=r(!0);while(r!==null)}Ja=null,Ls=!1}catch(u){throw Ja!==null&&(Ja=Ja.slice(e+1)),Lu(Fr,vn),u}finally{Se=a,Ao=!1}}return null}var kt=[],bt=0,Ps=null,ws=0,va=[],Aa=0,Vn=null,Za=1,Xa="";function Fn(e,a){kt[bt++]=ws,kt[bt++]=Ps,Ps=e,ws=a}function xc(e,a,i){va[Aa++]=Za,va[Aa++]=Xa,va[Aa++]=Vn,Vn=e;var r=Za;e=Xa;var u=32-Ca(r)-1;r&=~(1<<u),i+=1;var m=32-Ca(a)+u;if(30<m){var k=u-u%5;m=(r&(1<<k)-1).toString(32),r>>=k,u-=k,Za=1<<32-Ca(a)+u|i<<u|r,Xa=m+e}else Za=1<<m|i<<u|r,Xa=e}function xo(e){e.return!==null&&(Fn(e,1),xc(e,1,0))}function Lo(e){for(;e===Ps;)Ps=kt[--bt],kt[bt]=null,ws=kt[--bt],kt[bt]=null;for(;e===Vn;)Vn=va[--Aa],va[Aa]=null,Xa=va[--Aa],va[Aa]=null,Za=va[--Aa],va[Aa]=null}var ka=null,ba=null,ze=!1,za=null;function Lc(e,a){var i=wa(5,null,null,0);i.elementType="DELETED",i.stateNode=a,i.return=e,a=e.deletions,a===null?(e.deletions=[i],e.flags|=16):a.push(i)}function Pc(e,a){switch(e.tag){case 5:var i=e.type;return a=a.nodeType!==1||i.toLowerCase()!==a.nodeName.toLowerCase()?null:a,a!==null?(e.stateNode=a,ka=e,ba=kn(a.firstChild),!0):!1;case 6:return a=e.pendingProps===""||a.nodeType!==3?null:a,a!==null?(e.stateNode=a,ka=e,ba=null,!0):!1;case 13:return a=a.nodeType!==8?null:a,a!==null?(i=Vn!==null?{id:Za,overflow:Xa}:null,e.memoizedState={dehydrated:a,treeContext:i,retryLane:1073741824},i=wa(18,null,null,0),i.stateNode=a,i.return=e,e.child=i,ka=e,ba=null,!0):!1;default:return!1}}function Po(e){return(e.mode&1)!==0&&(e.flags&128)===0}function wo(e){if(ze){var a=ba;if(a){var i=a;if(!Pc(e,a)){if(Po(e))throw Error(s(418));a=kn(i.nextSibling);var r=ka;a&&Pc(e,a)?Lc(r,i):(e.flags=e.flags&-4097|2,ze=!1,ka=e)}}else{if(Po(e))throw Error(s(418));e.flags=e.flags&-4097|2,ze=!1,ka=e}}}function wc(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;ka=e}function Ss(e){if(e!==ka)return!1;if(!ze)return wc(e),ze=!0,!1;var a;if((a=e.tag!==3)&&!(a=e.tag!==5)&&(a=e.type,a=a!=="head"&&a!=="body"&&!fo(e.type,e.memoizedProps)),a&&(a=ba)){if(Po(e))throw Sc(),Error(s(418));for(;a;)Lc(e,a),a=kn(a.nextSibling)}if(wc(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(s(317));e:{for(e=e.nextSibling,a=0;e;){if(e.nodeType===8){var i=e.data;if(i==="/$"){if(a===0){ba=kn(e.nextSibling);break e}a--}else i!=="$"&&i!=="$!"&&i!=="$?"||a++}e=e.nextSibling}ba=null}}else ba=ka?kn(e.stateNode.nextSibling):null;return!0}function Sc(){for(var e=ba;e;)e=kn(e.nextSibling)}function yt(){ba=ka=null,ze=!1}function So(e){za===null?za=[e]:za.push(e)}var ib=U.ReactCurrentBatchConfig;function hi(e,a,i){if(e=i.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(i._owner){if(i=i._owner,i){if(i.tag!==1)throw Error(s(309));var r=i.stateNode}if(!r)throw Error(s(147,e));var u=r,m=""+e;return a!==null&&a.ref!==null&&typeof a.ref=="function"&&a.ref._stringRef===m?a.ref:(a=function(k){var v=u.refs;k===null?delete v[m]:v[m]=k},a._stringRef=m,a)}if(typeof e!="string")throw Error(s(284));if(!i._owner)throw Error(s(290,e))}return e}function Is(e,a){throw e=Object.prototype.toString.call(a),Error(s(31,e==="[object Object]"?"object with keys {"+Object.keys(a).join(", ")+"}":e))}function Ic(e){var a=e._init;return a(e._payload)}function Mc(e){function a(S,L){if(e){var I=S.deletions;I===null?(S.deletions=[L],S.flags|=16):I.push(L)}}function i(S,L){if(!e)return null;for(;L!==null;)a(S,L),L=L.sibling;return null}function r(S,L){for(S=new Map;L!==null;)L.key!==null?S.set(L.key,L):S.set(L.index,L),L=L.sibling;return S}function u(S,L){return S=Mn(S,L),S.index=0,S.sibling=null,S}function m(S,L,I){return S.index=I,e?(I=S.alternate,I!==null?(I=I.index,I<L?(S.flags|=2,L):I):(S.flags|=2,L)):(S.flags|=1048576,L)}function k(S){return e&&S.alternate===null&&(S.flags|=2),S}function v(S,L,I,V){return L===null||L.tag!==6?(L=kl(I,S.mode,V),L.return=S,L):(L=u(L,I),L.return=S,L)}function x(S,L,I,V){var ne=I.type;return ne===de?G(S,L,I.props.children,V,I.key):L!==null&&(L.elementType===ne||typeof ne=="object"&&ne!==null&&ne.$$typeof===Le&&Ic(ne)===L.t
vendor: 4,327 bytes, line 39
39ype)?(V=u(L,I.props),V.ref=hi(S,L,I),V.return=S,V):(V=Zs(I.type,I.key,I.props,null,S.mode,V),V.ref=hi(S,L,I),V.return=S,V)}function j(S,L,I,V){return L===null||L.tag!==4||L.stateNode.containerInfo!==I.containerInfo||L.stateNode.implementation!==I.implementation?(L=bl(I,S.mode,V),L.return=S,L):(L=u(L,I.children||[]),L.return=S,L)}function G(S,L,I,V,ne){return L===null||L.tag!==7?(L=Jn(I,S.mode,V,ne),L.return=S,L):(L=u(L,I),L.return=S,L)}function B(S,L,I){if(typeof L=="string"&&L!==""||typeof L=="number")return L=kl(""+L,S.mode,I),L.return=S,L;if(typeof L=="object"&&L!==null){switch(L.$$typeof){case W:return I=Zs(L.type,L.key,L.props,null,S.mode,I),I.ref=hi(S,null,L),I.return=S,I;case J:return L=bl(L,S.mode,I),L.return=S,L;case Le:var V=L._init;return B(S,V(L._payload),I)}if(qt(L)||Q(L))return L=Jn(L,S.mode,I,null),L.return=S,L;Is(S,L)}return null}function N(S,L,I,V){var ne=L!==null?L.key:null;if(typeof I=="string"&&I!==""||typeof I=="number")return ne!==null?null:v(S,L,""+I,V);if(typeof I=="object"&&I!==null){switch(I.$$typeof){case W:return I.key===ne?x(S,L,I,V):null;case J:return I.key===ne?j(S,L,I,V):null;case Le:return ne=I._init,N(S,L,ne(I._payload),V)}if(qt(I)||Q(I))return ne!==null?null:G(S,L,I,V,null);Is(S,I)}return null}function H(S,L,I,V,ne){if(typeof V=="string"&&V!==""||typeof V=="number")return S=S.get(I)||null,v(L,S,""+V,ne);if(typeof V=="object"&&V!==null){switch(V.$$typeof){case W:return S=S.get(V.key===null?I:V.key)||null,x(L,S,V,ne);case J:return S=S.get(V.key===null?I:V.key)||null,j(L,S,V,ne);case Le:var re=V._init;return H(S,L,I,re(V._payload),ne)}if(qt(V)||Q(V))return S=S.get(I)||null,G(L,S,V,ne,null);Is(L,V)}return null}function Z(S,L,I,V){for(var ne=null,re=null,oe=L,ue=L=0,Je=null;oe!==null&&ue<I.length;ue++){oe.index>ue?(Je=oe,oe=null):Je=oe.sibling;var xe=N(S,oe,I[ue],V);if(xe===null){oe===null&&(oe=Je);break}e&&oe&&xe.alternate===null&&a(S,oe),L=m(xe,L,ue),re===null?ne=xe:re.sibling=xe,re=xe,oe=Je}if(ue===I.length)return i(S,oe),ze&&Fn(S,ue),ne;if(oe===null){for(;ue<I.length;ue++)oe=B(S,I[ue],V),oe!==null&&(L=m(oe,L,ue),re===null?ne=oe:re.sibling=oe,re=oe);return ze&&Fn(S,ue),ne}for(oe=r(S,oe);ue<I.length;ue++)Je=H(oe,S,ue,I[ue],V),Je!==null&&(e&&Je.alternate!==null&&oe.delete(Je.key===null?ue:Je.key),L=m(Je,L,ue),re===null?ne=Je:re.sibling=Je,re=Je);return e&&oe.forEach(function(jn){return a(S,jn)}),ze&&Fn(S,ue),ne}function ae(S,L,I,V){var ne=Q(I);if(typeof ne!="function")throw Error(s(150));if(I=ne.call(I),I==null)throw Error(s(151));for(var re=ne=null,oe=L,ue=L=0,Je=null,xe=I.next();oe!==null&&!xe.done;ue++,xe=I.next()){oe.index>ue?(Je=oe,oe=null):Je=oe.sibling;var jn=N(S,oe,xe.value,V);if(jn===null){oe===null&&(oe=Je);break}e&&oe&&jn.alternate===null&&a(S,oe),L=m(jn,L,ue),re===null?ne=jn:re.sibling=jn,re=jn,oe=Je}if(xe.done)return i(S,oe),ze&&Fn(S,ue),ne;if(oe===null){for(;!xe.done;ue++,xe=I.next())xe=B(S,xe.value,V),xe!==null&&(L=m(xe,L,ue),re===null?ne=xe:re.sibling=xe,re=xe);return ze&&Fn(S,ue),ne}for(oe=r(S,oe);!xe.done;ue++,xe=I.next())xe=H(oe,S,ue,xe.value,V),xe!==null&&(e&&xe.alternate!==null&&oe.delete(xe.key===null?ue:xe.key),L=m(xe,L,ue),re===null?ne=xe:re.sibling=xe,re=xe);return e&&oe.forEach(function(Gb){return a(S,Gb)}),ze&&Fn(S,ue),ne}function Ke(S,L,I,V){if(typeof I=="object"&&I!==null&&I.type===de&&I.key===null&&(I=I.props.children),typeof I=="object"&&I!==null){switch(I.$$typeof){case W:e:{for(var ne=I.key,re=L;re!==null;){if(re.key===ne){if(ne=I.type,ne===de){if(re.tag===7){i(S,re.sibling),L=u(re,I.props.children),L.return=S,S=L;break e}}else if(re.elementType===ne||typeof ne=="object"&&ne!==null&&ne.$$typeof===Le&&Ic(ne)===re.type){i(S,re.sibling),L=u(re,I.props),L.ref=hi(S,re,I),L.return=S,S=L;break e}i(S,re);break}else a(S,re);re=re.sibling}I.type===de?(L=Jn(I.props.children,S.mode,V,I.key),L.return=S,S=L):(V=Zs(I.type,I.key,I.props,null,S.mode,V),V.ref=hi(S,L,I),V.return=S,S=V)}return k(S);case J:e:{for(re=I.key;L!==null;){if(L.key===re)if(L.tag===4&&L.stateNode.containerInfo===I.containerInfo&&L.stateNode.implementation===I.implementation){i(S,L.sibling),L=u(L,I.children||[]),L.return=S,S=L;break e}else{i(S,L);break}else a(S,L);L=L.sibling}L=bl(I,S.mode,V),L.return=S,S=L}return k(S);case Le:return re=I._init,Ke(S,L,re(I._payload),V)}if(qt(I))return Z(S,L,I,V);if(Q(I))return ae(S,L,I,V);Is(S,I)}
vendor: 4,604 bytes, line 39
39return typeof I=="string"&&I!==""||typeof I=="number"?(I=""+I,L!==null&&L.tag===6?(i(S,L.sibling),L=u(L,I),L.return=S,S=L):(i(S,L),L=kl(I,S.mode,V),L.return=S,S=L),k(S)):i(S,L)}return Ke}var vt=Mc(!0),jc=Mc(!1),Ms=bn(null),js=null,At=null,Io=null;function Mo(){Io=At=js=null}function jo(e){var a=Ms.current;Ce(Ms),e._currentValue=a}function Co(e,a,i){for(;e!==null;){var r=e.alternate;if((e.childLanes&a)!==a?(e.childLanes|=a,r!==null&&(r.childLanes|=a)):r!==null&&(r.childLanes&a)!==a&&(r.childLanes|=a),e===i)break;e=e.return}}function xt(e,a){js=e,Io=At=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&a)!==0&&(ma=!0),e.firstContext=null)}function xa(e){var a=e._currentValue;if(Io!==e)if(e={context:e,memoizedValue:a,next:null},At===null){if(js===null)throw Error(s(308));At=e,js.dependencies={lanes:0,firstContext:e}}else At=At.next=e;return a}var Wn=null;function Do(e){Wn===null?Wn=[e]:Wn.push(e)}function Cc(e,a,i,r){var u=a.interleaved;return u===null?(i.next=i,Do(a)):(i.next=u.next,u.next=i),a.interleaved=i,Ya(e,r)}function Ya(e,a){e.lanes|=a;var i=e.alternate;for(i!==null&&(i.lanes|=a),i=e,e=e.return;e!==null;)e.childLanes|=a,i=e.alternate,i!==null&&(i.childLanes|=a),i=e,e=e.return;return i.tag===3?i.stateNode:null}var An=!1;function zo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Dc(e,a){e=e.updateQueue,a.updateQueue===e&&(a.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function en(e,a){return{eventTime:e,lane:a,tag:0,payload:null,callback:null,next:null}}function xn(e,a,i){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(ve&2)!==0){var u=r.pending;return u===null?a.next=a:(a.next=u.next,u.next=a),r.pending=a,Ya(e,i)}return u=r.interleaved,u===null?(a.next=a,Do(r)):(a.next=u.next,u.next=a),r.interleaved=a,Ya(e,i)}function Cs(e,a,i){if(a=a.updateQueue,a!==null&&(a=a.shared,(i&4194240)!==0)){var r=a.lanes;r&=e.pendingLanes,i|=r,a.lanes=i,Ur(e,i)}}function zc(e,a){var i=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,i===r)){var u=null,m=null;if(i=i.firstBaseUpdate,i!==null){do{var k={eventTime:i.eventTime,lane:i.lane,tag:i.tag,payload:i.payload,callback:i.callback,next:null};m===null?u=m=k:m=m.next=k,i=i.next}while(i!==null);m===null?u=m=a:m=m.next=a}else u=m=a;i={baseState:r.baseState,firstBaseUpdate:u,lastBaseUpdate:m,shared:r.shared,effects:r.effects},e.updateQueue=i;return}e=i.lastBaseUpdate,e===null?i.firstBaseUpdate=a:e.next=a,i.lastBaseUpdate=a}function Ds(e,a,i,r){var u=e.updateQueue;An=!1;var m=u.firstBaseUpdate,k=u.lastBaseUpdate,v=u.shared.pending;if(v!==null){u.shared.pending=null;var x=v,j=x.next;x.next=null,k===null?m=j:k.next=j,k=x;var G=e.alternate;G!==null&&(G=G.updateQueue,v=G.lastBaseUpdate,v!==k&&(v===null?G.firstBaseUpdate=j:v.next=j,G.lastBaseUpdate=x))}if(m!==null){var B=u.baseState;k=0,G=j=x=null,v=m;do{var N=v.lane,H=v.eventTime;if((r&N)===N){G!==null&&(G=G.next={eventTime:H,lane:0,tag:v.tag,payload:v.payload,callback:v.callback,next:null});e:{var Z=e,ae=v;switch(N=a,H=i,ae.tag){case 1:if(Z=ae.payload,typeof Z=="function"){B=Z.call(H,B,N);break e}B=Z;break e;case 3:Z.flags=Z.flags&-65537|128;case 0:if(Z=ae.payload,N=typeof Z=="function"?Z.call(H,B,N):Z,N==null)break e;B=q({},B,N);break e;case 2:An=!0}}v.callback!==null&&v.lane!==0&&(e.flags|=64,N=u.effects,N===null?u.effects=[v]:N.push(v))}else H={eventTime:H,lane:N,tag:v.tag,payload:v.payload,callback:v.callback,next:null},G===null?(j=G=H,x=B):G=G.next=H,k|=N;if(v=v.next,v===null){if(v=u.shared.pending,v===null)break;N=v,v=N.next,N.next=null,u.lastBaseUpdate=N,u.shared.pending=null}}while(!0);if(G===null&&(x=B),u.baseState=x,u.firstBaseUpdate=j,u.lastBaseUpdate=G,a=u.shared.interleaved,a!==null){u=a;do k|=u.lane,u=u.next;while(u!==a)}else m===null&&(u.shared.lanes=0);_n|=k,e.lanes=k,e.memoizedState=B}}function Tc(e,a,i){if(e=a.effects,a.effects=null,e!==null)for(a=0;a<e.length;a++){var r=e[a],u=r.callback;if(u!==null){if(r.callback=null,r=i,typeof u!="function")throw Error(s(191,u));u.call(r)}}}var fi={},Fa=bn(fi),ki=bn(fi),bi=bn(fi);function qn(e){if(e===fi)throw Error(s(174));return e}function To(e,a){switch(Me(bi,a),Me(ki,e),Me(Fa,fi),e=a.nodeType,e){case 9:case 11:a=(a=a.documentElement)?a.namespaceURI:Tr(null,"");break;default:e=e===8?a.parentNode:a,a=e.namespaceURI||null,e=e.tagName,a=Tr(a,e)}Ce(Fa),Me(Fa,a)}function Lt(){Ce(Fa),Ce(ki),Ce(bi)}function Ec(e){qn(bi.current);var a=qn(Fa.current),i=Tr(a,e.type);
vendor: 5,304 bytes, line 39
39a!==i&&(Me(ki,e),Me(Fa,i))}function Eo(e){ki.current===e&&(Ce(Fa),Ce(ki))}var Te=bn(0);function zs(e){for(var a=e;a!==null;){if(a.tag===13){var i=a.memoizedState;if(i!==null&&(i=i.dehydrated,i===null||i.data==="$?"||i.data==="$!"))return a}else if(a.tag===19&&a.memoizedProps.revealOrder!==void 0){if((a.flags&128)!==0)return a}else if(a.child!==null){a.child.return=a,a=a.child;continue}if(a===e)break;for(;a.sibling===null;){if(a.return===null||a.return===e)return null;a=a.return}a.sibling.return=a.return,a=a.sibling}return null}var Ro=[];function No(){for(var e=0;e<Ro.length;e++)Ro[e]._workInProgressVersionPrimary=null;Ro.length=0}var Ts=U.ReactCurrentDispatcher,Go=U.ReactCurrentBatchConfig,Un=0,Ee=null,We=null,$e=null,Es=!1,yi=!1,vi=0,sb=0;function aa(){throw Error(s(321))}function Oo(e,a){if(a===null)return!1;for(var i=0;i<a.length&&i<e.length;i++)if(!Da(e[i],a[i]))return!1;return!0}function Bo(e,a,i,r,u,m){if(Un=m,Ee=a,a.memoizedState=null,a.updateQueue=null,a.lanes=0,Ts.current=e===null||e.memoizedState===null?db:ub,e=i(r,u),yi){m=0;do{if(yi=!1,vi=0,25<=m)throw Error(s(301));m+=1,$e=We=null,a.updateQueue=null,Ts.current=cb,e=i(r,u)}while(yi)}if(Ts.current=Gs,a=We!==null&&We.next!==null,Un=0,$e=We=Ee=null,Es=!1,a)throw Error(s(300));return e}function Ko(){var e=vi!==0;return vi=0,e}function Wa(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return $e===null?Ee.memoizedState=$e=e:$e=$e.next=e,$e}function La(){if(We===null){var e=Ee.alternate;e=e!==null?e.memoizedState:null}else e=We.next;var a=$e===null?Ee.memoizedState:$e.next;if(a!==null)$e=a,We=e;else{if(e===null)throw Error(s(310));We=e,e={memoizedState:We.memoizedState,baseState:We.baseState,baseQueue:We.baseQueue,queue:We.queue,next:null},$e===null?Ee.memoizedState=$e=e:$e=$e.next=e}return $e}function Ai(e,a){return typeof a=="function"?a(e):a}function Vo(e){var a=La(),i=a.queue;if(i===null)throw Error(s(311));i.lastRenderedReducer=e;var r=We,u=r.baseQueue,m=i.pending;if(m!==null){if(u!==null){var k=u.next;u.next=m.next,m.next=k}r.baseQueue=u=m,i.pending=null}if(u!==null){m=u.next,r=r.baseState;var v=k=null,x=null,j=m;do{var G=j.lane;if((Un&G)===G)x!==null&&(x=x.next={lane:0,action:j.action,hasEagerState:j.hasEagerState,eagerState:j.eagerState,next:null}),r=j.hasEagerState?j.eagerState:e(r,j.action);else{var B={lane:G,action:j.action,hasEagerState:j.hasEagerState,eagerState:j.eagerState,next:null};x===null?(v=x=B,k=r):x=x.next=B,Ee.lanes|=G,_n|=G}j=j.next}while(j!==null&&j!==m);x===null?k=r:x.next=v,Da(r,a.memoizedState)||(ma=!0),a.memoizedState=r,a.baseState=k,a.baseQueue=x,i.lastRenderedState=r}if(e=i.interleaved,e!==null){u=e;do m=u.lane,Ee.lanes|=m,_n|=m,u=u.next;while(u!==e)}else u===null&&(i.lanes=0);return[a.memoizedState,i.dispatch]}function Fo(e){var a=La(),i=a.queue;if(i===null)throw Error(s(311));i.lastRenderedReducer=e;var r=i.dispatch,u=i.pending,m=a.memoizedState;if(u!==null){i.pending=null;var k=u=u.next;do m=e(m,k.action),k=k.next;while(k!==u);Da(m,a.memoizedState)||(ma=!0),a.memoizedState=m,a.baseQueue===null&&(a.baseState=m),i.lastRenderedState=m}return[m,r]}function Rc(){}function Nc(e,a){var i=Ee,r=La(),u=a(),m=!Da(r.memoizedState,u);if(m&&(r.memoizedState=u,ma=!0),r=r.queue,Wo(Bc.bind(null,i,r,e),[e]),r.getSnapshot!==a||m||$e!==null&&$e.memoizedState.tag&1){if(i.flags|=2048,xi(9,Oc.bind(null,i,r,u,a),void 0,null),Qe===null)throw Error(s(349));(Un&30)!==0||Gc(i,a,u)}return u}function Gc(e,a,i){e.flags|=16384,e={getSnapshot:a,value:i},a=Ee.updateQueue,a===null?(a={lastEffect:null,stores:null},Ee.updateQueue=a,a.stores=[e]):(i=a.stores,i===null?a.stores=[e]:i.push(e))}function Oc(e,a,i,r){a.value=i,a.getSnapshot=r,Kc(a)&&Vc(e)}function Bc(e,a,i){return i(function(){Kc(a)&&Vc(e)})}function Kc(e){var a=e.getSnapshot;e=e.value;try{var i=a();return!Da(e,i)}catch{return!0}}function Vc(e){var a=Ya(e,1);a!==null&&Na(a,e,1,-1)}function Fc(e){var a=Wa();return typeof e=="function"&&(e=e()),a.memoizedState=a.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Ai,lastRenderedState:e},a.queue=e,e=e.dispatch=lb.bind(null,Ee,e),[a.memoizedState,e]}function xi(e,a,i,r){return e={tag:e,create:a,destroy:i,deps:r,next:null},a=Ee.updateQueue,a===null?(a={lastEffect:null,stores:null},Ee.updateQueue=a,a.lastEffect=e.next=e):(i=a.lastEffect,i===null?a.lastEffect=e.next=e:(r=i.next,i.next=e,e.next=r,a.lastEffect=e)),e}function Wc(){return La().memoizedState}function Rs(e,a,i,r){var u=Wa();Ee.flags|=e,u.memoizedState=xi(1|a,i,void 0,r===void 0?null:r)}function Ns(e,a,i,r){var u=La();r=r===void 0?null:r;var m=void 0;if(We!==null){var k=We.memoizedState;if(m=k.destroy,r!==null&&Oo(r,k.deps)){u.memoizedState=xi(a,i,m,r);return}}Ee.flags|=e,u.memoizedState=xi(1|a,i,m,r)}function qc(e,a){return Rs(8390656,8,e,a)}function Wo(e,a){return Ns(2048,8,e,a)}function Uc(e,a){return Ns(4,2,e,a)}function _c(e,a){return Ns(4,4,e,a)}function Hc(e,a){if(typeof a=="function")return e=e(),a(e),function(){a(null)};if(a!=null)return e=e(),a.current=e,function(){a.current=null}}function $c(e,a,i){return i=i!=null?i.concat([e]):null,Ns(4,4,Hc.bind(null,a,e),i)}function qo(){}function Qc(e,a){var i=La();a=a===void 0?null:a;var r=i.memoizedState;return r!==null&&a!==null&&Oo(a,r[1])?r[0]:(i.memoizedState=[e,a],e)}
vendor: 5,158 bytes, line 39
39function Jc(e,a){var i=La();a=a===void 0?null:a;var r=i.memoizedState;return r!==null&&a!==null&&Oo(a,r[1])?r[0]:(e=e(),i.memoizedState=[e,a],e)}function Zc(e,a,i){return(Un&21)===0?(e.baseState&&(e.baseState=!1,ma=!0),e.memoizedState=i):(Da(i,a)||(i=Iu(),Ee.lanes|=i,_n|=i,e.baseState=!0),a)}function rb(e,a){var i=Se;Se=i!==0&&4>i?i:4,e(!0);var r=Go.transition;Go.transition={};try{e(!1),a()}finally{Se=i,Go.transition=r}}function Xc(){return La().memoizedState}function ob(e,a,i){var r=Sn(e);if(i={lane:r,action:i,hasEagerState:!1,eagerState:null,next:null},Yc(e))em(a,i);else if(i=Cc(e,a,i,r),i!==null){var u=oa();Na(i,e,r,u),am(i,a,r)}}function lb(e,a,i){var r=Sn(e),u={lane:r,action:i,hasEagerState:!1,eagerState:null,next:null};if(Yc(e))em(a,u);else{var m=e.alternate;if(e.lanes===0&&(m===null||m.lanes===0)&&(m=a.lastRenderedReducer,m!==null))try{var k=a.lastRenderedState,v=m(k,i);if(u.hasEagerState=!0,u.eagerState=v,Da(v,k)){var x=a.interleaved;x===null?(u.next=u,Do(a)):(u.next=x.next,x.next=u),a.interleaved=u;return}}catch{}finally{}i=Cc(e,a,u,r),i!==null&&(u=oa(),Na(i,e,r,u),am(i,a,r))}}function Yc(e){var a=e.alternate;return e===Ee||a!==null&&a===Ee}function em(e,a){yi=Es=!0;var i=e.pending;i===null?a.next=a:(a.next=i.next,i.next=a),e.pending=a}function am(e,a,i){if((i&4194240)!==0){var r=a.lanes;r&=e.pendingLanes,i|=r,a.lanes=i,Ur(e,i)}}var Gs={readContext:xa,useCallback:aa,useContext:aa,useEffect:aa,useImperativeHandle:aa,useInsertionEffect:aa,useLayoutEffect:aa,useMemo:aa,useReducer:aa,useRef:aa,useState:aa,useDebugValue:aa,useDeferredValue:aa,useTransition:aa,useMutableSource:aa,useSyncExternalStore:aa,useId:aa,unstable_isNewReconciler:!1},db={readContext:xa,useCallback:function(e,a){return Wa().memoizedState=[e,a===void 0?null:a],e},useContext:xa,useEffect:qc,useImperativeHandle:function(e,a,i){return i=i!=null?i.concat([e]):null,Rs(4194308,4,Hc.bind(null,a,e),i)},useLayoutEffect:function(e,a){return Rs(4194308,4,e,a)},useInsertionEffect:function(e,a){return Rs(4,2,e,a)},useMemo:function(e,a){var i=Wa();return a=a===void 0?null:a,e=e(),i.memoizedState=[e,a],e},useReducer:function(e,a,i){var r=Wa();return a=i!==void 0?i(a):a,r.memoizedState=r.baseState=a,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:a},r.queue=e,e=e.dispatch=ob.bind(null,Ee,e),[r.memoizedState,e]},useRef:function(e){var a=Wa();return e={current:e},a.memoizedState=e},useState:Fc,useDebugValue:qo,useDeferredValue:function(e){return Wa().memoizedState=e},useTransition:function(){var e=Fc(!1),a=e[0];return e=rb.bind(null,e[1]),Wa().memoizedState=e,[a,e]},useMutableSource:function(){},useSyncExternalStore:function(e,a,i){var r=Ee,u=Wa();if(ze){if(i===void 0)throw Error(s(407));i=i()}else{if(i=a(),Qe===null)throw Error(s(349));(Un&30)!==0||Gc(r,a,i)}u.memoizedState=i;var m={value:i,getSnapshot:a};return u.queue=m,qc(Bc.bind(null,r,m,e),[e]),r.flags|=2048,xi(9,Oc.bind(null,r,m,i,a),void 0,null),i},useId:function(){var e=Wa(),a=Qe.identifierPrefix;if(ze){var i=Xa,r=Za;i=(r&~(1<<32-Ca(r)-1)).toString(32)+i,a=":"+a+"R"+i,i=vi++,0<i&&(a+="H"+i.toString(32)),a+=":"}else i=sb++,a=":"+a+"r"+i.toString(32)+":";return e.memoizedState=a},unstable_isNewReconciler:!1},ub={readContext:xa,useCallback:Qc,useContext:xa,useEffect:Wo,useImperativeHandle:$c,useInsertionEffect:Uc,useLayoutEffect:_c,useMemo:Jc,useReducer:Vo,useRef:Wc,useState:function(){return Vo(Ai)},useDebugValue:qo,useDeferredValue:function(e){var a=La();return Zc(a,We.memoizedState,e)},useTransition:function(){var e=Vo(Ai)[0],a=La().memoizedState;return[e,a]},useMutableSource:Rc,useSyncExternalStore:Nc,useId:Xc,unstable_isNewReconciler:!1},cb={readContext:xa,useCallback:Qc,useContext:xa,useEffect:Wo,useImperativeHandle:$c,useInsertionEffect:Uc,useLayoutEffect:_c,useMemo:Jc,useReducer:Fo,useRef:Wc,useState:function(){return Fo(Ai)},useDebugValue:qo,useDeferredValue:function(e){var a=La();return We===null?a.memoizedState=e:Zc(a,We.memoizedState,e)},useTransition:function(){var e=Fo(Ai)[0],a=La().memoizedState;return[e,a]},useMutableSource:Rc,useSyncExternalStore:Nc,useId:Xc,unstable_isNewReconciler:!1};function Ta(e,a){if(e&&e.defaultProps){a=q({},a),e=e.defaultProps;for(var i in e)a[i]===void 0&&(a[i]=e[i]);return a}return a}function Uo(e,a,i,r){a=e.memoizedState,i=i(r,a),i=i==null?a:q({},a,i),e.memoizedState=i,e.lanes===0&&(e.updateQueue.baseState=i)}var Os={isMounted:function(e){return(e=e._reactInternals)?On(e)===e:!1},enqueueSetState:function(e,a,i){e=e._reactInternals;var r=oa(),u=Sn(e),m=en(r,u);m.payload=a,i!=null&&(m.callback=i),a=xn(e,m,u),a!==null&&(Na(a,e,u,r),Cs(a,e,u))},enqueueReplaceState:function(e,a,i){e=e._reactInternals;var r=oa(),u=Sn(e),m=en(r,u);m.tag=1,m.payload=a,i!=null&&(m.callback=i),a=xn(e,m,u),a!==null&&(Na(a,e,u,r),Cs(a,e,u))},enqueueForceUpdate:function(e,a){e=e._reactInternals;var i=oa(),r=Sn(e),u=en(i,r);u.tag=2,a!=null&&(u.callback=a),a=xn(e,u,r),a!==null&&(Na(a,e,r,i),Cs(a,e,r))}};function nm(e,a,i,r,u,m,k){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(r,m,k):a.prototype&&a.prototype.isPureReactComponent?!li(i,r)||!li(u,m):!0}
vendor: 4,653 bytes, lines 39-41
39function tm(e,a,i){var r=!1,u=yn,m=a.contextType;return typeof m=="object"&&m!==null?m=xa(m):(u=ca(a)?Kn:ea.current,r=a.contextTypes,m=(r=r!=null)?ft(e,u):yn),a=new a(i,m),e.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Os,e.stateNode=a,a._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=u,e.__reactInternalMemoizedMaskedChildContext=m),a}function im(e,a,i,r){e=a.state,typeof a.componentWillReceiveProps=="function"&&a.componentWillReceiveProps(i,r),typeof a.UNSAFE_componentWillReceiveProps=="function"&&a.UNSAFE_componentWillReceiveProps(i,r),a.state!==e&&Os.enqueueReplaceState(a,a.state,null)}function _o(e,a,i,r){var u=e.stateNode;u.props=i,u.state=e.memoizedState,u.refs={},zo(e);var m=a.contextType;typeof m=="object"&&m!==null?u.context=xa(m):(m=ca(a)?Kn:ea.current,u.context=ft(e,m)),u.state=e.memoizedState,m=a.getDerivedStateFromProps,typeof m=="function"&&(Uo(e,a,m,i),u.state=e.memoizedState),typeof a.getDerivedStateFromProps=="function"||typeof u.getSnapshotBeforeUpdate=="function"||typeof u.UNSAFE_componentWillMount!="function"&&typeof u.componentWillMount!="function"||(a=u.state,typeof u.componentWillMount=="function"&&u.componentWillMount(),typeof u.UNSAFE_componentWillMount=="function"&&u.UNSAFE_componentWillMount(),a!==u.state&&Os.enqueueReplaceState(u,u.state,null),Ds(e,i,u,r),u.state=e.memoizedState),typeof u.componentDidMount=="function"&&(e.flags|=4194308)}function Pt(e,a){try{var i="",r=a;do i+=fe(r),r=r.return;while(r);var u=i}catch(m){u=`
40Error generating stack: `+m.message+`
41`+m.stack}return{value:e,source:a,stack:u,digest:null}}function Ho(e,a,i){return{value:e,source:null,stack:i??null,digest:a??null}}function $o(e,a){try{console.error(a.value)}catch(i){setTimeout(function(){throw i})}}var mb=typeof WeakMap=="function"?WeakMap:Map;function sm(e,a,i){i=en(-1,i),i.tag=3,i.payload={element:null};var r=a.value;return i.callback=function(){Us||(Us=!0,dl=r),$o(e,a)},i}function rm(e,a,i){i=en(-1,i),i.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var u=a.value;i.payload=function(){return r(u)},i.callback=function(){$o(e,a)}}var m=e.stateNode;return m!==null&&typeof m.componentDidCatch=="function"&&(i.callback=function(){$o(e,a),typeof r!="function"&&(Pn===null?Pn=new Set([this]):Pn.add(this));var k=a.stack;this.componentDidCatch(a.value,{componentStack:k!==null?k:""})}),i}function om(e,a,i){var r=e.pingCache;if(r===null){r=e.pingCache=new mb;var u=new Set;r.set(a,u)}else u=r.get(a),u===void 0&&(u=new Set,r.set(a,u));u.has(i)||(u.add(i),e=Sb.bind(null,e,a,i),a.then(e,e))}function lm(e){do{var a;if((a=e.tag===13)&&(a=e.memoizedState,a=a!==null?a.dehydrated!==null:!0),a)return e;e=e.return}while(e!==null);return null}function dm(e,a,i,r,u){return(e.mode&1)===0?(e===a?e.flags|=65536:(e.flags|=128,i.flags|=131072,i.flags&=-52805,i.tag===1&&(i.alternate===null?i.tag=17:(a=en(-1,1),a.tag=2,xn(i,a,1))),i.lanes|=1),e):(e.flags|=65536,e.lanes=u,e)}var pb=U.ReactCurrentOwner,ma=!1;function ra(e,a,i,r){a.child=e===null?jc(a,null,i,r):vt(a,e.child,i,r)}function um(e,a,i,r,u){i=i.render;var m=a.ref;return xt(a,u),r=Bo(e,a,i,r,m,u),i=Ko(),e!==null&&!ma?(a.updateQueue=e.updateQueue,a.flags&=-2053,e.lanes&=~u,an(e,a,u)):(ze&&i&&xo(a),a.flags|=1,ra(e,a,r,u),a.child)}function cm(e,a,i,r,u){if(e===null){var m=i.type;return typeof m=="function"&&!fl(m)&&m.defaultProps===void 0&&i.compare===null&&i.defaultProps===void 0?(a.tag=15,a.type=m,mm(e,a,m,r,u)):(e=Zs(i.type,null,r,a,a.mode,u),e.ref=a.ref,e.return=a,a.child=e)}if(m=e.child,(e.lanes&u)===0){var k=m.memoizedProps;if(i=i.compare,i=i!==null?i:li,i(k,r)&&e.ref===a.ref)return an(e,a,u)}return a.flags|=1,e=Mn(m,r),e.ref=a.ref,e.return=a,a.child=e}function mm(e,a,i,r,u){if(e!==null){var m=e.memoizedProps;if(li(m,r)&&e.ref===a.ref)if(ma=!1,a.pendingProps=r=m,(e.lanes&u)!==0)(e.flags&131072)!==0&&(ma=!0);else return a.lanes=e.lanes,an(e,a,u)}return Qo(e,a,i,r,u)}function pm(e,a,i){var r=a.pendingProps,u=r.children,m=e!==null?e.memoizedState:null;if(r.mode==="hidden")if((a.mode&1)===0)a.memoizedState={baseLanes:0,cachePool:null,transitions:null},Me(St,ya),ya|=i;else{if((i&1073741824)===0)return e=m!==null?m.baseLanes|i:i,a.lanes=a.childLanes=1073741824,a.memoizedState={baseLanes:e,cachePool:null,transitions:null},a.updateQueue=null,Me(St,ya),ya|=e,null;a.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=m!==null?m.baseLanes:i,Me(St,ya),ya|=r}else m!==null?(r=m.baseLanes|i,a.memoizedState=null):r=i,Me(St,ya),ya|=r;return ra(e,a,u,i),a.child}function gm(e,a){var i=a.ref;(e===null&&i!==null||e!==null&&e.ref!==i)&&(a.flags|=512,a.flags|=2097152)}
vendor: 4,188 bytes, line 41
41function Qo(e,a,i,r,u){var m=ca(i)?Kn:ea.current;return m=ft(a,m),xt(a,u),i=Bo(e,a,i,r,m,u),r=Ko(),e!==null&&!ma?(a.updateQueue=e.updateQueue,a.flags&=-2053,e.lanes&=~u,an(e,a,u)):(ze&&r&&xo(a),a.flags|=1,ra(e,a,i,u),a.child)}function hm(e,a,i,r,u){if(ca(i)){var m=!0;xs(a)}else m=!1;if(xt(a,u),a.stateNode===null)Ks(e,a),tm(a,i,r),_o(a,i,r,u),r=!0;else if(e===null){var k=a.stateNode,v=a.memoizedProps;k.props=v;var x=k.context,j=i.contextType;typeof j=="object"&&j!==null?j=xa(j):(j=ca(i)?Kn:ea.current,j=ft(a,j));var G=i.getDerivedStateFromProps,B=typeof G=="function"||typeof k.getSnapshotBeforeUpdate=="function";B||typeof k.UNSAFE_componentWillReceiveProps!="function"&&typeof k.componentWillReceiveProps!="function"||(v!==r||x!==j)&&im(a,k,r,j),An=!1;var N=a.memoizedState;k.state=N,Ds(a,r,k,u),x=a.memoizedState,v!==r||N!==x||ua.current||An?(typeof G=="function"&&(Uo(a,i,G,r),x=a.memoizedState),(v=An||nm(a,i,v,r,N,x,j))?(B||typeof k.UNSAFE_componentWillMount!="function"&&typeof k.componentWillMount!="function"||(typeof k.componentWillMount=="function"&&k.componentWillMount(),typeof k.UNSAFE_componentWillMount=="function"&&k.UNSAFE_componentWillMount()),typeof k.componentDidMount=="function"&&(a.flags|=4194308)):(typeof k.componentDidMount=="function"&&(a.flags|=4194308),a.memoizedProps=r,a.memoizedState=x),k.props=r,k.state=x,k.context=j,r=v):(typeof k.componentDidMount=="function"&&(a.flags|=4194308),r=!1)}else{k=a.stateNode,Dc(e,a),v=a.memoizedProps,j=a.type===a.elementType?v:Ta(a.type,v),k.props=j,B=a.pendingProps,N=k.context,x=i.contextType,typeof x=="object"&&x!==null?x=xa(x):(x=ca(i)?Kn:ea.current,x=ft(a,x));var H=i.getDerivedStateFromProps;(G=typeof H=="function"||typeof k.getSnapshotBeforeUpdate=="function")||typeof k.UNSAFE_componentWillReceiveProps!="function"&&typeof k.componentWillReceiveProps!="function"||(v!==B||N!==x)&&im(a,k,r,x),An=!1,N=a.memoizedState,k.state=N,Ds(a,r,k,u);var Z=a.memoizedState;v!==B||N!==Z||ua.current||An?(typeof H=="function"&&(Uo(a,i,H,r),Z=a.memoizedState),(j=An||nm(a,i,j,r,N,Z,x)||!1)?(G||typeof k.UNSAFE_componentWillUpdate!="function"&&typeof k.componentWillUpdate!="function"||(typeof k.componentWillUpdate=="function"&&k.componentWillUpdate(r,Z,x),typeof k.UNSAFE_componentWillUpdate=="function"&&k.UNSAFE_componentWillUpdate(r,Z,x)),typeof k.componentDidUpdate=="function"&&(a.flags|=4),typeof k.getSnapshotBeforeUpdate=="function"&&(a.flags|=1024)):(typeof k.componentDidUpdate!="function"||v===e.memoizedProps&&N===e.memoizedState||(a.flags|=4),typeof k.getSnapshotBeforeUpdate!="function"||v===e.memoizedProps&&N===e.memoizedState||(a.flags|=1024),a.memoizedProps=r,a.memoizedState=Z),k.props=r,k.state=Z,k.context=x,r=j):(typeof k.componentDidUpdate!="function"||v===e.memoizedProps&&N===e.memoizedState||(a.flags|=4),typeof k.getSnapshotBeforeUpdate!="function"||v===e.memoizedProps&&N===e.memoizedState||(a.flags|=1024),r=!1)}return Jo(e,a,i,r,m,u)}function Jo(e,a,i,r,u,m){gm(e,a);var k=(a.flags&128)!==0;if(!r&&!k)return u&&vc(a,i,!1),an(e,a,m);r=a.stateNode,pb.current=a;var v=k&&typeof i.getDerivedStateFromError!="function"?null:r.render();return a.flags|=1,e!==null&&k?(a.child=vt(a,e.child,null,m),a.child=vt(a,null,v,m)):ra(e,a,v,m),a.memoizedState=r.state,u&&vc(a,i,!0),a.child}function fm(e){var a=e.stateNode;a.pendingContext?bc(e,a.pendingContext,a.pendingContext!==a.context):a.context&&bc(e,a.context,!1),To(e,a.containerInfo)}function km(e,a,i,r,u){return yt(),So(u),a.flags|=256,ra(e,a,i,r),a.child}var Zo={dehydrated:null,treeContext:null,retryLane:0};function Xo(e){return{baseLanes:e,cachePool:null,transitions:null}}function bm(e,a,i){var r=a.pendingProps,u=Te.current,m=!1,k=(a.flags&128)!==0,v;if((v=k)||(v=e!==null&&e.memoizedState===null?!1:(u&2)!==0),v?(m=!0,a.flags&=-129):(e===null||e.memoizedState!==null)&&(u|=1),Me(Te,u&1),e===null)return wo(a),e=a.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((a.mode&1)===0?a.lanes=1:e.data==="$!"?a.lanes=8:a.lanes=1073741824,null):(k=r.children,e=r.fallback,m?(r=a.mode,m=a.child,k={mode:"hidden",children:k},(r&1)===0&&m!==null?(m.childLanes=0,m.pendingProps=k):m=Xs(k,r,0,null),e=Jn(e,r,i,null),m.return=a,e.return=a,m.sibling=e,a.
vendor: 7,644 bytes, line 41
41child=m,a.child.memoizedState=Xo(i),a.memoizedState=Zo,e):Yo(a,k));if(u=e.memoizedState,u!==null&&(v=u.dehydrated,v!==null))return gb(e,a,k,r,v,u,i);if(m){m=r.fallback,k=a.mode,u=e.child,v=u.sibling;var x={mode:"hidden",children:r.children};return(k&1)===0&&a.child!==u?(r=a.child,r.childLanes=0,r.pendingProps=x,a.deletions=null):(r=Mn(u,x),r.subtreeFlags=u.subtreeFlags&14680064),v!==null?m=Mn(v,m):(m=Jn(m,k,i,null),m.flags|=2),m.return=a,r.return=a,r.sibling=m,a.child=r,r=m,m=a.child,k=e.child.memoizedState,k=k===null?Xo(i):{baseLanes:k.baseLanes|i,cachePool:null,transitions:k.transitions},m.memoizedState=k,m.childLanes=e.childLanes&~i,a.memoizedState=Zo,r}return m=e.child,e=m.sibling,r=Mn(m,{mode:"visible",children:r.children}),(a.mode&1)===0&&(r.lanes=i),r.return=a,r.sibling=null,e!==null&&(i=a.deletions,i===null?(a.deletions=[e],a.flags|=16):i.push(e)),a.child=r,a.memoizedState=null,r}function Yo(e,a){return a=Xs({mode:"visible",children:a},e.mode,0,null),a.return=e,e.child=a}function Bs(e,a,i,r){return r!==null&&So(r),vt(a,e.child,null,i),e=Yo(a,a.pendingProps.children),e.flags|=2,a.memoizedState=null,e}function gb(e,a,i,r,u,m,k){if(i)return a.flags&256?(a.flags&=-257,r=Ho(Error(s(422))),Bs(e,a,k,r)):a.memoizedState!==null?(a.child=e.child,a.flags|=128,null):(m=r.fallback,u=a.mode,r=Xs({mode:"visible",children:r.children},u,0,null),m=Jn(m,u,k,null),m.flags|=2,r.return=a,m.return=a,r.sibling=m,a.child=r,(a.mode&1)!==0&&vt(a,e.child,null,k),a.child.memoizedState=Xo(k),a.memoizedState=Zo,m);if((a.mode&1)===0)return Bs(e,a,k,null);if(u.data==="$!"){if(r=u.nextSibling&&u.nextSibling.dataset,r)var v=r.dgst;return r=v,m=Error(s(419)),r=Ho(m,r,void 0),Bs(e,a,k,r)}if(v=(k&e.childLanes)!==0,ma||v){if(r=Qe,r!==null){switch(k&-k){case 4:u=2;break;case 16:u=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:u=32;break;case 536870912:u=268435456;break;default:u=0}u=(u&(r.suspendedLanes|k))!==0?0:u,u!==0&&u!==m.retryLane&&(m.retryLane=u,Ya(e,u),Na(r,e,u,-1))}return hl(),r=Ho(Error(s(421))),Bs(e,a,k,r)}return u.data==="$?"?(a.flags|=128,a.child=e.child,a=Ib.bind(null,e),u._reactRetry=a,null):(e=m.treeContext,ba=kn(u.nextSibling),ka=a,ze=!0,za=null,e!==null&&(va[Aa++]=Za,va[Aa++]=Xa,va[Aa++]=Vn,Za=e.id,Xa=e.overflow,Vn=a),a=Yo(a,r.children),a.flags|=4096,a)}function ym(e,a,i){e.lanes|=a;var r=e.alternate;r!==null&&(r.lanes|=a),Co(e.return,a,i)}function el(e,a,i,r,u){var m=e.memoizedState;m===null?e.memoizedState={isBackwards:a,rendering:null,renderingStartTime:0,last:r,tail:i,tailMode:u}:(m.isBackwards=a,m.rendering=null,m.renderingStartTime=0,m.last=r,m.tail=i,m.tailMode=u)}function vm(e,a,i){var r=a.pendingProps,u=r.revealOrder,m=r.tail;if(ra(e,a,r.children,i),r=Te.current,(r&2)!==0)r=r&1|2,a.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=a.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&ym(e,i,a);else if(e.tag===19)ym(e,i,a);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===a)break e;for(;e.sibling===null;){if(e.return===null||e.return===a)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Me(Te,r),(a.mode&1)===0)a.memoizedState=null;else switch(u){case"forwards":for(i=a.child,u=null;i!==null;)e=i.alternate,e!==null&&zs(e)===null&&(u=i),i=i.sibling;i=u,i===null?(u=a.child,a.child=null):(u=i.sibling,i.sibling=null),el(a,!1,u,i,m);break;case"backwards":for(i=null,u=a.child,a.child=null;u!==null;){if(e=u.alternate,e!==null&&zs(e)===null){a.child=u;break}e=u.sibling,u.sibling=i,i=u,u=e}el(a,!0,i,null,m);break;case"together":el(a,!1,null,null,void 0);break;default:a.memoizedState=null}return a.child}function Ks(e,a){(a.mode&1)===0&&e!==null&&(e.alternate=null,a.alternate=null,a.flags|=2)}function an(e,a,i){if(e!==null&&(a.dependencies=e.dependencies),_n|=a.lanes,(i&a.childLanes)===0)return null;if(e!==null&&a.child!==e.child)throw Error(s(153));if(a.child!==null){for(e=a.child,i=Mn(e,e.pendingProps),a.child=i,i.return=a;e.sibling!==null;)e=e.sibling,i=i.sibling=Mn(e,e.pendingProps),i.return=a;i.sibling=null}return a.child}function hb(e,a,i){switch(a.tag){case 3:fm(a),yt();break;case 5:Ec(a);break;case 1:ca(a.type)&&xs(a);break;case 4:To(a,a.stateNode.containerInfo);break;case 10:var r=a.type._context,u=a.memoizedProps.value;Me(Ms,r._currentValue),r._currentValue=u;break;case 13:if(r=a.memoizedState,r!==null)return r.dehydrated!==null?(Me(Te,Te.current&1),a.flags|=128,null):(i&a.child.childLanes)!==0?bm(e,a,i):(Me(Te,Te.current&1),e=an(e,a,i),e!==null?e.sibling:null);Me(Te,Te.current&1);break;case 19:if(r=(i&a.childLanes)!==0,(e.flags&128)!==0){if(r)return vm(e,a,i);a.flags|=128}if(u=a.memoizedState,u!==null&&(u.rendering=null,u.tail=null,u.lastEffect=null),Me(Te,Te.current),r)break;return null;case 22:case 23:return a.lanes=0,pm(e,a,i)}return an(e,a,i)}var Am,al,xm,Lm;Am=function(e,a){for(var i=a.child;i!==null;){if(i.tag===5||i.tag===6)e.appendChild(i.stateNode);else if(i.tag!==4&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===a)break;for(;i.sibling===null;){if(i.return===null||i.return===a)return;i=i.return}i.sibling.return=i.return,i=i.sibling}},al=function(){},xm=function(e,a,i,r){var u=e.memoizedProps;if(u!==r){e=a.stateNode,qn(Fa.current);var m=null;switch(i){case"input":u=jr(e,u),r=jr(e,r),m=[];break;case"select":u=q({},u,{value:void 0}),r=q({},r,{value:void 0}),m=[];break;case"textarea":u=zr(e,u),r=zr(e,r),m=[];break;default:typeof u.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=ys)}Er(i,r);var k;i=null;for(j in u)if(!r.hasOwnProperty(j)&&u.hasOwnProperty(j)&&u[j]!=null)if(j==="style"){var v=u[j];for(k in v)v.hasOwnProperty(k)&&(i||(i={}),i[k]="")}else j!=="dangerouslySetInnerHTML"&&j!=="children"&&j!=="suppressContentEditableWarning"&&j!=="suppressHydrationWarning"&&j!=="autoFocus"&&(d.hasOwnProperty(j)?m||(m=[]):(m=m||[]).push(j,null));for(j in r){var x=r[j];if(v=u?.[j],r.hasOwnProperty(j)&&x!==v&&(x!=null||v!=null))if(j==="style")if(v){for(k in v)!v.hasOwnProperty(k)||x&&x.hasOwnProperty(k)||(i||(i={}),i[k]="");for(k in x)x.hasOwnProperty(k)&&v[k]!==x[k]&&(i||(i={}),i[k]=x[k])}else i||(m||(m=[]),m.push(j,i)),i=x;else j==="dangerouslySetInnerHTML"?(x=x?x.__html:void 0,v=v?v.__html:void 0,x!=null&&v!==x&&(m=m||[]).push(j,x)):j==="children"?typeof x!="string"&&typeof x!="number"||(m=m||[]).push(j,""+x):j!=="suppressContentEditableWarning"&&j!=="suppressHydrationWarning"&&(d.hasOwnProperty(j)?(x!=null&&j==="onScroll"&&je("scroll",e),m||v===x||(m=[])):(m=m||[]).push(j,x))}i&&(m=m||[]).push("style",i);var j=m;(a.updateQueue=j)&&(a.flags|=4)}},Lm=function(e,a,i,r){i!==r&&(a.flags|=4)};function Li(e,a){if(!ze)switch(e.tailMode){case"hidden":a=e.tail;for(var i=null;a!==null;)a.alternate!==null&&(i=a),a=a.sibling;i===null?e.tail=null:i.sibling=null;break;case"collapsed":i=e.tail;for(var r=null;i!==null;)i.alternate!==null&&(r=i),i=i.sibling;r===null?a||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function na(e){var a=e.alternate!==null&&e.alternate.child===e.child,i=0,r=0;if(a)for(var u=e.child;u!==null;)i|=u.lanes|u.childLanes,r|=u.subtreeFlags&14680064,r|=u.flags&14680064,u.return=e,u=u.sibling;else for(u=e.child;u!==null;)i|=u.lanes|u.childLanes,r|=u.subtreeFlags,r|=u.flags,u.return=e,u=u.sibling;return e.subtreeFlags|=r,e.childLanes=i,a}function fb(e,a,i){var r=a.pendingProps;switch(Lo(a),a.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return na(a),null;case 1:return ca(a.type)&&As(),na(a),null;
vendor: 28,135 bytes, line 41
41case 3:return r=a.stateNode,Lt(),Ce(ua),Ce(ea),No(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(Ss(a)?a.flags|=4:e===null||e.memoizedState.isDehydrated&&(a.flags&256)===0||(a.flags|=1024,za!==null&&(ml(za),za=null))),al(e,a),na(a),null;case 5:Eo(a);var u=qn(bi.current);if(i=a.type,e!==null&&a.stateNode!=null)xm(e,a,i,r,u),e.ref!==a.ref&&(a.flags|=512,a.flags|=2097152);else{if(!r){if(a.stateNode===null)throw Error(s(166));return na(a),null}if(e=qn(Fa.current),Ss(a)){r=a.stateNode,i=a.type;var m=a.memoizedProps;switch(r[Va]=a,r[pi]=m,e=(a.mode&1)!==0,i){case"dialog":je("cancel",r),je("close",r);break;case"iframe":case"object":case"embed":je("load",r);break;case"video":case"audio":for(u=0;u<ui.length;u++)je(ui[u],r);break;case"source":je("error",r);break;case"img":case"image":case"link":je("error",r),je("load",r);break;case"details":je("toggle",r);break;case"input":tu(r,m),je("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!m.multiple},je("invalid",r);break;case"textarea":ru(r,m),je("invalid",r)}Er(i,m),u=null;for(var k in m)if(m.hasOwnProperty(k)){var v=m[k];k==="children"?typeof v=="string"?r.textContent!==v&&(m.suppressHydrationWarning!==!0&&bs(r.textContent,v,e),u=["children",v]):typeof v=="number"&&r.textContent!==""+v&&(m.suppressHydrationWarning!==!0&&bs(r.textContent,v,e),u=["children",""+v]):d.hasOwnProperty(k)&&v!=null&&k==="onScroll"&&je("scroll",r)}switch(i){case"input":un(r),su(r,m,!0);break;case"textarea":un(r),lu(r);break;case"select":case"option":break;default:typeof m.onClick=="function"&&(r.onclick=ys)}r=u,a.updateQueue=r,r!==null&&(a.flags|=4)}else{k=u.nodeType===9?u:u.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=du(i)),e==="http://www.w3.org/1999/xhtml"?i==="script"?(e=k.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=k.createElement(i,{is:r.is}):(e=k.createElement(i),i==="select"&&(k=e,r.multiple?k.multiple=!0:r.size&&(k.size=r.size))):e=k.createElementNS(e,i),e[Va]=a,e[pi]=r,Am(e,a,!1,!1),a.stateNode=e;e:{switch(k=Rr(i,r),i){case"dialog":je("cancel",e),je("close",e),u=r;break;case"iframe":case"object":case"embed":je("load",e),u=r;break;case"video":case"audio":for(u=0;u<ui.length;u++)je(ui[u],e);u=r;break;case"source":je("error",e),u=r;break;case"img":case"image":case"link":je("error",e),je("load",e),u=r;break;case"details":je("toggle",e),u=r;break;case"input":tu(e,r),u=jr(e,r),je("invalid",e);break;case"option":u=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},u=q({},r,{value:void 0}),je("invalid",e);break;case"textarea":ru(e,r),u=zr(e,r),je("invalid",e);break;default:u=r}Er(i,u),v=u;for(m in v)if(v.hasOwnProperty(m)){var x=v[m];m==="style"?mu(e,x):m==="dangerouslySetInnerHTML"?(x=x?x.__html:void 0,x!=null&&uu(e,x)):m==="children"?typeof x=="string"?(i!=="textarea"||x!=="")&&Ut(e,x):typeof x=="number"&&Ut(e,""+x):m!=="suppressContentEditableWarning"&&m!=="suppressHydrationWarning"&&m!=="autoFocus"&&(d.hasOwnProperty(m)?x!=null&&m==="onScroll"&&je("scroll",e):x!=null&&K(e,m,x,k))}switch(i){case"input":un(e),su(e,r,!1);break;case"textarea":un(e),lu(e);break;case"option":r.value!=null&&e.setAttribute("value",""+Ae(r.value));break;case"select":e.multiple=!!r.multiple,m=r.value,m!=null?it(e,!!r.multiple,m,!1):r.defaultValue!=null&&it(e,!!r.multiple,r.defaultValue,!0);break;default:typeof u.onClick=="function"&&(e.onclick=ys)}switch(i){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(a.flags|=4)}a.ref!==null&&(a.flags|=512,a.flags|=2097152)}return na(a),null;case 6:if(e&&a.stateNode!=null)Lm(e,a,e.memoizedProps,r);else{if(typeof r!="string"&&a.stateNode===null)throw Error(s(166));if(i=qn(bi.current),qn(Fa.current),Ss(a)){if(r=a.stateNode,i=a.memoizedProps,r[Va]=a,(m=r.nodeValue!==i)&&(e=ka,e!==null))switch(e.tag){case 3:bs(r.nodeValue,i,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&bs(r.nodeValue,i,(e.mode&1)!==0)}m&&(a.flags|=4)}else r=(i.nodeType===9?i:i.ownerDocument).createTextNode(r),r[Va]=a,a.stateNode=r}return na(a),null;case 13:if(Ce(Te),r=a.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(ze&&ba!==null&&(a.mode&1)!==0&&(a.flags&128)===0)Sc(),yt(),a.flags|=98560,m=!1;else if(m=Ss(a),r!==null&&r.dehydrated!==null){if(e===null){if(!m)throw Error(s(318));if(m=a.memoizedState,m=m!==null?m.dehydrated:null,!m)throw Error(s(317));m[Va]=a}else yt(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;na(a),m=!1}else za!==null&&(ml(za),za=null),m=!0;if(!m)return a.flags&65536?a:null}return(a.flags&128)!==0?(a.lanes=i,a):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(a.child.flags|=8192,(a.mode&1)!==0&&(e===null||(Te.current&1)!==0?qe===0&&(qe=3):hl())),a.updateQueue!==null&&(a.flags|=4),na(a),null);case 4:return Lt(),al(e,a),e===null&&ci(a.stateNode.containerInfo),na(a),null;case 10:return jo(a.type._context),na(a),null;case 17:return ca(a.type)&&As(),na(a),null;case 19:if(Ce(Te),m=a.memoizedState,m===null)return na(a),null;if(r=(a.flags&128)!==0,k=m.rendering,k===null)if(r)Li(m,!1);else{if(qe!==0||e!==null&&(e.flags&128)!==0)for(e=a.child;e!==null;){if(k=zs(e),k!==null){for(a.flags|=128,Li(m,!1),r=k.updateQueue,r!==null&&(a.updateQueue=r,a.flags|=4),a.subtreeFlags=0,r=i,i=a.child;i!==null;)m=i,e=r,m.flags&=14680066,k=m.alternate,k===null?(m.childLanes=0,m.lanes=e,m.child=null,m.subtreeFlags=0,m.memoizedProps=null,m.memoizedState=null,m.updateQueue=null,m.dependencies=null,m.stateNode=null):(m.childLanes=k.childLanes,m.lanes=k.lanes,m.child=k.child,m.subtreeFlags=0,m.deletions=null,m.memoizedProps=k.memoizedProps,m.memoizedState=k.memoizedState,m.updateQueue=k.updateQueue,m.type=k.type,e=k.dependencies,m.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),i=i.sibling;return Me(Te,Te.current&1|2),a.child}e=e.sibling}m.tail!==null&&Be()>It&&(a.flags|=128,r=!0,Li(m,!1),a.lanes=4194304)}else{if(!r)if(e=zs(k),e!==null){if(a.flags|=128,r=!0,i=e.updateQueue,i!==null&&(a.updateQueue=i,a.flags|=4),Li(m,!0),m.tail===null&&m.tailMode==="hidden"&&!k.alternate&&!ze)return na(a),null}else 2*Be()-m.renderingStartTime>It&&i!==1073741824&&(a.flags|=128,r=!0,Li(m,!1),a.lanes=4194304);m.isBackwards?(k.sibling=a.child,a.child=k):(i=m.last,i!==null?i.sibling=k:a.child=k,m.last=k)}return m.tail!==null?(a=m.tail,m.rendering=a,m.tail=a.sibling,m.renderingStartTime=Be(),a.sibling=null,i=Te.current,Me(Te,r?i&1|2:i&1),a):(na(a),null);case 22:case 23:return gl(),r=a.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(a.flags|=8192),r&&(a.mode&1)!==0?(ya&1073741824)!==0&&(na(a),a.subtreeFlags&6&&(a.flags|=8192)):na(a),null;case 24:return null;case 25:return null}throw Error(s(156,a.tag))}function kb(e,a){switch(Lo(a),a.tag){case 1:return ca(a.type)&&As(),e=a.flags,e&65536?(a.flags=e&-65537|128,a):null;case 3:return Lt(),Ce(ua),Ce(ea),No(),e=a.flags,(e&65536)!==0&&(e&128)===0?(a.flags=e&-65537|128,a):null;case 5:return Eo(a),null;case 13:if(Ce(Te),e=a.memoizedState,e!==null&&e.dehydrated!==null){if(a.alternate===null)throw Error(s(340));yt()}return e=a.flags,e&65536?(a.flags=e&-65537|128,a):null;case 19:return Ce(Te),null;case 4:return Lt(),null;case 10:return jo(a.type._context),null;case 22:case 23:return gl(),null;case 24:return null;default:return null}}var Vs=!1,ta=!1,bb=typeof WeakSet=="function"?WeakSet:Set,$=null;function wt(e,a){var i=e.ref;if(i!==null)if(typeof i=="function")try{i(null)}catch(r){Ne(e,a,r)}else i.current=null}function nl(e,a,i){try{i()}catch(r){Ne(e,a,r)}}var Pm=!1;function yb(e,a){if(go=os,e=nc(),so(e)){if("selectionStart"in e)var i={start:e.selectionStart,end:e.selectionEnd};else e:{i=(i=e.ownerDocument)&&i.defaultView||window;var r=i.getSelection&&i.getSelection();if(r&&r.rangeCount!==0){i=r.anchorNode;var u=r.anchorOffset,m=r.focusNode;r=r.focusOffset;try{i.nodeType,m.nodeType}catch{i=null;break e}var k=0,v=-1,x=-1,j=0,G=0,B=e,N=null;a:for(;;){for(var H;B!==i||u!==0&&B.nodeType!==3||(v=k+u),B!==m||r!==0&&B.nodeType!==3||(x=k+r),B.nodeType===3&&(k+=B.nodeValue.length),(H=B.firstChild)!==null;)N=B,B=H;for(;;){if(B===e)break a;if(N===i&&++j===u&&(v=k),N===m&&++G===r&&(x=k),(H=B.nextSibling)!==null)break;B=N,N=B.parentNode}B=H}i=v===-1||x===-1?null:{start:v,end:x}}else i=null}i=i||{start:0,end:0}}else i=null;for(ho={focusedElem:e,selectionRange:i},os=!1,$=a;$!==null;)if(a=$,e=a.child,(a.subtreeFlags&1028)!==0&&e!==null)e.return=a,$=e;else for(;$!==null;){a=$;try{var Z=a.alternate;if((a.flags&1024)!==0)switch(a.tag){case 0:case 11:case 15:break;case 1:if(Z!==null){var ae=Z.memoizedProps,Ke=Z.memoizedState,S=a.stateNode,L=S.getSnapshotBeforeUpdate(a.elementType===a.type?ae:Ta(a.type,ae),Ke);S.__reactInternalSnapshotBeforeUpdate=L}break;case 3:var I=a.stateNode.containerInfo;I.nodeType===1?I.textContent="":I.nodeType===9&&I.documentElement&&I.removeChild(I.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(s(163))}}catch(V){Ne(a,a.return,V)}if(e=a.sibling,e!==null){e.return=a.return,$=e;break}$=a.return}return Z=Pm,Pm=!1,Z}function Pi(e,a,i){var r=a.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var u=r=r.next;do{if((u.tag&e)===e){var m=u.destroy;u.destroy=void 0,m!==void 0&&nl(a,i,m)}u=u.next}while(u!==r)}}function Fs(e,a){if(a=a.updateQueue,a=a!==null?a.lastEffect:null,a!==null){var i=a=a.next;do{if((i.tag&e)===e){var r=i.create;i.destroy=r()}i=i.next}while(i!==a)}}function tl(e){var a=e.ref;if(a!==null){var i=e.stateNode;switch(e.tag){case 5:e=i;break;default:e=i}typeof a=="function"?a(e):a.current=e}}function wm(e){var a=e.alternate;a!==null&&(e.alternate=null,wm(a)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(a=e.stateNode,a!==null&&(delete a[Va],delete a[pi],delete a[yo],delete a[ab],delete a[nb])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Sm(e){return e.tag===5||e.tag===3||e.tag===4}function Im(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Sm(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function il(e,a,i){var r=e.tag;if(r===5||r===6)e=e.stateNode,a?i.nodeType===8?i.parentNode.insertBefore(e,a):i.insertBefore(e,a):(i.nodeType===8?(a=i.parentNode,a.insertBefore(e,i)):(a=i,a.appendChild(e)),i=i._reactRootContainer,i!=null||a.onclick!==null||(a.onclick=ys));else if(r!==4&&(e=e.child,e!==null))for(il(e,a,i),e=e.sibling;e!==null;)il(e,a,i),e=e.sibling}function sl(e,a,i){var r=e.tag;if(r===5||r===6)e=e.stateNode,a?i.insertBefore(e,a):i.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(sl(e,a,i),e=e.sibling;e!==null;)sl(e,a,i),e=e.sibling}var Ze=null,Ea=!1;function Ln(e,a,i){for(i=i.child;i!==null;)Mm(e,a,i),i=i.sibling}function Mm(e,a,i){if(Ka&&typeof Ka.onCommitFiberUnmount=="function")try{Ka.onCommitFiberUnmount(as,i)}catch{}switch(i.tag){case 5:ta||wt(i,a);case 6:var r=Ze,u=Ea;Ze=null,Ln(e,a,i),Ze=r,Ea=u,Ze!==null&&(Ea?(e=Ze,i=i.stateNode,e.nodeType===8?e.parentNode.removeChild(i):e.removeChild(i)):Ze.removeChild(i.stateNode));break;case 18:Ze!==null&&(Ea?(e=Ze,i=i.stateNode,e.nodeType===8?bo(e.parentNode,i):e.nodeType===1&&bo(e,i),ni(e)):bo(Ze,i.stateNode));break;case 4:r=Ze,u=Ea,Ze=i.stateNode.containerInfo,Ea=!0,Ln(e,a,i),Ze=r,Ea=u;break;case 0:case 11:case 14:case 15:if(!ta&&(r=i.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){u=r=r.next;do{var m=u,k=m.destroy;m=m.tag,k!==void 0&&((m&2)!==0||(m&4)!==0)&&nl(i,a,k),u=u.next}while(u!==r)}Ln(e,a,i);break;case 1:if(!ta&&(wt(i,a),r=i.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=i.memoizedProps,r.state=i.memoizedState,r.componentWillUnmount()}catch(v){Ne(i,a,v)}Ln(e,a,i);break;case 21:Ln(e,a,i);break;case 22:i.mode&1?(ta=(r=ta)||i.memoizedState!==null,Ln(e,a,i),ta=r):Ln(e,a,i);break;default:Ln(e,a,i)}}function jm(e){var a=e.updateQueue;if(a!==null){e.updateQueue=null;var i=e.stateNode;i===null&&(i=e.stateNode=new bb),a.forEach(function(r){var u=Mb.bind(null,e,r);i.has(r)||(i.add(r),r.then(u,u))})}}function Ra(e,a){var i=a.deletions;if(i!==null)for(var r=0;r<i.length;r++){var u=i[r];try{var m=e,k=a,v=k;e:for(;v!==null;){switch(v.tag){case 5:Ze=v.stateNode,Ea=!1;break e;case 3:Ze=v.stateNode.containerInfo,Ea=!0;break e;case 4:Ze=v.stateNode.containerInfo,Ea=!0;break e}v=v.return}if(Ze===null)throw Error(s(160));Mm(m,k,u),Ze=null,Ea=!1;var x=u.alternate;x!==null&&(x.return=null),u.return=null}catch(j){Ne(u,a,j)}}if(a.subtreeFlags&12854)for(a=a.child;a!==null;)Cm(a,e),a=a.sibling}function Cm(e,a){var i=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Ra(a,e),qa(e),r&4){try{Pi(3,e,e.return),Fs(3,e)}catch(ae){Ne(e,e.return,ae)}try{Pi(5,e,e.return)}catch(ae){Ne(e,e.return,ae)}}break;case 1:Ra(a,e),qa(e),r&512&&i!==null&&wt(i,i.return);break;case 5:if(Ra(a,e),qa(e),r&512&&i!==null&&wt(i,i.return),e.flags&32){var u=e.stateNode;try{Ut(u,"")}catch(ae){Ne(e,e.return,ae)}}if(r&4&&(u=e.stateNode,u!=null)){var m=e.memoizedProps,k=i!==null?i.memoizedProps:m,v=e.type,x=e.updateQueue;if(e.updateQueue=null,x!==null)try{v==="input"&&m.type==="radio"&&m.name!=null&&iu(u,m),Rr(v,k);var j=Rr(v,m);for(k=0;k<x.length;k+=2){var G=x[k],B=x[k+1];G==="style"?mu(u,B):G==="dangerouslySetInnerHTML"?uu(u,B):G==="children"?Ut(u,B):K(u,G,B,j)}switch(v){case"input":Cr(u,m);break;case"textarea":ou(u,m);break;case"select":var N=u._wrapperState.wasMultiple;u._wrapperState.wasMultiple=!!m.multiple;var H=m.value;H!=null?it(u,!!m.multiple,H,!1):N!==!!m.multiple&&(m.defaultValue!=null?it(u,!!m.multiple,m.defaultValue,!0):it(u,!!m.multiple,m.multiple?[]:"",!1))}u[pi]=m}catch(ae){Ne(e,e.return,ae)}}break;case 6:if(Ra(a,e),qa(e),r&4){if(e.stateNode===null)throw Error(s(162));u=e.stateNode,m=e.memoizedProps;try{u.nodeValue=m}catch(ae){Ne(e,e.return,ae)}}break;case 3:if(Ra(a,e),qa(e),r&4&&i!==null&&i.memoizedState.isDehydrated)try{ni(a.containerInfo)}catch(ae){Ne(e,e.return,ae)}break;case 4:Ra(a,e),qa(e);break;case 13:Ra(a,e),qa(e),u=e.child,u.flags&8192&&(m=u.memoizedState!==null,u.stateNode.isHidden=m,!m||u.alternate!==null&&u.alternate.memoizedState!==null||(ll=Be())),r&4&&jm(e);break;case 22:if(G=i!==null&&i.memoizedState!==null,e.mode&1?(ta=(j=ta)||G,Ra(a,e),ta=j):Ra(a,e),qa(e),r&8192){if(j=e.memoizedState!==null,(e.stateNode.isHidden=j)&&!G&&(e.mode&1)!==0)for($=e,G=e.child;G!==null;){for(B=$=G;$!==null;){switch(N=$,H=N.child,N.tag){case 0:case 11:case 14:case 15:Pi(4,N,N.return);break;case 1:wt(N,N.return);var Z=N.stateNode;if(typeof Z.componentWillUnmount=="function"){r=N,i=N.return;try{a=r,Z.props=a.memoizedProps,Z.state=a.memoizedState,Z.componentWillUnmount()}catch(ae){Ne(r,i,ae)}}break;case 5:wt(N,N.return);break;case 22:if(N.memoizedState!==null){Tm(B);continue}}H!==null?(H.return=N,$=H):Tm(B)}G=G.sibling}e:for(G=null,B=e;;){if(B.tag===5){if(G===null){G=B;try{u=B.stateNode,j?(m=u.style,typeof m.setProperty=="function"?m.setProperty("display","none","important"):m.display="none"):(v=B.stateNode,x=B.memoizedProps.style,k=x!=null&&x.hasOwnProperty("display")?x.display:null,v.style.display=cu("display",k))}catch(ae){Ne(e,e.return,ae)}}}else if(B.tag===6){if(G===null)try{B.stateNode.nodeValue=j?"":B.memoizedProps}catch(ae){Ne(e,e.return,ae)}}else if((B.tag!==22&&B.tag!==23||B.memoizedState===null||B===e)&&B.child!==null){B.child.return=B,B=B.child;continue}if(B===e)break e;for(;B.sibling===null;){if(B.return===null||B.return===e)break e;G===B&&(G=null),B=B.return}G===B&&(G=null),B.sibling.return=B.return,B=B.sibling}}break;case 19:Ra(a,e),qa(e),r&4&&jm(e);break;case 21:break;default:Ra(a,e),qa(e)}}function qa(e){var a=e.flags;if(a&2){try{e:{for(var i=e.return;i!==null;){if(Sm(i)){var r=i;break e}i=i.return}throw Error(s(160))}switch(r.tag){case 5:var u=r.stateNode;r.flags&32&&(Ut(u,""),r.flags&=-33);var m=Im(e);sl(e,m,u);break;case 3:case 4:var k=r.stateNode.containerInfo,v=Im(e);il(e,v,k);break;default:throw Error(s(161))}}catch(x){Ne(e,e.return,x)}e.flags&=-3}a&4096&&(e.flags&=-4097)}function vb(e,a,i){$=e,Dm(e)}function Dm(e,a,i){for(var r=(e.mode&1)!==0;$!==null;){var u=$,m=u.child;if(u.tag===22&&r){var k=u.memoizedState!==null||Vs;if(!k){var v=u.alternate,x=v!==null&&v.memoizedState!==null||ta;v=Vs;var j=ta;if(Vs=k,(ta=x)&&!j)for($=u;$!==null;)k=$,x=k.child,k.tag===22&&k.memoizedState!==null?Em(u):x!==null?(x.return=k,$=x):Em(u);for(;m!==null;)$=m,Dm(m),m=m.sibling;$=u,Vs=v,ta=j}zm(e)}else(u.subtreeFlags&8772)!==0&&m!==null?(m.return=u,$=m):zm(e)}}function zm(e){for(;$!==null;){var a=$;if((a.flags&8772)!==0){var i=a.alternate;try{if((a.flags&8772)!==0)switch(a.tag){case 0:case 11:case 15:ta||Fs(5,a);break;case 1:var r=a.stateNode;if(a.flags&4&&!ta)if(i===null)r.componentDidMount();else{var u=a.elementType===a.type?i.memoizedProps:Ta(a.type,i.memoizedProps);r.componentDidUpdate(u,i.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var m=a.updateQueue;m!==null&&Tc(a,m,r);break;case 3:var k=a.updateQueue;if(k!==null){if(i=null,a.child!==null)switch(a.child.tag){case 5:i=a.child.stateNode;break;case 1:i=a.child.stateNode}Tc(a,k,i)}break;case 5:var v=a.stateNode;if(i===null&&a.flags&4){i=v;var x=a.memoizedProps;switch(a.type){case"button":case"input":case"select":case"textarea":x.autoFocus&&i.focus();break;case"img":x.src&&(i.src=x.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(a.memoizedState===null){var j=a.alternate;if(j!==null){var G=j.memoizedState;if(G!==null){var B=G.dehydrated;B!==null&&ni(B)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(s(163))}ta||a.flags&512&&tl(a)}catch(N){Ne(a,a.return,N)}}if(a===e){$=null;break}if(i=a.sibling,i!==null){i.return=a.return,$=i;break}$=a.return}}function Tm(e){for(;$!==null;){var a=$;if(a===e){$=null;break}var i=a.sibling;if(i!==null){i.return=a.return,$=i;break}$=a.return}}function Em(e){for(;$!==null;){var a=$;try{switch(a.tag){case 0:case 11:case 15:var i=a.return;try{Fs(4,a)}catch(x){Ne(a,i,x)}break;case 1:var r=a.stateNode;if(typeof r.componentDidMount=="function"){var u=a.return;try{r.componentDidMount()}catch(x){Ne(a,u,x)}}var m=a.return;try{tl(a)}catch(x){Ne(a,m,x)}break;case 5:var k=a.return;try{tl(a)}catch(x){Ne(a,k,x)}}}catch(x){Ne(a,a.return,x)}if(a===e){$=null;break}var v=a.sibling;if(v!==null){v.return=a.return,$=v;break}$=a.return}}var Ab=Math.ceil,Ws=U.ReactCurrentDispatcher,rl=U.ReactCurrentOwner,Pa=U.ReactCurrentBatchConfig,ve=0,Qe=null,Ve=null,Xe=0,ya=0,St=bn(0),qe=0,wi=null,_n=0,qs=0,ol=0,Si=null,pa=null,ll=0,It=1/0,nn=null,Us=!1,dl=null,Pn=null,_s=!1,wn=null,Hs=0,Ii=0,ul=null,$s=-1,Qs=0;function oa(){return(ve&6)!==0?Be():$s!==-1?$s:$s=Be()}function Sn(e){return(e.mode&1)===0?1:(ve&2)!==0&&Xe!==0?Xe&-Xe:ib.transition!==null?(Qs===0&&(Qs=Iu()),Qs):(e=Se,e!==0||(e=window.event,e=e===void 0?16:Nu(e.type)),e)}function Na(e,a,i,r){if(50<Ii)throw Ii=0,ul=null,Error(s(185));Zt(e,i,r),((ve&2)===0||e!==Qe)&&(e===Qe&&((ve&2)===0&&(qs|=i),qe===4&&In(e,Xe)),ga(e,r),i===1&&ve===0&&(a.mode&1)===0&&(It=Be()+500,Ls&&vn()))}function ga(e,a){var i=e.callbackNode;ik(e,a);var r=is(e,e===Qe?Xe:0);if(r===0)i!==null&&Pu(i),e.callbackNode=null,e.callbackPriority=0;else if(a=r&-r,e.callbackPriority!==a){if(i!=null&&Pu(i),a===1)e.tag===0?tb(Nm.bind(null,e)):Ac(Nm.bind(null,e)),Yk(function(){(ve&6)===0&&vn()}),i=null;else{switch(Mu(r)){case 1:i=Fr;break;case 4:i=wu;break;case 16:i=es;break;case 536870912:i=Su;break;default:i=es}i=qm(i,Rm.bind(null,e))}e.callbackPriority=a,e.callbackNode=i}}function Rm(e,a){if($s=-1,Qs=0,(ve&6)!==0)throw Error(s(327));var i=e.callbackNode;if(Mt()&&e.callbackNode!==i)return null;var r=is(e,e===Qe?Xe:0);if(r===0)return null;if((r&30)!==0||(r&e.expiredLanes)!==0||a)a=Js(e,r);else{a=r;var u=ve;ve|=2;var m=Om();(Qe!==e||Xe!==a)&&(nn=null,It=Be()+500,$n(e,a));do try{Pb();break}catch(v){Gm(e,v)}while(!0);Mo(),Ws.current=m,ve=u,Ve!==null?a=0:(Qe=null,Xe=0,a=qe)}if(a!==0){if(a===2&&(u=Wr(e),u!==0&&(r=u,a=cl(e,u))),a===1)throw i=wi,$n(e,0),In(e,r),ga(e,Be()),i;if(a===6)In(e,r);else{if(u=e.current.alternate,(r&30)===0&&!xb(u)&&(a=Js(e,r),a===2&&(m=Wr(e),m!==0&&(r=m,a=cl(e,m))),a===1))throw i=wi,$n(e,0),In(e,r),ga(e,Be()),i;switch(e.finishedWork=u,e.finishedLanes=r,a){case 0:case 1:throw Error(s(345));case 2:Qn(e,pa,nn);break;case 3:if(In(e,r),(r&130023424)===r&&(a=ll+500-Be(),10<a)){if(is(e,0)!==0)break;if(u=e.suspendedLanes,(u&r)!==r){oa(),e.pingedLanes|=e.suspendedLanes&u;break}e.timeoutHandle=ko(Qn.bind(null,e,pa,nn),a);break}Qn(e,pa,nn);break;case 4:if(In(e,r),(r&4194240)===r)break;for(a=e.eventTimes,u=-1;0<r;){var k=31-Ca(r);m=1<<k,k=a[k],k>u&&(u=k),r&=~m}if(r=u,r=Be()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Ab(r/1960))-r,10<r){e.timeoutHandle=ko(Qn.bind(null,e,pa,nn),r);break}Qn(e,pa,nn);break;case 5:Qn(e,pa,nn);break;default:throw Error(s(329))}}}return ga(e,Be()),e.callbackNode===i?Rm.bind(null,e):null}function cl(e,a){var i=Si;return e.current.memoizedState.isDehydrated&&($n(e,a).flags|=256),e=Js(e,a),e!==2&&(a=pa,pa=i,a!==null&&ml(a)),e}function ml(e){pa===null?pa=e:pa.push.apply(pa,e)}function xb(e){for(var a=e;;){if(a.flags&16384){var i=a.updateQueue;if(i!==null&&(i=i.stores,i!==null))for(var r=0;r<i.length;r++){var u=i[r],m=u.getSnapshot;u=u.value;try{if(!Da(m(),u))return!1}catch{return!1}}}if(i=a.child,a.subtreeFlags&16384&&i!==null)i.return=a,a=i;else{if(a===e)break;for(;a.sibling===null;){if(a.return===null||a.return===e)return!0;a=a.return}a.sibling.return=a.return,a=a.sibling}}return!0}function In(e,a){for(a&=~ol,a&=~qs,e.suspendedLanes|=a,e.pingedLanes&=~a,e=e.expirationTimes;0<a;){var i=31-Ca(a),r=1<<i;e[i]=-1,a&=~r}}function Nm(e){if((ve&6)!==0)throw Error(s(327));Mt();var a=is(e,0);if((a&1)===0)return ga(e,Be()),null;var i=Js(e,a);if(e.tag!==0&&i===2){var r=Wr(e);r!==0&&(a=r,i=cl(e,r))}if(i===1)throw i=wi,$n(e,0),In(e,a),ga(e,Be()),i;if(i===6)throw Error(s(345));return e.finishedWork=e.current.alternate,e.finishedLanes=a,Qn(e,pa,nn),ga(e,Be()),null}function pl(e,a){var i=ve;ve|=1;try{return e(a)}finally{ve=i,ve===0&&(It=Be()+500,Ls&&vn())}}function Hn(e){wn!==null&&wn.tag===0&&(ve&6)===0&&Mt();var a=ve;ve|=1;var i=Pa.transition,r=Se;try{if(Pa.transition=null,Se=1,e)return e()}finally{Se=r,Pa.transition=i,ve=a,(ve&6)===0&&vn()}}function gl(){ya=St.current,Ce(St)}function $n(e,a){e.finishedWork=null,e.finishedLanes=0;var i=e.timeoutHandle;if(i!==-1&&(e.timeoutHandle=-1,Xk(i)),Ve!==null)for(i=Ve.return;i!==null;){var r=i;switch(Lo(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&As();break;case 3:Lt(),Ce(ua),Ce(ea),No();break;case 5:Eo(r);break;case 4:Lt();break;case 13:Ce(Te);break;case 19:Ce(Te);break;case 10:jo(r.type._context);break;case 22:case 23:gl()}i=i.return}if(Qe=e,Ve=e=Mn(e.current,null),Xe=ya=a,qe=0,wi=null,ol=qs=_n=0,pa=Si=null,Wn!==null){for(a=0;a<Wn.length;a++)if(i=Wn[a],r=i.interleaved,r!==null){i.interleaved=null;var u=r.next,m=i.pending;if(m!==null){var k=m.next;m.next=u,r.next=k}i.pending=r}Wn=null}return e}function Gm(e,a){do{var i=Ve;try{if(Mo(),Ts.current=Gs,Es){for(var r=Ee.memoizedState;r!==null;){var u=r.queue;u!==null&&(u.pending=null),r=r.next}Es=!1}if(Un=0,$e=We=Ee=null,yi=!1,vi=0,rl.current=null,i===null||i.return===null){qe=1,wi=a,Ve=null;break}e:{var m=e,k=i.return,v=i,x=a;if(a=Xe,v.flags|=32768,x!==null&&typeof x=="object"&&typeof x.then=="function"){var j=x,G=v,B=G.tag;if((G.mode&1)===0&&(B===0||B===11||B===15)){var N=G.alternate;N?(G.updateQueue=N.updateQueue,G.memoizedState=N.memoizedState,G.lanes=N.lanes):(G.updateQueue=null,G.memoizedState=null)}var H=lm(k);if(H!==null){H.flags&=-257,dm(H,k,v,m,a),H.mode&1&&om(m,j,a),a=H,x=j;var Z=a.updateQueue;if(Z===null){var ae=new Set;ae.add(x),a.updateQueue=ae}else Z.add(x);break e}else{if((a&1)===0){om(m,j,a),hl();break e}x=Error(s(426))}}else if(ze&&v.mode&1){var Ke=lm(k);if(Ke!==null){(Ke.flags&65536)===0&&(Ke.flags|=256),dm(Ke,k,v,m,a),So(Pt(x,v));break e}}m=x=Pt(x,v),qe!==4&&(qe=2),Si===null?Si=[m]:Si.push(m),m=k;do{switch(m.tag){case 3:m.flags|=65536,a&=-a,m.lanes|=a;var S=sm(m,x,a);zc(m,S);break e;case 1:v=x;var L=m.type,I=m.stateNode;if((m.flags&128)===0&&(typeof L.getDerivedStateFromError=="function"||I!==null&&typeof I.componentDidCatch=="function"&&(Pn===null||!Pn.has(I)))){m.flags|=65536,a&=-a,m.lanes|=a;var V=rm(m,v,a);zc(m,V);break e}}m=m.return}while(m!==null)}Km(i)}catch(ne){a=ne,Ve===i&&i!==null&&(Ve=i=i.return);continue}break}while(!0)}function Om(){var e=Ws.current;return Ws.current=Gs,e===null?Gs:e}function hl(){(qe===0||qe===3||qe===2)&&(qe=4),Qe===null||(_n&268435455)===0&&(qs&268435455)===0||In(Qe,Xe)}function Js(e,a){var i=ve;ve|=2;var r=Om();(Qe!==e||Xe!==a)&&(nn=null,$n(e,a));do try{Lb();break}catch(u){Gm(e,u)}while(!0);if(Mo(),ve=i,Ws.current=r,Ve!==null)throw Error(s(261));return Qe=null,Xe=0,qe}function Lb(){for(;Ve!==null;)Bm(Ve)}function Pb(){for(;Ve!==null&&!Qf();)Bm(Ve)}function Bm(e){var a=Wm(e.alternate,e,ya);e.memoizedProps=e.pendingProps,a===null?Km(e):Ve=a,rl.current=null}function Km(e){var a=e;do{var i=a.alternate;if(e=a.return,(a.flags&32768)===0){if(i=fb(i,a,ya),i!==null){Ve=i;return}}else{if(i=kb(i,a),i!==null){i.flags&=32767,Ve=i;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{qe=6,Ve=null;return}}if(a=a.sibling,a!==null){Ve=a;return}Ve=a=e}while(a!==null);qe===0&&(qe=5)}function Qn(e,a,i){var r=Se,u=Pa.transition;try{Pa.transition=null,Se=1,wb(e,a,i,r)}finally{Pa.transition=u,Se=r}return null}function wb(e,a,i,r){do Mt();while(wn!==null);if((ve&6)!==0)throw Error(s(327));i=e.finishedWork;var u=e.finishedLanes;if(i===null)return null;if(e.finishedWork=null,e.finishedLanes=0,i===e.current)throw Error(s(177));e.callbackNode=null,e.callbackPriority=0;var m=i.lanes|i.childLanes;if(sk(e,m),e===Qe&&(Ve=Qe=null,Xe=0),(i.subtreeFlags&2064)===0&&(i.flags&2064)===0||_s||(_s=!0,qm(es,function(){return Mt(),null})),m=(i.flags&15990)!==0,(i.subtreeFlags&15990)!==0||m){m=Pa.transition,Pa.transition=null;var k=Se;Se=1;var v=ve;ve|=4,rl.current=null,yb(e,i),Cm(i,e),Uk(ho),os=!!go,ho=go=null,e.current=i,vb(i),Jf(),ve=v,Se=k,Pa.transition=m}else e.current=i;if(_s&&(_s=!1,wn=e,Hs=u),m=e.pendingLanes,m===0&&(Pn=null),Yf(i.stateNode),ga(e,Be()),a!==null)for(r=e.onRecoverableError,i=0;i<a.length;i++)u=a[i],r(u.value,{componentStack:u.stack,digest:u.digest});if(Us)throw Us=!1,e=dl,dl=null,e;return(Hs&1)!==0&&e.tag!==0&&Mt(),m=e.pendingLanes,(m&1)!==0?e===ul?Ii++:(Ii=0,ul=e):Ii=0,vn(),null}function Mt(){if(wn!==null){var e=Mu(Hs),a=Pa.transition,i=Se;try{if(Pa.transition=null,Se=16>e?16:e,wn===null)var r=!1;else{if(e=wn,wn=null,Hs=0,(ve&6)!==0)throw Error(s(331));var u=ve;for(ve|=4,$=e.current;$!==null;){var m=$,k=m.child;if(($.flags&16)!==0){var v=m.deletions;if(v!==null){for(var x=0;x<v.length;x++){var j=v[x];for($=j;$!==null;){var G=$;switch(G.tag){case 0:case 11:case 15:Pi(8,G,m)}var B=G.child;if(B!==null)B.return=G,$=B;else for(;$!==null;){G=$;var N=G.sibling,H=G.return;if(wm(G),G===j){$=null;break}if(N!==null){N.return=H,$=N;break}$=H}}}var Z=m.alternate;if(Z!==null){var ae=Z.child;if(ae!==null){Z.child=null;do{var Ke=ae.sibling;ae.sibling=null,ae=Ke}while(ae!==null)}}$=m}}if((m.subtreeFlags&2064)!==0&&k!==null)k.return=m,$=k;else e:for(;$!==null;){if(m=$,(m.flags&2048)!==0)switch(m.tag){case 0:case 11:case 15:Pi(9,m,m.return)}var S=m.sibling;if(S!==null){S.return=m.return,$=S;break e}$=m.return}}var L=e.current;for($=L;$!==null;){k=$;var I=k.child;if((k.subtreeFlags&2064)!==0&&I!==null)I.return=k,$=I;else e:for(k=L;$!==null;){if(v=$,(v.flags&2048)!==0)try{switch(v.tag){case 0:case 11:case 15:Fs(9,v)}}catch(ne){Ne(v,v.return,ne)}if(v===k){$=null;break e}var V=v.sibling;if(V!==null){V.return=v.return,$=V;break e}$=v.return}}if(ve=u,vn(),Ka&&typeof Ka.onPostCommitFiberRoot=="function")try{Ka.onPostCommitFiberRoot(as,e)}catch{}r=!0}return r}finally{Se=i,Pa.transition=a}}return!1}function Vm(e,a,i){a=Pt(i,a),a=sm(e,a,1),e=xn(e,a,1),a=oa(),e!==null&&(Zt(e,1,a),ga(e,a))}
vendor: 5,010 bytes, line 41
41function Ne(e,a,i){if(e.tag===3)Vm(e,e,i);else for(;a!==null;){if(a.tag===3){Vm(a,e,i);break}else if(a.tag===1){var r=a.stateNode;if(typeof a.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(Pn===null||!Pn.has(r))){e=Pt(i,e),e=rm(a,e,1),a=xn(a,e,1),e=oa(),a!==null&&(Zt(a,1,e),ga(a,e));break}}a=a.return}}function Sb(e,a,i){var r=e.pingCache;r!==null&&r.delete(a),a=oa(),e.pingedLanes|=e.suspendedLanes&i,Qe===e&&(Xe&i)===i&&(qe===4||qe===3&&(Xe&130023424)===Xe&&500>Be()-ll?$n(e,0):ol|=i),ga(e,a)}function Fm(e,a){a===0&&((e.mode&1)===0?a=1:(a=ts,ts<<=1,(ts&130023424)===0&&(ts=4194304)));var i=oa();e=Ya(e,a),e!==null&&(Zt(e,a,i),ga(e,i))}function Ib(e){var a=e.memoizedState,i=0;a!==null&&(i=a.retryLane),Fm(e,i)}function Mb(e,a){var i=0;switch(e.tag){case 13:var r=e.stateNode,u=e.memoizedState;u!==null&&(i=u.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(s(314))}r!==null&&r.delete(a),Fm(e,i)}var Wm;Wm=function(e,a,i){if(e!==null)if(e.memoizedProps!==a.pendingProps||ua.current)ma=!0;else{if((e.lanes&i)===0&&(a.flags&128)===0)return ma=!1,hb(e,a,i);ma=(e.flags&131072)!==0}else ma=!1,ze&&(a.flags&1048576)!==0&&xc(a,ws,a.index);switch(a.lanes=0,a.tag){case 2:var r=a.type;Ks(e,a),e=a.pendingProps;var u=ft(a,ea.current);xt(a,i),u=Bo(null,a,r,e,u,i);var m=Ko();return a.flags|=1,typeof u=="object"&&u!==null&&typeof u.render=="function"&&u.$$typeof===void 0?(a.tag=1,a.memoizedState=null,a.updateQueue=null,ca(r)?(m=!0,xs(a)):m=!1,a.memoizedState=u.state!==null&&u.state!==void 0?u.state:null,zo(a),u.updater=Os,a.stateNode=u,u._reactInternals=a,_o(a,r,e,i),a=Jo(null,a,r,!0,m,i)):(a.tag=0,ze&&m&&xo(a),ra(null,a,u,i),a=a.child),a;case 16:r=a.elementType;e:{switch(Ks(e,a),e=a.pendingProps,u=r._init,r=u(r._payload),a.type=r,u=a.tag=Cb(r),e=Ta(r,e),u){case 0:a=Qo(null,a,r,e,i);break e;case 1:a=hm(null,a,r,e,i);break e;case 11:a=um(null,a,r,e,i);break e;case 14:a=cm(null,a,r,Ta(r.type,e),i);break e}throw Error(s(306,r,""))}return a;case 0:return r=a.type,u=a.pendingProps,u=a.elementType===r?u:Ta(r,u),Qo(e,a,r,u,i);case 1:return r=a.type,u=a.pendingProps,u=a.elementType===r?u:Ta(r,u),hm(e,a,r,u,i);case 3:e:{if(fm(a),e===null)throw Error(s(387));r=a.pendingProps,m=a.memoizedState,u=m.element,Dc(e,a),Ds(a,r,null,i);var k=a.memoizedState;if(r=k.element,m.isDehydrated)if(m={element:r,isDehydrated:!1,cache:k.cache,pendingSuspenseBoundaries:k.pendingSuspenseBoundaries,transitions:k.transitions},a.updateQueue.baseState=m,a.memoizedState=m,a.flags&256){u=Pt(Error(s(423)),a),a=km(e,a,r,i,u);break e}else if(r!==u){u=Pt(Error(s(424)),a),a=km(e,a,r,i,u);break e}else for(ba=kn(a.stateNode.containerInfo.firstChild),ka=a,ze=!0,za=null,i=jc(a,null,r,i),a.child=i;i;)i.flags=i.flags&-3|4096,i=i.sibling;else{if(yt(),r===u){a=an(e,a,i);break e}ra(e,a,r,i)}a=a.child}return a;case 5:return Ec(a),e===null&&wo(a),r=a.type,u=a.pendingProps,m=e!==null?e.memoizedProps:null,k=u.children,fo(r,u)?k=null:m!==null&&fo(r,m)&&(a.flags|=32),gm(e,a),ra(e,a,k,i),a.child;case 6:return e===null&&wo(a),null;case 13:return bm(e,a,i);case 4:return To(a,a.stateNode.containerInfo),r=a.pendingProps,e===null?a.child=vt(a,null,r,i):ra(e,a,r,i),a.child;case 11:return r=a.type,u=a.pendingProps,u=a.elementType===r?u:Ta(r,u),um(e,a,r,u,i);case 7:return ra(e,a,a.pendingProps,i),a.child;case 8:return ra(e,a,a.pendingProps.children,i),a.child;case 12:return ra(e,a,a.pendingProps.children,i),a.child;case 10:e:{if(r=a.type._context,u=a.pendingProps,m=a.memoizedProps,k=u.value,Me(Ms,r._currentValue),r._currentValue=k,m!==null)if(Da(m.value,k)){if(m.children===u.children&&!ua.current){a=an(e,a,i);break e}}else for(m=a.child,m!==null&&(m.return=a);m!==null;){var v=m.dependencies;if(v!==null){k=m.child;for(var x=v.firstContext;x!==null;){if(x.context===r){if(m.tag===1){x=en(-1,i&-i),x.tag=2;var j=m.updateQueue;if(j!==null){j=j.shared;var G=j.pending;G===null?x.next=x:(x.next=G.next,G.next=x),j.pending=x}}m.lanes|=i,x=m.alternate,x!==null&&(x.lanes|=i),Co(m.return,i,a),v.lanes|=i;break}x=x.next}}else if(m.tag===10)k=m.type===a.type?null:m.child;else if(m.tag===18){if(k=m.return,k===null)throw Error(s(341));k.lanes|=i,v=k.alternate,v!==null&&(v.lanes|=i),Co(k,i,a),k=m.sibling}else k=m.child;if(k!==null)k.return=m;else for(k=m;k!==null;){if(k===a){k=null;break}if(m=k.sibling,m!==null){m.return=k.return,k=m;break}k=k.return}m=k}ra(e,a,u.children,i),a=a.child}return a;case 9:return u=a.type,r=a.pendingProps.children,xt(a,i),u=xa(u),r=r(u),a.flags|=1,ra(e,a,r,i),a.child;case 14:return r=a.type,u=Ta(r,a.pendingProps),u=Ta(r.type,u),cm(e,a,r,u,i);case 15:return mm(e,a,a.type,a.pendingProps,i);case 17:return r=a.type,u=a.pendingProps,u=a.elementType===r?u:Ta(r,u),Ks(e,a),a.tag=1,ca(r)?(e=!0,xs(a)):e=!1,xt(a,i),tm(a,r,u),_o(a,r,u,i),Jo(null,a,r,!0,e,i);case 19:return vm(e,a,i);case 22:return pm(e,a,i)}throw Error(s(156,a.tag))};function qm(e,a){return Lu(e,a)}function jb(e,a,i,r){this.tag=e,this.key=i,this.sibling=this.child=this.return=this.stateNode=this.t
vendor: 9,935 bytes, line 41
41ype=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=a,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function wa(e,a,i,r){return new jb(e,a,i,r)}function fl(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Cb(e){if(typeof e=="function")return fl(e)?1:0;if(e!=null){if(e=e.$$typeof,e===pe)return 11;if(e===me)return 14}return 2}function Mn(e,a){var i=e.alternate;return i===null?(i=wa(e.tag,a,e.key,e.mode),i.elementType=e.elementType,i.type=e.type,i.stateNode=e.stateNode,i.alternate=e,e.alternate=i):(i.pendingProps=a,i.type=e.type,i.flags=0,i.subtreeFlags=0,i.deletions=null),i.flags=e.flags&14680064,i.childLanes=e.childLanes,i.lanes=e.lanes,i.child=e.child,i.memoizedProps=e.memoizedProps,i.memoizedState=e.memoizedState,i.updateQueue=e.updateQueue,a=e.dependencies,i.dependencies=a===null?null:{lanes:a.lanes,firstContext:a.firstContext},i.sibling=e.sibling,i.index=e.index,i.ref=e.ref,i}function Zs(e,a,i,r,u,m){var k=2;if(r=e,typeof e=="function")fl(e)&&(k=1);else if(typeof e=="string")k=5;else e:switch(e){case de:return Jn(i.children,u,m,a);case O:k=8,u|=8;break;case _:return e=wa(12,i,a,u|2),e.elementType=_,e.lanes=m,e;case ke:return e=wa(13,i,a,u),e.elementType=ke,e.lanes=m,e;case Ie:return e=wa(19,i,a,u),e.elementType=Ie,e.lanes=m,e;case se:return Xs(i,u,m,a);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case te:k=10;break e;case be:k=9;break e;case pe:k=11;break e;case me:k=14;break e;case Le:k=16,r=null;break e}throw Error(s(130,e==null?e:typeof e,""))}return a=wa(k,i,a,u),a.elementType=e,a.type=r,a.lanes=m,a}function Jn(e,a,i,r){return e=wa(7,e,r,a),e.lanes=i,e}function Xs(e,a,i,r){return e=wa(22,e,r,a),e.elementType=se,e.lanes=i,e.stateNode={isHidden:!1},e}function kl(e,a,i){return e=wa(6,e,null,a),e.lanes=i,e}function bl(e,a,i){return a=wa(4,e.children!==null?e.children:[],e.key,a),a.lanes=i,a.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},a}function Db(e,a,i,r,u){this.tag=a,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=qr(0),this.expirationTimes=qr(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=qr(0),this.identifierPrefix=r,this.onRecoverableError=u,this.mutableSourceEagerHydrationData=null}function yl(e,a,i,r,u,m,k,v,x){return e=new Db(e,a,i,v,x),a===1?(a=1,m===!0&&(a|=8)):a=0,m=wa(3,null,null,a),e.current=m,m.stateNode=e,m.memoizedState={element:r,isDehydrated:i,cache:null,transitions:null,pendingSuspenseBoundaries:null},zo(m),e}function zb(e,a,i){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:J,key:r==null?null:""+r,children:e,containerInfo:a,implementation:i}}function Um(e){if(!e)return yn;e=e._reactInternals;e:{if(On(e)!==e||e.tag!==1)throw Error(s(170));var a=e;do{switch(a.tag){case 3:a=a.stateNode.context;break e;case 1:if(ca(a.type)){a=a.stateNode.__reactInternalMemoizedMergedChildContext;break e}}a=a.return}while(a!==null);throw Error(s(171))}if(e.tag===1){var i=e.type;if(ca(i))return yc(e,i,a)}return a}function _m(e,a,i,r,u,m,k,v,x){return e=yl(i,r,!0,e,u,m,k,v,x),e.context=Um(null),i=e.current,r=oa(),u=Sn(i),m=en(r,u),m.callback=a??null,xn(i,m,u),e.current.lanes=u,Zt(e,u,r),ga(e,r),e}function Ys(e,a,i,r){var u=a.current,m=oa(),k=Sn(u);return i=Um(i),a.context===null?a.context=i:a.pendingContext=i,a=en(m,k),a.payload={element:e},r=r===void 0?null:r,r!==null&&(a.callback=r),e=xn(u,a,k),e!==null&&(Na(e,u,k,m),Cs(e,u,k)),k}function er(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function Hm(e,a){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var i=e.retryLane;e.retryLane=i!==0&&i<a?i:a}}function vl(e,a){Hm(e,a),(e=e.alternate)&&Hm(e,a)}function Tb(){return null}var $m=typeof reportError=="function"?reportError:function(e){console.error(e)};function Al(e){this._internalRoot=e}ar.prototype.render=Al.prototype.render=function(e){var a=this._internalRoot;if(a===null)throw Error(s(409));Ys(e,a,null,null)},ar.prototype.unmount=Al.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var a=e.containerInfo;Hn(function(){Ys(null,e,null,null)}),a[Qa]=null}};function ar(e){this._internalRoot=e}ar.prototype.unstable_scheduleHydration=function(e){if(e){var a=Du();e={blockedOn:null,target:e,priority:a};for(var i=0;i<gn.length&&a!==0&&a<gn[i].priority;i++);gn.splice(i,0,e),i===0&&Eu(e)}};function xl(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function nr(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Qm(){}function Eb(e,a,i,r,u){if(u){if(typeof r=="function"){var m=r;r=function(){var j=er(k);m.call(j)}}var k=_m(a,r,e,0,null,!1,!1,"",Qm);return e._reactRootContainer=k,e[Qa]=k.current,ci(e.nodeType===8?e.parentNode:e),Hn(),k}for(;u=e.lastChild;)e.removeChild(u);if(typeof r=="function"){var v=r;r=function(){var j=er(x);v.call(j)}}var x=yl(e,0,!1,null,null,!1,!1,"",Qm);return e._reactRootContainer=x,e[Qa]=x.current,ci(e.nodeType===8?e.parentNode:e),Hn(function(){Ys(a,x,i,r)}),x}function tr(e,a,i,r,u){var m=i._reactRootContainer;if(m){var k=m;if(typeof u=="function"){var v=u;u=function(){var x=er(k);v.call(x)}}Ys(a,k,e,u)}else k=Eb(i,a,e,u,r);return er(k)}ju=function(e){switch(e.tag){case 3:var a=e.stateNode;if(a.current.memoizedState.isDehydrated){var i=Jt(a.pendingLanes);i!==0&&(Ur(a,i|1),ga(a,Be()),(ve&6)===0&&(It=Be()+500,vn()))}break;case 13:Hn(function(){var r=Ya(e,1);if(r!==null){var u=oa();Na(r,e,1,u)}}),vl(e,1)}},_r=function(e){if(e.tag===13){var a=Ya(e,134217728);if(a!==null){var i=oa();Na(a,e,134217728,i)}vl(e,134217728)}},Cu=function(e){if(e.tag===13){var a=Sn(e),i=Ya(e,a);if(i!==null){var r=oa();Na(i,e,a,r)}vl(e,a)}},Du=function(){return Se},zu=function(e,a){var i=Se;try{return Se=e,a()}finally{Se=i}},Or=function(e,a,i){switch(a){case"input":if(Cr(e,i),a=i.name,i.type==="radio"&&a!=null){for(i=e;i.parentNode;)i=i.parentNode;for(i=i.querySelectorAll("input[name="+JSON.stringify(""+a)+'][type="radio"]'),a=0;a<i.length;a++){var r=i[a];if(r!==e&&r.form===e.form){var u=vs(r);if(!u)throw Error(s(90));Gn(r),Cr(r,u)}}}break;case"textarea":ou(e,i);break;case"select":a=i.value,a!=null&&it(e,!!i.multiple,a,!1)}},fu=pl,ku=Hn;var Rb={usingClientEntryPoint:!1,Events:[gi,gt,vs,gu,hu,pl]},Mi={findFiberByHostInstance:Bn,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},Nb={bundleType:Mi.bundleType,version:Mi.version,rendererPackageName:Mi.rendererPackageName,rendererConfig:Mi.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:U.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=Au(e),e===null?null:e.stateNode},findFiberByHostInstance:Mi.findFiberByHostInstance||Tb,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var ir=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ir.isDisabled&&ir.supportsFiber)try{as=ir.inject(Nb),Ka=ir}catch{}}return ha.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Rb,ha.createPortal=function(e,a){var i=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!xl(a))throw Error(s(200));return zb(e,a,null,i)},ha.createRoot=function(e,a){if(!xl(e))throw Error(s(299));var i=!1,r="",u=$m;return a!=null&&(a.unstable_strictMode===!0&&(i=!0),a.identifierPrefix!==void 0&&(r=a.identifierPrefix),a.onRecoverableError!==void 0&&(u=a.onRecoverableError)),a=yl(e,1,!1,null,null,i,!1,r,u),e[Qa]=a.current,ci(e.nodeType===8?e.parentNode:e),new Al(a)},ha.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var a=e._reactInternals;if(a===void 0)throw typeof e.render=="function"?Error(s(188)):(e=Object.keys(e).join(","),Error(s(268,e)));return e=Au(a),e=e===null?null:e.stateNode,e},ha.flushSync=function(e){return Hn(e)},ha.hydrate=function(e,a,i){if(!nr(a))throw Error(s(200));return tr(null,e,a,!0,i)},ha.hydrateRoot=function(e,a,i){if(!xl(e))throw Error(s(405));var r=i!=null&&i.hydratedSources||null,u=!1,m="",k=$m;if(i!=null&&(i.unstable_strictMode===!0&&(u=!0),i.identifierPrefix!==void 0&&(m=i.identifierPrefix),i.onRecoverableError!==void 0&&(k=i.onRecoverableError)),a=_m(a,null,e,1,i??null,u,!1,m,k),e[Qa]=a.current,ci(e),r)for(e=0;e<r.length;e++)i=r[e],u=i._getVersion,u=u(i._source),a.mutableSourceEagerHydrationData==null?a.mutableSourceEagerHydrationData=[i,u]:a.mutableSourceEagerHydrationData.push(i,u);return new ar(a)},ha.render=function(e,a,i){if(!nr(a))throw Error(s(200));return tr(null,e,a,!1,i)},ha.unmountComponentAtNode=function(e){if(!nr(e))throw Error(s(40));return e._reactRootContainer?(Hn(function(){tr(null,null,e,!1,function(){e._reactRootContainer=null,e[Qa]=null})}),!0):!1},ha.unstable_batchedUpdates=pl,ha.unstable_renderSubtreeIntoContainer=function(e,a,i,r){if(!nr(i))throw Error(s(200));if(e==null||e._reactInternals===void 0)throw Error(s(38));return tr(e,a,i,!1,r)},ha.version="18.3.1-next-f1338f8080-20240426",ha}var tp;function Tg(){if(tp)return wl.exports;tp=1;function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(t){console.error(t)}}
vendor: 4,672 bytes, lines 41-91
41return n(),wl.exports=Ub(),wl.exports}var ip;function _b(){if(ip)return sr;ip=1;var n=Tg();return sr.createRoot=n.createRoot,sr.hydrateRoot=n.hydrateRoot,sr}var Hb=_b(),T=Ad();const $b=Bb(T),Qb=Ob({__proto__:null,default:$b},[T]);/**
42 * @license lucide-react v0.487.0 - ISC
43 *
44 * This source code is licensed under the ISC license.
45 * See the LICENSE file in the root directory of this source tree.
46 */const Jb=n=>n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Zb=n=>n.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,s,o)=>o?o.toUpperCase():s.toLowerCase()),sp=n=>{const t=Zb(n);return t.charAt(0).toUpperCase()+t.slice(1)},Eg=(...n)=>n.filter((t,s,o)=>!!t&&t.trim()!==""&&o.indexOf(t)===s).join(" ").trim();/**
47 * @license lucide-react v0.487.0 - ISC
48 *
49 * This source code is licensed under the ISC license.
50 * See the LICENSE file in the root directory of this source tree.
51 */var Xb={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/**
52 * @license lucide-react v0.487.0 - ISC
53 *
54 * This source code is licensed under the ISC license.
55 * See the LICENSE file in the root directory of this source tree.
56 */const Yb=T.forwardRef(({color:n="currentColor",size:t=24,strokeWidth:s=2,absoluteStrokeWidth:o,className:d="",children:p,iconNode:c,...g},h)=>T.createElement("svg",{ref:h,...Xb,width:t,height:t,stroke:n,strokeWidth:o?Number(s)*24/Number(t):s,className:Eg("lucide",d),...g},[...c.map(([b,f])=>T.createElement(b,f)),...Array.isArray(p)?p:[p]]));/**
57 * @license lucide-react v0.487.0 - ISC
58 *
59 * This source code is licensed under the ISC license.
60 * See the LICENSE file in the root directory of this source tree.
61 */const Pe=(n,t)=>{const s=T.forwardRef(({className:o,...d},p)=>T.createElement(Yb,{ref:p,iconNode:t,className:Eg(`lucide-${Jb(sp(n))}`,`lucide-${n}`,o),...d}));return s.displayName=sp(n),s};/**
62 * @license lucide-react v0.487.0 - ISC
63 *
64 * This source code is licensed under the ISC license.
65 * See the LICENSE file in the root directory of this source tree.
66 */const ey=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],ay=Pe("activity",ey);/**
67 * @license lucide-react v0.487.0 - ISC
68 *
69 * This source code is licensed under the ISC license.
70 * See the LICENSE file in the root directory of this source tree.
71 */const ny=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],wr=Pe("arrow-right",ny);/**
72 * @license lucide-react v0.487.0 - ISC
73 *
74 * This source code is licensed under the ISC license.
75 * See the LICENSE file in the root directory of this source tree.
76 */const ty=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],Rg=Pe("bot",ty);/**
77 * @license lucide-react v0.487.0 - ISC
78 *
79 * This source code is licensed under the ISC license.
80 * See the LICENSE file in the root directory of this source tree.
81 */const iy=[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]],sy=Pe("brain",iy);/**
82 * @license lucide-react v0.487.0 - ISC
83 *
84 * This source code is licensed under the ISC license.
85 * See the LICENSE file in the root directory of this source tree.
86 */const ry=[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]],oy=Pe("briefcase",ry);/**
87 * @license lucide-react v0.487.0 - ISC
88 *
89 * This source code is licensed under the ISC license.
90 * See the LICENSE file in the root directory of this source tree.
91 */const ly=[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}
91],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]],xd=Pe("building-2",ly);/**
92 * @license lucide-react v0.487.0 - ISC
93 *
94 * This source code is licensed under the ISC license.
95 * See the LICENSE file in the root directory of this source tree.
96 */const dy=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],uy=Pe("chart-column",dy);/**
97 * @license lucide-react v0.487.0 - ISC
98 *
99 * This source code is licensed under the ISC license.
100 * See the LICENSE file in the root directory of this source tree.
101 */const cy=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],my=Pe("chevron-down",cy);/**
102 * @license lucide-react v0.487.0 - ISC
103 *
104 * This source code is licensed under the ISC license.
105 * See the LICENSE file in the root directory of this source tree.
106 */const py=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],gy=Pe("chevron-up",py);/**
107 * @license lucide-react v0.487.0 - ISC
108 *
109 * This source code is licensed under the ISC license.
110 * See the LICENSE file in the root directory of this source tree.
111 */const hy=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]],fy=Pe("cloud",hy);/**
112 * @license lucide-react v0.487.0 - ISC
113 *
114 * This source code is licensed under the ISC license.
115 * See the LICENSE file in the root directory of this source tree.
116 */const ky=[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]],Nt=Pe("code-xml",ky);/**
117 * @license lucide-react v0.487.0 - ISC
118 *
119 * This source code is licensed under the ISC license.
120 * See the LICENSE file in the root directory of this source tree.
121 */const by=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],tt=Pe("database",by);/**
122 * @license lucide-react v0.487.0 - ISC
123 *
124 * This source code is licensed under the ISC license.
125 * See the LICENSE file in the root directory of this source tree.
126 */const yy=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],rp=Pe("external-link",yy);/**
127 * @license lucide-react v0.487.0 - ISC
128 *
129 * This source code is licensed under the ISC license.
130 * See the LICENSE file in the root directory of this source tree.
131 */const vy=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],Ay=Pe("file-text",vy);/**
132 * @license lucide-react v0.487.0 - ISC
133 *
134 * This source code is licensed under the ISC license.
135 * See the LICENSE file in the root directory of this source tree.
136 */const xy=[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]],Ly=Pe("git-branch",xy);/**
137 * @license lucide-react v0.487.0 - ISC
138 *
139 * This source code is licensed under the ISC license.
140 * See the LICENSE file in the root directory of this source tree.
141 */const Py=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],Ld=Pe("globe",Py);/**
142 * @license lucide-react v0.487.0 - ISC
143 *
144 * This source code is licensed under the ISC license.
145 * See the LICENSE file in the root directory of this source tree.
146 */const wy=[["path",{d:"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3",key:"1xhozi"}]],Sy=Pe("headphones",wy);/**
147 * @license lucide-react v0.487.0 - ISC
148 *
149 * This source code is licensed under the ISC license.
150 * See the LICENSE file in the root directory of this source tree.
151 */const Iy=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],Ng=Pe("lock",Iy);/**
152 * @license lucide-react v0.487.0 - ISC
153 *
154 * This source code is licensed under the ISC license.
155 * See the LICENSE file in the root directory of this source tree.
156 */const My=[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]],jy=Pe("mail",My);/**
157 * @license lucide-react v0.487.0 - ISC
158 *
159 * This source code is licensed under the ISC license.
160 * See the LICENSE file in the root directory of this source tree.
161 */const Cy=[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]],Dy=Pe("menu",Cy);/**
162 * @license lucide-react v0.487.0 - ISC
163 *
164 * This source code is licensed under the ISC license.
165 * See the LICENSE file in the root directory of this source tree.
166 */const zy=[["path",{d:"M15 18h-5",key:"95g1m2"}],["path",{d:"M18 14h-8",key:"sponae"}],["path",{d:"M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2",key:"39pd36"}
166],["rect",{width:"8",height:"4",x:"10",y:"6",rx:"1",key:"aywv1n"}]],Ty=Pe("newspaper",zy);/**
167 * @license lucide-react v0.487.0 - ISC
168 *
169 * This source code is licensed under the ISC license.
170 * See the LICENSE file in the root directory of this source tree.
171 */const Ey=[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]],Ry=Pe("rocket",Ey);/**
172 * @license lucide-react v0.487.0 - ISC
173 *
174 * This source code is licensed under the ISC license.
175 * See the LICENSE file in the root directory of this source tree.
176 */const Ny=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],Gy=Pe("send",Ny);/**
177 * @license lucide-react v0.487.0 - ISC
178 *
179 * This source code is licensed under the ISC license.
180 * See the LICENSE file in the root directory of this source tree.
181 */const Oy=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],Tn=Pe("server",Oy);/**
182 * @license lucide-react v0.487.0 - ISC
183 *
184 * This source code is licensed under the ISC license.
185 * See the LICENSE file in the root directory of this source tree.
186 */const By=[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Gt=Pe("settings",By);/**
187 * @license lucide-react v0.487.0 - ISC
188 *
189 * This source code is licensed under the ISC license.
190 * See the LICENSE file in the root directory of this source tree.
191 */const Ky=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Vy=Pe("shield-check",Ky);/**
192 * @license lucide-react v0.487.0 - ISC
193 *
194 * This source code is licensed under the ISC license.
195 * See the LICENSE file in the root directory of this source tree.
196 */const Fy=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],Wy=Pe("shield",Fy);/**
197 * @license lucide-react v0.487.0 - ISC
198 *
199 * This source code is licensed under the ISC license.
200 * See the LICENSE file in the root directory of this source tree.
201 */const qy=[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]],Uy=Pe("sparkles",qy);/**
202 * @license lucide-react v0.487.0 - ISC
203 *
204 * This source code is licensed under the ISC license.
205 * See the LICENSE file in the root directory of this source tree.
206 */const _y=[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}
206],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]],Hy=Pe("workflow",_y);/**
207 * @license lucide-react v0.487.0 - ISC
208 *
209 * This source code is licensed under the ISC license.
210 * See the LICENSE file in the root directory of this source tree.
211 */const $y=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Qy=Pe("x",$y),Jy={home:{title:"telet.ai - AIソリューションプラットフォーム",description:"AIによる通話分析でカスタマーコミュニケーションを変革。リアルタイムインサイト、感情分析、パフォーマンストラッキングでチームの成果を向上させます。"},about:{title:"組織情報 - telet.ai",description:"telet.aiのミッションを紹介します。AIでカスタマーコミュニケーションを変革し、チームと共に歩むストーリーをご覧ください。"},privacy:{title:"プライバシーポリシー - telet.ai",description:"telet.aiのプライバシーポリシーをご確認ください。お客様のデータの取り扱いとプライバシー保護について説明しています。"},terms:{title:"利用規約 - telet.ai",description:"telet.aiのウェブサイト利用およびご相談に関する利用規約をお読みください。"},cookies:{title:"Cookieポリシー - telet.ai",description:"telet.aiでのCookieおよび類似技術(CloudflareおよびGoogle Analytics)の使用について説明します。"},portfolio:{title:"実績 - telet.ai",description:"ビジネス運営とカスタマーエクスペリエンスを向上させるAIソリューションのポートフォリオをご覧ください。"},agentDevelopment:{title:"企業向けAIエージェント設計・開発 - telet.ai",description:"業務要件・社内ルール・データ範囲に最適化されたAIエージェントを設計・開発します。"},onPremiseLLM:{title:"オンプレミスLLMサーバー運用 - telet.ai",description:"企業専用サーバー内で7B〜120B規模のLLMを稼働。安全で柔軟なLLM利用環境を提供します。"},vectorRAG:{title:"ベクトルRAG・インデックス設計 - telet.ai",description:"業務内容や解析ロジックごとにRAGデータを分離・最適化。高精度な検索を実現します。"},aiAppDevelopment:{title:"AIアプリケーション開発 - telet.ai",description:"既存APIや外部データを活用し、LLMによる解析・生成を中核としたAIアプリケーションを開発します。"}},Zy={brand:"telet.ai",nav:{services:"業務内容",portfolio:"実績",about:"組織情報",contact:"お問い合わせ"}},Xy={brandName:"telet.ai",tagline:"Multi AI-communications",badge:"AI-Powered Call Intelligence",title:{line1:"ローカルで守り、",line2:"クラウドで拡張、",line3:"エージェントで自動化。"},description:"SLMのエッジ推論でデータ主権を確保、LLMのクラウド連携で処理能力を無限にスケール。Agentic AIアーキテクチャの導入は、先行企業から成果が出始めています。"},Yy={badge:"Our Mission",title:"LLMをもっと身近に",paragraphs:["「こんなところまで、本当にできるの?」——その驚きこそ、私たちが目指す姿です。","大規模言語モデル(LLM)の可能性は日々広がっています。しかし「機密データを外部APIに送るのは不安」「高度なAI活用は大企業だけのもの」「導入コストが見合わない」——こうした壁を、私たちは取り払いたいと考えています。","私たちは、お客様の環境内で完結するローカルLLM構築を専門としています。機密性の高い顧客情報も外部に出すことなく安全に活用可能。データセキュリティを担保しながら、AIの恩恵を最大限に引き出せます。","日常的な文書作成やデータ整理から、専門的な分析、意思決定支援まで対応。独自のエージェント技術により、APIモデルに匹敵する精度を実現しています。","LLMは人に取って代わるものではありません。人の創造性、判断力、専門性をより発揮するための強力なツールです。私たちは、その技術を特別なものから当たり前のものへ——真の「民生化」を実現します。","まずはお気軽にご相談ください。「こんなことまでできるの?」を、一緒に見つけましょう。"],animation:{label:"LLM",sublabel:"Technology"}}
211,ev={title:"業務内容",subtitle:"Business Services",services:[{title:"企業向けAIエージェント設計・開発",titleEn:"Enterprise AI Agent",description:"業務要件・社内ルール・データ範囲に最適化されたAIエージェントを設計・開発。外部API型LLMからローカルLLMまで対応。",badges:["個別設計","LLM両対応","業務特化"],link:"詳細を見る"},{title:"オンプレミスLLMサーバー",titleEn:"On-Premise LLM Server",description:"企業専用サーバー内で7B〜120B規模のLLMを稼働。データ外部送信リスクを回避し、安全で柔軟なLLM利用環境を提供。",badges:["7B〜120B対応","API KEY発行","安全設計"],link:"詳細を見る"},{title:"ベクトルRAG・インデックス設計",titleEn:"Vector RAG Architecture",description:"業務内容や解析ロジックごとにRAGデータを分離・最適化。高速かつ高精度な検索を実現するインデックス設計。",badges:["Index分離","高速検索","多言語対応"],link:"詳細を見る"},{title:"AIアプリケーション開発",titleEn:"AI Application Dev",description:"既存APIや外部データを活用し、LLMによる解析・生成を中核とした実用的なAIアプリケーションを開発。",badges:["API連携","LLM解析","統合設計"],link:"詳細を見る"}]},av={title:"AI技術を活用した実績プロジェクト",subtitle:"多言語アシスタント、気象予測、ローカルLLM、セキュリティ監視など、幅広い分野でのAI開発実績をご紹介します。",viewDetails:"詳細を見る →",items:[{title:"AI多言語アシスタント",description:"RAG + LLMによる多言語対応チャットアシスタント。日本語、英語、中国語など複数言語での問い合わせに高精度回答。"},{title:"気象予測システム",description:"気象データを学習し、リアルタイム予測を生成。時系列パターン認識とRAGによる過去類似パターン検索で高精度予測。"},{title:"社内サーバー/オンプレ ローカルLLM",description:"お客様の業務に合わせたAIを、社内ですぐ使える状態でお届けします。Open WebUIを共通の入り口に据え、Ollama/MLXによる高速推論レーンと、UIDごとに完全に分離されたデータ領域を構築。社内ドキュメントは英語埋め込み × 日本語クエリ自動翻訳のRAGに取り込み、ニュース要約・資料整理・ルーチン業務などの業務スキルを安全に並走させます。スキル実行系はOpenClawコンテナとして隔離し、Cloudflareエッジ+ローカルNginxの三層で守る設計。モデル選定からスキル設計、運用ポリシーまで一括で支援し、御社専用のAIを「導入したその日から使える」形で立ち上げます。"},{title:"惑星間軌道到達予測(AI)",description:"NASA APIから惑星データ取得し、軌道計算をLLMで解釈。打ち上げウィンドウ、所要時間、燃料効率をレポート生成。"},{title:"不動産データAI解析",description:"Webスクレイピングで不動産情報を収集し、LLM + Pythonで解析。価格トレンド、相場予測、投資収益率を自動生成。"},{title:"占いAI(四柱推命)",description:"四柱推命ロジックをPythonで再現し、LLMで解釈。天文APIから座標・時刻を取得し、運勢・相性をパーソナライズ鑑定。"},{title:"Google Workspace AI連携",description:"Gmail、Drive、Calendar等とLLM連携。メール要約、ファイル検索、スケジュール調整をAIがアシスト。"},{title:"世界NEWS多言語化",description:"世界のニュースをリアルタイム収集し、LLMで多言語翻訳・要約。文脈理解に基づいた自然な翻訳とサマリー生成。"},{title:"セキュリティログ監視AIマネージャー",description:"セキュリティログをリアルタイム監視し、LLMで脅威検知・分析。RAGで過去の攻撃パターンと照合し即時アラート。"}]},nv={title:"プロジェクトの進め方",headline:"必要なのは、ビジョンだけ。",paragraphs:["言語の違いがビジネスの障壁になる時代は終わりました。AI翻訳ではありますが、画像共有を駆使した独自のワークフローにより、14ヶ国語での商談・開発に対応しています。複雑な仕様も、サンプル画像で確認しながら進めるため認識のズレが生まれません。大切なã
211®ã¯ã€Œä½•を作りたいか」、それだけです。","プロジェクトはまずビジネスアプリでの初回ヒアリングからスタートします。お客様のビジョンや課題感を大まかに共有いただいた後、NDA(秘密保持契約)を締結。機密情報を安心してお話しいただける環境を整えた上で、詳細なヒアリングと要件確認を行います。その内容をもとにご提案書を作成し、サンプル画像を用いて方向性を確認。認識を揃えた状態で仕様書を作成し、開発をスタートします。","この流れはあくまで一般的なご紹介です。お客様のご状況やスケジュールに合わせて柔軟に対応いたします。世界のどこにいても、言葉が通じなくても、画像とAIがコミュニケーションを支えます。まだ誰も手をつけていないフロンティアマーケットへ、一緒に踏み出しませんか。あなたのアイデアを形にするパートナーとして、telet.aiがサポートします。"],cards:[{title:"ヒアリング・NDA",description:"メールでの初回ヒアリング後、秘密保持契約を締結。安心して詳細をお聞かせいただけます。"},{title:"プランニング・CA",description:"提案書とサンプル画像をご提出。14ヶ国語対応で言語の壁なく進められます。"},{title:"サンプリング & スタート",description:"仕様書を作成し、合意のうえでビジネスを開始いたします。"},{title:"開発・テスト・運用",description:"アジャイル開発でスピーディに実装。テストと運用サポートまで一貫して対応します。"}]},tv={badge:"Case Studies",title:"AI導入ストーリー",items:[{title:"業務効率化・コスト削減ソリューション",subtitle:"日々の業務負担を軽減し、本来の仕事に集中できる環境へ",description:"中小企業の多くが直面する人手不足と採用難。新たな人材を採用しても教育コストがかかり、定着率の問題も抱えています。私たちのAIソリューションは、予算管理の自動化、データ入力・整理、社内ドキュメント検索、レポート・資料の自動生成といった日常業務をAIがサポート。これまで時間を取られていた定型作業を、AIアシスタントが24時間365日、ミスなく処理します。導入企業様では業務時間の大幅な削減を実現。「人を増やす」から「AIと協働する」へ。御社の働き方改革を、私たちが全力でサポートします。"},{title:"カスタマーサポート自動化",subtitle:"24時間対応で顧客満足度向上、人件費は削減",description:"「営業時間外の問い合わせに対応できない」「同じ質問に何度も答えている」——こんな課題を抱えていませんか?AIチャットボットが、よくある質問への自動回答、問い合わせの一次対応と振り分け、多言語でのリアルタイム対応を実現。人間のオペレーターは複雑な案件に集中でき、顧客対応の質が向上します。人件費を抑えながら、顧客満足度を向上させる。AIカスタマーサポートで、御社のサービス品質を次のレベルへ。"},{title:"ナレッジ・ドキュメント活用AI",subtitle:"社内の知識資産を、誰でもすぐに活用できる形に",description:"「あのマニュアルどこだっけ?」「前任者しか知らない情報がある」——属人化した知識は、企業の成長を妨げます。私たちのRAG(検索拡張生成)技術により、社内マニュアル・FAQ・過去の資料から、自然な言葉で質問するだけで必要な情報を取得。新人教育の効率化、ベテランの暗黙知のデジタル化、部門を超えた知識共有を実現します。既存のドキュメントをそのまま活用できるため、新たに資料を作り直す必要はありません。"},{title:"医療・介護向け画像解析AI",subtitle:"見守りの目を、AIが24時間サポート",description:"医療・介護現場では、限られたスタッフで多くの患者様・利用者様を見守る必要があります。私たちの画像・動画解析AIは、カメラ映像からリアルタイムで異常を検知。発熱感知による感染症の早期発見、転倒・徘徊の即時アラート、表情分析による体調変化の察知を自動で行います。夜間巡回の負担軽減、緊急時の迅速な対応、記録業務の自動化により、スタッフは本来のケア業務に専念できます。プライバシーに配慮したオンプレミス型の導入も可能です。"}]},iv={title:"お問い合わせ",description:"要件整理からご相談いただけます。PoC・ローカル LLM 構成の検討も可能です。",openForm:"フォームを開く",closeForm:"フォームを閉じる",form:{name:"お名前",n
211amePlaceholder:"山田 太郎",email:"メールアドレス",emailPlaceholder:"[email protected]",subject:"件名",subjectPlaceholder:"お問い合わせの件名",message:"メッセージ",messagePlaceholder:"お問い合わせ内容をご記入ください",required:"*",submit:"送信する",submitting:"送信中...",turnstileMessage:"送信には「私はロボットではありません」の認証が必要です。",turnstileError:"セキュリティ認証の読み込みに失敗しました。再読み込みしてください。",errorRetry:"もう一度お試しください。"}},sv={brand:"telet.ai",tagline:"Multi AI-communications",description:"AIエージェントで業務を革新。対話から価値を生み出す。",sections:{product:{title:"Product",features:"機能",benefits:"導入",testimonials:"お客様の声"},services:{title:"サービス",agentDev:"企業向けAIエージェント設計・開発",onPremise:"オンプレミスLLMサーバー",vectorRag:"ベクトルRAG・インデックス設計",aiApp:"AIアプリケーション開発"},company:{title:"組織情報",about:"About telet.ai",profile:"代表者プロフィール",contact:"お問い合わせ"},process:{title:"ビジネスの進め方",hearing:"ヒアリング・NDA",planning:"プランニング・CA",sampling:"サンプリング & スタート",development:"開発・テスト・運用"}},copyright:"© 2026 telet.ai. All rights reserved.",legal:{privacy:"プライバシーポリシー",terms:"利用規約",cookies:"クッキーポリシー"}},rv={title:"クッキーポリシー",subtitle:"本サイトで使用するCookie等の技術(Cloudflare / Google Analytics)について説明します。",lastUpdated:"最終更新日:2026å¹´1月22日",intro:"telet.ai(以下「当方」といいます。)は、本サイトの提供・改善および安全性の確保のため、Cookieおよび類似技術を利用する場合があります。当方は、広告目的の特別なトラッキングCookieを独自に設定していません(ただし、CloudflareおよびGoogle Analyticsが各サービスの仕様に従ってCookie等を設定する場合があります)。",sections:{what:{title:"1. Cookieとは",description:"Cookieとは、ウェブサイト閲覧時にブラウザへ保存される小さなテキストファイルです。Cookieを利用すると、サイトの利便性向上やアクセス解析等が可能になります。"},howWeUse:{title:"2. 当方がCookie等を利用する目的",description:"当方は、主に以下の目的でCookie等を利用する場合があります。",items:["サイトの表示・動作を安定させるため","不正アクセスや悪意あるトラフィックの検知・防止のため","アクセス状況を把握し、サイト改善に役立てるため"]},googleAnalytics:{title:"3. Google Analyticsの利用",description:"当方はアクセス解析のため、Google LLC が提供する Google Analytics 4(GA4)を利用しています。GA4はCookie等を用いてアクセス情報を収集する場合があります。",items:["収集される情報には、閲覧ページ、滞在時間、参照元、端末・ブラウザ情報等が含まれる場合があります","当方は、個人を直接特定できる情報(氏名、メールアドレス等)をGoogle Analyticsに送信する目的で利用しません","Googleによるデータの取扱いは、Googleの規約・ポリシーに従います"]},cloudflare:{title:"4. Cloudflareの利用",description:"当方は、本サイトの配信・セキュリティ対策のため、Cloudflare, Inc. のサービスを利用しています。Cloudflareは、DDoS対策やボット対策等の目的でCookie等を設定・参照する場合があります。",items:["主な目的はセキュリティ確保および通信の最適化であり、広告配信のための追跡を意図したものではありません","Cloudflareによるデータの取扱いは、Cloudflareの規約・ポリシーに従います"]},noSpecialCookies:{title:"5. 当方独自の特別なCookieについて",description:"当方は、行動ターゲティング広告等を目的とした当方独自の特別なCookieを設定していません。Cookie等の利用は、主にサイト運用・セキュリティ・アクセス解析の範囲に限定しています。"},choices:{title:"6. Cookieの管理(オプトアウト)",description:"Cookieの利用可否は、ブラウザ設定等で管理できます。Cookieを無効化すると、一部機能が利用できない場合があります。",items:["ブラウザ設定でCookieを削除・ç„
211¡åŠ¹åŒ–ã§ãã¾ã™","Google Analyticsによる計測を無効化したい場合は、Googleが提供するオプトアウト手段をご利用ください","ブラウザのプライベートモード等の利用により、保存される情報を制限できます"]},changes:{title:"7. 本ポリシーの変更",description:"当方は、法令の改正や利用サービスの変更等に応じて、本ポリシーを改定することがあります。変更後の内容は、本ページに掲載した時点で効力を生じます。"},contact:{title:"8. お問い合わせ",description:"本ポリシーに関するお問い合わせは、下記までご連絡ください。",company:"telet.ai",contactLink:"お問い合わせフォームへ"}}},ov={hero:{title:"About telet.ai",subtitle:"小回りの利く個人だからこそできる、丁寧なAI開発支援"},story:{title:"私たちについて",content:"telet.aiはある問いから始まりました。「企業と顧客の間で交わされる無数の対話——そこに眠るインサイトを、なぜ多くの企業はAIを活用できていないのか?」AIリサーチとエンタープライズソフトウェア開発の経験を持つ代表が、この課題に正面から取り組むために立ち上げた技術ユニットです。大きな組織ではありません。だからこそ、御社の課題に深く向き合い、本当に必要なソリューションだけを提案できます。強みは、ローカルLLMとクラウドLLMを融合させたハイブリッドアーキテクチャの設計力。御社の機密データは専用クラウド環境で保護しながら、高度なAI推論をスケーラブルに実行します。開発者にはCLIを、現場スタッフにはチャットUIを提供し、組織全体でAIを活用できる基盤を構築します。そして、最先端であることより最適解であることを重視しています。予算に応じて機能を取捨選択し、一つ構成を見直すだけでコストは大きく変わる。必要なものを、必要な分だけ届ける。小回りの利く個人だからこそできる、丁寧なAI開発支援。人手不足を解消し、御社の成長を支援すること。それがtelet.aiの約束です。"},representative:{title:"telet.ai labo 代表",name:"奥泉 慶太",tagline:"空と海、そしてコードへ——異色の経歴が生んだAI開発への情熱",paragraphs:["元航空機パイロット、小型船舶船長として、長年にわたり空と海の両方で気象と向き合ってきました。操縦席や操舵室で気圧計の変化を見つめ、等圧線を読み解き、風や雲の動きと照らし合わせる。その繰り返しの中で培った「データを読み、判断し、行動する」という感覚が、今の私の原点です。","57歳でPythonプログラミングを学び始めました。きっかけは単純な好奇心でしたが、コードを書き始めてすぐにAIエージェントの可能性に魅了されました。自分の手でアプリケーションを作り、動かし、改善していく。その過程で気づいたことがあります。過去のプロジェクトでは非エンジニアとして関わり、開発は常に誰かに依頼する側でした。しかし自分でコードを書くようになると、問題の本質が見えるようになった。「ここがボトルネックだ」「この設計では拡張できない」——エンジニアの視点を持つことで、やりたいことを実現するスピードが格段に上がりました。","現場経験とデータサイエンスを融合させた気象サービスの開発、業務効率化のためのAIエージェント構築、そして様々な実験的プロジェクト。手を動かし続ける中で、技術の面白さだけでなく、これを必要としている人がいるはずだという確信が生まれました。","最先端を追いかけることが目的ではありません。お客様の課題と予算に向き合い、本当に必要なものだけを、適正なコストで届ける。大きな組織ではないからこそできる、一人ひとりに寄り添った開発支援。この技術を社会の役に立てたい——その想いから、telet.aiを立ち上げました。"]}
211,contact:{title:"組織情報",company:"telet.ai labo",ceo:"代表:奥泉 慶太",button:"お問い合わせ"},studios:{tokyo:{title:"東京拠点",address:"〒184-0014 東京都小金井市貫井南町3丁目3番21号 ファーストヒルズA武蔵小金井301号室"}}},lv={title:"Portfolio",subtitle:"AI技術を活用した実績をご覧ください",techStackLabel:"技術スタック",viewProject:"プロジェクトを見る",privateProject:"非公開プロジェクト",visualizationLabel:"データビジュアライゼーション",cta:{title:"お問い合わせ",description:"プロジェクトのご相談、技術的なお問い合わせはお気軽にご連絡ください。",button:"お問い合わせ"},projects:{"traffic-route-ai":{title:"交通経路AI選択システム",subtitle:"マレーシアの公共交通をつなぐ、経路選択サポート",description:"出発地と目的地からバス・鉄道を組み合わせた移動経路を検索し、到着時刻・所要時間・乗換回数で候補を比較できる交通経路選択システム。バスのみ・鉄道のみの絞り込みや近くの駅・停留所の検索、多言語表示に対応し、日常の移動から旅行まで目的に合ったルート選びを支援します。",techStack:["公共交通経路検索","バス・鉄道連携","経路比較","多言語UI"]},"multilingual-assistant":{title:"AI多言語アシスタント",description:"複数言語での問い合わせに対応するインテリジェントなチャットアシスタント。1,573件のベクトルインデックスを構築し、条件分岐、NGワードフィルタリング、キーワードトリガーによる精密な回答制御を実装しました。日本語・英語・中国語など多言語でのユーザー質問に対し、言語横断的なセマンティック検索により一貫した高精度な回答を生成します。",techStack:["RAG","Vector Search","多言語Embedding","LLM","条件分岐ロジック"]},"weather-forecast":{title:"気象APIによるAI気象予測",description:"過去の気象データを学習し、直近の気象状況をリアルタイム予測するAIシステムを開発。気象庁API、OpenWeatherMap等から取得した過去データをLLMで解析し、温度、降水確率、風速などの短期予測を生成します。時系列データのパターン認識とRAGによる過去類似パターン検索を組み合わせ、従来の統計モデルを補完する高精度な予測を実現しました。",techStack:["気象API連携","LLM","RAG","時系列データ解析","リアルタイム処理"]},"local-llm":{title:"社内サーバー/オンプレ ローカルLLM",description:"お客様の業務に合わせたAIを、社内ですぐ使える状態でお届けします。Open WebUIを共通の入り口に据え、Ollama/MLXによる高速推論レーンと、UIDごとに完全に分離されたデータ領域を構築。社内ドキュメントは英語埋め込み × 日本語クエリ自動翻訳のRAGに取り込み、ニュース要約・資料整理・ルーチン業務などの業務スキルを安全に並走させます。スキル実行系はOpenClawコンテナとして隔離し、Cloudflareエッジ+ローカルNginxの三層で守る設計。モデル選定からスキル設計、運用ポリシーまで一括で支援し、御社専用のAIを「導入したその日から使える」形で立ち上げます。",techStack:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"]},"orbital-prediction":{title:"惑星間軌道到達予測(AI)",description:"NASA APIから惑星位置データ、軌道要素、重力パラメータを取得し、惑星間移動の最適な出発ポイントを解析するシステムを開発。ホーマン遷移軌道、重力アシストを考慮した軌道計算をAPIとPythonで算定し、打ち上げウィンドウ、所要時間、燃料効率を表示します。教育機関・宇宙関連企業向けのシミュレーションツールとして活用されています。※AI機能を現在外しています、APIとPythonで計算中",techStack:["NASA API (Horizons, SPICE)","軌道力学計算","Python","データビジュアライゼーション"]},"real-estate":{title:"不動産データAI解析",description:"特定å
211œ°åŸŸã®ä¸å‹•産情報をWebスクレイピングで収集し、LLMとPythonによる高度なデータ解析を行うシステムを開発。物件価格、坪単価、築年数、駅距離などの変数を抽出し、価格トレンド分析、相場予測、投資収益率シミュレーションを自動生成します。非構造化な物件説明文からもLLMで特徴を抽出し、定量データと組み合わせた総合的な市場分析を提供しました。※セカンドバージョンとして公開中(FULLバージョンは別途提供)",techStack:["Webスクレイピング (Scrapy, Playwright)","Python","Pandas","LLM解析","データ可視化"]},"fortune-ai":{title:"四柱推命AI鑑定システム",subtitle:"伝統の知恵を、テクノロジーで再現する。",paragraphs:["四柱推命は数千年の歴史を持つ東洋占術の集大成です。このシステムでは、その伝統的な占いロジックをPythonで完全に再現し、LLM(大規模言語モデル)による解釈・アドバイス生成を組み合わせました。専門の占い師が行う鑑定プロセスを、AIが忠実に再現します。","生年月日、出生時刻、出生地を入力すると、システムは天文APIから当時の日の出・日の入り時刻、座標情報を取得。これらのデータをもとに、干支、十神、五行バランスを正確に算出します。四柱推命の占い学に基づくロジックをPythonで指数化し、統計データとRAG(検索拡張生成)情報を組み合わせることで、命式解析の精度を高めています。","算出された命式データは、LLMが自然言語でわかりやすく解説。運勢の流れ、対人関係の相性、あなたに適した職業など、パーソナライズされた鑑定結果を生成します。専門の占い師に相談したときと同様の、深みのある回答を得ることができます。","現在、セカンドバージョンとして公開中です。基本的な命式解析と運勢鑑定をお試しいただけます。より詳細な分析と多角的なアドバイスを含むフルバージョンは、別途ご提供しております。"],techStack:["Python","天文API (Sunrise-Sunset, TimeZoneDB)","四柱推命ロジック","LLM","座標・時刻計算"]},"google-workspace":{title:"Google Workspace AI連携",description:"Google Workspace(Gmail、Drive、Calendar、Docs、Sheets)とLLMを連携し、業務データの読み込み・編集・自動処理を行うシステムを開発。メール内容の要約・自動返信下書き生成、Driveファイルの検索・内容解析、Calendarからのスケジュール抽出と調整提案など、日常業務をAIがアシストします。OAuth認証による安全なAPI接続と、MCP準拠のツール設計により、Agentからの自律的なWorkspace操作も実現しました。※セカンドバージョンとして公開中(FULLバージョンは別途提供)",techStack:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"]},"world-news":{title:"世界NEWS多言語化",description:"世界各国のニュースソースからリアルタイムで記事を収集し、LLMによる多言語翻訳・要約・カテゴリ分類を行うシステム開発。英語、中国語、フランス語、アラビア語など多言語の原文記事を日本語に翻訳し、トピック別に整理。単純な機械翻訳ではなく、LLMによる文脈理解に基づいた自然な翻訳と、記事の要点を抽出したサマリー生成により、効率的な国際ニュースモニタリングを実現しました。※セカンドバージョンとして公開中(FULLバージョンは別途提供)",techStack:["News API","RSS収集","LLM翻訳・要約","多言語処理","自動カテゴリ分類","定期バッチ処理"]},"security-monitoring":{title:"セキュリティログ監視AIマネージャー",description:"企業のセキュリティログをリアルタイム監視し、LLMによる高度な脅威検知・分析を行うシステムを開発ã€
211‚ファイアウォール、IDS/IPS、認証ログ、アプリケーションログなど多様なログソースをPythonモジュールで収集・解析し、RAGに蓄積された過去の攻撃パターン、脆弱性情報、インシデント事例と照合します。異常パターンを検知した際はLLMが脅威レベル、影響範囲、推奨対応を自然言語で解説し、担当者へ即時アラート通知。同一パターンの再発時は自動的に高優先度アラートを発報し、インシデント対応の迅速化を実現しました。",techStack:["Python監視モジュール","ログ収集 (Fluentd, Logstash)","RAG","脅威パターンDB","LLM解析","アラート通知 (Slack, PagerDuty)"]}}},dv={learnMore:"詳しく見る",getStarted:"始める",contactUs:"お問い合わせ",backToHome:"ホームへ戻る"},uv={title:"Privacy Policy",subtitle:"プライバシーポリシー",lastUpdated:"最終更新日:2026å¹´1月23日",intro:"telet.ai(以下「当サービス」)は、お客様の個人情報の保護を重要な責務と考え、以下のとおりプライバシーポリシーを定めます。",sections:{collection:{title:"1. 収集する情報",description:"当サービスでは、お問い合わせやサービスのご利用にあたり、以下の情報を収集することがあります。",items:["メールアドレス","お名前(任意)","お問い合わせ内容","その他、お客様が自発的に提供された情報"]},purpose:{title:"2. 情報の利用目的",description:"収集した個人情報は、以下の目的でのみ利用いたします。",items:["お問い合わせへの回答・対応","サービスに関するご連絡・ご案内","プロジェクト進行に必要なコミュニケーション","サービス改善のための分析(個人を特定しない形式で)"]},thirdParty:{title:"3. 第三者への提供",description:"当サービスは、以下の場合を除き、お客様の個人情報を第三者に提供することはありません。",items:["お客様の同意がある場合","法令に基づく開示要請があった場合","人の生命、身体または財産の保護のために必要な場合"]},security:{title:"4. 情報の管理",description:"当サービスは、収集した個人情報を適切に管理し、不正アクセス、紛失、漏洩、改ざんを防止するため、合理的な安全対策を講じます。"},email:{title:"5. メールの取り扱いについて",description:"当サービスでは、以下の方針に基づきメールの取り扱いを行います。",items:["お客様からいただいたメールの内容は、お問い合わせ対応およびサービス提供の目的のみに使用いたします","メールアドレスを第三者に販売、貸与、または共有することはありません","サービスに関するご案内メールをお送りする場合があります。配信停止をご希望の場合は、メール内の配信停止リンクまたは下記連絡先よりご連絡ください","メール通信にはSSL/TLS暗号化を使用し、通信の安全性を確保しています","お問い合わせいただいたメールは、適切な期間保管した後、安全に削除いたします"]},cookies:{title:"6. Cookieの使用",description:"当サービスのウェブサイトでは、利便性向上のためCookieを使用する場合があります。Cookieはブラウザの設定により無効化することが可能です。"},external:{title:"7. 外部サービスの利用",description:"当サービスでは、以下の外部サービスを利用する場合があります。各サービスのプライバシーポリシーについては、それぞれのリンク先をご確認ください。",items:["Google Analytics(アクセス解析)","その他、業務上必要なクラウドサービス"]},changes:{title:"8. プライバシーポリシーの変更",description:"本ポリシーは、法令の改正やサービス内容の変更に伴い、予告なく改定することがあります。変更後のポリシーは、当ページに掲載した時点で効力を生じます。"},contact:{title:"9. お問い合わせ",description:"本ポリシーに関するお問い合わせは、下記までã
211”連絡ください。",company:"telet.ai",contactLink:"お問い合わせフォームへ"}}},cv={title:"利用規約",subtitle:"本サイトのご利用、および telet.ai への相談予約・お問い合わせ・資料請求に関する規約です。",lastUpdated:"最終更新日:2026å¹´1月22日",intro:"本利用規約(以下「本規約」といいます。)は、telet.ai(以下「当方」といいます。)が運営するウェブサイト(以下「本サイト」といいます。)の利用条件を定めるものです。本サイトは主に、相談予約・お問い合わせ・資料請求のためのランディングページとして提供されており、本サイト上でのアカウント作成や有料課金機能は提供していません。",sections:{scope:{title:"1. 適用範囲",description:"本規約は、本サイトの閲覧者および利用者(以下「利用者」といいます。)に適用されます。当方と利用者との間で、別途NDA、業務委託契約、個別契約書等が締結される場合は、当該書面が優先して適用されます。"},prohibited:{title:"2. 禁止事項",description:"利用者は、本サイトの利用にあたり、以下の行為をしてはなりません。",items:["法令または公序良俗に違反する行為","当方または第三者の知的財産権、プライバシー、その他の権利・利益を侵害する行為","不正アクセス、過度な負荷、妨害行為等により本サイトまたは関連システムの運用を阻害する行為","問い合わせフォーム等で虚偽の情報を送信する行為、または第三者になりすます行為","当方の事前許可なく、スクレイピング、リバースエンジニアリング、過度な自動アクセスを行う行為"]},disclaimer:{title:"3. 免責事項",description:"当方は、本サイトを現状有姿で提供します。当方は、法令で許される範囲で、本サイトに関して一切の保証を行いません。",items:["本サイト上の情報は予告なく変更または削除されることがあります","当方は、本サイト上の情報の正確性・完全性・特定目的への適合性を保証しません","利用者が本サイトを利用したこと、または本サイト上の情報に依拠したことにより生じた損害について、当方は責任を負いません","相談・お問い合わせに対する回答は一般的な情報提供であり、法務・税務・医療等の専門的助言を構成するものではありません"]},ip:{title:"4. 知的財産権",description:"本サイト上の文章、画像、デザイン、商標、ロゴ等に関する権利は、当方または正当な権利者に帰属します。権利者の許諾なく利用することはできません。"},links:{title:"5. 外部サイトへのリンク",description:"本サイトには第三者のウェブサイトへのリンクが含まれる場合があります。リンク先の内容や運用について、当方は一切責任を負いません。"},changes:{title:"6. 本規約の変更",description:"当方は、必要に応じて本規約を変更することがあります。変更後の本規約は、本サイト上に掲示した時点で効力を生じます。"},governingLaw:{title:"7. 準拠法・管轄",description:"本規約は日本法を準拠法とします。本サイトに関連して紛争が生じた場合、東京地方裁判所を第一審の専属的合意管轄裁判所とします。"},contact:{title:"8. お問い合わせ",description:"本規約に関するお問い合わせは、以下までご連絡ください。",company:"telet.ai",contactLink:"お問い合わせフォームへ"}}},mv={title:"規則運動",subtitle:"をAIで予測する。",description1:"気象情報は各国がデータをリアルタイムに提供しています。地図の真ん中にあなたの国が表示されています。昨日の天気、と今の天気は実績です、雨雲はその日時にあなたの空にあったはずです。",description2:"しかし、このアニメーションは未来の気象運動もアニメーション化しています。",description3:"過去データをベクトル化、パターンを高速で検索。周辺環境から気象パターンを予想することも可能です。同じように、収穫、生産、販売を予測すること環境と高度な統計学的な数値を過去の実績から、要素(i)を算定して、AIに解析させることも可能です。",refresh:"リフレッシュ",loading:"気象マップを読み込み中..."},pv={hero:{badges:["Enterprise","Local LLM","Custom Agent"],title:"企業向け AI Agent 設計・開発",description:"業務要件に合わせた専用 AI Agent を設計・構築"},mission:{title:"カスタムAI Agent開発サービス",description:"貴社固有の業務課題に対応するカスタムAI Agentを、設計から実装、運用まで一貫して開発いたします。既存の基幹システムやSaaS環境との親和性を重視したアーキテクチャ設計により、API連携、データベース接続、社内ツール統合をスムーズに実現します。要件定義、概念実証、本番デプロイまで段
211階的に進行し、エンタープライズ水準のセキュリティとコンプライアンス対応を担保した堅牢なAgent基盤を構築いたします。LangChain、AutoGen、CrewAIをはじめとする主要フレームワークに精通したエンジニアが、貴社の技術スタックや運用体制に最適なソリューションをご提案。単発のチャットボット開発ではなく、複数Agentが協調して業務を遂行するマルチエージェントシステムや、外部ツールと連携するAgentic Workflowの構築にも対応いたします。導入後の継続的な改善、モデルアップデートへの追従、運用監視体制の整備まで含めた長期的なパートナーシップを通じて、AI Agentがもたらすビジネス価値の最大化を支援いたします。",imageAlt:"カスタムAI Agent開発サービス"},summary:{title:"Agent開発動向",paragraphs:["2025年から2026年にかけて、AI Agent開発は実証実験フェーズから本格的な企業導入フェーズへと移行しています。「Agentic AI」という概念が定着し、単なるチャットボットを超えた自律型業務遂行システムが各業界で稼働を始めました。","OpenAIのOperator、AnthropicのComputer Use、GoogleのProject Marinerなど、ブラウザやデスクトップを直接操作する「Computer-Using Agent」が実用化。定型業務の完全自動化が現実のものとなっています。MCP(Model Context Protocol)はエコシステムとして急成長し、数千のツール連携がプラグアンドプレイで実現可能になりました。","マルチエージェントアーキテクチャも成熟期を迎え、専門特化したAgentが協調してプロジェクト管理、カスタマーサポート、データ分析といった複合業務を遂行します。A2A(Agent-to-Agent)プロトコルの標準化により、異なるベンダー間でのAgent連携も進んでいます。","企業導入では「Human-in-the-Loop」から「Human-on-the-Loop」へとガバナンスモデルが進化。Agentの判断を事後監査する仕組みや、リスクレベルに応じた自動エスカレーション機能が標準装備となり、金融・医療・製造など規制業界での採用が加速しています。"]},features:{title:"設計・開発",subtitle:"Design & Development",items:[{title:"業務要件ベースのAgent設計",description:"業務フロー分析からユースケースを抽出し、タスク分解とAgent責務の明確化を実施。シングルAgentで完結する処理か、マルチAgent協調が必要かを判断し、ReAct、Plan-and-Execute、Reflexionなど最適な推論パターンを選定します。"},{title:"RAG / Tool / Workflow 統合",description:"Embedding生成、チャンク戦略、Hybrid Searchを組み合わせた高精度RAGパイプラインを構築。MCP準拠のTool定義により外部API・データベースとの接続を標準化し、LangGraphやCrewAIによるマルチステップWorkflowをオーケストレーションします。"},{title:"セキュリティ・権限設計",description:"RBAC/ABACによるAgent機能のアクセス制御、Prompt Injection対策、PII検出・マスキングを実装。全入出力の監査ログを保持し、SOC2・ISO27001準拠環境での運用に対å¿
211œã€‚Guardrailsによる出力フィルタリングも標準装備します。"},{title:"運用・監視まで含めた実装",description:"LangSmith、Langfuse等によるTrace可視化、レイテンシ・トークン消費・エラー率のリアルタイム監視を実装。異常検知アラート、A/Bテスト基盤、モデル更新時のRegression Testを含む継続的改善サイクルを構築します。"}]},techStack:{title:"技術スタック",subtitle:"Platform & Technology",categories:{agentFramework:{title:"Agent Framework",items:["AutoGen 0.4 / AG2","CrewAI","LangGraph","OpenAI Agents SDK","Anthropic MCP","Google ADK (Agent Development Kit)","Semantic Kernel","独自Agent Platform"]},apiLayer:{title:"API Layer",items:["FastAPI / Litestar","gRPC / Connect","GraphQL Federation","Server-Sent Events (SSE)","WebSocket / NATS","OAuth 2.1 / OIDC","API Gateway (Kong / Envoy)","Adaptive Rate Limiting"]},vectorDb:{title:"Vector DB / RAG",items:["Pinecone","Weaviate","Qdrant","Milvus","ChromaDB","pgvector","FAISS","Turbopuffer"]}
211,infrastructure:{title:"Infrastructure",items:["Kubernetes (EKS / GKE / AKS)","Docker / Podman","On-Premise GPU Cluster","Private Cloud","Serverless (Lambda / Cloud Run)","OpenTelemetry / Langfuse","Terraform / Pulumi","ArgoCD / Flux"]}},updateNote:{title:"2026年の主なアップデートポイント",description:"Agent Frameworkでは、OpenAI Agents SDK、Anthropic MCP、Google ADKなど主要ベンダーの公式SDK/プロトコルが台頭。API LayerではgRPCやSSEがAgent間通信の標準となり、OAuth 2.1への移行が進行中。Vector DBではQdrantとTurbopufferが高速検索で注目を集めています。"}},cta:{title:"お問い合わせ",description:`要件整理からご相談いただけます。
212PoC・ローカル LLM 構成の検討も可能です。`,primaryButton:"お問い合わせ",secondaryButton:"技術相談"}},gv={title:"よくある質問",subtitle:"FAQ",items:[{question:"既存のマニュアルやFAQをそのまま使えますか?",answer:"はい、使えます。PDF、Word、Excel、HTML、テキストファイルなど、ほとんどの形式に対応しています。既存の社内ドキュメントをそのままアップロードするだけで、AIが内容を学習し、回答に活用します。フォーマット変換や特別な加工は不要です。"},{question:"機密情報を含むデータでも安全に使えますか?",answer:"はい、安全にご利用いただけます。オンプレミス(社内サーバー)またはプライベートクラウド環境での構築に対応しており、データが外部に送信されることはありません。SOC2、ISO27001準拠の運用設計も可能です。セキュリティ要件に応じた構成をご提案します。"},{question:"導入までどのくらいの期間がかかりますか?",answer:"標準的なFAQボットであれば、最短2〜4週間で導入可能です。既存システムとの連携や高度なカスタマイズが必要な場合は、1〜3ヶ月程度を想定しています。まずは小規模なPoC(概念実証)から始めることも可能です。"},{question:"ChatGPTやClaudeなどの外部APIを使いますか?",answer:"ご要望に応じて選択可能です。外部API(OpenAI、Anthropic、Google等)を利用する構成と、完全にローカルで動作するオープンソースLLM(Llama、Mistral、Qwen等)を利用する構成の両方に対応しています。コスト、セキュリティ、性能要件に応じて最適な構成をご提案します。"},{question:"AIの回答精度はどのくらいですか?",answer:"用途やデータ品質により異なりますが、適切に設計されたRAGシステムでは、関連ドキュメントが存在する質問に対して90%以上の精度で正確な回答を返すことが可能です。ハルシネーション(誤情報生成)を抑制する仕組みも標準で組み込んでいます。"},{question:"日本語以外の言語にも対応していますか?",answer:"はい、多言語対応が可能です。日本語、英語、中国語、韓国語をはじめ、主要な言語に対応しています。言語ごとに別々のモデルを用意する必要はなく、単一のシステムで多言語の問い合わせを処理できます。"},{question:"既存のシステム(CRM、チャットツール等)と連携できますか?",answer:"はい、連携可能です。Salesforce、HubSpot、Slack、Microsoft Teams、LINE WORKSなど、主要なビジネスツールとのAPI連携に対応しています。既存の業務フローを変えることなく、AIアシスタントを組み込むことができます。"},{question:"料金体系を教えてください。",answer:"プロジェクトの規模や要件により異なります。初期構築費用と月額運用費用の組み合わせが一般的ですが、スポット開発やコンサルティングのみのご依頼も承っています。まずはご要件をお聞かせください。概算見積もりをご提示いたします。"}]},hv={title:"料金プラン",subtitle:"Pricing Plans",description:"ビジネスの規模に合わせた柔軟なプランをご用意しています",plans:[{name:"スターター",price:"Â¥29,800",period:"月額/ユーザー",description:"小規模チームに最適なプラン。基本的なAI機能をお手頃価格で",features:["月100通話まで","基本的な文字起こし","キーワード検出","メールサポート","7日間のデータ保持"],cta:"無料で始める",popular:!1},{name:"プロフェッショナル",price:"Â¥79,800",period:"月額/ユーザー",description:"成長中のチームに最適。高度な分析機能を搭載",features:["月500通話まで","高精度AI文字起こし","感情分析","CRM連携","優先サポート","30日間のデータ保持","カã
212‚¹ã‚¿ãƒ ãƒ¬ãƒãƒ¼ãƒˆ"],cta:"14日間無料トライアル",popular:!0},{name:"エンタープライズ",price:"お問い合わせ",period:"カスタム",description:"大規模組織向けのフル機能プラン",features:["無制限の通話","専用AIモデル","オンプレミス対応","専任サポート","カスタム連携","SLA保証","セキュリティ監査","無制限のデータ保持"],cta:"営業に相談",popular:!1}],faq:{title:"よくある質問",items:[{question:"無料トライアルはありますか?",answer:"はい、プロフェッショナルプランでは14日間の無料トライアルをご利用いただけます。クレジットカード不要で始められます。"},{question:"プランの変更はいつでもできますか?",answer:"はい、いつでもプランのアップグレード・ダウングレードが可能です。変更は次の請求サイクルから適用されます。"},{question:"契約期間の縛りはありますか?",answer:"月額プランには契約期間の縛りはありません。年間契約をお選びいただくと、20%の割引が適用されます。"}]}},fv={hero:{badge:"AI-Powered Technology",title:"AI文字起こし",description:"高度な機械学習モデルで99.5%の精度を実現。数百万件の顧客対話データで学習したAIが音声をテキストに変換します。",features:["99.5%の精度","リアルタイム処理","40言語以上対応"]},features:{title:"主な機能",subtitle:"単純な音声認識を超えた高度な文字起こしエンジン",items:[{title:"リアルタイム文字起こし",description:"会話中にリアルタイムで文字起こしを取得。即座にインサイトを得て、リアルタイムコーチングの機会を逃しません。"},{title:"多言語対応",description:"40以上の言語をサポートし、自動言語検出機能でグローバルチームをカバーします。"},{title:"文脈理解",description:"業界固有の用語で学習したAIモデルが、専門用語やビジネス用語を正確に認識します。"},{title:"話者分離",description:"会話中の異なる話者を自動的に識別・分離し、明確な発言者属性を付与します。"},{title:"カスタム語彙",description:"貴社独自の製品名、サービス名、専門用語を学習させることで、さらに高い精度を実現します。"},{title:"品質保証",description:"自動品質チェックと信頼度スコアリングにより、最高品質の文字起こしを保証します。"}]},useCases:{title:"活用シーン",subtitle:"正確な通話文字起こしを必要とする業界・チーム",items:[{title:"営業チーム",description:"営業通話を振り返り、成功パターンを特定。トークの効果を向上させ、具体的な事例でチームメンバーをコーチングします。"},{title:"カスタマーサポート",description:"顧客の問題を正確に記録。包括的なサポート履歴を維持し、一貫したサービス品質を確保します。"},{title:"品質管理",description:"コンプライアンスを監視し、スクリプト遵守を確認。監査・研修用の詳細な記録を維持します。"}]},stats:{accuracy:{value:"99.5%",label:"文字起こし精度"},languages:{value:"40+",label:"対応言語"},latency:{value:"<2秒",label:"処理遅延"},availability:{value:"24/7",label:"連続処理"}}},kv={hero:{badge:"Smart Detection",title:"キーワードトラッキング",description:"競合他社の言及、反論、重要トピックを自動監視。顧客との会話から重要なシグナルを見逃しません。",badges:["競合トラッキング","反論検出","トピック分析","カスタムキーワード"]},features:{title:"重要な情報を追跡",subtitle:"すべての会話からキーワードを自動検出・分析",items:[{title:"競合モニタリング",description:"競合他社の言及を追跡し、見込み客があなたのソリューションを市場の代替案とどのように比較しているかを理解します。"},{title:"反論検出",description:"よくある反論や懸念を自動的に特定し、効果的な対応策とトレーニングを開発します。"},{title:"カスタムキーワード",description:"貴社のビジネス、製品、業界に特化したカスタムキーワードとフレーズを定義して追跡します。"},{title:"トレンド分析",description:"顧客との会話から新たなトレンドを発見し、実際の市場シグナルに基づいて戦略を適応させます。"},{title:"コンテキスト抽出",description:"キーワードの言及だけでなく、その前後の文脈を取得。何が言われたかだけでなく、なぜ、どのように言われたかを理解します。"}
212,{title:"スマート検索",description:"すべての会話を瞬時に検索し、特定のトピックがいつどこで議論されたかを正確に見つけます。"}]},applications:{title:"活用シーン",items:{competitive:{title:"競合インテリジェンス",description:"競合状況を深く理解:",points:["最も頻繁に言及される競合他社を追跡","見込み客が機能や価格をどう比較しているか把握","自社の競争優位性と弱点を特定","効果的な競合対策資料を作成"]},objections:{title:"反論対応",description:"反論を機会に変える:",points:["最も一般的な顧客の懸念を特定","トップパフォーマーの反論対応を分析","実績のある対応でプレイブックを作成","効果的な切り返しでチームをトレーニング"]},product:{title:"製品インサイト",description:"顧客の声で製品開発を推進:",points:["最もリクエストの多い機能を特定","現在の機能に対する課題を理解","想定外のユースケースを発見","顧客ニーズに基づいてロードマップを優先付け"]},compliance:{title:"コンプライアンス・品質",description:"規制遵守と品質を確保:",points:["必須開示事項と法的文言を監視","ポリシー違反の可能性がある会話をフラグ","スクリプト遵守とベストプラクティスを追跡","監査用のコンプライアンスレポートを生成"]}}},advancedFeatures:{title:"高度な機能",items:[{title:"あいまい検索",description:"手動設定なしで、キーワードのバリエーション、類義語、関連用語を自動検出します。"},{title:"履歴分析",description:"キーワードトレンドを時系列で分析し、季節パターンや新興トピックを特定します。"},{title:"リアルタイムアラート",description:"ライブ会話で重要なキーワードが言及された際、即座に通知を受け取ります。"}]}},bv={hero:{badges:["Enterprise","Local LLM","自社サーバー運用"],title:"オンプレミス LLM 構築",description:"データを外部に出さず、自社環境で LLM を運用"},mission:{title:"オンプレミス LLM 構築サービス概要",paragraphs:["機密データを社外に出せない企業向けに、自社サーバーやプライベートクラウドで完結する LLM 環境を構築いたします。パブリック API を一切使用せず、すべての処理をお客様管理のインフラ内で完結させるため、金融機関・医療機関・官公庁・研究機関など厳格な情報管理が求められる組織に最適なソリューションです。","モデル選定からサーバー構築、推論エンジン最適化、運用監視まで一貫して対応いたします。Llama 3.3、Qwen 2.5、Mistral、DeepSeek などの商用利用可能なオープンウェイトモデルを、vLLM、Ollama、SGLang 等の高性能推論エンジンで稼働させ、低レイテンシかつ高スループットな推論環境を実現します。","既存システムとの統合、チャットボット・社内 RAG・文書要約・コード生成など幅広いユースケースに対応いたします。モデルファインチューニングによる業務特化、NVIDIA GPU / Apple Silicon 最適化、マルチテナント設計、API ゲートウェイ構築など、エンタープライズ要件を満たす設計を行います。"]},summary:{title:"オンプレミス LLM の動向",paragraphs:["2025年から2026年にかけて、オンプレミス LLM の実用性は急速に向上しています。オープンウェイトモデルの性能がクローズドモデルに肉薄し、商用利用可能なライセンスで提供されるモデルが増加したことで、自社運用のハードルが大幅に下がりました。","モデル面では、Llama 3.3 (70B)、Qwen 2.5、DeepSeek V3、Mistral Large などが GPT-4 クラスの推論能力を持ち、日本語対応も充実。8B~70B パラメータのモデルが多くの業務タスクで実用水準に達しています。GGUF 量子化により、消費者向け GPU でも高速推論が可能になりました。","推論エンジンでは、vLLM の Continuous Batching と PagedAttention がスループットを飛躍的に向上させ、SGLang の RadixAttention が複雑なマルチターン対話を高速化。Ollama はローカル開発環境のデファクトスタンダードとなり、llama.cpp は Apple Silicon 最適化で M シリーズ Mac での高速推論を実現しています。","エンタープライズ採用においては、データ主権・コンプライアンス対応に加え、長期的なコスト最適化(API 従量課金からの脱却)が導入動機となるã‚
212±ãƒ¼ã‚¹ãŒå¢—えています。ハイブリッド構成(機密処理はローカル、汎用処理はクラウド API)も一般的な選択肢となりました。"],icons:[{label:`Private
213Cloud`},{label:`Data
214Sovereignty`},{label:`Cost
215Optimization`},{label:`Enterprise
216Security`}]},features:{title:"設計・開発の特徴",subtitle:"Design & Development",items:[{title:"インフラ設計・GPU 最適化",description:"NVIDIA A100/H100、RTX 4090/5090、Apple Silicon(M2 Ultra/M3 Max/M4 Max)など、ワークロードと予算に応じた最適なハードウェア構成を設計。CUDA、MPS、Metal 最適化により GPU 性能を最大限に活用した推論環境を構築します。"},{title:"モデル選定・最適化",description:"タスク特性・言語要件・リソース制約を考慮し、Llama、Qwen、Mistral、DeepSeek 等から最適なモデルを選定。量子化(GGUF/AWQ/GPTQ)、KV キャッシュ最適化、バッチ処理チューニングにより、精度とスループットを両立します。"},{title:"推論エンジン構築",description:"vLLM、SGLang、Ollama、TGI 等の推論エンジンを用途に応じて選定・構築。Continuous Batching、Speculative Decoding、Prefix Caching 等の最新技術を適用し、低レイテンシ・高スループットの推論 API を提供します。"},{title:"運用・監視・セキュリティ",description:"Prometheus/Grafana による推論メトリクス監視、API ゲートウェイによるアクセス制御、監査ログ、自動スケーリング、障害復旧を実装。エンタープライズセキュリティ要件を満たす本番運用環境を構築します。"}]},techStack:{title:"技術スタック",subtitle:"Platform & Technology",categories:{openWeightModels:{title:"Open-Weight Models",items:["Llama 3.3 70B / 8B","Qwen 2.5 72B / 32B / 7B","Mistral Large / Nemo","DeepSeek V3 / R1","Gemma 2 27B / 9B","Phi-4","Command R(Cohere)"]},japaneseModels:{title:"日本語特化モデル",items:["ELYZA-japanese-Llama-2","Swallow 70B / 13B","Japanese-Llama-3","Qwen-2.5-Japanese","Karakuri-LM"]},inferenceEngine:{title:"Inference Engine",items:["vLLM(Continuous Batching)","SGLang(RadixAttention)","Ollama(ローカル開発)","llama.cpp(Apple Silicon)","TGI(Hugging Face)","TensorRT-LLM(NVIDIA)","ExLlamaV2(量子化特化)"]},quantization:{title:"Quantization",items:["GGUF(llama.cpp 標準)","AWQ(高精度 4bit)","GPTQ(GPU 最適化)","bitsandbytes(8bit/4bit)","EETQ(高効率量子化)"]},hardware:{title:"Hardware",items:["NVIDIA H100 / A100","NVIDIA L40S / A10G","RTX 4090 / 5090","Apple Silicon M2 Ultra","Apple Silicon M3/M4 Max","AMD MI300X"]}
216,infrastructure:{title:"Infrastructure",items:["Docker / Kubernetes","NVIDIA Triton Server","API Gateway(Kong / Envoy)","Prometheus / Grafana","Private Cloud(VMware / OpenStack)","Air-Gapped 環境対応"]}},updateNote:{title:"2026年の主なアップデートポイント",description:"オープンウェイトモデルでは Llama 3.3 が GPT-4 クラスの汎用性能を達成し、日本語性能も大幅向上。Qwen 2.5 シリーズは多様なサイズ展開とバランスの良い性能で選択肢が拡大。DeepSeek V3/R1 は推論コストパフォーマンスで注目を集めています。推論エンジンでは vLLM 2.0 の Chunked Prefill、SGLang の RadixAttention がマルチターン対話を高速化。llama.cpp の Apple Silicon 最適化が進み、M4 Max での 70B モデル推論が実用的に。量子化技術では 4bit 精度と推論速度の両立が進み、GGUF が事実上の標準フォーマットとして定着しました。"}},cta:{title:"お問い合わせ",description:`要件整理からご相談いただけます。
217PoC・ローカル LLM 構成の検討も可能です。`,primaryButton:"お問い合わせ",secondaryButton:"技術相談"}},yv={hero:{badges:["Enterprise","RAG","検索拡張生成"],title:"Vector / RAG 開発",description:"社内ナレッジを LLM と連携させる RAG システム構築"},mission:{title:"Vector / RAG 開発サービス概要",paragraphs:["社内に蓄積されたナレッジ資産を LLM と連携させ、従業員が自然言語で検索・質問できる RAG(検索拡張生成)システムを構築いたします。マニュアル、議事録、技術文書、FAQ、Slack 履歴、Confluence、SharePoint など多様なデータソースを統合し、組織知を即座に活用できる環境を実現します。","単純な文書検索に留まらず、Hybrid Search(ベクトル検索+キーワード検索)、Reranking、階層的チャンキング、メタデータフィルタリング等の最新技術を適用し、検索精度と回答品質を最大化します。回答には出典を明示し、ハルシネーション抑制と信頼性確保を両立します。","AWS、GCP、Azure、オンプレミスなど多様な環境に対応し、既存の認証基盤・権限管理と統合。データの鮮度維持(差分更新・自動再インデックス)、利用ログ分析、継続的な精度改善まで一貫してサポートいたします。"]},summary:{title:"RAG 技術の動向",paragraphs:["2025年から2026年にかけて、RAG 技術は「基本実装から本番品質へ」のフェーズに移行しています。単純なベクトル検索だけでなく、複数の検索手法を組み合わせた Hybrid Search、検索結果の並び替えを行う Reranking、複雑な質問を分解して処理するクエリ分解が標準的な構成となりました。","チャンキング戦略も進化し、文書構造を考慮した階層的チャンキング、重複を持たせた Overlapping Chunks、テーブルや図表を個別処理する Multimodal Chunking が精度向上に寄与しています。Contextual Retrieval(チャンクにコンテキスト情報を付与)の有効性も広く認知されました。","ベクトルDB 選定においては、Pinecone、Weaviate、Qdrant、Milvus 等のマネージドサービスに加え、PostgreSQL pgvector やローカル FAISS など、要件に応じた選択肢が充実。Embedding モデルも text-embedding-3-large、Cohere Embed v3、多言語対応モデルなど選択肢が拡大しています。","エンタープライズ導入においては、権限管理(ACL)連携、PII マスキング、監査ログ、マルチテナント設計が必須要件となり、「動く PoC」から「運用可能な本番システム」への移行が求められています。"],icons:[{label:`Hybrid
218Search`},{label:`Multi-modal
219RAG`},{label:`Agentic
220RAG`},{label:`Enterprise
221Security`}]},features:{title:"設計・開発の特徴",subtitle:"Design & Development",items:[{title:"データ収集・前処理パイプライン",description:"PDF、Word、Excel、HTML、Markdown、Slack、Confluence、SharePoint 等からのデータ抽出・クレンジング。OCR、テーブル構造解析、画像キャプション生成を含むマルチモーダル対応。差分更新・スケジュール実行による鮮度維持を実現します。"},{title:"高精度検索システム設計",description:"ベクトル検索+BM25 の Hybrid Search、Cohere Rerank / Cross-Encoder による Reranking、クエリ拡張・分解を組み合わせた高精度検索を構築。メタデータフィルタリング、権限ベースのアクセス制御も実装します。"},{title:"回答生成・品質管理",description:"コンテキスト最適化、Few-shot プロンプト、Chain-of-Thought 推論により回答品質を向上。出典明示、信頼度スコア表示、ハルシネーション検知を実装し、業務利用に耐える信頼性を確保します。"},{title:"運用・改善サイクル",description:"利用ログ分析、検索ヒット率・回答満足度のモニタリング、フィードバックループによる継続的改善。A/B テスト基盤、Embedding モデル更新、チャンキング戦略見直しを含む運用支援を提供します。"}]},techStack:{title:"技術スタック",subtitle:"Platform & Technology",categories:{embeddingModels:{title:"Embedding Models",items:["OpenAI text-embedding-3-large","Cohere Embed v3","Voyage AI","Jina Embeddings v3","BGE-M3(多言語)","multilingual-e5-large","Japanese-specific models"]},vectorDatabases:{title:"Vector Databases",items:["Pinecone(マネージド)","Weaviate(Hybrid Search)","Qdrant(高性能)","Milvus(大規模)","Chroma(軽量)","PostgreSQL pgvector","FAISS(ローカル)"]},chunking:{title:"Chunking & Processing",items:["階層的チャンキング","Semantic Chunking","Overlapping Chunks","Sentence Window","Contextual Retrieval","テーブル・図表処理","マルチモーダル対応"]},search:{title:"Search & Retrieval",items:["Hybrid Search (Vector + BM25)","Cohere Rerank","Cross-Encoder Reranking","クエリ拡張・分解","HyDE (仮説文書生成)","Self-Query Retrieval","Multi-Query Retrieval"]}},updateNote:{title:"2026年の主なアップデートポイント",description:"Embedding モデルでは text-embedding-3-large と Cohere Embed v3 がエンタープライズ標準となり、日本語性能も大幅向上。Contextual Retrieval の有効性が実証され、チャンクへのコンテキスト付与が標準手法に。検索では Hybrid Search + Reranking が必須構成となり、単純なベクトル検索のみの構成は減少。Agentic RAG(エージェントが検索戦略を動的に選択)の
221実用化も進んでいます。運用面では、RAG 評価フレームワーク(RAGAS、LangSmith)による品質計測と改善サイクルの確立が重視されています。"}},cta:{title:"お問い合わせ",description:`要件整理からご相談いただけます。
222PoC・ローカル LLM 構成の検討も可能です。`,primaryButton:"お問い合わせ",secondaryButton:"技術相談"}},vv={hero:{badges:["Full Stack","LLM Integration","API Design"],title:"AIアプリケーション開発",description:"LLMを活用した実用的なアプリケーションを設計・構築"},mission:{title:"AIアプリケーション開発サービス概要",paragraphs:["外部APIから取得したデータをLLMで解析し、ビジネス価値を創出するAIアプリケーションの設計・開発を提供いたします。CRM、ERP、SaaS、IoTセンサー、ソーシャルメディアなど多様なデータソースとAPI連携し、取得したデータをリアルタイムでLLMに投入。自然言語による分析レポート生成、異常検知、トレンド予測、自動分類など、従来のBIツールでは実現できなかった高度なデータ解析を可能にします。","単純なAPI連携に留まらず、複数データソースの統合、データクレンジング、構造化処理を経てLLMが解釈しやすい形式に変換。プロンプトエンジニアリングにより解析精度を最大化し、業務要件に特化したアウトプットを生成します。営業データから商談成約予測、カスタマーサポートログからVoC分析、センサーデータから設備保全レコメンドなど、データとAIを組み合わせた実用的なアプリケーションを構築いたします。","Webアプリケーション、モバイルアプリ、Slack・Teams連携、定期バッチ処理など多様なインターフェースに対応。要件定義からAPI設計、LLM連携実装、本番運用まで一貫してサポートいたします。"]},summary:{title:"AIアプリケーション開発の動向",paragraphs:["2025年から2026年にかけて、AIアプリケーション開発は「API連携×LLM解析」を軸とした実用フェーズに突入しています。従来のBIツールやダッシュボードでは対応できなかった非構造化データの解析、自然言語によるインサイト生成が企業システムに組み込まれ始めました。","特に注目すべきは、LLMのStructured Output機能の成熟です。JSON Schema準拠の厳密な出力制御が可能となり、API経由で取得したデータをLLMで解析し、その結果を後続システムにそのまま連携するエンドツーエンドの自動化パイプラインが現実のものとなりました。Function Callingの多段実行により、複数のAPIを跨いだデータ収集・統合・解析を単一のワークフローで処理できるようになっています。","データ処理基盤ではPolarsが高速処理の標準として台頭し、Streaming処理との組み合わせでリアルタイム解析が容易に。MCPの普及により、LLMが外部APIを自律的に呼び出してデータ取得・解析を行うAgenticなアプリケーション構築も加速しています。","企業導入においては、単発のPoC開発から本番運用を見据えたスケーラブルな設計へとニーズがシフトし、コスト最適化、エラーハンドリング、監査ログ対応を含めた包括的なアーキテクチャ設計が求められています。"],icons:[{label:`Agentic
223AI`},{label:`MCP
224Protocol`},{label:`Multi
225Agent`},{label:`Human-on
226-the-Loop`}]},features:{title:"設計・開発の特徴",subtitle:"Design & Development",items:[{title:"API連携・データ収集設計",description:"REST API、GraphQL、WebSocket、Webhookなど多様なプロトコルに対応したデータ収集基盤を構築。認証処理(OAuth、APIキー、JWT)、レート制限対応、リトライ機構を実装し、安定したデータ取得パイプラインを設計します。複数APIからのデータ統合、スケジューリング、差分取得にも対応いたします。"},{title:"データ前処理・構造化",description:"取得した生データをLLMが効率的に解析できる形式に変換。JSONパース、データクレンジング、正規化、欠損値処理を実施し、コンテキストウィンドウ制限を考慮した最適なデータ分割・要約をè
226¡Œã„ます。メタデータ付与により、解析結果のトレーサビリティも確保します。"},{title:"LLM解析・プロンプト設計",description:"業務要件に特化したプロンプトテンプレートを設計し、データ解析精度を最大化。分類、要約、感情分析、異常検知、予測生成など目的に応じた解析パイプラインを構築します。Function Calling、Structured Outputを活用し、後続システムと連携しやすい形式でアウトプットを生成します。"},{title:"アプリケーション実装・運用",description:"FastAPI、Next.js等によるWebアプリケーション、Slack・Teams Bot、定期実行バッチなど多様なインターフェースで解析結果を提供。ダッシュボード、通知アラート、レポート自動生成を実装し、ビジネスユーザーが即座に活用できる形で納品いたします。運用監視、コスト最適化、継続改善まで対応します。"}]},techStack:{title:"技術スタック",subtitle:"Platform & Technology",categories:{apiIntegration:{title:"API Integration",items:["REST / GraphQL / WebSocket","OAuth 2.1 / APIキー / JWT","Webhook / Polling","Apache Airflow / Prefect","Celery / Temporal","requests / httpx / aiohttp","Rate Limiting / Retry","Data Validation (Pydantic)"]},dataProcessing:{title:"Data Processing",items:["Pandas / Polars","JSON / JSONL Parser","Data Cleansing Pipeline","Apache Spark (大規模処理)","dbt (データ変換)","Great Expectations","Delta Lake / Iceberg","Streaming (Kafka / Flink)"]},llmCloud:{title:"Cloud LLM",items:["OpenAI GPT-4o / GPT-4.1","Claude 3.5 / Claude 4","Gemini 2.0 / Gemini 2.5","Command R+ (Cohere)","Mistral Large"]},llmLocal:{title:"Local LLM",items:["Llama 3.3 / Llama 4","Mistral / Mixtral","Qwen 2.5 / Qwen 3","DeepSeek V3 / R1","Gemma 2 / Gemma 3","Phi-4","ELYZA / Swallow(日本語特化)","Command R(Cohere)"]},inference:{title:"Inference / Framework",items:["vLLM / SGLang","Ollama / llama.cpp","LiteLLM Proxy","Function Calling","Structured Output","Prompt Template Engine","LangChain / LlamaIndex","独自解析パイプライン"]}
226,application:{title:"Application Layer",items:["FastAPI / Litestar","Next.js / React","Slack SDK / Teams SDK","Streamlit / Gradio","Scheduled Jobs (Cron / Cloud Scheduler)","PostgreSQL / MongoDB","Redis (Cache / Queue)","Docker / Kubernetes"]}},updateNote:{title:"2026年の主なアップデートポイント",description:"LLM解析領域では、GPT-4.1やClaude 4のStructured Output機能が成熟し、JSON Schema準拠の厳密な出力制御が標準化。Function Callingの多段実行により、複数APIを跨いだ複合的なデータ収集・解析が1つのパイプラインで実現可能になりました。データ処理ではPolarsがPandasに代わる高速処理の選択肢として定着し、Streaming処理との組み合わせでリアルタイム解析基盤の構築が容易に。アプリケーション層ではMCPによる外部ツール連携が一般化し、LLMがAPIを自律的に呼び出してデータ取得・解析を行うAgenticなアプリケーション開発が加速しています。"}},cta:{title:"お問い合わせ",description:`要件整理からご相談いただけます。
227PoC・ローカル LLM 構成の検討も可能です。`,primaryButton:"お問い合わせ",secondaryButton:"技術相談"}},Av={seo:Jy,header:Zy,hero:Xy,mission:Yy,businessServices:ev,features:av,businessProcess:nv,story:tv,contact:iv,footer:sv,cookiePolicy:rv,about:ov,portfolio:lv,common:dv,privacyPolicy:uv,termsOfService:cv,weatherMap:mv,agentDevelopment:pv,faq:gv,pricing:hv,aiTranscription:fv,keywordTracking:kv,onPremiseLLM:bv,vectorRAG:yv,aiAppDevelopment:vv},xv={home:{title:"telet.ai - AI-Powered Solutions Platform",description:"Transform your customer conversations with AI-powered call analytics. Get real-time insights, sentiment analysis, and performance tracking to improve your team's results."},about:{title:"Organization Information - telet.ai",description:"Learn about telet.ai's mission to transform customer conversations with AI. Meet our team and explore our journey."},privacy:{title:"Privacy Policy - telet.ai",description:"Review telet.ai's privacy policy to understand how we handle your data and protect your privacy."},terms:{title:"Terms of Service - telet.ai",description:"Read telet.ai's terms of service for using this website and contacting us for consultations."},cookies:{title:"Cookie Policy - telet.ai",description:"Learn how telet.ai uses cookies and similar technologies (Cloudflare and Google Analytics)."},portfolio:{title:"Portfolio - telet.ai",description:"Explore our portfolio of AI solutions designed to enhance your business operations and customer experiences."},agentDevelopment:{title:"Enterprise AI Agent Design & Development - telet.ai",description:"Design and build production-grade AI agents tailored to your workflows, tools, and compliance needs."},onPremiseLLM:{title:"On-Premise LLM Operations - telet.ai",description:"Operate modern LLMs inside your environment for strong data control, predictable costs, and low-latency inference."},vectorRAG:{title:"Vector RAG & Index Design - telet.ai",description:"Design retrieval pipelines and indices tailored to each workflow to improve grounded answers."},aiAppDevelopment:{title:"AI Application Development - telet.ai",description:"Build practical applications powered by LLMs—integrated with your APIs, data, and business workflows."}},Lv={brand:"telet.ai",nav:{services:"Services",portfolio:"Portfolio",about:"Organization Information",contact:"Contact"}},Pv={brandName:"telet.ai",tagline:"Multi AI-communications",badge:"AI-Powered Call Intelligence",title:{line1:"Local and defensive,",line2:"Expand in the cloud,",line3:"Automated by agent."},description:"Edge inference in SLM ensures data sovereignty, and cloud integration in LLM scales processing power to infinity; the adoption of the Agentic AI architecture is beginning to show results from leading companies."},wv={badge:"Our Mission",title:"Making LLM more accessible",paragraphs:['Can you really go this far?" --That surprise is what we are aiming for.','The potential of large-scale language modeling (LLM) is expanding every day. However, we want to break down barriers such as "I am worried about sending confidential data to external APIs," "Advanced AI applications are only for large companies," and "The cost of implementation is not worth it.',"We specialize in building local LLMs that are completed within your environment. Highly sensitive customer information can be safely utilized without being exposed to the outside world. We can maximize the benefits of AI while ensuring data security.","It handles everything from routine document creation and data organization to specialized analysis and decision support. Our proprietary agent te
227chnology provides accuracy comparable to API models.",'LLM does not replace people. It is a powerful tool that allows people to exercise more creativity, judgment, and expertise. We take the technology from special to commonplace - a true "consumerization" of the technology.','Please feel free to consult with us. We will work with you to find out "What can we do?" together with you.'],animation:{label:"LLM",sublabel:"Technology"}},Sv={title:"Services",subtitle:"Business Services",services:[{title:"AI Agent Design and Development for Enterprises",titleEn:"Enterprise AI Agent",description:"Design and develop AI agents optimized for business requirements, internal rules, and data scope. Support from external API type LLM to local LLM.",badges:["Individual Design","LLM compatible","business specialization"],link:"Details."},{title:"on-premise LLM server",titleEn:"On-Premise LLM Server",description:"Runs 7B to 120B scale LLM within the company's dedicated server. Provides a secure and flexible LLM usage environment, avoiding the risk of external data transmission.",badges:["7B-120B supported","API KEY issued","Safety Design"],link:"Details."},{title:"Vector RAG and index design",titleEn:"Vector RAG Architecture",description:"Separate and optimize RAG data by business content and analysis logic. Index design for fast and accurate searches.",badges:["Index Separation","High speed search","multilingual support"],link:"Details."},{title:"AI Application Development",titleEn:"AI Application Dev",description:"Develop practical AI applications with analysis and generation by LLM at its core, utilizing existing APIs and external data.",badges:["API Linkage","LLM Analysis","Integrated Design"],link:"Details."}]},Iv={title:"Achievement projects using AI technology",subtitle:"AI development experience in a wide range of fields, including multilingual assistants, weather forecasting, local LLM, and security monitoring.",viewDetails:"View details →.",items:[{title:"AI Multilingual Assistant",description:"Multilingual chat assistant by RAG + LLM. Highly accurate responses to inquiries in multiple languages including Japanese, English, and Chinese."},{title:"Weather Forecasting System",description:"Learns weather data and generates real-time forecasts. Highly accurate forecasts are generated by using time-series pattern recognition and RAG to search for similar patterns in the past."},{title:"In-house Server / On-Prem Local LLM",description:"We deliver AI tailored to your business operations, ready to use within your company, with Open WebUI as a common entry point, fast inference lanes with Ollama/MLX, and completely separated data domains for each UID. In-house documents are captured in a RAG with English embedding and automatic Japanese query translation, and business skills such as news summarization, document organization, and routine tasks are safely executed side by side. The skill execution system is isolated as an OpenClaw container and protected by three layers of Cloudflare edge and local Nginx. We provide comprehensive support for model selection, skill design, and operational policies, and start up your company's dedicated AI in a form that can be used from the day it is deployed."},{title:"Interplanetary Orbital Arrival Prediction (AI)",description:"Obtain planetary data from NASA API and interpret orbit calculations in LLM. Generates reports on launch window, time required, and fuel efficiency."},{title:"Real Estate Data AI Analysis",description:"Collect real estate information by web scraping and analyze with LLM + Python. Automatic generation of price trends, market forecasts, and return on investment."},{title:"Fortune-telling AI (Four Pillars Fortune-telling)",description:"Reproduce the Four Pillars of Destiny logic in Python and interpret it with LLM. Acquire coordinates and time from the Astronomy API for personalized appraisal of fortune and compatibility."},{title:"Google Workspace AI integration",description:"LLM integration with Gmail, Drive, Calendar, etc. AI assists with email summary, file search, and scheduling."},{title:"World NEWS Multilingualization",description:"Real-time collection of world news, translated and summarized in multiple languages by LLM. Natural translation and summary generation based on contextual understanding."}
227,{title:"Security Log Monitoring AI Manager",description:"Real-time monitoring of security logs, threat detection and analysis by LLM, and immediate alerts by matching with past attack patterns by RAG."}]},Mv={title:"How to proceed with the project",headline:"All you need is a vision.",paragraphs:['Gone are the days when language differences were a barrier to business, and although we use AI translation, we can handle business negotiations and development in 14 languages through our unique workflow that makes full use of image sharing. Even complex specifications can be checked with sample images to avoid miscommunication. The only thing that matters is "what you want to create.',"The project begins with an initial hearing in the business application. After a general sharing of the client's vision and sense of the issues, an NDA (Non-Disclosure Agreement) is signed. After creating an environment in which confidential information can be discussed in confidence, we conduct detailed interviews and confirm requirements. Based on the content, we prepare a proposal and confirm the direction of the project using sample images. With the understanding in place, we prepare specifications and start development.","This flow is only a general introduction. We will flexibly adapt to your situation and schedule. Wherever you are in the world, even if you don't speak the same language, images and AI will support your communication. Why don't you join us to enter the frontier market that no one has yet tapped into? Let telet.ai be your partner to give shape to your ideas."],cards:[{title:"Hearing / NDA",description:"After the initial hearing by e-mail, a nondisclosure agreement is signed. You can provide us with details with peace of mind."},{title:"Planning & CA",description:"Proposal and sample images are provided. 14 languages are supported, so you can proceed without language barriers."},{title:"Sampling & Start",description:"We will prepare specifications and start business upon agreement."},{title:"Development, testing and operation",description:"Speedy implementation through agile development. We provide consistent support from testing to operational support."}]},jv={badge:"Case Studies",title:"AI Introduction Story",items:[{title:"Business Efficiency and Cost Reduction Solutions",subtitle:"Reduce the daily workload and create an environment in which you can focus on your core business.",description:`Many small and medium-sized enterprises (SMEs) face labor shortages and hiring difficulties. Even when new personnel are hired, training costs are high and there are problems with retention rates. Our AI solution supports daily tasks such as automating budget management, data entry and organization, internal document retrieval, and automatic generation of reports and documents. AI assistants handle routine tasks that used to take up a lot of time, 24 hours a day, 365 days a year, without errors. Companies that have introduced AI have realized significant reductions in work hours. From "increasing human resources" to "collaborating with AI. We will do our best to support your company's work style reform.`},{title:"Customer Support Automation",subtitle:"24-hour service improves customer satisfaction and reduces labor costs.",description:"AI chatbots provide automated responses to frequently asked questions, primary response and sorting of inquiries, and real-time response in multiple languages. Real-time response in multiple languages. Human operators can focus on complex cases and improve the quality of customer service. Take your service quality to the next level with AI customer support."},{title:"Knowledge and Document Utilization AI",subtitle:"Internal knowledge assets in a form that can be immediately utilized by anyone",description:'Where is that manual?" There is information that only the predecessor knows" - impersonalized knowledge hinders the growth of a company. Our RAG (search extension generation) technology allows you to retrieve necessary information from internal manuals, FAQs, and past documents by simply asking questions in natural language. It streamlines the training of new employees, digitizes the tacit 
227knowledge of veterans, and enables knowledge sharing across departments. Existing documents can be used as they are, so there is no need to create new documents.'},{title:"Image analysis AI for medical and nursing care",subtitle:"Watchful eyes, 24-hour support by AI",description:"In the medical and nursing care fields, it is necessary to watch over a large number of patients and users with limited staff. Our image/video analysis AI detects abnormalities in real time from camera images. It automatically detects infectious diseases by detecting fever, alerts immediately if a patient falls or wanders, and detects changes in physical condition by analyzing facial expressions. By reducing the burden of nighttime patrols, responding quickly to emergencies, and automating recording tasks, staff can focus on their primary care duties. On-premise installation is also available to ensure privacy."}]},Cv={title:"Contact Us",description:"We can consult with you from the requirements planning stage, and can also consider PoC and local LLM configurations.",openForm:"Open Form",closeForm:"Close the form",form:{name:"Your Name",namePlaceholder:"Taro Yamada",email:"Email Address",emailPlaceholder:"[email protected]",subject:"subject",subjectPlaceholder:"Subject of your inquiry",message:"Message",messagePlaceholder:"Please fill in your inquiry",required:"*",submit:"Send",submitting:"Sending...",turnstileMessage:'The "I am not a robot" authorization is required for submission.',turnstileError:"Failed to load security authorization. Please reload.",errorRetry:"Please try again."}},Dv={brand:"telet.ai",tagline:"Multi AI-communications",description:"Innovate your business with AI agents. Create value from dialogue.",sections:{product:{title:"Product",features:"Feature",benefits:"introduction",testimonials:"Customer Testimonials"},services:{title:"Service",agentDev:"AI Agent Design and Development for Enterprises",onPremise:"on-premise LLM server",vectorRag:"Vector RAG and index design",aiApp:"AI Application Development"},company:{title:"Organization Information",about:"About telet.ai",profile:"Representative Profile",contact:"Contact Us"},process:{title:"How we do business",hearing:"Hearing / NDA",planning:"Planning & CA",sampling:"Sampling & Start",development:"Development, testing and operation"}},copyright:"© 2026 telet.ai. All rights reserved.",legal:{privacy:"Privacy Policy",terms:"Terms of Use",cookies:"Cookie Policy"}},zv={title:"Cookie Policy",subtitle:"This section describes the cookies and other technologies (Cloudflare / Google Analytics) used on this site.",lastUpdated:"Last update: January 22, 2026",intro:'telet.ai ("we", "us", "our") ("We") may use cookies and similar technologies to provide and improve this Site and to ensure its security. We do not set our own special tracking cookies for advertising purposes (although Cloudflare and Google Analytics may set cookies or similar technologies in accordance with their respective service specifications).',sections:{what:{title:"1. what is a cookie?",description:"Cookies are small text files that are stored in your browser when you visit a website."},howWeUse:{title:"Purpose of our use of cookies, etc.",description:"We may use cookies, etc. primarily for the following purposes",items:["To stabilize the display and operation of the site","To detect and prevent unauthorized access and malicious traffic","To understand the status of access and to help improve the site"]},googleAnalytics:{title:"3. use of Google Analytics",description:"We use Google Analytics 4 (GA4) provided by Google LLC for access analysis.",items:["Information collected may include pages viewed, time spent, referral source, device and browser information, etc.","We do not use directly personally identifiable information (name, email address, etc.) for the purpose of sending it to Google Analytics.","The treatment of data by Google is subject to Google's terms and policies"]},cloudflare:{title:"4. use of Cloudflare",description:"We use the services of Cloudflare, Inc. for delivery and security measures of this Site. Cloudflare may set and refer to cookies, etc. for purposes such as DDoS protection and bot prevention.",items:["The primary purpose is for security and communication optimization, and is not intended to be tracked for ad delivery","Cloudflare's treatment of data is subject to Cloudflare's terms and policies"]},noSpecialCookies:{title:"5. our own special cookies",description:"We do not set our own special cookies for the purpose of behavioral targeting advertising, etc. The use of cookies, etc. is mainly limited to the scope of site operation, security, and access analysis."},choices:{title:"6. cookie management (opt-out)",description:"If cookies are disabled, some functions may not be available.",items:["Cookies can be deleted or disabled in browser settings","If you wish to disable measurement by Google Analytics, please use the opt-out method provided by Google","Use of a browser's private mode, etc., can limit the information stored."]},changes:{title:"7. changes to this policy",description:"We may revise this policy in response to amendments to laws and regulations or changes in the services used. The revised policy will become effective when it is posted on this page."},contact:{title:"8. contact us",description:"If you have any questions regarding this policy, please contact us at",company:"telet.ai",contactLink:"Go to Inquiry Form"}}},Tv={hero:{title:"About telet.ai",subtitle:"Careful AI development support that can only be provided by a small, personalized team."},story:{title:"About us",content:"telet.ai began with a question. Why are so many companies failing to leverage the insights that lie in the countless interactions between companies and their customers? The team, headed by a representative with experience in AI research and enterprise softw
227are development, was established to tackle this issue head-on. We are not a large organization. That is why we are able to face your challenges in depth and propose only the solutions that are truly necessary. Our strength is our ability to design hybrid architectures that integrate local LLM and cloud LLM. We can protect your company's sensitive data in a dedicated cloud environment while performing advanced AI inference in a scalable manner. We provide a CLI for developers and a chat UI for frontline staff, creating a foundation for AI use throughout your organization. And we focus on being the optimal solution rather than being the most advanced. Discarding functions according to budget and reviewing just one configuration can make a big difference in cost. We deliver what you need, in the amount you need. Our attentive AI development support is only possible because we are small and personal. To solve manpower shortages and support your company's growth. That is the promise of telet.ai."},representative:{title:"Representative of telet.ai labo",name:"Keita Okuizumi",tagline:"To the sky, to the sea, and to the code - a passion for AI development born of an unusual career",paragraphs:['As a former aircraft pilot and small-vessel captain, I have been dealing with weather both in the air and at sea for many years. In the cockpit and wheelhouse, I watched changes in the barometer, deciphered the isobaric pressure lines, and compared them with the movement of wind and clouds. The sense of "reading data, judging, and acting" that I developed through this repetitive process is the starting point for me today.',`I started learning Python programming at the age of 57. The impetus was simple curiosity, but as soon as I started writing code I was fascinated by the possibilities of AI agents. I created applications with my own hands, ran them, and improved them. In the process, I realized something. In past projects, I was involved as a non-engineer, and development was always done by someone else. However, once I started writing the code myself, I began to see the essence of the problem. This is the bottleneck here" or "This design cannot be expanded" - by having an engineer's point of view, the speed of realizing what I want to do has increased dramatically.`,"Developing weather services by combining field experience with data science, building AI agents to improve operational efficiency, and various experimental projects. As I continued to work with my hands, I became convinced not only that the technology was interesting, but also that there must be people who need this.","Our goal is not to chase the cutting edge. We face the customer's issues and budget, and deliver only what is truly necessary at a reasonable cost. We are not a large organization, so we are able to provide development support that is tailored to the needs of each individual customer. We want to use this technology for the benefit of society - that is why we launched telet.ai."]},contact:{title:"Organization Information",company:"telet.ai labo",ceo:"Representative: OKUIZUMI Keita",button:"Contact Us"},studios:{tokyo:{title:"Tokyo Studio",address:"#301 First Hills A Musashikoganei, 3-3-21 Nukuiminamicho, Koganei-shi, Tokyo 184-0014, Japan"}}},Ev={title:"Portfolio",subtitle:"See our track record of utilizing AI technology",techStackLabel:"Technology Stacks",viewProject:"View Project",privateProject:"Private Projects",visualizationLabel:"data visualization",cta:{title:"Contact Us",description:"Please feel free to contact us to discuss your project or for technical inquiries.",button:"Contact Us"},projects:{"traffic-route-ai":{title:"AI Transit Route Selection System",subtitle:"Route planning for public transport in Malaysia",description:"A transit route selection system that searches bus and train connections between an origin and destination and compares options by arrival time, journey duration, and transfers. Bus-only and train-only filters, nearby station and stop search, and a multilingual interface help users choose routes for everyday journeys and travel.",techStack:["Public Transit Routing","Bus & Rail Integration","Route Comparison","Multilingual UI"]},"multilingual-assistant":{title:"AI Multilingual Assistant",description:"Intelligent chat assistant for multi-language inquiries, building 1,573 vector indexes and implementing precise answer control through conditional branching, NG word filtering, and keyword triggering. Consistent and highly accurate answers to user questions in multiple languages, including Japanese, English, and Chinese, are generated through cross-language semantic search.",techStack:["RAG","Vector Search","Multilingual Embedding","LLM","conditional branch logic"]},"weather-forecast":{title:"AI Weather Forecasting with Weather API",description:"Developed an AI system that learns from past weather data and makes real-time forecasts of recent weather conditions. LLM analyzes past data obtained from JMA API, OpenWeatherMap, etc., and generates short-term forecasts for temperature, precipitation probability, wind speed, etc. Combining pattern recognition of time-series data with past similarity pattern search by RAG, the system achieves highly accurate forecasts that complement conventional statistical models.",techStack:["Weather API Linkage","LLM","RAG","Time Series Data Analysis","real time processing"]},"local-llm":{title:"In-house Server / On-Prem Local LLM",description:"We deliver AI tailored to your business operations, ready to use within your company, with Open WebUI as a common entry point, fast inference lanes with Ollama/MLX, and completely separated data domains for each UID. In-house documents are captured in a RAG with English embedding and automatic Japanese query translation, and business skills such as news summarization, document organization, and routine tasks are safely executed side by side. The skill execution system is isolated as an OpenClaw container and protected by three layers of Cloudflare edge and local Nginx. We provide comprehensive support for model selection, skill design, and operational policies, and start up your company's dedicated AI in a form that can be used from the day it is deployed.",techStack:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"]},"orbital-prediction":{title:"Interplanetary Orbital Arrival Prediction (AI)",description:"Developed a system to analyze optimal departure points for interplanetary transfer by obtaining planetary position data, orbital elements, and gravity parameters from NASA API. Calculate orbit calculations considering Hohmann transfer orbit and gravity assist using API and Python, and display launch window, time required, and fuel efficiency. The system is used as a simulation tool for educational institutions and space-related companies. *AI function is currently removed, calculation is in progress with API and Python.",techStack:["NASA API (Horizons, SPICE)","Orbital Dynamics Calculation","Python","data visualization"]},"real-estate":{title:"Real Estate Data AI Analysis",description:"Developed a system that collects real estate information for a specific region via web scraping and performs advanced data analysis using LLM and Python. Variables such as property price, tsubo unit price, building age, and station distance are extracted, and price trend anal
227ysis, market forecasts, and investment return simulations are automatically generated. Features were also extracted from unstructured property descriptions using LLM to provide comprehensive market analysis combined with quantitative data. *Offering now available as a second version (FULL version provided separately)",techStack:["Web scraping (Scrapy, Playwright)","Python","Pandas","LLM Analysis","data visualization"]},"fortune-ai":{title:"Four Pillars AI Appraisal System",subtitle:"Reproducing traditional wisdom with technology.",paragraphs:["Four Pillars of Divination is the culmination of thousands of years of Eastern divination. This system reproduces its traditional divination logic completely in Python, combined with interpretation and advice generation using LLM (Large Language Models). The AI faithfully reproduces the appraisal process performed by an expert fortune teller.","After entering the date, time, and place of birth, the system retrieves the sunrise and sunset times and coordinate information at that time from the Astronomy API. Based on these data, the system accurately calculates the zodiac sign, the ten gods, and the balance of the five elements. Logic based on the divination science of the Four Pillars of Destiny is indexed in Python and combined with statistical data and RAG (Retrieval Augmentation Generation) information to improve the accuracy of the life formula analysis.","The calculated life-style data is explained in natural language by LLM in an easy-to-understand manner. Personalized appraisal results are generated, including the flow of fortune, compatibility of interpersonal relationships, and suitable occupation for you. You can obtain answers with the same depth as if you had consulted a professional fortune teller.","It is currently available as a second version. You can try out the basic kumishiki analysis and fortune analysis. The full version, which includes more detailed analysis and multifaceted advice, is available separately."],techStack:["Python","Astronomy API (Sunrise-Sunset, TimeZoneDB)","Four Pillar Logic","LLM","Coordinate and time calculation"]},"google-workspace":{title:"Google Workspace AI integration",description:"Developed a system that links Google Workspace (Gmail, Drive, Calendar, Docs, Sheets) with LLM to read, edit, and automatically process business data. AI assists with daily tasks such as summarizing email content, generating drafts for automatic replies, searching and analyzing Drive files, extracting schedules from Calendar, and proposing adjustments. Workspace operation from the Agent is also realized through secure API connection with OAuth authentication and MCP compliant tool design. Second version is now available (FULL version will be provided separately).",techStack:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"]},"world-news":{title:"World NEWS Multilingualization",description:"Development of a system that collects articles in real time from news sources around the world and performs multilingual translation, summarization, and categorization using LLM. Translates original articles in English, Chinese, French, Arabic, and other languages into Japanese and organizes them by topic. Efficient international news monitoring is achieved not by simple machine translation, but by natural translation based on contextual understanding using LLM and summary generation that extracts the main points of the article. *Offering now available as a second version (FULL version provided separately).",techStack:["News API","RSS collection","LLM Translation and Summary","multilingual processing","Auto-categorization","scheduled batch processing"]},"security-monitoring":{title:"Security Log Monitoring AI Manager",description:"Developed a system for real-time monitoring of corporate security logs and advanced threat detection and analysis using LLM. Various log sources such as firewalls, IDS/IPS, authentication logs, and application logs are collected and analyzed by a Python module, and compared with past attack patterns, vulnerability information, and incident cases accumulated in RAG. When an abnormal pattern is detected, LLM explains the threat level, scope of impact, and recommended response in natural language, and immediately alerts the person in charge. If the same pattern recurs, a high priority alert is automatically issued to speed up the incident response.",techStack:["Python Monitoring Module","Log collection (Fluentd, Logstash)","RAG","Threat Pattern DB","LLM Analysis","Alert notifications (Slack, PagerDuty)"]}}},Rv={learnMore:"Read more",getStarted:"begin to ...",contactUs:"Contact Us",backToHome:"Return to Home"},Nv={title:"Privacy Policy",subtitle:"Privacy Policy",lastUpdated:"Last update: January 23, 2026",intro:'telet.ai (the "Service") considers the protection of your personal information to be an important responsibility and has established the following privacy policy.',sections:{collection:{title:"1. information to be collected",description:"The Service may collect the following information when you contact us or use the Service.",items:["Email Address","Your name (optional)","Inquiry Details","Other information voluntarily provided by you"]},purpose:{title:"2. purpose of use of information",description:"Personal information collected will be used only for the following purposes",items:["Answering and responding to inquiries","Contact and information about our services","Communication required for project progression","Analysis for service improvement (in a format that does not identify individuals)"]},thirdParty:{title:"3. provision to third parties",description:"The Service will not provide your personal information to third parties except in the following cases",
227items:["If the customer consents","When there is a request for disclosure based on laws and regulations","When necessary for the protection of the life, body, or property of a person"]},security:{title:"4. information management",description:"The Service will properly manage collected personal information and take reasonable security measures to prevent unauthorized access, loss, leakage, and falsification."},email:{title:"5. handling of e-mails",description:"The Service will handle e-mails in accordance with the following policy.",items:["We will use the contents of your e-mail only for the purpose of responding to your inquiry and providing our services.","We will not sell, rent, or share your email address with any third party","We may send you information emails about our services. If you wish to unsubscribe, please use the unsubscribe link in the email or contact us using the contact information below.","SSL/TLS encryption is used for e-mail communications to ensure secure communications","We will securely delete your email after storing it for an appropriate period of time."]},cookies:{title:"6. use of cookies",description:"Cookies can be disabled in your browser settings."},external:{title:"7. use of external services",description:"This service may use the following external services. Please refer to the respective links for the privacy policy of each service.",items:["Google Analytics (access analysis)","Other cloud services required for business operations"]},changes:{title:"8. changes to privacy policy",description:"This policy is subject to revision without notice in accordance with amendments to laws and regulations or changes in service content. The revised policy will become effective when posted on this page."},contact:{title:"9. contact us",description:"If you have any questions regarding this policy, please contact us at",company:"telet.ai",contactLink:"Go to Inquiry Form"}}},Gv={title:"Terms of Use",subtitle:"These are the terms and conditions for using this site and for booking a consultation, making inquiries, and requesting information from telet.ai.",lastUpdated:"Last update: January 22, 2026",intro:'These Terms of Use (hereinafter referred to as the "Terms") These Terms of Use (hereinafter referred to as the "Terms") apply to the website operated by telet.ai (hereinafter referred to as "we", "us", "our", or "ours"). (hereinafter referred to as "we", "us", or "our"). (hereinafter referred to as the "Site") operated by telet.ai (hereinafter referred to as the "We"). The Site is provided primarily as a landing page for consultation appointments, inquiries, and document requests, and does not provide for account creation or paid billing functions on the Site.',sections:{scope:{title:"1. scope of application",description:'These Terms and Conditions apply to all visitors and users of the Site ("Users"). The Terms of Use shall apply to all visitors and users of the Website (hereinafter referred to as "Users"). In the event that a separate NDA, outsourcing agreement, individual contract, etc. is concluded between us and a User, such document shall take precedence over the Terms and Conditions.'},prohibited:{title:"2. prohibited items",description:"In using the Site, Users shall not engage in any of the following acts",items:["Acts that violate laws and regulations or public order and morals","Any act that infringes on our or any third party's intellectual property rights, privacy, or other rights or interests","Acts that interfere with the operation of this site or related systems through unauthorized access, excessive load, sabotage, etc.","Submitting false information or impersonating a third party in inquiry forms, etc.","Scraping, reverse engineering, or excessive automated access without our prior permission"]},disclaimer:{title:"3. disclaimer",description:'we provide this site on an "as is" and "as available" basis. To the fullest extent permitted by law, we disclaim all warranties with respect to this site.',items:["Information on this site is subject to change or deletion without notice.","We do not guarantee the accuracy, completeness, or fitness for a particular purpose of the information on this site.","We will not be liable for any damages resulting from your use of this site or reliance on information contained herein.","Responses to consultations and inquiries are for general information only and do not constitute legal, tax, medical or other professional advice."]},ip:{title:"4. intellectual property rights",description:"All rights to the text, images, designs, trademarks, logos, etc. on this site belong to us or to the rightful right holders. You may not use them without the permission of the right holders."},links:{title:"5. links to external sites",description:"This website may contain links to third-party websites. We are not responsible for the content or operation of the linked sites."},changes:{title:"6. modification of these Terms and Conditions",description:"We reserve the right to change these Terms and Conditions from time to time as necessary. The amended Terms of Use will become effective when posted on the Site."},governingLaw:{title:"7. governing law and jurisdiction",description:"These Terms and Conditions shall be governed by and construed in accordance with the laws of Japan. The Tokyo District Court shall have exclusive jurisdiction as the court of first instance over any dispute arising out of or in connection with this Site."},contact:{title:"8. contact us",description:"If you have any questions regarding these Terms and Conditions, please contact",company:"telet.ai",contactLink:"Go to Inquiry Form"}}},Ov={title:"regular motion",subtitle:"AI predicts the",description1:"Weather information is provided in real time by each country. Your country is displayed in the center of the map. Yesterday's weather and today's weather are actual records - the rain clouds should have been in your sky at that date and time.",description2:"However, this animation also animates future weather movements.",description3:"
227Vectors past data and searches for patterns at high speed. Weather patterns can also be predicted from the surrounding environment. Similarly, it is possible to predict harvest, production, and sales by calculating elements (i) from the environment and advanced statistical values from past performance and having AI analyze them.",refresh:"refresh (e.g. memory)",loading:"Loading weather map..."},Bv={hero:{badges:["Enterprise","Local LLM","Custom Agent"],title:"AI Agent Design and Development for Enterprises",description:"Design and build dedicated AI Agents tailored to business requirements"},mission:{title:"Custom AI Agent Development Services",description:"We consistently develop custom AI Agents that address your company's unique business issues, from design to implementation and operation. Our architectural design emphasizes compatibility with existing mission-critical systems and SaaS environments, enabling smooth integration with APIs, databases, and internal tools. Our engineers are familiar with LangChain, AutoGen, CrewAI, and other major frameworks, Our engineers are familiar with LangChain, AutoGen, CrewAI, and other major frameworks, and will propose the best solution for your company's technology stack and operational structure. We do not only develop one-off chatbots, but also build multi-agent systems in which multiple Agents cooperate with each other to perform tasks, and Agentic Workflows that work in conjunction with external tools. We support maximizing the business value brought by AI Agents through a long-term partnership that includes continuous improvement after implementation, following model updates, and maintenance of operational monitoring systems.",imageAlt:"Custom AI Agent Development Services"},summary:{title:"Agent Development Trends",paragraphs:['From 2025 to 2026, AI Agent development is moving from the demonstration phase to the full-scale corporate implementation phase. The concept of "Agentic AI" has taken root, and autonomous business execution systems that go beyond mere chatbots have begun operating in various industries.',`Computer-Using Agents" that directly control browsers and desktops, such as OpenAI's Operator, Anthropic's Computer Use, and Google's Project Mariner, have become practical. The Model Context Protocol (MCP) is a burgeoning ecosystem, enabling plug-and-play integration with thousands of tools.`,"Multi-agent architectures have reached maturity, with specialized Agents working together to perform complex tasks such as project management, customer support, and data analysis. A2A (Agent-to-Agent) protocol standardization has also made progress in Agent collaboration between different vendors.",'The governance model has evolved from "Human-in-the-Loop" to "Human-on-the-Loop" for corporate implementations, with a mechanism for post-agent decision auditing and automatic escalation based on risk level as standard features, accelerating adoption in regulated industries such as finance, healthcare, and manufacturing. The adoption of this system is accelerating in regulated industries such as financial, medical, and manufacturing.']},features:{title:"Design and Development",subtitle:"Design & Development",items:[{title:"Agent design based on business requirements",description:"Extract use cases from business flow analysis, decompose tasks and clarify Agent responsibilities. We determine whether processing can be completed by a single Agent or requires multi-Agent coordination, and select the optimal inference patterns such as ReAct, Plan-and-Execute, and Reflexion."},{title:"RAG / Tool / Workflow integration",description:"Highly accurate RAG pipelines combining Embedding Generation, Chunk Strategy, and Hybrid Search, standardized connection to external APIs and databases with MCP compliant Tool definitions, and multi-step workflow orchestration using LangGraph and CrewAI. Orchestrate multi-step workflows with LangGraph and CrewAI."},{title:"Security and authorization design",description:"Access control of Agent functions by RBAC/ABAC, Prompt Injection countermeasures, and PII detection and masking are implemented. Audit logs of all inputs and outputs are retained, and SOC2 and ISO27001 compliant environment operation is supported."},{title:"Implementation including operation and monitoring",description:"Implement Trace visualization with LangSmith, Langfuse, etc., and real-time monitoring of latency, token consumption, and error rate. Build a continuous improvement cycle including anomaly detection alerts, A/B testing infrastru
227cture, and Regression Test when updating models."}]},techStack:{title:"Technology Stacks",subtitle:"Platform & Technology",categories:{agentFramework:{title:"Agent Framework",items:["AutoGen 0.4 / AG2","CrewAI","LangGraph","OpenAI Agents SDK","Anthropic MCP","Google ADK (Agent Development Kit)","Semantic Kernel","Proprietary Agent Platform"]},apiLayer:{title:"API Layer",items:["FastAPI / Litestar","gRPC / Connect","GraphQL Federation","Server-Sent Events (SSE)","WebSocket / NATS","OAuth 2.1 / OIDC","API Gateway (Kong / Envoy)","Adaptive Rate Limiting"]},vectorDb:{title:"Vector DB / RAG",items:["Pinecone","Weaviate","Qdrant","Milvus","ChromaDB","pgvector","FAISS","Turbopuffer"]},infrastructure:{title:"Infrastructure",items:["Kubernetes (EKS / GKE / AKS)","Docker / Podman","On-Premise GPU Cluster","Private Cloud","Serverless (Lambda / Cloud Run)","OpenTelemetry / Langfuse","Terraform / Pulumi","ArgoCD / Flux"]}},updateNote:{title:"Main update points for 2026",description:"In Agent Framework, official SDKs/protocols from major vendors such as OpenAI Agents SDK, Anthropic MCP, and Google ADK are emerging; in API Layer, gRPC and SSE have become the standard for Agent-to-Agent communication, and the transition to OAuth 2.1 is underway. In Vector DB, Qdrant and Turbopuffer are gaining attention for their high-speed search."}},cta:{title:"Contact Us",description:`We can consult with you from the requirements arrangement.
228PoC and local LLM configurations can also be considered.`,primaryButton:"Contact Us",secondaryButton:"Technical Consultation"}},Kv={title:"Frequently Asked Questions",subtitle:"FAQ",items:[{question:"Can I use my existing manuals and FAQs without modification?",answer:"Yes, you can use it; it supports most formats, including PDF, Word, Excel, HTML, and text files. Simply upload your existing internal documents as they are, and AI will learn the content and use it to answer your questions. No format conversion or special processing is required."},{question:"Is it safe to use with data containing sensitive information?",answer:"Yes, you can use our service securely. On-premise (in-house servers) or in a private cloud environment, data is never transmitted outside the company. We can propose configurations to meet your security requirements."},{question:"How long does it take to implement?",answer:"A standard FAQ bot can be implemented in as little as 2-4 weeks. If integration with existing systems or advanced customization is required, we estimate 1-3 months. We can also start with a small-scale PoC (proof of concept)."},{question:"Do you use external APIs such as ChatGPT or Claude?",answer:"Choice is available upon request. We support both configurations that use external APIs (OpenAI, Anthropic, Google, etc.) and configurations that use open source LLMs (Llama, Mistral, Qwen, etc.) that run completely locally. We can propose the best configuration for your cost, security, and performance requirements."},{question:"How accurate is the AI's response?",answer:"Depending on the application and data quality, a properly designed RAG system can return accurate answers to questions for which relevant documents exist with 90% or greater accuracy. Mechanisms to control halcination (generation of erroneous information) are also built in as standard."},{question:"Do you support languages other than Japanese?",answer:"Yes, multilingual support is available. We support all major languages, including Japanese, English, Chinese, and Korean. Instead of having separate models for each language, a single system can handle multilingual queries."},{question:"Can you integrate with existing systems (CRM, chat tools, etc.)?",answer:"Yes, it can be integrated; it supports API integration with major business tools such as Salesforce, HubSpot, Slack, Microsoft Teams, and LINE WORKS. You can incorporate an AI assistant without changing your existing workflow."},{question:"What is your fee structure?",answer:"It depends on the size and requirements of the project. While initial construction and monthly operation fees are generally combined, we also accept requests for spot development or consulting services only. Please let us know your requirements first. We will provide you with a rough estimate."}]},Vv={title:"Rate Plans",subtitle:"Pricing Plans",description:"Flexible plans to fit the size of your business",plans:[{name:"starter",price:"29,800 yen",period:"Monthly/user",description:"The best plan for small teams. Basic AI functions at an affordable price.",features:["Up to 100 calls per month","Basic Transcription","Keyword Detection","Email Support","7-day data retention"],cta:"Get started for free",popular:!1},{name:"professional",price:"Â¥79,800",period:"Monthly/user",description:"Ideal for growing teams. Advanced analytical features.",features:["Up to 500 calls per month","High-precision AI transcription","Emotional Analysis","CRM Linkage","Priority Support","30-day data retention","Custom Reports"],cta:"14-day free trial",popular:!0},{name:"enterprise",price:"Contact Us",period:"custom",description:"Full-featured plans for large organizations",features:["Unlimited calls","Dedicated AI Model","on-premise support","Dedicated Support","Custom collaboration","SLA Assurance","Security Audits","Unlimited data retention"],cta:"Consult with Sales",popular:!1}],faq:{title:"Frequently Asked Questions",items:[{question:"Is there a free trial?",answer:"Yes, a 14-day free trial is available for Professional plans. No credit card required to get started."},{question:"Can I change my plan at any time?",answer:"Yes, you can upgrade or downgrade your plan at any time. Changes will be applied starting with the next billing cycle."},{question:"Is there a contract term bound?",answer:"Monthly plans have no contract term restrictions. If you choose an annual contract, you will receive a 20% discount."}]}},Fv={hero:{badge:"AI-Powered Technology",title:"AI Transcription",description:"Advanced machine learning models provide 99.5% accuracy. AI trained on millions of customer interaction data converts voice to text.",features:["99.5% accuracy","real time processing","Support for more than 40 languages"]},features:{title:"Main Functions",subtitle:"Advanced transcription engine that goes beyond simple speech recognition",items:[{title:"real-time transcription",description:"Get real-time transcripts during conversations. Gain instant insight and never miss a real-time coaching opportunity."},{title:"multilingual support",description:"Supports more than 40 languages and covers global teams with automatic language detection."},{title:"contextual understanding",description:"AI models trained on industry-specific terminology accurately recognize technical and business terms."},{title:"speaker separation",description:"Automatically identifies and separates different speakers in a conversation and assigns clear speaker attributes."},{title:"custom lexicon",description:"Learning your company's unique product names, service names, and technical terms provides even higher accuracy."},{title:"Quality Assurance",description:"Automatic quality checks and reliability scoring ensure the highest quality transcription."}]}
228,useCases:{title:"Usage Scenes",subtitle:"Industries and teams requiring accurate call transcription",items:[{title:"Sales Team",description:"Reflect on sales calls and identify success patterns. Improve talk effectiveness and coach team members with specific examples."},{title:"Customer Support",description:"Accurately records customer issues. Maintain a comprehensive support history to ensure consistent service quality."},{title:"quality control",description:"Monitor compliance and ensure script adherence. Maintain detailed records for audits and training."}]},stats:{accuracy:{value:"99.5%",label:"transcription accuracy"},languages:{value:"40+",label:"Languages Supported"},latency:{value:"<2 sec.",label:"processing delay"},availability:{value:"24/7",label:"continuous processing"}}},Wv={hero:{badge:"Smart Detection",title:"Keyword Tracking",description:"Automatically monitor competitor mentions, rebuttals, and important topics. Never miss important signals from customer conversations.",badges:["Competitive Tracking","Response Detection","Topic Analysis","custom keyword"]},features:{title:"Track critical information",subtitle:"Automatic detection and analysis of keywords from all conversations",items:[{title:"Competitive Monitoring",description:"Track competitor mentions to understand how prospects compare your solution to alternatives on the market."},{title:"Response Detection",description:"Automatically identify common objections and concerns and develop effective responses and training."},{title:"custom keyword",description:"Define and track custom keywords and phrases specific to your business, product or industry."},{title:"Trend Analysis",description:"Discover emerging trends from customer conversations and adapt your strategy based on actual market signals."},{title:"context extraction",description:"Get context before and after the keyword, not just the mention of it. Understand n
228ot only what was said, but why and how it was said."},{title:"Smart Search",description:"Instantly search all conversations to find exactly where and when a particular topic was discussed."}]},applications:{title:"Usage Scenes",items:{competitive:{title:"Competitive Intelligence",description:"Deep understanding of the competitive landscape:",points:["Track your most frequently mentioned competitors","Understand how prospective customers compare features and prices","Identify your competitive advantages and weaknesses","Creating effective anti-competitive materials"]},objections:{title:"response to a rebuttal",description:"Turn a rebuttal into an opportunity:",points:["Identify most common customer concerns","Analyze top performers' rebuttal responses","Playbook with proven response.","Train your team with effective turnaround"]},product:{title:"Product Insights",description:"Promoting product development through customer feedback:",points:["Identify most requested features","Understand challenges to current functionality","Discover unexpected use cases","Prioritize roadmap based on customer needs"]},compliance:{title:"Compliance & Quality",description:"Ensure regulatory compliance and quality:",points:["Monitor required disclosures and legal language","Flag conversations that may violate policy","Track script compliance and best practices","Generate compliance reports for audit"]}}},advancedFeatures:{title:"Advanced Features",items:[{title:"ambiguous retrieval",description:"Automatically detects keyword variations, synonyms, and related terms without manual configuration."},{title:"historical analysis",description:"Analyze keyword trends over time to identify seasonal patterns and emerging topics."},{title:"Real-time alerts",description:"Receive immediate notifications when important keywords are mentioned in live conversations."}]}},qv={hero:{badges:["Enterprise","Local LLM","In-house server operation"],title:"On-Premise LLM Construction",description:"Operate LLM in your own environment, keeping data outside the company"},mission:{title:"On-Premise LLM Construction Service Overview",paragraphs:["For companies that cannot release confidential data outside the company, we build an LLM environment that can be completed on their own servers or in a private cloud. This solution is ideal for organizations that require strict information management, such as financial institutions, medical institutions, government agencies, and research institutes, because it does not use any public API and all processing is completed within the customer-managed infrastructure.","We provide comprehensive support from model selection, server construction, inference engine optimization, and operation monitoring, using commercially available open-weight models such as Llama 3.3, Qwen 2.5, Mistral, and DeepSeek with high-performance inference engines such as vLLM, Ollama, and SGLang. These models are run on high-performance inference engines such as vLLM, Ollama, and SGLang to provide a low-latency, high-throughput inference environment.","We support a wide range of use cases such as integration with existing systems, chatbots, internal RAGs, document summarization, and code generation. We can design to meet enterprise requirements, including business specialization through model fine tuning, NVIDIA GPU / Apple Silicon optimization, multi-tenant design, API gateway construction, and more."]},summary:{title:"On-Premise LLM Trends",paragraphs:["In 2025-2026, the utility of on-premise LLMs is rapidly improving. The performance of open-weighted models has flanked that of closed models, and the number of models offered with commercially available licenses has significantly lowered the hurdle for in-house operations.","The models with 8B to 70B parameters have reached a practical level for many business tasks, GGUF quantization enables high-speed inference even on consumer GPUs.","For inference engines, vLLM's Continuous Batching and PagedAttention dramatically increase throughput, and SGLang's RadixAttention accelerates complex multi-turn interactions. Ollama has become the de facto standard for local development environments, and llama.cpp is Apple Silicon optimized for fast inference on M-series Macs.","In enterprise adoption, in addition to data sovereignty and compliance, long-term cost optimization (moving away from pay-as-you-go API billing) is increasingly becoming a motivation for adoption. Hybrid configurations (local for sensitive processing and cloud API for general purpose processing) have become a common option."],icons:[{label:`Private
229Cloud`},{label:`Data
230Sovereignty`},{label:`Cost
231Optimization`},{label:`Enterprise
232Security`}]},features:{title:"Design and development features",subtitle:"Design & Development",items:[{title:"Infrastru
232cture design and GPU optimization",description:"Design the optimal hardware configuration for your workload and budget, including NVIDIA A100/H100, RTX 4090/5090, and Apple Silicon (M2 Ultra/M3 Max/M4 Max), and create an inference environment that takes full advantage of GPU performance through CUDA, MPS, and Metal optimization. CUDA, MPS, and Metal optimization to maximize GPU performance."},{title:"Model selection and optimization",description:"Select the optimal model from Llama, Qwen, Mistral, DeepSeek, etc. considering task characteristics, language requirements, and resource constraints. Quantization (GGUF/AWQ/GPTQ), KV cache optimization, and batch processing tuning are used to achieve both accuracy and throughput."},{title:"Inference engine construction",description:"Select and build inference engines such as vLLM, SGLang, Ollama, TGI, etc. according to your application, and apply the latest technologies such as Continuous Batching, Speculative Decoding, and Prefix Caching to provide low-latency and high-throughput inference APIs. We provide low-latency and high-throughput inference APIs."},{title:"Operation, Monitoring and Security",description:"Implement inferential metrics monitoring with Prometheus/Grafana, access control with API gateway, audit logs, auto scaling, and failure recovery. Build a production operation environment that meets enterprise security requirements."}]},techStack:{title:"Technology Stack",subtitle:"Platform & Technology",categories:{openWeightModels:{title:"Open-Weight Models",items:["Llama 3.3 70B / 8B","Qwen 2.5 72B / 32B / 7B","Mistral Large / Nemo","DeepSeek V3 / R1","Gemma 2 27B / 9B","Phi-4","Command R (Cohere)"]},japaneseModels:{title:"Japanese-specific model",items:["ELYZA-japanese-Llama-2","Swallow 70B / 13B","Japanese-Llama-3","Qwen-2.5-Japanese","Karakuri-LM"]},inferenceEngine:{title:"Inference Engine",items:["vLLM (Continuous Batching)","SGLang (RadixAttention)","Ollama (local development)","llama.cpp (Apple Silicon)","TGI (Hugging Face)","TensorRT-LLM (NVIDIA)","ExLlamaV2 (quantization specialization)"]},quantization:{title:"Quantization",items:["GGUF (llama.cpp standard)","AWQ (high precision 4bit)","GPTQ (GPU optimization)","bitsandbytes(8bit/4bit)","EETQ (Efficient Efficiency Quantization)"]},hardware:{title:"Hardware",items:["NVIDIA H100 / A100","NVIDIA L40S / A10G","RTX 4090 / 5090","Apple Silicon M2 Ultra","Apple Silicon M3/M4 Max","AMD MI300X"]}
232,infrastructure:{title:"Infrastructure",items:["Docker / Kubernetes","NVIDIA Triton Server","API Gateway (Kong / Envoy)","Prometheus / Grafana","Private Cloud (VMware / OpenStack)","Air-Gapped Environmental Support"]}},updateNote:{title:"Main update points for 2026",description:"In open-weight models, Llama 3.3 achieves GPT-4 class general-purpose performance and greatly improves Japanese language performance; the Qwen 2.5 series expands the choice with a variety of sizes and well-balanced performance; DeepSeek V3/R1 attracts attention for its inference cost performance; and the vLLM 2.0 Chunked Prefill and SGLang's RadixAttention inference engines speed up multi-turn dialogue. In the inference engine, vLLM 2.0's Chunked Prefill and SGLang's RadixAttention speed up multi-turn interactions; Apple Silicon optimization of llama.cpp makes 70B model inference practical on M4 Max; and the Quantization technology offers 4-bit precision and high performance. Quantization techniques achieved both 4-bit precision and inference speed, and GGUF became the de facto standard format."}},cta:{title:"Contact Us",description:`We can consult with you from the requirements arrangement.
233PoC and local LLM configurations can also be considered.`,primaryButton:"Contact Us",secondaryButton:"Technical Consultation"}},Uv={hero:{badges:["Enterprise","RAG","search extension generation"],title:"Vector / RAG Development",description:"Build a RAG system to link internal knowledge with LLM"},mission:{title:"Vector / RAG Development Services Overview",paragraphs:["We will build a RAG (search extension generation) system that allows employees to search and ask questions in natural language by linking the knowledge assets accumulated in the company with LLM. We integrate various data sources such as manuals, minutes, technical documents, FAQs, Slack history, Confluence, SharePoint, etc. to create an environment where organizational knowledge can be immediately utilized.","We maximize search accuracy and response quality by applying the latest technologies such as Hybrid Search (vector search + keyword search), Reranking, hierarchical chunking, metadata filtering, etc., in addition to simple document search. We clearly indicate the source of the answer to both suppress halcination and ensure reliability.","We support a variety of environments including AWS, GCP, Azure, and on-premise, and integrate with existing authentication infrastructure and authority management. We provide consistent support for maintaining data freshness (differential updates and automatic re-indexing), analyzing usage logs, and continuously improving accuracy."]},summary:{title:"RAG Technology Trends",paragraphs:['Between 2025 and 2026, RAG technology is moving into the "basic implementation to production quality" phase. In addition to simple vector search, Hybrid Search, which combines multiple search methods, Reranking, which reorders search results, and Query Decomposition, which decomposes and processes complex questions, have become standard configurations.',"Chunking strategies have also evolved, with hierarchical chunking that takes document structure into account, overlapping chunks, and multimodal chunking that processes tables and figures separately, all contributing to improved accuracy. Contextual Retrieval (adding contextual information to chunks) has also been widely recognized as effective.","For vector DB selection, in addition to managed services such as Pinecone, Weaviate, Qdrant, and Milvus, PostgreSQL pgvector and local FAISS offer a wide range of options to meet your requirements. Embedding models are also available, including text-Embedding-3-large, Cohere Embed v3, and multilingual models.",'In enterprise deployments, authority management (ACL) linkage, PII masking, audit logs, and multi-tenant design are essential requirements, and there is a need to move from a "working PoC" to a "production-ready production system.'],icons:[{label:`Hybrid
234Search`},{label:`Multi-modal
235RAG`},{label:`Agentic
236RAG`},{label:`Enterprise
237Security`}]},features:{title:"Design and development features",subtitle:"Design & Development",items:[{title:"Data collection and preprocessing pipeline",description:"Data extraction and cleansing from PDF, Word, Excel, HTML, Markdown, Slack, Confluence, SharePoint, etc. Multi-modal support including OCR, table structure analysis, and image caption generation. Maintain freshness with differential updates and scheduled execution."},{title:"High-precision search system design",description:"Construct high-precision search combining Vector Search + BM25 Hybrid Search, Reranking by Cohere Rerank / Cross-Encoder, and Query Expansion and Decomposition. Metadata filtering and permission-based access control are also implemented."},{title:"Response generation and quality control",description:"Improved answer quality with context optimization, Few-shot prompts, and Chain-of-Thought inference. Source clarification, confidence score display, and halcination detection are implemented to ensure reliability for business use."},{title:"Operation and improvement cycle",description:"We provide operational support including usage log analysis, search hit rate and response satisfaction monitoring, continuous improvement through feedback loops, A/B testing infrastru
237cture, Embedding model updates, and chunking strategy reviews."}]},techStack:{title:"Technology Stack",subtitle:"Platform & Technology",categories:{embeddingModels:{title:"Embedding Models",items:["OpenAI text-embedding-3-large","Cohere Embed v3","Voyage AI","Jina Embeddings v3","BGE-M3 (multilingual)","multilingual-e5-large","Japanese-specific models"]},vectorDatabases:{title:"Vector Databases",items:["Pinecone (Managed)","Weaviate (Hybrid Search)","Qdrant (high performance)","Milvus (large scale)","Chroma (lightweight)","PostgreSQL pgvector","FAISS (local)"]},chunking:{title:"Chunking & Processing",items:["hierarchical chunking","Semantic Chunking","Overlapping Chunks","Sentence Window","Contextual Retrieval","Table and chart processing","Multimodal support"]},search:{title:"Search & Retrieval",items:["Hybrid Search (Vector + BM25)","Cohere Rerank","Cross-Encoder Reranking","Query expansion and decomposition","HyDE (Hypothetical Document Generation)","Self-Query Retrieval","Multi-Query Retrieval"]}},updateNote:{title:"Main update points for 2026",description:"In the Embedding model, text-Embedding-3-large and Cohere Embed v3 became the enterprise standard, and Japanese language performance improved significantly; Contextual Retrieval proved to be effective, and adding context to chunks became the standard method. Hybrid Search + Reranking has become a mandatory configuration for search, reducing the number of simple vector search-only configurations, and Agentic RAG (agents dynamically select search strategies) is being put into practical use. On the operational side, emphasis is being placed on establishing quality measurement and improvement cycles using RAG evaluation frameworks (RAGAS, LangSmith)."}},cta:{title:"Contact Us",description:`We can consult with you from the requirements arrangement.
238PoC and local LLM configurations can also be considered.`,primaryButton:"Contact Us",secondaryButton:"Technical Consultation"}},_v={hero:{badges:["Full Stack","LLM Integration","API Design"],title:"AI Application Development",description:"Design and build practical applications that leverage LLM"},mission:{title:"AI Application Development Service Overview",paragraphs:["We provide design and development of AI applications that create business value by analyzing data acquired from external APIs with LLM, linking APIs with diverse data sources such as CRM, ERP, SaaS, IoT sensors, and social media, and feeding acquired data into LLM in real time. We enable advanced data analysis that cannot be achieved with conventional BI tools, such as analytical report generation using natural language, anomaly detection, trend prediction, and automatic classification.","Not just simple API integration, but also integration of multiple data sources, data cleansing, and conversion to a format that is easy for LLM to interpret through structured processing. Prompt engineering maximizes the accuracy of analysis and generates output specialized for business requirements. We build practical applications that combine data and AI, such as sales data to predict business negotiations, customer support logs to perform VoC analysis, and sensor data to provide equipment maintenance recommendations.","We support a variety of interfaces such as web applications, mobile applications, Slack/Teams integration, and periodic batch processing. We provide consistent support from requirement definition to API design, LLM integration implementation, and production operation."]},summary:{title:"Trends in AI Application Development",paragraphs:['From 2025 to 2026, AI application development is entering a practical phase based on "API integration x LLM analysis". Unstructured data analysis and natural language insight generation, which could not be handled by traditional BI tools and dashboards, are beginning to be incorporated into enterprise systems.',"Of particular note is the maturation of LLM's Structured Output functionality, which enables strict JSON Schema-compliant output control, making an end-to-e
238nd automated pipeline a reality, where data acquired via APIs is analyzed by LLM and the results are fed directly into subsequent systems. Multi-stage execution of Function Calling enables data collection, integration, and analysis across multiple APIs to be handled in a single workflow.","In the data processing infrastructure, Polars has emerged as a standard for high-speed processing, and in combination with streaming processing, it facilitates real-time analysis.","In corporate implementations, needs have shifted from one-off PoC development to scalable design for production operation, requiring comprehensive architecture design that includes cost optimization, error handling, and audit log support."],icons:[{label:`Agentic
239AI`},{label:`MCP
240Protocol`},{label:`Multi
241Agent`},{label:`Human-on
242-the-Loop`}]},features:{title:"Design and development features",subtitle:"Design & Development",items:[{title:"API integration and data collection design",description:"Build a data collection infrastructure that supports various protocols such as REST API, GraphQL, WebSocket, and Webhook. We design a stable data acquisition pipeline by implementing authentication processes (OAuth, API key, JWT), rate limiting, and retry mechanisms. We also support data integration, scheduling, and differential acquisition from multiple APIs."},{title:"Data preprocessing and structuring",description:"Converts raw data into a format that can be efficiently analyzed by LLM, including JSON parsing, data cleansing, normalization, and missing value processing, and performs optimal data segmentation and summarization considering context window restrictions. Metadata assignment ensures traceability of analysis results."},{title:"LLM analysis and prompt design",description:"Maximize the accuracy of data analysis by designing prompt templates specific to your business requirements. We build analysis pipelines for classification, summarization, sentiment analysis, anomaly detection, prediction generation, etc. We utilize Function Calling and Structured Output to generate output in a format that can be easily integrated with subsequent systems."},{title:"Application implementation and operation",description:"We provide analysis results through a variety of interfaces, including FastAPI, web applications using Next.js, etc., Slack/Teams Bot, and scheduled batch execution. Dashboards, notification alerts, and automatic report generation are implemented and delivered in a form that business users can immediately utilize. We also provide operational monitoring, cost optimization, and continuous improvement."}]},techStack:{title:"Technology Stack",subtitle:"Platform & Technology",categories:{apiIntegration:{title:"API Integration",items:["REST / GraphQL / WebSocket","OAuth 2.1 / API key / JWT","Webhook / Polling","Apache Airflow / Prefect","Celery / Temporal","requests / httpx / aiohttp","Rate Limiting / Retry","Data Validation (Pydantic)"]},dataProcessing:{title:"Data Processing",items:["Pandas / Polars","JSON / JSONL Parser","Data Cleansing Pipeline","Apache Spark (Large-scale processing)","dbt (data conversion)","Great Expectations","Delta Lake / Iceberg","Streaming (Kafka / Flink)"]},llmCloud:{title:"Cloud LLM",items:["OpenAI GPT-4o / GPT-4.1","Claude 3.5 / Claude 4","Gemini 2.0 / Gemini 2.5","Command R+ (Cohere)","Mistral Large"]},llmLocal:{title:"Local LLM",items:["Llama 3.3 / Llama 4","Mistral / Mixtral","Qwen 2.5 / Qwen 3","DeepSeek V3 / R1","Gemma 2 / Gemma 3","Phi-4","ELYZA / Swallow (specialized in Japanese)","Command R (Cohere)"]},inference:{title:"Inference / Framework",items:["vLLM / SGLang","Ollama / llama.cpp","LiteLLM Proxy","Function Calling","Structured Output","Prompt Template Engine","LangChain / LlamaIndex","Proprietary Analysis Pipeline"]}
242,application:{title:"Application Layer",items:["FastAPI / Litestar","Next.js / React","Slack SDK / Teams SDK","Streamlit / Gradio","Scheduled Jobs (Cron / Cloud Scheduler)","PostgreSQL / MongoDB","Redis (Cache / Queue)","Docker / Kubernetes"]}},updateNote:{title:"Main update points for 2026",description:"In the LLM analysis area, GPT-4.1 and Claude 4's Structured Output functionality has matured to standardize strict JSON Schema-compliant output control, and multi-stage execution of Function Calling enables complex data collection and analysis across multiple APIs in a single pipeline. The multi-stage execution of Function Calling enables complex data collection and analysis across multiple APIs in a single pipeline. In data processing, Polars has become an established alternative to Pandas for high-speed processing, and in combination with streaming processing, it facilitates the construction of a real-time analysis infrastructure. At the application layer, external tool integration using MCP has become commonplace, accelerating the development of agentic applications in which LLMs call APIs autonomously to acquire and analyze data."}},cta:{title:"Contact Us",description:`We can consult with you from the requirements arrangement.
243PoC and local LLM configurations can also be considered.`,primaryButton:"Contact Us",secondaryButton:"Technical Consultation"}},Hv={seo:xv,header:Lv,hero:Pv,mission:wv,businessServices:Sv,features:Iv,businessProcess:Mv,story:jv,contact:Cv,footer:Dv,cookiePolicy:zv,about:Tv,portfolio:Ev,common:Rv,privacyPolicy:Nv,termsOfService:Gv,weatherMap:Ov,agentDevelopment:Bv,faq:Kv,pricing:Vv,aiTranscription:Fv,keywordTracking:Wv,onPremiseLLM:qv,vectorRAG:Uv,aiAppDevelopment:_v},$v={home:{title:"telet.ai - แพลตฟอร์มโซลูชัน AI",description:"เปลี่ยนแปลงการสนทนากับลูกค้าด้วยการวิเคราะห์การโทรด้วย AI รับข้อมูลเชิงลึกแบบเรียลไทม์ การวิเคราะห์อารมณ์ และการติดตามประสิทธิภาพเพื่อปรับปรุงผลลัพธ์ของทีม"},about:{title:"ข้อมูลองค์กร - telet.ai",description:"เรียนรู้เกี่ยวกับภารกิจของ telet.ai ในการเปลี่ยนแปลงการสนทนากับลูกค้าด้วย AI พบกับทีมงานและสำรวจเส้นทางของเรา"},privacy:{title:"นโยบายความเป็นส่วนตัว - telet.ai",description:"ตรวจสอบนโยบายความเป็นส่วนตัวของ telet.ai เพื่อทำความเข้าใจว่าเราจัดการข้อมูลของคุณและปกป้องความเป็นส่วนตัวของคุณอย่างไร"},terms:{title:"ข้อกำหนดการให้บริการ - telet.ai",description:"อ่านข้อกำหนดการให้บริการของ telet.ai สำหรับการใช้งานเว็บไซต์และการติดต่อเราเพื่อขอคำปรึกษา"},cookies:{title:"นโยบายคุกกี้ - telet.ai",description:"เรียนรู้ว่า telet.ai ใช้คุกกี้และเทคโนโลยีที่คล้ายกัน (Cloudflare และ Google Analytics) อย่างไร"},portfolio:{title:"พอร์ตโฟลิโอ - telet.ai",description:"สำรวจพอร์ตโฟลิโอของโซลูชัน AI ที่ออกแบบมาเพื่อยกระดับการดำเนินธุรกิจและประสบการณ์ของลูกค้า"},agentDevelopment:{title:"การออกแบบและพัฒนา AI Agent สำหรับองค์กร - telet.ai",description:"ออกแบบและสร้าง AI Agent ระดับการผลิตที่ปรับแต่งตามเวิร์กโฟลว์ เครื่องมือ และความต้องการด้านการปฏิบัติตามกฎระเบียบของคุณ"},onPremiseLLM:{title:"การดำเนินงาน LLM ภายในองค์กร - telet.ai",description:"ดำเนินการ LLM สมัยใหม่ภายในสภาพแวดล้อมของคุณเพื่อการควบคุมข้อมูลที่แข็งแกร่ง ต้นทุนที่คาดการณ์ได้ และการอนุมานที่มีความล่าช้าต่ำ"},vectorRAG:{title:"การออกแบบ Vector RAG และดัชนี - telet.ai",description:"ออกแบบไปป์ไลน์การดึงข้อมูลและดัชนีที่ปรับแต่งตามเวิร์กโฟลว์แต่ละรายการเพื่อปรับปรุงคำตอบที่มีพื้นฐาน"},aiAppDevelopment:{title:"การพัฒนาแอปพลิเคชัน AI - telet.ai",description:"สร้างแอปพลิเคชันที่ใช้งานได้จริงโดยขับเคลื่อนด้วย LLM ที่รวมเข้ากับ API ข้อมูล และเวิร์กโฟลว์ธุรกิจของคุณ"}},Qv={brand:"telet.ai",nav:{services:"บริการ",portfolio:"พอร์ตโฟลิโอ",about:"ข้อมูลองค์กร",contact:"ติดต่อ"}},Jv={brandName:"telet.ai",tagline:"การสื่อสารหลายระบบปัญญาประดิษฐ์",badge:"ปัญญาประดิษฐ์เพื่อข้อมูลเชิงลึกในการสนทนาทางโทรศัพท์",title:{line1:"ท้องถิ่นและเชิงรับ",line2:"ขยายในคลาวด์",line3:"ดำเนินการโดยอัตโนมัติโดยเจ้าหน้าที่"},description:"การอนุมานแบบขอบใน SLM ช่วยให้มั่นใจในอธิปไตยของข้อมูล และการผสานรวมกับคลาวด์ใน LLM ขยายขีดความสามารถในการประมวลผลได้อย่างไร้ขีดจำกัด; การนำสถาปัตยกรรม Agentic AI มาใช้เริ่มเห็นผลลัพธ์จากบริษัทชั้นนำแล้ว"},Zv={badge:"พันธกิจของเรา",title:"ทำให้ LLM เข้าถึงได้ง่ายขึ้น",paragraphs:["คุณทำได้จริงๆ หรือที่จะไปไกลขนาดนี้? --ความประหลาดใจนั้นแหละคือสิ่งที่เราต้องการ",'ศักยภาพของโมเดลภาษาขนาดใหญ่ (LLM) กำลังขยายตัวทุกวัน อย่างไรก็ตาม เราต้องการทำลายกำแพงเช่น "ฉันกังวลเกี่ยวกับการส่งข้อมูลลับไปยัง API ภายนอก," "แอปพลิเคชัน AI ขั้นสูงมีไว้สำหรับบริษัทใหญ่เท่านั้น," และ "ค่าใช้จ่ายในการนำไปใช้ไม่คุ้มค่า."',"เราเชี่ยวชาญในการสร้าง LLM ท้องถิ่นที่เสร็จสมบูรณ์ภายในสภาพแวดล้อมของคุณ ข้อมูลลูกค้าที่มีความอ่อนไหวสูงสามารถนำมาใช้ได้อย่างปลอดภัยโดยไม่ต้องเปิดเผยต่อโลกภายนอก เราสามารถเพิ่มประโยชน์สูงสุดของ AI ในขณะที่ยังคงรักษาความมั่นคงปลอดภัยของข้อมูล","มันจัดการทุกอย่างตั้งแต่การสร้างเอกสารตามปกติและการจัดระเบียบข้อมูลไปจนถึงการวิเคราะห์เฉพาะทางและการสนับสนุนการตัดสินใจ เทคโนโลยีตัวแทนที่เป็นกรรมสิทธิ์ของเราให้ความแม่นยำที่เทียบเท่ากับโมเดล API",'LLM ไม่ได้มาแทนที่คน แต่เป็นเครื่องมือที่ทรงพลังซึ่งช่วยให้ผู้คนสามารถใช้ความคิดสร้างสรรค์ การตัดสินใจ และความเชี่ยวชาญได้อย่างเต็มที่มากขึ้น เรานำเทคโนโลยีจากสิ่งพิเศษให้กลายเป็นสิ่งที่พบเห็นได้ทั่วไป - การ "ทำให้เป็นสินค้าสำหรับผู้บริโภค" อย่างแท้จริง','กรุณาอย่าลังเลที่จะปรึกษาเรา เราจะทำงานร่วมกับคุณเพื่อค้นหาว่า "เราสามารถทำอะไรได้บ้าง?" ร่วมกับคุณ'],animation:{label:"LLM",sublabel:"เทคโนโลยี"}},Xv={title:"บริการ",subtitle:"บริการทางธุรกิจ",services:[{title:"การออกแบบและพัฒนาตัวแทนปัญญาประดิษฐ์สำหรับองค์กร",titleEn:"เอเจนต์ปัญญาประดิษฐ์สำหรับองค์กร",description:"ออกแบบและพัฒนาตัวแทน AI ที่ปรับให้เหมาะสมกับความต้องการทางธุรกิจ กฎภายใน และขอบเขตข้อมูล สนับสนุนจาก LLM ประเภท API ภายนอกไปยัง LLM ภายในองค์กร",badges:["การออกแบบเฉพาะบุคคล","รองรับ LLM","ความเชี่ยวชาญทางธุรกิจ"],link:"รายละเอียด"},{title:"เซิร์ฟเวอร์ LLM ที่สัญญาไว้",titleEn:"เซิร์ฟเวอร์ LLM ภายในองค์กร",description:"ดำเนินการ LLM ขนาด 7B ถึง 120B บนเซิร์ฟเวอร์เฉพาะของบริษัท จัดเตรียมสภาพแวดล้อมก
243ารใช้งาน LLM ที่ปลอดภัยและยืดหยุ่น หลีกเลี่ยงความเสี่ยงในการส่งข้อมูลภายนอก",badges:["รองรับ 7B-120B","คีย์ API ออกให้แล้ว","การออกแบบความปลอดภัย"],link:"รายละเอียด"},{title:"การออกแบบเวกเตอร์ RAG และดัชนี",titleEn:"สถาปัตยกรรม RAG แบบเวกเตอร์",description:"แยกและปรับแต่งข้อมูล RAG ตามเนื้อหาทางธุรกิจและตรรกะการวิเคราะห์ ออกแบบดัชนีเพื่อการค้นหาที่รวดเร็วและแม่นยำ",badges:["การแยกดัชนี","การค้นหาความเร็วสูง","การสนับสนุนหลายภาษา"],link:"รายละเอียด"},{title:"การพัฒนาแอปพลิเคชันปัญญาประดิษฐ์",titleEn:"การพัฒนาแอปพลิเคชัน AI",description:"พัฒนาแอปพลิเคชัน AI ที่ใช้งานได้จริงด้วยการวิเคราะห์และการสร้างโดย LLM เป็นแกนหลัก โดยใช้ API ที่มีอยู่และข้อมูลภายนอก",badges:["การเชื่อมโยง API","การวิเคราะห์ LLM","การออกแบบแบบบูรณาการ"],link:"รายละเอียด"}]},Yv={title:"โครงการความสำเร็จโดยใช้เทคโนโลยีปัญญาประดิษฐ์",subtitle:"ประสบการณ์การพัฒนา AI ในหลากหลายสาขา รวมถึงผู้ช่วยหลายภาษา การพยากรณ์อากาศ LLM ท้องถิ่น และการตรวจสอบความปลอดภัย",viewDetails:"ดูรายละเอียด →",items:[{title:"ผู้ช่วยหลายภาษาด้วยปัญญาประดิษฐ์",description:"ผู้ช่วยแชทหลายภาษาโดย RAG + LLM. คำตอบที่ถูกต้องสูงต่อการสอบถามในหลายภาษา รวมถึงภาษาญี่ปุ่น, ภาษาอังกฤษ, และภาษาจีน."},{title:"ระบบการพยากรณ์อากาศ",description:"เรียนรู้ข้อมูลสภาพอากาศและสร้างการพยากรณ์แบบเรียลไทม์ การพยากรณ์ที่มีความแม่นยำสูงถูกสร้างขึ้นโดยใช้การจดจำรูปแบบอนุกรมเวลาและ RAG เพื่อค้นหาลักษณะที่คล้ายคลึงกันในอดีต"},{title:"เซิร์ฟเวอร์ภายใน / On-Prem Local LLM",description:"เราส่งมอบ AI ที่ปรับแต่งให้เหมาะกับกระบวนการทำงานของธุรกิจคุณ พร้อมใช้งานภายในบริษัทของคุณ ด้วย Open WebUI เป็นจุดเข้าใช้งานทั่วไป ช่องทางประมวลผลที่รวดเร็วด้วย Ollama/MLX และโดเมนข้อมูลที่แยกออกจากกันอย่างสมบูรณ์สำหรับแต่ละ UID เอกสารภายในองค์กรจะถูกบันทึกไว้ใน RAG พร้อมก
243ารฝังภาษาอังกฤษและการแปลคำถามภาษาญี่ปุ่นโดยอัตโนมัติ และทักษะทางธุรกิจ เช่น การสรุปข่าว การจัดระเบียบเอกสาร และการทำงานประจำ จะถูกดำเนินการอย่างปลอดภัยควบคู่กันไประบบการใช้งานทักษะถูกแยกออกเป็นคอนเทนเนอร์ OpenClaw และได้รับการปกป้องโดยชั้นป้องกันสามชั้นจาก Cloudflare edge และ Nginx ท้องถิ่น เราให้การสนับสนุนอย่างครอบคลุมสำหรับการเลือกแบบจำลอง, การออกแบบทักษะ, และนโยบายการดำเนินงาน และเริ่มต้นระบบ AI เฉพาะของบริษัทคุณในรูปแบบที่สามารถใช้งานได้ตั้งแต่วันที่ติดตั้ง"},{title:"การคาดการณ์การมาถึงวงโคจรระหว่างดาวเคราะห์ (AI)",description:"รับข้อมูลดาวเคราะห์จาก NASA API และแปลการคำนวณวงโคจรใน LLM สร้างรายงานเกี่ยวกับหน้าต่างการปล่อยจรวด เวลาที่ต้องการ และประสิทธิภาพเชื้อเพลิง"},{title:"การวิเคราะห์ข้อมูลอสังหาริมทรัพย์ด้วยปัญญาประดิษฐ์",description:"รวบรวมข้อมูลอสังหาริมทรัพย์ด้วยการดึงข้อมูลจากเว็บไซต์และวิเคราะห์ด้วย LLM + Python สร้างแนวโน้มราคา การคาดการณ์ตลาด และผลตอบแทนจากการลงทุนโดยอัตโนมัติ"},{title:"ปัญญาประดิษฐ์ทำนายโชคชะตา (โหราศาสตร์สี่เสา)",description:"สร้างตรรกะของเสาหลักสี่ประการแห่งโชคชะตาในภาษา Python และแปลความหมายด้วย LLM. รับพิกัดและเวลาจาก API ดาราศาสตร์เพื่อการประเมินโชคชะตาและความเข้ากันได้อย่างเฉพาะบุคคล"},{title:"Google Workspace AI integration",description:"การผสานรวม LLM กับ Gmail, Drive, ปฏิทิน, ฯลฯ AI ช่วยในการสรุปอีเมล, ค้นหาไฟล์, และจัดตารางเวลา"},{title:"ข่าวโลก การแปลเป็นหลายภาษา",description:"การรวบรวมข่าวจากทั่วโลกแบบเรียลไทม์ แปลและสรุปเป็นหลายภาษาโดย LLM การแปลและการสรุปที่เป็นธรรมชาติโดยอิงจากความเข้าใจในบริบท"},{title:"ผู้จัดการ AI สำหรับการตรวจสอบบันทึกความปลอดภัย",description:"การตรวจสอบบันทึกความปลอดภัยแบบเรียลไทม์ การตรวจจับภัยคุà¸
243à¸„ามและการวิเคราะห์โดย LLM และการแจ้งเตือนทันทีโดยการจับคู่กับรูปแบบการโจมตีในอดีตโดย RAG"}]},eA={title:"วิธีการดำเนินการโครงการ",headline:"สิ่งที่คุณต้องการคือวิสัยทัศน์",paragraphs:['หมดยุคที่ความแตกต่างทางภาษาเป็นอุปสรรคต่อการทำธุรกิจแล้ว แม้ว่าเราจะใช้การแปลด้วย AI แต่เราก็สามารถจัดการการเจรจาธุรกิจและการพัฒนาใน 14 ภาษาได้ผ่านกระบวนการทำงานที่เป็นเอกลักษณ์ของเรา ซึ่งใช้ประโยชน์จากการแชร์ภาพอย่างเต็มที่ แม้แต่ข้อกำหนดที่ซับซ้อนก็สามารถตรวจสอบได้ด้วยภาพตัวอย่างเพื่อหลีกเลี่ยงการสื่อสารที่ผิดพลาด สิ่งเดียวที่สำคัญคือ "สิ่งที่คุณต้องการสร้าง"',"โครงการเริ่มต้นด้วยการประชุมเบื้องต้นในขั้นตอนการยื่นคำขอทางธุรกิจ หลังจากมีการแบ่งปันวิสัยทัศน์และประเด็นสำคัญของลูกค้าร่วมกันโดยทั่วไปแล้ว จะมีการลงนามในข้อตกลงไม่เปิดเผยข้อมูล (NDA) เพื่อสร้างสภาพแวดล้อมที่ข้อมูลลับสามารถพูดคุยได้อย่างปลอดภัย จากนั้นเราจะดำเนินการสัมภาษณ์อย่างละเอียดและยืนยันความต้องการต่าง ๆ ตามเนื้อหาที่ได้ เราจะจัดทำข้อเสนอและยืนยันทิศทางของโครงการโดยใช้ภาพตัวอย่าง เมื่อมีความเข้าใจตรงกันแล้ว เราจะจัดทำข้อกำหนดและเริ่มกระบวนการพัฒนา","กระบวนการนี้เป็นเพียงการแนะนำทั่วไปเท่านั้น เราจะปรับให้เข้ากับสถานการณ์และตารางเวลาของคุณอย่างยืดหยุ่น ไม่ว่าคุณจะอยู่ที่ใดในโลก แม้ว่าคุณจะพูดภาษาเดียวกันหรือไม่ก็ตาม ภาพและ AI จะช่วยสนับสนุนการสื่อสารของคุณ ทำไมไม่เข้าร่วมกับเราเพื่อเข้าสู่ตลาดแนวหน้าที่ยังไม่มีใครเข้าถึงมาก่อนล่ะ? ให้ telet.ai เป็นพันธมิตรของคุณในการสร้างรูปร่างให้กับไอเดียของคุณ"],cards:[{title:"การรับฟัง / ข้อตกลงไม่เปิดเผยข้อมูล",description:"หลังจากการพิจารณาเบื้องต้นทางอีเมลแล้ว จะมีการลงนามในข้อตกลงไม่เปิดเผยข้อมูล คุณสามารถให้รายละเอียดแก่เราได้อย่างสบายใจ"},{title:"การวางแผนและการตรวจสอบ",description:"มีการจัดเตรียมข้อเสนอและตัวอย่างภาพไว้ให้แล้ว รองรับ 14 ภาษา คุณจึงสามารถดำเนินการต่อได้โดยไม่ต้องกังวลเรื่องภาษา"},{title:"การสุ่มตัวอย่าง & เริ่มต้น",description:"เราจะจัดเตรียมข้อกำหนดและเริ่มดำเนินธุรกิจเมื่อมีการตกลงกัน"},{title:"การพัฒนา, การทดสอบ และการดำเนินการ",description:"ดำเนินการอย่างรวดเร็วผ่านการพัฒนาแบบอไจล์ เราให้การสนับสนุนอย่างต่อเนื่องตั้งแต่การทดสอบไปจนถึงการสนับสนุนการดำเนินงาน"}]},aA={badge:"กรณีศึกษา",title:"เรื่องราวแนะนำ AI",items:[{title:"โซลูชันเพื่อเพิ่มประสิทธิภาพทางธุรกิจและลดต้นทุน",subtitle:"ลดปริมาณงานประจำวันและสร้างสภาพแวดล้อมที่คุณสามารถมุ่งเน้นไปที่ธุรกิจหลักของคุณได้",description:'ธุรกิจขนาดกลางและขนาดย่อม (SMEs) จำนวนมากเผชิญกับปัญหาการขาดแคลนแรงงานและการจ้างงานที่ยากลำบาก แม้ว่าจะมีการจ้างบุคลากรใหม่แล้วก็
243ตาม ค่าใช้จ่ายในการฝึกอบรมก็สูง และยังมีปัญหาเกี่ยวกับอัตราการรักษาบุคลากรไว้ได้ โซลูชัน AI ของเราช่วยสนับสนุนงานประจำวัน เช่น การจัดการงบประมาณอัตโนมัติ การป้อนข้อมูลและการจัดระเบียบ การค้นหาเอกสารภายใน และการสร้างรายงานและเอกสารโดยอัตโนมัติผู้ช่วย AI จัดการงานประจำที่เคยใช้เวลามาก 24 ชั่วโมงต่อวัน 365 วันต่อปี โดยไม่มีข้อผิดพลาด บริษัทที่ได้นำ AI มาใช้ได้ตระหนักถึงการลดชั่วโมงการทำงานอย่างมีนัยสำคัญ จาก "การเพิ่มทรัพยากรบุคคล" สู่ "การร่วมมือกับ AI" เราจะพยายามอย่างเต็มที่เพื่อสนับสนุนการปฏิรูปสไตล์การทำงานของบริษัทคุณ'},{title:"ระบบอัตโนมัติสำหรับการสนับสนุนลูกค้า",subtitle:"บริการตลอด 24 ชั่วโมงช่วยปรับปรุงความพึงพอใจของลูกค้าและลดต้นทุนแรงงาน",description:"แชทบอท AI ให้บริการตอบคำถามที่พบบ่อยโดยอัตโนมัติ, การตอบกลับเบื้องต้นและการจัดเรียงคำถาม, และการตอบกลับแบบเรียลไทม์ในหลายภาษา การตอบกลับแบบเรียลไทม์ในหลายภาษา ผู้ปฏิบัติงานมนุษย์สามารถมุ่งเน้นไปที่กรณีซับซ้อนและปรับปรุงคุณภาพการบริการลูกค้า ยกระดับคุณภาพการบริการของคุณไปอีกขั้นด้วยการสนับสนุนลูกค้าด้วย AI"},{title:"ปัญญาประดิษฐ์เพื่อการจัดการความรู้และการใช้เอกสาร",subtitle:"สินทรัพย์ความรู้ภายในในรูปแบบที่สามารถนำไปใช้ได้ทันทีโดยทุกคน",description:'คู่มืออยู่ที่ไหน?" มีข้อมูลที่เฉพาะผู้มาก่อนเท่านั้นที่รู้" - ความรู้ที่ไม่เป็นรูปธรรมเป็นอุปสรรคต่อการเติบโตของบริษัทเทคโนโลยี RAG (การสร้างส่วนขยายการค้นหา) ของเราช่วยให้คุณสามารถดึงข้อมูลที่จำเป็นจากคู่มือภายใน คำถามที่พบบ่อย และเอกสารในอดีตได้เพียงแค่ถามคำถามในภาษาธรรมชาติ มันช่วยปรับปรุงการฝึกอบรมพนักงานใหม่ ทำให้ความรู้ที่ซ่อนอยู่ของพนักงานที่มีประสบการณ์กลายเป็นดิà¸
243ˆà¸´à¸—ัล และช่วยให้การแบ่งปันความรู้ระหว่างแผนกต่างๆ เป็นไปได้ เอกสารที่มีอยู่สามารถใช้ได้ตามเดิม ดังนั้นจึงไม่จำเป็นต้องสร้างเอกสารใหม่'},{title:"ปัญญาประดิษฐ์สำหรับการวิเคราะห์ภาพทางการแพทย์และการพยาบาล",subtitle:"ดวงตาที่เฝ้าระวัง, การสนับสนุนตลอด 24 ชั่วโมงโดย AI",description:"ในสาขาการแพทย์และการพยาบาล จำเป็นต้องดูแลผู้ป่วยและผู้ใช้บริการจำนวนมากด้วยจำนวนบุคลากรที่จำกัดระบบ AI วิเคราะห์ภาพ/วิดีโอของเราสามารถตรวจจับความผิดปกติจากภาพกล้องได้แบบเรียลไทม์ ระบบสามารถตรวจจับโรคติดต่อได้โดยอัตโนมัติผ่านการตรวจจับไข้ แจ้งเตือนทันทีหากผู้ป่วยล้มหรือเดินหลงทาง และตรวจจับการเปลี่ยนแปลงของสภาพร่างกายผ่านการวิเคราะห์สีหน้า ด้วยการลดภาระการตรวจตราในเวลากลางคืน การตอบสนองต่อเหตุฉุกเฉินอย่างรวดเร็ว และการบันทึกข้อมูลแบบอัตโนมัติ บุคลากรสามารถมุ่งเน้นไปที่หน้าที่การดูแลผู้ป่วยหลักได้มากขึ้น ระบบสามารถติดตั้งไว้ที่สถานที่ของคุณเพื่อความเป็นส่วนตัว"}]},nA={title:"ติดต่อเรา",description:"เราสามารถให้คำปรึกษาแก่คุณตั้งแต่ขั้นตอนการวางแผนความต้องการ และยังสามารถพิจารณาการตั้งค่า PoC และการปรับแต่ง LLM ในพื้นที่ได้อีกด้วย",openForm:"แบบฟอร์มเปิด",closeForm:"ปิดแบบฟอร์ม",form:{name:"ชื่อของคุณ",namePlaceholder:"ทาโร่ ยามาดะ",email:"ที่อยู่อีเมล",emailPlaceholder:"[email protected]",subject:"หัวข้อ",subjectPlaceholder:"หัวข้อการสอบถามของคุณ",message:"ข้อความ",messagePlaceholder:"กรุณากรอกข้อมูลสอบถามของคุณ",required:"*",submit:"ส่ง",submitting:"กำลังส่ง...",turnstileMessage:'จำเป็นต้องมีการยืนยัน "ฉันไม่ใช่หุ่นยนต์" เพื่อส่งข้อมูล',turnstileError:"ไม่สามารถโหลดการอนุญาตความปลอดภัยได้ กรุณาลองโหลดใหม่",errorRetry:"กรุณาลองอีกครั้ง"}},tA={brand:"telet.ai",tagline:"การสื่อสารหลายระบบปัญญาประดิษฐ์",description:"นวัตกรรมธุรกิจของคุณด้วยตัวแทน AI สร้างคุณค่าจากการสนทนา",sections:{product:{title:"สินค้า",features:"คุณสมบัติ",benefits:"บทนำ",testimonials:"คำรับรองจากลูกค้า"},services:{title:"บริการ",agentDev:"การออกแบบและพัฒนาตัวแทนปัญญาประดิษฐ์สำหรับองค์กร",onPremise:"เซิร์ฟเวอร์ LLM ที่สัญญาไว้",vectorRag:"การออกแบบเวกเตอร์ RAG และดัชนี",aiApp:"การพัฒนาแอปพลิเคชันปัญญาประดิษฐ์"},company:{title:"ข้อมูลองค์กร",about:"เกี่ยวกับ telet.ai",profile:"โปรไฟล์ผู้แทน",contact:"ติดต่อเรา"},process:{title:"วิธีที่เราดำเนินธุรกิจ",hearing:"การรับฟัง / ข้อตกลงไม่เปิดเผยข้อมูล",planning:"การวางแผนและการตรวจสอบ",sampling:"การสุ่มตัวอย่าง & เริ่มต้น",development:"การพัฒนา, การทดสอบ และการดำเนินการ"}},copyright:"© 2026 เทเลท.ไอ. สงวนลิขสิทธิ์.",legal:{privacy:"นโยบายความเป็นส่วนตัว",terms:"ข้อกำหนดการใช้งาน",cookies:"นโยบายคุà¸
243à¸à¸µà¹‰"}},iA={title:"นโยบายคุกกี้",subtitle:"ส่วนนี้อธิบายเกี่ยวกับคุกกี้และเทคโนโลยีอื่น ๆ (Cloudflare / Google Analytics) ที่ใช้บนเว็บไซต์นี้",lastUpdated:"อัปเดตล่าสุด: 22 มกราคม 2569",intro:'telet.ai ("เรา", "พวกเรา", "ของเรา") ("เรา") อาจใช้คุกกี้และเทคโนโลยีที่คล้ายกันเพื่อให้บริการและปรับปรุงเว็บไซต์นี้ รวมถึงเพื่อรักษาความปลอดภัยของเว็บไซต์ เราไม่ได้ตั้งค่าคุกกี้ติดตามพิเศษของเราเองเพื่อวัตถุประสงค์ในการโฆษณา (แม้ว่า Cloudflare และ Google Analytics อาจตั้งค่าคุกกี้หรือเทคโนโลยีที่คล้ายกันตามข้อกำหนดการให้บริการของพวกเขา)',sections:{what:{title:"1. คุกกี้คืออะไร?",description:"คุกกี้คือไฟล์ข้อความขนาดเล็กที่ถูกเก็บไว้ในเบราว์เซอร์ของคุณเมื่อคุณเยี่ยมชมเว็บไซต์"},howWeUse:{title:"วัตถุประสงค์ในการใช้คุกกี้ของเรา เป็นต้น",description:"เราอาจใช้คุกกี้ ฯลฯ เป็นหลักเพื่อวัตถุประสงค์ดังต่อไปนี้",items:["เพื่อทำให้การแสดงผลและการทำงานของเว็บไซต์มีความเสถียร","เพื่อตรวจจับและป้องกันการเข้าถึงโดยไม่ได้รับอนุญาตและการจราจรที่เป็นอันตราย","เพื่อทำความเข้าใจสถานะการเข้าถึงและเพื่อช่วยปรับปรุงเว็บไซต์"]},googleAnalytics:{title:"3. การใช้ Google Analytics",description:"เราใช้ Google Analytics 4 (GA4) ที่ให้บริการโดย Google LLC สำหรับการวิเคราะห์การเข้าถึง",items:["ข้อมูลที่เก็บรวบรวมอาจรวมถึงหน้าเว็บที่เข้าชม เวลาที่ใช้ แหล่งที่มาของการอ้างอิง ข้อมูลอุปกรณ์และเบราว์เซอร์ ฯลฯ","เราไม่ใช้ข้อมูลที่สามารถระบุตัวตนได้โดยตรง (ชื่อ, ที่อยู่อีเมล, เป็นต้น) เพื่อวัตถุประสงค์ในการส่งไปยัง Google Analytics.","การจัดการข้อมูลโดย Google อยู่ภายใต้ข้อกำหนดและนโยบายของ Google"]},cloudflare:{title:"4. การใช้ Cloudflare",description:"เราใช้บริการของบริษัท Cloudflare, Inc. สำหรับการส่งมอบและมาตรการรักษาความปลอดภัยของเว็บไซต์นี้ Cloudflare อาจตั้งค่าและอ้างอิงคุกกี้ ฯลฯ เพื่อวัตถุประสงค์เช่น การป้องกันการโจมตีแบบ DDoS และการป้องกันบอท",items:["วัตถุประสงค์หลักคือเพื่อเพิ่มประสิทธิภาพด้านความปลอดภัยและการสื่อสาร และไม่ได้มีเจตนาให้ติดตามเพื่อการแสดงโฆษณา","การจัดการข้อมูลของ Cloudflare อยู่ภายใต้ข้อกำหนดและนโยบายของ Cloudflare"]}
243,noSpecialCookies:{title:"5. คุกกี้สูตรพิเศษของเราเอง",description:"เราไม่ได้ตั้งค่าคุกกี้พิเศษของเราเองเพื่อวัตถุประสงค์ในการโฆษณาตามพฤติกรรมหรืออื่น ๆ การใช้คุกกี้ ฯลฯ จำกัดอยู่เพียงขอบเขตของการดำเนินงานเว็บไซต์ ความปลอดภัย และการวิเคราะห์การเข้าถึงเท่านั้น"},choices:{title:"6. การจัดการคุกกี้ (ยกเลิกการยินยอม)",description:"หากคุกกี้ถูกปิดใช้งาน บางฟังก์ชันอาจไม่สามารถใช้งานได้",items:["คุกกี้สามารถลบหรือปิดการใช้งานได้ในตั้งค่าของเบราว์เซอร์","หากคุณต้องการปิดการใช้งานการวัดผลโดย Google Analytics โปรดใช้วิธีการยกเลิกการเข้าร่วมที่จัดเตรียมโดย Google","การใช้โหมดส่วนตัวของเบราว์เซอร์ ฯลฯ อาจจำกัดข้อมูลที่จัดเก็บได้"]},changes:{title:"7. การเปลี่ยนแปลงนโยบายนี้",description:"เราอาจแก้ไขนโยบายฉบับนี้เพื่อตอบสนองต่อการแก้ไขเพิ่มเติมของกฎหมายและข้อบังคับ หรือการเปลี่ยนแปลงในบริการที่ใช้ นโยบายที่แก้ไขแล้วจะมีผลบังคับใช้เมื่อมีการเผยแพร่บนหน้านี้"},contact:{title:"8. ติดต่อเรา",description:"หากคุณมีคำถามใด ๆ เกี่ยวกับนโยบายนี้ กรุณาติดต่อเราที่",company:"telet.ai",contactLink:"ไปที่แบบฟอร์มสอบถาม"}}},sA={hero:{title:"เกี่ยวกับ telet.ai",subtitle:"การสนับสนุนการพัฒนา AI อย่างรอบคอบที่สามารถให้ได้โดยทีมขนาดเล็กที่ให้บริการแบบส่วนตัวเท่านั้น"},story:{title:"ข้อมูลองค์กร",content:"telet.ai เริ่มต้นจากคำถามหนึ่งว่า ทำไมบริษัทจำนวนมากจึงไม่สามารถใช้ประโยชน์จากข้อมูลเชิงลึกที่ซ่อนอยู่ในปฏิสัมพันธ์นับไม่ถ้วนระหว่างบริษัทกับลูกค้าของตนได้? ทีมงานซึ่งนำโดยผู้แทนที่มีประสบการณ์ด้านการวิจัย AI และการพัฒนาซอฟต์แวร์สำหรับองค์กร ได้ถูกก่อตั้งขึ้นเพื่อแก้ไขปัญหานี้อย่างตรงจุดเราไม่ใช่บริษัทขนาดใหญ่ นั่นคือเหตุผลที่เราสามารถเผชิญกับความท้าทายของคุณได้อย่างลึกซึ้งและนำเสนอเฉพาะโซลูชันที่จำเป็นจริง ๆ เท่านั้น จุดแข็งของเราคือความสามารถในการออกแบบสถาปัตยกรรมแบบไฮบริดที่ผสานรวม LLM ในระบบท้องถิ่นและ LLM บนคลาวด์เข้าด้วยกัน เราสามารถปกป้องข้อมูลสำคัญของบริษัทคุณในสภาพแวดล้อมคลาวด์ที่แยกเฉพาะ ในขณะที่ดำเนินการวิเคราะห์ข้อมูลด้วย AI ขั้นสูงในรูปแบบที่สามารถขยายได้ เราให้บริการ CLI สำหรับนักพัฒนาและ UI แบบแชทสำหรับพนักงานแนวหน้า สร้างรากฐานสำหรับการใช้งาน AI ทั่วทั้งองค์กรของคุณและเรามุ่งเน้นที่จะเป็นทางออกที่เหมาะสมที่สุดมากกว่าการเป็นสิ่งที่ล้ำสมัยที่สุด การตัดฟังก์ชันที่ไม่จำเป็นตามงบประมาณและการพิจารณาเพียงหนึ่งรูปแบบสามารถสร้างความแตกต่างอย่างมากในต้นทุน เราส่งมอบสิ่งที่คุณต้องการ ในปริมาณที่คุณต้องการ การสนับสนุนการพัฒนา AI อย่างใส่ใจของเราเป็นไปได้เพราะเราเป็นทีมเล็กและใส่ใจในรายละเอียด เพื่อแก้ไขปัญหาขาดแคลนบุคลากรและสนับสนุนการเติบโตของบริษัทคุณ นั่นคือคำมั่นสัญญาจาก telet.ai"},representative:{title:"ตัวแทนจาก telet.ai labo",name:"เคอิตะ โอกุอิซุมิ",tagline:"สู่ท้องฟ้า สู่ท้องทะเล และสู่โค้ด - ความหลงใหลในการพัฒนา AI ที่เกิดจากอาชีพที่ไม่ธรรมดา",paragraphs:['ในฐานะอดีตนักบินส่วนบุคคล (PPL) และผู้ถือใบอนุญาตเดินเรือ ผมได้เผชิญกับสภาพอากาศทั้งในอากาศและในทะเลมาเป็นเวลาหลายปี ในห้องนักบินและห้องควบคุมเรือ ผมเฝ้าดูการเปลี่ยนแปลงของบารอมิเตอร์ แปลความหมายเส้นความกดอากาศ และเปรียบเทียบà¸
243à¸±à¸šà¸à¸²à¸£à¹€à¸„ลื่อนไหวของลมและเมฆ ความรู้สึกของการ "อ่านข้อมูล ประเมิน และลงมือทำ" ที่ผมพัฒนาขึ้นผ่านกระบวนการซ้ำๆ นี้คือจุดเริ่มต้นสำหรับผมในวันนี้','ฉันเริ่มเรียนรู้การเขียนโปรแกรม Python ตอนอายุ 57 ปี แรงจูงใจเริ่มต้นมาจากความอยากรู้อยากเห็นธรรมดา แต่ทันทีที่ฉันเริ่มเขียนโค้ด ฉันก็หลงใหลในความเป็นไปได้ของตัวแทนปัญญาประดิษฐ์ ฉันสร้างแอปพลิเคชันด้วยมือของตัวเอง ใช้งาน และปรับปรุงมันในระหว่างกระบวนการนี้ ผมได้ตระหนักถึงบางสิ่งบางอย่าง ในโครงการที่ผ่านมา ผมมีส่วนร่วมในฐานะผู้ที่ไม่ใช่วิศวกร และการพัฒนาถูกทำโดยผู้อื่นเสมอ อย่างไรก็ตาม เมื่อผมเริ่มเขียนโค้ดด้วยตัวเอง ผมเริ่มมองเห็นแก่นแท้ของปัญหา "นี่คือจุดที่เป็นคอขวด" หรือ "การออกแบบนี้ไม่สามารถขยายได้" - ด้วยการมีมุมมองของวิศวกร ความเร็วในการตระหนักถึงสิ่งที่ผมต้องการทำเพิ่มขึ้นอย่างมาก',"การพัฒนาบริการด้านสภาพอากาศโดยการผสานประสบการณ์ภาคสนามกับวิทยาศาสตร์ข้อมูล การสร้างตัวแทนปัญญาประดิษฐ์เพื่อเพิ่มประสิทธิภาพการดำเนินงาน และโครงการทดลองต่าง ๆ เมื่อฉันยังคงทำงานด้วยมือของตัวเองต่อไป ฉันก็เริ่มเชื่อมั่นไม่เพียงแต่เทคโนโลยีนี้มีความน่าสนใจเท่านั้น แต่ยังต้องมีผู้คนที่ต้องการสิ่งนี้อย่างแน่นอน","เป้าหมายของเราไม่ใช่การไล่ตามเทคโนโลยีล้ำสมัย เราเผชิญกับปัญหาและงบประมาณของลูกค้า และส่งมอบเฉพาะสิ่งที่จำเป็นจริงในราคาที่สมเหตุสมผล เราไม่ใช่องค์กรขนาดใหญ่ ดังนั้นเราจึงสามารถให้การสนับสนุนการพัฒนาที่ปรับให้เหมาะกับความต้องการของลูกค้าแต่ละราย เราต้องการใช้เทคโนโลยีนี้เพื่อประโยชน์ของสังคม - นั่นคือเหตุผลที่เราเปิดตัว telet.ai"]},contact:{title:"เกี่ยวกับเรา",company:"telet.ai labo",ceo:"ผู้แทน: โอกุอิซูมิ เคตะ",button:"ติดต่อเรา"},studios:{tokyo:{title:"โตเกียว สตูดิโอ",address:"#301 เฟิร์ส ฮิลส์ เอ มูซาชิโคก
243าเนอิ, 3-3-21 นุกุอิมินามิโจ, โคกาเนอิ-ชิ, โตเกียว 184-0014, ญี่ปุ่น"}}},rA={title:"พอร์ตโฟลิโอ",subtitle:"ดูประวัติการดำเนินงานของเราในการใช้เทคโนโลยีปัญญาประดิษฐ์",techStackLabel:"เทคโนโลยีสแตกส์",viewProject:"ดูโครงการ",privateProject:"โครงการส่วนตัว",visualizationLabel:"การแสดงข้อมูล",cta:{title:"ติดต่อเรา",description:"กรุณาติดต่อเราเพื่อหารือเกี่ยวกับโครงการของคุณหรือสอบถามข้อมูลทางเทคนิคได้ตลอดเวลา",button:"ติดต่อเรา"},projects:{"traffic-route-ai":{title:"ระบบ AI เลือกเส้นทางการเดินทาง",subtitle:"วางแผนเส้นทางขนส่งสาธารณะในมาเลเซีย",description:"ระบบค้นหาเส้นทางที่ผสมผสานรถโดยสารและรถไฟจากจุดเริ่มต้นถึงปลายทาง พร้อมเปรียบเทียบเวลาเดินทาง เวลาถึง และจำนวนครั้งที่เปลี่ยนสาย รองรับตัวกรองเฉพาะรถโดยสารหรือรถไฟ การค้นหาสถานีและป้ายใกล้เคียง และหน้าจอหลายภาษา เพื่อช่วยเลือกเส้นทางสำหรับการเดินทางประจำวันและการท่องเที่ยว",techStack:["ค้นหาเส้นทางขนส่งสาธารณะ","เชื่อมต่อรถโดยสารและรถไฟ","เปรียบเทียบเส้นทาง","หน้าจอหลายภาษา"]},"multilingual-assistant":{title:"ผู้ช่วยหลายภาษาด้วยปัญญาประดิษฐ์",description:"ผู้ช่วยแชทอัจฉริยะสำหรับการสอบถามหลายภาษา สร้างดัชนีเวกเตอร์ 1,573 รายการ และควบคุมการตอบกลับอย่างแม่นยำผ่านการแยกสาขาตามเงื่อนไข การกรองคำ NG และการกระตุ้นด้วยคำสำคัญ คำถามของผู้ใช้ในหลายภาษา รวมถึงภาษาญี่ปุ่น ภาษาอังกฤษ และภาษาจีน จะได้รับการตอบกลับอย่างสม่ำเสมอและแม่นยำสูงผ่านการค้นหาความหมายข้ามภาษา",techStack:["RAG","การค้นหาแบบเวกเตอร์","การฝังตัวแบบหลายภาษา","LLM","ตรรกะการตัดสินใจแบบมีเงื่อนไข"]},"weather-forecast":{title:"การพยากรณ์อากาศด้วยระบบปัญญาประดิษฐ์ผ่าน Weather API",description:"พัฒนาระบบ AI ที่เรียนรู้จากข้อมูลสภาพอากาศในอดีตและทำการพยากรณ์สภาพอากาศล่าสุดแบบเรียลไทม์ LLM วิเคราะห์ข้อมูลในอดีตที่ได้จาก JMA API, OpenWeatherMap และแหล่งอื่น ๆ และสร้างการพยากรณ์ระยะสั้นสำหรับอุณหภูมิ ความน่าจะเป็นของฝน ความเร็วลม เป็นต้น การผสมผสานการจดจำรูปแบบของข้อมูลอนุกรมเวลาเข้ากับการค้นหาความคล้ายคลึงในอดีตโดยใช้ RAG ทำให้ระบบสามารถพยากรณ์ได้อย่างแม่นยำสูงซึ่งเสริมแบบจำลองทางสถิติแบบดั้งเดิม",techStack:["การเชื่อมโยง API สภาพอากาศ","LLM","RAG","การวิเคราะห์ข้อมูลอนุกรมเวลา","การประมวลผลแบบเรียลไทม์"]},"local-llm":{title:"เซิร์ฟเวอร์ภายใน / On-Prem Local LLM",description:"เราส่งมอบ AI ที่ปรับแต่งให้เหมาะกับกระบวนการทำงานของธุรกิจคุณ พร้อมใช้งานภายในบริษัทของคุณ ด้วย Open WebUI เป็นจุดเข้าใช้งานทั่วไป ช่องทางประมวลผลที่รวดเร็วด้วย Ollama/MLX และโดเมนข้อมูลที่แยกออกจากกันอย่างสมบูรณ์สำหรับแต่ละ UID เอกสารภายในองค์กรจะถูกบันทึกไว้ใน RAG พร้อมก
243ารฝังภาษาอังกฤษและการแปลคำถามภาษาญี่ปุ่นโดยอัตโนมัติ และทักษะทางธุรกิจ เช่น การสรุปข่าว การจัดระเบียบเอกสาร และการทำงานประจำ จะถูกดำเนินการอย่างปลอดภัยควบคู่กันไประบบการใช้งานทักษะถูกแยกออกเป็นคอนเทนเนอร์ OpenClaw และได้รับการปกป้องโดยชั้นป้องกันสามชั้นจาก Cloudflare edge และ Nginx ท้องถิ่น เราให้การสนับสนุนอย่างครอบคลุมสำหรับการเลือกแบบจำลอง, การออกแบบทักษะ, และนโยบายการดำเนินงาน และเริ่มต้นระบบ AI เฉพาะของบริษัทคุณในรูปแบบที่สามารถใช้งานได้ตั้งแต่วันที่ติดตั้ง",techStack:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"]},"orbital-prediction":{title:"การคาดการณ์การมาถึงวงโคจรระหว่างดาวเคราะห์ (AI)",description:"พัฒนาระบบเพื่อวิเคราะห์จุดออกเดินทางที่เหมาะสมที่สุดสำหรับการเดินทางระหว่างดาวเคราะห์ โดยรับข้อมูลตำแหน่งดาวเคราะห์ องค์ประกอบวงโคจร และพารามิเตอร์แรงโน้มถ่วงจาก NASA API คำนวณวงโคจรโดยพิจารณาวงโคจรถ่ายโอนแบบ Hohmann และการใช้แรงโน้มถ่วงเพื่อช่วยในการเดินทาง โดยใช้ API และ Python และแสดงหน้าต่างการปล่อยจรวด เวลาที่ใช้ และประสิทธิภาพเชื้อเพลิง ระบบนี้ใช้เป็นเครื่องมือจำลองสำหรับสถาบันการศึกษาและบริษัทที่เกี่ยวข้องกับอวกาศ *ฟังก์ชัน AI ถูกนำออกในขณะนี้ การคำนวณกำลังดำเนินการด้วย API และ Python",techStack:["NASA API (Horizons, SPICE)","การคำนวณพลศาสตร์วงโคจร","ไพธอน","การแสดงข้อมูล"]},"real-estate":{title:"การวิเคราะห์ข้อมูลอสังหาริมทรัพย์ด้วยปัญญาประดิษฐ์",description:"พัฒนาระบบที่รวบรวมข้อมูลอสังหาริมทรัพย์สำหรับภูมิภาคเฉพาะผ่านการดึงข้อมูลจากเว็บไซต์และทำการวิเคราะห์ข้อมูลขั้นสูงโดยใช้ LLM และ Python ตัวแปรต่างๆ เช่น ราคาทรัพย์สิน ราคาต่อตารางฟุต อายุอาคาร และระยะทางจากสถานีรถไฟถูกดึงออกมา และทำการวิเคราะห์แนวโน้มราคา การคาดการณ์ตลาด และการจำลองผลตอบแทนจากการลงทุนโดยอัตโนมัติ นอกจากนี้ยังมีการดึงคุณลักษณะจากคำอธิบายทรัพย์สินที่ไม่มีโครงสร้างโดยใช้ LLM เพื่อให้การวิเคราะห์ตลาดที่ครอบคลุมร่วมกับข้อมูลเชิงปริมาณ*ข้อเสนอพร้อมให้บริการในเวอร์ชันที่สอง (เวอร์ชันเต็มให้บริการแยกต่างหาก)",techStack:["การดึงข้อมูลจากเว็บไซต์ (Scrapy, Playwright)","ไพธอน","แพนด้า","การวิเคราะห์ LLM","การแสดงข้อมูล"]},"fortune-ai":{title:"ระบบประเมินด้วยปัญญาประดิษฐ์สี่เสาหลัก",subtitle:"ถ่ายทอดภูมิปัญญาดั้งเดิมด้วยเทคโนโลยี",paragraphs:["หลักสี่เสาแห่งการพยากรณ์เป็นจุดสูงสุดของการพยากรณ์ตะวันออกที่สั่งสมมาหลายพันปี ระบบนี้ได้จำลองตรรกะการพยากรณ์แบบดั้งเดิมอย่างสมบูรณ์ในภาษาไพธอน ผสมผสานกับการตีความและการให้คำแนะนำโดยใช้ LLM (Large Language Models) ปัญญาประดิษฐ์นี้สามารถจำลองกระบวนการประเมินผลที่ดำเนินการโดยหมอดูผู้เชี่ยวชาญได้อย่างแม่นยำ","หลังจากป้อนวันที่ เวลา และสถานที่เกิด ระบบจะดึงข้อมูลเวลาพระอาทิตย์ขึ้นและพระอาทิตย์ตก รวมถึงข้อมูลพิกัด ณ เวลานั้นจาก API ด้านดาราศาสตร์ จากนั้นระบบจะคำนวณราศี เทพเจ้าทั้งสิบ และความสมดุลของธาตุทั้งห้าได้อย่างแม่นยำโดยอิงจากข้อมูลเหล่านี้ตรรกะที่อิงตามศาสตร์การพยากรณ์ของหลักโหราศาสตร์สี่เสาหลักของชะตากรรมถูกจัดทำดัชนีในภาษาไพธอนและรวมกับข้อมูลทางสถิติและข้อมูล RAG (Retrieval Augmentation Generation) เพื่อปรับปรุงความแม่นยำของการวิเคราะห์สูตรชีวิต","ข้อมูลไลฟ์สไตล์ที่คำนวณได้ถูกอธ
243ิบายด้วยภาษาธรรมชาติโดย LLM ในรูปแบบที่เข้าใจง่าย ผลการประเมินส่วนบุคคลจะถูกสร้างขึ้น รวมถึงกระแสโชคลาภ ความเข้ากันได้ของความสัมพันธ์ระหว่างบุคคล และอาชีพที่เหมาะสมสำหรับคุณ คุณสามารถรับคำตอบที่มีความลึกซึ้งเทียบเท่ากับการปรึกษาหมอดูมืออาชีพ","ขณะนี้สามารถใช้งานได้ในเวอร์ชันที่สอง คุณสามารถทดลองใช้การวิเคราะห์พื้นฐานของคูมิชิกิและการวิเคราะห์โชคชะตาได้ เวอร์ชันเต็มซึ่งรวมถึงการวิเคราะห์ที่ละเอียดมากขึ้นและคำแนะนำที่หลากหลายสามารถซื้อแยกต่างหากได้"],techStack:["ไพธอน","API ดาราศาสตร์ (พระอาทิตย์ขึ้น-พระอาทิตย์ตก, TimeZoneDB)","หลักตรรกะสี่เสา","LLM","การประสานงานและการคำนวณเวลา"]},"google-workspace":{title:"Google Workspace AI integration",description:"พัฒนาระบบที่เชื่อมโยง Google Workspace (Gmail, Drive, Calendar, Docs, Sheets) กับ LLM เพื่ออ่าน แก้ไข และประมวลผลข้อมูลทางธุรกิจโดยอัตโนมัติ AI ช่วยงานประจำวัน เช่น สรุปเนื้อหาอีเมล สร้างร่างข้อความตอบกลับอัตโนมัติ ค้นหาและวิเคราะห์ไฟล์ใน Drive สกัดตารางเวลาจากปฏิทิน และเสนอการปรับเปลี่ยนที่เหมาะสม การทำงานของ Workspace ผ่าน Agent ยังสามารถทำได้ผ่านการเชื่อมต่อ API ที่ปลอดภัยด้วยการยืนยันตัวตนแบบ OAuth และการออกแบบเครื่องมือที่สอดคล้องกับมาตรฐาน MCPเวอร์ชันที่สองพร้อมใช้งานแล้ว (เวอร์ชันเต็มจะจัดเตรียมให้แยกต่างหาก)",techStack:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"]},"world-news":{title:"ข่าวโลก การแปลเป็นหลายภาษา",description:"พัฒนาระบบที่รวบรวมบทความจากแหล่งข่าวทั่วโลกแบบเรียลไทม์ และดำเนินการแปลภาษาหลายภาษา สรุปเนื้อหา และจัดหมวดหมู่โดยใช้ LLM แปลบทความต้นฉบับภาษาอังกฤษ à¸
243ˆà¸µà¸™ ฝรั่งเศส อาหรับ และภาษาอื่นๆ เป็นภาษาญี่ปุ่น และจัดเรียงตามหัวข้อการติดตามข่าวสารระหว่างประเทศอย่างมีประสิทธิภาพไม่ได้เกิดจากการแปลด้วยเครื่องอย่างง่าย แต่เกิดจากการแปลตามธรรมชาติที่อาศัยความเข้าใจในบริบทโดยใช้ LLM และการสรุปเนื้อหาที่ดึงประเด็นหลักของบทความออกมา *ขณะนี้มีการให้บริการเวอร์ชันที่สอง (เวอร์ชันเต็มให้บริการแยกต่างหาก)",techStack:["ข่าว API","การรวบรวม RSS","การแปลและสรุป LLM","การประมวลผลหลายภาษา","การจัดหมวดหมู่โดยอัตโนมัติ","การประมวลผลแบบกลุ่มตามกำหนดเวลา"]},"security-monitoring":{title:"ผู้จัดการ AI สำหรับการตรวจสอบบันทึกความปลอดภัย",description:"พัฒนาระบบสำหรับการตรวจสอบแบบเรียลไทม์ของบันทึกความปลอดภัยขององค์กรและการตรวจจับและวิเคราะห์ภัยคุกคามขั้นสูงโดยใช้ LLMแหล่งข้อมูลบันทึกต่าง ๆ เช่น ไฟร์วอลล์, IDS/IPS, บันทึกการตรวจสอบสิทธิ์, และบันทึกการใช้งานแอปพลิเคชัน จะถูกเก็บรวบรวมและวิเคราะห์โดยโมดูล Python และเปรียบเทียบกับรูปแบบการโจมตีในอดีต, ข้อมูลช่องโหว่, และกรณีเหตุการณ์ที่สะสมไว้ใน RAG เมื่อตรวจพบรูปแบบที่ไม่ปกติ, LLM จะอธิบายระดับภัยคุกคาม, ขอบเขตของผลกระทบ, และคำแนะนำในการตอบสนองเป็นภาษาธรรมชาติ และแจ้งเตือนผู้รับผิดชอบทันที หากรูปแบบเดียวกันเกิดขึ้นซ้ำ, จะมีการแจ้งเตือนความสำคัญสูงโดยอัตโนมัติเพื่อเร่งการตอบสนองต่อเหตุการณ์",techStack:["โมดูลการตรวจสอบ Python","การรวบรวมบันทึก (Fluentd, Logstash)","RAG","ฐานข้อมูลรูปแบบภัยคุกคาม","การวิเคราะห์ LLM","การแจ้งเตือน (Slack, PagerDuty)"]}}},oA={learnMore:"อ่านเพิ่มเติม",getStarted:"เริ่มที่จะ ...",contactUs:"ติดต่อเรา",backToHome:"กลับสู่หน้าหลัก"},lA={title:"นโยบายความเป็นส่วนตัว",subtitle:"นโยบายความเป็นส่วนตัว",lastUpdated:"อัปเดตล่าสุด: 23 มกราคม 2569",intro:'telet.ai ("บริการ") ให้ความสำคัญกับการคุ้มครองข้อมูลส่วนบุคคลของคุณเป็นหน้าที่ที่สำคัญ และได้จัดตั้งนโยบายความเป็นส่วนตัวต่อไปนี้',sections:{collection:{title:"1. ข้อมูลที่จะเà¸
243à¹‡à¸šà¸£à¸§à¸šà¸£à¸§à¸¡",description:"บริการอาจรวบรวมข้อมูลต่อไปนี้เมื่อคุณติดต่อเราหรือใช้บริการ",items:["ที่อยู่อีเมล","ชื่อของคุณ (ไม่บังคับ)","รายละเอียดการสอบถาม","ข้อมูลอื่น ๆ ที่คุณให้ไว้โดยสมัครใจ"]},purpose:{title:"2. วัตถุประสงค์ในการใช้ข้อมูล",description:"ข้อมูลส่วนบุคคลที่เก็บรวบรวมจะถูกใช้เพื่อวัตถุประสงค์ดังต่อไปนี้เท่านั้น",items:["ตอบและตอบสนองต่อข้อสอบถาม","ติดต่อและข้อมูลเกี่ยวกับบริการของเรา","จำเป็นต้องมีการสื่อสารเพื่อความก้าวหน้าของโครงการ","การวิเคราะห์เพื่อการปรับปรุงบริการ (ในรูปแบบที่ไม่ระบุตัวบุคคล)"]},thirdParty:{title:"3. การจัดหาให้แก่บุคคลภายนอก",description:"บริการจะไม่ให้ข้อมูลส่วนบุคคลของคุณแก่บุคคลภายนอก ยกเว้นในกรณีต่อไปนี้",items:["หากลูกค้าให้ความยินยอม","เมื่อมีการร้องขอเปิดเผยข้อมูลตามกฎหมายและข้อบังคับ","เมื่อจำเป็นเพื่อคุ้มครองชีวิต ร่างกาย หรือทรัพย์สินของบุคคล"]},security:{title:"4. การจัดการข้อมูล",description:"บริการจะจัดการข้อมูลส่วนบุคคลที่เก็บรวบรวมไว้อย่างเหมาะสม และดำเนินมาตรการรักษาความปลอดภัยที่สมเหตุสมผลเพื่อป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต การสูญหาย การรั่วไหล และการปลอมแปลงข้อมูล"},email:{title:"5. การจัดการอีเมล",description:"บริการจะจัดการอีเมลตามนโยบายต่อไปนี้",items:["เราจะใช้เนื้อหาในอีเมลของคุณเพื่อวัตถุประสงค์ในการตอบกลับคำถามของคุณและให้บริการของเราเท่านั้น","เราจะไม่ขาย, ให้เช่า, หรือแบ่งปันที่อยู่อีเมลของคุณกับบุคคลภายนอก","เราอาจส่งอีเมลข้อมูลเกี่ยวกับบริการของเราให้คุณ หากคุณต้องการยกเลิกการรับข้อมูล กรุณาใช้ลิงก์ยกเลิกการสมัครในอีเมล หรือติดต่อเราผ่านข้อมูลการติดต่อด้านล่าง","การเข้ารหัส SSL/TLS ถูกใช้สำหรับการสื่อสารทางอีเมลเพื่อให้มั่นใจในความปลอดภัยของการสื่อสาร","เราจะทำการลบอีเมลของคุณอย่างปลอดภัยหลังจากเก็บรักษาไว้เป็นระยะเวลาที่เหมาะสม"]}
243,cookies:{title:"6. การใช้คุกกี้",description:"คุณสามารถปิดการใช้งานคุกกี้ได้ในตั้งค่าเบราว์เซอร์ของคุณ"},external:{title:"7. การใช้บริการภายนอก",description:"บริการนี้อาจใช้บริการภายนอกต่อไปนี้ กรุณาอ้างอิงลิงก์ที่เกี่ยวข้องสำหรับนโยบายความเป็นส่วนตัวของแต่ละบริการ",items:["Google Analytics (access analysis)","บริการคลาวด์อื่น ๆ ที่จำเป็นสำหรับการดำเนินธุรกิจ"]},changes:{title:"8. การเปลี่ยนแปลงนโยบายความเป็นส่วนตัว",description:"นโยบายนี้อาจมีการแก้ไขโดยไม่ต้องแจ้งให้ทราบล่วงหน้า ตามการแก้ไขเพิ่มเติมของกฎหมายและข้อบังคับ หรือการเปลี่ยนแปลงในเนื้อหาการให้บริการ นโยบายที่แก้ไขแล้วจะมีผลบังคับใช้เมื่อได้ประกาศไว้บนหน้าเว็บไซต์นี้"},contact:{title:"9. ติดต่อเรา",description:"หากคุณมีคำถามใด ๆ เกี่ยวกับนโยบายนี้ กรุณาติดต่อเราที่",company:"telet.ai",contactLink:"ไปที่แบบฟอร์มสอบถาม"}}},dA={title:"ข้อกำหนดการใช้งาน",subtitle:"นี่คือข้อกำหนดและเงื่อนไขสำหรับการใช้งานเว็บไซต์นี้ และการจองการปรึกษา, การติดต่อสอบถาม, และการขอข้อมูลจาก telet.ai",lastUpdated:"อัปเดตล่าสุด: 22 มกราคม 2569",intro:'ข้อกำหนดการใช้งาน (ต่อไปนี้เรียกว่า "ข้อกำหนด") ข้อกำหนดการใช้งาน (ต่อไปนี้เรียกว่า "ข้อกำหนด") นี้ใช้กับเว็บไซต์ที่ดำเนินการโดย telet.ai (ต่อไปนี้เรียกว่า "เรา", "พวกเรา", "ของเรา" หรือ "ของเรา")(ต่อไปนี้เรียกว่า "เรา" หรือ "ของเรา") (ต่อไปนี้เรียกว่า "เว็บไซต์") ซึ่งดำเนินการโดย telet.ai (ต่อไปนี้เรียกว่า "เรา") เว็บไซต์นี้จัดทำขึ้นเป็นหลักเพื่อเป็นหน้าสำหรับนัดหมายการปรึกษา ติดต่อสอบถาม และขอเอกสารเท่านั้น และไม่มีบริการสำหรับการสร้างบัญชีหรือการเรียกเก็บเงินบนเว็บไซต์นี้',sections:{scope:{title:"1. ขอบเขตการนำไปใช้",description:'ข้อกำหนดและเงื่อนไขเหล่านี้ใช้กับผู้เยี่ยมชมและผู้ใช้ทุกคนของเว็บไซต์ ("ผู้ใช้") ข้อกำหนดการใช้งานจะใช้กับผู้เยี่ยมชมและผู้ใช้ทุกคนของเว็บไซต์ (ต่อไปนี้จะเรียกว่า "ผู้ใช้") ในกรณีที่มีการทำข้อตกลง NDA, ข้อตกลงการจ้างงานภายนอก, สัญญาส่วนบุคคล ฯลฯ ระหว่างเรากับผู้ใช้ เอกสารดังกล่าวจะมีผลเหนือข้อกำหนดและเงื่อนไขเหล่านี้'},prohibited:{title:"2. สิ่งของต้องห้าม",description:"ในการใช้เว็บไซต์นี้ ผู้ใช้จะต้องไม่กระทำการใด ๆ ดังต่อไปนี้",items:["การกระทำที่ละเมิดกฎหมายและระเบียบข้อบังคับ หรือความสงบเรียบร้อยและศีลธรรมของประชาชน","การกระทำใด ๆ ที่ละเมิดสิทธิ์ในทรัพย์สินทางปัญญา ความเป็นส่วนตัว หรือสิทธิ์หรือผลประโยชน์อื่น ๆ ของเราหรือบุคคลที่สาม","การกระทำที่รบà¸
243à¸§à¸™à¸à¸²à¸£à¸—ำงานของเว็บไซต์นี้หรือระบบที่เกี่ยวข้องผ่านการเข้าถึงโดยไม่ได้รับอนุญาต การโหลดข้อมูลเกินขนาด การก่อวินาศกรรม ฯลฯ","การส่งข้อมูลเท็จหรือการแอบอ้างเป็นบุคคลที่สามในแบบฟอร์มสอบถาม ฯลฯ","การขูดข้อมูล, การวิศวกรรมย้อนรอย, หรือการเข้าถึงระบบโดยอัตโนมัติในปริมาณมากโดยไม่ได้รับอนุญาตจากเรา"]},disclaimer:{title:"3. ข้อสงวนสิทธิ์",description:'เราให้บริการเว็บไซต์นี้ในรูปแบบ "ตามสภาพ" และ "ตามที่มีให้" ตามขอบเขตสูงสุดที่กฎหมายอนุญาต เราขอปฏิเสธการรับประกันทั้งหมดที่เกี่ยวข้องกับเว็บไซต์นี้',items:["ข้อมูลบนเว็บไซต์นี้อาจมีการเปลี่ยนแปลงหรือลบออกได้โดยไม่ต้องแจ้งให้ทราบล่วงหน้า","เราไม่รับประกันความถูกต้อง ความสมบูรณ์ หรือความเหมาะสมสำหรับวัตถุประสงค์เฉพาะของข้อมูลบนเว็บไซต์นี้","เราจะไม่รับผิดชอบต่อความเสียหายใด ๆ ที่เกิดจากการใช้เว็บไซต์นี้หรือการพึ่งพาข้อมูลที่ปรากฏอยู่ในนี้","คำตอบสำหรับการปรึกษาหารือและการสอบถามมีไว้เพื่อข้อมูลทั่วไปเท่านั้น และไม่ถือเป็นคำแนะนำทางกฎหมาย ภาษี การแพทย์ หรือคำแนะนำทางวิชาชีพอื่น ๆ"]},ip:{title:"4. สิทธิในทรัพย์สินทางปัญญา",description:"ลิขสิทธิ์ของข้อความ, รูปภาพ, แบบ, เครื่องหมายการค้า, โลโก้, เป็นต้น บนเว็บไซต์นี้เป็นของเราหรือของผู้มีสิทธิ์ตามกฎหมาย. คุณไม่สามารถใช้ได้โดยไม่ได้รับอนุญาตจากผู้มีสิทธิ์ตามกฎหมาย."},links:{title:"5. ลิงก์ไปยังเว็บไซต์ภายนอก",description:"เว็บไซต์นี้อาจมีลิงก์ไปยังเว็บไซต์ของบุคคลที่สาม เราไม่รับผิดชอบต่อเนื้อหาหรือการดำเนินงานของเว็บไซต์ที่เชื่อมโยง"},changes:{title:"6. การแก้ไขข้อกำหนดและเงื่อนไขเหล่านี้",description:"เราขอสงวนสิทธิ์ในการเปลี่ยนแปลงข้อกำหนดและเงื่อนไขเหล่านี้เป็นครั้งคราวตามความจำเป็น ข้อกำหนดการใช้งานที่แก้ไขแล้วจะมีผลบังคับใช้เมื่อมีการโพสต์บนเว็บไซต์"},governingLaw:{title:"7. กฎหมายที่บังคับใช้และเขตอำนาจศาล",description:"ข้อกำหนดและเงื่อนไขเหล่านี้อยู่ภายใต้และตีความตามกฎหมายของประเทศญี่ปุ่น หากเกิดข้อพิพาทใด ๆ ที่เกี่ยวข้องกับเว็บไซต์นี้ ให้ศาลแขวงโตเกียวเป็นศาลที่มีเขตอำนาจแต่เพียงผู้เดียวในชั้นต้น"},contact:{title:"8. ติดต่อเรา",description:"หากคุณมีคำถามใด ๆ เà¸
243à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¸‚้อกำหนดและเงื่อนไขเหล่านี้ กรุณาติดต่อ",company:"telet.ai",contactLink:"ไปที่แบบฟอร์มสอบถาม"}}},uA={title:"การเคลื่อนไหวเป็นประจำ",subtitle:"AI ทำนายว่า",description1:"ข้อมูลสภาพอากาศถูกจัดเตรียมแบบเรียลไทม์โดยแต่ละประเทศ ประเทศของคุณจะแสดงอยู่ตรงกลางแผนที่ สภาพอากาศเมื่อวานและวันนี้เป็นบันทึกจริง - เมฆฝนควรอยู่บนท้องฟ้าของคุณในวันที่และเวลานั้น",description2:"อย่างไรก็ตาม แอนิเมชันนี้ยังแสดงการเคลื่อนไหวของสภาพอากาศในอนาคตด้วย",description3:"เวกเตอร์ข้อมูลในอดีตและการค้นหาแบบแผนด้วยความเร็วสูง สามารถทำนายแบบแผนของสภาพอากาศได้จากสภาพแวดล้อมโดยรอบเช่นกัน อย่างเดียวกัน สามารถทำนายการเก็บเกี่ยว การผลิต และการขายได้โดยการคำนวณองค์ประกอบ (i) จากสภาพแวดล้อม และค่าสถิติขั้นสูงจากผลการดำเนินงานในอดีต และให้ระบบปัญญาประดิษฐ์วิเคราะห์ข้อมูลเหล่านี้",refresh:"รีเฟรช (เช่น ความจำ)",loading:"กำลังโหลดแผนที่อากาศ..."},cA={hero:{badges:["องค์กร","LLM ในท้องถิ่น","ตัวแทนที่กำหนดเอง"],title:"การออกแบบและพัฒนาตัวแทนปัญญาประดิษฐ์สำหรับองค์กร",description:"ออกแบบและสร้างตัวแทน AI ที่เฉพาะเจาะจงตามความต้องการทางธุรกิจ"},mission:{title:"บริการพัฒนาตัวแทน AI แบบกำหนดเอง",description:"เราพัฒนาตัวแทน AI ที่ปรับแต่งตามความต้องการอย่างต่อเนื่องเพื่อแก้ไขปัญหาทางธุรกิจเฉพาะของบริษัทคุณ ตั้งแต่การออกแบบไปจนถึงการนำไปใช้และการดำเนินงานการออกแบบสถาปัตยกรรมของเรามุ่งเน้นความเข้ากันได้กับระบบที่มีความสำคัญต่อภารกิจและสภาพแวดล้อม SaaS ที่มีอยู่เดิม ช่วยให้สามารถผสานรวมกับ API ฐานข้อมูล และเครื่องมือภายในได้อย่างราบรื่น วิศวกรของเรามีความคุ้นเคยกับ LangChain, AutoGen, CrewAI และเฟรมเวิร์กหลักอื่น ๆ และจะนำเสนอโซลูชันที่เหมาะสมที่สุดสำหรับเทคโนโลยีและโครงสร้างการดำเนินงานของบริษัทคุณเราไม่เพียงแต่พัฒนาแชทบอทแบบครั้งเดียวเท่านั้น แต่ยังสร้างระบบหลายตัวแทน (Multi-Agent Systems) ที่ตัวแทนหลายตัวสามารถร่วมมือกันเพื่อทำภารกิจต่าง ๆ ได้ และระบบการทำงานแบบตัวแทน (Agentic Workflows) ที่ทำงานร่วมกับเครื่องมือภายนอกได้ เราสนับสนุนการเพิ่มคุณค่าทางธุรกิจที่เกิดจากตัวแทน AI ผ่านการเป็นพันธมิตรระยะยาว ซึ่งรวมถึงการปรับปรุงอย่างต่อเนื่องหลังการนำไปใช้ การติดตามการอัปเดตแบบจำลอง และการบำรุงรักษาระบบการติดตามการดำเนินงาน",imageAlt:"บริการพัฒนาตัวแทน AI แบบกำหนดเอง"},summary:{title:"แนวโน้มการพัฒนาตัวแทน",paragraphs:['ตั้งแต่ปี 2025 ถึง 2026 การพัฒนาตัวแทนปัญญาประดิษฐ์ (AI Agent) กำลังก้าวจากระยะการสาธิตไปสู่ระยะการนำไปใช้ในองค์กรอย่างเต็มรูปแบบ แนวคิดของ "Agentic AI" ได้หยั่งรากลึก และระบบปฏิบัติการธุรกิจอัตโนมัติที่ก้าวไกลกว่าแชทบอททั่วไปได้เริ่มดำเนินการในหลากหลายอุตสาหกรรมแล้ว','"ตัวแทนที่ใช้คอมพิวเตอร์" ที่ควบคุมเบราว์เซอร์และเดสก์ท็อปโดยตรง เช่น Operator ของ OpenAI, Computer Use ของ Anthropic และ Project Mariner ของ Google ได้กลายเป็นสิ่งที่เป็นประโยชน์ในทางปฏิบัติแล้ว Model Context Protocol (MCP) เป็นระบบนิเวศที่กำลังเติบโต ซึ่งช่วยให้สามารถผสานการทำงานกับเครื่องมือหลายพันรายการได้อย่างง่ายดาย',"สถาปัตยกรรมแบบหลายตัวแทนได้พัฒนาจนมีความสมบูรณ์แล้ว โดยมีตัวแทนเฉพาะทางทำงานร่วมกันเพื่อดำเนินการงานที่ซับซ้อน เช่น การจัดการโครงการ การสนับสนุนลูกค้า และการวิเคราะห์ข้อมูล นอกจากนี้ การกำหนดมาตรฐานโปรโตคอล A2A (Agent-to-Agent) ยังมีความก้าวหน้าในการประสานงานระหว่างตัวแทนจากผู้ผลิตที่แตกต่างกัน",'รูปแบบการกำกับดูแลได้พัฒนาจาก "มนุษย์ในห่วง" (Human-in-the-Loop) ไปเป็น "มนุษย์บนห่วง" (Human-on-the-Loop) สำหรับการนำไปใช้ในองค์กร โดยมีกลไกสำหรับการตรวจสอบการตัดสินใจของตัวแทนภายหลังการตัดสินใจ และระบบการส่งต่ออัตโนมัติตามระดับความเสี่ยงเป็นคุณสมบัติมาตรฐาน ซึ่งช่วยเร่งการนำไปใช้ในอุตสาหกรรมที่มีการกำกับดูแล เช่น การเงิน การแพทย์ และการผลิต การนำไปใช้ของระบบดังกล่าวได้เพิ่มขึ้นอย่างรวดเร็วในอุตสาหกรรมที่มีการกำกับดูแล เช่น การเงิน การแพทย์ และการผลิต']},features:{title:"การออกแบบและพัฒนา",subtitle:"การออกแบบและพัฒนา",items:[{title:"การออกแบบตัวแทนตามความต้องการทางธุรกิจ",description:"สกัดกรณีการใช้งานจากการวิเคราะห์กระบวนการทางธุรกิจ แยกย่อยงานและชี้แจงความรับผิดชอบของตัวแทน เราพิจารณาว่าการประมวลผลสามารถดำเนินการโดยตัวแทนคนเดียวหรือจำเป็นต้องมีการประสานงานระหว่างตัวแทนหลายคน และเลือกแบบแผนการอนุมานที่เหมาะสมที่สุด เช่น ReA
243ct, Plan-and-Execute และ Reflexion"},{title:"การผสานรวม RAG / เครื่องมือ / เวิร์กโฟลว์",description:"ท่อส่ง RAG ที่มีความแม่นยำสูงซึ่งรวมการสร้างการฝังตัว, กลยุทธ์การแบ่งส่วน, และการค้นหาแบบไฮบริด, การเชื่อมต่อมาตรฐานกับ API และฐานข้อมูลภายนอกด้วยการกำหนดเครื่องมือที่สอดคล้องกับ MCP, และการจัดการเวิร์กโฟลว์หลายขั้นตอนโดยใช้ LangGraph และ CrewAI จัดการเวิร์กโฟลว์หลายขั้นตอนด้วย LangGraph และ CrewAI"},{title:"การออกแบบความปลอดภัยและการอนุญาต",description:"การควบคุมการเข้าถึงฟังก์ชันของเอเจนต์โดย RBAC/ABAC, มาตรการป้องกันการแทรกคำสั่ง, และการตรวจจับและปกปิดข้อมูลส่วนบุคคล (PII) ได้รับการดำเนินการแล้ว บันทึกการตรวจสอบของข้อมูลนำเข้าและส่งออกทั้งหมดจะถูกเก็บรักษาไว้ และการดำเนินงานในสภาพแวดล้อมที่สอดคล้องกับมาตรฐาน SOC2 และ ISO27001 ได้รับการสนับสนุน"},{title:"การดำเนินการรวมถึงการดำเนินงานและการติดตามผล",description:"นำการแสดงภาพการติดตาม (Trace visualization) มาใช้ร่วมกับ LangSmith, Langfuse และอื่นๆ พร้อมการตรวจสอบความหน่วงเวลา การใช้งานโทเค็น และอัตราการเกิดข้อผิดพลาดแบบเรียลไทม์ สร้างวงจรการปรับปรุงอย่างต่อเนื่อง รวมถึงการแจ้งเตือนเมื่อพบความผิดปกติ โครงสร้างพื้นฐานสำหรับการทดสอบ A/B และทดสอบการถดถอย (Regression Test) เมื่อมีการอัปเดตโมเดล"}]},techStack:{title:"เทคโนโลยีสแตกส์",subtitle:"แพลตฟอร์มและเทคโนโลยี",categories:{agentFramework:{title:"เฟรมเวิร์กสำหรับตัวแทน",items:["AutoGen 0.4 / AG2","CrewAI","LangGraph","OpenAI Agents SDK","Anthropic MCP","Google ADK (Agent Development Kit)","เคอร์เนลเชิงความหมาย","แพลตฟอร์มตัวแทนที่เป็นกรรมสิทธิ์"]},apiLayer:{title:"ชั้น API",items:["FastAPI / Litestar","gRPC / เชื่อมต่อ","GraphQL เฟเดอเรชั่น","เหตุการณ์ที่ส่งจากเซิร์ฟเวอร์ (SSE)","WebSocket / NATS","OAuth 2.1 / OIDC","เกตเวย์ API (Kong / Envoy)","การจำกัดอัตราแบบปรับตัวได้"]},vectorDb:{title:"เวกเตอร์ DB / RAG",items:["ลูกสน","วีเวียต","ควอดแรนต์","มิลวุส","ChromaDB","พีจีเวกเตอร์","FAISS","เทอร์โบปั๊ฟเฟอร์"]}
243,infrastructure:{title:"โครงสร้างพื้นฐาน",items:["Kubernetes (EKS / GKE / AKS)","Docker / Podman","คลัสเตอร์ GPU ภายในองค์กร","คลาวด์ส่วนตัว","เซิร์ฟเวอร์เลส (แลมบ์ดา / คลาวด์รัน)","OpenTelemetry / Langfuse","Terraform / Pulumi","ArgoCD / Flux"]}},updateNote:{title:"จุดอัปเดตหลักสำหรับปี 2026",description:"ใน Agent Framework, SDK/โปรโตคอลอย่างเป็นทางการจากผู้ให้บริการรายใหญ่ เช่น OpenAI Agents SDK, Anthropic MCP, และ Google ADK กำลังเกิดขึ้น; ใน API Layer, gRPC และ SSE ได้กลายเป็นมาตรฐานสำหรับการสื่อสารระหว่าง Agent-to-Agent และการเปลี่ยนผ่านไปสู่ OAuth 2.1 กำลังดำเนินอยู่; ใน Vector DB, Qdrant และ Turbopuffer กำลังได้รับความสนใจสำหรับการค้นหาความเร็วสูง."}},cta:{title:"ติดต่อเรา",description:"เราสามารถให้คำปรึกษาแก่คุณตั้งแต่การจัดเตรียมข้อกำหนด PoC และการกำหนดค่า LLM ท้องถิ่นก็สามารถพิจารณาได้เช่นกัน",primaryButton:"ติดต่อเรา",secondaryButton:"การให้คำปรึกษาทางเทคนิค"}},mA={title:"คำถามที่พบบ่อย",subtitle:"คำถามที่พบบ่อย",items:[{question:"ฉันสามารถใช้คู่มือและคำถามที่พบบ่อยที่มีอยู่ได้โดยไม่ต้องแก้ไขหรือไม่?",answer:"ใช่ คุณสามารถใช้ได้; มันรองรับไฟล์ส่วนใหญ่ รวมถึง PDF, Word, Excel, HTML, และไฟล์ข้อความ. เพียงอัปโหลดเอกสารภายในของคุณที่มีอยู่ตามเดิม และ AI จะเรียนรู้เนื้อหาและใช้เพื่อตอบคำถามของคุณ. ไม่ต้องการการแปลงรูปแบบหรือการประมวลผลพิเศษ."},{question:"สามารถใช้กับข้อมูลที่มีข้อมูลสำคัญได้หรือไม่?",answer:"ใช่ คุณสามารถใช้บริการของเราได้อย่างปลอดภัย ไม่ว่าจะเป็นการใช้งานภายในองค์กร (เซิร์ฟเวอร์ภายใน) หรือในสภาพแวดล้อมคลาวด์ส่วนตัว ข้อมูลจะไม่ถูกส่งออกไปภายนอกบริษัท เราสามารถนำเสนอการกำหนดค่าที่ตรงตามข้อกำหนดด้านความปลอดภัยของคุณได้"},{question:"ใช้เวลานานเท่าไรในการดำเนินการ?",answer:"บอท FAQ มาตรฐานสามารถนำมาใช้ได้ในเวลาเพียง 2-4 สัปดาห์ หากต้องการการผสานรวมกับระบบที่มีอยู่หรือการปรับแต่งขั้นสูง เราประเมินว่าจะใช้เวลา 1-3 เดือน เราสามารถเริ่มต้นด้วย PoC (proof of concept) ขนาดเล็กได้เช่นกัน"},{question:"คุณใช้ API ภายนอก เช่น ChatGPT หรือ Claude หรือไม่?",answer:"สามารถเลือกได้ตามคำขอ เราสนับสนุนทั้งการตั้งค่าที่ใช้ API ภายนอก (OpenAI, Anthropic, Google ฯลฯ) และการตั้งค่าที่ใช้ LLM แบบโอเพนซอร์ส (Llama, Mistral, Qwen ฯลฯ) ที่ทำงานแบบภายในเครื่องทั้งหมด เราสามารถเสนอการตั้งค่าที่เหมาะสมที่สุดสำหรับความต้องการด้านต้นทุน ความปลอดภัย และประสิทธิภาพของคุณ"},{question:"ความถูกต้องของคำตอบของ AI เป็นอย่างไร?",answer:"ขึ้นอยู่กับแอปพลิเคชันและคุณภาพของข้อมูล ระบบ RAG ที่ออกแบบอย่างเหมาะสมสามารถให้คำตอบที่ถูกต้องสำหรับคำถามที่มีเอกสารที่เกี่ยวข้องอยู่ได้ด้วยความแม่นยำ 90% หรือมากกว่า กลไกในการควบคุมการเà¸
243à¸´à¸”ภาพหลอน (การสร้างข้อมูลที่ผิดพลาด) ก็ถูกสร้างขึ้นเป็นมาตรฐานเช่นกัน"},{question:"คุณสนับสนุนภาษาอื่นนอกจากภาษาญี่ปุ่นหรือไม่?",answer:"ใช่, มีการสนับสนุนหลายภาษาให้บริการ. เราสนับสนุนทุกภาษาหลัก รวมถึงภาษาญี่ปุ่น, ภาษาอังกฤษ, ภาษาจีน, และภาษาเกาหลี. แทนที่จะมีโมเดลแยกต่างหากสำหรับแต่ละภาษา ระบบเดียวสามารถจัดการกับคำค้นหาหลายภาษาได้."},{question:"คุณสามารถผสานการทำงานกับระบบที่มีอยู่ (CRM, เครื่องมือแชท ฯลฯ) ได้หรือไม่?",answer:"ใช่ สามารถรวมเข้าด้วยกันได้; รองรับการผสานกับ API ของเครื่องมือธุรกิจหลัก เช่น Salesforce, HubSpot, Slack, Microsoft Teams และ LINE WORKS คุณสามารถนำผู้ช่วย AI มาใช้โดยไม่จำเป็นต้องเปลี่ยนแปลงกระบวนการทำงานเดิมของคุณ"},{question:"โครงสร้างค่าธรรมเนียมของคุณเป็นอย่างไร?",answer:"ขึ้นอยู่กับขนาดและข้อกำหนดของโครงการ. ในขณะที่ค่าก่อสร้างเบื้องต้นและค่าดำเนินการรายเดือนมักจะรวมกันไว้แล้ว แต่เราก็รับคำขอสำหรับการพัฒนาแบบจุดหรือบริการให้คำปรึกษาเพียงอย่างเดียวเช่นกัน. โปรดแจ้งให้เราทราบถึงข้อกำหนดของคุณก่อน. เราจะจัดเตรียมการประมาณการคร่าว ๆ ให้คุณ."}]},pA={title:"แผนอัตราค่าบริการ",subtitle:"แผนราคา",description:"แผนที่ยืดหยุ่นเพื่อเหมาะกับขนาดของธุรกิจคุณ",plans:[{name:"สตาร์ทเตอร์",price:"ยี่สิบเก้าพันแปดร้อยเยน",period:"รายเดือน/ผู้ใช้",description:"แผนที่ดีที่สุดสำหรับทีมขนาดเล็ก ฟังก์ชัน AI พื้นฐานในราคาที่เอื้อมถึง",features:["สูงสุด 100 สายต่อเดือน","การถอดความพื้นฐาน","การตรวจจับคำหลัก","การสนับสนุนทางอีเมล","การเก็บรักษาข้อมูล 7 วัน"],cta:"เริ่มต้นฟรี",popular:!1},{name:"มืออาชีพ",price:"Â¥79,800",period:"รายเดือน/ผู้ใช้",description:"เหมาะสำหรับทีมที่กำลังเติบโต. คุณสมบัติการวิเคราะห์ขั้นสูง.",features:["สูงสุด 500 สายต่อเดือน","การถอดเสียงด้วย AI ความแม่นยำสูง","การวิเคราะห์ทางอารมณ์","การเชื่อมโยง CRM","การสนับสนุนลำดับความสำคัญ","การเà¸
243à¹‡à¸šà¸£à¸±à¸à¸©à¸²à¸‚้อมูลเป็นเวลา 30 วัน","รายงานที่กำหนดเอง"],cta:"ทดลองใช้ฟรี 14 วัน",popular:!0},{name:"องค์กรธุรกิจ",price:"ติดต่อเรา",period:"นิสัย",description:"แผนบริการครบทุกฟีเจอร์สำหรับองค์กรขนาดใหญ่",features:["ไม่จำกัดการโทร","โมเดล AI ที่ได้รับการปรับแต่งเฉพาะ","การสนับสนุนภายในองค์กร","การสนับสนุนที่ทุ่มเท","การร่วมมือแบบกำหนดเอง","การรับประกัน SLA","การตรวจสอบความปลอดภัย","การเก็บข้อมูลไม่จำกัด"],cta:"ปรึกษากับฝ่ายขาย",popular:!1}],faq:{title:"คำถามที่พบบ่อย",items:[{question:"มีให้ทดลองใช้ฟรีหรือไม่",answer:"ใช่, ทดลองใช้ฟรี 14 วัน สำหรับแผนมืออาชีพ. ไม่ต้องใช้บัตรเครดิตเพื่อเริ่มต้น."},{question:"ฉันสามารถเปลี่ยนแผนของฉันได้ตลอดเวลาหรือไม่",answer:"ใช่ คุณสามารถอัปเกรดหรือดาวน์เกรดแผนของคุณได้ทุกเมื่อ การเปลี่ยนแปลงจะมีผลตั้งแต่รอบการเรียกเก็บเงินถัดไป"},{question:"มีเงื่อนไขสัญญาผูกพันหรือไม่?",answer:"แผนรายเดือนไม่มีข้อจำกัดระยะเวลาสัญญา หากคุณเลือกทำสัญญารายปี คุณจะได้รับส่วนลด 20%"}]}},gA={hero:{badge:"เทคโนโลยีขับเคลื่อนด้วยปัญญาประดิษฐ์",title:"การถอดเสียงด้วยปัญญาประดิษฐ์",description:"แบบจำลองการเรียนรู้ของเครื่องขั้นสูงให้ความแม่นยำถึง 99.5% ระบบปัญญาประดิษฐ์ที่ได้รับการฝึกฝนจากข้อมูลการโต้ตอบกับลูกค้าหลายล้านรายการสามารถแปลงเสียงเป็นข้อความได้",features:["ความถูกต้อง 99.5%","การประมวลผลแบบเรียลไทม์","รองรับมากกว่า 40 ภาษา"]},features:{title:"หน้าที่หลัก",subtitle:"เครื่องมือถอดเสียงขั้นสูงที่เหนือกว่าการรู้จำเสียงพูดทั่วไป",items:[{title:"การถอดเสียงแบบเรียลไทม์",description:"รับถอดความแบบเรียลไทม์ระหว่างการสนทนา รับข้อมูลเชิงลึกทันทีและไม่มีโอกาสพลาดการโค้ชแบบเรียลไทม์"},{title:"การสนับสนุนหลายภาษา",description:"รองรับมากกว่า 40 ภาษาและครอบคลุมทีมงานทั่วโลกด้วยการตรวจจับภาษาอัตโนมัติ"},{title:"ความเข้าใจตามบริบท",description:"แบบจำลอง AI ที่ได้รับการฝึกฝนด้วยคำศัพท์เฉพาะทางอุตสาหกรรมสามารถจดจำคำศัพท์ทางเทคนิคและธุรกิจได้อย่างถูกต้อง"},{title:"การแยกเสียงลำโพง",description:"ระบุและแยกผู้พูดที่แตกต่างกันในการสนทนาโดยอัตโนมัติ และกำหนดคุณลักษณะของผู้พูดอย่างชัดเจน"},{title:"คำศัพท์เฉพาะที่กำหนดเอง",description:"การเรียนรู้ชื่อผลิตภัณฑ์ ชื่อบริการ และคำศัพท์ทางเทคนิคที่เป็นเอกลักษณ์ของบริษัทคุณ จะช่วยให้มีความแม่นยำยิ่งขึ้น"},{title:"การประกันคุณภาพ",description:"การตรวจสอบคุณภาพอัตโนมัติและการให้คะแนนความน่าเชื่อถือช่วยให้มั่นใจได้ถึงการถอดความที่มีคุณภาพสูงสุด"}]},useCases:{title:"การใช้งานในสถานการณ์ต่างๆ",subtitle:"อุตสาหกรรมและทีมที่ต้องการการถอดเสียงการสนทนาอย่างถูกต้อง",items:[{title:"ทีมขาย",description:"ทบทวนการโทรขายและระบุรูปแบบความสำเร็จ ปรับปรุงประสิทธิภาพการพูดและให้คำแนะนำแก่สมาชิกในทีมด้วยตัวอย่างเฉพาะ"},{title:"ฝ่ายสนับสนุนลูกค้า",description:"บันทึกปัญหาของลูกค้าอย่างถูกต้อง ดูแลประวัติการสนับสนุนอย่างครบถ้วนเพื่อให้มั่นใจในคุณภาพการให้บริการที่สม่ำเสมอ"},{title:"การควบคุมคุณภาพ",description:"ติดตามการปฏิบัติตามข้อกำหนดและรับรองการใช้สคริปต์อย่างถูกต้อง เก็บบันทึกข้อมูลอย่างละเอียดสำหรับการตรวจสอบและการฝึกอบรม"}]},stats:{accuracy:{value:"เก้าสิบเก้าจุดห้าเปอร์เซ็นต์",label:"ความถูกต้องของการถอดความ"},languages:{value:"40+",label:"ภาษาที่รองรับ"},latency:{value:"<2 วินาที",label:"ความล่าช้าในการประมวลผล"},availability:{value:"24/7",label:"การประมวลผลอย่างต่อเนื่อง"}}},hA={hero:{badge:"การตรวจจับอัจฉริยะ",title:"การติดตามคำค้นหา",description:"ติดตามการกล่าวถึงคู่แข่ง การโต้แย้ง และหัวข้อสำคัญโดยอัตโนมัติ ไม่พลาดสัญญาณสำคัญจากการสนทนาของลูกค้า",badges:["การติดตามการแข่งขัน","การตรวจจับการตอบสนอง","การวิเคราะห์หัวข้อ","คำหลักที่กำหนดเอง"]},features:{title:"ติดตามข้อมูลที่สำคัญ",subtitle:"การตรวจจับและวิเคราะห์คำสำคัญโดยอัตโนมัติจากทุกบทสนทนา",items:[{title:"การติดตามและวิเคราะห์คู่แข่ง",description:"ติดตามการกล่าวถึงคู่แข่งในวงการเพื่อทำความเข้าใจว่ากลุ่มเป้าหมายเปรียบเทียบโซลูชันของคุณกับทางเลือกอื่นในตลาดอย่างไร"},{title:"การตรวจจับการตอบสนอง",description:"ระบุข้อโต้แย้งและข้อกังวลทั่วไปโดยอัตโนมัติ และพัฒนาการตอบสนองและการฝึกอบรมที่มีประสิทธิภาพ"},{title:"คำหลักที่กำหนดเอง",description:"กำหนดและติดตามคำหลักและวลีที่กำหนดเองเฉพาะสำหรับธุรกิจ ผลิตภัณฑ์ หรืออุตสาหกรรมของคุณ"},{title:"การวิเคราะห์แนวโน้ม",description:"ค้นพบแนวโน้มใหม่ ๆ จากการสนทนากับลูกค้า และปรับกลยุทธ์ของคุณตามสัญญาณตลาดที่แท้จริง"},{title:"การสกัดบริบท",description:"รับบริบททั้งก่อนและหลังคำสำคัญ ไม่ใช่แค่การกล่าวถึงคำนั้นเท่านั้น เข้าใจไม่เพียงแต่สิ่งที่ถูกกล่าวถึง แต่ยังรวมถึงเหตุผลและวิธีการที่มันถูกกล่าวถึงด้วย"},{title:"การค้นหาอัจฉริยะ",description:"ค้นหาทุกการสนทนาได้ทันทีเพื่อหาตำแหน่งและเวลาที่หัวข้อเฉพาะถูกพูดถึง"}]},applications:{title:"การใช้งานในสถานการณ์ต่างๆ",items:{competitive:{title:"ข้อมูลเชิงแข่งขัน",description:"ความเข้าใจอย่างลึกซึ้งเกี่ยวกับภูมิทัศน์การแข่งขัน:",points:["ติดตามคู่แข่งที่ถูกกล่าวถึงบ่อยที่สุดของคุณ","เข้าใจว่าลูกค้าที่คาดหวังเปรียบเทียบคุณสมบัติและราคาอย่างไร","ระบุจุดแข็งและจุดอ่อนทางการแข่งขันของคุณ","การสร้างเอกสารต่อต้านการแข่งขันที่มีประสิทธิภาพ"]},objections:{title:"การตอบโต้การโต้แย้ง",description:"เปลี่ยนการโต้แย้งให้กลายเป็นโอกาส:",points:["ระบุปัญหาที่พบบ่อยที่สุดของลูกค้า","วิเคราะห์การตอบโต้ของผู้ที่มีผลงานยอดเยี่ยม","คู่มือปฏิบัติการที่มีการตอบสนองที่พิสูจน์แล้ว","ฝึกอบรมทีมของคุณด้วยการเปลี่ยนแปลงที่มีประสิทธิภาพ"]},product:{title:"ข้อมูลเชิงลึกเกี่ยวกับผลิตภัณฑ์",description:"ส่งเสริมการพัฒนาผลิตภัณฑ์ผ่านข้อเสนอแนะจากลูกค้า:",points:["ระบุคุณสมบัติที่มีผู้ร้องขอมากที่สุด","เข้าใจความท้าทายต่อฟังก์ชันการทำงานในปัจจุบัน","ค้นพบการใช้งานที่ไม่คาดคิด","จัดลำดับความสำคัญของแผนงานตามความต้องการของลูกค้า"]},compliance:{title:"การปฏิบัติตามข้อกำหนดและคุณภาพ",description:"ตรวจสอบให้แน่ใจว่าการปฏิบัติตามข้อกำหนดทางกฎหมายและคุณภาพ:",points:["ติดตามการเปิดเผยข้อมูลที่จำเป็นและภาษาทางกฎหมาย","แจ้งเตือนการสนทนาที่อาจละเมิดนโยบาย","ติดตามการปฏิบัติตามสคริปต์และแนวทางปฏิบัติที่ดีที่สุด","สร้างรายงานการปฏิบัติตามข้อกำหนดสำหรับการตรวจสอบ"]}}},advancedFeatures:{title:"คุณสมบัติขั้นสูง",items:[{title:"การเรียกคืนที่ไม่ชัดเจน",de
243scription:"ตรวจจับคำค้นหาที่เปลี่ยนแปลง, คำที่มีความหมายเหมือนกัน, และคำที่เกี่ยวข้องได้โดยอัตโนมัติโดยไม่ต้องตั้งค่าเอง"},{title:"การวิเคราะห์เชิงประวัติศาสตร์",description:"วิเคราะห์แนวโน้มของคำค้นหาตามเวลาเพื่อระบุรูปแบบตามฤดูกาลและหัวข้อที่กำลังเกิดขึ้น"},{title:"การแจ้งเตือนแบบเรียลไทม์",description:"รับการแจ้งเตือนทันทีเมื่อมีการกล่าวถึงคำสำคัญในบทสนทนาสด"}]}},fA={hero:{badges:["องค์กร","LLM ในท้องถิ่น","การดำเนินงานเซิร์ฟเวอร์ภายในองค์กร"],title:"การก่อสร้าง LLM ภายในองค์กร",description:"ดำเนินการ LLM ในสภาพแวดล้อมของคุณเอง โดยเก็บข้อมูลไว้ภายนอกบริษัท"},mission:{title:"ภาพรวมบริการก่อสร้าง LLM ภายในองค์กร",paragraphs:["สำหรับบริษัทที่ไม่สามารถเปิดเผยข้อมูลลับนอกองค์กรได้ เราสร้างสภาพแวดล้อม LLM ที่สามารถทำงานได้บนเซิร์ฟเวอร์ของตนเองหรือในคลาวด์ส่วนตัว โซลูชันนี้เหมาะอย่างยิ่งสำหรับองค์กรที่ต้องการการจัดการข้อมูลอย่างเข้มงวด เช่น สถาบันการเงิน หน่วยงานทางการแพทย์ หน่วยงานรัฐบาล และสถาบันวิจัย เนื่องจากไม่ใช้ API สาธารณะใดๆ และการประมวลผลทั้งหมดจะเสร็จสิ้นภายในโครงสร้างพื้นฐานที่ลูกค้าเป็นผู้จัดการเอง","เราให้การสนับสนุนอย่างครอบคลุมตั้งแต่การเลือกแบบจำลอง, การสร้างเซิร์ฟเวอร์, การปรับแต่งเครื่องมือการอนุมาน, และการตรวจสอบการดำเนินงาน โดยใช้แบบจำลองน้ำหนักเปิดที่มีจำหน่ายในเชิงพาณิชย์ เช่น Llama 3.3, Qwen 2.5, Mistral, และ DeepSeek พร้อมเครื่องมือการอนุมานประสิทธิภาพสูง เช่น vLLM, Ollama, และ SGLangโมเดลเหล่านี้ทำงานบนเอนจินการอนุมานประสิทธิภาพสูง เช่น vLLM, Ollama และ SGLang เพื่อให้สภาพแวดล้อมการอนุมานที่มีความหน่วงต่ำและประสิทธิภาพสูง","เราสนับสนุนการใช้งานที่หลากหลาย เช่น การผสานรวมกับระบบที่มีอยู่เดิม, แชทบอท, RAG ภายในองค์กร, การสรุปเอกสาร, และการสร้างโค้ด เราสามารถออกแบบให้ตรงตามความต้องการขององค์กร รวมถึงการปรับแต่งโมเดลให้เหมาะสมกับธุรกิจเฉพาะทาง, การเพิ่มประสิทธิภาพด้วย NVIDIA GPU / Apple Silicon, การออกแบบสำหรับหลายผู้ใช้งาน, การสร้าง API gateway และอื่นๆ อีกมากมาย"]},summary:{title:"แนวโน้มของ LLM ภายในองค์กร",paragraphs:["ในปี 2025-2026 ความเป็นประโยชน์ของ LLM ที่ติดตั้งภายในองค์กรกำลังพัฒนาอย่างรวดเร็ว ประสิทธิภาพของโมเดลแบบเปิดน้ำหนักได้เทียบเคียงกับโมเดลแบบปิด และจำนวนโมเดลที่มีใบอนุญาตเชิงพาณิชย์ได้ลดลงอย่างมาก ทำให้การดำเนินงานภายในองค์กรเป็นเรื่องง่ายขึ้น","โมเดลที่มีพารามิเตอร์ 8B ถึง 70B ได้ถึงระดับที่สามารถนำไปใช้ได้จริงสำหรับงานธุรกิจมากมาย การควอนไทซ์แบบ GGUF ช่วยให้การอนุมานได้รวดเร็วแม้บนการ์ดจอของผู้บริโภค","สำหรับเครื่องมือการอนุมาน, การจัดกลุ่มต่อเนื่อง (Continuous Batching) และการให้ความสนใจแบบแบ่งหน้า (PagedAttention) ของ vLLM ช่วยเพิ่มปริมาณงานได้อย่างมาก และการให้ความสนใจแบบฐานเลข (RadixAttention) ของ SGLang ช่วยเร่งการโต้ตอบหลายขั้นตอนที่ซับซ้อน Ollama ได้กลายเป็นมาตรฐานที่ใช้กันทั่วไปสำหรับสภาพแวดล้อมก
243ารพัฒนาในเครื่อง และ llama.cpp ได้รับการปรับให้เหมาะสมกับ Apple Silicon สำหรับการอนุมานที่รวดเร็วบน Mac ซีรีส์ M","ในการนำไปใช้ในองค์กร นอกเหนือจากอธิปไตยของข้อมูลและการปฏิบัติตามข้อกำหนดแล้ว การเพิ่มประสิทธิภาพต้นทุนในระยะยาว (การย้ายออกจากรูปแบบการเรียกเก็บเงิน API แบบจ่ายตามการใช้งาน) กำลังกลายเป็นแรงจูงใจในการนำไปใช้มากขึ้น การกำหนดค่าแบบไฮบริด (การประมวลผลข้อมูลที่ละเอียดอ่อนในเครื่องและ API บนคลาวด์สำหรับการประมวลผลทั่วไป) ได้กลายเป็นตัวเลือกที่พบได้บ่อย"],icons:[{label:"คลาวด์ส่วนตัว"},{label:"อธิปไตยของข้อมูล"},{label:"การเพิ่มประสิทธิภาพต้นทุน"},{label:"ความปลอดภัยขององค์กร"}]},features:{title:"คุณสมบัติการออกแบบและพัฒนา",subtitle:"การออกแบบและพัฒนา",items:[{title:"การออกแบบโครงสร้างพื้นฐานและการปรับแต่งประสิทธิภาพด้วย GPU",description:"ออกแบบการกำหนดค่าฮาร์ดแวร์ที่เหมาะสมที่สุดสำหรับปริมาณงานและงบประมาณของคุณ รวมถึง NVIDIA A100/H100, RTX 4090/5090 และ Apple Silicon (M2 Ultra/M3 Max/M4 Max) และสร้างสภาพแวดล้อมการอนุมานที่ใช้ประโยชน์จากประสิทธิภาพของ GPU ได้อย่างเต็มที่ผ่านการปรับแต่ง CUDA, MPS และ Metal การปรับแต่ง CUDA, MPS และ Metal เพื่อเพิ่มประสิทธิภาพ GPU ให้สูงสุด"},{title:"การเลือกแบบจำลองและการปรับให้เหมาะสม",description:"เลือกโมเดลที่เหมาะสมที่สุดจาก Llama, Qwen, Mistral, DeepSeek และอื่น ๆ โดยพิจารณาจากลักษณะของงาน ความต้องการด้านภาษา และข้อจำกัดของทรัพยากร ใช้การควอนไทซ์ (GGUF/AWQ/GPTQ) การปรับแต่งแคช KV และการปรับแต่งการประมวลผลแบบแบตช์เพื่อให้ได้ทั้งความแม่นยำและปริมาณงาน"},{title:"การสร้างเครื่องมือการอนุมาน",description:"เลือกและสร้างเครื่องมือการอนุมาน เช่น vLLM, SGLang, Ollama, TGI เป็นต้น ตามการใช้งานของคุณ และนำเทคโนโลยีล่าสุด เช่น Continuous Batching, Speculative Decoding, และ Prefix Caching มาใช้เพื่อให้ได้ API การอนุมานที่มีความหน่วงต่ำและประสิทธิภาพสูง เราให้บริการ API การอนุมานที่มีความหน่วงต่ำและประสิทธิภาพสูง"},{title:"การปฏิบัติการ การตรวจสอบ และการรักษาความปลอดภัย",description:"ดำเนินการตรวจสอบเมตริกเชิงอนุมานด้วย Prometheus/Grafana, การควบคุมการเข้าถึงด้วย API gateway, บันทึกการตรวจสอบ, การปรับขนาดอัตโนมัติ และการกู้คืนความล้มเหลว สร้างสภาพแวดล้อมก
243ารดำเนินงานสำหรับใช้งานจริงที่ตรงตามข้อกำหนดด้านความปลอดภัยขององค์กร"}]},techStack:{title:"เทคโนโลยีที่ใช้: LLM แบบติดตั้งภายในองค์กร",subtitle:"แพลตฟอร์มและเทคโนโลยี",categories:{openWeightModels:{title:"โมเดลน้ำหนักเปิด",items:["Llama 3.3 70B / 8B","Qwen 2.5 72B / 32B / 7B","Mistral Large / Nemo","DeepSeek V3 / R1","เจมม่า 2 27B / 9B","ฟี-4","คำสั่ง R (Cohere)"]},japaneseModels:{title:"รุ่นเฉพาะสำหรับประเทศญี่ปุ่น",items:["ELYZA-ญี่ปุ่น-ลามะ-2","Swallow 70B / 13B","ญี่ปุ่น-ลามะ-3","Qwen-2.5-Japanese","คาราคูริ-LM"]},inferenceEngine:{title:"เครื่องมือการอนุมาน",items:["vLLM (การจัดกลุ่มข้อมูลแบบต่อเนื่อง)","SGLang (RadixAttention)","โอลามา (การพัฒนาท้องถิ่น)","llama.cpp (Apple Silicon)","ทีจีไอ (ฮักกิ้ง เฟイス)","TensorRT-LLM (NVIDIA)","ExLlamaV2 (การปรับค่าเป็นระดับ)"]},quantization:{title:"การควอนไทซ์",items:["GGUF (มาตรฐาน llama.cpp)","AWQ (ความแม่นยำสูง 4 บิต)","GPTQ (การเพิ่มประสิทธิภาพ GPU)","บิตแอนด์ไบต์(8บิต/4บิต)","EETQ (การควอนไทซ์ประสิทธิภาพที่มีประสิทธิภาพ)"]},hardware:{title:"ฮาร์ดแวร์",items:["NVIDIA H100 / A100","NVIDIA L40S / A10G","RTX 4090 / 5090","Apple Silicon M2 Ultra","Apple Silicon M3/M4 Max","AMD MI300X"]}
243,infrastructure:{title:"โครงสร้างพื้นฐาน",items:["Docker / Kubernetes","NVIDIA Triton Server","เกตเวย์ API (Kong / Envoy)","Prometheus / Grafana","คลาวด์ส่วนตัว (VMware / OpenStack)","การสนับสนุนด้านสิ่งแวดล้อมแบบแยกขาดจากเครือข่าย"]}},updateNote:{title:"จุดอัปเดตหลักสำหรับปี 2026",description:"ในโมเดลน้ำหนักเปิด Llama 3.3 สามารถบรรลุประสิทธิภาพทั่วไปในระดับเดียวกับ GPT-4 และปรับปรุงประสิทธิภาพภาษาญี่ปุ่นอย่างมาก; ซีรีส์ Qwen 2.5 ขยายตัวเลือกด้วยขนาดที่หลากหลายและประสิทธิภาพที่สมดุล;DeepSeek V3/R1 ดึงดูดความสนใจด้วยประสิทธิภาพด้านต้นทุนการอนุมาน; และเอนจินการอนุมาน vLLM 2.0 Chunked Prefill และ RadixAttention ของ SGLang ช่วยเร่งความเร็วในการสนทนาหลายรอบในเอนจินการอนุมาน Chunked Prefill ของ vLLM 2.0 และ RadixAttention ของ SGLang ช่วยเพิ่มความเร็วในการโต้ตอบหลายรอบ การปรับแต่ง Apple Silicon ของ llama.cpp ทำให้การอนุมานโมเดลขนาด 70B เป็นไปได้จริงบน M4 Max และเทคโนโลยีการควอนไทซ์ให้ความแม่นยำระดับ 4 บิตและประสิทธิภาพสูง เทคนิคการควอนไทซ์สามารถบรรลุทั้งความแม่นยำระดับ 4 บิตและความเร็วในการอนุมาน และ GGUF กลายเป็นรูปแบบมาตรฐานโดยพฤตินัย"}},cta:{title:"ติดต่อเรา",description:"เราสามารถให้คำปรึกษาแก่คุณตั้งแต่การจัดเตรียมข้อกำหนด PoC และการกำหนดค่า LLM ท้องถิ่นก็สามารถพิจารณาได้เช่นกัน",primaryButton:"ติดต่อเรา",secondaryButton:"การให้คำปรึกษาทางเทคนิค"}},kA={hero:{badges:["องค์กร","RAG","การสร้างส่วนขยายการค้นหา"],title:"การพัฒนาเวกเตอร์ / RAG",description:"สร้างระบบ RAG เพื่อเชื่อมโยงความรู้ภายในกับ LLM"},mission:{title:"บริการพัฒนาเวกเตอร์ / RAG ภาพรวม",paragraphs:["เราจะสร้างระบบ RAG (ระบบสร้างการขยายการค้นหา) ที่ช่วยให้พนักงานสามารถค้นหาและถามคำถามในภาษาธรรมชาติได้โดยการเชื่อมโยงสินทรัพย์ความรู้ที่สะสมไว้ในบริษัทกับ LLM เราผสานรวมแหล่งข้อมูลต่าง ๆ เช่น คู่มือ, บันทึกการประชุม, เอกสารทางเทคนิค, คำถามที่พบบ่อย, ประวัติการสื่อสารใน Slack, Confluence, SharePoint, เป็นต้น เพื่อสร้างสภาพแวดล้อมที่ความรู้ขององค์กรสามารถนำมาใช้ได้ทันที","เราเพิ่มประสิทธิภาพความแม่นยำในการค้นหาและคุณภาพการตอบสนองโดยใช้เทคโนโลยีล่าสุด เช่น การค้นหาแบบไฮบริด (การค้นหาด้วยเวกเตอร์ + การค้นหาด้วยคำสำคัญ), การจัดอันดับใหม่, การแบ่งข้อมูลเป็นลำดับชั้น, การกรองข้อมูลเมตา, เป็นต้น นอกเหนือจากการค้นหาเอกสารแบบธรรมดา เราแสดงแหล่งที่มาของคำตอบอย่างชัดเจนเพื่อลดการเà¸
243à¸´à¸”ภาพหลอนและรับประกันความน่าเชื่อถือ","เราสนับสนุนสภาพแวดล้อมที่หลากหลาย รวมถึง AWS, GCP, Azure และระบบภายในองค์กร พร้อมทั้งผสานการทำงานกับโครงสร้างพื้นฐานการยืนยันตัวตนและการจัดการสิทธิ์ที่มีอยู่เดิม เราให้การสนับสนุนอย่างสม่ำเสมอในการรักษาความทันสมัยของข้อมูล (การอัปเดตแบบต่างส่วนและการจัดทำดัชนีใหม่โดยอัตโนมัติ) การวิเคราะห์บันทึกการใช้งาน และการปรับปรุงความแม่นยำอย่างต่อเนื่อง"]},summary:{title:"แนวโน้มเทคโนโลยี RAG",paragraphs:['ระหว่างปี 2025 ถึง 2026 เทคโนโลยี RAG กำลังก้าวเข้าสู่ระยะ "การนำไปใช้พื้นฐานสู่คุณภาพการผลิต" นอกเหนือจากการค้นหาแบบเวกเตอร์อย่างง่ายแล้ว การค้นหาแบบไฮบริด ซึ่งรวมวิธีการค้นหาหลายวิธีเข้าด้วยกัน การจัดอันดับใหม่ ซึ่งจัดลำดับผลการค้นหาใหม่ และการแยกคำถาม ซึ่งแยกและประมวลผลคำถามที่ซับซ้อน ได้กลายเป็นส่วนประกอบมาตรฐาน',"กลยุทธ์การแบ่งข้อมูลออกเป็นส่วน ๆ ก็ได้พัฒนาขึ้นเช่นกัน โดยมีการแบ่งข้อมูลแบบลำดับชั้นที่คำนึงถึงโครงสร้างของเอกสาร การแบ่งข้อมูลแบบซ้อนทับ และการแบ่งข้อมูลแบบหลายรูปแบบที่ประมวลผลตารางและรูปภาพแยกกัน ซึ่งทั้งหมดนี้ช่วยเพิ่มความแม่นยำ การค้นหาตามบริบท (การเพิ่มข้อมูลบริบทให้กับส่วนข้อมูล) ก็ได้รับการยอมรับอย่างกว้างขวางว่ามีประสิทธิภาพเช่นกัน","สำหรับการเลือกฐานข้อมูลเวกเตอร์ นอกเหนือจากบริการที่มีการจัดการ เช่น Pinecone, Weaviate, Qdrant และ Milvus แล้ว PostgreSQL pgvector และ FAISS ในเครื่องยังเสนอตัวเลือกที่หลากหลายเพื่อตอบสนองความต้องการของคุณ นอกจากนี้ยังมีโมเดลฝังตัวให้เลือกใช้ รวมถึง text-Embedding-3-large, Cohere Embed v3 และโมเดลหลายภาษา",'ในการนำไปใช้ในองค์กร การเชื่อมโยงการจัดการสิทธิ์ (ACL) การปิดบังข้อมูลส่วนบุคคล (PII) บันทึกการตรวจสอบ และการออกแบบแบบหลายผู้เช่า เป็นข้อกำหนดที่จำเป็น และมีความจำเป็นต้องย้ายจาก "PoC ที่ใช้งานได้" ไปสู่ "ระบบที่พร้อมใช้งานจริง"'],icons:[{label:"การค้นหาแบบผสมผสาน"},{label:"ระบบตรวจสอบข้อมูลด้วยหลายรูปแบบ"},{label:"เอเจนติก RAG"},{label:"ความปลอดภัยขององค์กร"}]},features:{title:"คุณสมบัติการออกแบบและพัฒนา",subtitle:"การออกแบบและพัฒนา",items:[{title:"การรวบรวมข้อมูลและกระบวนการเตรียมข้อมูลก่อนการประมวลผล",description:"การดึงข้อมูลและการทำความสะอาดข้อมูลจาก PDF, Word, Excel, HTML, Markdown, Slack, Confluence, SharePoint, เป็นต้น รองรับหลายรูปแบบ รวมถึง OCR, การวิเคราะห์โครงสร้างตาราง, และการสร้างคำบรรยายภาพ รักษาความสดใหม่ด้วยการอัปเดตแบบต่างส่วนและการดำเนินการตามกำหนดเวลา"},{title:"การออกแบบระบบค้นหาความแม่นยำสูง",description:"สร้างการค้นหาความแม่นยำสูงที่ผสมผสานการค้นหาแบบเวกเตอร์ + การค้นหาแบบไฮบริด BM25, การจัดอันดับใหม่โดย Cohere Rerank / Cross-Encoder และการขยายและแยกคำค้นหา การกรองเมตาดาต้าและการควบคุมการเข้าถึงตามสิทธิ์ก็ได้รับการดำเนินการเช่นกัน"},{title:"การสร้างคำตอบและการควบคุมคุณภาพ",description:"ปรับปรุงคุณภาพของคำตอบด้วยการปรับบริบทให้เหมาะสม, คำสั่งแบบ Few-shot, และการอนุมานแบบ Chain-of-Thought. การชี้แจงแหล่งที่มา, การแสดงคะแนนความมั่นใจ, และการตรวจจับการเà¸
243à¸´à¸”ภาพหลอนถูกนำมาใช้เพื่อให้มั่นใจในความน่าเชื่อถือสำหรับการใช้งานทางธุรกิจ."},{title:"วงจรการดำเนินงานและการปรับปรุง",description:"เราให้บริการสนับสนุนการดำเนินงาน รวมถึงการวิเคราะห์บันทึกการใช้งาน อัตราการค้นหาที่ตรงเป้าหมาย และการติดตามความพึงพอใจในการตอบสนอง การปรับปรุงอย่างต่อเนื่องผ่านวงจรข้อเสนอแนะ การทดสอบ A/B โครงสร้างพื้นฐาน การฝังการอัปเดตโมเดล และการทบทวนกลยุทธ์การแบ่งข้อมูล"}]},techStack:{title:"เทคโนโลยีที่ใช้: เวกเตอร์ / RAG",subtitle:"แพลตฟอร์มและเทคโนโลยี",categories:{embeddingModels:{title:"การฝังแบบจำลอง",items:["OpenAI text-embedding-3-large","Cohere Embed v3","การเดินทางด้วยปัญญาประดิษฐ์","จินา เอมเบดดิ้งส์ v3","BGE-M3 (หลายภาษา)","มัลติไลอnguage-e5-ขนาดใหญ่","รุ่นเฉพาะสำหรับประเทศญี่ปุ่น"]},vectorDatabases:{title:"ฐานข้อมูลเวกเตอร์",items:["โคนสน (จัดการ)","Weaviate (การค้นหาแบบไฮบริด)","Qdrant (ประสิทธิภาพสูง)","มิลวุส (ขนาดใหญ่)","โครมา (น้ำหนักเบา)","PostgreSQL pgvector","FAISS (ท้องถิ่น)"]},chunking:{title:"การแบ่งข้อมูลเป็นชิ้นและการประมวลผล",items:["การจัดกลุ่มแบบลำดับชั้น","การแบ่งกลุ่มเชิงความหมาย","ชิ้นส่วนที่ซ้อนทับกัน","หน้าต่างประโยค","การเรียกคืนตามบริบท","การประมวลผลตารางและแผนภูมิ","การสนับสนุนแบบหลายช่องทาง"]},search:{title:"การค้นหาและการเรียกคืน",items:["การค้นหาแบบไฮบริด (เวกเตอร์ + BM25)","การจัดอันดับใหม่ของ Cohere","การจัดอันดับใหม่แบบข้ามตัวเข้ารหัส","การขยายและการแยกย่อยคำถาม","HyDE (การสร้างเอกสารสมมติ)","การสืบค้นด้วยตนเอง","การค้นหาหลายคำสั่ง"]}},updateNote:{title:"จุดอัปเดตหลักสำหรับปี 2026",description:"ในโมเดล Embedding, text-Embedding-3-large และ Cohere Embed v3 ได้กลายเป็นมาตรฐานสำหรับองค์กร และประสิทธิภาพในการประมวลผลภาษาญี่ปุ่นได้ปรับปรุงอย่างมีนัยสำคัญ; การค้นหาตามบริบทได้พิสูจน์แล้วว่ามีประสิทธิภาพ และการเพิ่มบริบทให้กับชิ้นส่วนข้อมูลได้กลายเป็นวิธีการมาตรฐานการค้นหาแบบไฮบริด + การจัดอันดับใหม่ได้กลายเป็นค่ากำหนดที่จำเป็นสำหรับการค้นหา ลดจำนวนการกำหนดค่าที่ใช้การค้นหาเวกเตอร์แบบง่ายเพียงอย่างเดียว และ Agentic RAG (ตัวแทนที่เลือกกลยุทธ์การค้นหาแบบไดนามิก) กำลังถูกนำไปใช้ในทางปฏิบัติ ในด้านการดำเนินงาน มีการเน้นย้ำในการสร้างวงจรการวัดคุณภาพและการปรับปรุงโดยใช้กรอบการประเมิน RAG (RAGAS, LangSmith)"}},cta:{title:"ติดต่อเรา",description:"เราสามารถให้คำปรึกษาแก่คุณตั้งแต่การจัดเตรียมข้อกำหนด PoC และการกำหนดค่า LLM ท้องถิ่นก็
243สามารถพิจารณาได้เช่นกัน",primaryButton:"ติดต่อเรา",secondaryButton:"การให้คำปรึกษาทางเทคนิค"}},bA={hero:{badges:["ฟูลสแต็ก","การบูรณาการ LLM","การออกแบบ API"],title:"การพัฒนาแอปพลิเคชันปัญญาประดิษฐ์",description:"ออกแบบและสร้างแอปพลิเคชันที่ใช้งานได้จริงโดยใช้ประโยชน์จาก LLM"},mission:{title:"บริการพัฒนาแอปพลิเคชันปัญญาประดิษฐ์",paragraphs:["เราให้บริการออกแบบและพัฒนาแอปพลิเคชัน AI ที่สร้างคุณค่าทางธุรกิจโดยการวิเคราะห์ข้อมูลที่ได้จาก API ภายนอกด้วย LLM เชื่อมต่อ API กับแหล่งข้อมูลที่หลากหลาย เช่น CRM, ERP, SaaS, เซ็นเซอร์ IoT และโซเชียลมีเดีย และป้อนข้อมูลที่ได้เข้าสู่ LLM แบบเรียลไทม์ เราช่วยให้สามารถวิเคราะห์ข้อมูลขั้นสูงที่ไม่สามารถทำได้ด้วยเครื่องมือ BI แบบดั้งเดิม เช่น การสร้างรายงานวิเคราะห์โดยใช้ภาษาธรรมชาติ การตรวจจับความผิดปกติ การทำนายแนวโน้ม และการจำแนกประเภทอัตโนมัติ","ไม่เพียงแต่การผสานระบบ API อย่างง่าย แต่ยังรวมถึงการผสานระบบจากแหล่งข้อมูลหลายแหล่ง การทำความสะอาดข้อมูล และการแปลงข้อมูลให้เป็นรูปแบบที่ง่ายต่อการตีความของ LLM ผ่านการประมวลผลที่มีโครงสร้าง การออกแบบคำสั่ง (Prompt Engineering) ช่วยเพิ่มประสิทธิภาพการวิเคราะห์ให้สูงสุด และสร้างผลลัพธ์ที่เหมาะกับความต้องการทางธุรกิจ เราสร้างแอปพลิเคชันที่สามารถนำไปใช้ได้จริงซึ่งผสานข้อมูลกับปัญญาประดิษฐ์ เช่น ข้อมูลการขายเพื่อทำนายการเจรจาทางธุรกิจ บันทึกการสนับสนุนลูกค้าเพื่อวิเคราะห์เสียงของลูกค้า (VoC) และข้อมูลจากเซ็นเซอร์เพื่อให้คำแนะนำการบำรุงรักษาอุปกรณ์","เราสนับสนุนหลากหลายรูปแบบการใช้งาน เช่น เว็บแอปพลิเคชัน, แอปพลิเคชันบนมือถือ, การเชื่อมต่อกับ Slack/Teams และการประมวลผลแบบแบทช์เป็นระยะ เราให้การสนับสนุนอย่างสม่ำเสมอตั้งแต่การกำหนดความต้องการ การออกแบบ API การผสานรวม LLM ไปจนถึงการดำเนินงานในระบบจริง"]},summary:{title:"แนวโน้มการพัฒนาแอปพลิเคชันปัญญาประดิษฐ์",paragraphs:['ตั้งแต่ปี 2025 ถึง 2026 การพัฒนาแอปพลิเคชัน AI กำลังเข้าสู่ระยะปฏิบัติจริงโดยอาศัย "การผสาน API x การวิเคราะห์ LLM" การวิเคราะห์ข้อมูลที่ไม่มีโครงสร้างและการสร้างข้อมูลเชิงลึกจากภาษาธรรมชาติ ซึ่งไม่สามารถจัดการได้ด้วยเครื่องมือ BI แบบดั้งเดิมและแดชบอร์ด กำลังเริ่มถูกนำมาใช้ในระบบขององค์กร',"สิ่งที่ควรสังเกตเป็นพิเศษคือการพัฒนาของฟังก์ชันการทำงานแบบผลลัพธ์ที่มีโครงสร้าง (Structured Output) ของ LLM ซึ่งช่วยให้สามารถควบคุมผลลัพธ์ให้สอดคล้องกับ JSON Schema อย่างเคร่งครัด ทำให้ระบบการทำงานแบบอัตโนมัติตั้งแต่ต้นจนจบเป็นจริงได้ โดยที่ข้อมูลที่ได้มาจาก API จะถูกวิเคราะห์โดย LLM และผลลัพธ์จะถูกส่งต่อไปยังระบบต่อไปโดยตรง การดำเนินการแบบหลายขั้นตอนของการเรียกฟังก์ชัน (Function Calling) ช่วยให้การรวบรวมข้อมูล การผสานข้อมูล และการวิเคราะห์ข้อมูลผ่าน API หลายตัวสามารถทำได้ในกระบวนการทำงานเดียว","ในโครงสร้างพื้นฐานการประมวลผลข้อมูล Polars ได้กลายเป็นมาตรฐานสำหรับการประมวลผลความเร็วสูง และเมื่อรวมกับการประมวลผลแบบสตรีมมิ่ง จะช่วยอำนวยความสะดวกในการวิเคราะห์แบบเรียลไทม์","ในการนำไปใช้ในองค์กร ความต้องการได้เปลี่ยนจากการพัฒนา PoC แบบครั้งเดียวเป็นการออกแบบที่สามารถปรับขนาดได้สำหรับการดำเนินงานในเชิงการผลิต ซึ่งต้องการการออกแบบสถาปัตยกรรมที่ครอบคลุมซึ่งรวมถึงการเพิ่มประสิทธิภาพด้านต้นทุน การจัดการข้อผิดพลาด และการสนับสนุนบันทึกการตรวจสอบ"],icons:[{label:"เอเจนติก เอไอ"},{label:"โปรโตคอล MCP"},{label:"หลายตัวแทน"},{label:"มนุษย์ในห่วงโซ่"}]},features:{title:"คุณสมบัติการออกแบบและพัฒนา",subtitle:"การออกแบบและพัฒนา",items:[{title:"การออกแบบการรวม API และการเà¸
243à¹‡à¸šà¸£à¸§à¸šà¸£à¸§à¸¡à¸‚้อมูล",description:"สร้างโครงสร้างพื้นฐานสำหรับการรวบรวมข้อมูลที่รองรับโปรโตคอลหลากหลาย เช่น REST API, GraphQL, WebSocket และ Webhook เราออกแบบกระบวนการรับข้อมูลที่เสถียรโดยใช้กระบวนการยืนยันตัวตน (OAuth, API key, JWT) การจำกัดอัตรา และการกลไกการลองใหม่ นอกจากนี้เรายังรองรับการรวมข้อมูล การจัดตารางเวลา และการรับข้อมูลแบบต่างกันจากหลาย API"},{title:"การเตรียมข้อมูลและการจัดโครงสร้าง",description:"แปลงข้อมูลดิบให้เป็นรูปแบบที่สามารถวิเคราะห์ได้อย่างมีประสิทธิภาพโดย LLM รวมถึงการแยกวิเคราะห์ JSON การทำความสะอาดข้อมูล การทำให้เป็นมาตรฐาน และการจัดการค่าที่ขาดหาย และทำการแบ่งส่วนข้อมูลและการสรุปข้อมูลที่เหมาะสมที่สุดโดยพิจารณาข้อจำกัดของหน้าต่างบริบท การกำหนดเมตาดาต้าช่วยให้สามารถติดตามผลการวิเคราะห์ได้"},{title:"การวิเคราะห์ LLM และการออกแบบคำสั่ง",description:"เพิ่มประสิทธิภาพการวิเคราะห์ข้อมูลให้สูงสุดด้วยการออกแบบเทมเพลตคำสั่งที่เฉพาะเจาะจงตามความต้องการทางธุรกิจของคุณ เราสร้างกระบวนการวิเคราะห์สำหรับการจำแนกประเภท การสรุปข้อมูล การวิเคราะห์ความรู้สึก การตรวจจับความผิดปกติ การสร้างการคาดการณ์ ฯลฯ เราใช้ Function Calling และ Structured Output เพื่อสร้างผลลัพธ์ในรูปแบบที่สามารถผสานรวมกับระบบถัดไปได้อย่างง่ายดาย"},{title:"การนำไปใช้และการดำเนินการของแอปพลิเคชัน",description:"เราให้บริการผลการวิเคราะห์ผ่านหลากหลายอินเทอร์เฟซ รวมถึง FastAPI, แอปพลิเคชันเว็บที่ใช้ Next.js, เป็นต้น, Slack/Teams Bot, และการดำเนินการแบบแบทช์ตามกำหนดเวลา แดชบอร์ด, การแจ้งเตือน, และการสร้างรายงานอัตโนมัติถูกนำมาใช้และส่งมอบในรูปแบบที่ผู้ใช้ทางธุรกิจสามารถนำไปใช้ได้ทันที นอกจากนี้เรายังให้บริการการตรวจสอบการดำเนินงาน, การเพิ่มประสิทธิภาพค่าใช้จ่าย, และการปรับปรุงอย่างต่อเนื่อง"}]},techStack:{title:"เทคโนโลยีที่ใช้: การพัฒนาแอปพลิเคชัน AI",subtitle:"แพลตฟอร์มและเทคโนโลยี",categories:{apiIntegration:{title:"การผสานระบบ API",items:["REST / GraphQL / WebSocket","OAuth 2.1 / API key / JWT","เว็บฮุค / การสำรวจ","Apache Airflow / Prefect","ขึ้นฉ่าย / ชั่วคราว","คำขอ / httpx / aiohttp","การจำกัดอัตรา / การลองใหม่","การตรวจสอบข้อมูล (Pydantic)"]}
243,dataProcessing:{title:"การประมวลผลข้อมูล",items:["แพนด้า / ขั้วโลก","ตัวแยกวิเคราะห์ JSON / JSONL","กระบวนการทำความสะอาดข้อมูล","Apache Spark (การประมวลผลขนาดใหญ่)","dbt (การแปลงข้อมูล)","ความคาดหวังอันยิ่งใหญ่","ทะเลสาบเดลต้า / น้ำแข็งภูเขาน้ำแข็ง","การสตรีมมิ่ง (Kafka / Flink)"]},llmCloud:{title:"คลาวด์ LLM",items:["OpenAI GPT-4o / GPT-4.1","โคล้ด 3.5 / โคล้ด 4","เจมินี 2.0 / เจมินี 2.5","คำสั่ง R+ (Cohere)","Mistral Large"]},llmLocal:{title:"LLM ในท้องถิ่น",items:["Llama 3.3 / Llama 4","Mistral / Mixtral","Qwen 2.5 / Qwen 3","DeepSeek V3 / R1","เจมม่า 2 / เจมม่า 3","ฟี-4","ELYZA / สวอลโลว์ (เชี่ยวชาญภาษาญี่ปุ่น)","คำสั่ง R (Cohere)"]},inference:{title:"การอนุมาน / กรอบแนวคิด",items:["vLLM / SGLang","Ollama / llama.cpp","LiteLLM Proxy","การเรียกใช้งานฟังก์ชัน","ผลลัพธ์ที่มีโครงสร้าง","เครื่องมือสร้างเทมเพลตคำสั่ง","LangChain / LlamaIndex","สายงานวิเคราะห์ข้อมูลเฉพาะทาง"]},application:{title:"ชั้นแอปพลิเคชัน",items:["FastAPI / Litestar","Next.js / React","Slack SDK / Teams SDK","Streamlit / Gradio","งานที่กำหนดเวลาไว้ (Cron / Cloud Scheduler)","PostgreSQL / MongoDB","Redis (แคช / คิว)","Docker / Kubernetes"]}},updateNote:{title:"จุดอัปเดตหลักสำหรับปี 2026",description:"ในพื้นที่วิเคราะห์ LLM ฟังก์ชัน Structured Output ของ GPT-4.1 และ Claude 4 ได้พัฒนาจนมีความสมบูรณ์ในการควบคุมการส่งออกข้อมูลให้เป็นไปตามมาตรฐาน JSON Schema อย่างเคร่งครัด และการดำเนินการเรียกฟังก์ชันแบบหลายขั้นตอนช่วยให้สามารถรวบรวมและวิเคราะห์ข้อมูลที่ซับซ้อนข้ามหลาย API ได้ในกระบวนการเดียว การดำเนินการเรียกฟังก์ชันแบบหลายขั้นตอนช่วยให้สามารถรวบรวมและวิเคราะห์ข้อมูลที่ซับซ้อนข้ามหลาย API ได้ในกระบวนการเดียวในการประมวลผลข้อมูล Polars ได้กลายเป็นทางเลือกที่ได้รับการยอมรับอย่างแพร่หลายแทน Pandas สำหรับการประมวลผลความเร็วสูง และเมื่อใช้ร่วมกับระบบประมวลผลแบบสตรีมมิ่ง จะช่วยอำนวยความสะดวกในการสร้างโครงสร้างพื้นฐานสำหรับการวิเคราะห์แบบเรียลไทม์ ในระดับแอปพลิเคชัน การผสานรวมเครื่องมือภายนอกโดยใช้ MCP ได้กลายเป็นเรื่องปกติ ซึ่งช่วยเร่งการพัฒนาแอปพลิเคชันแบบเอเจนต์ที่ LLMs สามารถเรียกใช้ API ได้โดยอัตโนมัติเพื่อดึงและวิเคราะห์ข้อมูล"}},cta:{title:"ติดต่อเรา",description:"เราสามารถให้คำปรึกษาแก่คุณตั้งแต่การจัดเตรียมข้อกำหนด PoC และการกำหนดค่า LLM ท้องถิ่นก็
243สามารถพิจารณาได้เช่นกัน",primaryButton:"ติดต่อเรา",secondaryButton:"การให้คำปรึกษาทางเทคนิค"}},yA={seo:$v,header:Qv,hero:Jv,mission:Zv,businessServices:Xv,features:Yv,businessProcess:eA,story:aA,contact:nA,footer:tA,cookiePolicy:iA,about:sA,portfolio:rA,common:oA,privacyPolicy:lA,termsOfService:dA,weatherMap:uA,agentDevelopment:cA,faq:mA,pricing:pA,aiTranscription:gA,keywordTracking:hA,onPremiseLLM:fA,vectorRAG:kA,aiAppDevelopment:bA},vA={home:{title:"telet.ai - Platform Penyelesaian Dikuasakan AI",description:"Ubah perbualan pelanggan anda dengan analitik panggilan dikuasakan AI. Dapatkan pandangan masa nyata, analisis sentimen dan penjejakan prestasi untuk meningkatkan hasil pasukan anda."},about:{title:"Maklumat Organisasi - telet.ai",description:"Ketahui tentang misi telet.ai untuk mengubah perbualan pelanggan dengan AI. Temui pasukan kami dan terokai perjalanan kami."},privacy:{title:"Dasar Privasi - telet.ai",description:"Semak dasar privasi telet.ai untuk memahami bagaimana kami mengendalikan data anda dan melindungi privasi anda."},terms:{title:"Terma Perkhidmatan - telet.ai",description:"Baca terma perkhidmatan telet.ai untuk menggunakan laman web ini dan menghubungi kami untuk perundingan."},cookies:{title:"Dasar Kuki - telet.ai",description:"Ketahui bagaimana telet.ai menggunakan kuki dan teknologi serupa (Cloudflare dan Google Analytics)."},portfolio:{title:"Portfolio - telet.ai",description:"Terokai portfolio penyelesaian AI kami yang direka untuk meningkatkan operasi perniagaan dan pengalaman pelanggan anda."},agentDevelopment:{title:"Reka Bentuk & Pembangunan AI Agent Enterprise - telet.ai",description:"Reka bentuk dan bina AI Agent gred pengeluaran yang disesuaikan dengan aliran kerja, alatan dan keperluan pematuhan anda."},onPremiseLLM:{title:"Operasi LLM On-Premise - telet.ai",description:"Kendalikan LLM moden dalam persekitaran anda untuk kawalan data yang kukuh, kos yang boleh diramal dan inferens latensi rendah."},vectorRAG:{title:"Reka Bentuk Vector RAG & Indeks - telet.ai",description:"Reka bentuk saluran pengambilan dan indeks yang disesuaikan dengan setiap aliran kerja untuk meningkatkan jawapan yang berasas."},aiAppDevelopment:{title:"Pembangunan Aplikasi AI - telet.ai",description:"Bina aplikasi praktikal yang dikuasakan oleh LLM—disepadukan dengan API, data dan aliran kerja perniagaan anda."}},AA={brand:"telet.ai",nav:{services:"Perkhidmatan",portfolio:"Portfolio",about:"Maklumat Organisasi",contact:"Hubungi"}},xA={brandName:"telet.ai",tagline:"Komunikasi Multi AI",badge:"Inteligensi Panggilan Berkuasa AI",title:{line1:"Tempatan dan defensif,",line2:"Perluas di awan",line3:"Diotomasi oleh ejen."},description:"Inferens tepi dalam SLM memastikan kedaulatan data, dan integrasi awan dalam LLM membesarkan kuasa pemprosesan tanpa had; penerapan seni bina Agentic AI mula menunjukkan hasil daripada syarikat terkemuka."},LA={badge:"Misi Kami",title:"Mempermudah akses kepada LLM",paragraphs:["Bolehkah anda benar-benar sampai sejauh ini? --Itulah rasa terkejut yang kami sasarkan.",'Potensi pemodelan bahasa berskala besar (LLM) berkembang setiap hari. Namun, kami ingin meruntuhkan halangan seperti "Saya bimbang menghantar data sulit kepada API luaran," "Aplikasi AI lanjutan hanya untuk syarikat besar," dan "Kos pelaksanaan tidak berbaloi."',"Kami mengkhusus dalam membina LLM tempatan yang disiapkan dalam persekitaran anda. Maklumat pelanggan yang sangat sensitif boleh digunakan dengan selamat tanpa didedahkan kepada dunia luar. Kami dapat memaksimumkan manfaat AI sambil memastikan keselamatan data.","Ia mengendalikan segala-galanya daripada penciptaan dokumen rutin dan pengorganisasian data hingga analisis khusus dan sokongan membuat keputusan. Teknologi ejen proprietari kami menyediakan ketepatan yang setanding dengan model API.",'LLM tidak menggantikan manusia. Ia adalah alat yang berkuasa yang membolehkan manusia menggunakan lebih banyak kreativiti, pertimbangan, dan kepakaran. Kita menjadikan teknologi daripada sesuatu yang istimewa kepada sesuatu yang biasa – satu "pengkomersialan" sebenar teknologi tersebut.','Sila hubungi kami tanpa segan. Kami akan bekerjasama dengan anda untuk mengetahui "Apa yang boleh kami lakukan?" bersama-sama dengan anda.'],animation:{label:"LLM",sublabel:"Teknologi"}},PA={title:"Perkhidmatan",subtitle:"Perkhidmatan Perniagaan",services:[{title:"Reka Bentuk dan Pembangunan Ejen AI untuk Perusahaan",titleEn:"Ejen AI Perusahaan",description:"Reka dan kembangkan ejen AI yang dioptimumkan untuk keperluan perniagaan, peraturan dalaman, dan skop data. Sokongan daripada LLM jenis API luaran kepad
243a LLM tempatan.",badges:["Reka Bentuk Individu","Serasi LLM","pengkhususan perniagaan"],link:"Butiran."},{title:"pelayan LLM berjanji",titleEn:"Pelayan LLM di Tempat",description:"Mengendalikan LLM skala 7B hingga 120B pada pelayan khusus syarikat. Menyediakan persekitaran penggunaan LLM yang selamat dan fleksibel, mengelakkan risiko penghantaran data luaran.",badges:["7B-120B disokong","Kunci API telah dikeluarkan","Reka Bentuk Keselamatan"],link:"Butiran."},{title:"Reka bentuk RAG dan indeks vektor",titleEn:"Arkitektur RAG Vektor",description:"Pisahkan dan optimumkan data RAG mengikut kandungan perniagaan dan logik analisis. Reka bentuk indeks untuk carian pantas dan tepat.",badges:["Pemisahan Indeks","Carian berkelajuan tinggi","Sokongan pelbagai bahasa"],link:"Butiran."},{title:"Pembangunan Aplikasi AI",titleEn:"Pembangunan Aplikasi AI",description:"Kembangkan aplikasi AI praktikal dengan analisis dan penjanaan berasaskan LLM di terasnya, menggunakan API sedia ada dan data luaran.",badges:["Pengikatan API","Analisis LLM","Reka Bentuk Bersepadu"],link:"Butiran."}]},wA={title:"Projek pencapaian menggunakan teknologi AI",subtitle:"Pengalaman pembangunan AI dalam pelbagai bidang, termasuk pembantu multibahasa, peramalan cuaca, LLM tempatan, dan pemantauan keselamatan.",viewDetails:"Lihat butiran →.",items:[{title:"Pembantu Pelbagai Bahasa AI",description:"Penolong sembang pelbagai bahasa oleh RAG + LLM. Tindak balas yang sangat tepat kepada pertanyaan dalam pelbagai bahasa termasuk Jepun, Inggeris, dan Cina."},{title:"Sistem Peramalan Cuaca",description:"Belajar data cuaca dan menjana ramalan masa nyata. Ramalan yang sangat tepat dijana dengan menggunakan pengecaman corak siri masa dan RAG untuk mencari corak serupa pada masa lalu."},{title:"Pelayan Dalaman / On-Prem Local LLM",description:"Kami menyediakan AI yang disesuaikan dengan operasi perniagaan anda, sedia untuk digunakan dalam syarikat anda, dengan Open WebUI sebagai titik kemasukan biasa, laluan inferens pantas dengan Ollama/MLX, dan domain data yang dipisahkan sepenuhnya untuk setiap UID. Dokumen dalaman dirakam dalam RAG dengan pemadatan Bahasa Inggeris dan terjemahan pertanyaan Jepun secara automatik, dan kemahiran perniagaan seperti ringkasan berita, pengaturan dokumen, dan tugas rutin dijalankan dengan selamat secara serentak. Sistem pelaksanaan kemahiran diasingkan sebagai kontena OpenClaw dan dilindungi oleh tiga lapisan edge Cloudflare serta Nginx tempatan. Kami menyediakan sokongan menyeluruh untuk pemilihan model, reka bentuk kemahiran, dan dasar operasi, dan memulakan AI khusus syarikat anda dalam bentuk yang boleh digunakan sejak hari ia dikerahkan."},{title:"Ramalan Ketibaan Orbit Antarpanah (AI)",description:"Dapatkan data planetari daripada NASA API dan tafsirkan pengiraan orbit dalam LLM. Menghasilkan laporan mengenai tetingkap pelancaran, masa yang diperlukan, dan kecekapan bahan api."},{title:"Analisis AI Data Hartanah",description:"Kumpulkan maklumat hartanah melalui pengikisan web dan analisis dengan LLM + Python. Penghasilan automatik tren harga, ramalan pasaran, dan pulangan atas pelaburan."},{title:"AI Peramalan Nasib (Peramalan Empat Tiang)",description:"Meniru logik Empat Tiang Takdir dalam Python dan mentafsirkannya dengan LLM. Dapatkan koordinat dan masa daripada API Astronomi untuk penilaian nasib dan keserasian secara peribadi."},{title:"Google Workspace AI integration",description:"Integrasi LLM dengan Gmail, Drive, Kalendar, dan lain-lain. AI membantu meringkas e-mel, mencari fail, dan menjadualkan."},{title:"Berita Dunia Pelbagai Bahasa",description:"Pengumpulan berita dunia secara masa nyata, diterjemahkan dan diringkaskan dalam pelbagai bahasa oleh LLM. Terjemahan semula jadi dan penjanaan ringkasan berdasarkan pemahaman konteks."},{title:"Pengurus AI Pemantauan Log Keselamatan",description:"Pemantauan log keselamatan secara masa nyata, pengesanan dan analisis ancaman oleh LLM, serta amaran segera melalui perpadanan dengan corak serangan lampau oleh RAG."}]},SA={title:"Bagaimana untuk meneruskan projek itu",headline:"Yang anda perlukan hanyalah visi.",paragraphs:['Hilang sudah zaman apabila perbezaan bahasa menjadi halangan kepad
243a perniagaan, dan walaupun kami menggunakan terjemahan AI, kami dapat mengendalikan rundingan dan pembangunan perniagaan dalam 14 bahasa melalui aliran kerja unik kami yang memanfaatkan sepenuhnya perkongsian imej. Malah spesifikasi yang kompleks boleh diperiksa dengan imej sampel untuk mengelakkan salah faham. Satu-satunya perkara yang penting ialah "apa yang anda ingin cipta".',"Projek bermula dengan sesi pendengaran awal bagi permohonan perniagaan. Selepas perkongsian umum visi pelanggan dan pemahaman mengenai isu-isu, NDA (Perjanjian Tidak Pendedahan) ditandatangani. Setelah mewujudkan persekitaran di mana maklumat sulit boleh dibincangkan secara sulit, kami menjalankan temu bual terperinci dan mengesahkan keperluan. Berdasarkan kandungan tersebut, kami menyediakan cadangan dan mengesahkan hala tuju projek menggunakan imej sampel. Setelah kefahaman terbentuk, kami menyediakan spesifikasi dan memulakan pembangunan.","Aliran ini hanyalah pengenalan umum. Kami akan menyesuaikan diri dengan fleksibel mengikut situasi dan jadual anda. Di mana sahaja anda berada di dunia, walaupun anda tidak bertutur dalam bahasa yang sama, imej dan AI akan menyokong komunikasi anda. Mengapa tidak anda sertai kami untuk menembusi pasaran sempadan yang belum pernah diterokai oleh sesiapa pun? Biarkan telet.ai menjadi rakan kongsi anda untuk membentuk idea anda."],cards:[{title:"Pendengaran / NDA",description:"Selepas sesi pendengaran awal melalui e-mel, perjanjian kerahsiaan ditandatangani. Anda boleh memberikan kami butiran dengan tenang."},{title:"Perancangan & CA",description:"Cadangan dan imej contoh disediakan. 14 bahasa disokong, jadi anda boleh meneruskan tanpa halangan bahasa."},{title:"Pengambilan Sampel & Permulaan",description:"Kami akan menyediakan spesifikasi dan memulakan perniagaan setelah mencapai persetujuan."},{title:"Pembangunan, pengujian dan operasi",description:"Pelaksanaan pantas melalui pembangunan tangkas. Kami menyediakan sokongan berterusan daripada peringkat ujian hingga sokongan operasi."}]},IA={badge:"Kajian Kes",title:"Cerita Pengenalan AI",items:[{title:"Penyelesaian Kecekapan Perniagaan dan Pengurangan Kos",subtitle:"Kurangkan beban kerja harian dan cipta persekitaran di mana anda boleh menumpukan perhatian pada perniagaan teras anda.",description:'Banyak perusahaan kecil dan sederhana (PKS) menghadapi kekurangan tenaga kerja dan kesukaran pengambilan. Walaupun apabila kakitangan baru diambil, kos latihan tinggi dan terdapat masalah kadar pengekalan. Penyelesaian AI kami menyokong tugas harian seperti mengautomasikan pengurusan bajet, kemasukan dan pengaturan data, pemulihan dokumen dalaman, dan penjanaan automatik laporan dan dokumen. Pembantu AI mengendalikan tugas rutin yang dahulunya memakan banyak masa, 24 jam sehari, 365 hari setahun, tanpa sebarang ralat. Syarikat yang telah memperkenalkan AI telah menyaksikan pengurangan ketara dalam jam kerja. Daripada "menambah sumber manusia" kepada "berkolaborasi dengan AI". Kami akan melakukan yang terbaik untuk menyokong pembaharuan gaya kerja syarikat anda.'},{title:"Automasi Sokongan Pelanggan",subtitle:"Perkhidmatan 24 jam meningkatkan kepuasan pelanggan dan mengurangkan kos buruh.",description:"Chatbot AI menyediakan respons automatik kepada soalan lazim, respons utama dan penyortiran pertanyaan, serta respons masa nyata dalam pelbagai bahasa. Respons masa nyata dalam pelbagai bahasa. Operator manusia boleh menumpukan perhatian pada kes kompleks dan meningkatkan kualiti perkhidmatan pelanggan. Tingkatkan kualiti perkhidmatan anda ke tahap seterusnya dengan sokongan pelanggan AI."},{title:"AI Pengetahuan dan Penggunaan Dokumen",subtitle:"Aset pengetahuan dalaman dalam bentuk yang boleh digunakan serta-merta oleh sesiapa sahaja",description:'"Di manakah manual itu?" "Terdapat maklumat yang hanya diketahui oleh pendahulu" – pengetahuan yang tidak diperibadikan menghalang pertumbuhan sesebuah syarikat. Teknologi RAG (generasi lanjutan carian) kami membolehkan anda mendapatkan maklumat yang diperlukan daripada manual dalaman, soalan lazim, dan dokumen lalu hanya dengan mengajukan soalan dalam bahasa semula jadi. Ia memperkemas latihan pekerja baharu, mendigitalkan pengetahuan tersirat veteran, dan membolehkan perkongsian pengetahuan merentas jabatan. Dokumen sedia ada boleh digunakan seperti sedia kala, jadi tiada keperluan untuk mencipta dokumen ba
243haru.'},{title:"AI analisis imej untuk penjagaan perubatan dan kejururawatan",subtitle:"Mata yang berjaga-jaga, sokongan 24 jam oleh AI",description:"Dalam bidang perubatan dan penjagaan kejururawatan, adalah perlu untuk memantau sejumlah besar pesakit dan pengguna dengan kakitangan yang terhad. AI analisis imej/video kami mengesan kelainan secara masa nyata daripada imej kamera. Ia secara automatik mengesan penyakit berjangkit dengan mengesan demam, memberi amaran segera jika pesakit jatuh atau tersesat, dan mengesan perubahan keadaan fizikal dengan menganalisis ekspresi wajah. Dengan mengurangkan beban rondaan malam, bertindak balas dengan cepat terhadap kecemasan, dan mengautomasikan tugas rakaman, kakitangan boleh menumpukan perhatian pada tugas penjagaan utama mereka. Pemasangan di premis juga disediakan untuk memastikan privasi."}]},MA={title:"Hubungi Kami",description:"Kami boleh berunding dengan anda sejak peringkat perancangan keperluan, dan juga boleh mempertimbangkan PoC serta konfigurasi LLM tempatan.",openForm:"Buka Borang",closeForm:"Tutup borang",form:{name:"Nama Anda",namePlaceholder:"Taro Yamada",email:"Alamat E-mel",emailPlaceholder:"[email protected]",subject:"subjek",subjectPlaceholder:"Subjek pertanyaan anda",message:"Mesej",messagePlaceholder:"Sila isi pertanyaan anda.",required:"*",submit:"Hantar",submitting:"Menghantar...",turnstileMessage:'Kebenaran "Saya bukan robot" diperlukan untuk penghantaran.',turnstileError:"Gagal memuatkan kebenaran keselamatan. Sila muatkan semula.",errorRetry:"Sila cuba lagi."}},jA={brand:"telet.ai",tagline:"Komunikasi Multi AI",description:"Inovasikan perniagaan anda dengan ejen AI. Cipta nilai melalui dialog.",sections:{product:{title:"Produk",features:"Ciri",benefits:"pengenalan",testimonials:"Testimoni Pelanggan"},services:{title:"Perkhidmatan",agentDev:"Reka Bentuk dan Pembangunan Ejen AI untuk Perusahaan",onPremise:"pelayan LLM berjanji",vectorRag:"Reka bentuk RAG dan indeks vektor",aiApp:"Pembangunan Aplikasi AI"},company:{title:"Maklumat Organisasi",about:"Tentang telet.ai",profile:"Profil Wakil",contact:"Hubungi Kami"},process:{title:"Cara kami menjalankan perniagaan",hearing:"Pendengaran / NDA",planning:"Perancangan & CA",sampling:"Pengambilan Sampel & Permulaan",development:"Pembangunan, pengujian dan operasi"}},copyright:"© 2026 telet.ai. Semua hak terpelihara.",legal:{privacy:"Dasar Privasi",terms:"Syarat Penggunaan",cookies:"Dasar Kuki"}},CA={title:"Dasar Kuki",subtitle:"Bahagian ini menerangkan kuki dan teknologi lain (Cloudflare / Google Analytics) yang digunakan di laman ini.",lastUpdated:"Kemas kini terakhir: 22 Januari 2026",intro:'telet.ai ("kami", "kita", "kita") mungkin menggunakan kuki dan teknologi serupa untuk menyediakan dan meningkatkan Laman ini serta memastikan keselamatannya. Kami tidak menetapkan kuki penjejakan khas kami untuk tujuan pengiklanan (walaupun Cloudflare dan Google Analytics mungkin menetapkan kuki atau teknologi serupa mengikut spesifikasi perkhidmatan masing-masing).',sections:{what:{title:"1. Apakah kuki?",description:"Kuki adalah fail teks kecil yang disimpan dalam pelayar anda apabila anda melayari laman web."},howWeUse:{title:"Tujuan penggunaan kuki dan lain-lain oleh kami",description:"Kami mungkin menggunakan kuki dan sebagainya terutamanya untuk tujuan berikut",items:["Untuk menstabilkan paparan dan operasi laman web tersebut.","Untuk mengesan dan mencegah akses tanpa kebenaran dan trafik berniat jahat","Untuk memahami status capaian dan membantu meningkatkan laman web ini."]},googleAnalytics:{title:"3. penggunaan Google Analytics",description:"Kami menggunakan Google Analytics 4 (GA4) yang disediakan oleh Google LLC untuk analisis capaian.",items:["Maklumat yang dikumpul mungkin termasuk halaman yang dilihat, masa yang dihabiskan, sumber rujukan, maklumat peranti dan pelayar, dan sebagainya.","Kami tidak menggunakan maklumat peribadi yang boleh dikenal pasti secara langsung (nama, alamat e-mel, dan sebagainya) untuk tujuan menghantarnya ke Google Analytics.","Penyelenggaraan data oleh Google tertakluk kepada terma dan dasar Google."]},cloudflare:{title:"4. Penggunaan Cloudflare",description:"Kami menggunakan perkhidmatan Cloudflare, Inc. untuk penghantaran dan langkah keselamatan Laman ini. Cloudflare mungkin menetapkan dan merujuk kepada kuki dan sebagainya untuk tujuan seperti perlindungan DDoS dan pencegahan bot.",items:["Tujuan utama adalah untu
243k keselamatan dan pengoptimuman komunikasi, dan tidak dimaksudkan untuk dijejaki bagi penghantaran iklan.","Penyeliaan data oleh Cloudflare tertakluk kepada terma dan dasar Cloudflare."]},noSpecialCookies:{title:"5. Kuki istimewa kami sendiri",description:"Kami tidak menetapkan kuki khusus kami sendiri untuk tujuan pengiklanan penargetan tingkah laku dan sebagainya. Penggunaan kuki dan sebagainya terhad terutamanya kepada skop operasi laman, keselamatan, dan analisis capaian."},choices:{title:"6. Pengurusan kuki (pencabutan)",description:"Jika kuki dilumpuhkan, beberapa fungsi mungkin tidak tersedia.",items:["Kuki boleh dipadam atau dilumpuhkan dalam tetapan pelayar.","Jika anda ingin menyahdayakan pengukuran oleh Google Analytics, sila gunakan kaedah opt-out yang disediakan oleh Google.","Penggunaan mod peribadi pelayar dan sebagainya boleh mengehadkan maklumat yang disimpan."]},changes:{title:"7. Perubahan kepada dasar ini",description:"Kami mungkin menyemak semula dasar ini sebagai tindak balas kepada pindaan undang-undang dan peraturan atau perubahan dalam perkhidmatan yang digunakan. Dasar yang disemak semula akan berkuat kuasa apabila ia disiarkan di halaman ini."},contact:{title:"8. hubungi kami",description:"Jika anda mempunyai sebarang pertanyaan mengenai dasar ini, sila hubungi kami di",company:"telet.ai",contactLink:"Pergi ke Borang Pertanyaan"}}},DA={hero:{title:"Tentang telet.ai",subtitle:"Sokongan pembangunan AI yang berhati-hati hanya boleh disediakan oleh pasukan kecil yang diperibadikan."},story:{title:"Tentang kami",content:"telet.ai bermula dengan satu persoalan. Mengapa begitu banyak syarikat gagal memanfaatkan wawasan yang tersimpan dalam interaksi tanpa had antara syarikat dan pelanggan mereka? Pasukan ini, yang diketuai oleh seorang wakil dengan pengalaman dalam penyelidikan AI dan pembangunan perisian perusahaan, ditubuhkan untuk menangani isu ini secara langsung. Kami bukan sebuah organisasi besar. Itulah sebabnya kami dapat menangani cabaran anda secara mendalam dan mencadangkan hanya penyelesaian yang benar-benar diperlukan. Kekuatan kami ialah keupayaan kami untuk mereka bentuk seni bina hibrid yang menggabungkan LLM tempatan dan LLM awan. Kami dapat melindungi data sensitif syarikat anda dalam persekitaran awan khusus sambil menjalankan inferens AI lanjutan secara berskala. Kami menyediakan CLI untuk pembangun dan UI sembang untuk kakitangan barisan hadapan, mewujudkan asas untuk penggunaan AI di seluruh organisasi anda. Dan kami menumpukan pada menjadi penyelesaian yang optimum dan bukannya yang paling canggih. Menggugurkan fungsi mengikut bajet dan menyemak hanya satu konfigurasi boleh membuat perbezaan besar dari segi kos. Kami menyampaikan apa yang anda perlukan, dalam kuantiti yang anda perlukan. Sokongan pembangunan AI kami yang teliti hanya mungkin kerana kami kecil dan peribadi. Untuk menyelesaikan kekurangan tenaga kerja dan menyokong pertumbuhan syarikat anda. Itulah janji telet.ai."},representative:{title:"Wakil telet.ai labo",name:"Keita Okuizumi",tagline:"Kepada langit, kepada laut, dan kepada kod - semangat pembangunan AI yang lahir daripada kerjaya yang luar biasa",paragraphs:['Sebagai bekas juruterbang persendirian (PPL) dan pemegang lesen kapal, saya telah lama berurusan dengan cuaca di udara dan di laut. Di kokpit dan bilik kemudi, saya memerhati perubahan pada barometer, mentafsir garis tekanan isobar, dan membandingkannya dengan pergerakan angin dan awan. Rasa "membaca data, menilai, dan bertindak" yang saya kembangkan melalui proses berulang ini menjadi titik permulaan bagi saya hari ini.','Saya mula belajar pengaturcaraan Python pada usia 57 tahun. Dorongannya hanyalah rasa ingin tahu semata-mata, tetapi sebaik sahaja saya mula menulis kod, saya terpesona dengan kemungkinan ejen AI. Saya mencipta aplikasi dengan tangan sendiri, menjalankannya, dan memperbaikinya. Dalam proses itu, saya sedar sesuatu. Dalam projek-projek sebelum ini, saya terlibat sebagai bukan jurutera, dan pembangunan sentiasa dilakukan oleh orang lain. Namun, sebaik sahaja saya mula menulis kod sendiri, saya mula melihat intipati masalah. "Ini adalah titik sempit di sini" atau "Reka bentuk ini tidak boleh diperluas" - dengan mempunyai sudut pandang seorang jurutera, kelajuan untuk merealisasikan apa yang saya ingin lakukan meningkat dengan ketara.',"Membangunkan perkhidmatan cuaca dengan menggabungkan pengalaman lapangan dan sains data, membina ejen AI untuk meningkatkan kecekapan operasi, dan pelbagai projek eksperimen. Semakin saya terus bekerja dengan tangan, saya semakin yakin bukan sahaja bahawa teknologi ini menarik, tetapi juga bahawa pasti ada orang yang memerlukan ini.","Matlamat kami bukan mengejar teknologi tercanggih. Kami menangani isu dan bajet pelanggan, dan hanya menyampaikan apa yang benar-benar diperlukan pada kos yang munasabah. Kami bukan organisasi besar, jadi kami dapat menyediakan sokongan pembangunan yang disesuaikan dengan keperluan setiap pelanggan. Kami ingin menggunakan teknologi ini untuk manfaat masyarakat – itulah sebabnya kami melancarkan telet.ai."]},contact:{title:"Maklumat Organisasi",company:"telet.ai labo",ceo:"Wakil: OKUIZUMI Keita",button:"Hubungi Kami"},studios:{tokyo:{title:"Studio Tokyo",address:"#301 First Hills A Musashikoganei, 3-3-21 Nukuiminamicho, Koganei-shi, Tokyo 184-0014, Jepun"}}},zA={title:"Portfolio",subtitle:"Lihat rekod prestasi kami dalam memanfaatkan teknologi AI",techStackLabel:"Susunan Teknologi",viewProject:"Lihat Projek",privateProject:"Projek Swasta",visualizationLabel:"visualisasi data",cta:{title:"Hubungi Kami",description:"Sila hubungi kami untuk membincangkan projek anda atau untuk pertanyaan teknikal.",button:"Hubungi Kami"},projects:{"traffic-route-ai":{title:"Sistem Pemilihan Laluan Pengangkutan AI",subtitle:"Perancangan laluan pengangkutan awam di Malaysia",description:"Sistem yang mencari gabungan laluan bas dan kereta api antara tempat bertolak dan destinasi serta membandingkan pilihan mengikut waktu ketibaan, tempoh perjalanan dan bilangan pertukaran. Penapis bas sahaja atau kereta api sahaja, carian stesen dan hentian berdekatan serta antara muka berbilang bahasa membantu pemilihan laluan untuk perjalanan harian dan percutian.",techStack:["Laluan Pengangkutan Awam","Integrasi Bas dan Kereta Api","Perbandingan Laluan","Antara Muka Berbilang Bahasa"]},"multilingual-assistant":{title:"Pembantu Pelbagai Bahasa AI",description:"Penolong sembang pintar untuk pertanyaan berbilang bahasa, membina 1,573 indeks vektor dan melaksanakan kawalan jawapan tepat melalui percabangan bersyarat, penapisan kata NG, dan pencetus kata kunci. Jawapan yang konsisten dan sangat tepat kepada soalan pengguna dalam pelbagai bahasa, termasuk Jepun, Inggeris, dan Cina, dijana melalui carian semantik merentas bahasa.",techStack:["RAG","Carian Vektor","Penyisipan Pelbagai Bahasa","LLM","logik cawangan bersyarat"]},"weather-forecast":{title:"Peramalan Cuaca AI dengan API Cuaca",description:"Membangunkan sistem AI yang belajar daripada data cuaca lalu dan membuat ramalan masa nyata mengenai keadaan cuaca terkini. LLM menganalisis data lalu yang diperoleh daripada JMA API, OpenWeatherMap dan lain-lain, dan menjana ramalan 
243jangka pendek untuk suhu, kebarangkalian hujan, kelajuan angin dan lain-lain. Dengan menggabungkan pengecaman corak data siri masa dan carian corak keserupaan lalu melalui RAG, sistem ini mencapai ramalan yang sangat tepat yang melengkapi model statistik konvensional.",techStack:["Pautan API Cuaca","LLM","RAG","Analisis Data Siri Masa","pemprosesan masa nyata"]},"local-llm":{title:"Pelayan Dalaman / On-Prem Local LLM",description:"Kami menyediakan AI yang disesuaikan dengan operasi perniagaan anda, sedia untuk digunakan dalam syarikat anda, dengan Open WebUI sebagai titik kemasukan biasa, laluan inferens pantas dengan Ollama/MLX, dan domain data yang dipisahkan sepenuhnya untuk setiap UID. Dokumen dalaman dirakam dalam RAG dengan pemadatan Bahasa Inggeris dan terjemahan pertanyaan Jepun secara automatik, dan kemahiran perniagaan seperti ringkasan berita, pengaturan dokumen, dan tugas rutin dijalankan dengan selamat secara serentak. Sistem pelaksanaan kemahiran diasingkan sebagai kontena OpenClaw dan dilindungi oleh tiga lapisan edge Cloudflare serta Nginx tempatan. Kami menyediakan sokongan menyeluruh untuk pemilihan model, reka bentuk kemahiran, dan dasar operasi, dan memulakan AI khusus syarikat anda dalam bentuk yang boleh digunakan sejak hari ia dikerahkan.",techStack:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"]},"orbital-prediction":{title:"Ramalan Ketibaan Orbit Antarpanah (AI)",description:"Membangunkan sistem untuk menganalisis titik pelepasan optimum bagi pemindahan antara planet dengan mendapatkan data kedudukan planet, elemen orbit, dan parameter graviti daripada NASA API. Mengira pengiraan orbit dengan mengambil kira orbit pemindahan Hohmann dan bantuan graviti menggunakan API dan Python, serta memaparkan tetingkap pelancaran, masa yang diperlukan, dan kecekapan bahan api. Sistem ini digunakan sebagai alat simulasi untuk institusi pendidikan dan syarikat berkaitan angkasa lepas. *Fungsi AI pada masa ini telah dialih keluar, pengiraan sedang dijalankan dengan API dan Python.",techStack:["NASA API (Horizons, SPICE)","Pengiraan Dinamik Orbit","Python","visualisasi data"]},"real-estate":{title:"Analisis AI Data Hartanah",description:"Membangunkan sistem yang mengumpul maklumat hartanah untuk wilayah tertentu melalui pengikisan web dan menjalankan analisis data lanjutan menggunakan LLM dan Python. Pembolehubah seperti harga hartanah, harga unit tsubo, umur bangunan, dan jarak stesen diekstrak, dan analisis trend harga, ramalan pasaran, serta simulasi pulangan pelaburan dijana secara automatik. Ciri-ciri juga diekstrak daripada keterangan hartanah tidak berstruktur menggunakan LLM untuk menyediakan analisis pasaran menyeluruh yang digabungkan dengan data kuantitatif. *Tawaran kini tersedia sebagai versi kedua (versi PENUH disediakan secara berasingan)",techStack:["Pengikisan web (Scrapy, Playwright)","Python","Beruang","Analisis LLM","visualisasi data"]},"fortune-ai":{title:"Sistem Penilaian AI Empat Pilar",subtitle:"Menghasilkan semula kebijaksanaan tradisional dengan teknologi.",paragraphs:["Empat Pilar Peramalan adalah kemuncak beribu-ribu tahun peramalan Timur. Sistem ini menghasilkan semula logik peramalan tradisionalnya sepenuhnya dalam Python, digabungkan dengan tafsiran dan penjanaan nasihat menggunakan LLM (Model Bahasa Besar). AI ini menghasilkan semula dengan setia proses penilaian yang dijalankan oleh peramal pakar.","Selepas memasukkan tarikh, masa, dan tempat kelahiran, sistem mendapatkan masa matahari terbit dan terbenam serta maklumat koordinat pada waktu tersebut daripada Astronomy API. Berdasarkan data ini, sistem mengira dengan tepat tanda zodiak, sepuluh dewa, dan keseimbangan lima unsur. Logik berdasarkan sains peramalan Empat Tiang Takdir diindeks dalam Python dan digabungkan dengan data statistik serta maklumat RAG (Retrieval Augmentation Generation) untuk meningkatkan ketepatan analisis formula kehidupan.","Data gaya hidup yang dikira dijelaskan dalam bahasa semula jadi oleh LLM dengan cara yang mudah difahami. Keputusan penilaian peribadi dihasilkan, termasuk aliran nasib, keserasian hubungan interpersonal, dan pekerjaan yang sesuai untuk anda. Anda boleh mendapatkan jawapan dengan kedalaman yang sama seperti apabila berunding dengan peramal profesional.","Ia kini tersedia sebagai versi kedua. Anda boleh mencuba analisis kumishiki asas dan analisis nasib. Versi penuh, yang merangkumi analisis yang lebih terperinci dan nasihat pelbagai aspek, tersedia secara berasingan."],techStack:["Python","API Astronomi (Terbit-Terbenam, Pangkalan Data Zon Waktu)","Logik Empat Tiang","LLM","Pengkoordinasian dan pengiraan masa"]}
243,"google-workspace":{title:"Google Workspace AI integration",description:"Membangunkan sistem yang menghubungkan Google Workspace (Gmail, Drive, Calendar, Docs, Sheets) dengan LLM untuk membaca, mengedit, dan memproses data perniagaan secara automatik. AI membantu dengan tugasan harian seperti meringkaskan kandungan e-mel, menjana draf untuk balasan automatik, mencari dan menganalisis fail Drive, mengekstrak jadual daripada Calendar, dan mencadangkan penyesuaian. Operasi Workspace oleh Agent juga direalisasikan melalui sambungan API selamat dengan pengesahan OAuth dan reka bentuk alat yang mematuhi MCP. Versi kedua kini tersedia (Versi PENUH akan disediakan secara berasingan).",techStack:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"]},"world-news":{title:"Berita Dunia Pelbagai Bahasa",description:"Pembangunan sistem yang mengumpul artikel secara masa nyata daripada sumber berita di seluruh dunia dan menjalankan terjemahan pelbagai bahasa, penyusunan ringkas, dan pengkategorian menggunakan LLM. Menyelaras artikel asal dalam Bahasa Inggeris, Cina, Perancis, Arab, dan bahasa lain ke dalam Bahasa Jepun serta menyusunnya mengikut topik. Pemantauan berita antarabangsa yang cekap dicapai bukan melalui terjemahan mesin ringkas, tetapi melalui terjemahan semula jadi berdasarkan pemahaman konteks menggunakan LLM dan penjanaan ringkasan yang mengekstrak isi utama artikel. *Tawaran kini tersedia sebagai versi kedua (versi PENUH disediakan secara berasingan).",techStack:["API Berita","Koleksi RSS","Terjemahan dan Ringkasan LLM","pemprosesan pelbagai bahasa","Pengkategorian automatik","pemprosesan kelompok terjadual"]},"security-monitoring":{title:"Pengurus AI Pemantauan Log Keselamatan",description:"Membangunkan sistem untuk pemantauan log keselamatan korporat secara masa nyata dan pengesanan serta analisis ancaman lanjutan menggunakan LLM. Pelbagai sumber log seperti firewall, IDS/IPS, log pengesahan, dan log aplikasi dikumpul dan dianalisis oleh modul Python, dan dibandingkan dengan corak serangan lampau, maklumat kerentanan, dan kes insiden yang terkumpul dalam RAG. Apabila corak tidak normal dikesan, LLM menerangkan tahap ancaman, skop impak, dan tindak balas yang disyorkan dalam bahasa semula jadi, dan segera memberi amaran kepada pihak yang bertanggungjawab. Jika corak yang sama berulang, amaran keutamaan tinggi akan dikeluarkan secara automatik untuk mempercepat tindak balas insiden.",techStack:["Modul Pemantauan Python","Pengumpulan log (Fluentd, Logstash)","RAG","Corak Ancaman DB","Analisis LLM","Notifikasi amaran (Slack, PagerDuty)"]}}},TA={learnMore:"Baca lagi",getStarted:"mula untuk ...",contactUs:"Hubungi Kami",backToHome:"Kembali ke Laman Utama"},EA={title:"Dasar Privasi",subtitle:"Dasar Privasi",lastUpdated:"Kemas kini terakhir: 23 Januari 2026",intro:'telet.ai (the "Service") menganggap perlindungan maklumat peribadi anda sebagai tanggungjawab penting dan telah menetapkan dasar privasi berikut.',sections:{collection:{title:"1. maklumat yang akan dikumpul",description:"Perkhidmatan mungkin mengumpul maklumat berikut apabila anda menghubungi kami atau menggunakan Perkhidmatan.",items:["Alamat E-mel","Nama anda (pilihan)","Butiran Siasatan","Maklumat lain yang disediakan secara sukarela oleh anda"]},purpose:{title:"2. Tujuan penggunaan maklumat",description:"Maklumat peribadi yang dikumpul akan digunakan hanya untuk tujuan berikut",items:["Menjawab dan memberi maklum balas kepada pertanyaan","Hubungi dan maklumat mengenai perkhidmatan kami","Komunikasi diperlukan untuk kemajuan projek.","Analisis untuk penambahbaikan perkhidmatan (dalam format yang tidak mengenal pasti individu)"]},thirdParty:{title:"3. penyediaan kepada pihak ketiga",description:"Perkhidmatan ini tidak akan memberikan maklumat peribadi anda kepada pihak ketiga kecuali dalam kes-kes berikut",items:["Jika pelanggan bersetuju","Apabila terdapat permintaan pendedahan berdasarkan undang-undang dan peraturan","Apabila perlu untuk melindungi nyawa, badan atau harta seseorang"]},security:{title:"4. pengurusan maklumat",description:"Perkhidmatan akan menguruskan maklumat peribadi yang dikumpul dengan sewajarnya dan mengambil langkah keselamatan yang munasabah untuk mencegah akses tanpa kebenaran, kehilangan, kebocoran, dan pemalsuan."},email:{title:"5. Pengendalian e-mel",description:"Perkhidmatan akan mengendalikan e-mel selaras dengan dasar berikut.",items:["Kami akan menggunakan kandungan e-mel anda hanya untuk tujuan menjawab pertanyaan anda dan menyediakan perkhidmatan kami.","Kami tidak akan menjual, menyewa, atau berkongsi alamat e-mel anda dengan mana-mana pihak ketiga.","Kami mungkin menghantar e-mel maklumat mengenai perkhidmatan kami. Jika anda ingin berhenti melanggan, sila gunakan pautan berhenti melanggan dalam e-mel tersebut atau hubungi kami menggunakan maklumat hubungan di bawah.","Sulitan SSL/TLS digunakan untuk komunikasi e-mel bagi memastikan komunikasi yang selamat.","Kami akan memadam e-mel anda dengan selamat selepas menyimpannya untuk tempoh masa yang sesuai."]},cookies:{title:"6. Penggunaan kuki",description:"Kuki boleh dilumpuhkan dalam tetapan pelayar anda."},external:{title:"7. penggunaan perkhidmatan luaran",description:"Perkhidmatan ini mungkin menggunakan perkhidmatan luaran berikut. Sila rujuk pautan masing-masing untuk dasar privasi 
243setiap perkhidmatan.",items:["Google Analytics (access analysis)","Perkhidmatan awan lain yang diperlukan untuk operasi perniagaan"]},changes:{title:"8. perubahan kepada dasar privasi",description:"Dasar ini tertakluk kepada semakan tanpa notis selaras dengan pindaan undang-undang dan peraturan atau perubahan dalam kandungan perkhidmatan. Dasar yang disemak semula akan berkuat kuasa apabila dipaparkan di halaman ini."},contact:{title:"9. hubungi kami",description:"Jika anda mempunyai sebarang pertanyaan mengenai dasar ini, sila hubungi kami di",company:"telet.ai",contactLink:"Pergi ke Borang Pertanyaan"}}},RA={title:"Syarat Penggunaan",subtitle:"Ini adalah terma dan syarat untuk menggunakan laman ini dan untuk menempah konsultasi, membuat pertanyaan, dan meminta maklumat daripada telet.ai.",lastUpdated:"Kemas kini terakhir: 22 Januari 2026",intro:'Syarat Penggunaan ini (selepas ini dirujuk sebagai "Syarat") Syarat Penggunaan ini (selepas ini dirujuk sebagai "Syarat") terpakai kepada laman web yang dioperasikan oleh telet.ai (selepas ini dirujuk sebagai "kami", "kamilah", "milik kami", atau "milik kami"). (selepas ini dirujuk sebagai "kami", "kamil", atau "milik kami"). (selepas ini dirujuk sebagai "Laman") yang dioperasikan oleh telet.ai (selepas ini dirujuk sebagai "Kami"). Laman ini disediakan terutamanya sebagai halaman pendaratan untuk temu janji perundingan, pertanyaan, dan permintaan dokumen, dan tidak menyediakan fungsi penciptaan akaun atau pengebilan berbayar di Laman ini.',sections:{scope:{title:"1. Skop aplikasi",description:'Terma dan Syarat ini terpakai kepada semua pelawat dan pengguna Laman ("Pengguna"). Terma Penggunaan hendaklah terpakai kepada semua pelawat dan pengguna Laman Web (selepas ini dirujuk sebagai "Pengguna"). Sekiranya perjanjian NDA berasingan, perjanjian outsourcing, kontrak individu dan sebagainya dimeterai antara kami dan seorang Pengguna, dokumen tersebut akan mengatasi Terma dan Syarat ini.'},prohibited:{title:"2. Barangan terlarang",description:"Dalam menggunakan Laman ini, Pengguna tidak boleh melakukan mana-mana daripada perkara berikut",items:["Tindakan yang melanggar undang-undang dan peraturan atau ketenteraman awam dan moral","Mana-mana perbuatan yang menceroboh hak harta intelek kami atau mana-mana pihak ketiga, privasi, atau hak dan kepentingan lain.","Tindakan yang mengganggu operasi laman ini atau sistem berkaitan melalui akses tanpa kebenaran, beban berlebihan, sabotaj, dan sebagainya.","Mengemukakan maklumat palsu atau menyamar sebagai pihak ketiga dalam borang pertanyaan, dan sebagainya.","Mengikis, kejuruteraan terbalik, atau akses automatik berlebihan tanpa kebenaran kami terlebih dahulu"]},disclaimer:{title:"3. Penafian",description:'Kami menyediakan laman ini atas dasar "seadanya" dan "sebagaimana tersedia". Setakat yang dibenarkan oleh undang-undang, kami menafikan semua jaminan berkaitan laman ini.',items:["Maklumat di laman ini tertakluk kepada perubahan atau pemadaman tanpa notis.","Kami tidak menjamin ketepatan, kelengkapan, atau kesesuaian maklumat di laman ini untuk tujuan tertentu.","Kami tidak akan bertanggungjawab atas sebarang kerosakan yang timbul daripada penggunaan laman ini oleh anda atau kebergantungan anda terhadap maklumat yang terkandung di dalamnya.","Maklum balas kepada perundingan dan pertanyaan adalah untuk maklumat umum sahaja dan tidak merupakan nasihat undang-undang, cukai, perubatan atau nasihat profesional lain."]},ip:{title:"4. hak harta intelek",description:"Semua hak terhadap teks, imej, reka bentuk, tanda dagangan, logo dan lain-lain di laman ini milik kami atau pemegang hak yang sah. Anda tidak boleh menggunakannya tanpa kebenaran pemegang hak."},links:{title:"5. pautan ke laman luar",description:"Laman web ini mungkin mengandungi pautan ke laman web pihak ketiga. Kami tidak bertanggungjawab terhadap kandungan atau operasi laman yang dipautkan."},changes:{title:"6. Pengubahsuaian Terma dan Syarat ini",description:"Kami berhak untuk mengubah Terma dan Syarat ini dari semasa ke semasa mengikut keperluan. Terma Penggunaan yang telah diubah akan berkuat kuasa apabila dipaparkan di 
243Laman Web."},governingLaw:{title:"7. undang-undang yang mengatur dan bidang kuasa",description:"Terma dan Syarat ini ditadbir dan ditafsirkan mengikut undang-undang Jepun. Jika timbul sebarang pertikaian berkaitan dengan Laman ini, Mahkamah Daerah Tokyo hendaklah mempunyai bidang kuasa eksklusif sebagai mahkamah peringkat pertama."},contact:{title:"8. hubungi kami",description:"Jika anda mempunyai sebarang pertanyaan mengenai Terma dan Syarat ini, sila hubungi",company:"telet.ai",contactLink:"Pergi ke Borang Pertanyaan"}}},NA={title:"gerakan biasa",subtitle:"AI meramalkan",description1:"Maklumat cuaca disediakan secara masa nyata oleh setiap negara. Negara anda dipaparkan di tengah peta. Cuaca semalam dan cuaca hari ini adalah rekod sebenar - awan hujan sepatutnya berada di langit anda pada tarikh dan masa tersebut.",description2:"Walau bagaimanapun, animasi ini juga menganimasikan pergerakan cuaca masa depan.",description3:"Vektor memproses data lampau dan mencari corak pada kelajuan tinggi. Corak cuaca juga boleh diramalkan daripada persekitaran sekeliling. Begitu juga, adalah mungkin untuk meramalkan hasil tuaian, pengeluaran, dan jualan dengan mengira elemen (i) daripada persekitaran serta nilai statistik lanjutan daripada prestasi lampau dan membiarkan AI menganalisisnya.",refresh:"menyegarkan (contohnya memori)",loading:"Memuat peta cuaca..."},GA={hero:{badges:["Perusahaan","LLM Tempatan","Ejen Tersuai"],title:"Reka Bentuk dan Pembangunan Ejen AI untuk Perusahaan",description:"Reka dan bina ejen AI khusus yang disesuaikan dengan keperluan perniagaan"},mission:{title:"Perkhidmatan Pembangunan Ejen AI Tersuai",description:"Kami sentiasa membangunkan ejen AI tersuai yang menangani isu perniagaan unik syarikat anda, daripada reka bentuk hingga pelaksanaan dan operasi. Reka bentuk seni bina kami menekankan keserasian dengan sistem kritikal sedia ada dan persekitaran SaaS, membolehkan integrasi lancar dengan API, pangkalan data, dan alat dalaman. Jurutera kami biasa dengan LangChain, AutoGen, CrewAI, dan rangka kerja utama lain, dan akan mencadangkan penyelesaian terbaik untuk susunan teknologi dan struktur operasi syarikat anda. Kami bukan sahaja membangunkan chatbot sekali sahaja, tetapi juga membina sistem ejen pelbagai di mana beberapa Ejen bekerjasama antara satu sama lain untuk melaksanakan tugas, dan Aliran Kerja Agensik yang berfungsi bersama alat luaran. Kami menyokong memaksimumkan nilai perniagaan yang dibawa oleh Ejen AI melalui perkongsian jangka panjang yang merangkumi penambahbaikan berterusan selepas pelaksanaan, pengemaskinian model, dan penyelenggaraan sistem pemantauan operasi.",imageAlt:"Perkhidmatan Pembangunan Ejen AI Tersuai"},summary:{title:"Tren Pembangunan Ejen",paragraphs:['Dari 2025 hingga 2026, pembangunan Ejen AI bergerak daripada fasa demonstrasi ke fasa pelaksanaan korporat berskala penuh. Konsep "AI Agensial" telah berakar, dan sistem pelaksanaan perniagaan autonomi yang melangkaui sekadar chatbot telah mula beroperasi dalam pelbagai industri.','"Ejen yang menggunakan komputer" yang mengawal pelayar dan desktop secara langsung, seperti Operator OpenAI, Computer Use Anthropic, dan Project Mariner Google, telah menjadi praktikal. Model Context Protocol (MCP) adalah ekosistem yang sedang berkembang, membolehkan integrasi plug-and-play dengan beribu-ribu alat.',"Arkitektur berbilang ejen telah mencapai kematangan, dengan ejen khusus bekerjasama untuk melaksanakan tugas kompleks seperti pengurusan projek, sokongan pelanggan, dan analisis data. Penstandardan protokol A2A (Ejen-ke-Ejen) juga telah membuat kemajuan dalam kerjasama ejen antara pembekal yang berbeza.",'Model tadbir urus telah berkembang daripada "Human-in-the-Loop" kepada "Human-on-the-Loop" untuk pelaksanaan korporat, dengan mekanisme untuk pengauditan keputusan pasca ejen dan eskalasi automatik berdasarkan tahap risiko sebagai ciri standard, mempercepatkan penerimaan dalam industri terkawal seperti kewangan, penjagaan kesihatan, dan pembuatan. Penerimaan sistem ini semakin pesat dalam industri terkawal seperti kewangan, perubatan, dan pembuatan.']},features:{title:"Reka Bentuk dan Pembangunan",subtitle:"Reka Bentuk & Pembangunan",items:[{title:"Reka bentuk ejen berdasarkan keperluan perniagaan",description:"Ekstrak kes penggunaan daripada analisis aliran perniagaan, pecahkan tugas dan jelaskan tanggungjawab Agens. Kami menentukan sama ada pemprosesan boleh diselesaikan oleh seorang Agens sahaja atau memerlukan koordinasi berbilang Agens, dan memilih corak inferens optimum seperti ReAct, Rancang-dan-Laksana, dan Refleksi."},{title:"Integrasi RAG / Alat / Aliran Kerja",description:"Pipeline RAG yang sangat tepat menggabungkan Generasi Embedding, Strategi Pekali, dan Carian Hibrid, penyambungan piawai kepada API dan pangkalan data luaran dengan definisi Alat yang mematuhi MCP, serta orkestrasi aliran kerja berbilang langkah menggunakan LangGraph dan CrewAI. Orkestrasikan aliran kerja berbilang langkah dengan LangGraph dan CrewAI."}
243,{title:"Reka bentuk keselamatan dan kebenaran",description:"Kawalan akses fungsi ejen melalui RBAC/ABAC, langkah balas terhadap suntikan Prompt, serta pengesanan dan penyamaran PII telah dilaksanakan. Log audit bagi semua input dan output disimpan, dan operasi persekitaran yang mematuhi SOC2 dan ISO27001 disokong."},{title:"Pelaksanaan termasuk operasi dan pemantauan",description:"Melaksanakan visualisasi jejak dengan LangSmith, Langfuse dan lain-lain, serta pemantauan masa nyata terhadap kelewatan, penggunaan token, dan kadar ralat. Membina kitaran penambahbaikan berterusan yang merangkumi amaran pengesanan anomali, infrastruktur ujian A/B, dan Ujian Regresi semasa mengemas kini model."}]},techStack:{title:"Susunan Teknologi",subtitle:"Platform & Teknologi",categories:{agentFramework:{title:"Kerangka Agens",items:["AutoGen 0.4 / AG2","CrewAI","Graf Bahasa","SDK Ejen OpenAI","MCP Anthropic","Google ADK (Agent Development Kit)","Nukleus Semantik","Platform Ejen Milik Perusahaan"]},apiLayer:{title:"Lapisan API",items:["FastAPI / Litestar","gRPC / Sambung","Persekutuan GraphQL","Acara yang dihantar oleh pelayan (SSE)","WebSocket / NATS","OAuth 2.1 / OIDC","Gerbang API (Kong / Envoy)","Pembatasan Kadar Adaptif"]},vectorDb:{title:"Pangkalan data vektor / RAG",items:["Kuncup pain","Menenun","Kuadrant","Milvus","ChromaDB","pgvektor","FAISS","Turbopuffer"]}
243,infrastructure:{title:"Infrastruktur",items:["Kubernetes (EKS / GKE / AKS)","Docker / Podman","Kumpulan GPU di Tempat","Awan Persendirian","Tanpa pelayan (Lambda / Cloud Run)","OpenTelemetry / Langfuse","Terraform / Pulumi","ArgoCD / Flux"]}},updateNote:{title:"Titik-titik utama kemas kini untuk 2026",description:"Dalam Agent Framework, SDK/protokol rasmi daripada pembekal utama seperti OpenAI Agents SDK, Anthropic MCP, dan Google ADK sedang muncul; dalam Lapisan API, gRPC dan SSE telah menjadi piawaian untuk komunikasi antara ejen, dan peralihan kepada OAuth 2.1 sedang dijalankan. Dalam Vector DB, Qdrant dan Turbopuffer mendapat perhatian kerana carian berkelajuan tinggi mereka."}},cta:{title:"Hubungi Kami",description:"Kami boleh berunding dengan anda bermula daripada penyusunan keperluan. PoC dan konfigurasi LLM tempatan juga boleh dipertimbangkan.",primaryButton:"Hubungi Kami",secondaryButton:"Perundingan Teknikal"}},OA={title:"Soalan Lazim",subtitle:"Soalan Lazim",items:[{question:"Bolehkah saya menggunakan manual dan Soalan Lazim sedia ada tanpa pengubahsuaian?",answer:"Ya, anda boleh menggunakannya; ia menyokong kebanyakan format, termasuk PDF, Word, Excel, HTML, dan fail teks. Cukup muat naik dokumen dalaman sedia ada seperti sedia kala, dan AI akan mempelajari kandungannya serta menggunakannya untuk menjawab soalan anda. Tiada penukaran format atau pemprosesan khas diperlukan."},{question:"Adakah selamat untuk digunakan dengan data yang mengandungi maklumat sensitif?",answer:"Ya, anda boleh menggunakan perkhidmatan kami dengan selamat. Sama ada di premis (pelayan dalaman) atau dalam persekitaran awan peribadi, data tidak pernah dihantar keluar dari syarikat. Kami boleh mencadangkan konfigurasi untuk memenuhi keperluan keselamatan anda."},{question:"Berapa lama masa yang diperlukan untuk melaksanakannya?",answer:"Bot FAQ standard boleh dilaksanakan dalam tempoh serendah 2–4 minggu. Jika integrasi dengan sistem sedia ada atau penyesuaian lanjutan diperlukan, kami menganggarkan 1–3 bulan. Kami juga boleh memulakan dengan PoC (bukti konsep) skala kecil."},{question:"Adakah anda menggunakan API luaran seperti ChatGPT atau Claude?",answer:"Pilihan tersedia atas permintaan. Kami menyokong kedua-dua konfigurasi yang menggunakan API luaran (OpenAI, Anthropic, Google, dan lain-lain) dan konfigurasi yang menggunakan LLM sumber terbuka (Llama, Mistral, Qwen, dan lain-lain) yang dijalankan sepenuhnya secara tempatan. Kami boleh mencadangkan konfigurasi terbaik untuk keperluan kos, keselamatan, dan prestasi anda."},{question:"Sejauh manakah ketepatan respons AI?",answer:"Bergantung pada aplikasi dan kualiti data, sistem RAG yang direka dengan betul boleh memberikan jawapan tepat kepada soalan yang mempunyai dokumen berkaitan dengan ketepatan 90% atau lebih. Mekanisme untuk mengawal halusinasi (penghasilan maklumat yang salah) juga disertakan sebagai standard."},{question:"Adakah anda menyokong bahasa selain bahasa Jepun?",answer:"Ya, sokongan pelbagai bahasa tersedia. Kami menyokong semua bahasa utama, termasuk Jepun, Inggeris, Cina, dan Korea. Daripada mempunyai model berasingan untuk setiap bahasa, satu sistem boleh mengendalikan pertanyaan pelbagai bahasa."},{question:"Bolehkah anda berintegrasi dengan sistem sedia ada (CRM, alat sembang, dan lain-lain)?",answer:"Ya, ia boleh diintegrasikan; ia menyokong integrasi API dengan alat perniagaan utama seperti Salesforce, HubSpot, Slack, Microsoft Teams, dan LINE WORKS. Anda boleh memasukkan pembantu AI tanpa mengubah aliran kerja sedia ada."},{question:"Apakah struktur yuran anda?",answer:"Ia bergantung pada saiz dan keperluan projek. Walaupun yuran pembinaan awal dan yuran operasi bulanan biasanya digabungkan, kami juga menerima permintaan untuk pembangunan terpilih atau perkhidmatan perundingan sahaja. Sila beritahu kami keperluan anda terlebih dahulu. Kami akan memberikan anda anggaran kasar."}]},BA={title:"Pelan Tarif",subtitle:"Pelan Harga",description:"Pelan fleksibel untuk memenuhi saiz perniagaan anda",plans:[{name:"pemula",price:"29,800 yen",period:"Bulan/pengguna",description:"Rancangan terbaik untuk pasukan kecil. Fungsi AI asas pada harga yang berpatutan.",features:["Sehingga 100 panggilan sebulan","Transkripsi Asas","Pengesanan Kata Kunci","Sokongan E-mel","Penahanan data 7 hari"],cta:"Mulakan secara percuma",popular:!1},{name:"profesional",price:"¥79,800",period:"Bulan/pengguna",description:"Sesuai untuk pasukan yang sedang berkembang. Ciri analitik lanjutan.",features:["Sehingga 500 panggilan sebulan","Transkripsi AI berketepatan tinggi","Analisis Emosi","Pautan CRM","Sokongan Keutamaan","Penahanan data 30 hari","Laporan Tersuai"],cta:"Uji cuba percuma 14 hari",popular:!0},{name:"perusahaan",price:"Hubungi Kami",period:"sesuai",description:"Pelan berperincian penuh untuk organisasi besar",features:["Panggilan tanpa had","Model AI Dedicated","Sokongan di lokasi","Sokongan Khusus","Kerjasama tersuai","Jaminan SLA","Audit Keselamatan","Penahanan data tanpa had"],cta:"Berkonsultasi dengan Jualan",popular:!1}],faq:{title:"Soalan Lazim",items:[{question:"Adakah terdapat percubaan percuma?",answer:"Ya, percubaan percuma selama 14 hari tersedia untuk pelan Profesional. Tiada kad kredit diperlukan untuk memulakan."},{question:"Bolehkah saya menukar pelan saya pada bila-bila masa?",answer:"Ya, anda boleh menaik taraf atau menurunkan taraf pelan anda pada bila-bila masa. Perubahan akan digunakan bermula kitaran pengebilan seterusnya."},{question:"Adakah terdapat terma kontrak yang terikat?",answer:"Pelan bulanan tidak mempunyai sekatan tempoh kontrak. Jika anda memilih kontrak tahunan, anda akan menerima diskaun 20%."}]}},KA={hero:{badge:"Teknologi Berkuasa AI",title:"Transkripsi AI",description:"Model pembelajaran mesin lanjutan menyediakan ketepatan 99.5%. AI yang dilatih pada jutaan data interaksi pelanggan menukarkan suara kepada teks.",features:["Ketepatan 99.5%","pemprosesan masa nyata","Sokongan untuk lebih daripada 40 bahasa"]},features:{title:"Fungsi Utama",subtitle:"Enjin transkripsi lanjutan yang melangkaui pengecaman ucapan ringkas",items:[{title:"Transkripsi masa nyata",description:"Dapatkan transkrip masa nyata semasa perbualan. Dapatkan pandangan segera dan jangan lepaskan peluang bimbingan masa nyata."},{title:"Sokongan pelbagai bahasa",description:"Mendukung lebih daripada 40 bahasa dan merangkumi pasukan global dengan pengesanan bahasa automatik."},{title:"pemahaman kontekstual",description:"Model AI yang dilatih dengan terminologi khusus industri dapat mengenal pasti istilah teknikal dan perniagaan dengan tepat."},{title:"pemisahan pembicara",description:"Secara automatik mengenal pasti dan memisahkan penceramah yang berbeza dalam perbualan serta menetapkan atribut penceramah yang jelas."},{title:"leksikon tersuai",description:"Mempelajari nama produk unik syarikat anda, nama perkhidmatan, dan istilah teknikal memberikan ketepatan yang lebih tinggi."},{title:"Penyelamatan Kualiti",description:"Semakan kualiti automatik dan pemarkahan kebolehpercayaan memastikan transkripsi berkualiti tertinggi."}]},useCases:{title:"Adegan Penggunaan",subtitle:"Industri dan pasukan yang memerlukan transkripsi panggilan yang tepat",items:[{title:"Pasukan Jualan",description:"Renungkan panggilan jualan dan kenal pasti corak kejayaan. Tingkatkan keberkesanan ucapan dan bimbing ahli pasukan de
243ngan contoh khusus."},{title:"Sokongan Pelanggan",description:"Merekod dengan tepat isu pelanggan. Menjaga rekod sokongan yang menyeluruh untuk memastikan kualiti perkhidmatan yang konsisten."},{title:"kawalan kualiti",description:"Memantau pematuhan dan memastikan pematuhan kepada skrip. Menyimpan rekod terperinci untuk audit dan latihan."}]},stats:{accuracy:{value:"99.5%",label:"ketepatan transkripsi"},languages:{value:"40+",label:"Bahasa yang disokong"},latency:{value:"kurang daripada 2 saat",label:"kelewatan pemprosesan"},availability:{value:"24/7",label:"pemprosesan berterusan"}}},VA={hero:{badge:"Pengesanan Pintar",title:"Penjejakan Kata Kunci",description:"Memantau secara automatik sebutan pesaing, sanggahan, dan topik penting. Jangan terlepas isyarat penting daripada perbualan pelanggan.",badges:["Penjejakan Kompetitif","Pengesanan Tindak Balas","Analisis Topik","kata kunci tersuai"]},features:{title:"Lacak maklumat kritikal",subtitle:"Pengesanan dan analisis automatik kata kunci daripada semua perbualan",items:[{title:"Pemantauan Persaingan",description:"Lacak sebutan pesaing untuk memahami bagaimana prospek membandingkan penyelesaian anda dengan alternatif di pasaran."},{title:"Pengesanan Tindak Balas",description:"Mengesan secara automatik bantahan dan kebimbangan biasa serta membangunkan tindak balas dan latihan yang berkesan."},{title:"kata kunci tersuai",description:"Takrifkan dan jejaki kata kunci dan frasa tersuai yang khusus untuk perniagaan, produk atau industri anda."},{title:"Analisis Tren",description:"Temui trend baharu daripada perbualan pelanggan dan sesuaikan strategi anda berdasarkan isyarat pasaran sebenar."},{title:"pengeluaran konteks",description:"Dapatkan konteks sebelum dan selepas kata kunci, bukan hanya sebutan semata-mata. Fahamilah bukan sahaja apa yang dikatakan, tetapi juga mengapa dan bagaimana ia dikatakan."},{title:"Carian Pintar",description:"Cari semua perbualan dengan segera untuk mengetahui dengan tepat di mana dan bila topik tertentu dibincangkan."}]},applications:{title:"Adegan Penggunaan",items:{competitive:{title:"Perisikan Persaingan",description:"Pemahaman mendalam tentang landskap persaingan:",points:["Lacak pesaing yang paling kerap disebut","Memahami bagaimana pelanggan prospektif membandingkan ciri-ciri dan harga","Kenal pasti kelebihan dan kelemahan anda dalam persaingan.","Mencipta bahan anti-persaingan yang berkesan"]},objections:{title:"tindak balas terhadap sanggahan",description:"Ubah sanggahan menjadi peluang:",points:["Kenal pasti kebimbangan pelanggan yang paling biasa","Analisis respons sanggahan para peforma teratas","Buku panduan dengan tindak balas yang terbukti.","Latih pasukan anda dengan penukaran yang berkesan"]},product:{title:"Pandangan Produk",description:"Mempromosikan pembangunan produk melalui maklum balas pelanggan:",points:["Kenal pasti ciri yang paling banyak diminta","Memahami cabaran terhadap fungsi semasa","Temui kes penggunaan yang tidak dijangka","Keutamakan peta jalan berdasarkan keperluan pelanggan"]},compliance:{title:"Pematuhan & Kualiti",description:"Pastikan pematuhan peraturan dan kualiti:",points:["Pantau pendedahan yang diperlukan dan bahasa undang-undang","Tandakan perbualan yang mungkin melanggar dasar","Lacak pematuhan skrip dan amalan terbaik","Jana laporan pematuhan untuk audit"]}}},advancedFeatures:{title:"Ciri Lanjutan",items:[{title:"pemulihan yang samar",description:"Mengesan secara automatik variasi kata kunci, sinonim, dan istilah berkaitan tanpa konfigurasi manual."},{title:"analisis sejarah",description:"Analisis trend kata kunci dari masa ke masa untuk mengenal pasti corak bermusim dan topik yang sedang muncul."},{title:"Amaran masa nyata",description:"Terima pemberitahuan segera apabila kata kunci penting disebut dalam perbualan langsung."}]}},FA={hero:{badges:["Perusahaan","LLM Tempatan","Pengoperasian pelayan dalaman"],title:"Pembinaan LLM di Tempat",description:"Mengendalikan LLM dalam persekitaran anda sendiri, dengan menyimpan data di luar syarikat."},mission:{title:"Rangkuman Perkhidmatan Pembinaan LLM di Lokasi",paragraphs:["Bagi syarikat yang tidak dapat mengeluarkan data sulit di luar syarikat, kami membina persekitaran LLM yang boleh dilaksanakan pada pelayan mereka sendiri atau di awan persendirian. Penyelesaian ini sesuai untuk organisasi yang memerlukan pengurusan maklumat yang ketat, seperti institusi kewangan, institusi perubatan, agensi kerajaan, dan institut penyelidikan, kerana ia tidak menggunakan sebarang API awam dan semua pemprosesan diselesaikan dalam infrastruktur yang diuruskan oleh pelanggan.","Kami menyediakan sokongan menyeluruh daripada pemilihan model, pembinaan pelayan, pe
243ngoptimuman enjin inferens, dan pemantauan operasi, menggunakan model open-weight yang boleh didapati secara komersial seperti Llama 3.3, Qwen 2.5, Mistral, dan DeepSeek dengan enjin inferens berprestasi tinggi seperti vLLM, Ollama, dan SGLang. Model-model ini dijalankan pada enjin inferens prestasi tinggi seperti vLLM, Ollama, dan SGLang untuk menyediakan persekitaran inferens berlatensi rendah dan berprestasi tinggi.","Kami menyokong pelbagai kes penggunaan seperti integrasi dengan sistem sedia ada, chatbot, RAG dalaman, penyusunan dokumen, dan penjanaan kod. Kami boleh mereka bentuk untuk memenuhi keperluan perusahaan, termasuk pengkhususan perniagaan melalui penalaan halus model, pengoptimuman NVIDIA GPU / Apple Silicon, reka bentuk berbilang penyewa, pembinaan gerbang API, dan banyak lagi."]},summary:{title:"Trend LLM di Lokasi",paragraphs:["Pada tahun 2025–2026, kegunaan LLM di premis semakin meningkat dengan pesat. Prestasi model berat terbuka telah menyamai model tertutup, dan bilangan model yang ditawarkan dengan lesen komersial telah mengurangkan dengan ketara halangan untuk operasi dalaman.","Model dengan parameter 8B hingga 70B telah mencapai tahap praktikal untuk banyak tugas perniagaan, kuantisasi GGUF membolehkan inferens berkelajuan tinggi walaupun pada GPU pengguna.","Untuk enjin inferens, Continuous Batching dan PagedAttention vLLM meningkatkan throughput dengan ketara, dan RadixAttention SGLang mempercepat interaksi kompleks berbilang pusingan. Ollama telah menjadi piawaian de facto untuk persekitaran pembangunan tempatan, dan llama.cpp dioptimumkan untuk Apple Silicon bagi inferens pantas pada Mac siri M.","Dalam penerimaan perusahaan, selain kedaulatan data dan pematuhan, pe
243ngoptimuman kos jangka panjang (beralih daripada pengebilan API bayar-sebagaimana-digunakan) semakin menjadi motivasi untuk penerimaan. Konfigurasi hibrid (lokal untuk pemprosesan sensitif dan API awan untuk pemprosesan tujuan umum) telah menjadi pilihan biasa."],icons:[{label:"Awan Persendirian"},{label:"Kedaulatan Data"},{label:"Pengoptimuman Kos"},{label:"Keselamatan Perusahaan"}]},features:{title:"Ciri reka bentuk dan pembangunan",subtitle:"Reka Bentuk & Pembangunan",items:[{title:"Reka bentuk infrastruktur dan pengoptimuman GPU",description:"Reka konfigurasi perkakasan optimum untuk beban kerja dan bajet anda, termasuk NVIDIA A100/H100, RTX 4090/5090, dan Apple Silicon (M2 Ultra/M3 Max/M4 Max), dan bina persekitaran inferens yang memanfaatkan sepenuhnya prestasi GPU melalui pengoptimuman CUDA, MPS, dan Metal. Pengoptimuman CUDA, MPS, dan Metal untuk memaksimumkan prestasi GPU."},{title:"Pemilihan dan pengoptimuman model",description:"Pilih model optimum daripada Llama, Qwen, Mistral, DeepSeek dan lain-lain dengan mengambil kira ciri tugas, keperluan bahasa, dan sekatan sumber. Kuantisasi (GGUF/AWQ/GPTQ), pengoptimuman cache KV, dan penalaan pemprosesan ber kelompok digunakan untuk mencapai ketepatan dan throughput."},{title:"Pembinaan enjin inferens",description:"Pilih dan bina enjin inferens seperti vLLM, SGLang, Ollama, TGI dan lain-lain mengikut aplikasi anda, dan terapkan teknologi terkini seperti Continuous Batching, Speculative Decoding dan Prefix Caching untuk menyediakan API inferens berlatensi rendah dan berprestasi tinggi. Kami menyediakan API inferens berlatensi rendah dan berprestasi tinggi."},{title:"Operasi, Pemantauan dan Keselamatan",description:"Melaksanakan pemantauan metrik inferensial dengan Prometheus/Grafana, kawalan akses dengan gerbang API, log audit, penskalaan automatik, dan pemulihan kegagalan. Membina persekitaran operasi pengeluaran yang memenuhi keperluan keselamatan perusahaan."}]},techStack:{title:"Susunan Teknologi: LLM di premis",subtitle:"Platform & Teknologi",categories:{openWeightModels:{title:"Model Berat Terbuka",items:["Llama 3.3 70B / 8B","Qwen 2.5 72B / 32B / 7B","Mistral Large / Nemo","DeepSeek V3 / R1","Gemma 2 27B / 9B","Phi-4","Perintah R (Cohere)"]},japaneseModels:{title:"Model khusus Jepun",items:["ELYZA-jepun-Llama-2","Telan 70B / 13B","Jepun-Llama-3","Qwen-2.5-Japanese","Karakuri-LM"]},inferenceEngine:{title:"Enjin inferens",items:["vLLM (Pengumpulan Berterusan)","SGLang (RadixAttention)","Ollama (pembangunan tempatan)","llama.cpp (Apple Silicon)","TGI (Hugging Face)","TensorRT-LLM (NVIDIA)","ExLlamaV2 (khusus kuantisasi)"]},quantization:{title:"Kuantizasi",items:["GGUF (piawaian llama.cpp)","AWQ (4-bit ketepatan tinggi)","GPTQ (Pengoptimuman GPU)","bitdanbait(8bit/4bit)","EETQ (Kuantisasi Kecekapan Berkesan)"]},hardware:{title:"Perangkat keras",items:["NVIDIA H100 / A100","NVIDIA L40S / A10G","RTX 4090 / 5090","Apple Silicon M2 Ultra","Apple Silicon M3/M4 Max","AMD MI300X"]}
243,infrastructure:{title:"Infrastruktur",items:["Docker / Kubernetes","Pelayan NVIDIA Triton","Gerbang API (Kong / Envoy)","Prometheus / Grafana","Awan Persendirian (VMware / OpenStack)","Sokongan Persekitaran Berjarak Udara"]}},updateNote:{title:"Titik-titik utama kemas kini untuk 2026",description:"Dalam model berat terbuka, Llama 3.3 mencapai prestasi gunaan umum kelas GPT-4 dan sangat meningkatkan prestasi bahasa Jepun; siri Qwen 2.5 memperluas pilihan dengan pelbagai saiz dan prestasi seimbang; DeepSeek V3/R1 menarik perhatian kerana prestasi kos inferensnya; dan enjin inferens vLLM 2.0 Chunked Prefill serta RadixAttention SGLang mempercepatkan dialog berbilang pusingan. Dalam enjin inferens, Chunked Prefill vLLM 2.0 dan RadixAttention SGLang mempercepatkan interaksi berbilang pusingan; pengoptimuman Apple Silicon untuk llama.cpp menjadikan inferens model 70B praktikal pada M4 Max; dan teknologi Kuantizasi menawarkan ketepatan 4-bit dan prestasi tinggi. Teknik kuantizasi mencapai kedua-dua ketepatan 4-bit dan kelajuan inferens, dan GGUF menjadi format piawaian de facto."}},cta:{title:"Hubungi Kami",description:"Kami boleh berunding dengan anda bermula daripada penyusunan keperluan. PoC dan konfigurasi LLM tempatan juga boleh dipertimbangkan.",primaryButton:"Hubungi Kami",secondaryButton:"Perundingan Teknikal"}},WA={hero:{badges:["Perusahaan","RAG","generasi sambungan carian"],title:"Pembangunan Vektor / RAG",description:"Bina sistem RAG untuk menghubungkan pengetahuan dalaman dengan LLM."},mission:{title:"Rangkuman Perkhidmatan Pembangunan Vector / RAG",paragraphs:["Kami akan membina sistem RAG (generasi sambungan carian) yang membolehkan pekerja mencari dan mengemukakan soalan dalam bahasa semula jadi dengan menghubungkan aset pengetahuan yang terkumpul di syarikat dengan LLM. Kami mengintegrasikan pelbagai sumber data seperti manual, minit mesyuarat, dokumen teknikal, soalan lazim, sejarah Slack, Confluence, SharePoint dan lain-lain untuk mewujudkan persekitaran di mana pengetahuan organisasi boleh digunakan serta-merta.","Kami memaksimumkan ketepatan carian dan kualiti respons dengan menerapkan teknologi terkini seperti Carian Hibrid (carian vektor + carian kata kunci), Reranking, pengagihan hierarki, penapisan metadata dan lain-lain, di samping carian dokumen ringkas. Kami dengan jelas menunjukkan sumber jawapan untuk mengurangkan halusinasi dan memastikan kebolehpercayaan.","Kami menyokong pelbagai persekitaran termasuk AWS, GCP, Azure, dan on-premise, serta mengintegrasikannya dengan infrastruktur pengesahan sedia ada dan pengurusan autoriti. Kami menyediakan sokongan konsisten untuk mengekalkan kesegaran data (kemas kini perbezaan dan penalaan semula automatik), menganalisis log penggunaan, dan sentiasa meningkatkan ketepatan."]},summary:{title:"Trend Teknologi RAG",paragraphs:['Antara tahun 2025 dan 2026, teknologi RAG sedang memasuki fasa "pelaksanaan asas ke kualiti pengeluaran". Selain carian vektor ringkas, Carian Hibrid yang menggabungkan pelbagai kaedah carian, Penyusunan Semula yang menyusun semula keputusan carian, dan Pemecahan Permintaan yang memecah dan memproses soalan kompleks telah menjadi konfigurasi standard.',"Strategi pengelompokan juga telah berkembang, dengan pengelompokan hierarki yang mengambil kira struktur dokumen, kelompok yang bertindih, dan pengelompokan multimodal yang memproses jadual dan figura secara berasingan, kesemuanya menyumbang kepada peningkatan ketepatan. Pemulihan Kontekstual (menambah maklumat kontekstual kepada kelompok) juga telah diiktiraf secara meluas sebagai berkesan.","Untuk pemilihan pangkalan data vektor, selain perkhidmatan terurus seperti Pinecone, Weaviate, Qdrant, dan Milvus, PostgreSQL pgvector dan FAISS tempatan menawarkan pelbagai pilihan untuk memenuhi keperluan anda. Model pemapan juga tersedia, termasuk text-Embedding-3-large, Cohere Embed v3, dan model pelbagai bahasa.",'Dalam penyebaran perusahaan, pautan pengurusan kebenaran (ACL), penyamaran PII, log audit, dan reka bentuk berbilang penyewa adalah keperluan penting, dan perlu beralih daripada "PoC berfungsi" kepada "sistem pengeluaran yang sedia untuk di
243hasilkan".'],icons:[{label:"Pencarian Hibrid"},{label:"RAG multimodal"},{label:"RAG Agensial"},{label:"Keselamatan Perusahaan"}]},features:{title:"Ciri reka bentuk dan pembangunan",subtitle:"Reka Bentuk & Pembangunan",items:[{title:"Saluran pengumpulan dan pemprosesan awal data",description:"Pengekstrakan dan pembersihan data daripada PDF, Word, Excel, HTML, Markdown, Slack, Confluence, SharePoint, dan lain-lain. Sokongan berbilang mod termasuk OCR, analisis struktur jadual, dan penjanaan kapsyen imej. Menjaga kesegaran dengan kemas kini berperbeza dan pelaksanaan terjadual."},{title:"Reka bentuk sistem carian berketepatan tinggi",description:"Membina carian berketepatan tinggi yang menggabungkan Carian Vektor + Carian Hibrid BM25, Reranking oleh Cohere Rerank / Cross-Encoder, serta Pengembangan dan Pemecahan Query. Penapisan metadata dan kawalan akses berasaskan kebenaran juga dilaksanakan."},{title:"Penghasilan respons dan kawalan kualiti",description:"Meningkatkan kualiti jawapan dengan pengoptimuman konteks, arahan Few-shot, dan inferens Chain-of-Thought. Penjelasan sumber, paparan skor keyakinan, dan pengesanan halusinasi telah dilaksanakan untuk memastikan kebolehpercayaan bagi kegunaan perniagaan."},{title:"Kitaran operasi dan penambahbaikan",description:"Kami menyediakan sokongan operasi termasuk analisis log penggunaan, pemantauan kadar kejayaan carian dan kepuasan tindak balas, penambahbaikan berterusan melalui gelung maklum balas, infrastruktur ujian A/B, penyepaduan kemas kini model, dan semakan strategi pembahagian kepada bahagian-bahagian."}]},techStack:{title:"Susunan teknologi: Vektor / RAG",subtitle:"Platform & Teknologi",categories:{embeddingModels:{title:"Penyisipan Model",items:["OpenAI text-embedding-3-large","Cohere Embed v3","Pelayaran AI","Jina Embeddings v3","BGE-M3 (pelbagai bahasa)","pelbagai-bahasa-e5-besar","Model khusus Jepun"]},vectorDatabases:{title:"Pangkalan Data Vektor",items:["Pinecone (Dikelola)","Weaviate (Pencarian Hibrid)","Qdrant (prestasi tinggi)","Milvus (skala besar)","Chroma (ringan)","PostgreSQL pgvector","FAISS (lokal)"]},chunking:{title:"Pengagihan & Pemprosesan",items:["pembahagian berperingkat","Pengelompokan Semantik","Kepingan yang bertindih","Tetingkap Ayat","Pemulihan Kontekstual","Pemprosesan jadual dan carta","Sokongan multimodal"]},search:{title:"Pencarian & Pengambilan",items:["Pencarian Hibrid (Vektor + BM25)","Cohere Rerank","Penarafan Semula Pengkod Salib","Pengembangan dan dekomposisi pertanyaan","HyDE (Pengenerasian Dokumen Hipotesis)","Pemulihan Semula Soalan Diri","Pemulihan Pelbagai Permintaan"]}},updateNote:{title:"Titik-titik utama kemas kini untuk 2026",description:"Dalam model Embedding, text-Embedding-3-large dan Cohere Embed v3 menjadi piawaian perusahaan, dan prestasi bahasa Jepun bertambah baik dengan ketara; Contextual Retrieval terbukti berkesan, dan menambah konteks pada ketulan menjadi kaedah piawai. Carian Hibrid + Reranking telah menjadi konfigurasi wajib untuk carian, mengurangkan bilangan konfigurasi carian vektor ringkas sahaja, dan Agentic RAG (agensi memilih strategi carian secara dinamik) sedang digunakan secara praktikal. Dari segi operasi, penekanan diberikan kepada penubuhan kitaran pengukuran kualiti dan penambahbaikan menggunakan rangka kerja penilaian RAG (RAGAS, LangSmith)."}},cta:{title:"Hubungi Kami",description:"Kami boleh berunding dengan anda bermula daripada penyusunan keperluan. PoC dan konfigurasi LLM tempatan juga boleh dipertimbangkan.",primaryButton:"Hubungi Kami",secondaryButton:"Perundingan Teknikal"}}
243,qA={hero:{badges:["Susunan Penuh","Integrasi LLM","Reka Bentuk API"],title:"Pembangunan Aplikasi AI",description:"Reka dan bina aplikasi praktikal yang memanfaatkan LLM."},mission:{title:"Rangkuman Perkhidmatan Pembangunan Aplikasi AI",paragraphs:["Kami menyediakan reka bentuk dan pembangunan aplikasi AI yang mencipta nilai perniagaan dengan menganalisis data yang diperoleh daripada API luaran menggunakan LLM, menghubungkan API dengan pelbagai sumber data seperti CRM, ERP, SaaS, sensor IoT, dan media sosial, serta memasukkan data yang diperoleh ke dalam LLM secara masa nyata. Kami membolehkan analisis data lanjutan yang tidak dapat dicapai dengan alat BI konvensional, seperti penjanaan laporan analitik menggunakan bahasa semula jadi, pengesanan anomali, ramalan trend, dan pengelasan automatik.","Bukan sekadar integrasi API ringkas, tetapi juga integrasi pelbagai sumber data, pembersihan data, dan penukaran kepada format yang mudah untuk LLM tafsirkan melalui pemprosesan berstruktur. Kejuruteraan prompt memaksimumkan ketepatan analisis dan menghasilkan keluaran yang khusus untuk keperluan perniagaan. Kami membina aplikasi praktikal yang menggabungkan data dan AI, seperti data jualan untuk meramalkan rundingan perniagaan, log sokongan pelanggan untuk menjalankan analisis VoC, dan data sensor untuk memberikan cadangan penyelenggaraan peralatan.","Kami menyokong pelbagai antara muka seperti aplikasi web, aplikasi mudah alih, integrasi Slack/Teams, dan pemprosesan kelompok berkala. Kami menyediakan sokongan berterusan dari penentuan keperluan hingga reka bentuk API, pelaksanaan integrasi LLM, dan operasi pengeluaran."]},summary:{title:"Tren dalam Pembangunan Aplikasi AI",paragraphs:['Dari 2025 hingga 2026, pembangunan aplikasi AI memasuki fasa praktikal berasaskan "integrasi API x analisis LLM". Analisis data tidak berstruktur dan penjanaan wawasan bahasa semula jadi, yang tidak dapat diuruskan oleh alat BI dan papan pemuka tradisional, mula dimasukkan ke dalam sistem perusahaan.',"Yang perlu diberi perhatian khusus ialah kematangan fungsi Output Berstruktur LLM, yang membolehkan kawalan output yang ketat selaras dengan skema JSON, menjayakan saluran automatik hujung ke hujung, di mana data yang diperoleh melalui API dianalisis oleh LLM dan hasilnya dihantar terus ke sistem seterusnya. Pelaksanaan berbilang peringkat Pemanggilan Fungsi membolehkan pengumpulan data, integrasi, dan analisis merentas pelbagai API dikendalikan dalam satu aliran kerja.","Dalam infrastruktur pemprosesan data, Polars telah muncul sebagai piawaian untuk pemprosesan berkelajuan tinggi, dan apabila digabungkan dengan pemprosesan penstriman, ia memudahkan analisis masa nyata.","Dalam pelaksanaan korporat, keperluan telah beralih daripada pembangunan bukti konsep sekali sahaja kepada reka bentuk berskala untuk operasi pengeluaran, yang memerlukan reka bentuk seni bina menyeluruh yang merangkumi pengoptimuman kos, pengendalian ralat, dan sokongan log audit."],icons:[{label:"AI Agensial"},{label:"Protokol MCP"},{label:"Multi ejen"},{label:"Manusia-dalam-Gelung"}]},features:{title:"Ciri reka bentuk dan pembangunan",subtitle:"Reka Bentuk & Pembangunan",items:[{title:"Reka bentuk integrasi API dan pengumpulan data",description:"Bina infrastruktur pengumpulan data yang menyokong pelbagai protokol seperti REST API, GraphQL, WebSocket, dan Webhook. Kami mereka bentuk saluran pemerolehan data yang stabil dengan melaksanakan proses pengesahan (OAuth, kunci API, JWT), had kadar, dan mekanisme percubaan semula. Kami juga menyokong integrasi data, penjadualan, dan pemerolehan perbezaan daripada pelbagai API."},{title:"Pemprosesan dan penyusunan data",description:"Menukar data mentah ke dalam format yang boleh dianalisis dengan cekap oleh LLM, termasuk pemarseman JSON, pembersihan data, penormalan, dan pemprosesan nilai yang hilang, serta melaksanakan segmentasi dan pengringkasan data yang optimum dengan mengambil kira sekatan tetingkap konteks. Penugasan metadata memastikan kebolehjejakan keputusan analisis."},{title:"Analisis LLM dan reka bentuk arahan",description:"Maksimumkan ketepatan analisis data de
243ngan mereka bentuk templat arahan khusus mengikut keperluan perniagaan anda. Kami membina saluran analisis untuk pengelasan, penyusunan ringkasan, analisis sentimen, pengesanan anomali, penjanaan ramalan, dan lain-lain. Kami menggunakan Panggilan Fungsi dan Output Berstruktur untuk menjana hasil dalam format yang mudah disepadukan dengan sistem seterusnya."},{title:"Pelaksanaan dan operasi aplikasi",description:"Kami menyediakan keputusan analisis melalui pelbagai antara muka, termasuk FastAPI, aplikasi web menggunakan Next.js, Bot Slack/Teams, dan pelaksanaan pukal terjadual. Paparan pemantauan, amaran pemberitahuan, dan penjanaan laporan automatik dilaksanakan dan disampaikan dalam bentuk yang boleh digunakan serta-merta oleh pengguna perniagaan. Kami juga menyediakan pemantauan operasi, pengoptimuman kos, dan penambahbaikan berterusan."}]},techStack:{title:"Susunan Teknologi: Pembangunan Aplikasi AI",subtitle:"Platform & Teknologi",categories:{apiIntegration:{title:"Integrasi API",items:["REST / GraphQL / WebSocket","OAuth 2.1 / API key / JWT","Webhook / Pengecaman","Apache Airflow / Prefect","Seleri / Temporal","permintaan / httpx / aiohttp","Had Kelajuan / Cuba Semula","Pengesahan Data (Pydantic)"]},dataProcessing:{title:"Pemprosesan Data",items:["Beruang / Kutub","Parser JSON / JSONL","Saluran Pemurnian Data","Apache Spark (Pemprosesan berskala besar)","dbt (penukaran data)","Harapan Yang Besar","Tasik Delta / Gunung ais","Streaming (Kafka / Flink)"]},llmCloud:{title:"LLM Awan",items:["OpenAI GPT-4o / GPT-4.1","Claude 3.5 / Claude 4","Gemini 2.0 / Gemini 2.5","Perintah R+ (Cohere)","Mistral Large"]},llmLocal:{title:"LLM Tempatan",items:["Llama 3.3 / Llama 4","Mistral / Mixtral","Qwen 2.5 / Qwen 3","DeepSeek V3 / R1","Gemma 2 / Gemma 3","Phi-4","ELYZA / Swallow (khusus dalam bahasa Jepun)","Perintah R (Cohere)"]},inference:{title:"Inferens / Kerangka",items:["vLLM / SGLang","Ollama / llama.cpp","LiteLLM Proksi","Panggilan Fungsi","Keluaran Berstruktur","Enjin Templat Prompt","LangChain / LlamaIndex","Saluran Paip Analisis Milik Perusahaan"]},application:{title:"Lapisan Aplikasi",items:["FastAPI / Litestar","Next.js / React","Slack SDK / Teams SDK","Streamlit / Gradio","Tugas Jadual (Cron / Cloud Scheduler)","PostgreSQL / MongoDB","Redis (Cache / Queue)","Docker / Kubernetes"]}},updateNote:{title:"Titik-titik utama kemas kini untuk 2026",description:"Dalam bidang analisis LLM, fungsi Output Berstruktur GPT-4.1 dan Claude 4 telah matang untuk menstandardkan kawalan output yang ketat selaras dengan Skema JSON, dan pelaksanaan berbilang peringkat Panggilan Fungsi membolehkan pengumpulan dan analisis data kompleks merentas pelbagai API dalam satu saluran. Pelaksanaan berbilang peringkat Panggilan Fungsi membolehkan pengumpulan dan analisis data kompleks merentas pelbagai API dalam satu saluran. Dalam pemprosesan data, Polars telah menjadi alternatif yang mantap kepada Pandas untuk pemprosesan berkelajuan tinggi, dan digabungkan dengan pemprosesan penstriman, ia memudahkan pembinaan infrastruktur analisis masa nyata. Pada lapisan aplikasi, integrasi alat luaran menggunakan MCP telah menjadi perkara biasa, mempercepat pembangunan aplikasi agenik di mana LLM memanggil API secara autonomi untuk memperoleh dan menganalisis data."}},cta:{title:"Hubungi Kami",description:"Kami boleh berunding dengan anda bermula daripada penyusunan keperluan. PoC dan konfigurasi LLM tempatan juga boleh dipertimbangkan.",primaryButton:"Hubungi Kami",secondaryButton:"Perundingan Teknikal"}},UA={seo:vA,header:AA,hero:xA,mission:LA,businessServices:PA,features:wA,businessProcess:SA,story:IA,contact:MA,footer:jA,cookiePolicy:CA,about:DA,portfolio:zA,common:TA,privacyPolicy:EA,termsOfService:RA,weatherMap:NA,agentDevelopment:GA,faq:OA,pricing:BA,aiTranscription:KA,keywordTracking:VA,onPremiseLLM:FA,vectorRAG:WA,aiAppDevelopment:qA},_A={home:{title:"Platform Solusi Berbasis Kecerdasan Buatan - telet.ai",description:"Transformasikan percakapan pelanggan Anda dengan analitik panggilan yang didukung oleh kecerdasan buatan (AI). Dapatkan wawasan real-time, analisis sentimen, dan pelacakan kinerja untu
243k meningkatkan hasil tim Anda."},about:{title:"Informasi Organisasi - telet.ai",description:"Learn about telet.ai's mission to transform customer conversations with AI. Meet our team and explore our journey."},privacy:{title:"Kebijakan Privasi - telet.ai",description:"Review telet.ai's privacy policy to understand how we handle your data and protect your privacy."},terms:{title:"Syarat dan Ketentuan - telet.ai",description:"Read telet.ai's terms of service for using this website and contacting us for consultations."},cookies:{title:"Kebijakan Cookie - telet.ai",description:"Learn how telet.ai uses cookies and similar technologies (Cloudflare and Google Analytics)."},portfolio:{title:"Portofolio - telet.ai",description:"Jelajahi portofolio solusi kecerdasan buatan (AI) kami yang dirancang untuk meningkatkan operasional bisnis dan pengalaman pelanggan Anda."},agentDevelopment:{title:"Desain dan Pengembangan Agen Kecerdasan Buatan (AI) untuk Perusahaan - telet.ai",description:"Desain dan bangun agen AI berkualitas produksi yang disesuaikan dengan alur kerja, alat, dan kebutuhan kepatuhan Anda."},onPremiseLLM:{title:"Operasi LLM di Lokasi - telet.ai",description:"Jalankan model bahasa besar (LLM) modern di lingkungan Anda untuk kontrol data yang kuat, biaya yang dapat diprediksi, dan inferensi dengan latensi rendah."},vectorRAG:{title:"Desain Vektor RAG & Indeks - telet.ai",description:"Desain alur kerja dan indeks yang disesuaikan dengan setiap alur kerja untuk meningkatkan jawaban yang didukung data."},aiAppDevelopment:{title:"Pengembangan Aplikasi Kecerdasan Buatan - telet.ai",description:"Bangun aplikasi praktis yang didukung oleh LLMs—terintegrasi dengan API, data, dan alur kerja bisnis Anda."}},HA={brand:"telet.ai",nav:{services:"Layanan",portfolio:"Portofolio",about:"Informasi Organisasi",contact:"Kontak"}},$A={brandName:"telet.ai",tagline:"Komunikasi multi AI",badge:"Kecerdasan Panggilan Bertenaga AI",title:{line1:"Lokal dan defensif,",line2:"Perluas di awan,",line3:"Otomatis oleh agen."},description:"Edge inference dalam SLM memastikan kedaulatan data, dan integrasi cloud dalam LLM meningkatkan daya pemrosesan hingga tak terbatas; adopsi arsitektur Agentic AI mulai menunjukkan hasil dari perusahaan-perusahaan terkemuka."},QA={badge:"Misi Kami",title:"Membuat LLM lebih mudah diakses",paragraphs:['Apakah Anda benar-benar bisa melangkah sejauh ini?" --Kejutan itulah yang menjadi tujuan kami.','Potensi pemodelan bahasa berskala besar (LLM) terus berkembang setiap hari. Namun, kami ingin mend
243obrak hambatan seperti "Saya khawatir tentang pengiriman data rahasia ke API eksternal," "Aplikasi AI tingkat lanjut hanya untuk perusahaan besar," dan "Biaya implementasi tidak sepadan.',"Kami mengkhususkan diri dalam membangun LLM lokal yang diselesaikan di lingkungan Anda. Informasi pelanggan yang sangat sensitif dapat digunakan dengan aman tanpa terekspos ke dunia luar. Kami dapat memaksimalkan manfaat AI sekaligus memastikan keamanan data.","Sistem ini menangani segala sesuatu mulai dari pembuatan dokumen rutin dan organisasi data hingga analisis khusus dan dukungan keputusan. Teknologi agen milik kami memberikan akurasi yang sebanding dengan model API.",'LLM tidak menggantikan manusia. Ini adalah alat yang ampuh yang memungkinkan orang untuk menggunakan lebih banyak kreativitas, penilaian, dan keahlian. Kami membawa teknologi dari hal yang istimewa menjadi hal yang biasa - sebuah "konsumerisasi" yang sesungguhnya dari teknologi.','Jangan ragu untuk berkonsultasi dengan kami. Kami akan bekerja sama dengan Anda untu
243k mencari tahu "Apa yang bisa kami lakukan?" bersama Anda.'],animation:{label:"LLM",sublabel:"Teknologi"}},JA={title:"Layanan",subtitle:"Layanan Bisnis",services:[{title:"Desain dan Pengembangan Agen AI untuk Perusahaan",titleEn:"Agen AI Perusahaan",description:"Merancang dan mengembangkan agen AI yang dioptimalkan untuk kebutuhan bisnis, aturan internal, dan cakupan data. Dukungan dari LLM tipe API eksternal ke LLM lokal.",badges:["Desain Individu","Kompatibel dengan LLM","spesialisasi bisnis"],link:"Detail."},{title:"server LLM sesuai janji",titleEn:"Server LLM Di Lokasi",description:"Menjalankan LLM skala 7B hingga 120B dalam server khusus perusahaan. Menyediakan lingkungan penggunaan LLM yang aman dan fleksibel, menghindari risiko transmisi data eksternal.",badges:["Didukung 7B-120B","KUNCI API diterbitkan","Desain Keselamatan"],link:"Detail."},{title:"RAG vektor dan desain indeks",titleEn:"Arsitektur Vektor RAG",description:"Pisahkan dan optimalkan data RAG berdasarkan konten bisnis dan logika analisis. Desain indeks untuk pencarian yang cepat dan akurat.",badges:["Pemisahan Indeks","Pencarian kecepatan tinggi","dukungan multibahasa"],link:"Detail."},{title:"Pengembangan Aplikasi AI",titleEn:"Pengembangan Aplikasi AI",description:"Mengembangkan aplikasi AI praktis dengan analisis dan pembangkitan oleh LLM sebagai intinya, memanfaatkan API yang ada dan data eksternal.",badges:["Tautan API","Analisis LLM","Desain Terpadu"],link:"Detail."}]},ZA={title:"Proyek-proyek pencapaian yang menggunakan teknologi AI",subtitle:"Pengalaman pengembangan AI di berbagai bidang, termasuk asisten multibahasa, prakiraan cuaca, LLM lokal, dan pemantauan keamanan.",viewDetails:"Lihat detail →.",items:[{title:"Asisten Multibahasa AI",description:"Asisten obrolan multibahasa oleh RAG + LLM. Tanggapan yang sangat akurat terhadap pertanyaan dalam berbagai bahasa termasuk bahasa Jepang, Inggris, dan Mandarin."},{title:"Sistem Prakiraan Cuaca",description:"Mempelajari data cuaca dan menghasilkan prakiraan waktu nyata. Prakiraan yang sangat akurat dihasilkan dengan menggunakan pengenalan pola deret waktu dan RAG untuk mencari pola yang serupa di masa lalu."},{title:"Server Internal / On-Prem Local LLM",description:"Kami memberikan AI yang disesuaikan dengan operasi bisnis Anda, siap digunakan di dalam perusahaan Anda, dengan Open WebUI sebagai titik masuk umum, jalur inferensi cepat dengan Ollama/MLX, dan domain data yang sepenuhnya terpisah untuk setiap UID. Dokumen internal ditangkap dalam RAG dengan penyematan bahasa Inggris dan terjemahan kueri bahasa Jepang otomatis, dan keterampilan bisnis seperti ringkasan berita, organisasi dokumen, dan tugas rutin dijalankan dengan aman secara berdampingan. Sistem eksekusi keterampilan diisolasi sebagai wadah OpenClaw dan dilindungi oleh tiga lapisan Cloudflare edge dan Nginx lokal. Kami menyediakan dukungan komprehensif untuk pemilihan model, desain keterampilan, dan kebijakan operasional, dan memulai AI khusus perusahaan Anda dalam bentuk yang dapat digunakan sejak hari pertama digunakan."},{title:"Prediksi Kedatangan Orbit Antarplanet (AI)",description:"Mendapatkan data planet dari API NASA dan menginterpretasikan perhitungan orbit di LLM. Menghasilkan laporan tentang jendela peluncuran, waktu yang diperlukan, dan efisiensi bahan bakar."},{title:"Analisis AI Data Real Estat",description:"Kumpulkan informasi real estat dengan web scraping dan analisis dengan LLM + Python. Pembuatan tren harga, prakiraan pasar, dan laba atas investasi secara otomatis."},{title:"AI Peramal (Empat Pilar Peramal)",description:"Mereproduksi logika Empat Pilar Takdir dalam bahasa Python dan menginterpretasikannya dengan LLM. Dapatkan koordinat dan waktu dari API Astronomi untuk penilaian keberuntungan dan kecocokan yang dipersonalisasi."},{title:"Google Workspace AI integration",description:"Integrasi LLM dengan Gmail, Drive, Kalender, dll. AI membantu dengan ringkasan email, pencarian file, dan penjadwalan."},{title:"BERITA DUNIA Multibahasa",description:"Koleksi berita dunia secara real-time, diterjemahkan dan dirangkum dalam berbagai bahasa oleh LLM. Terjemah
243an dan ringkasan yang dibuat secara alami berdasarkan pemahaman kontekstual."},{title:"Manajer AI Pemantauan Log Keamanan",description:"Pemantauan log keamanan secara real-time, deteksi dan analisis ancaman oleh LLM, dan peringatan langsung dengan mencocokkan dengan pola serangan sebelumnya oleh RAG."}]},XA={title:"Cara melanjutkan proyek",headline:"Yang Anda perlukan hanyalah sebuah visi.",paragraphs:['Sudah lewatlah sudah hari-hari ketika perbedaan bahasa menjadi penghalang dalam bisnis, dan meskipun kami menggunakan penerjemahan AI, kami dapat menangani negosiasi dan pengembangan bisnis dalam 14 bahasa melalui alur kerja unik kami yang memanfaatkan sepenuhnya berbagi gambar. Bahkan spesifikasi yang rumit pun dapat diperiksa dengan contoh gambar untuk menghindari miskomunikasi. Satu-satunya hal yang penting adalah "apa yang ingin Anda buat.',"Proyek ini dimulai dengan audiensi awal dalam aplikasi bisnis. Setelah berbagi visi dan pemahaman umum tentang masalah yang dihadapi klien, NDA (Non-Disclosure Agreement) ditandatangani. Setelah menciptakan lingkungan di mana informasi rahasia dapat didiskusikan secara rahasia, kami melakukan wawancara terperinci dan mengonfirmasi persyaratan. Berdasarkan konten, kami menyiapkan proposal dan mengkonfirmasi arah proyek dengan menggunakan contoh gambar. Dengan pemahaman yang ada, kami menyiapkan spesifikasi dan memulai pengembangan.","Alur ini hanya merupakan pengantar umum. Kami akan secara fleksibel beradaptasi dengan situasi dan jadwal Anda. Di mana pun Anda berada di dunia, meskipun Anda tidak berbicara dalam bahasa yang sama, gambar dan AI akan mendukung komunikasi Anda. Mengapa Anda tidak bergabung dengan kami untuk memasuki pasar perbatasan yang belum pernah dijamah oleh siapa pun? Biarkan telet.ai menjadi mitra Anda untuk mewujudkan ide-ide Anda."],cards:[{title:"Sidang / NDA",description:"Setelah pemeriksaan awal melalui email, perjanjian kerahasiaan ditandatangani. Anda dapat memberikan detail kepada kami dengan tenang."},{title:"Perencanaan & CA",description:"Proposal dan contoh gambar disediakan. Tersedia 14 bahasa yang didukung, sehingga Anda dapat melanjutkan tanpa hambatan bahasa."},{title:"Pengambilan Sampel & Mulai",description:"Kami akan menyiapkan spesifikasi dan memulai bisnis setelah ada kesepakatan."},{title:"Pengembangan, pengujian, dan pengoperasian",description:"Implementasi yang cepat melalui pengembangan yang gesit. Kami memberikan dukungan yang konsisten dari pengujian hingga dukungan operasional."}]},YA={badge:"Studi Kasus",title:"Kisah Pengenalan AI",items:[{title:"Solusi Efisiensi Bisnis dan Pengurangan Biaya",subtitle:"Kurangi beban kerja harian dan ciptakan lingkungan yang memungkinkan Anda untu
243k fokus pada bisnis inti Anda.",description:'Banyak usaha kecil dan menengah (UKM) menghadapi kekurangan tenaga kerja dan kesulitan perekrutan. Bahkan ketika personil baru dipekerjakan, biaya pelatihan tinggi dan ada masalah dengan tingkat retensi. Solusi AI kami mendukung tugas-tugas harian seperti mengotomatiskan manajemen anggaran, entri dan pengaturan data, pengambilan dokumen internal, dan pembuatan laporan dan dokumen secara otomatis. Asisten AI menangani tugas-tugas rutin yang biasanya menghabiskan banyak waktu, 24 jam sehari, 365 hari setahun, tanpa kesalahan. Perusahaan yang telah memperkenalkan AI telah menyadari pengurangan jam kerja yang signifikan. Dari "meningkatkan sumber daya manusia" menjadi "berkolaborasi dengan AI. Kami akan melakukan yang terbaik untuk mendukung reformasi gaya kerja perusahaan Anda.'},{title:"Otomatisasi Dukungan Pelanggan",subtitle:"Layanan 24 jam meningkatkan kepuasan pelanggan dan mengurangi biaya tenaga kerja.",description:"Chatbot AI memberikan respons otomatis untuk pertanyaan yang sering diajukan, respons utama dan penyortiran pertanyaan, serta respons waktu nyata dalam berbagai bahasa. Tanggapan waktu nyata dalam berbagai bahasa. Operator manusia dapat fokus pada kasus-kasus yang kompleks dan meningkatkan kualitas layanan pelanggan. Tingkatkan kualitas layanan Anda ke level berikutnya dengan dukungan pelanggan AI."},{title:"AI Pemanfaatan Pengetahuan dan Dokumen",subtitle:"Aset pengetahuan internal dalam bentuk yang dapat segera dimanfaatkan oleh siapa saja",description:'Di mana buku panduan itu?" Ada informasi yang hanya diketahui oleh pendahulunya" - pengetahuan yang tidak personal menghambat pertumbuhan perusahaan. Teknologi RAG (search extension generation) kami memungkinkan Anda untu
243k mengambil informasi yang diperlukan dari manual internal, FAQ, dan dokumen terdahulu hanya dengan mengajukan pertanyaan dalam bahasa alami. Teknologi ini menyederhanakan pelatihan karyawan baru, mendigitalkan pengetahuan tacit dari para veteran, dan memungkinkan berbagi pengetahuan antar departemen. Dokumen yang sudah ada dapat digunakan sebagaimana adanya, sehingga tidak perlu membuat dokumen baru.'},{title:"AI analisis gambar untuk perawatan medis dan keperawatan",subtitle:"Mata yang waspada, dukungan 24 jam oleh AI",description:"Dalam bidang perawatan medis dan keperawatan, penting untuk mengawasi sejumlah besar pasien dan pengguna dengan staf yang terbatas. AI analisis gambar/video kami mendeteksi ketidaknormalan secara real time dari gambar kamera. Secara otomatis mendeteksi penyakit menular dengan mendeteksi demam, memberi tahu segera jika pasien jatuh atau mengembara, dan mendeteksi perubahan kondisi fisik dengan menganalisis ekspresi wajah. Dengan mengurangi beban patroli malam hari, merespons keadaan darurat dengan cepat, dan mengotomatiskan tugas pencatatan, staf dapat fokus pada tugas perawatan utama mereka. Instalasi di tempat juga tersedia untuk memastikan privasi."}]},ex={title:"Hubungi Kami",description:"Kami dapat berkonsultasi dengan Anda mulai dari tahap perencanaan kebutuhan, dan juga dapat mempertimbangkan konfigurasi PoC dan LLM lokal.",openForm:"Formulir Terbuka",closeForm:"Tutup formulir",form:{name:"Nama Anda",namePlaceholder:"Taro Yamada",email:"Alamat email",emailPlaceholder:"[email protected]",subject:"subjek",subjectPlaceholder:"Perihal pertanyaan Anda",message:"Pesan",messagePlaceholder:"Silakan isi pertanyaan Anda",required:"*",submit:"Kirim",submitting:"Mengirim...",turnstileMessage:'Otorisasi "Saya bukan robot" diperlukan untuk pengiriman.',turnstileError:"Gagal memuat otorisasi keamanan. Silakan muat ulang.",errorRetry:"Silakan coba lagi."}},ax={brand:"telet.ai",tagline:"Komunikasi multi AI",description:"Inovasikan bisnis Anda dengan agen AI. Ciptakan nilai dari dialog.",sections:{product:{title:"Produk",features:"Fitur",benefits:"pengantar",testimonials:"Testimoni Pelanggan"},services:{title:"Layanan",agentDev:"Desain dan Pengembangan Agen AI untuk Perusahaan",onPremise:"server LLM sesuai janji",vectorRag:"RAG vektor dan desain indeks",aiApp:"Pengembangan Aplikasi AI"},company:{title:"Informasi Organisasi",about:"Tentang telet.ai",profile:"Profil Perwakilan",contact:"Hubungi Kami"},process:{title:"Bagaimana kami menjalankan bisnis",hearing:"Sidang / NDA",planning:"Perencanaan & CA",sampling:"Pengambilan Sampel & Mulai",development:"Pengembangan, pengujian, dan pengoperasian"}},copyright:"© 2026 telet.ai. Semua hak cipta dilindungi undang-undang.",legal:{privacy:"Kebijakan Privasi",terms:"Ketentuan Penggunaan",cookies:"Kebijakan Cookie"}},nx={title:"Kebijakan Cookie",subtitle:"Bagian ini menjelaskan tentang cookie dan teknologi lain (Cloudflare / Google Analytics) yang digunakan di situs ini.",lastUpdated:"Pembaruan terakhir: 22 Januari 2026",intro:'telet.ai ("kami", "kita", "milik kita") ("Kami") dapat menggunakan cookie dan teknologi serupa untuk menyediakan dan meningkatkan Situs ini dan memastikan keamanannya. Kami tidak mengatur cookie pelacakan khusus kami sendiri untuk tujuan periklanan (meskipun Cloudflare dan Google Analytics dapat mengatur cookie atau teknologi serupa sesuai dengan spesifikasi layanan masing-masing).',sections:{what:{title:"1. Apa yang dimaksud dengan cookie?",description:"Cookie adalah file teks kecil yang disimpan di browser Anda saat Anda mengunjungi situs web."},howWeUse:{title:"Tujuan penggunaan cookie kami, dll.",description:"Kami dapat menggunakan cookie, dll. terutama untuk tujuan berikut",items:["Untuk menstabilkan tampilan dan pengoperasian situs","Untuk mendeteksi dan mencegah akses yang tidak sah dan lalu lintas berbahaya","Untuk memahami status akses dan membantu meningkatkan situs"]},googleAnalytics:{title:"3. Penggunaan Google Analytics",description:"Kami menggunakan Google Analytics 4 (GA4) yang disediakan oleh Google LLC untuk analisis akses.",items:["Informasi yang dikumpulkan dapat mencakup halaman yang dilihat, waktu yang dihabiskan, sumber rujukan, informasi perangkat dan browser, dll.","Kami tidak menggunakan informasi yang dapat diidentifikasi secara langsung (nama, alamat email, dll.) untuk tujuan mengirimkannya ke Google Analytics.","Perlakuan data oleh Google tunduk pada persyaratan dan kebijakan Google"]},cloudflare:{title:"4. Penggunaan Cloudflare",description:"Kami menggunakan layanan dari Cloudflare, Inc. untuk pengiriman dan langkah-langkah keamanan Situs ini. Cloudflare dapat mengatur dan merujuk pada cookie, dll. untuk tujuan seperti perlindungan DDoS dan pencegahan bot.",items:["Tujuan utamanya adalah untu
243k keamanan dan pengoptimalan komunikasi, dan tidak dimaksudkan untuk dilacak untuk penayangan iklan","Perlakuan Cloudflare terhadap data tunduk pada ketentuan dan kebijakan Cloudflare"]},noSpecialCookies:{title:"5. Kue-kue spesial kami sendiri",description:"Kami tidak menetapkan cookie khusus kami sendiri untuk tujuan iklan penargetan perilaku, dll. Penggunaan cookie, dll. terutama terbatas pada ruang lingkup operasi situs, keamanan, dan analisis akses."},choices:{title:"6. Manajemen cookie (memilih keluar)",description:"Jika cookie dinonaktifkan, beberapa fungsi mungkin tidak tersedia.",items:["Cookie dapat dihapus atau dinonaktifkan di pengaturan browser","Jika Anda ingin menonaktifkan pengukuran oleh Google Analytics, silakan gunakan metode penyisihan yang disediakan oleh Google","Penggunaan mode privat browser, dll., dapat membatasi informasi yang disimpan."]},changes:{title:"7. perubahan terhadap kebijakan ini",description:"Kami dapat merevisi kebijakan ini sebagai tanggapan atas perubahan peraturan perundang-undangan atau perubahan layanan yang digunakan. Kebijakan yang direvisi akan berlaku efektif ketika diposting di halaman ini."},contact:{title:"8. hubungi kami",description:"Jika Anda memiliki pertanyaan mengenai kebijakan ini, silakan hubungi kami di",company:"telet.ai",contactLink:"Buka Formulir Pertanyaan"}}},tx={hero:{title:"Tentang telet.ai",subtitle:"Dukungan pengembangan AI yang cermat yang hanya dapat diberikan oleh tim kecil yang dipersonalisasi."},story:{title:"Tentang kami",content:"telet.ai dimulai dengan sebuah pertanyaan. Mengapa begitu banyak perusahaan gagal memanfaatkan wawasan yang ada dalam interaksi yang tak terhitung jumlahnya antara perusahaan dan pelanggan mereka? Tim yang dikepalai oleh seorang perwakilan yang berpengalaman dalam penelitian AI dan pengembangan perangkat lunak perusahaan, didirikan untuk mengatasi masalah ini secara langsung. Kami bukanlah organisasi yang besar. Itulah sebabnya kami mampu menghadapi tantangan Anda secara mendalam dan hanya mengusulkan solusi yang benar-benar diperlukan. Kekuatan kami adalah kemampuan kami untuk merancang arsitektur hibrida yang mengintegrasikan LLM lokal dan LLM cloud. Kami dapat melindungi data sensitif perusahaan Anda di lingkungan cloud khusus sambil melakukan inferensi AI tingkat lanjut dengan cara yang terukur. Kami menyediakan CLI untuk pengembang dan UI obrolan untuk staf garis depan, menciptakan fondasi untuk penggunaan AI di seluruh organisasi Anda. Dan kami fokus untuk menjadi solusi yang optimal, bukan yang paling canggih. Membuang fungsi sesuai dengan anggaran dan meninjau hanya satu konfigurasi dapat membuat perbedaan besar dalam biaya. Kami memberikan apa yang Anda butuhkan, dalam jumlah yang Anda butuhkan. Dukungan pengembangan AI kami yang penuh perhatian hanya mungkin dilakukan karena kami adalah perusahaan kecil dan personal. Untuk mengatasi kekurangan tenaga kerja dan mendukung pertumbuhan perusahaan Anda. Itulah janji telet.ai."},representative:{title:"Perwakilan dari telet.ai labo",name:"Keita Okuizumi",tagline:"Ke langit, ke laut, dan ke kode - hasrat untuk pengembangan AI yang lahir dari karier yang tidak biasa",paragraphs:['Sebagai mantan pilot swasta (PPL) dan pemegang lisensi kapal, saya telah berurusan dengan cuaca baik di udara maupun di laut selama bertahun-tahun. Di dalam kokpit dan ruang kemudi, saya mengamati perubahan pada barometer, menguraikan garis tekanan isobarik, dan membandingkannya dengan pergerakan angin dan awan. Perasaan "membaca data, menilai, dan bertindak" yang saya kembangkan melalui proses yang berulang-ulang ini, merupakan titik awal bagi saya saat ini.','Saya mulai belajar pemrograman Python pada usia 57 tahun. Dorongannya adalah rasa ingin tahu yang sederhana, tetapi begitu saya mulai menulis kode, saya terpesona oleh kemungkinan agen AI. Saya membuat aplikasi dengan tangan saya sendiri, menjalankannya, dan memperbaikinya. Dalam prosesnya, saya menyadari sesuatu. Dalam proyek-proyek sebelumnya, saya terlibat sebagai seorang non-insinyur, dan pengembangan selalu dilakukan oleh orang lain. Namun, begitu saya mulai menulis kode sendiri, saya mulai melihat esensi masalahnya. Inilah hambatannya di sini" atau "Desain ini tidak dapat diperluas" - dengan memiliki sudut pandang seorang insinyur, kecepatan mewujudkan apa yang ingin saya lakukan telah meningkat secara dramatis.',"Mengembangkan layanan cuaca dengan menggabungkan pengalaman lapangan dengan ilmu data, membangun agen AI untuk meningkatkan efisiensi operasional, dan berbagai proyek eksperimental. Ketika saya terus bekerja dengan tangan saya, saya menjadi yakin tidak hanya ba
243hwa teknologinya menarik, tetapi juga bahwa pasti ada orang yang membutuhkannya.","Tujuan kami bukan untuk mengejar yang paling mutakhir. Kami menghadapi masalah dan anggaran pelanggan, dan hanya memberikan apa yang benar-benar diperlukan dengan biaya yang masuk akal. Kami bukanlah organisasi besar, sehingga kami dapat memberikan dukungan pengembangan yang disesuaikan dengan kebutuhan masing-masing pelanggan. Kami ingin menggunakan teknologi ini untuk kepentingan masyarakat - itulah sebabnya kami meluncurkan telet.ai."]},contact:{title:"Informasi Organisasi",company:"telet.ai labo",ceo:"Perwakilan: OKUIZUMI Keita",button:"Hubungi Kami"},studios:{tokyo:{title:"Tokyo Studio",address:"#301 First Hills A Musashikoganei, 3-3-21 Nukuiminamicho, Koganei-shi, Tokyo 184-0014, Jepang"}}},ix={title:"Portofolio",subtitle:"Lihat rekam jejak kami dalam memanfaatkan teknologi AI",techStackLabel:"Tumpukan Teknologi",viewProject:"Lihat Proyek",privateProject:"Proyek Swasta",visualizationLabel:"visualisasi data",cta:{title:"Hubungi Kami",description:"Jangan ragu untuk menghubungi kami untuk mendiskusikan proyek Anda atau untuk pertanyaan teknis.",button:"Hubungi Kami"},projects:{"traffic-route-ai":{title:"Sistem Pemilihan Rute Transportasi AI",subtitle:"Perencanaan rute transportasi umum di Malaysia",description:"Sistem yang mencari kombinasi rute bus dan kereta antara titik keberangkatan dan tujuan serta membandingkan pilihan berdasarkan waktu tiba, durasi perjalanan, dan jumlah perpindahan. Filter khusus bus atau kereta, pencarian stasiun dan halte terdekat, serta antarmuka multibahasa membantu memilih rute untuk perjalanan sehari-h
243ari maupun wisata.",techStack:["Rute Transportasi Umum","Integrasi Bus dan Kereta","Perbandingan Rute","Antarmuka Multibahasa"]},"multilingual-assistant":{title:"Asisten Multibahasa AI",description:"Asisten obrolan cerdas untuk pertanyaan multi-bahasa, membangun 1.573 indeks vektor dan mengimplementasikan kontrol jawaban yang tepat melalui percabangan bersyarat, pemfilteran kata NG, dan pemicuan kata kunci. Jawaban yang konsisten dan sangat akurat untuk pertanyaan pengguna dalam berbagai bahasa, termasuk bahasa Jepang, Inggris, dan Mandarin, dihasilkan melalui pencarian semantik lintas bahasa.",techStack:["RAG","Pencarian Vektor","Penyematan Multibahasa","LLM","logika cabang bersyarat"]},"weather-forecast":{title:"Prakiraan Cuaca AI dengan API Cuaca",description:"Mengembangkan sistem AI yang belajar dari data cuaca masa lalu dan membuat prakiraan waktu nyata dari kondisi cuaca terkini. LLM menganalisis data masa lalu yang diperoleh dari JMA API, OpenWeatherMap, dll., dan menghasilkan prakiraan jangka pendek untuk suhu, probabilitas curah hujan, kecepatan angin, dll. Menggabungkan pengenalan pola data deret waktu dengan pencarian pola kemiripan di masa lalu dengan RAG, sistem ini menghasilkan prakiraan yang sangat akurat yang melengkapi model statistik konvensional.",techStack:["Tautan API Cuaca","LLM","RAG","Analisis Data Deret Waktu","pemrosesan waktu nyata"]},"local-llm":{title:"Server Internal / On-Prem Local LLM",description:"Kami memberikan AI yang disesuaikan dengan operasi bisnis Anda, siap digunakan di dalam perusahaan Anda, dengan Open WebUI sebagai titik masuk umum, jalur inferensi cepat dengan Ollama/MLX, dan domain data yang sepenuhnya terpisah untuk setiap UID. Dokumen internal ditangkap dalam RAG dengan penyematan bahasa Inggris dan terjemahan kueri bahasa Jepang otomatis, dan keterampilan bisnis seperti ringkasan berita, organisasi dokumen, dan tugas rutin dijalankan dengan aman secara berdampingan. Sistem eksekusi keterampilan diisolasi sebagai wadah OpenClaw dan dilindungi oleh tiga lapisan Cloudflare edge dan Nginx lokal. Kami menyediakan dukungan komprehensif untuk pemilihan model, desain keterampilan, dan kebijakan operasional, dan memulai AI khusus perusahaan Anda dalam bentuk yang dapat digunakan sejak hari pertama digunakan.",techStack:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"]},"orbital-prediction":{title:"Prediksi Kedatangan Orbit Antarplanet (AI)",description:"Mengembangkan sistem untuk menganalisis titik keberangkatan yang optimal untuk transfer antar planet dengan memperoleh data posisi planet, elemen orbit, dan parameter gravitasi dari API NASA. Menghitung perhitungan orbit dengan mempertimbangkan orbit transfer Hohmann dan bantuan gravitasi menggunakan API dan Python, serta menampilkan jendela peluncuran, waktu yang dibutuhkan, dan efisiensi bahan bakar. Sistem ini digunakan sebagai alat simulasi untuk lembaga pendidikan dan perusahaan yang berhubungan dengan ruang angkasa. *Fungsi API saat ini telah dihapus, perhitungan sedang berlangsung dengan API dan Python.",techStack:["NASA API (Horizons, SPICE)","Perhitungan Dinamika Orbital","Python","visualisasi data"]},"real-estate":{title:"Analisis AI Data Real Estat",description:"Mengembangkan sistem yang mengumpulkan informasi real estat untuk wilayah tertentu melalui penggalian web dan melakukan analisis data tingkat lanjut menggunakan LLM dan Python. Variabel seperti harga properti, harga unit tsubo, usia bangunan, dan jarak stasiun diekstraksi, dan analisis tren harga, prakiraan pasar, dan simulasi hasil investasi dihasilkan secara otomatis. Fitur-fitur juga diekstraksi dari deskripsi properti yang tidak terstruktur menggunakan LLM untuk memberikan analisis pasar yang komprehensif yang dikombinasikan dengan data kuantitatif. *Sekarang tersedia dalam versi kedua (versi LENGKAP tersedia secara terpisah)",techStack:["Pengikisan web (Scraping, Playwright)","Python","Panda","Analisis LLM","visualisasi data"]},"fortune-ai":{title:"Sistem Penilaian AI Empat Pilar",subtitle:"Mereproduksi kearifan tradisional dengan teknologi.",paragraphs:["Empat Pilar Ramalan adalah puncak dari ramalan Timur yang telah berusia ribuan tahun. Sistem ini mereproduksi logika ramalan tradisional sepenuhnya dalam bahasa Python, dikombinasikan dengan interpretasi dan pembuatan saran menggunakan LLM (Large Language Models). AI mereproduksi dengan tepat proses penilaian yang dilakukan oleh peramal ahli.","Setelah memasukkan tanggal, waktu, dan tempat lahir, sistem mengambil waktu matahari terbit dan terbenam serta mengkoordinasikan informasi pada saat itu dari Astronomy API. Berdasarkan data ini, sistem secara akurat menghitung tanda zodiak, sepuluh dewa, dan keseimbangan lima elemen. Logika berdasarkan ilmu ramalan Empat Pilar Takdir diindeks dalam bahasa Python dan digabungkan dengan data statistik dan informasi RAG (Retrieval Augmentation Generation) untuk meningkatkan keakuratan analisis rumus kehidupan.","Data gaya hidup yang dihitung dijelaskan dalam bahasa alami oleh LLM dengan cara yang mudah dipahami. Hasil penilaian yang dipersonalisasi dihasilkan, termasuk aliran keberuntungan, kecocokan hubungan interpersonal, dan pekerjaan yang cocok untuk Anda. Anda dapat memperoleh jawaban dengan kedalaman yang sama seperti jika Anda berkonsultasi dengan peramal profesional.","Saat ini tersedia sebagai versi kedua. Anda bisa mencoba analisis kumishiki dasar dan analisis keberuntungan. Versi lengkapnya, yang mencakup analisis yang lebih terperinci dan saran dari berbagai sisi, tersedia secara terpisah."],techStack:["Python","API Astronomi (Matahari Terbit-Matahari Terbenam, TimeZoneDB)","Logika Empat Pilar","LLM","Perhitungan koordinat dan waktu"]}
243,"google-workspace":{title:"Google Workspace AI integration",description:"Mengembangkan sistem yang menghubungkan Google Workspace (Gmail, Drive, Kalender, Dokumen, Spreadsheet) dengan LLM untuk membaca, mengedit, dan memproses data bisnis secara otomatis. AI membantu tugas sehari-hari seperti meringkas konten email, membuat draf untuk balasan otomatis, mencari dan menganalisis file Drive, mengekstrak jadwal dari Kalender, dan mengusulkan penyesuaian. Pengoperasian ruang kerja dari Agen juga diwujudkan melalui koneksi API yang aman dengan otentikasi OAuth dan desain alat yang sesuai dengan MCP. Versi kedua sekarang tersedia (versi LENGKAP akan disediakan secara terpisah).",techStack:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"]},"world-news":{title:"BERITA DUNIA Multibahasa",description:"Pengembangan sistem yang mengumpulkan artikel secara real time dari sumber berita di seluruh dunia dan melakukan penerjemahan multibahasa, peringkasan, dan kategorisasi menggunakan LLM. Menerjemahkan artikel asli dalam bahasa Inggris, Mandarin, Prancis, Arab, dan bahasa lainnya ke dalam bahasa Jepang dan mengaturnya berdasarkan topik. Pemantauan berita internasional yang efisien tidak dapat dicapai dengan terjemahan mesin yang sederhana, tetapi dengan terjemahan alami berdasarkan pemahaman kontekstual menggunakan LLM dan pembuatan ringkasan yang mengekstrak poin-poin utama dari artikel. *Sekarang tersedia dalam versi kedua (versi LENGKAP tersedia secara terpisah).",techStack:["API Berita","Koleksi RSS","Terjemahan dan Ringkasan LLM","pemrosesan multibahasa","Kategorisasi otomatis","pemrosesan batch terjadwal"]},"security-monitoring":{title:"Manajer AI Pemantauan Log Keamanan",description:"Mengembangkan sistem untuk pemantauan log keamanan perusahaan secara real-time serta deteksi dan analisis ancaman tingkat lanjut menggunakan LLM. Berbagai sumber log seperti firewall, IDS / IPS, log otentikasi, dan log aplikasi dikumpulkan dan dianalisis oleh modul Python, dan dibandingkan dengan pola serangan masa lalu, informasi kerentanan, dan kasus insiden yang terkumpul dalam RAG. Ketika pola abnormal terdeteksi, LLM menjelaskan tingkat ancaman, cakupan dampak, dan respons yang direkomendasikan dalam bahasa alami, dan segera memberi tahu orang yang bertanggung jawab. Jika pola yang sama terulang kembali, peringatan prioritas tinggi secara otomatis dikeluarkan untuk mempercepat respons insiden.",techStack:["Modul Pemantauan Python","Pengumpulan log (Fluentd, Logstash)","RAG","Pola Ancaman DB","Analisis LLM","Pemberitahuan peringatan (Slack, PagerDuty)"]}}},sx={learnMore:"Baca lebih lanjut",getStarted:"mulai ...",contactUs:"Hubungi Kami",backToHome:"Kembali ke Rumah"},rx={title:"Kebijakan Privasi",subtitle:"Kebijakan Privasi",lastUpdated:"Pembaruan terakhir: 23 Januari 2026",intro:'telet.ai ("Layanan") menganggap perlindungan informasi pribadi Anda sebagai tanggung jawab penting dan telah menetapkan kebijakan privasi berikut.',sections:{collection:{title:"1. Informasi yang akan dikumpulkan",description:"Layanan dapat mengumpulkan informasi berikut ini ketika Anda menghubungi kami atau menggunakan Layanan.",items:["Alamat email","Nama Anda (opsional)","Detail Pertanyaan","Informasi lain yang diberikan secara sukarela oleh Anda"]},purpose:{title:"2. tujuan penggunaan informasi",description:"Informasi pribadi yang dikumpulkan hanya akan digunakan untuk tujuan berikut",items:["Menjawab dan menanggapi pertanyaan","Kontak dan informasi tentang layanan kami","Komunikasi yang diperlukan untuk kemajuan proyek","Analisis untuk peningkatan layanan (dalam format yang tidak mengidentifikasi individu)"]},thirdParty:{title:"3. Penyediaan kepada pihak ketiga",description:"Layanan tidak akan memberikan informasi pribadi Anda kepada pihak ketiga kecuali dalam kasus-kasus berikut",items:["Jika pelanggan menyetujui","Ketika ada permintaan pengungkapan berdasarkan peraturan perundang-undangan","Jika diperlukan untuk melindungi nyawa, tubuh, atau properti seseorang"]},security:{title:"4. manajemen informasi",description:"Layanan akan mengelola informasi pribadi yang dikumpulkan dengan baik dan mengambil langkah-langkah keamanan yang wajar untuk mencegah akses yang tidak sah, kehilangan, kebocoran, dan pemalsuan."},email:{title:"5. Penanganan email",description:"Layanan akan menangani email sesuai dengan kebijakan berikut.",items:["Kami akan menggunakan isi email Anda hanya untuk tujuan menanggapi pertanyaan Anda dan menyediakan layanan kami.","Kami tidak akan menjual, menyewakan, atau membagikan alamat email Anda kepada pihak ketiga mana pun","Kami mungkin akan mengirimkan email informasi tentang layanan kami. Jika Anda ingin berhenti berlangganan, silakan gunakan tautan berhenti berlangganan di email atau hubungi kami menggunakan informasi kontak di bawah ini.","Enkripsi SSL/TLS digunakan untuk komunikasi email untuk memastikan komunikasi yang aman","Kami akan menghapus email Anda dengan aman setelah menyimpannya dalam jangka waktu yang sesuai."]},cookies:{title:"6. penggunaan cookie",description:"Cookie dapat dinonaktifkan di pengaturan browser Anda."},external:{title:"7. penggunaan layanan eksternal",description:"Layanan ini dapat menggunakan layanan eksternal berikut ini. Silakan lihat tautan masing-masing untuk mengetahui kebijakan privasi 
243setiap layanan.",items:["Google Analytics (access analysis)","Layanan cloud lainnya yang diperlukan untuk operasi bisnis"]},changes:{title:"8. perubahan pada kebijakan privasi",description:"Kebijakan ini dapat direvisi tanpa pemberitahuan sesuai dengan perubahan peraturan perundang-undangan atau perubahan konten layanan. Kebijakan yang telah direvisi akan berlaku efektif ketika diposting di halaman ini."},contact:{title:"9. hubungi kami",description:"Jika Anda memiliki pertanyaan mengenai kebijakan ini, silakan hubungi kami di",company:"telet.ai",contactLink:"Buka Formulir Pertanyaan"}}},ox={title:"Ketentuan Penggunaan",subtitle:"Ini adalah syarat dan ketentuan untuk menggunakan situs ini dan untuk memesan konsultasi, membuat pertanyaan, dan meminta informasi dari telet.ai.",lastUpdated:"Pembaruan terakhir: 22 Januari 2026",intro:'Ketentuan Penggunaan ini (selanjutnya disebut sebagai "Ketentuan") Ketentuan Penggunaan ini (selanjutnya disebut sebagai "Ketentuan") berlaku untuk situs web yang dioperasikan oleh telet.ai (selanjutnya disebut sebagai "kami", "kita", "milik kami", atau "milik kita"). (selanjutnya disebut sebagai "kami", "kita", atau "milik kami"). (selanjutnya disebut sebagai "Situs") yang dioperasikan oleh telet.ai (selanjutnya disebut sebagai "Kami"). Situs ini disediakan terutama sebagai halaman arahan untuk janji konsultasi, pertanyaan, dan permintaan dokumen, dan tidak menyediakan pembuatan akun atau fungsi penagihan berbayar di Situs.',sections:{scope:{title:"1. ruang lingkup aplikasi",description:'Syarat dan Ketentuan ini berlaku untuk semua pengunjung dan pengguna Situs ("Pengguna"). Syarat Penggunaan berlaku untuk semua pengunjung dan pengguna Situs (selanjutnya disebut sebagai "Pengguna"). Dalam hal NDA terpisah, perjanjian outsourcing, kontrak individu, dll. disepakati antara kami dan Pengguna, dokumen tersebut akan diutamakan daripada Syarat dan Ketentuan.'},prohibited:{title:"2. barang yang dilarang",description:"Dalam menggunakan Situs, Pengguna tidak boleh melakukan tindakan berikut ini",items:["Tindakan yang melanggar hukum dan peraturan atau ketertiban umum dan moral","Tindakan apa pun yang melanggar hak kekayaan intelektual, privasi, atau hak atau kepentingan kami atau pihak ketiga mana pun","Tindakan yang mengganggu pengoperasian situs ini atau sistem terkait melalui akses yang tidak sah, beban yang berlebihan, sabotase, dll.","Mengirimkan informasi palsu atau menyamar sebagai pihak ketiga dalam formulir pertanyaan, dll.","Mengikis, merekayasa balik, atau akses otomatis yang berlebihan tanpa izin sebelumnya dari kami"]},disclaimer:{title:"3. Penafian",description:'kami menyediakan situs ini atas dasar "sebagaimana adanya" dan "sebagaimana tersedia". Sejauh yang diizinkan oleh hukum, kami menyangkal semua jaminan sehubungan dengan situs ini.',items:["Informasi di situs ini dapat berubah atau dihapus tanpa pemberitahuan.","Kami tidak menjamin keakuratan, kelengkapan, atau kesesuaian untuk tujuan tertentu dari informasi yang ada di situs ini.","Kami tidak bertanggung jawab atas segala kerusakan yang diakibatkan oleh penggunaan situs ini atau ketergantungan pada informasi yang terkandung di sini.","Tanggapan terhadap konsultasi dan pertanyaan hanya untuk informasi umum dan bukan merupakan nasihat hukum, pajak, medis, atau nasihat profesional lainnya."]},ip:{title:"4. Hak kekayaan intelektual",description:"Semua hak atas teks, gambar, desain, merek dagang, logo, dan lain-lain yang ada di situs ini adalah milik kami atau pemegang hak yang sah. Anda tidak boleh menggunakannya tanpa izin dari pemegang hak."},links:{title:"5. Tautan ke situs eksternal",description:"Situs web ini mungkin berisi tautan ke situs web pihak ketiga. Kami tidak bertanggung jawab atas konten atau pengoperasian situs yang ditautkan."},changes:{title:"6. Modifikasi Syarat dan Ketentuan ini",description:"Kami berhak untuk mengubah Syarat dan Ketentuan ini dari waktu ke waktu sesuai kebutuhan. Syarat dan Ketentuan yang telah diubah akan berlaku efektif ketika diposting di Situs."},governingLaw:{title:"7. Hukum dan yurisdiksi yang mengatur",description:"Syarat dan Ketentuan ini diatur oleh dan ditafsirkan sesuai dengan hukum Jepang. Jika timbul sengketa sehubungan dengan Situs ini, Pengadilan Distrik Tokyo memiliki yurisdiksi eksklusif sebagai pengadilan tingkat pertama."},contact:{title:"8. hubungi kami",description:"Jika Anda memiliki pertanyaan mengenai Syarat dan Ketentuan ini, silakan hubungi",company:"telet.ai",contactLink:"Buka Formulir Pertanyaan"}}},lx={title:"gerakan teratur",subtitle:"AI memprediksi",description1:"Informasi cuaca disediakan secara real-time oleh setiap negara. Negara Anda ditampilkan di tengah peta. Cuaca kemarin dan cuaca hari ini adalah catatan aktual - awan hujan seharusnya ada di langit Anda pada tanggal dan waktu tersebut.",description2:"Namun, animasi ini juga menganimasikan pergerakan cuaca di masa depan.",description3:"
243Vektor melewati data dan mencari pola dengan kecepatan tinggi. Pola cuaca juga dapat diprediksi dari lingkungan sekitar. Demikian pula, dimungkinkan untuk memprediksi panen, produksi, dan penjualan dengan menghitung elemen (i) dari lingkungan dan nilai statistik lanjutan dari kinerja masa lalu dan meminta AI menganalisisnya.",refresh:"menyegarkan (mis. memori)",loading:"Memuat peta cuaca..."},dx={hero:{badges:["Perusahaan","LLM lokal","Agen Khusus"],title:"Desain dan Pengembangan Agen AI untuk Perusahaan",description:"Merancang dan membangun Agen AI khusus yang disesuaikan dengan kebutuhan bisnis"},mission:{title:"Layanan Pengembangan Agen AI Khusus",description:"Kami secara konsisten mengembangkan Agen AI khusus yang menangani masalah bisnis unik perusahaan Anda, mulai dari desain hingga implementasi dan operasi. Desain arsitektur kami menekankan kompatibilitas dengan sistem mission-critical dan lingkungan SaaS yang ada, memungkinkan integrasi yang lancar dengan API, database, dan alat internal. Teknisi kami terbiasa dengan LangChain, AutoGen, CrewAI, dan kerangka kerja utama lainnya, Teknisi kami terbiasa dengan LangChain, AutoGen, CrewAI, dan kerangka kerja utama lainnya, dan akan mengusulkan solusi terbaik untuk tumpukan teknologi dan struktur operasional perusahaan Anda. Kami tidak hanya mengembangkan chatbot sekali pakai, tetapi juga membangun sistem multi-agen di mana beberapa Agen bekerja sama satu sama lain untuk melakukan tugas, dan Alur Kerja Agen yang bekerja bersama dengan alat eksternal. Kami mendukung memaksimalkan nilai bisnis yang dibawa oleh Agen AI melalui kemitraan jangka panjang yang mencakup peningkatan berkelanjutan setelah implementasi, mengikuti pembaruan model, dan pemeliharaan sistem pemantauan operasional.",imageAlt:"Layanan Pengembangan Agen AI Khusus"},summary:{title:"Tren Pengembangan Agen",paragraphs:['Dari tahun 2025 hingga 2026, pengembangan Agen AI bergerak dari fase demonstrasi ke fase implementasi perusahaan berskala penuh. Konsep "Agentic AI" telah mengakar, dan sistem eksekusi bisnis otonom yang lebih dari sekadar chatbot telah mulai beroperasi di berbagai industri.','Agen Pengguna Komputer" yang secara langsung mengontrol browser dan desktop, seperti Operator dari OpenAI, Penggunaan Komputer dari Anthropic, dan Project Mariner dari Google, telah menjadi praktis. Model Context Protocol (MCP) adalah ekosistem yang sedang berkembang, memungkinkan integrasi plug-and-play dengan ribuan alat.',"Arsitektur multi-agen telah mencapai kematangan, dengan Agen khusus yang bekerja sama untuk melakukan tugas-tugas kompleks seperti manajemen proyek, dukungan pelanggan, dan analisis data. Standarisasi protokol A2A (Agen-ke-Agen) juga telah membuat kemajuan dalam kolaborasi Agen di antara vendor yang berbeda.",'Model tata kelola telah berevolusi dari "Human-in-the-Loop" menjadi "Human-on-the-Loop" untuk implementasi perusahaan, dengan mekanisme audit keputusan pasca-agen dan eskalasi otomatis berdasarkan tingkat risiko sebagai fitur standar, yang mempercepat adopsi di industri yang diatur seperti keuangan, perawatan kesehatan, dan manufaktur. Adopsi sistem ini semakin cepat di industri yang diatur seperti keuangan, medis, dan manufaktur.']},features:{title:"Desain dan Pengembangan",subtitle:"Desain & Pengembangan",items:[{title:"Desain agen berdasarkan kebutuhan bisnis",description:"Mengekstrak kasus penggunaan dari analisis aliran bisnis, menguraikan tugas, dan memperjelas tanggung jawab Agen. Kami menentukan apakah pemrosesan dapat diselesaikan oleh satu Agen atau memerlukan koordinasi multi-Agen, dan memilih pola inferensi yang optimal seperti ReAct, Plan-and-Execute, dan Refleksi."},{title:"Integrasi RAG / Alat / Alur Kerja",description:"Pipeline RAG yang sangat akurat yang menggabungkan Embedding Generation, Chunk Strategy, dan Hybrid Search, koneksi terstandardisasi ke API eksternal dan database dengan definisi Tool yang sesuai dengan MCP, dan orkestrasi alur kerja multi-langkah menggunakan LangGraph dan CrewAI. Mengatur alur kerja multi-langkah dengan LangGraph dan CrewAI."},{title:"Desain keamanan dan otorisasi",description:"Kontrol akses fungsi Agen oleh RBAC/ABAC, penanggulangan Injeksi yang Cepat, serta deteksi dan penyembunyian PII diimplementasikan. Log audit dari semua input dan output disimpan, dan operasi lingkungan yang sesuai dengan SOC2 dan ISO27001 didukung."},{title:"Implementasi termasuk operasi dan pemantauan",description:"Menerapkan visualisasi Trace dengan LangSmith, Langfuse, dll., dan pemantauan latensi, konsumsi token, dan tingkat kesalahan secara real-time. Membangun siklus peningkatan berkelanjutan termasuk peringatan deteksi anomali, infrastruktur pengujian A/B, dan Uji Regresi saat memperbarui model."}]},techStack:{title:"Tumpukan Teknologi",subtitle:"Platform & Teknologi",categories:{agentFramework:{title:"Kerangka Kerja Agen",items:["AutoGen 0.4 / AG2","CrewAI","LangGraph","OpenAI Agents SDK","MCP Antropik","Google ADK (Agent Development Kit)","Kernel Semantik","Platform Agen Kepemilikan"]},apiLayer:{title:"Lapisan API",items:["FastAPI / Litestar","gRPC / Hubungkan","Federasi GraphQL","Peristiwa yang Dikirim Server (SSE)","Soket Web / NATS","OAuth 2.1 / OIDC","Gerbang API (Kong / Utusan)","Pembatasan Laju Adaptif"]},vectorDb:{title:"Vektor DB / RAG",items:["Pinecone","Menenun","Qdrant","Milvus","ChromaDB","pgvector","FAISS","Turbopuffer"]}
243,infrastructure:{title:"Infrastruktur",items:["Kubernetes (EKS / GKE / AKS)","Docker / Podman","Cluster GPU On-Premise","Cloud Pribadi","Tanpa Server (Lambda / Cloud Run)","OpenTelemetri / Langfuse","Terraform / Pulumi","ArgoCD / Fluks"]}},updateNote:{title:"Poin pembaruan utama untuk tahun 2026",description:"Dalam Agent Framework, SDK/protokol resmi dari vendor-vendor besar seperti OpenAI Agents SDK, Anthropic MCP, dan Google ADK mulai bermunculan; dalam API Layer, gRPC dan SSE telah menjadi standar untuk komunikasi Agen-ke-Agen, dan transisi ke OAuth 2.1 sedang berlangsung. Di Vector DB, Qdrant dan Turbopuffer mendapatkan perhatian untuk pencarian berkecepatan tinggi."}},cta:{title:"Hubungi Kami",description:`Kami dapat berkonsultasi dengan Anda mulai dari pengaturan persyaratan.
244Konfigurasi PoC dan LLM lokal juga dapat dipertimbangkan.`,primaryButton:"Hubungi Kami",secondaryButton:"Konsultasi Teknis"}},ux={title:"Pertanyaan yang Sering Diajukan",subtitle:"PERTANYAAN YANG SERING DIAJUKAN",items:[{question:"Dapatkah saya menggunakan manual dan FAQ yang sudah ada tanpa modifikasi?",answer:"Ya, Anda dapat menggunakannya; mendukung sebagian besar format, termasuk PDF, Word, Excel, HTML, dan file teks. Cukup unggah dokumen internal Anda yang sudah ada, dan AI akan mempelajari kontennya dan menggunakannya untuk menjawab pertanyaan Anda. Tidak diperlukan konversi format atau pemrosesan khusus."},{question:"Apakah aman digunakan dengan data yang mengandung informasi sensitif?",answer:"Ya, Anda bisa menggunakan layanan kami dengan aman. Di lokasi (server internal) atau di lingkungan cloud pribadi, data tidak pernah dikirimkan ke luar perusahaan. Kami dapat mengusulkan konfigurasi untuk memenuhi kebutuhan keamanan Anda."},{question:"Berapa lama waktu yang dibutuhkan untuk menerapkannya?",answer:"Bot FAQ standar dapat diimplementasikan hanya dalam waktu 2-4 minggu. Jika integrasi dengan sistem yang sudah ada atau kustomisasi tingkat lanjut diperlukan, kami memperkirakan 1-3 bulan. Kami juga dapat memulai dengan PoC (bukti konsep) skala kecil."},{question:"Apakah Anda menggunakan API eksternal seperti ChatGPT atau Claude?",answer:"Pilihan tersedia berdasarkan permintaan. Kami mendukung konfigurasi yang menggunakan API eksternal (OpenAI, Anthropic, Google, dll.) dan konfigurasi yang menggunakan LLM open source (Llama, Mistral, Qwen, dll.) yang berjalan sepenuhnya secara lokal. Kami dapat mengusulkan konfigurasi terbaik untuk kebutuhan biaya, keamanan, dan kinerja Anda."},{question:"Seberapa akuratkah respons AI?",answer:"Tergantung pada aplikasi dan kualitas data, sistem RAG yang dirancang dengan baik dapat memberikan jawaban yang akurat untuk pertanyaan-pertanyaan yang memiliki dokumen yang relevan dengan akurasi 90% atau lebih. Mekanisme untuk mengontrol halcination (pembuatan informasi yang salah) juga dibangun sebagai standar."},{question:"Apakah Anda mendukung bahasa selain bahasa Jepang?",answer:"Ya, dukungan multibahasa tersedia. Kami mendukung semua bahasa utama, termasuk bahasa Jepang, Inggris, Mandarin, dan Korea. Alih-alih memiliki model terpisah untuk setiap bahasa, satu sistem dapat menangani pertanyaan multibahasa."},{question:"Dapatkah Anda mengintegrasikan dengan sistem yang ada (CRM, alat bantu chatting, dll.)?",answer:"Ya, ini dapat diintegrasikan; mendukung integrasi API dengan alat bisnis utama seperti Salesforce, HubSpot, Slack, Microsoft Teams, dan LINE WORKS. Anda bisa menggunakan asisten AI tanpa mengubah alur kerja yang sudah ada."},{question:"Bagaimana struktur biaya Anda?",answer:"Tergantung pada ukuran dan persyaratan proyek. Meskipun biaya konstruksi awal dan biaya operasi bulanan umumnya digabungkan, kami juga menerima permintaan untuk pengembangan di tempat atau layanan konsultasi saja. Harap beri tahu kami kebutuhan Anda terlebih dahulu. Kami akan memberikan perkiraan kasar."}]},cx={title:"Paket Tarif",subtitle:"Paket Harga",description:"Paket yang fleksibel agar sesuai dengan ukuran bisnis Anda",plans:[{name:"starter",price:"29.800 yen",period:"Bulanan/pengguna",description:"Paket terbaik untuk tim kecil. Fungsi AI dasar dengan harga terjangkau.",features:["Hingga 100 panggilan per bulan","Transkripsi Dasar","Deteksi Kata Kunci","Dukungan Email","Penyimpanan data 7 hari"],cta:"Mulailah secara gratis",popular:!1},{name:"profesional",price:"Â¥79,800",period:"Bulanan/pengguna",description:"Ideal untuk tim yang sedang berkembang. Fitur analitik tingkat lanjut.",features:["Hingga 500 panggilan per bulan","Transkripsi AI presisi tinggi","Analisis Emosional","Hubungan CRM","Dukungan Prioritas","Penyimpanan data 30 hari","Laporan Khusus"],cta:"Uji coba gratis 14 hari",popular:!0},{name:"perusahaan",price:"Hubungi Kami",period:"adat",description:"Paket berfitur lengkap untuk organisasi besar",features:["Panggilan tak terbatas","Model AI Khusus","dukungan di tempat","Dukungan Khusus","Kolaborasi khusus","Jaminan SLA","Audit Keamanan","Penyimpanan data tanpa batas"],cta:"Konsultasikan dengan bagian Penjualan",popular:!1}],faq:{title:"Pertanyaan yang Sering Diajukan",items:[{question:"Apakah ada uji coba gratis?",answer:"Ya, uji coba gratis 14 hari tersedia untuk paket Profesional. Tidak diperlukan kartu kredit untuk memulai."},{question:"Dapatkah saya mengubah paket saya kapan saja?",answer:"Ya, Anda dapat meningkatkan atau menurunkan paket Anda kapan saja. Perubahan akan diterapkan mulai dari siklus penagihan berikutnya."},{question:"Apakah ada jangka waktu kontrak yang terikat?",answer:"Paket bulanan tidak memiliki batasan jangka waktu kontrak. Jika Anda memilih kontrak tahunan, Anda akan menerima diskon 20%."}]}},mx={hero:{badge:"Teknologi yang Didukung AI",title:"Transkripsi AI",description:"Model pembelajaran mesin yang canggih memberikan akurasi 99,5%. AI yang dilatih pada jutaan data interaksi pelanggan mengubah suara menjadi teks.",features:["Keakuratan 99,5","pemrosesan waktu nyata","Dukungan untuk lebih dari 40 bahasa"]},features:{title:"Fungsi Utama",subtitle:"Mesin transkripsi canggih yang melampaui pengenalan ucapan sederhana",items:[{title:"transkripsi waktu nyata",description:"Dapatkan transkrip waktu nyata selama percakapan. Dapatkan wawasan instan dan jangan pernah melewatkan kesempatan pelatihan waktu nyata."},{title:"dukungan multibahasa",description:"Mendukung lebih dari 40 bahasa dan mencakup tim global dengan deteksi bahasa otomatis."},{title:"pemahaman kontekstual",description:"Model AI yang dilatih dengan terminologi khusus industri secara akurat mengenali istilah teknis dan bisnis."},{title:"pemisahan speaker",description:"Secara otomatis mengidentifikasi dan memisahkan pembicara yang berbeda dalam percakapan dan memberikan atribut pembicara yang jelas."},{title:"leksikon khusus",description:"Mempelajari nama produk, nama layanan, dan istilah teknis perusahaan Anda yang unik akan memberikan akurasi yang lebih tinggi."},{title:"Jaminan Kualitas",description:"Pemeriksaan kualitas otomatis dan penilaian keandalan memastikan transkripsi dengan kualitas terbaik."}]},useCases:{title:"Adegan Penggunaan",subtitle:"Industri dan tim yang membutuhkan transkripsi panggilan yang akurat",items:[{title:"Tim Penjualan",description:"Merefleksikan panggilan penjualan dan mengidentifikasi pola keberhasilan. Tingkatkan efektivitas pembicaraan dan latih anggota tim dengan contoh-contoh spesifik."},{title:"Dukungan Pelanggan",description:"Mencatat masalah pelanggan secara akurat. Memelihara riwayat dukungan yang komprehensif untuk memastikan kualitas layanan yang konsisten."},{title:"kontrol kualitas",description:"Memantau kepatuhan dan memastikan kepatuhan naskah. Menyimpan catatan terperinci untuk audit dan pelatihan."}]},stats:{accuracy:{value:"99.5%",label:"akurasi transkripsi"},languages:{value:"40+",label:"Bahasa yang Didukung"},latency:{value:"<2 detik.",label:"penundaan pemrosesan"},availability:{value:"24/7",label:"pemrosesan berkelanjutan"}}},px={hero:{badge:"Deteksi Cerdas",title:"Pelacakan Kata Kunci",description:"Secara otomatis memantau penyebutan, bantahan, dan topik penting dari pesaing. Jangan pernah melewatkan sinyal penting dari percakapan pelanggan.",badges:["Pelacakan Kompetitif","Deteksi Re
244spons","Analisis Topik","kata kunci khusus"]},features:{title:"Melacak informasi penting",subtitle:"Deteksi otomatis dan analisis kata kunci dari semua percakapan",items:[{title:"Pemantauan Kompetitif",description:"Lacak sebutan kompetitor untuk memahami bagaimana prospek membandingkan solusi Anda dengan alternatif yang ada di pasar."},{title:"Deteksi Respons",description:"Secara otomatis mengidentifikasi keberatan dan kekhawatiran umum serta mengembangkan tanggapan dan pelatihan yang efektif."},{title:"kata kunci khusus",description:"Tentukan dan lacak kata kunci dan frasa khusus yang spesifik untuk bisnis, produk, atau industri Anda."},{title:"Analisis Tren",description:"Temukan tren yang muncul dari percakapan pelanggan dan sesuaikan strategi Anda berdasarkan sinyal pasar yang sebenarnya."},{title:"ekstraksi konteks",description:"Dapatkan konteks sebelum dan sesudah kata kunci, bukan hanya penyebutannya saja. Pahami tidak hanya apa yang dikatakan, tetapi juga mengapa dan bagaimana hal itu dikatakan."},{title:"Pencarian Cerdas",description:"Cari semua percakapan secara instan untuk menemukan dengan tepat di mana dan kapan topik tertentu dibahas."}]},applications:{title:"Adegan Penggunaan",items:{competitive:{title:"Kecerdasan Kompetitif",description:"Pemahaman mendalam tentang lanskap persaingan:",points:["Lacak pesaing Anda yang paling sering disebut","Memahami bagaimana calon pelanggan membandingkan fitur dan harga","Identifikasi keunggulan dan kelemahan kompetitif Anda","Menciptakan materi anti-persaingan yang efektif"]},objections:{title:"tanggapan terhadap sanggahan",description:"Ubah sanggahan menjadi peluang:",points:["Mengidentifikasi masalah pelanggan yang paling umum","Menganalisis tanggapan sanggahan dari para pemangku kepentingan","Playbook dengan respons yang telah terbukti.","Latih tim Anda dengan perputaran yang efektif"]},product:{title:"Wawasan Produk",description:"Mempromosikan pengembangan produk melalui umpan balik pelanggan:",points:["Mengidentifikasi fitur yang paling banyak diminta","Memahami tantangan terhadap fungsionalitas saat ini","Temukan kasus penggunaan yang tidak terduga","Memprioritaskan peta jalan berdasarkan kebutuhan pelanggan"]},compliance:{title:"Kepatuhan & Kualitas",description:"Memastikan kepatuhan terhadap peraturan dan kualitas:",points:["Memantau pengungkapan yang diperlukan dan bahasa hukum","Menandai percakapan yang mungkin melanggar kebijakan","Melacak kepatuhan skrip dan praktik terbaik","Membuat laporan kepatuhan untuk audit"]}}},advancedFeatures:{title:"Fitur Lanjutan",items:[{title:"pengambilan yang ambigu",description:"Secara otomatis mendeteksi variasi kata kunci, sinonim, dan istilah terkait tanpa konfigurasi manual."},{title:"analisis historis",description:"Menganalisis tren kata kunci dari waktu ke waktu untuk mengidentifikasi pola musiman dan topik yang muncul."},{title:"Peringatan waktu nyata",description:"Dapatkan notifikasi langsung ketika kata kunci penting disebutkan dalam percakapan langsung."}]}},gx={hero:{badges:["Perusahaan","LLM lokal","Pengoperasian server internal"],title:"Konstruksi LLM di Tempat (On-Premise)",description:"Mengoperasikan LLM di lingkungan Anda sendiri, menyimpan data di luar perusahaan"},mission:{title:"Gambaran Umum Layanan Konstruksi LLM di Lokasi",paragraphs:["Untuk perusahaan yang tidak dapat mengeluarkan data rahasia ke luar perusahaan, kami membangun lingkungan LLM yang dapat diselesaikan di server mereka sendiri atau di cloud pribadi. Solusi ini sangat ideal untuk organisasi yang membutuhkan manajemen informasi yang ketat, seperti lembaga keuangan, lembaga medis, lembaga pemerintah, dan lembaga penelitian, karena tidak menggunakan API publik dan semua pemrosesan diselesaikan di dalam infrastruktur yang dikelola pelanggan.","Kami menyediakan dukungan komprehensif mulai dari pemilihan model, konstruksi server, pengoptimalan mesin inferensi, dan pemantauan operasi, menggunakan model open-weight yang tersedia secara komersial seperti Llama 3.3, Qwen 2.5, Mistral, dan DeepSeek dengan mesin inferensi berkinerja tinggi seperti vLLM, Ollama, dan SGLang. Model-model ini dijalankan pada mesin inferensi berkinerja tinggi seperti vLLM, Ollama, dan SGLang untuk menyediakan lingkungan inferensi dengan latensi rendah dan throughput tinggi.","Kami mendukung berbagai macam kasus penggunaan seperti integrasi dengan sistem yang sudah ada, chatbot, RAG internal, ringkasan dokumen, dan pembuatan kode. Kami dapat mendesain untuk memenuhi kebutuhan perusahaan, termasuk spesialisasi bisnis melalui penyempurnaan model, pengoptimalan GPU NVIDIA / Apple Silicon, desain multi-penyewa, konstruksi gateway API, dan banyak lagi."]},summary:{title:"Tren LLM On-Premise",paragraphs:["Pada tahun 2025-2026, utilitas LLM lokal meningkat pesat. Kinerja model berbobot terbuka telah mengungguli model tertutup, dan jumlah model yang ditawarkan dengan lisensi y
244ang tersedia secara komersial telah secara signifikan menurunkan rintangan untuk operasi internal.","Model dengan parameter 8B hingga 70B telah mencapai tingkat praktis untuk banyak tugas bisnis, kuantisasi GGUF memungkinkan inferensi kecepatan tinggi bahkan pada GPU konsumen.","Untuk mesin inferensi, Continuous Batching dan PagedAttention dari vLLM secara dramatis meningkatkan hasil, dan RadixAttention dari SGLang mempercepat interaksi multi-belokan yang kompleks. Ollama telah menjadi standar de facto untuk lingkungan pengembangan lokal, dan llama.cpp adalah Apple Silicon yang dioptimalkan untuk inferensi cepat pada Mac seri M.","Dalam adopsi perusahaan, selain kedaulatan data dan kepatuhan, optimalisasi biaya jangka panjang (beralih dari penagihan API bayar sesuai penggunaan) semakin menjadi motivasi untuk adopsi. Konfigurasi hibrida (lokal untuk pemrosesan sensitif dan API cloud untuk pemrosesan tujuan umum) telah menjadi pilihan umum."],icons:[{label:`Pribadi
245Awan`},{label:`Data
246Kedaulatan`},{label:`Biaya
247Optimalisasi`},{label:`Perusahaan
248Keamanan`}]},features:{title:"Fitur desain dan pengembangan",subtitle:"Desain & Pengembangan",items:[{title:"Desain infrastruktur dan pengoptimalan GPU",description:"Rancang konfigurasi perangkat keras yang optimal untuk beban kerja dan anggaran Anda, termasuk NVIDIA A100/H100, RTX 4090/5090, dan Apple Silicon (M2 Ultra/M3 Max/M4 Max), dan ciptakan lingkungan inferensi yang memanfaatkan kinerja GPU sepenuhnya melalui pengoptimalan CUDA, MPS, dan Metal. Pengoptimalan CUDA, MPS, dan Metal untuk memaksimalkan performa GPU."},{title:"Pemilihan dan pengoptimalan model",description:"Pilih model optimal dari Llama, Qwen, Mistral, DeepSeek, dll. dengan mempertimbangkan karakteristik tugas, persyaratan bahasa, dan keterbatasan sumber daya. Kuantisasi (GGUF/AWQ/GPTQ), optimalisasi cache KV, dan penyetelan pemrosesan batch digunakan untuk mencapai akurasi dan keluaran."},{title:"Konstruksi mesin inferensi",description:"Pilih dan buat mesin inferensi seperti vLLM, SGLang, Ollama, TGI, dll. sesuai dengan aplikasi Anda, dan terapkan teknologi terbaru seperti Continuous Batching, Speculative Decoding, dan Prefix Caching untuk menyediakan API inferensi dengan latensi rendah dan throughput tinggi. Kami menyediakan API inferensi latensi rendah dan throughput tinggi."},{title:"Operasi, Pemantauan dan Keamanan",description:"Menerapkan pemantauan metrik inferensial dengan Prometheus/Grafana, kontrol akses dengan API gateway, log audit, penskalaan otomatis, dan pemulihan kegagalan. Membangun lingkungan operasi produksi yang memenuhi persyaratan keamanan perusahaan."}]},techStack:{title:"Tumpukan Teknologi: LLM di tempat",subtitle:"Platform & Teknologi",categories:{openWeightModels:{title:"Model Berat Terbuka",items:["Llama 3.3 70B / 8B","Qwen 2.5 72B / 32B / 7B","Mistral Large / Nemo","DeepSeek V3 / R1","Gemma 2 27B / 9B","Phi-4","Perintah R (Cohere)"]},japaneseModels:{title:"Model khusus Jepang",items:["ELYZA-jepang-Llama-2","Menelan 70B / 13B","Jepang-Llama-3","Qwen-2.5-Japanese","Karakuri-LM"]},inferenceEngine:{title:"Mesin Inferensi",items:["vLLM (Continuous Batching)","SGLang (RadixAttention)","Ollama (pengembangan lokal)","llama.cpp (Apple Silicon)","TGI (Wajah Memeluk)","TensorRT-LLM (NVIDIA)","ExLlamaV2 (spesialisasi kuantisasi)"]},quantization:{title:"Kuantisasi",items:["GGUF (standar llama.cpp)","AWQ (presisi tinggi 4bit)","GPTQ (pengoptimalan GPU)","bit dan byte (8bit / 4bit)","EETQ (Kuantisasi Efisiensi Efisien)"]},hardware:{title:"Perangkat keras",items:["NVIDIA H100 / A100","NVIDIA L40S / A10G","RTX 4090 / 5090","Apple Silicon M2 Ultra","Apple Silicon M3/M4 Max","AMD MI300X"]}
248,infrastructure:{title:"Infrastruktur",items:["Docker / Kubernetes","Server NVIDIA Triton","Gerbang API (Kong / Utusan)","Prometheus / Grafana","Cloud Pribadi (VMware / OpenStack)","Dukungan Lingkungan yang Terhalang Udara"]}},updateNote:{title:"Poin pembaruan utama untuk tahun 2026",description:"Pada model bobot terbuka, Llama 3.3 mencapai performa tujuan umum kelas GPT-4 dan sangat meningkatkan performa bahasa Jepang; seri Qwen 2.5 memperluas pilihan dengan berbagai ukuran dan performa yang seimbang; DeepSeek V3/R1 menarik perhatian karena performa biaya inferensinya; serta mesin inferensi vLLM 2.0 Chunked Prefill dan SGLang's RadixAttention mempercepat dialog multi-belokan. Pada mesin inferensi, Chunked Prefill vLLM 2.0 dan RadixAttention SGLang mempercepat interaksi multi-belokan; optimalisasi Apple Silicon dari llama.cpp membuat inferensi model 70B menjadi praktis di M4 Max; dan teknologi Quantization menawarkan ketepatan 4-bit dan kinerja tinggi. Teknik kuantisasi mencapai presisi 4-bit dan kecepatan inferensi, dan GGUF menjadi format standar de facto."}},cta:{title:"Hubungi Kami",description:`Kami dapat berkonsultasi dengan Anda mulai dari pengaturan persyaratan.
249Konfigurasi PoC dan LLM lokal juga dapat dipertimbangkan.`,primaryButton:"Hubungi Kami",secondaryButton:"Konsultasi Teknis"}},hx={hero:{badges:["Perusahaan","RAG","pembuatan ekstensi pencarian"],title:"Pengembangan Vektor / RAG",description:"Membangun sistem RAG untuk menghubungkan pengetahuan internal dengan LLM"},mission:{title:"Ikhtisar Layanan Pengembangan Vektor / RAG",paragraphs:["Kami akan membangun sistem RAG (search extension generation) yang memungkinkan karyawan untuk mencari dan mengajukan pertanyaan dalam bahasa alami dengan menghubungkan aset pengetahuan yang terkumpul di perusahaan dengan LLM. Kami mengintegrasikan berbagai sumber data seperti manual, notulen, dokumen teknis, FAQ, riwayat Slack, Confluence, SharePoint, dan lain-lain untuk menciptakan lingkungan di mana pengetahuan organisasi dapat segera digunakan.","Kami memaksimalkan akurasi pencarian dan kualitas jawaban dengan menerapkan teknologi terbaru seperti Pencarian Hibrida (pencarian vektor + pencarian kata kunci), Pemeringkatan Ulang, pemotongan hierarki, penyaringan metadata, dan lain-lain, di samping pencarian dokumen sederhana. Kami dengan jelas menunjukkan sumber jawaban untuk menekan halcinasi dan memastikan keandalan.","Kami mendukung berbagai lingkungan termasuk AWS, GCP, Azure, dan on-premise, serta berintegrasi dengan infrastruktur autentikasi dan manajemen otoritas yang ada. Kami memberikan dukungan yang konsisten untuk menjaga kesegaran data (pembaruan diferensial dan pengindeksan ulang otomatis), menganalisis log penggunaan, dan terus meningkatkan akurasi."]},summary:{title:"Tren Teknologi RAG",paragraphs:['Antara tahun 2025 dan 2026, teknologi RAG akan memasuki fase "implementasi dasar hingga kualitas produksi". Selain pencarian vektor sederhana, Pencarian Hibrida, yang menggabungkan beberapa metode pencarian, Pemeringkatan Ulang, yang menyusun ulang hasil pencarian, dan Penguraian Kueri, yang menguraikan dan memproses pertanyaan yang rumit, telah menjadi konfigurasi standar.',"Strategi pemotongan juga telah berkembang, dengan pemotongan hirarkis yang mempertimbangkan struktur dokumen, pemotongan yang tumpang tindih, dan pemotongan multimodal yang memproses tabel dan gambar secara terpisah, yang semuanya berkontribusi pada peningkatan akurasi. Pengambilan Kontekstual (menambahkan informasi kontekstual ke dalam potongan-potongan) juga telah diakui secara luas sebagai sesuatu yang efektif.","Untuk pemilihan DB vektor, selain layanan terkelola seperti Pinecone, Weaviate, Qdrant, dan Milvus, PostgreSQL pgvector dan FAISS lokal menawarkan berbagai pilihan untuk memenuhi kebutuhan Anda. Model penyematan juga tersedia, termasuk text-Embedding-3-besar, Cohere Embed v3, dan model multibahasa.",'In enterprise deployments, authority management (ACL) linkage, PII masking, audit logs, and multi-tenant design are essential requirements, and there is a need to move from a "working PoC" to a "production-ready production system.'],icons:[{label:`Hibrida
250Pencarian`},{label:`Multi-modal
251RAG`},{label:`Agen
252RAG`},{label:`Perusahaan
253Keamanan`}]},features:{title:"Fitur desain dan pengembangan",subtitle:"Desain & Pengembangan",items:[{title:"Pengumpulan data dan pipeline prapemrose
253san",description:"Data extraction and cleansing from PDF, Word, Excel, HTML, Markdown, Slack, Confluence, SharePoint, etc. Multi-modal support including OCR, table structure analysis, and image caption generation. Maintain freshness with differential updates and scheduled execution."},{title:"Desain sistem pencarian presisi tinggi",description:"Construct high-precision search combining Vector Search + BM25 Hybrid Search, Reranking by Cohere Rerank / Cross-Encoder, and Query Expansion and Decomposition. Metadata filtering and permission-based access control are also implemented."},{title:"Response generation and quality control",description:"Improved answer quality with context optimization, Few-shot prompts, and Chain-of-Thought inference. Source clarification, confidence score display, and halcination detection are implemented to ensure reliability for business use."},{title:"Operation and improvement cycle",description:"We provide operational support including usage log analysis, search hit rate and response satisfaction monitoring, continuous improvement through feedback loops, A/B testing infrastructure, Embedding model updates, and chunking strategy reviews."}]},techStack:{title:"Technology stack: Vector / RAG",subtitle:"Platform & Technology",categories:{embeddingModels:{title:"Embedding Models",items:["OpenAI text-embedding-3-large","Cohere Embed v3","Voyage AI","Jina Embeddings v3","BGE-M3 (multilingual)","multilingual-e5-large","Japanese-specific models"]},vectorDatabases:{title:"Vector Databases",items:["Pinecone (Managed)","Weaviate (Hybrid Search)","Qdrant (high performance)","Milvus (large scale)","Chroma (lightweight)","PostgreSQL pgvector","FAISS (local)"]},chunking:{title:"Chunking & Processing",items:["hierarchical chunking","Semantic Chunking","Overlapping Chunks","Sentence Window","Contextual Retrieval","Table and chart processing","Multimodal support"]},search:{title:"Search & Retrieval",items:["Hybrid Search (Vector + BM25)","Cohere Rerank","Cross-Encoder Reranking","Query expansion and decomposition","HyDE (Hypothetical Document Generation)","Self-Query Retrieval","Multi-Query Retrieval"]}},updateNote:{title:"Poin-poin pembaruan utama untuk tahun 2026",description:"Dalam model Embedding, text-Embedding-3-large dan Cohere Embed v3 menjadi standar industri, dan kinerja bahasa Jepang meningkat secara signifikan; Contextual Retrieval terbukti efektif, dan menambahkan konteks ke chunk menjadi metode standar. Hybrid Search + Reranking menjadi konfigurasi wajib untuk pencarian, mengurangi jumlah konfigurasi pencarian vektor sederhana, dan Agentic RAG (agen secara dinamis memilih strategi pencarian) mulai diterapkan secara praktis. Dari sisi operasional, penekanan ditempatkan pada pembentukan siklus pengukuran dan perbaikan kualitas menggunakan kerangka kerja evaluasi RAG (RAGAS, LangSmith)."}},cta:{title:"Contact Us",description:`We can consult with you from the requirements arrangement.
254PoC and local LLM configurations can also be considered.`,primaryButton:"Contact Us",secondaryButton:"Technical Consultation"}},fx={hero:{badges:["Full Stack","Integrasi LLM","Desain API"],title:"Pengembangan Aplikasi Kecerdasan Buatan",description:"Desain dan bangun aplikasi praktis yang memanfaatkan LLM."},mission:{title:"Ringkasan Layanan Pengembangan Aplikasi Kecerdasan Buatan (AI)",paragraphs:["Kami menyediakan layanan desain dan pengembangan aplikasi kecerdasan buatan (AI) yang menciptakan nilai bisnis dengan menganalisis data yang diperoleh dari API eksternal menggunakan LLM, menghubungkan API dengan berbagai sumber data seperti CRM, ERP, SaaS, sensor IoT, dan media sosial, serta memasukkan data yang diperoleh ke dalam LLM secara real-time. Kami memfasilitasi analisis data canggih yang tidak dapat dicapai dengan alat BI konvensional, seperti pembangkitan laporan analitis menggunakan bahasa alami, deteksi anomali, prediksi tren, dan klasifikasi otomatis.","Tidak hanya integrasi API sederhana, tetapi juga integrasi sumber data yang beragam, pembersihan data, dan konversi ke format yang mudah diinterpretasikan oleh LLM melalui pemrosesan terstruktur. Prompt engineering memaksimalkan akurasi analisis dan menghasilkan output yang disesuaikan dengan kebutuhan bisnis. Kami mengembangkan aplikasi praktis yang menggabungkan data dan AI, seperti data penjualan untuk memprediksi negosiasi bisnis, log dukungan pelanggan untuk melakukan analisis VoC, dan data sensor untuk memberikan rekomendasi pemeliharaan peralatan.","Kami mendukung berbagai antarmuka, seperti aplikasi web, aplikasi seluler, integrasi Slack/Teams, dan pemrosesan batch berkala. Kami menyediakan dukungan yang konsisten mulai dari definisi persyaratan hingga desain API, implementasi integrasi LLM, dan operasi produksi."]},summary:{title:"Tren dalam Pengembangan Aplikasi Kecerdasan Buatan",paragraphs:["Dari tahun 2025 hingga 2026, pengembangan aplikasi kecerdasan buatan (AI) memasuki fase praktis berdasarkan integrasi API dan analisis model bahasa besar (LLM). Analisis data tidak terstruktur dan pembangkitan wawasan bahasa alami, yang sebelumnya tidak dapat ditangani oleh alat BI tradisional dan dashboard, mulai diintegrasikan ke dalam sistem perusahaan.","Yang patut diperhatikan adalah kematangan fungsi Output Terstruktur LLM, yang memungkinkan kontrol output yang sepenuhnya sesuai dengan JSON Schema, sehingga memungkinkan implementasi pipeline otomatis end-to-end. Dalam pipeline ini, data yang diperoleh melalui API dianalisis oleh LLM, dan hasilnya langsung diteruskan ke sistem berikutnya. Eksekusi multi-tahap dari Function Calling memungkinkan pengumpulan, integrasi, dan analisis data dari berbagai API ditangani dalam satu alur kerja.","Dalam infrastruktur pemrosesan data, Polars telah menjadi standar untuk pemrosesan berkecepatan tinggi, dan ketika digabungkan dengan pemrosesan streaming, hal ini memudahkan analisis real-time.","Dalam implementasi korporat, kebutuhan telah bergeser dari pengembangan PoC (Proof of Concept) satu kali menjadi desain yang skalabel untuk operasi produksi, yang memerlukan desain arsitektur komprehensif yang mencakup optimasi biaya, penanganan kesalahan, dan dukungan log audit."],icons:[{label:"Kecerdasan Buatan Agensi"},{label:"Protokol MCP"},{label:"Multi Agen"},{label:"Manusia dalam Lingkaran"}]},features:{title:"Fitur desain dan pengembangan",subtitle:"Desain & Pengembangan",items:[{title:"Integrasi API dan desain pengumpulan data",description:"Bangun infrastruktur pengumpulan data yang mendukung berbagai protokol seperti REST API, GraphQL, WebSocket, dan Webhook. Kami merancang alur pengumpulan data yang stabil dengan mengimplementasikan proses autentikasi (OAuth, API key, JWT), pembatasan laju, dan mekanisme retry. Kami juga mendukung integrasi data, penjadwalan, dan pengumpulan data secara selektif dari berbagai API."},{title:"Prasunting dan pengorganisasian data",description:"Mengonversi data mentah ke dalam format yang dapat dianalisis secara efisien oleh LLM, termasuk pemrosesan JSON, pembersihan data, normalisasi, dan penanganan nilai yang hilang, serta melakukan segmentasi dan ringkasan data secara o
254ptimal dengan mempertimbangkan batasan jendela konteks. Penugasan metadata memastikan jejak audit hasil analisis."},{title:"Analisis LLM dan desain prompt",description:"Maksimalkan akurasi analisis data dengan merancang templat prompt yang disesuaikan dengan kebutuhan bisnis Anda. Kami membangun pipeline analisis untuk klasifikasi, ringkasan, analisis sentimen, deteksi anomali, pembangkitan prediksi, dan sebagainya. Kami menggunakan Function Calling dan Structured Output untuk menghasilkan output dalam format yang dapat diintegrasikan dengan mudah ke sistem berikutnya."},{title:"Implementasi dan pengoperasian aplikasi",description:"Kami menyediakan hasil analisis melalui berbagai antarmuka, termasuk FastAPI, aplikasi web menggunakan Next.js, dll., bot Slack/Teams, dan eksekusi batch terjadwal. Dashboard, pemberitahuan peringatan, dan pembangkitan laporan otomatis diimplementasikan dan disediakan dalam bentuk yang dapat langsung digunakan oleh pengguna bisnis. Kami juga menyediakan pemantauan operasional, optimasi biaya, dan perbaikan berkelanjutan."}]},techStack:{title:"Tumpukan Teknologi: Pengembangan Aplikasi Kecerdasan Buatan",subtitle:"Platform & Teknologi",categories:{apiIntegration:{title:"Integrasi API",items:["REST / GraphQL / WebSocket","OAuth 2.1 / Kunci API / JWT","Webhook / Polling","Apache Airflow / Prefect","Seledri / Waktu","permintaan / HTTP/X / AIOHTTP","Pembatasan Kecepatan / Ulangi","Validasi Data (Pydantic)"]},dataProcessing:{title:"Pengolahan Data",items:["Panda / Beruang Kutub","Parser JSON / JSONL","Pipa Pembersihan Data","Apache Spark (Pemrosesan skala besar)","dbt (konversi data)","Harapan Besar","Danau Delta / Gunung Es","Streaming (Kafka / Flink)"]},llmCloud:{title:"LLM Berbasis Awan",items:["OpenAI GPT-4o / GPT-4.1","Claude 3.5 / Claude 4","Gemini 2.0 / Gemini 2.5","Perintah R+ (Cohere)","Mistral Besar"]},llmLocal:{title:"LLM Lokasi",items:["Llama 3.3 / Llama 4","Mistral / Mixtral","Kuartal 2,5 / Kuartal 3","DeepSeek V3 / R1","Batu Permata 2 / Batu Permata 3","Phi-4","ELYZA / Swallow (spesialis dalam bahasa Jepang)","Perintah R (Cohere)"]},inference:{title:"Penarikan Kesimpulan / Kerangka Kerja",items:["Bahasa Visual dan Pemodelan Bahasa / Bahasa Ruang","Ollama / llama.cpp","LiteLLM Proxy","Function Calling","Output Terstruktur","Mesin Template Prompt","LangChain / LlamaIndex","Pipa Analisis Proprietary"]},application:{title:"Lapisan Aplikasi",items:["FastAPI / Litestar","Next.js / React","Slack SDK / Teams SDK","Streamlit / Gradio","Tugas Terjadwal (Cron / Cloud Scheduler)","PostgreSQL / MongoDB","Redis (Cache / Antrian)","Docker / Kubernetes"]}},updateNote:{title:"Poin-poin pembaruan utama untuk tahun 2026",description:"Di area analisis LLM, fungsi Output Terstruktur GPT-4.1 dan Claude 4 telah matang untuk mengstandarkan kontrol output yang mematuhi JSON Schema secara ketat, dan eksekusi bertahap panggilan fungsi memungkinkan pengumpulan dan analisis data kompleks melintasi beberapa API dalam satu pipa. Eksekusi bertahap panggilan fungsi memungkinkan pengumpulan dan analisis data kompleks melintasi beberapa API dalam satu pipa. Dalam pemrosesan data, Polars telah menjadi alternatif yang mapan untuk Pandas dalam pemrosesan berkecepatan tinggi, dan bersama dengan pemrosesan streaming, memfasilitasi pembangunan infrastruktur analisis real-time. Di lapisan aplikasi, integrasi alat eksternal menggunakan MCP telah menjadi hal yang umum, mempercepat pengembangan aplikasi agen di mana LLMs memanggil API secara otonom untuk mengumpulkan dan menganalisis data."}},cta:{title:"Hubungi Kami",description:"Kami dapat berkonsultasi dengan Anda mulai dari tahap penetapan persyaratan. PoC dan konfigurasi LLM lokal juga dapat dipertimbangkan.",primaryButton:"Hubungi Kami",secondaryButton:"Konsultasi Teknis"}},kx={seo:_A,header:HA,hero:$A,mission:QA,businessServices:JA,features:ZA,businessProcess:XA,story:YA,contact:ex,footer:ax,cookiePolicy:nx,about:tx,portfolio:ix,common:sx,privacyPolicy:rx,termsOfService:ox,weatherMap:lx,agentDevelopment:dx,faq:ux,pricing:cx,aiTranscription:mx,keywordTracking:px,onPremiseLLM:gx,vectorRAG:hx,aiAppDevelopment:fx},bx={home:{title:"人工智能驱动的解决方案平台 - telet.ai",description:"通过人工智能驱动的通话分析,革新您的客户对话体验。获取实时洞察、情绪分析和绩效追踪,助力团队提升业绩。"},about:{title:"组织信息 - telet.ai",description:"Learn about telet.ai's mission to transform customer conversations with AI. Meet our team and explore our journey."},privacy:{title:"隐私政策 - telet.ai",description:"Review telet.ai's privacy policy to understand how we handle your data and protect your privacy."},terms:{title:"服务条款 - telet.ai",description:"Read telet.ai's terms of service for using this website and contacting us for consultations."},cookies:{title:"Cookie政策 - telet.ai",description:"Learn how telet.ai uses cookies and similar technologies (Cloudflare and Google Analytics)."},portfolio:{title:"作品集 - telet.ai",description:"探索我们的人工智能解决方案组合,这些方案旨在提升您的业务运营和客户体验。"},agentDevelopment:{title:"企业人工智能代理设计与开发 - telet.ai",description:"设计并构建符合生产级标准的人工智能代理,使其完美契合您的工作流程、工具及合规需求ã€
254‚"},onPremiseLLM:{title:"本地部署的大型语言模型运维 - telet.ai",description:"在您的环境中运行现代大型语言模型,实现强大的数据控制、可预测的成本和低延迟推理。"},vectorRAG:{title:"矢量RAG与索引设计 - telet.ai",description:"设计针对每个工作流定制的检索管道和索引,以提升答案的准确性。"},aiAppDevelopment:{title:"人工智能应用开发 - telet.ai",description:"构建由大型语言模型驱动的实用应用程序——与您的API、数据和业务流程深度集成。"}},yx={brand:"telet.ai",nav:{services:"服务",portfolio:"投资组合",about:"组织信息",contact:"联系方式"}},vx={brandName:"telet.ai",tagline:"多种人工智能通信",badge:"人工智能驱动的呼叫智能",title:{line1:"地方性和防御性、",line2:"在云中扩展、",line3:"由代理自动完成。"},description:"SLM 中的边缘推理可确保数据主权,而 LLM 中的云集成可将处理能力扩展到无限大;采用 Agentic AI 架构的领先企业已初见成效。"},Ax={badge:"我们的使命",title:"让法学硕士更容易获得",paragraphs:['你们真的能走这么远吗?"--这种惊喜正是我们的目标。','大规模语言建模(LLM)的潜力与日俱增。然而,我们希望打破 "我担心向外部应用程序接口发送机密数据"、"高级人工智能应用只适合大公司 "和 "实施成本不值得 "等障碍。',"我们擅长在您的环境中建立本地 LLM。高度敏感的客户信息可以安全地使用,而不会暴露给外界。我们可以最大限度地发挥人工智能的优势,同时确保数据安全。","它可以处理从日常文件创建和数据组织到专业分析和决策支持等一切事务。我们专有的代理技术可提供与 API 模型相当的准确性。",'法律硕士不能取代人。它是一种强大的工具,可以让人们发挥更多的创造力、判断力和专业知识。我们让技术从特殊走向普通--真正实现了技术的 "消费者化"。','请随时咨询我们。我们将与您一起找出 "我们能做什么?'],animation:{label:"LLM",sublabel:"技术"}},xx={title:"服务",subtitle:"商业服务",services:[{title:"面向企业的人工智能代理设计与开发",titleEn:"企业人工智能代理",description:"设计和开发针对业务需求、内部规则和数据范围进行优化的人工智能代理。支持从外部 API 类型的 LLM 到本地 LLM。",badges:["个性化设计","与 LLM 兼容","商业专业"],link:"详细信息。"},{title:"承诺的 LLM 服务器",titleEn:"内部 LLM 服务器",description:"在公司专用服务器内运行 7B 至 120B 规模的 LLM。提供安全灵活的 LLM 使用环境,避免外部数据传输风险。",badges:["支持 7B-120B","发布的 API KEY","安全设计"],link:"详细信息。"},{title:"矢量 RAG 和索引设计",titleEn:"矢量 RAG 架构",description:"按业务内容和分析逻辑分离和优化 RAG 数据。设计索引,实现快速准确的搜索。",badges:["索引分离","高速搜索","多种语言支持"],link:"详细信息。"},{title:"人工智能应用开发",titleEn:"人工智能应用开发",description:"利用现有的应用程序接口和外部数据,开发以 LLM 分析和生成为核心的实用人工智能应用。",badges:["API 链接","法学硕士分析","综合设计"],link:"详细信息。"}]},Lx={title:"使用人工智能技术的成就项目",subtitle:"人工智能开发经验涉及多个领域,包括多语言助手、天气预报、本地 LLM 和安全监控。",viewDetails:"查看详情 →。",items:[{title:"人工智能多语种助手",description:"RAG + LLM 的多语言聊天助手。用日语、英语和中文等多种语言高度准确地回复咨询。"},{title:"天气预报系统",description:"学习天气数据并生成å
254®žæ—¶é¢„报。通过使用时间序列模式识别和 RAG 搜索过去的类似模式,生成高精度预报。"},{title:"内部服务器 / On-Prem Local LLM",description:"我们提供为您的业务运营量身定制的人工智能,以开放式 WebUI 作为通用入口点,使用 Ollama/MLX 快速推理通道,并为每个 UID 提供完全分离的数据域,可在贵公司内部随时使用。在 RAG 中捕获内部文档,并进行英语嵌入和日语自动查询翻译,同时安全地执行新闻摘要、文档组织和日常任务等业务技能。技能执行系统作为 OpenClaw 容器进行隔离,并受到三层 Cloudflare 边缘和本地 Nginx 的保护。我们为模型选择、技能设计和运行策略提供全面支持,并以部署当天即可使用的形式启动贵公司的专用人工智能。"},{title:"行星际轨道到达预测 (AI)",description:"从 NASA API 获取行星数据,并在 LLM 中解释轨道计算结果。生成有关发射窗口、所需时间和燃料效率的报告。"},{title:"房地产数据 AI 分析",description:"通过网络搜刮收集房地产信息,并使用 LLM + Python 进行分析。自动生成价格趋势、市场预测和投资回报。"},{title:"人工智能算命(四柱算命)",description:'用 Python 重现 "命运四柱 "的逻辑,并用 LLM 进行解释。从天文学应用程序接口获取坐标和时间,以便对运势和兼容性进行个性化评估。'},{title:"Google Workspace AI integration",description:"LLM 与 Gmail、Drive、Calendar 等的集成。人工智能辅助电子邮件摘要、文件搜索和日程安排。"},{title:"世界新闻报》多语化",description:"实时收集世界新闻,由 LLM 进行多语言翻译和摘要。基于上下文理解的自然翻译和摘要生成。"},{title:"安全日志监控 AI 管理器",description:"实时监控安全日志,通过 LLM 进行威胁检测和分析,并通过 RAG 与过去的攻击模式进行比对,立即发出警报。"}]},Px={title:"如何开展项目",headline:"你需要的只是一个愿景。",paragraphs:['虽然我们使用人工智能翻译,但通过充分利用图像共享的独特工作流程,我们可以处理 14 种语言的商务谈判和开发。即使是复杂的规格,也可以通过图片样本进行核对,以避免沟通不畅。唯一重要的是 "您想要创造什么"。',"项目开始时,首先要对业务申请进行初审。在大致了解客户的愿景和对问题的认识后,签署保密协议(NDA)。在创造一个可以秘密讨论机密信息的环境后,我们会进行详细的访谈并确认需求。根据内容,我们会准备一份提案,并通过样本图片确认项目的方向。在达成共识的基础上,我们制定规格并开始开发。","此流程仅为一般性介绍。我们将根据您的情况和日程表灵活调整。无论您身在何处,即使语言不通,图像和人工智能都将为您的交流提供支持。您何不加入我们,进入无人涉足的前沿市场?让 telet.ai 成为您的合作伙伴,将您的想法变成现实。"],cards:[{title:"听证会/NDA",description:"通过电子邮件进行初步听证后,我们会签署一份保密协议。您可以放心地向我们提供详细信息。"},{title:"规划与 CA",description:"提供建议和图片样本。支持 14 种语言,让您无语言障碍地开展工作。"},{title:"取样和启动",description:"我们将在达成一致意见后制定规格并开展业务。"},{title:"开发、测试和运行",description:"通过敏捷开发快速实施。从测试到运行支持,我们始终如一地提供支持。"}]},wx={badge:"案例研究",title:"人工智能介绍故事",items:[{title:"业务效率和降低成本解决方案",subtitle:"减少日常工作量,创造一个可以专注于核心业务的环境。",description:'许多中小型企业(SMEs)面临劳动力短缺和招聘困难的问题。即使雇用了新员工,培训成本也很高,而且还存在留用率问题。我们的人工智能解决方案可支持日常任务,如自动化预算管理、数据录入和组织、内部文件检索以及自动生成报告和文件。人工智能助手可以全年 365 天、每天 24 小时无差错地处理过去需要耗费大量时间的日常任务。引入人工智能的公司都实现了工时的大幅缩减。从 "增加人力资源 "到 "与人工智能合作"。我们将竭尽全力支持贵公司的工作方式改革。'},{title:"客户支持自动化",subtitle:"24 小时服务可提高客户满意度并降ä
254½ŽåŠ³åŠ¨åŠ›æˆæœ¬ã€‚",description:"人工智能聊天机器人可对常见问题进行自动回复,对咨询进行初级回复和分类,并以多种语言进行实时回复。多语言实时回复。人工操作员可以专注于复杂案例,提高客户服务质量。使用人工智能客户支持,让您的服务质量更上一层楼。"},{title:"知识和文件利用人工智能",subtitle:"以任何人都能立即利用的形式提供内部知识资产",description:'手册在哪里?有些信息只有前任知道"--非个性化的知识阻碍了公司的发展。我们的 RAG(搜索扩展生成)技术让您只需用自然语言提问,就能从内部手册、常见问题和过往文档中检索到必要信息。它可以简化新员工的培训,将老员工的隐性知识数字化,并实现跨部门的知识共享。现有文件可以原封不动地使用,因此无需创建新文件。'},{title:"用于医疗和护理的图像分析人工智能",subtitle:"人工智能提供 24 小时全天候支持",description:"在医疗和护理领域,需要用有限的人员看护大量病人和用户。我们的图像/视频分析人工智能可从摄像头图像中实时检测异常情况。它能通过检测发烧自动检测传染病,在病人跌倒或徘徊时立即发出警报,并通过分析面部表情检测身体状况的变化。通过减轻夜间巡逻负担、快速应对紧急情况和自动记录任务,工作人员可以专注于主要的护理工作。为确保隐私,还可进行内部安装。"}]},Sx={title:"联系我们",description:"我们可以从需求规划阶段就开始为您提供咨询,还可以考虑 PoC 和本地 LLM 配置。",openForm:"开放式表格",closeForm:"关闭表格",form:{name:"您的姓名",namePlaceholder:"山田太郎",email:"电子邮件地址",emailPlaceholder:"[email protected]",subject:"议题",subjectPlaceholder:"咨询主题",message:"留言",messagePlaceholder:"请填写您的询问",required:"*",submit:"发送",submitting:"发送...",turnstileMessage:'提交时需要 "我不是机器人 "授权。',turnstileError:"加载安全授权失败。请重新加载。",errorRetry:"请重试。"}},Ix={brand:"telet.ai",tagline:"多种人工智能通信",description:"利用人工智能代理创新业务。从对话中创造价值。",sections:{product:{title:"产品",features:"特点",benefits:"导言",testimonials:"客户评价"},services:{title:"服务",agentDev:"面向企业的人工智能代理设计与开发",onPremise:"承诺的 LLM 服务器",vectorRag:"矢量 RAG 和索引设计",aiApp:"人工智能应用开发"},company:{title:"组织信息",about:"关于 telet.ai",profile:"代表简介",contact:"联系我们"},process:{title:"我们如何开展业务",hearing:"听证会/NDA",planning:"规划与 CA",sampling:"取样和启动",development:"开发、测试和运行"}},copyright:"© 2026 telet.ai。保留所有权利。",legal:{privacy:"隐私政策",terms:"使用条款",cookies:"Cookie 政策"}},Mx={title:"Cookie 政策",subtitle:"本节介绍本网站使用的 cookie 和其他技术(Cloudflare / Google Analytics)。",lastUpdated:"最后更新日期:2026 å¹´ 1 月 22 日",intro:'telet.ai("我们"、"我们的"、"我们的")("我们")可能使用 cookie 和类似技术来提供和改进本网站,并确保其安全性。我们不为广告目的设置自己的特殊跟踪 cookie(尽管 Cloudflare 和 Google Analytics 可能会根据各自的服务规范设置 cookie 或类似技术)。',sections:{what:{title:"1. 什么是 cookie?",description:"Cookie 是访问网站时存储在浏览器中的小文本文件。"},howWeUse:{title:"我们使用 cookie 等的目的",description:"我们使用 cookie 等主要用于以下目的",items:["稳定网站的显示和运行","检测和防止未经授权的访问和恶意流量","了解通道状况,帮助改进网站"]},googleAnalytics:{title:"3. 谷歌分析的使用",description:"我们使用 Google LLC 提供的 Google Analytics 4 (GA4) 进行访问分析。",items:["收集的信息可能包括浏览的页面、花费的时间、推荐来源、设备和浏览器信息等。","我们不会将可直接识别个人身份的信息(姓å
254ã€ç”µå­é‚®ä»¶åœ°å€ç­‰ï¼‰ç”¨äºŽå‘送给谷歌分析。","谷歌对数据的处理应遵守谷歌的条款和政策"]},cloudflare:{title:"4. 使用 Cloudflare",description:"我们使用 Cloudflare, Inc.Cloudflare 可能会出于 DDoS 保护和防止僵尸等目的而设置和引用 cookies 等。",items:["主要目的是为了安全和优化通信,而不是为了广告投放进行跟踪","Cloudflare 对数据的处理受 Cloudflare 条款和政策的约束"]},noSpecialCookies:{title:"5. 我们自己的特色饼干",description:"我们不会为行为定向广告等目的设置自己的特殊 Cookie。Cookie 等的使用主要限于网站运行、安全和访问分析的范围。"},choices:{title:"6. cookie 管理(选择退出)",description:"如果禁用 cookie,某些功能可能无法使用。",items:["可在浏览器设置中删除或禁用 Cookie","如果您希望禁用 Google Analytics 的测量功能,请使用 Google 提供的退出方法","使用浏览器的私人模式等可以限制存储的信息。"]},changes:{title:"7. 对本政策的修改",description:"我们可能会根据法律法规的修订或所使用服务的变更修订本政策。修订后的政策将在本页面发布后生效。"},contact:{title:"8. 联系我们",description:"如果您对本政策有任何疑问,请通过以下方式联系我们",company:"telet.ai",contactLink:"转到咨询表"}}},jx={hero:{title:"关于 telet.ai",subtitle:"细心的人工智能开发支持,只有小型的个性化团队才能提供。"},story:{title:"组织信息",content:"telet.ai始于一个问题。为什么这么多公司都无法利用公司与其客户之间无数次互动中蕴含的洞察力?为了直面这个问题,我们成立了一个团队,由一位拥有ä
254ººå·¥æ™ºèƒ½ç ”究和企业软件开发经验的代表领导。我们不是一家大型企业。因此,我们能够深入面对您所面临的挑战,并只提出真正必要的解决方案。我们的优势在于能够设计出整合本地 LLM 和云 LLM 的混合架构。我们可以在专用云环境中保护贵公司的敏感数据,同时以可扩展的方式执行高级人工智能推理。我们为开发人员提供 CLI,为一线员工提供聊天 UI,为整个企业的人工智能应用奠定基础。我们专注于成为最佳解决方案,而不是最先进的解决方案。根据预算放弃功能,只审查一种配置,就能在成本上产生巨大差异。我们根据您的需求提供您所需的服务。我们之所以能够提供周到的人工智能开发支持,是因为我们规模小、个性化强。解决人力短缺问题,支持贵公司发展。这就是 telet.ai 的承诺。"},representative:{title:"telet.ai labo 代表",name:"Keita Okuizumi",tagline:"向着天空、大海和代码--不寻常的职业生涯催生了对人工智能开发的热情",paragraphs:['作为一名前私人飞行员(PPL)和船舶执照持有者,我多年来一直在空中和海上与天气打交道。在驾驶舱和舵手室里,我观察气压计的变化,解读等压线,并将其与风和云的移动进行比较。在这种反复的过程中培养起来的 "阅读数据、判断和行动 "的意识是我今天的起点。','我从 57 岁开始学习 Python 编程。起初只是出于好奇,但一开始写代码,我就被人工智能代理的可能性深深吸引。我亲手创建了应用程序,运行并改进它们。在这个过程中,我意识到了一些东西。在过去的项目中,我是以非工程人员的身份参与的,开发工作总是由其他人完成。然而,当我开始亲自编写代码时,我开始看到了问题的本质。这是这里的瓶颈 "或 "这个设计无法扩展"--有了工程师的视角,实现我想要做的事情的速度就大大加快了。',"通过将实地经验与数据科学相结合来开发气象服务,建立人工智能代理来提高运行效率,以及开展各种实验项目。随着我不断亲手工作,我不仅相信这项技术很有趣,而且相信一定有人需要这项技术。","我们的目标不是追逐最前沿。我们正视客户的问题和预算,以合理的成本提供真正必要的服务。我们的组织规模不大,因此能够根据每个客户的需求提供量身定制的开发支持。我们希望利用这项技术造福社会--这就是我们推出 telet.ai 的原因。"]},contact:{title:"关于我们",company:"telet.ai labo",ceo:"代表: OKUIZUMI Keita代表: OKUIZUMI Keita",button:"联系我们"},studios:{tokyo:{title:"东京工作室",address:"#301 First Hills A Musashikoganei, 3-3-21 Nukuiminamicho, Koganei-shi, Tokyo 184-0014, Japan"}}},Cx={title:"投资组合",subtitle:"查看我们利用人工智能技术的记录",techStackLabel:"技术堆栈",viewProject:"查看项目",privateProject:"私人项目",visualizationLabel:"数据可视化",cta:{title:"联系我们",description:"如需讨论您的项目或进行技术咨询,请随时与我们联系。",button:"联系我们"},projects:{"traffic-route-ai":{title:"AI交通路线选择系统",subtitle:"连接马来西亚公共交通,辅助路线选择",description:"根据出发地和目的地搜索公交与铁路组合路线,并按到达时间、行程时长和换乘次数比较方案。支持仅公交、仅铁路筛选、附近车站搜索及多语言界面,帮助用户为日常出行和旅行选择合适的路线。",techStack:["公共交通路线搜索","公交与铁路整合","路线比较","多语言界面"]},"multilingual-assistant":{title:"人工智能多语种助手",description:"针对多语言咨询的智能聊天助手,建立了 1,573 个矢量索引,并通过条件分支、NG 词过滤和关键词触发实现了精确的答案控制。通过跨语言语义搜索,以日语、英语和中文等多种语言生成一致且高度准确的用户问题答案。",techStack:["RAG","矢量搜索","多语言嵌入","LLM","条件分支逻辑"]},"weather-forecast":{title:"利用天气 API 进行人工智能天气预报",description:"开发了一个人工智能系统,该系统可从过去的天气数据中学习,并对近期天气情况进行实时预报。LLM 分析从 JMA API、OpenWeatherMap 等获取的过往数据,生成温度、降水概率、风速等短期预报。该系统将时间序列数据的模式识别与 RAG 的过去相似性模式搜索相结合,实现了与传统统计模型互补的高精度预报。",techStack:["天气 API 链接","LLM","RAG","时间序列数据分析","实时处理"]},"local-llm":{title:"内部服务器 / On-Prem Local LLM",description:"我们提供为您的业务运营量身定制的人工智能,以开放式 WebUI 作为通用入口点,使用 Ollama/MLX 快速推理通道,并为每个 UID 提供完全分离的数据域,可在贵公司内部随时使用。在 RAG 中捕获内部文档,并进行英语嵌入和日语自动查询翻译,同时安全地执行新闻摘要、文档组织和日常任务等业务技能。技能执行系统作为 OpenClaw 容器进行隔离,并受到三层 Cloudflare 边缘和本地 Nginx 的保护。我们为模型选择、技能设计和运行策略提供全面支持,并以部署当天即可使用的形式启动贵公司的专用人工智能。",techStack:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"]},"orbital-prediction":{title:"行星际轨道到达预测 (AI)",description:"开发了一个系统,通过从美国航天局应用程序接口获取行星位置数据、轨道要素和重力参数,分析行星际转移的最佳出发点。使用 API 和 Python 计算考虑霍曼转移轨道和重力辅助的轨道计算结果,并显示发射窗口、所需时间和燃料效率。该系统被用作教育机构和航天相关公司的模拟工具。*目前已删除人工智能功能,正在使用 API 和 Python 进行计算。",techStack:["NASA API (Horizons, SPICE)","轨道动力学计算","Python","数据可视化"]},"real-estate":{title:"房地产数据 AI 分析",description:"开发了一个系统,通过网络搜刮收集特定地区的房地产信息,并使用 LLM 和 Python 进行高级数据分析。系统提取了房产价格、坪数单价、楼龄和车站距离等变量,并自动生成价格趋势分析、市场预测和投资回报模拟ã€
254‚此外,还使用 LLM 从非结构化的物业描述中提取特征,结合定量数据提供全面的市场分析。*现提供第二版(完整版单独提供)",techStack:["网络搜刮(Scrapy、Playwright)","Python","大熊猫","法学硕士分析","数据可视化"]},"fortune-ai":{title:"四大支柱人工智能评估系统",subtitle:"用技术再现传统智慧",paragraphs:["Four Pillars of Divination(四柱占卜)是东方数千年占卜术的结晶。该系统完全使用 Python 重现了传统的占卜逻辑,并结合使用 LLM(大型语言模型)进行解释和生成建议。人工智能忠实再现了算命专家的评估过程。","输入出生日期、时间和地点后,系统会从天文 API 中检索当时的日出日落时间和坐标信息。根据这些数据,系统会准确计算出十二生肖、十神和五行平衡。基于四柱命理占卜科学的逻辑被编入 Python 索引,并与统计数据和 RAG(检索增强生成)信息相结合,以提高命式分析的准确性。","LLM 会用自然语言通俗易懂地解释计算出的生活方式数据。生成个性化的评估结果,包括您的运势流向、人际关系的兼容性以及适合您的职业。您可以获得与咨询专业算命师一样深入的答案。","目前有第二个版本。您可以试用基本的命理分析和运势分析。完整版包括更详细的分析和多方面的建议,可单独购买。"],techStack:["Python","天文 API(日出日落、时区数据库)","四大支柱逻辑","LLM","坐标和时间计算"]},"google-workspace":{title:"Google Workspace AI integration",description:"开发了一个将谷歌工作空间(Gmail、Drive、Calendar、Docs、Sheet)与 LLM 相结合的系统,用于读取、编辑和自动处理业务数据。人工智能可协助完成日常任务,如汇总电子邮件内容、生成自动回复草稿、搜索和分析 Drive 文件、从日历中提取日程安排并提出调整建议。此外,还可通过带 OAuth 身份验证的安全 API 连接和符合 MCP 标准的工具设计,从代理中实现工作区操作。第二版现已推出(完整版将另行提供)。",techStack:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"]},"world-news":{title:"世界新闻报》多语化",description:"开发一个系统,从世界各地的新闻来源实时收集文章,并使用 LLM 进行多语言翻译、摘要和分类。将英文、中文、法文、阿拉伯文和其他语言的原始文章翻译成日文,并按主题进行整理。高效的国际新闻监测不是通过简单的机器翻译实现的,而是通过使用 LLM 进行上下文理解的自然翻译和提取文章要点的摘要生成实现的。*现提供第二版(完整版单独提供)。",techStack:["新闻应用程序接口","RSS 收藏","法学硕士翻译和摘要","多语言处理","自动分类","计划批处理"]},"security-monitoring":{title:"安全日志监控 AI 管理器",description:"利用 LLM 开发了一个实时监控企业安全日志和高级威胁检测与分析系统。通过 Python 模块收集和分析防火墙、IDS/IPS、身份验证日志和应用程序日志等各种日志源,并与 RAG 中积累的过往攻击模式、漏洞信息和事件案例进行比较。当检测到异常模式时,LLM 会用自然语言解释威胁级别、影响范围和建议的应对措施,并立即向负责人发出警报。如果同一模式再次出现,则会自动发出高优先级警报,以加快事件响应速度。",techStack:["Python 监控模块","日志收集(Fluentd、Logstash)","RAG","威胁模式数据库","法学硕士分析","警报通知(Slack、PagerDuty)"]}}},Dx={learnMore:"更多信息",getStarted:"开始...",contactUs:"联系我们",backToHome:"返回首页"},zx={title:"隐私政策",subtitle:"隐私政策",lastUpdated:"最后更新日期:2026 å¹´ 1 月 23 日",intro:'telet.ai(以下简称 "本服务")将保护您的个人信息视为一项重要责任,并制定了以下隐私政策。',sections:{collection:{title:"1. 要收集的信息",description:"当您与我们联系或使用本服务时,本服务可能会收集以下信息。",items:["电子邮件地址","您的姓名(可选)","咨询详情","您自愿提供的其他信息"]},purpose:{title:"2. 使用信息的目的",description:"所收集的个人信息仅用于以下目的",items:["回答和答复询问","联系方式和服务信息","项目进展所需的沟通","为改进服务而进行的分析(采用不识别个人身份的格式)"]},thirdParty:{title:"3. 向第三方提供",description:"除以下情况外,本服务不会将您的个人信息提供给第三方",items:["如果客户同意","根据法律法规要求公开时","为保护某人的生命、身体或财产而有必要时"]},security:{title:"4. 信息管理",description:"本服务将妥善管理收集的个人信息,并采取合理的安全措施,防止未经授权的访问、丢失、泄漏和篡改。"},email:{title:"5. 电子邮件的处理",description:"本服务将根据以下政策处理电子邮件。",items:["我们仅将您的电子邮件内容用于回复您的询问和提供我们的服务。","我们不会向任何第三方出售、出租或共享您的电子邮件地址","我们可能会向您发送有关我们服务的信息电子邮件。如果您想取消订阅,请使用电子邮件中的取消订阅链接,或使用下面的联系信息与我们联系。","电子邮件通信采用 SSL/TLS 加密,以确保通信安全","我们会在适当时间内安全删除您的电子邮件。"]}
254,cookies:{title:"6. cookie 的使用",description:"您可以在浏览器设置中禁用 Cookie。"},external:{title:"7. 使用外部服务",description:"本服务可能使用以下外部服务。有关各项服务的隐私政策,请参阅相应链接。",items:["Google Analytics (access analysis)","业务运营所需的其他云服务"]},changes:{title:"8. 隐私政策的变更",description:"本政策可根据法律法规的修订或服务内容的变更进行修订,恕不另行通知。修订后的政策将在本页面发布后生效。"},contact:{title:"9. 联系我们",description:"如果您对本政策有任何疑问,请通过以下方式联系我们",company:"telet.ai",contactLink:"转到咨询表"}}},Tx={title:"使用条款",subtitle:"这些是使用本网站以及向 telet.ai 预约咨询、查询和索取信息的条款和条件。",lastUpdated:"最后更新日期:2026 å¹´ 1 月 22 日",intro:'本使用条款(以下简称 "条款") 本使用条款(以下简称 "条款")适用于由 telet.ai(以下简称 "我们"、"我们的 "或 "我们的")运营的网站。(以下简称 "我们"、"我们的 "或 "我们的")运营的网站。(本网站由 telet.ai(以下简称 "我们")运营。)本网站主要作为咨询预约、查询和文件请求的登陆页面,不提供账户创建或付费结算功能。',sections:{scope:{title:"1. 适用范围",description:'本条款和条件适用于本网站的所有访问者和用户(以下简称 "用户")。使用条款适用于本网站的所有访问者和用户(以下简称 "用户")。如果我们与用户之间签订了单独的保密协议、外包协议、个人合同等,则此类文件优先于本条款和条件。'},prohibited:{title:"2. 违禁物品",description:"在使用本网站时,用户不得有以下行为",items:["违反法律法规或公序良俗的行为","任何侵犯我们或任何第三方知识产权、隐私或其他权利或利益的行为","通过未经授权的访问、过度负载、破坏等方式干扰本网站或相关系统运行的行为。","在查询表格等中提交虚假信息或冒充第三方。","未经我们事先许可,进行刮擦,逆向工程或过度自动访问"]},disclaimer:{title:"3. 免责声明",description:'我们以 "现状 "和 "可用 "为基础提供本网站。在法律允许的最大范围内,我们对本网站不作任何保证。',items:["本网站信息如有更改或删除,恕不另行通知。","我们不保证本网站信息的准确性、完整性或适用于特定用途。","对于因您使用本网站或依赖本网站所含信息而造成的任何损失,我们概不负责。","对咨询和查询的答复仅供参考,不构成法律、税务、医疗或其他专业建议。"]},ip:{title:"4. 知识产权",description:"本网站上的文本、图像、设计、商标、徽标等的所有权利均属于我们或合法权利人。未经权利人许可,不得使用。"},links:{title:"5. 外部网站链接",description:"本网站可能包含第三方网站的链接。我们不对链接网站的内容或运行负责。"},changes:{title:"6. 本条款和条件的修改",description:"我们保留在必要时随时更改这些条款和条件的权利。修订后的使用条款将在网站上公布后生效。"},governingLaw:{title:"7. 准据法和管辖权",description:"本条款受日本法律管辖并依其解释。因本网站引起或与本网站有关的任何争议,以东京地方法院为第一审专属管辖法院。"},contact:{title:"8. 联系我们",description:"如果您对这些条款和条件有任何疑问,请联系",company:"telet.ai",contactLink:"转到咨询表"}}},Ex={title:"常规动议",subtitle:"人工智能预测",description1:"各国实时提供天气信息。您的国家显示在地图中央。昨天的天气和今天的天气都是实际记录——那些雨云应该在那个日期和时间出现在您的天空中。",description2:"不过,这个动画还能演示未来的天气变化。",description3:"矢量过往数据并高速搜索模式。天气模式也可以从周围环境中预测出来。同样,通过计算环境中的要素(i)和过去业绩中的高级统计值,并让人工智能进行分析,也可以预测收成、生产和销售情况。",refresh:"刷新",loading:"正在加载天气图..."},Rx={hero:{badges:["企业","本地法律硕士","海关代理"],title:"面向企业的人工智能代理设计与开发",description:"根据业务需求设计和构建专用的人工智能代理"},mission:{title:"定制人工智能代理开发服务",description:"从设计到实施和运行,我们始终坚持开发定制的人工智能代理,以解决贵公司独特的业务问题。我们的架构设计强调与现有关键任务系统和 SaaS 环境的兼容性,实现与 API、数据库和内部工具的顺利集成。我们的工程师熟悉 LangChain、AutoGen、CrewAI 和其他主要框架,并会根据贵公司的技术栈和运营结构提出最佳解决方案。我们不仅开发一次性聊天机器人,还构建多代理系统,让多个代理相ä
254º’合作执行任务,并构建与外部工具协同工作的代理工作流。我们支持通过长期合作最大化人工智能代理带来的商业价值,包括实施后的持续改进、模型更新和运营监控系统的维护。",imageAlt:"定制人工智能代理开发服务"},summary:{title:"代理发展趋势",paragraphs:['从 2025 年到 2026 年,AI Agent 的发展正从示范阶段进入企业全面实施阶段。Agentic AI "的概念已经深入人心,超越单纯聊天机器人的自主业务执行系统已开始在各行各业运行。','直接控制浏览器和桌面的 "计算机使用代理"(如 OpenAI 的 Operator、Anthropic 的 Computer Use 和谷歌的 Project Mariner)已成为现实。模型上下文协议(MCP)是一个蓬勃发展的生态系统,可实现与数千种工具的即插即用集成。',"多代理架构已趋于成熟,专门的代理共同执行复杂的任务,如项目管理、客户支持和数据分析。A2A(Agent-to-Agent)协议标准化也为不同供应商之间的代理协作带来了进展。",'在企业实施方面,治理模式已从 "人在环中 "发展到 "人在环上",并将代理决策后审计机制和基于风险等级的自动升级作为标准功能,加速了金融、医疗和制造等受监管行业对该系统的采用。该系统在金融、医疗和制造业等受监管行业的应用正在加速。']},features:{title:"设计与开发",subtitle:"设计与开发",items:[{title:"根据业务需求进行代理设计",description:"从业务流程分析中提取用例,分解任务并明确代理职责。我们确定处理过程是可以由单个代理完成,还是需要多代理协调,并选择最佳推理模式,如 ReAct、Plan-and-Execute 和 Reflexion。"},{title:"RAG / 工具 / 工作流程集成",description:"结合嵌入生成、块策略和混合搜索的高精度 RAG 管道,通过 MCP 兼容工具定义与外部 API 和数据库的标准化连接,以及使用 LangGraph 和 CrewAI 协调多步骤工作流。使用 LangGraph 和 CrewAI 协调多步骤工作流。"},{title:"安全和授权设计",description:"通过 RBAC/ABAC、Prompt Injection 防范措施以及 PII 检测和屏蔽,对代理功能实施访问控制。保留所有输入和输出的审计日志,并支持符合 SOC2 和 ISO27001 标准的环境操作。"},{title:"实施包括运行和监测",description:"利用 LangSmith、Langfuse 等实现跟踪可视化,并实时监控延迟、令牌消耗和错误率。建立持续改进周期,包括异常检测警报、A/B 测试基础设施以及更新模型时的回归测试。"}]},techStack:{title:"技术堆栈",subtitle:"平台与技术",categories:{agentFramework:{title:"代理框架",items:["自动生成 0.4 / AG2","CrewAI","LangGraph","OpenAI 代理 SDK","人类学 MCP","Google ADK (Agent Development Kit)","语义内核","专有代理平台"]},apiLayer:{title:"应用程序接口层",items:["FastAPI / Litestar","gRPC / 连接","GraphQL 联盟","服务器发送事件(SSE)","WebSocket / NATS","OAuth 2.1 / OIDC","应用程序接口网关(金刚/特使)","自适应速率限制"]},vectorDb:{title:"矢量 DB / RAG",items:["松果","Weaviate","Qdrant","米尔沃斯","ChromaDB","pgvector","FAISS","涡轮增压器"]}
254,infrastructure:{title:"基础设施",items:["Kubernetes(EKS / GKE / AKS)","Docker / Podman","内部 GPU 集群","私有云","无服务器(Lambda/云运行)","OpenTelemetry / Langfuse","Terraform / Pulumi","ArgoCD / Flux"]}},updateNote:{title:"2026 年的主要更新点",description:"在代理框架方面,OpenAI Agents SDK、Anthropic MCP 和 Google ADK 等主要供应商的官方 SDK/协议正在崛起;在 API 层方面,gRPC 和 SSE 已成为代理对代理通信的标准,向 OAuth 2.1 的过渡正在进行中。在矢量数据库方面,Qdrant 和 Turbopuffer 因其高速搜索而备受关注。"}},cta:{title:"联系我们",description:`我们可以从需求安排开始与您协商。
255也可以考虑 PoC 和本地 LLM 配置。`,primaryButton:"联系我们",secondaryButton:"技术咨询"}},Nx={title:"常见问题",subtitle:"常见问题",items:[{question:"我可以使用现有的手册和常见问题解答而无需修改吗?",answer:"是的,您可以使用它;它支持大多数格式,包括 PDF、Word、Excel、HTML 和文本文件。只需上传您现有的内部文档,人工智能就会学习其中的内容并用来回答您的问题。无需进行格式转换或特殊处理。"},{question:"使用包含敏感信息的数据是否安全?",answer:"是的,您可以安全地使用我们的服务。无论是在内部(内部服务器)还是在私有云环境中,数据都不会传输到公司外部。我们可以根据您的安全要求提出配置建议。"},{question:"实施需要多长时间?",answer:"一个标准的常见问题机器人最快可在 2-4 周内完成。如果需要与现有系统集成或进行高级定制,我们预计需要 1-3 个月。我们还可以从小规模的 PoC(概念验证)开始。"},{question:"您是否使用 ChatGPT 或 Claude 等外部 API?",answer:"可根据要求进行选择。我们既支持使用外部 API(OpenAI、Anthropic、Google 等)的配置,也支持使用完全本地运行的开源 LLM(Llama、Mistral、Qwen 等)的配置。我们可以根据您的成本、安全性和性能要求提出最佳配置。"},{question:"人工智能的反应有多准确?",answer:"根据不同的应用和数据质量,设计合理的 RAG 系统可以对存在相关文件的问题返回准确的答案,准确率可达 90% 或更高。此外,系统还内置了标准的防错机制(生成错误信息)。"},{question:"你们支持日语以外的语言吗?",answer:"是的,我们提供多语言支持。我们支持所有主要语言,包括日语、英语、中文和韩语。一个系统即可处理多语言查询,而无需为每种语言分别建立模型。"},{question:"能否与现有系统(客户关系管理系统、聊天工具等)集成?",answer:"是的,它可以集成;它支持与 Salesforce、HubSpot、Slack、Microsoft Teams 和 LINE WORKS 等主要业务工具进行 API 集成。您可以在不改变现有工作流程的情况下集成人工智能助手。"},{question:"你们的收费结构是怎样的?",answer:"这取决于项目的规模和要求。一般来说,初始建设费和每月运营费是合在一起的,但我们也接受只提供现场开发或咨询服务的要求。请先告诉我们您的要求。我们将为您提供一个粗略的估算。"}]},Gx={title:"费率计划",subtitle:"定价计划",description:"适合企业规模的灵活计划",plans:[{name:"启动器",price:"29 800 日元",period:"每月/用户",description:"小型团队的最佳方案。基本的人工智能功能,价格合理。",features:["每月最多 100 次通话","基本转录","关键词检测","电子邮件支持","7 天数据保留"],cta:"免费开始",popular:!1},{name:"专业",price:"¥79,800",period:"每月/用户",description:"成长型团队的理想选择。先进的分析功能。",features:["每月最多 500 次通话","高精度人工智能转录","情感分析","客户关系管理连接","优先支持","30 天数据保留","自定义报告"],cta:"14 天免费试用",popular:!0},{name:"企业",price:"联系我们",period:"风俗",description:"面向大型机构的全功能计划",features:["无限通话","专用人工智能模型","现场支持","专用支持","定制协作","服务水平协议保证","安全审计","无限数据保留"],cta:"咨询销售人员",popular:!1}],faq:{title:"常见问题",items:[{question:"有免费试用吗?",answer:"是的,专业计划提供 14 天免费试用。开始使用无需信用卡。"},{question:"我可以随时更改计划吗?",answer:"是的,您可以随时升级或降级您的计划。更改将从下一个账单周期开始生效。"},{question:"有合同条款约束吗?",answer:"月租计划没有合同期限限制。如果您选择年度合同,将享受 20% 的折扣。"}]}},Ox={hero:{badge:"人工智能技术",title:"人工智能转录",description:"先进的机器学习模型可提供 99.5% 的准确率。经过数百万客户互动数据训练的人工智能可将语音转换为文本。",features:["99.5% 的准确率","实时处理","支持 40 多种语言"]},features:{title:"主要功能",subtitle:"先进的转录引擎,超越了简单的语音识别功能",items:[{title:"实时转录",description:"在对话过程中获取实时记录。获得即时洞察力,不错过任何一个实时辅导机会。"},{title:"多种语言支持",description:"支持 40 多种语言,通过自动语言检测覆盖全球团队。"},{title:"语境理解",description:"根据特定行业术语训练的人工智能模型可准确识别技术和商业术语。"},{title:"扬声器分离",description:"自动识别和区分对话中的不同说话者,并分配明确的说话者属性。"},{title:"自定义词典",description:"学习贵公司独特的产品名称、服务名称和专业术语,可提高准确性。"},{title:"质量保证",description:"自动质量检查和可靠性评分可确保最高质量的转录。"}]},useCases:{title:"使用场景",subtitle:"需要准确电话转录的行业和团队",items:[{title:"销售团队",de
255scription:"反思销售拜访,找出成功模式。提高谈话效率,以具体实例指导团队成员。"},{title:"客户支持",description:"准确记录客户问题。维护全面的支持历史记录,确保始终如一的服务质量。"},{title:"质量控制",description:"监控合规情况,确保遵守脚本。为审计和培训保存详细记录。"}]},stats:{accuracy:{value:"99.5%",label:"誊写准确性"},languages:{value:"40+",label:"支持的语言"},latency:{value:"<2 秒。",label:"加工延迟"},availability:{value:"24/7",label:"连续加工"}}},Bx={hero:{badge:"智能检测",title:"关键词跟踪",description:"自动监控竞争对手的提及、反驳和重要话题。不错过客户对话中的重要信号。",badges:["竞争追踪","响应检测","主题分析","自定义关键字"]},features:{title:"跟踪关键信息",subtitle:"自动检测和分析所有对话中的关键词",items:[{title:"竞争监测",description:"跟踪竞争对手的提及情况,了解潜在客户如何将您的解决方案与市场上的替代方案进行比较。"},{title:"响应检测",description:"自动识别常见的反对意见和顾虑,并制定有效的应对措施和培训。"},{title:"自定义关键字",description:"针对您的业务、产品或行业,定义并跟踪自定义关键字和短语。"},{title:"趋势分析",description:"从客户对话中发现新趋势,并根据实际市场信号调整战略。"},{title:"语境提取",description:"了解关键词前后的语境,而不仅仅是提及关键词。不仅要了解说了什么,还要了解说的原因和方式。"},{title:"智能搜索",description:"即时搜索所有对话,准确查找讨论特定主题的时间和地点。"}]},applications:{title:"使用场景",items:{competitive:{title:"竞争情报",description:"深入了解竞争格局:",points:["跟踪最常提及的竞争对手","了解潜在客户如何比较功能和价格","确定竞争优势和劣势","制作有效的反竞争材料"]},objections:{title:"答辩",description:"化反驳为机遇:",points:["确定客户最关心的问题","分析业绩最佳者的反驳回应","反应灵敏的游戏手册。","通过有效的周转培训您的团队"]},product:{title:"产品洞察",description:"通过客户反馈促进产品开发:",points:["确定最需要的功能","了解当前功能面临的挑战","发现意想不到的用例","根据客户需求确定路线图的优先次序"]},compliance:{title:"合规与质量",description:"确保合规和质量:",points:["监测规定的披露内容和法律用语","标记可能违反政策的对话","跟踪脚本合规性和最佳实践","为审计生成合规报告"]}}},advancedFeatures:{title:"高级功能",items:[{title:"模糊检索",description:"自动检测关键词变体、同义词和相关术语,无需手动配置。"},{title:"历史分析",description:"分析关键词的长期趋势,以确定季节性模式和新出现的主题。"},{title:"实时警报",description:"在实时对话中提到重要关键词时,立即接收通知。"}]}},Kx={hero:{badges:["企业","本地法律硕士","内部服务器运行"],title:"现场建造 LLM",description:"在自己的环境中运行 LLM,将数据保存在公司外部"},mission:{title:"预置式 LLM 建设服务概述",paragraphs:["对于不能向外发布机密数据的公司,我们构建了一个 LLM 环境,可在其自有服务器或私有云中完成。这种解决方案非常适合金融机构、医疗机构、政府机构和研究机构等需要严格信息管理的组织,因为它不使用任何公共 API,所有处理都在客户管理的基础设施内完成。","我们使用 Llama 3.3、Qwen 2.5、Mistral 和 DeepSeek 等商用开放重量模型以及 vLLM、Ollama 和 SGLang 等高性能推理引擎,提供从模型选择、服务器构建、推理引擎优化到运行监控的全面支持。这些模型在 vLLM、Ollama 和 SGLang 等高性能推理引擎上运行,以提供低延迟、高吞吐量的推理环境。","我们支持与现有系统集成、聊天机器人、内部 RAG、文档汇总和代码生成等å
255¤šç§ç”¨ä¾‹ã€‚我们可以根据企业要求进行设计,包括通过模型微调实现业务专业化、英伟达™(NVIDIA®)GPU/苹果硅优化、多租户设计、API 网关构建等。"]},summary:{title:"预置式法律硕士趋势",paragraphs:["2025-2026 年,内部 LLM 的实用性迅速提高。开放式加权模型的性能已超过封闭式模型,而提供商业许可的模型数量也大大降低了内部操作的门槛。","8B 至 70B 参数的模型已经达到了许多商业任务的实用水平,即使在消费级 GPU 上,GGUF 量化也能实现高速推理。","在推理引擎方面,vLLM 的 Continuous Batching 和 PagedAttention 大幅提高了吞吐量,而 SGLang 的 RadixAttention 则加快了复杂的多轮交互。Ollama 已成为本地开发环境的事实标准,llama.cpp 经过 Apple Silicon 优化,可在 M 系列 Mac 上快速推理。","在企业应用中,除了数据主权和合规性外,长期成本优化(不再采用按需付费的 API 计费方式)也日益成为企业采用云技术的动力。混合配置(本地用于敏感处理,云 API 用于通用处理)已成为一种常见的选择。"],icons:[{label:`私有云
256云`},{label:`数据
257主权`},{label:`成本
258优化`},{label:`企业
259企业`}]},features:{title:"设计和开发功能",subtitle:"设计与开发",items:[{title:"基础设施设计和 GPU 优化",description:"为您的工作负载和预算设计最佳硬件配置,包括英伟达™(NVIDIA®)A100/H100、RTX 4090/5090 和 Apple Silicon(M2 Ultra/M3 Max/M4 Max),并通过 CUDA、MPS 和 Metal 优化创建一个能充分利用 GPU 性能的推理环境。CUDA、MPS 和 Metal 优化可最大限度地发挥 GPU 性能。"},{title:"模型选择和优化",description:"根据任务特点、语言要求和资源限制,从 Llama、Qwen、Mistral、DeepSeek 等模型中选择最佳模型。使用量化(GGUF/AWQ/GPTQ)、KV 缓存优化和批处理调整来实现准确性和吞吐量。"},{title:"构建推理引擎",description:"根据您的应用选择和构建 vLLM、SGLang、Ollama、TGI 等推理引擎,并应用连续批处理、累积解码和前缀缓存等最新技术,以提供低延迟和高吞吐量的推理 API。我们提供低延迟、高吞吐量的推理 API。"},{title:"运行、监控和安全",description:"利用 Prometheus/Grafana 实施推断指标监控、利用 API 网关实施访问控制、审计日志、自动扩展和故障恢复。构建符合企业安全要求的生产运行环境。"}]},techStack:{title:"技术堆栈:内部部署 LLM",subtitle:"平台与技术",categories:{openWeightModels:{title:"开放式重量模型",items:["Llama 3.3 70B / 8B","Qwen 2.5 72B / 32B / 7B","Mistral Large / Nemo","DeepSeek V3 / R1","杰玛 2 27B / 9B","丕-4","指令 R (Cohere)"]},japaneseModels:{title:"日本专用模式",items:["ELYZA-Japanese-Llama-2","燕子 70B / 13B","日本喇嘛-3","Qwen-2.5-Japanese","卡拉库里-LM"]},inferenceEngine:{title:"推理引擎",items:["vLLM (连续配料)","SGLang (RadixAttention)","奥拉马(地方发展)","llama.cpp (Apple Silicon)","TGI(拥抱脸)","TensorRT-LLM(英伟达)","ExLlamaV2(量化专业化)"]},quantization:{title:"量化",items:["GGUF(llama.cpp 标准)","AWQ(高精度 4 位)","GPTQ(GPU 优化)","比特和字节(8 位/4 位)","EETQ(高效量化)"]},hardware:{title:"硬件",items:["NVIDIA H100 / A100","NVIDIA L40S / A10G","RTX 4090 / 5090","苹果硅 M2 Ultra","苹果硅 M3/M4 Max","AMD MI300X"]}
259,infrastructure:{title:"基础设施",items:["Docker / Kubernetes","英伟达™ Triton 服务器","应用程序接口网关(金刚/特使)","普罗米修斯/Grafana","私有云(VMware/OpenStack)","气隙环境支持"]}},updateNote:{title:"2026 年的主要更新点",description:"在开放重量模型方面,Llama 3.3 实现了 GPT-4 级通用性能,大大提高了日语性能;Qwen 2.5 系列以多种尺寸和均衡的性能扩大了选择范围;DeepSeek V3/R1 的推理成本性能备受关注;vLLM 2.0 Chunked Prefill 和 SGLang's RadixAttention 推理引擎加快了多轮对话的速度。在推理引擎中,vLLM 2.0 的 Chunked Prefill 和 SGLang 的 RadixAttention 加快了多轮互动;Apple Silicon 对 llama.cpp 的优化使 70B 模型推理在 M4 Max 上变得实用;量化技术提供了 4 位精度和高性能。量化技术实现了 4 位精度和推理速度,GGUF 成为事实上的标准格式。"}},cta:{title:"联系我们",description:`我们可以从需求安排开始与您协商。
260也可以考虑 PoC 和本地 LLM 配置。`,primaryButton:"联系我们",secondaryButton:"技术咨询"}},Vx={hero:{badges:["企业","RAG","搜索扩展生成"],title:"向量/RAG 开发",description:"建立 RAG 系统,将内部知识与 LLM 联系起来"},mission:{title:"Vector / RAG 开发服务概述",paragraphs:["我们将建立一个 RAG(搜索扩展生成)系统,通过将公司积累的知识资产与 LLM 相链接,让员工能够用自然语言进行搜索和提问。我们整合了各种数据源,如手册、会议记录、技术文档、常见问题、Slack 历史记录、Confluence、SharePoint 等,以创建一个可立即利用组织知识的环境。","除了简单的文档搜索外,我们还采用了混合搜索(矢量搜索+关键词搜索)、重排序、分层分块、元数据过滤等最新技术,从而最大限度地提高了搜索精度和答复质量。我们会明确指出答案的来源,以消除混淆并确保可靠性。","我们支持各种环境,包括 AWS、GCP、Azure 和内部部署,并与现有的身份验证基础设施和权限管理集成。我们为保持数据新鲜度(差异更新和自动重新索引)、分析使用日志和持续提高准确性提供一致的支持。"]},summary:{title:"RAG 技术趋势",paragraphs:['2025 年至 2026 年,RAG 技术将进入 "从基本实施到生产质量 "阶段。除简单的矢量搜索外,结合多种搜索方法的混合搜索、对搜索结果重新排序的重新排序以及对复杂问题进行分解和处理的查询分解已成为标准配置。',"分块策略也在不断发展,考虑到文档结构的分层分块、重叠分块以及分别处理表格和数字的多模式分块都有助于提高准确性。上下文检索(将上下文信息添加到分块中)的有效性也得到了广泛认可。","对于矢量数据库的选择,除了 Pinecone、Weaviate、Qdrant 和 Milvus 等托管服务外,PostgreSQL pgvector 和本地 FAISS 也提供了多种选择,以满足您的要求。此外,还提供嵌入模型,包括文本-嵌入-3-大型、Cohere Embed v3 和多语言模型。",'在企业部署中,权限管理 (ACL) 链接、PII 屏蔽、审计日志和多用户设计是基本要求,而且需要从 "工作 PoC "转变为 "可投入生产的生产系统"。'],icons:[{label:`混合动力
261搜索`},{label:`多种模式
262RAG`},{label:`代理
263RAG`},{label:`企业
264企业`}]},features:{title:"设计和开发功能",subtitle:"设计与开发",items:[{title:"数据收集和预处理管道",description:"从 PDF、Word、Excel、HTML、Markdown、Slack、Confluence、SharePoint 等文件中提取和清理数据。支持多种模式,包括 OCR、表格结构分析和图像标题生成。通过差分更新和计划执行保持新鲜度。"},{title:"高精度搜索系统设计",description:"结合矢量搜索 + BM25 混合搜索、通过 Cohere Rerank / Cross-Encoder 进行重排以及查询扩展和分解,构建高精度搜索。此外,还实现了元数据过滤和基于权限的访问控制。"},{title:"响应生成和质量控制",description:"通过上下文优化、Few-shot 提示和思维链推理提高了答案质量。此外,还采用了来源说明、置信度分数显示和晕轮检测功能,以确保业务使用的可靠性。"},{title:"运行和改进周期",description:"我们提供的运营支持包括使用日志分析、搜索命中率和响应满意度监控、通过反馈回路持ç
264»­æ”¹è¿›ã€A/B 测试基础设施、嵌入模型更新和分块策略审查。"}]},techStack:{title:"技术堆栈:Vector / RAG",subtitle:"平台与技术",categories:{embeddingModels:{title:"嵌入模型",items:["OpenAI 文本嵌入-3-大号","Cohere Embed v3","航程人工智能","Jina 嵌入 v3","BGE-M3(多语种)","多语种-E5-大","日本专用机型"]},vectorDatabases:{title:"矢量数据库",items:["松果(托管)","Weaviate(混合搜索)","Qdrant(高性能)","米尔沃斯(大型)","色度(轻量级)","PostgreSQL pgvector","FAISS(当地)"]},chunking:{title:"分块和处理",items:["分层分块","语义分块","重叠块","句子窗口","上下文检索","表格和图表处理","多模式支持"]},search:{title:"搜索与检索",items:["混合搜索(矢量 + BM25)","Cohere Rerank","交叉编码器重新排名","查询扩展和分解","HyDE(假设文档生成)","自查询检索","多查询检索"]}},updateNote:{title:"2026 年的主要更新点",description:"在嵌入模型中,text-Embedding-3-large 和 Cohere Embed v3 成为企业标准,日语性能显著提高;上下文检索被证明是有效的,为块添加上下文成为标准方法。混合搜索 + 重排已成为搜索的必备配置,减少了单纯矢量搜索配置的数量,Agentic RAG(代理动态选择搜索策略)正在投入实际使用。在操作方面,重点是利用 RAG 评估框架(RAGAS、LangSmith)建立质量测量和改进周期。"}},cta:{title:"联系我们",description:`我们可以从需求安排开始与您协商。
265也可以考虑 PoC 和本地 LLM 配置。`,primaryButton:"联系我们",secondaryButton:"技术咨询"}},Fx={hero:{badges:["全栈","LLM 整合","应用程序接口设计"],title:"人工智能应用开发",description:"设计和构建利用 LLM 的实用应用程序"},mission:{title:"人工智能应用程序开发服务概述",paragraphs:["我们通过 LLM 分析从外部 API 获取的数据,将 API 与 CRM、ERP、SaaS、IoT 传感器和社交媒体等各种数据源连接起来,并将获取的数据实时输入 LLM,从而提供可创造业务价值的人工智能应用程序的设计和开发。我们实现了传统商业智能工具无法实现的高级数据分析,例如使用自然语言生成分析报告、异常检测、趋势预测和自动分类。","不仅仅是简单的应用程序接口集成,还包括多个数据源的集成、数据清理,以及通过结构化处理转换为便于 LLM 解释的格式。及时的工程设计可最大限度地提高分析的准确性,并根据业务需求生成专门的输出。我们建立了数据与人工智能相结合的实际应用,例如预测业务谈判的销售数据、执行 VoC 分析的客户支持日志,以及提供设备维护建议的传感器数据。","我们支持各种接口,如网络应用程序、移动应用程序、Slack/Teams 集成和定期批量处理。从需求定义到应用程序接口设计、LLM 集成实施以及生产运营,我们都能提供始终如一的支持。"]},summary:{title:"人工智能应用开发的趋势",paragraphs:['从 2025 年到 2026 年,人工智能应用开发正在进入基于 "API 集成 x LLM 分析 "的实用阶段。传统商业智能工具和仪表盘无法处理的非结构化数据分析和自然语言洞察力生成开始被纳入企业系统。',"特别值得一提的是,LLM 的结构化输出功能日趋成熟,可实现严格的 JSON 模式兼容输出控制,从而使端到端自动化管道成为现实,通过 API 获取的数据可由 LLM 进行分析,并将结果直接输入后续系统。功能调用的多阶段执行可在一个工作流中处理多个 API 的数据收集、集成和分析。","在数据处理基础设施中,Polars 已成为高速处理的标准,它与流式处理相结合,为实时分析提供了便利。","在企业实施过程中,需求已从一次性 PoC 开发转变为生产运营的可扩展设计,这就要求进行全面的架构设计,包括成本优化、错误处理和审计日志支持。"],icons:[{label:`代理
266人工智能`},{label:`MCP
267协议`},{label:`多功能
268代理`},{label:`人类
269-环`}]},features:{title:"设计和开发功能",subtitle:"设计与开发",items:[{title:"应用程序接口集成和数据收集设计",description:"构建支持 REST API、GraphQL、WebSocket 和 Webhook 等各种协议的数据收集基础设施ã€
269‚我们通过实施身份验证流程(OAuth、API key、JWT)、速率限制和重试机制来设计稳定的数据采集管道。我们还支持数据集成、调度和来自多个 API 的差分采集。"},{title:"数据预处理和结构化",description:"将原始数据转换为可由 LLM 有效分析的格式,包括 JSON 解析、数据清理、规范化和缺失值处理,并在考虑上下文窗口限制的情况下执行最佳数据分割和汇总。元数据分配可确保分析结果的可追溯性。"},{title:"LLM 分析和提示设计",description:"通过设计符合您业务要求的提示模板,最大限度地提高数据分析的准确性。我们为分类、汇总、情感分析、异常检测、预测生成等建立分析管道。我们利用函数调用和结构化输出,以可轻松与后续系统集成的格式生成输出。"},{title:"应用程序的实施和运行",description:"我们通过各种接口提供分析结果,包括 FastAPI、使用 Next.js 的网络应用程序等、Slack/Teams Bot 和计划批量执行。仪表板、通知提醒和自动报告生成均以业务用户可立即使用的形式实施和交付。我们还提供运营监控、成本优化和持续改进服务。"}]},techStack:{title:"技术栈:人工智能应用开发",subtitle:"平台与技术",categories:{apiIntegration:{title:"应用程序接口集成",items:["REST / GraphQL / WebSocket","OAuth 2.1 / API key / JWT","网络钩子/轮询","阿帕奇气流/完美","芹菜 / 时间","请求 / httpx / aiohttp","速率限制/重试","数据验证(Pydantic)"]},dataProcessing:{title:"数据处理",items:["熊猫/北极熊","JSON / JSONL 解析器","数据清理管道","Apache Spark(大规模处理)","DBT(数据转换)","远大前程","三角洲湖/冰山","流(Kafka / Flink)"]},llmCloud:{title:"云计算法律硕士",items:["OpenAI GPT-4o / GPT-4.1","克劳德 3.5 / 克劳德 4","双子座 2.0 / 双子座 2.5","指令 R+(聚合)","Mistral Large"]},llmLocal:{title:"本地法律硕士",items:["Llama 3.3 / Llama 4","Mistral / Mixtral","Qwen 2.5 / Qwen 3","DeepSeek V3 / R1","杰玛 2 / 杰玛 3","丕-4","ELYZA / 燕子(日语专业)","指令 R (Cohere)"]},inference:{title:"推论/框架",items:["vLLM / SGLang","Ollama / llama.cpp","LiteLLM 代理","功能调用","结构化输出","提示模板引擎","LangChain / LlamaIndex","专有分析管道"]},application:{title:"应用层",items:["FastAPI / Litestar","Next.js / React","Slack SDK / Teams SDK","Streamlit / Gradio","预定作业(Cron / 云调度程序)","PostgreSQL / MongoDB","Redis(缓存/队列)","Docker / Kubernetes"]}},updateNote:{title:"2026 年的主要更新点",description:"在 LLM 分析领域,GPT-4.1 和 Claude 4 的结构化输出(Structured Output)功能已经成熟,实现了严格的 JSON Schema 兼容型输出控制标准化,多阶段执行功能调用(Function Calling)可在单个管道中跨多个 API 进行复杂的数据收集和分析。功能调用的多级执行可在单个管道中跨多个 API 进行复杂的数据收集和分析。在数据处理方面,Polars 已成为 Pandas 在高速处理方面的成熟替代品,与流式处理相结合,可促进实时分析基础架构的构建。在应用层,使用 MCP 进行外部工具集成已成为普遍现象,这加速了代理应用的开发,在代理应用中,LLM 可自主调用 API 来获取和分析数据。"}},cta:{title:"联系我们",description:`我们可以从需求安排开始与您协商。
270也可以考虑 PoC 和本地 LLM 配置。`,primaryButton:"联系我们",secondaryButton:"技术咨询"}},Wx={seo:bx,header:yx,hero:vx,mission:Ax,businessServices:xx,features:Lx,businessProcess:Px,story:wx,contact:Sx,footer:Ix,cookiePolicy:Mx,about:jx,portfolio:Cx,common:Dx,privacyPolicy:zx,termsOfService:Tx,weatherMap:Ex,agentDevelopment:Rx,faq:Nx,pricing:Gx,aiTranscription:Ox,keywordTracking:Bx,onPremiseLLM:Kx,vectorRAG:Vx,aiAppDevelopment:Fx},qx={home:{title:"인공지능 기반 솔루션 플랫폼 - telet.ai",description:"AI 기반 통화 분석으로 고객 대화 방식을 혁신하세요. 실시간 인사이트, 감정 분석, 성과 추적을 통해 팀 성과를 향상시키세요."},about:{title:"조직 정보 - telet.ai",description:"Learn about telet.ai's mission to transform customer conversations with AI. Meet our team and explore our journey."},privacy:{title:"개인정보 처리방침 - telet.ai",description:"Review telet.ai's privacy policy to understand how we handle your data and protect your privacy."},terms:{title:"이용 약관 - telet.ai",description:"Read telet.ai's terms of service for using this website and contacting us for consultations."},cookies:{title:"쿠키 정책 - telet.ai",description:"Learn how telet.ai uses cookies and similar technologies (Cloudflare and Google Analytics)."},portfolio:{title:"포트폴리오 - telet.ai",description:"비즈니스 운영과 고객 경험을 향상시키기 위해 설계된 telet.ai의 AI 솔루션 포트폴리오를 살펴보세요."},agentDevelopment:{title:"기업용 AI 에이전트 설계 및 개발 - telet.ai",description:"워크플로우, ë
270„구 및 규정 준수 요구 사항에 맞춤화된 생산 등급 AI 에이전트를 설계하고 구축하십시오."},onPremiseLLM:{title:"온프레미스 대규모 언어 모델 운영 - telet.ai",description:"강력한 데이터 제어, 예측 가능한 비용, 저지연 추론을 위해 현대적인 대규모 언어 모델(LLM)을 자체 환경 내에서 운영하세요."},vectorRAG:{title:"벡터 RAG 및 인덱스 설계 - telet.ai",description:"각 워크플로우에 맞춤화된 검색 파이프라인과 인덱스를 설계하여 근거 기반 답변의 품질을 향상시킵니다."},aiAppDevelopment:{title:"인공지능 애플리케이션 개발 - telet.ai",description:"LLM 기반의 실용적인 애플리케이션을 구축하세요—API, 데이터 및 비즈니스 워크플로와 통합됩니다."}},Ux={brand:"telet.ai",nav:{services:"서비스",portfolio:"포트폴리오",about:"조직 정보",contact:"연락처"}},_x={brandName:"telet.ai",tagline:"멀티 AI 커뮤니케이션",badge:"AI 기반 통화 인텔리전스",title:{line1:"로컬 및 방어,",line2:"클라우드에서 확장하세요,",line3:"에이전트에 의해 자동화됩니다."},description:"SLM의 엣지 추론은 데이터 주권을 보장하고, LLM의 클라우드 통합은 처리 능력을 무한대로 확장하며, 에이전틱 AI 아키텍처의 채택은 선도적인 기업에서 성과를 보이기 시작했습니다."},Hx={badge:"우리의 사명",title:"LLM의 접근성 향상",paragraphs:['정말 이렇게까지 할 수 있을까요?" --이러한 놀라움이 바로 우리가 목표로 하는 것입니다.',"대규모 언어 모델링(LLM)의 잠재력은 날로 확장되고 있습니다. 하지만 '기밀 데이터를 외부 API로 전송하는 것이 걱정된다', '고급 AI 애플리케이션은 대기업만 사용할 수 있다', '구현 비용이 만만치 않다' 등의 장벽을 허물고자 합니다.","저희는 고객의 환경 내에서 완성되는 로컬 LLM 구축을 전문으로 합니다. 매우 민감한 고객 정보를 외부에 노출시키지 않고 안전하게 활용할 수 있습니다. 데이터 보안을 보장하면서 AI의 이점을 극대화할 수 있습니다.","일상적인 문ì
270„œ 작성과 데이터 정리부터 전문 분석 및 의사 결정 지원까지 모든 작업을 처리합니다. telet.ai의 독자적인 에이전트 기술은 API 모델에 필적하는 정확도를 제공합니다.","LLM은 사람을 대체하지 않습니다. 사람들이 더 많은 창의력, 판단력, 전문성을 발휘할 수 있게 해주는 강력한 도구입니다. 우리는 기술을 특별한 것에서 일상적인 것으로, 즉 기술의 진정한 '소비자화'를 실현합니다.",'부담 없이 상담해 주세요. 고객과 함께 "무엇을 할 수 있을까요?"를 찾기 위해 함께 노력하겠습니다.'],animation:{label:"LLM",sublabel:"기술"}},$x={title:"서비스",subtitle:"비즈니스 서비스",services:[{title:"기업용 AI 에이전트 설계 및 개발",titleEn:"엔터프라이즈 AI 에이전트",description:"비즈니스 요구 사항, 내부 규칙 및 데이터 범위에 최적화된 AI 에이전트를 설계 및 개발하세요. 외부 API 유형 LLM부터 로컬 LLM까지 지원합니다.",badges:["개별 디자인","LLM 호환","비즈니스 전문화"],link:"세부 정보."},{title:"온-프로미스 LLM 서버",titleEn:"온프레미스 LLM 서버",description:"회사 전용 서버 내에서 7B~120B 규모의 LLM을 실행합니다. 외부 데이터 전송의 위험을 피하면서 안전하고 유연한 LLM 사용 환경을 제공합니다.",badges:["7B-120B 지원","API 키 발급","안전 설계"],link:"세부 정보."},{title:"벡터 RAG 및 인덱스 디자인",titleEn:"벡터 RAG 아키텍처",description:"비즈니스 콘텐츠와 분석 로직에 따라 RAG 데이터를 분리하고 최적화하세요. 빠르고 정확한 검색을 위한 색인 설계.",badges:["인덱스 분리","고속 검색","다국어 지원"],link:"세부 정보."},{title:"AI 애플리케이션 개발",titleEn:"AI 애플리케이션 개발",description:"기존 API와 외부 데이터를 활용하여 LLM에 의한 분석 및 생성을 핵심으로 하는 실용적인 AI 애플리케이션을 개발하세요.",badges:["API 연동","LLM 분석","통합 디자인"],link:"세부 정보."}]},Qx={title:"AI 기술을 활용한 업적 프로젝트",subtitle:"다국어 비서, 일기 예보, 로컬 LLM, 보안 모니터링 등 다양한 분야의 AI 개발 경험이 있습니다.",viewDetails:"세부 정보 보기 →.",items:[{title:"AI 다국어 어시스턴트",description:"RAG + LLM의 다국어 채팅 도우미. 일본어, 영어, 중국어 등 다국어 문의에 대해 매우 정확하게 답변합니다."},{title:"일기 예보 시스템",description:"날씨 데이터를 학습하여 실시간 예보를 생성합니다. 시계열 패턴 인식과 RAG를 사용하여 과거에 유사한 패턴을 검색함으로써 매우 정확한 예측을 생성합니다."},{title:"사내 서버 / On-Prem Local LLM",description:"개방형 WebUI를 공통 진입점으로 삼아 회사 내에서 바로 사용할 수 있는 비즈니스 운영 맞춤형 AI를 제공하며, Ollama/MLX를 통한 빠른 추론 레인, 각 UID에 대해 완전히 분리된 데이터 도메인을 제공합니다. 사내 문서는 영어 임베딩과 일본어 쿼리 자동 번역 기능을 갖춘 RAG로 캡처되며, 뉴스 요약, 문서 정리, 일상 업무와 같은 비즈니스 스킬이 안전하게 나란히 실행됩니다. 스킬 실행 시스템은 OpenClaw 컨테이너로 격리되어 있으며 Cloudflare 에지 및 로컬 Nginx의 3계층으로 보호됩니다. 모델 선택, 스킬 설계, 운영 정책 등을 종합적으로 지원하며, 배포한 날부터 바로 사용할 수 있는 형태로 귀사의 전용 AI를 가동합니다."},{title:"행성 간 궤도 도착 예측(AI)",description:"NASA API에서 행성 데이터를 가져와 LLM에서 궤도 계산을 해석합니다. 발사 기간, 소요 시간, 연료 효율성에 대한 보고서를 생성합니다."},{title:"부동산 데이터 AI 분석",description:"웹 스크래핑으로 부동산 정보를 수집하고 LLM + Python으로 분석하세요. 가격 동향, 시장 예측, 투자 수익률을 자동으로 생성합니다."},{title:"운세 AI(네 개의 기둥 운세)",description:"네 가지 운명의 기둥 로직을 Python으로 재현하고 LLM으로 해석합니다. 천문학 API에서 좌표와 시간을 획득하여 운세와 궁합에 대한 개인화된 평가를 받습니다."}
270,{title:"Google Workspace AI integration",description:"Gmail, 드라이브, 캘린더 등과의 LLM 통합 AI가 이메일 요약, 파일 검색, 일정 관리를 지원합니다."},{title:"세계 뉴스 다국어화",description:"LLM이 여러 언어로 번역 및 요약한 세계 뉴스를 실시간으로 수집합니다. 문맥 이해를 기반으로 한 자연스러운 번역 및 요약 생성."},{title:"보안 로그 모니터링 AI 관리자",description:"보안 로그의 실시간 모니터링, LLM을 통한 위협 탐지 및 분석, RAG를 통한 과거 공격 패턴과의 매칭으로 즉각적인 알림을 제공합니다."}]},Jx={title:"프로젝트 진행 방법",headline:"비전만 있으면 됩니다.",paragraphs:["언어의 차이가 비즈니스에 걸림돌이 되던 시대는 지났으며, AI 번역을 사용하지만 이미지 공유를 최대한 활용하는 고유한 워크플로우를 통해 14개 언어로 비즈니스 협상과 개발을 처리할 수 있습니다. 복잡한 사양도 샘플 이미지로 확인하여 오해의 소지가 없도록 할 수 있습니다. 중요한 것은 '무엇을 만들고 싶은가'뿐입니다.","프로젝트는 사업 신청서에서 초기 청문회로 시작됩니다. 클라이언트의 비전과 문제에 대한 전반적인 인식을 공유한 후 NDA(기밀유지계약)를 체결합니다. 기밀 정보를 안심하고 논의할 수 있는 환경을 조성한 후 세부 인터뷰를 진행하고 요구사항을 확인합니다. 그 내용을 바탕으로 제안서를 작성하고 샘플 이미지를 활용해 프로젝트의 방향을 확인합니다. 이해가 완료되면 사양서를 작성하고 개발을 시작합니다.","이 흐름은 일반적인 소개일 뿐입니다. 고객의 상황과 일정에 따라 유연하게 조정할 수 있습니다. 전 세계 어디에서든, 같은 언어를 사용하지 않더라도 이미지와 AI가 커뮤니케이션을 지원합니다. 아직 아무도 진출하지 않은 프론티어 시장에 함께 진출해 보시지 않겠습니까? telet.ai가 여러분의 아이디어를 구체화할 수 있는 파트너가 되어 드리겠습니다."],cards:[{title:"청문회 / NDA",description:"이메일을 통한 1차 심리 후 기밀 유지 동의서에 서명합니다. 안심하고 세부 정보를 제공할 수 있습니다."},{title:"기획 및 CA",description:"제안서와 샘플 이미지가 제공됩니다. 14개 언어가 지원되므로 언어 장벽 없이 진행할 수 있습니다."},{title:"샘플링 및 시작",description:"합의에 따라 사양을 준비하고 사업을 시작합니다."},{title:"개발, 테스트 및 운영",description:"애자일 개발을 통한 신속한 구현. 테스트부터 운영 지원까지 일관된 지원을 제공합니다."}]},Zx={badge:"사례 연구",title:"AI 소개 스토리",items:[{title:"비즈니스 효율성 및 비용 절감 솔루션",subtitle:"일상적인 업무량을 줄이고 핵심 비즈니스에 집중할 수 있는 환경을 조성하세요.",description:"많은 중소기업(중소기업)이 인력 부족과 채용의 어려움을 겪고 있습니다. 신규 인력을 채용하더라도 교육 비용이 많이 들고 직원 유지율에도 문제가 있습니다. AI 솔루션은 예산 관리 자동화, 데이터 입력 및 정리, 내부 문서 검색, 보고서 및 문서 자동 생성 등 일상적인 업무를 지원합니다. 많은 시간이 소요되던 일상적인 업무를 AI 비서가 24시간 365일 오류 없이 처리합니다. AI를 도입한 기업들은 업무 시간을 크게 단축했습니다. '인력 충원'에서 'AI와의 협업'까지. 귀사의 일하는 방식 개혁을 위해 최선을 다해 지원하겠습니다."},{title:"고객 지원 자동화",subtitle:"24시간 서비스를 통해 고객 만족도를 높이고 인건비를 절감할 수 있습니다.",description:"AI 챗봇은 자주 묻는 질문에 대한 자동 응답, 문의에 대한 기본 응답 및 분류, 다국어 실시간 응답 기능을 제공합니다. 다국어 실시간 응답. 인간 상담원은 복잡한 사례에 집중하여 고객 서비스 품질을 향상시킬 수 있습니다. AI 고객 지원으로 서비스 품질을 한 단계 더 높이세요."}
270,{title:"지식 및 문서 활용 AI",subtitle:"누구나 즉시 활용할 수 있는 형태의 내부 지식 자산",description:'ê·¸ 매뉴얼은 어디 있죠?" "전임자만 알고 있는 정보가 있어요" - 비개인화된 지식은 기업의 성장을 저해합니다. 저희의 RAG(검색 확장 생성) 기술을 사용하면 자연어로 질문하는 것만으로 사내 매뉴얼, FAQ, 과거 문서에서 필요한 정보를 검색할 수 있습니다. 신입 사원의 교육을 간소화하고, 베테랑의 암묵적 지식을 디지털화하며, 부서 간 지식 공유를 가능하게 합니다. 기존 문서를 그대로 사용할 수 있으므로 새로운 문서를 만들 필요가 없습니다.'},{title:"의료 및 간호를 위한 이미지 분석 AI",subtitle:"주의 깊은 눈, AI의 24시간 지원",description:"의료 및 요양 분야에서는 한정된 인력으로 많은 수의 환자와 사용자를 감시해야 합니다. 소니의 이미지/영상 분석 AI는 카메라 영상에서 실시간으로 이상 징후를 감지합니다. 발열을 감지해 감염병을 자동으로 감지하고, 환자가 쓰러지거나 배회하면 즉시 알려주며, 표정을 분석해 몸 상태 변화를 감지합니다. 야간 순찰의 부담을 줄이고 응급 상황에 신속하게 대응하며 기록 작업을 자동화함으로써 직원은 본연의 진료 업무에 집중할 수 있습니다. 개인정보 보호를 위해 온프레미스 설치도 가능합니다."}]},Xx={title:"문의하기",description:"요구사항 계획 단계부터 고객과 상담할 수 있으며, PoC 및 로컬 LLM 구성도 고려할 수 있습니다.",openForm:"양식 열기",closeForm:"양식 닫기",form:{name:"사용자 이름",namePlaceholder:"야마다 타로",email:"이메일 주소",emailPlaceholder:"[email protected]",subject:"subject",subjectPlaceholder:"문의 제목",message:"메시지",messagePlaceholder:"문의 사항을 입력해 주세요.",required:"*",submit:"보내기",submitting:"보내기...",turnstileMessage:'제출하려면 "나는 로봇이 아닙니다" 인증이 필요합니다.',turnstileError:"보안 인증을 로드하지 못했습니다. 다시 로드하세요.",errorRetry:"다시 시도해 주세요."}},Yx={brand:"telet.ai",tagline:"멀티 AI 커뮤니케이션",description:"AI 에이전트로 비즈니스를 혁신하세요. 대화에서 가치를 창출하세요.",sections:{product:{title:"제품",features:"기능",benefits:"소개",testimonials:"고객 후기"},services:{title:"서비스",agentDev:"기업용 AI 에이전트 설계 및 개발",onPremise:"온-프로미스 LLM 서버",vectorRag:"벡터 RAG 및 인덱스 디자인",aiApp:"AI 애플리케이션 개발"},company:{title:"조직 정보",about:"telet.ai 소개",profile:"대표 프로필",contact:"문의하기"},process:{title:"비즈니스 운영 방식",hearing:"청문회 / NDA",planning:"기획 및 CA",sampling:"샘플링 및 시작",development:"개발, 테스트 및 운영"}},copyright:"© 2026 telet.ai. 모든 권리 보유.",legal:{privacy:"개인정보 보호정책",terms:"이용 약관",cookies:"쿠키 정책"}},eL={title:"쿠키 정책",subtitle:"이 섹션에서는 이 사이트에서 사용되는 쿠키 및 기타 기술(Cloudflare/Google 애널리틱스)에 대해 설명합니다.",lastUpdated:"마지막 업데이트: 2026년 1월 22일",intro:"telet.ai는 본 사이트를 제공 및 개선하고 보안을 보장하기 위해 쿠키 및 유사한 기술을 사용할 수 있습니다. telet.ai는 광고 목적으로 자체적인 특수 추적 쿠키를 설정하지 않습니다(단, Cloudflare 및 Google Analytics는 각 서비스 사양에 따라 쿠키 또는 유사한 기술을 설정할 수 있음).",sections:{what:{title:"1. 쿠키란 무엇인가요?",description:"쿠키는 웹사이트 방문 시 브라우저에 저장되는 작은 텍스트 파일입니다."},howWeUse:{title:"telet.ai의 쿠키 사용 목적 등",description:"telet.ai는 주로 다음과 같은 목적으로 쿠키 등을 사용할 수 있습니다.",items:["사이트의 표시 및 운영을 안정화하기 위해","무단 액세스 및 악성 트래픽을 탐지하고 방지합니다.","액세스 상태를 파악하고 사이트 개선에 도움을 주기 위한 목적"]}
270,googleAnalytics:{title:"3. Google 애널리틱스 사용",description:"telet.ai는 Google LLC에서 제공하는 Google 애널리틱스 4(GA4)를 사용하여 액세스 분석을 수행합니다.",items:["수집된 정보에는 조회한 페이지, 소요 시간, 추천 소스, 기기 및 브라우저 정보 등이 포함될 수 있습니다.","telet.ai는 직접적으로 개인을 식별할 수 있는 정보(이름, 이메일 주소 등)를 Google 애널리틱스에 전송할 목적으로 사용하지 않습니다.","Google의 데이터 처리에는 Google의 약관 및 정책이 적용됩니다."]},cloudflare:{title:"4. Cloudflare 사용",description:"telet.ai는 본 사이트의 전송 및 보안 조치를 위해 Cloudflare, Inc.의 서비스를 사용합니다. Cloudflare는 DDoS 보호 및 봇 방지 등의 목적으로 쿠키 등을 설정하고 참조할 수 있습니다.",items:["주요 목적은 보안 및 커뮤니케이션 최적화이며, 광고 게재를 위한 추적을 목적으로 하지 않습니다.","Cloudflare의 데이터 처리에는 Cloudflare의 약관 및 정책이 적용됩니다."]},noSpecialCookies:{title:"5. telet.ai가 설정하는 특별한 쿠키",description:"telet.ai는 행동 타겟팅 광고 등을 목적으로 자체적인 특수 쿠키를 설정하지 않습니다. 쿠키 등의 사용은 주로 사이트 운영, 보안 및 접속 분석의 범위로 제한됩니다."},choices:{title:"6. 쿠키 관리(옵트아웃)",description:"쿠키를 비활성화하면 일부 기능을 사용하지 못할 수 있습니다.",items:["쿠키는 브라우저 설정에서 삭제하거나 비활성화할 수 있습니다.","Google 애널리틱스 측정을 사용하지 않으려면 Google에서 제공하는 옵트아웃 방법을 사용하세요.","브라우저의 비공개 모드 등을 사용하면 저장되는 정보가 제한될 수 있습니다."]},changes:{title:"7. 본 정책의 변경",description:"telet.ai는 법률 및 규정의 개정 또는 이용 서비스의 변경에 따라 본 정책을 개정할 수 있습니다. 개정된 정책은 이 페이지에 게시됨과 동시에 효력이 발생합니다."},contact:{title:"8. 문의하기",description:"이 정책과 관련하여 궁금한 점이 있으면 다음 연락처로 문의하시기 바랍니다.",company:"telet.ai",contactLink:"문의 양식으로 이동"}}},aL={hero:{title:"telet.ai 소개",subtitle:"소규모의 개인화된 팀만이 제공할 수 있는 세심한 AI 개발 지원."},story:{title:"조직 정보",content:"telet.ai는 질문에서 시작되었습니다. 왜 그렇게 많은 기업이 기업과 고객 간의 무수한 상호작용에서 얻을 수 있는 인사이트를 활용하지 못하는 걸까요? 이 문제를 정면으로 해결하기 위해 AI 연구 및 엔터프라이즈 소프트웨어 개발 경력이 있는 대표가 이끄는 팀이 설립되었습니다. 저희는 큰 조직이 아닙니다. 그렇기 때문에 고객의 과제를 심도 있게 파악하고 꼭 필요한 솔루션만을 제안할 수 있습니다. 저희의 강점은 로컬 LLM과 클라우드 LLM을 통합하는 하이브리드 아키텍처를 설계하는 능력입니다. 전용 클라우드 환경에서 귀사의 민감한 데이터를 보호하는 동시에 확장 가능한 방식으로 고급 AI 추론을 수행할 수 있습니다. 개발자를 위한 CLI와 일선 직원을 위한 채팅 UI를 제공하여 조직 전체에서 AI를 사용할 수 있는 기반을 조성합니다. 또한 가장 진보된 솔루션이 아닌 최적의 솔루션이 되는 데 중점을 둡니다. 예산에 따라 기능을 버리고 하나의 구성만 검토해도 비용에 큰 차이를 만들 수 있습니다. 필요한 기능을 필요한 만큼만 제공합니다. 세심한 AI 개발 지원은 소규모 개인 기업이기 때문에 가능합니다. 인력 부족 문제를 해결하고 귀사의 성장을 지원합니다. 이것이 텔레트닷에이아이의 약속입니다."},representative:{title:"telet.ai labo 대표",name:"케이타 오쿠이즈미",tagline:"하늘로, 바다로, 코드로 - 남다른 경력에서 비롯된 AI 개발에 대한 열정",paragraphs:["전직 개인 조종사(PPL)이자 선박 면허 소지자인 저는 수년 동안 하늘과 바다에서 날씨를 다뤄왔습니다. 조종석과 조타실에서 기압계의 변화를 관찰하고, 등압선을 해독하고, 바람과 구름의 움직임과 비교했습니다. 이런 반복적인 과정을 통해 키운 '데이터를 읽고 판단하고 행동하는 감각'이 지금의 저를 있게 한 출발점입니다.",'저는 57세에 파이썬 프로그래밍을 배우기 시작했습니다. 단순한 호기심이 원동력이었지만 코드를 작성하기 시작하자마자 AI 에이전트의 가능성에 매료되었습니다. 제 손으로 직접 애플리케이션을 만들고 실행하고 개선해 나갔습니다. 그 과정에서 깨달은 것이 있었습니다. 과거 프로젝트에서 저는 비엔지니어로서 참여했고, 개발은 항상 다른 사람이 했습니다. 하지만 제가 직접 코드를 작성하기 시작하자 문제의 본질이 보이기 시작했습니다. "여기가 병목 지점이다", "이 디자인은 확장할 수 없다" 등 엔지니어의 관점을 가지게 되면서 제가 원하는 것을 실현하는 속도가 엄청나게 빨라졌습니다.',"현장 경험과 데이터 과학을 결합한 기상 서비스 개발, 운영 효율을 높이기 위한 인공지능 에이전트 구축, 다양한 실험 프로젝트. 직접 손으로 부딪히면서 이 기술이 재미있을 뿐만 아니라 꼭 필요한 사람이 있을 거라는 확신이 들었습니다.","우리의 목표는 최첨단을 쫓는 것이 아닙니다. 고객의 문제와 예산을 직시하고 꼭 필요한 것만 합리적인 비용으로 제공합니다. 저희는 대규모 조직이 아니기 때문에 개별 고객의 요구에 맞는 개발 지원을 제공할 수 있습니다. 이러한 기술을 사회의 이익을 위해 사용하고자 하는 것이 바로 텔레트닷에이아이를 출시한 이유입니다."]},contact:{title:"조직 정보",company:"telet.ai labo",ceo:"대표 오쿠이즈미 케이타",button:"문의하기"},studios:{tokyo:{title:"도쿄 스튜디오",address:"184-0014 도쿄도 코가네이시 누쿠이미나미초 3-3-21 무사시코가네이 #301 퍼스트 힐스 에이 무사시코가네이, 184-0014, 일본"}}},nL={title:"포트폴리오",subtitle:"AI 기술 활용 실적 보기",techStackLabel:"기술 스택",viewProject:"프로젝트 보기",privateProject:"개인 프로젝트",visualizationLabel:"데이터 시각화",cta:{title:"문의하기",description:"프로젝트에 대해 논의하거나 기술적인 문의 사항이 있으면 언제든지 문의해 주세요.",button:"문의하기"},projects:{"traffic-route-ai":{title:"AI 교통 경로 선택 시스템",subtitle:"말레이시아 대중교통 경로 선택 지원",de
270scription:"출발지와 목적지를 기준으로 버스와 철도를 조합한 경로를 검색하고 도착 시각, 소요 시간, 환승 횟수로 후보를 비교하는 시스템입니다. 버스 전용·철도 전용 필터, 주변 역과 정류장 검색, 다국어 화면을 제공하여 일상 이동과 여행에 맞는 경로 선택을 돕습니다.",techStack:["대중교통 경로 검색","버스·철도 연계","경로 비교","다국어 UI"]},"multilingual-assistant":{title:"AI 다국어 어시스턴트",description:"다국어 문의를 위한 지능형 채팅 도우미로 1,573개의 벡터 인덱스를 구축하고 조건부 분기, NG 단어 필터링, 키워드 트리거링을 통해 정밀한 답변 제어를 구현합니다. 언어 간 시맨틱 검색을 통해 일본어, 영어, 중국어 등 여러 언어로 된 사용자 질문에 대해 일관되고 정확한 답변을 생성합니다.",techStack:["RAG","벡터 검색","다국어 임베딩","LLM","조건부 분기 논리"]},"weather-forecast":{title:"날씨 API를 사용한 AI 일기 예보",description:"과거 기상 데이터를 학습하여 최근 기상 상황을 실시간으로 예측하는 인공지능 시스템을 개발했습니다. LLM은 기상청 API, 오픈웨더맵 등에서 얻은 과거 데이터를 분석하여 기온, 강수 확률, 풍속 등에 대한 단기 예보를 생성합니다. 시계열 데이터의 패턴 인식과 RAG의 과거 유사ì
270„± 패턴 검색을 결합하여 기존 통계 모델을 보완하는 높은 정확도의 예측을 달성합니다.",techStack:["날씨 API 연동","LLM","RAG","시계열 데이터 분석","실시간 처리"]},"local-llm":{title:"사내 서버 / On-Prem Local LLM",description:"개방형 WebUI를 공통 진입점으로 삼아 회사 내에서 바로 사용할 수 있는 비즈니스 운영 맞춤형 AI를 제공하며, Ollama/MLX를 통한 빠른 추론 레인, 각 UID에 대해 완전히 분리된 데이터 도메인을 제공합니다. 사내 문서는 영어 임베딩과 일본어 쿼리 자동 번역 기능을 갖춘 RAG로 캡처되며, 뉴스 요약, 문서 정리, 일상 업무와 같은 비즈니스 스킬이 안전하게 나란히 실행됩니다. 스킬 실행 시스템은 OpenClaw 컨테이너로 격리되어 있으며 Cloudflare 에지 및 로컬 Nginx의 3계층으로 보호됩니다. 모델 선택, 스킬 설계, 운영 정책 등을 종합적으로 지원하며, 배포한 날부터 바로 사용할 수 있는 형태로 귀사의 전용 AI를 가동합니다.",techStack:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"]},"orbital-prediction":{title:"행성 간 궤도 도착 예측(AI)",description:"NASA API에서 행성 위치 데이터, 궤도 요소, 중력 파라미터를 얻어 행성 간 이동을 위한 최적의 출발 지점을 분석하는 시스템을 개발했습니다. API와 Python을 사용하여 호만 이동 궤도 및 중력 보조를 고려한 궤도 계산을 수행하고 발사 기간, 소요 시간, 연료 효율을 표시합니다. 교육 기관 및 우주 관련 기업의 시뮬레이션 툴로 활용되고 있습니다. *AI 기능은 현재 제거되었으며, API와 Python으로 계산이 진행 중입니다.",techStack:["NASA API (Horizons, SPICE)","궤도 역학 계산","Python","데이터 시각화"]},"real-estate":{title:"부동산 데이터 AI 분석",description:"웹 스크래핑을 통해 특정 지역의 부동산 정보를 수집하고 LLMê³¼ Python을 활용해 고급 데이터 분석을 수행하는 시스템을 개발했습니다. 부동산 가격, 평당 단가, 건물 연식, 역세권 거리 등의 변수를 추출하여 가격 추이 분석, 시장 예측, 투자 수익률 시뮬레이션을 자동으로 생성합니다. 또한, 비정형화된 부동산 설명에서 LLM을 이용해 특징을 추출하여 정량적 데이터와 결합한 종합적인 시장 분석을 제공합니다. *현재 두 번째 버전으로 제공(정식 버전은 별도 제공)",techStack:["웹 스크래핑(스크랩, 플레이라이터)","Python","판다","LLM 분석","데이터 시각화"]},"fortune-ai":{title:"네 개의 기둥 AI 감정 시스템",subtitle:"기술로 전통의 지혜를 재현합니다.",paragraphs:["점술의 네 기둥은 수천 년에 걸친 동양 점술의 정점입니다. 이 시스템은 전통적인 점술 로직을 파이썬으로 완벽하게 재현하고 LLM(대규모 언어 모델)을 사용한 해석 및 조언 생성을 결합했습니다. AI는 전문 점쟁이가 수행하는 감정 과정을 충실히 재현합니다.","날짜, 시간, 생년월일을 입력하면 시스템은 천문학 API에서 해당 시간의 일출 및 일몰 시간과 좌표 정보를 검색합니다. 이러한 데이터를 기반으로 황도, 십이지신, 오행의 균형을 정확하게 계산합니다. 사주명리학에 기반한 로직은 Python으로 색인화되고 통계 데이터 및 RAG(검색 증강 생성) 정보와 결합되어 사주명리 분석의 정확도를 높입니다.","계산된 라이프스타일 데이터는 LLM이 자연어로 알기 쉽게 설명해줍니다. 운의 흐름, 대인관계의 궁합, 본인에게 적합한 직업 등 개인별 맞춤 평가 결과가 생성됩니다. 전문 점술가에게 상담한 것과 같은 깊이 있는 답변을 얻을 수 있습니다.","현재 두 번째 버전으로 제공되고 있습니다. 기본 사주 분석과 운세 분석을 체험해 ë³¼ 수 있습니다. 더 자세한 분석과 다각적인 조언이 포함된 정식 버전은 별도로 구매할 수 있습니다."],techStack:["Python","천문학 API(일출-일몰, 시간대DB)","네 가지 기둥 논리","LLM","좌표 및 시간 계산"]}
270,"google-workspace":{title:"Google Workspace AI integration",description:"비즈니스 데이터를 읽고, 편집하고, 자동으로 처리하기 위해 Google Workspace(Gmail, 드라이브, 캘린더, 문서, 스프레드시트)와 LLM을 연결하는 시스템을 개발했습니다. 이메일 콘텐츠 요약, 자동 회신을 위한 초안 생성, 드라이브 파일 검색 및 분석, 캘린더에서 일정 추출 및 조정 제안과 같은 일상적인 작업을 AI가 지원합니다. 에이전트의 워크스페이스 작업은 OAuth 인증을 통한 보안 API 연결과 MCP 호환 도구 설계를 통해 실현됩니다. 현재 두 번째 버전을 사용할 수 있습니다(정식 버전은 별도 제공 예정).",techStack:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"]},"world-news":{title:"세계 뉴스 다국어화",description:"전 세계 뉴스 소스에서 실시간으로 기사를 수집하고 LLM을 사용하여 다국어 번역, 요약, 분류를 수행하는 시스템 개발. 영어, 중국어, 프랑스어, 아랍어 등의 원문을 일본어로 번역하고 주제별로 정리합니다. 단순 기계 번역이 아닌 문맥 이해에 기반한 자연스러운 번역과 LLM을 활용한 번역, 기사의 요점을 추출한 요약 생성으로 효율적인 국제 뉴스 모니터링이 가능합니다. *현재 세컨드 버전으로 제공 중입니다(정식 버전은 별도 제공).",techStack:["뉴스 API","RSS 컬렉션","LLM 번역 및 요약","다국어 처리","자동 분류","예약된 일괄 처리"]},"security-monitoring":{title:"보안 로그 모니터링 AI 관리자",description:"LLM을 활용한 기업 보안 로그 실시간 모니터링 및 지능형 위협 탐지-분석 시스템을 개발했습니다. 방화벽, IDS/IPS, 인증 로그, 애플리케이션 로그 등 다양한 로그 소스를 파이썬 모듈로 수집 및 분석하고, RAG에 축적된 과거 공격 패턴, 취약점 정보, 사고 사례와 비교합니다. 이상 패턴이 탐지되면 LLM은 위협 수준, 영향 범위, 권장 대응 방안을 자연어로 설명해주고 담당자에게 즉시 알려줍니다. 동일한 패턴이 반복되면 자동으로 우선 순위가 높은 경보를 발령하여 사고 대응 속도를 높입니다.",techStack:["Python 모니터링 모듈","로그 수집(Fluentd, Logstash)","RAG","위협 패턴 DB","LLM 분석","알림 알림(슬랙, 페이저듀티)"]}}},tL={learnMore:"자세히 보기",getStarted:"시작 ...",contactUs:"문의하기",backToHome:"홈으로 돌아가기"},iL={title:"개인정보 보호정책",subtitle:"개인정보 보호정책",lastUpdated:"마지막 업데이트: 2026년 1월 23일",intro:'telet.ai("서비스")는 귀하의 개인정보 보호를 중요한 책임으로 생각하며 다음과 같은 개인정보 보호정책을 수립하고 있습니다.',sections:{collection:{title:"1. 수집할 정보",description:"telet.ai는 귀하가 telet.ai에 연락하거나 서비스를 이용할 때 다음 정보를 수집할 수 있습니다.",items:["이메일 주소","사용자 이름(선택 사항)","문의 세부 정보","귀하가 자발적으로 제공한 기타 정보"]},purpose:{title:"2. 정보 이용 목적",description:"수집된 개인정보는 다음 목적으로만 사용됩니다.",items:["문의에 대한 답변 및 응답","연락처 및 서비스 관련 정보","프로젝트 진행에 필요한 커뮤니케이션","서비스 개선을 위한 분석(개인을 식별할 수 없는 형식)"]},thirdParty:{title:"3. 제3자에 대한 제공",description:"본 서비스는 다음의 경우를 제외하고 귀하의 개인정보를 제3자에게 제공하지 않습니다.",items:["고객이 동의하는 경우","법령에 근거한 공개 요청이 있는 경우","사람의 생명, 신체 또는 재산의 보호를 위해 필요한 경우"]},security:{title:"4. 정보 관리",description:"서비스는 수집한 개인정보를 적절하게 관리하고 무단 접근, 분실, 유출, 변조 등을 방지하기 위해 합리적인 보안 조치를 취합니다."},email:{title:"5. 이메일 처리",description:"서비스는 다음 정책에 따라 이메일을 처리합니다.",items:["telet.ai는 귀하의 이메일 내용을 귀하의 문의에 응답하고 서비스를 제공하기 위한 목적으로만 사용합니다.","telet.ai는 귀하의 이메일 주소를 제3자에게 판매, 대여 또는 공유하지 않습니다.","telet.ai는 회원님에게 telet.ai 서비스에 대한 정보 이메일을 보낼 수 있습니다. 수신을 거부하려면 이메일의 수신 거부 링크를 이용하거나 아래 연락처 정보로 문의하시기 바랍니다.","안전한 통신을 보장하기 위해 이메일 통신에 SSL/TLS 암호화를 사용합니다.","telet.ai는 귀하의 이메일을 적절한 기간 동안 보관한 후 안전하게 삭제합니다."]},cookies:{title:"6. 쿠키 사용",description:"쿠키는 브라우저 ì
270„¤ì •에서 비활성화할 수 있습니다."},external:{title:"7. 외부 서비스 사용",description:"본 서비스는 다음과 같은 외부 서비스를 이용할 수 있습니다. 각 서비스의 개인정보 처리방침은 해당 링크를 참조하세요.",items:["Google Analytics (access analysis)","비즈니스 운영에 필요한 기타 클라우드 서비스"]},changes:{title:"8. 개인정보 보호정책 변경",description:"본 정책은 법령의 개정 또는 서비스 내용의 변경에 따라 사전 고지 없이 개정될 수 있습니다. 개정된 정책은 본 페이지에 게시됨과 동시에 효력이 발생합니다."},contact:{title:"9. 문의하기",description:"이 정책과 관련하여 궁금한 점이 있으면 다음 연락처로 문의하시기 바랍니다.",company:"telet.ai",contactLink:"문의 양식으로 이동"}}},sL={title:"이용 약관",subtitle:"본 이용 약관은 본 사이트 이용 및 상담 예약, 문의, telet.ai 정보 요청에 대한 이용 약관입니다.",lastUpdated:"마지막 업데이트: 2026년 1월 22일",intro:'본 이용 약관(이하 "약관")은 telet.ai가 운영하는 웹사이트(이하 "사이트")에 적용됩니다. 사이트는 주로 상담 예약, 문의 및 문서 요청을 위한 랜딩 페이지로 제공되며, 사이트에서 계정 생성 또는 유료 결제 기능을 제공하지 않습니다.',sections:{scope:{title:"1. 적용 범위",description:'본 이용약관은 사이트의 모든 방문자 및 사용자(이하 "사용자")에게 적용됩니다. telet.ai와 사용자 간에 별도의 NDA, 아웃소싱 계약, 개별 계약 등이 체결된 경우 해당 문서가 본 약관보다 우선하여 적용됩니다.'},prohibited:{title:"2. 금지 품목",description:"이용자는 사이트를 이용함에 있어 다음 각 호에 해당하는 행위를 해서는 안 됩니다.",items:["법령 또는 공공질서 및 미풍양속에 위반되는 행위","telet.ai 또는 제3자의 지적 재산권, 개인정보 또는 기타 권리나 이익을 침해하는 행위","무단 접속, 과도한 부하, 방해 행위 등을 통해 본 사이트 또는 관련 시스템의 운영을 방해하는 행위.","문의 양식 등에 허위 정보를 제출하거나 제3자를 사칭하는 행위.","telet.ai의 사전 허가 없이 스크래핑, 리버스 엔지니어링 또는 과도한 자동 액세스 수행"]},disclaimer:{title:"3. 면책 조항",description:'telet.ai는 본 사이트를 "있는 그대로" 및 "사용 가능한 대로" 제공합니다. 법이 허용하는 최대 한도 내에서 telet.ai는 본 사이트와 관련된 모든 보증을 부인합니다.',items:["이 사이트의 정보는 사전 통지 없이 변경되거나 삭제될 수 있습니다.","telet.ai는 이 사이트에 있는 정보의 정확성, 완전성 또는 특정 목적에 대한 적합성을 보장하지 않습니다.","telet.ai는 귀하가 이 사이트를 사용하거나 여기에 포함된 정보에 의존함으로써 발생하는 어떠한 손해에 대해서도 책임을 지지 않습니다.","상담 및 문의에 대한 답변은 일반적인 정보 제공만을 목적으로 하며 법률, 세무, 의료 또는 기타 전문적인 조언이 될 수 없습니다."]},ip:{title:"4. 지적 재산권",description:"이 사이트의 텍스트, 이미지, 디자인, 상표, 로고 등에 대한 모든 권리는 telet.ai 또는 정당한 권리 보유자에게 있습니다. 권리자의 허가 없이 이를 사용할 수 없습니다."},links:{title:"5. 외부 사이트 링크",description:"이 웹사이트에는 타사 웹사이트로 연결되는 링크가 포함되어 있을 수 있습니다. telet.ai는 링크된 사이트의 콘텐츠나 운영에 대해 책임을 지지 않습니다."},changes:{title:"6. 본 이용약관의 변경",description:"telet.ai는 필요에 따라 수시로 본 이용약관을 변경할 수 있는 권리를 보유합니다. 개정된 이용약관은 사이트에 게시됨과 동시에 효력이 발생합니다."},governingLaw:{title:"7. 준거법 및 관할권",description:"본 이용약관은 일본법을 준거법으로 합니다. 본 사이트와 관련하여 분쟁이 발생하는 경우 도쿄지방법원을 제1심 전속적 합의관할 법원으로 합니다."},contact:{title:"8. 문의하기",description:"본 이용약관과 관련하여 궁금한 점이 있는 경우 다음 연락처로 문의하시기 바랍니다.",company:"telet.ai",contactLink:"문의 양식으로 이동"}}}
270,rL={title:"규칙적인 동작",subtitle:"AI가 예측하는",description1:"기상 정보는 각 국가에서 실시간으로 제공됩니다. 지도 중앙에 귀하의 국가가 표시됩니다. 어제 날씨와 오늘 날씨는 실제 기록입니다 - 그 비구름은 그 날짜와 시간에 당신의 하늘에 있었을 것입니다.",description2:"하지만 이 애니메이션은 미래의 날씨 움직임도 애니메이션으로 표현합니다.",description3:"과거의 데이터를 벡터화하여 빠른 속도로 패턴을 검색합니다. 주변 환경으로부터 날씨 패턴도 예측할 수 있습니다. 마찬가지로 환경의 요소(i)와 과거 실적의 고급 통계 값을 계산하고 AI가 이를 분석하도록 하여 수확량, 생산량, 매출을 예측할 수 있습니다.",refresh:"새로 고침(예: 메모리)",loading:"날씨 지도 로드 중..."},oL={hero:{badges:["엔터프라이즈","로컬 LLM","사용자 지정 에이전트"],title:"기업용 AI 에이전트 설계 및 개발",description:"비즈니스 요구 사항에 맞는 전용 AI 에이전트 설계 및 구축"},mission:{title:"맞춤형 AI 에이전트 개발 서비스",description:"설계부터 구현, 운영까지 귀사의 고유한 비즈니스 문제를 해결하는 맞춤형 AI 에이전트를 지속적으로 개발합니다. 기존 미션 크리티컬 시스템 및 SaaS 환경과의 호환성을 강조한 아키텍처 설계로 API, 데이터베이스, 내부 도구와의 원활한 통합이 가능합니다. telet.ai의 엔지니어들은 LangChain, AutoGen, CrewAI 및 기타 주요 프레임워크에 익숙하며, 귀사의 기술 스택과 운영 구조에 가장 적합한 솔루션을 제안할 것입니다. 일회성 챗봇 개발뿐만 아니라 여러 에이전트가 서로 협력하여 작업을 수행하는 멀티 에이전트 시스템과 외부 도구와 연동되는 에이전트 워크플로우도 구축합니다. 구축 후 지속적인 개선, 모델 업데이트, 운영 모니터링 시스템 유지보수 등 장기적인 파트너십을 통해 AI 에이전트가 제공하는 비즈니스 가치를 극대화할 수 있도록 지원합니다.",imageAlt:"맞춤형 AI 에이전트 개발 서비스"},summary:{title:"에이전트 개발 동향",paragraphs:["2025년부터 2026년까지 인공지능 에이전트 개발은 실증 단계에서 본격적인 기업 도입 단계로 넘어가고 있습니다. '에이전트 AI'라는 개념이 자리를 잡으면서 단순한 챗봇을 넘어선 자율적인 업무 수행 시스템이 다양한 산업에서 운영되기 시작했습니다.","브라우저와 데스크톱을 직접 제어하는 '컴퓨터 사용 에이전트'는 OpenAI의 Operator, Anthropic의 Computer Use, Google의 Project Mariner와 같이 실용화되고 있습니다. 모델 컨텍스트 프로토콜(MCP)은 급성장하는 에코시스템으로, 수천 개의 도구와 플러그 앤 플레이 방식으로 통합할 수 있습니다.","프로젝트 관리, 고객 지원, 데이터 분석과 같은 복잡한 작업을 수행하기 위해 전문 에이전트가 함께 작업하는 멀티 에이전트 아키텍처가 성숙기에 이르렀습니다. A2A(에이전트 간) 프로토콜 표준화로 인해 여러 공급업체 간의 에이전트 협업도 진전을 이루었습니다.","거버넌스 모델은 '휴먼 인 더 루프'에서 기업 구현을 위한 '휴먼 온 더 루프'로 진화했으며, 에이전트 사후 결정 감사 메커니즘과 위험 수준에 따른 자동 에스컬레이션을 표준 기능으로 채택하여 금융, 의료, 제조 등 규제 산업에서 채택이 가속화되고 있습니다. 금융, 의료, 제조 등 규제 대상 산업에서 이 시스템의 도입이 가속화되고 있습니다."]},features:{title:"디자인 및 개발",subtitle:"디자인 및 개발",items:[{title:"비즈니스 요구 사항에 따른 에이전트 설계",description:"비즈니스 흐름 분석에서 사용 사례를 추출하고, 업무를 세분화하여 에이전트의 책임을 명확히 합니다. 단일 에이전트로 처리를 완료할 수 있는지 아니면 여러 에이전트의 조정이 필요한지 판단하고 ReAct, Plan-and-Execute, Reflexion과 같은 최적의 추론 패턴을 선택합니다."},{title:"RAG/도구/워크플로 통합",description:"임베딩 생성, 청크 전략, 하이브리드 검색을 결합한 매우 정확한 RAG 파이프라인, MCP 호환 도구 정의로 외부 API 및 데이터베이스에 대한 표준화된 연결, LangGraph와 CrewAI를 사용한 다단계 워크플로우 오케스트레이션을 제공합니다. LangGraph와 CrewAI로 다단계 워크플로를 오케스트레이션하세요."},{title:"보안 및 권한 부여 설계",description:"에이전트 기능에 대한 접근 제어는 RBAC/ABAC, 프롬프트 인젝션 대응, PII 탐지 및 마스킹을 통해 구현됩니다. 모든 입출력에 대한 감사 로그가 보관되며 SOC2 및 ISO27001을 준수하는 환경 운영을 지원합니다."},{title:"운영 및 모니터링을 포함한 구현",description:"LangSmith, Langfuse 등으로 추적 시각화를 구현하고 지연 시간, 토큰 소비량, 오류율을 실시간으로 모니터링하세요. 이상 징후 탐지 알림, A/B 테스트 인프라, 모델 업데이트 시 회귀 테스트 등 지속적인 개선 주기를 구축하세요."}]},techStack:{title:"기술 스택",subtitle:"플랫폼 및 기술",categories:{agentFramework:{title:"에이전트 프레임워크",items:["AutoGen 0.4 / AG2","CrewAI","LangGraph","OpenAI 에이전트 SDK","인조 MCP","Google ADK (Agent Development Kit)","시맨틱 커널","독점 에이전트 플랫폼"]},apiLayer:{title:"API 레이어",items:["FastAPI / 라이트스타","gRP
270C / 연결","GraphQL 연합","서버 전송 이벤트(SSE)","웹소켓 / NATS","OAuth 2.1 / OIDC","API 게이트웨이(콩/엔보이)","적응형 속도 제한"]},vectorDb:{title:"벡터 DB/RAG",items:["솔방울","Weaviate","Qdrant","Milvus","크로마DB","pgvector","FAISS","터보퍼퍼"]},infrastructure:{title:"인프라",items:["쿠버네티스(EKS/GKE/AKS)","도커/팟맨","온프레미스 GPU 클러스터","프라이빗 클라우드","서버리스(람다/클라우드 실행)","오픈텔레메트리 / 랑퓨즈","테라폼 / 풀루미","ArgoCD / 플럭스"]}},updateNote:{title:"2026년 주요 업데이트 사항",description:"에이전트 프레임워크에서는 OpenAI 에이전트 SDK, Anthropic MCP, Google ADK 등 주요 벤더의 공식 SDK/프로토콜이 등장하고 있으며, API 레이어에서는 gRPC와 SSE가 에이전트 간 통신의 표준으로 자리 잡았고 OAuth 2.1로의 전환이 진행 중입니다. Vector DB에서는 고속 검색을 위한 Qdrant와 Turbopuffer가 주목받고 있습니다."}},cta:{title:"문의하기",description:`요구 사항 준비부터 상담해 드립니다.
271PoC 및 로컬 LLM 구성도 고려할 수 있습니다.`,primaryButton:"문의하기",secondaryButton:"기술 상담"}},lL={title:"자주 묻는 질문",subtitle:"자주 묻는 질문",items:[{question:"기존 매뉴얼과 FAQ를 수정하지 않고 그대로 사용할 수 있나요?",answer:"예, 사용할 수 있으며 PDF, Word, Excel, HTML, 텍스트 파일 등 대부분의 형식을 지원합니다. 기존 내부 문서를 그대로 업로드하기만 하면 AI가 내용을 학습하여 질문에 답변하는 데 사용합니다. 형식 변환이나 특별한 처리가 필요하지 않습니다."},{question:"민감한 정보가 포함된 데이터와 함께 사용해도 안전한가요?",answer:"예, 안전하게 서비스를 이용할 수 있습니다. 온프레미스(사내 서버) 또는 프라이빗 클라우드 환경에서는 데이터가 회사 외부로 전송되지 않습니다. 보안 요구 사항을 충족하는 구성을 제안할 수 있습니다."},{question:"구현하는 데 시간이 얼마나 걸리나요?",answer:"표준 FAQ 봇은 2~4주 정도면 구현할 수 있습니다. 기존 시스템과의 통합 또는 고급 사용자 지정이 필요한 경우 1~3개월이 소요될 것으로 예상됩니다. 소규모 PoC(개념 증명)로 시작할 수도 있습니다."},{question:"ChatGPT 또는 Claude와 같은 외부 API를 사용하나요?",answer:"요청 시 선택이 가능합니다. 외부 API(OpenAI, Anthropic, Google 등)를 사용하는 구성과 완전히 로컬에서 실행되는 오픈 소스 LLM(Llama, Mistral, Qwen 등)을 사용하는 구성을 모두 지원합니다. 비용, 보안 및 성능 요구 사항에 가장 적합한 구성을 제안해 드립니다."},{question:"AI의 응답은 얼마나 정확하나요?",answer:"애플리케이션과 데이터 품질에 따라 적절하게 설계된 RAG 시스템은 관련 문서가 존재하는 질문에 대해 90% 이상의 정확도로 정확한 답변을 반환할 수 있습니다. 할시네이션(잘못된 정보 생성)을 제어하는 메커니즘도 기본으로 내장되어 있습니다."},{question:"일본어 이외의 언어를 지원하나요?",answer:"예, 다국어 지원이 가능합니다. 일본어, 영어, 중국어, 한국어를 포함한 모든 주요 언어를 지원합니다. 각 언어별로 별도의 모델을 보유하는 대신 단일 시스템으로 다국어 쿼리를 처리할 수 있습니다."},{question:"기존 시스템(CRM, 채팅 도구 등)ê³¼ 통합할 수 있나요?",answer:"예, 통합이 가능합니다. Salesforce, HubSpot, Slack, Microsoft Teams, LINE WORKS와 같은 주요 비즈니스 도구와의 API 통합을 지원합니다. 기존 워크플로우를 변경하지 않고도 AI 어시스턴트를 통합할 수 있습니다."},{question:"수수료 구조는 어떻게 되나요?",answer:"프로젝트의 규모와 요구사항에 따라 다릅니다. 일반적으로 초기 구축 비용과 월 운영 비용이 결합되어 있지만, 스팟 개발 또는 컨설íŒ
271… 서비스만 요청할 수도 있습니다. 먼저 요구 사항을 알려주세요. 대략적인 견적을 제공해 드리겠습니다."}]},dL={title:"요금제",subtitle:"요금제",description:"비즈니스 규모에 맞는 유연한 요금제",plans:[{name:"스타터",price:"29,800엔",period:"월별/사용자",description:"소규모 팀을 위한 최고의 요금제입니다. 합리적인 가격의 기본 AI 기능.",features:["월 최대 100회 통화","기본 전사","키워드 감지","이메일 지원","7일 데이터 ë³´ì¡´"],cta:"무료로 시작하기",popular:!1},{name:"전문가",price:"Â¥79,800",period:"월별/사용자",description:"성장하는 팀에 이상적입니다. 고급 분석 기능.",features:["월 최대 500회 통화","고정밀 AI 전사","감정 분석","CRM 연동","우선 지원","30일 데이터 ë³´ì¡´","사용자 지정 보고서"],cta:"14일 무료 체험판",popular:!0},{name:"엔터프라이즈",price:"문의하기",period:"custom",description:"대규모 조직을 위한 모든 기능을 갖춘 요금제",features:["무제한 통화","전용 AI 모델","온프레미스 지원","전담 지원","맞춤형 협업","SLA 보증","보안 감사","무제한 데이터 ë³´ì¡´"],cta:"영업팀에 문의",popular:!1}],faq:{title:"자주 묻는 질문",items:[{question:"무료 평가판이 있나요?",answer:"예, 프로페셔널 요금제에서는 14일 무료 체험을 이용할 수 있습니다. 시작하는 데 신용 카드가 필요하지 않습니다."},{question:"언제든지 요금제를 변경할 수 있나요?",answer:"예, 언제든지 요금제를 업그레이드하거나 다운그레이드할 수 있습니다. 변경 사항은 다음 청구 주기부터 적용됩니다."},{question:"계약 기간에 제한이 있나요?",answer:"월간 요금제에는 계약 기간 제한이 없습니다. 연간 약정을 선택하면 20% 할인을 받을 수 있습니다."}]}},uL={hero:{badge:"AI 기반 기술",title:"AI 트랜스크립션",description:"고급 머신러닝 모델은 99.5%의 정확도를 제공합니다. 수백만 건의 고객 상호작용 데이터로 학습된 AI가 음성을 텍스트로 변환합니다.",features:["99.5% 정확도","실시간 처리","40개 이상의 언어 지원"]},features:{title:"주요 기능",subtitle:"단순한 음성 인식을 뛰어넘는 고급 전사 엔진",items:[{title:"실시간 트랜스크립션",description:"대화 중 실시간 트랜스크립트를 받아보세요. 즉각적인 인사이트를 얻고 실시간 코칭 기회를 놓치지 마세요."},{title:"다국어 지원",description:"40개 이상의 언어를 지원하며 자동 언어 감지 기능으로 글로벌 팀을 지원합니다."},{title:"문맥 이해",description:"산업별 용어를 학습한 AI 모델은 기술 및 비즈니스 용어를 정확하게 인식합니다."},{title:"스피커 분리",description:"대화에서 서로 다른 화자를 자동으로 식별 및 구분하고 명확한 화자 속성을 할당합니다."},{title:"사용자 지정 어휘집",description:"귀사의 고유한 제품 이름, 서비스 이름, 기술 용어를 학습하면 정확도가 훨씬 더 높아집니다."},{title:"품질 보증",description:"자동 품질 검사 및 신뢰도 점수 매기기를 통해 최고 품질의 트랜스크립션을 보장합니다."}]},useCases:{title:"사용 장면",subtitle:"정확한 통화 녹취가 필요한 산업 및 팀",items:[{title:"영업 팀",description:"영업 통화를 되돌아보고 성공 패턴을 파악하세요. 구체적인 사례를 통해 통화 효과를 개선하고 팀원들을 코칭하세요."},{title:"고객 지원",description:"고객 문제를 정확하게 기록하세요. 일관된 서비스 품질을 보장하기 위해 포괄적인 지원 이력을 유지합니다."},{title:"품질 관리",description:"규정 준수를 모니터링하고 스크립트 준수를 보장합니다. 감사 및 교육에 대한 자세한 기록을 유지하세요."}]},stats:{accuracy:{value:"99.5%",label:"전사 정확도"},languages:{value:"40+",label:"지원 언어"}
271,latency:{value:"<2초",label:"처리 지연"},availability:{value:"24/7",label:"연속 처리"}}},cL={hero:{badge:"스마트 감지",title:"키워드 추적",description:"경쟁사 언급, 반박 및 중요한 주제를 자동으로 모니터링하세요. 고객 대화에서 중요한 신호를 놓치지 마세요.",badges:["경쟁사 추적","응답 탐지","주제 분석","맞춤 키워드"]},features:{title:"중요한 정보 추적",subtitle:"모든 대화에서 키워드 자동 감지 및 분석",items:[{title:"경쟁사 모니터링",description:"경쟁사 언급을 추적하여 잠재 고객이 귀사의 솔루션을 시장의 대안과 어떻게 비교하는지 파악하세요."},{title:"응답 탐지",description:"일반적인 이의 제기 및 우려 사항을 자동으로 파악하고 효과적인 대응 및 교육을 개발하세요."},{title:"맞춤 키워드",description:"비즈니스, 제품 또는 업종에 맞는 맞춤 키워드와 문구를 정의하고 추적하세요."},{title:"트렌드 분석",description:"고객과의 대화에서 새로운 트렌드를 발견하고 실제 시장 신호에 따라 전략을 조정하세요."},{title:"컨텍스트 추출",description:"키워드에 대한 언급뿐만 아니라 키워드 전후의 맥락을 파악하세요. 무슨 말을 했는지뿐만 아니라 왜, 어떻게 했는지도 파악할 수 있습니다."},{title:"스마트 검색",description:"모든 대화를 즉시 검색하여 특정 주제가 언제 어디서 논의되었는지 정확히 찾을 수 있습니다."}]},applications:{title:"사용 장면",items:{competitive:{title:"경쟁 인텔리전스",description:"경쟁 환경에 대한 깊은 이해:",points:["가장 자주 언급되는 경쟁사 추적","잠재 고객이 기능과 가격을 비교하는 방식 이해하기","경쟁 우위와 약점 파악","효과적인 경쟁사 방지 자료 만들기"]},objections:{title:"반박에 대한 응답",description:"반박을 기회로 전환하세요:",points:["가장 일반적인 고객 문제 파악","상위 성과자의 반박 답변 분석하기","반응이 입증된 플레이북.","효과적인 업무 처리로 팀원 교육"]},product:{title:"제품 인사이트",description:"고객 피드백을 통해 제품 개발을 촉진합니다:",points:["가장 많이 요청된 기능 파악","현재 기능에 대한 문제점 이해","예상치 못한 사용 사례 발견","고객 요구 사항에 따라 로드맵 우선순위 지정"]},compliance:{title:"규정 준수 및 품질",description:"규정 준수 및 품질을 보장합니다:",points:["필수 공개 사항 및 법적 언어 모니터링","정책을 위반할 수 있는 대화에 플래그를 지정하세요.","스크립트 규정 준수 및 모범 사례 추적","감사를 위한 규정 준수 보고서 생성"]}}},advancedFeatures:{title:"고급 기능",items:[{title:"모호한 검색",description:"수동 설정 없이 키워드 변형, 동의어 및 관련 용어를 자동으로 감지합니다."},{title:"기록 분석",description:"시간 경과에 따른 키워드 트렌드를 분석하여 계절별 패턴과 새로운 주제를 파악하세요."},{title:"실시간 알림",description:"실시간 대화에서 중요한 키워드가 언급되면 즉시 알림을 받습니다."}]}},mL={hero:{badges:["엔터프라이즈","로컬 LLM","사내 서버 운영"],title:"온프레미스 LLM 구축",description:"회사 외부에 데이터를 보관하면서 자체 환경에서 LLM을 운영하세요."},mission:{title:"온프레미스 LLM 구축 서비스 개요",paragraphs:["기밀 데이터를 외부로 유출할 수 없는 기업의 경우, 자체 서버 또는 프라이빗 클라우드에서 완료할 수 있는 LLM 환경을 구축합니다. 이 솔루션은 퍼블릭 API를 사용하지 않고 고객이 관리하는 인프라 내에서 모든 처리가 완료되므로 금융기관, 의료기관, 정부기관, 연구기관 등 엄격한 정보 관리가 필요한 조직에 이상적입니다.","모델 선택부터 서버 구축, 추론 엔진 최적화, 운영 모니터링까지 포괄적으로 지원하며, 상용 오픈 웨이트 모델인 Llama 3.3, Qwen 2.5, Mistral, DeepSeek와 고성능 추론 엔진인 vLLM, Ollama, SGLang을 사용합니다. 이러한 모델은 vLLM, Ollama, SGLangê³¼ 같은 고성능 추론 엔진에서 실행되어 지연 시간이 ì§§ê³  처리량이 많은 추론 환경을 제공합니다.","기존 시스템과의 통합, 챗봇, 내부 RAG, 문서 요약, 코드 생성 등 다양한 사용 사례를 지원합니다. 모델 미세 조정을 통한 비즈니스 전문화, NVIDIA GPU/애플 실리콘 최적화, 멀티 테넌트 설계, API 게이트웨이 구축 등 기업의 요구 사항을 충족하도록 설계할 수 있습니다."]},summary:{title:"온프레미스 LLM 트렌드",paragraphs:["2025~2026년 온프레미스 LLM의 효용성은 빠르게 개선되고 있습니다. 개방형 가중치 모델의 성능이 폐쇄형 모델의 성능을 따라잡았으며, 상용 라이선스와 함께 제공되는 모델의 수가 늘어나면서 사내 운영의 장벽이 크게 낮아졌습니다.","8억~70억 개의 파라미터를 가진 모델은 많은 비즈니스 작업에서 실용적인 수준에 도달했으며, GGUF 양자화를 통해 일반 소비자용 GPU에서도 고속 추론이 가능합니다.","추론 엔진의 경우, vLLM의 연속 배치 및 PagedAttention은 처리량을 획기적으로 증가시키고, SGLang의 RadixAttention은 복잡한 멀티턴 상호작용을 가속화합니다. Ollama는 로컬 개발 환경의 사실상 표준으로 자리 잡았으며, llama.cpp는 M 시리즈 Mac에서 빠른 추론에 최적화된 Apple Silicon입니다.","기업에서는 데이터 주권 및 규정 준수 외에도 장기적인 비용 최적화(종량제 API 과금에서 벗어나기)가 점점 더 도ìž
271…의 동기가 되고 있습니다. 하이브리드 구성(민감한 처리를 위한 로컬 및 범용 처리를 위한 클라우드 API)이 일반적인 옵션이 되었습니다."],icons:[{label:`비공개
272클라우드`},{label:`데이터
273주권`},{label:`비용
274최적화`},{label:`엔터프라이즈
275보안`}]},features:{title:"디자인 및 개발 기능",subtitle:"디자인 및 개발",items:[{title:"인프라 설계 및 GPU 최적화",description:"NVIDIA A100/H100, RTX 4090/5090, Apple Silicon(M2 Ultra/M3 Max/M4 Max) 등 워크로드와 예산에 맞는 최적의 하드웨어 구성을 설계하고 CUDA, MPS, Metal 최적화를 통해 GPU 성능을 최대한 활용하는 추론 환경을 조성하세요. CUDA, MPS, Metal 최적화를 통해 GPU 성능을 극대화합니다."},{title:"모델 선택 및 최적화",description:"작업 특성, 언어 요구 사항, 리소스 제약 등을 고려하여 Llama, Qwen, Mistral, DeepSeek 등에서 최적의 모델을 선택합니다. 정확도와 처리량을 모두 달성하기 위해 정량화(GGUF/AWQ/GPTQ), KV 캐시 최적화, 배치 처리 튜닝이 사용됩니다."},{title:"추론 엔진 구성",description:"애플리케이션에 따라 vLLM, SGLang, Ollama, TGI 등의 추론 엔진을 선택해 구축하고, 연속 배치, 추측 디코딩, 접두사 캐싱 등의 최신 기술을 적용해 지연 시간이 짧고 처리량이 높은 추론 API를 제공합니다. 지연 시간이 짧고 처리량이 높은 추론 API를 제공합니다."},{title:"운영, 모니터링 및 보안",description:"Prometheus/Grafana로 추론 메트릭 모니터링, API 게이트웨이로 액세스 제어, 감사 로그, 자동 확장 및 장애 복구를 구현하세요. 엔터프라이즈 보안 요구 사항을 충족하는 프로덕션 운영 환경을 구축하세요."}]},techStack:{title:"기술 스택: 온프레미스 LLM",subtitle:"플랫폼 및 기술",categories:{openWeightModels:{title:"오픈 웨이트 모델",items:["Llama 3.3 70B / 8B","Qwen 2.5 72B / 32B / 7B","Mistral Large / Nemo","DeepSeek V3/R1","Gemma 2 27B / 9B","Phi-4","명령 R(코히어)"]},japaneseModels:{title:"일본어 전용 모델",items:["ELYZA-일본어-라마-2","Swallow 70B / 13B","일본어-라마-3","Qwen-2.5-Japanese","카라쿠리-LM"]},inferenceEngine:{title:"추론 엔진",items:["vLLM(연속 배치)","SGLang (RadixAttention)","올라마(지역 개발)","llama.cpp (Apple Silicon)","TGI(허깅 페이스)","TensorRT-LLM(NVIDIA)","ExLlamaV2(양자화 전문화)"]},quantization:{title:"정량화",items:["GGUF(llama.cpp 표준)","AWQ(고정밀 4비트)","GPTQ(GPU 최적화)","비트샌드바이트(8비트/4비트)","EETQ(효율적 효율성 정량화)"]},hardware:{title:"하드웨어",items:["엔비디아 H100/A100","엔비디아 L40S/A10G","RTX 4090 / 5090","Apple 실리콘 M2 울트라","Apple 실리콘 M3/M4 Max","AMD MI300X"]}
275,infrastructure:{title:"인프라",items:["도커/쿠버네티스","NVIDIA Triton 서버","API 게이트웨이(콩/엔보이)","프로메테우스 / 그라파나","프라이빗 클라우드(VMware/오픈스택)","에어 갭 환경 지원"]}},updateNote:{title:"2026년 주요 업데이트 사항",description:"개방형 모델에서 Llama 3.3은 GPT-4급 범용 성능을 달성하고 일본어 성능을 크게 향상시켰으며, Qwen 2.5 시리즈는 다양한 크기와 균형 잡힌 성능으로 선택의 폭을 넓히고, DeepSeek V3/R1은 추론 비용 성능으로 주목을 받고 있으며, vLLM 2.0 Chunked Prefill과 SGLang의 RadixAttention 추론 엔진은 멀티 턴 대화 속도를 높입니다. 추론 엔진에서 vLLM 2.0의 청크드 프리필과 SGLang의 RadixAttention은 멀티턴 상호작용 속도를 높이고, llama.cpp의 Apple Silicon 최적화는 M4 Max에서 70B 모델 추론을 실용적으로 구현하며, 양자화 기술은 4비트 정밀도와 고성능을 제공합니다. 양자화 기술은 4비트 정밀도와 추론 속도를 모두 달성했으며, GGUF는 사실상 표준 포맷이 되었습니다."}},cta:{title:"문의하기",description:`요구 사항 준비부터 상담해 드립니다.
276PoC 및 로컬 LLM 구성도 고려할 수 있습니다.`,primaryButton:"문의하기",secondaryButton:"기술 상담"}},pL={hero:{badges:["엔터프라이즈","RAG","검색 확장자 생성"],title:"벡터/RAG 개발",description:"내부 지식을 LLM과 연결하기 위한 RAG 시스템 구축"},mission:{title:"벡터/RAG 개발 서비스 개요",paragraphs:["사내에 축적된 지식 자산을 LLM과 연계하여 직원들이 자연어로 검색하고 질문할 수 있는 RAG(검색 확장 생성) 시스템을 구축합니다. 매뉴얼, 회의록, 기술문서, FAQ, 슬랙 히스토리, 컨플루언스, 쉐어포인트 등 다양한 데이터 소스를 통합하여 조직의 지식을 즉시 활용할 수 있는 환경을 조성합니다.","단순 문서 검색 외에도 하이브리드 검색(벡터 검색+키워드 검색), 리랭킹, 계층적 청킹, 메타데이터 필터링 등 최신 기술을 적용해 검색 정확도와 응답 품질을 극대화합니다. 답변의 출처를 명확히 표시하여 왜곡을 억제하고 신뢰성을 확보합니다.","AWS, GCP, Azure, 온프레미스 등 다양한 환경을 지원하며 기존 인증 인프라 및 권한 관리와 통합됩니다. 데이터 최신성 유지(차등 업데이트 및 자동 재인덱싱), 사용 로그 분석, 지속적인 정확도 향상을 위한 일관된 지원을 제공합니다."]},summary:{title:"RAG 기술 동향",paragraphs:["2025년에서 2026년 사이에 RAG 기술은 '기본 구현에서 생산 품질로' 단계로 이동하고 있습니다. 단순한 벡터 검색 외에도 여러 검색 방법을 결합한 하이브리드 검색, 검색 결과의 순위를 재조정하는 리랭킹, 복잡한 질문을 분해하여 처리하는 쿼리 분해가 표준 구성으로 자리 잡았습니다.","문서 구조를 고려한 계층적 청킹, 중복 청킹, 표와 그림을 따로 처리하는 멀티모달 청킹 등 청킹 전략도 진화하여 정확도 향상에 기여하고 있습니다. 문맥 검색(청크에 문맥 정보를 추가하는 기능)도 효과적인 것으로 널리 인정받고 있습니다.","벡터 DB 선택의 경우, Pinecone, Weaviate, Qdrant, Milvus와 같은 관리형 서비스 외에도 PostgreSQL pgvector 및 로컬 FAISS가 고객의 요구 사항을 충족할 수 있는 다양한 옵션을 제공합니다. 텍스트 임베딩-3-large, Cohere Embed v3 및 다국어 모델을 포함한 임베딩 모델도 사용할 수 있습니다.","엔터프라이즈 배포에서는 권한 관리(ACL) 연동, PII 마스킹, 감사 로그, 멀티테넌트 설계가 필수 요건이며, '작동 중인 PoC'에서 '프로덕션 준비된 프로덕션 시스템'으로 전환해야 할 필요가 있습니다."],icons:[{label:`하이브리드
277검색`},{label:`멀티 모달
278RAG`},{label:`에이전트
279RAG`},{label:`엔터프라이즈
280보안`}]}
280,features:{title:"디자인 및 개발 기능",subtitle:"디자인 및 개발",items:[{title:"데이터 수집 및 전처리 파이프라인",description:"PDF, Word, Excel, HTML, Markdown, Slack, Confluence, SharePoint 등에서 데이터 추출 및 정리. OCR, 표 구조 분석, 이미지 캡션 생성을 포함한 멀티모달 지원. 차등 업데이트 및 예약 실행으로 최신성을 유지하세요."},{title:"고정밀 검색 시스템 설계",description:"벡터 검색 + BM25 하이브리드 검색, 코히어 리랭크/크로스 인코더를 통한 리랭크, 쿼리 확장 및 분해를 결합한 고정밀 검색을 구축합니다. 메타데이터 필터링과 권한 기반 액세스 제어도 구현됩니다."},{title:"응답 생성 및 품질 관리",description:"문맥 최적화, 단답형 프롬프트, 연쇄 추론으로 답변 품질이 향상되었습니다. 출처 설명, 신뢰도 점수 표시, 반감기 감지 기능이 구현되어 업무용으로 신뢰성을 보장합니다."},{title:"운영 및 개선 주기",description:"사용 로그 분석, 검색 적중률 및 응답 만족도 모니터링, 피드백 루프를 통한 지속적인 개선, A/B 테스트 인프라, 임베딩 모델 업데이트, 청킹 전략 검토 등의 운영 지원을 제공합니다."}]},techStack:{title:"기술 스택: 벡터/RAG",subtitle:"플랫폼 및 기술",categories:{embeddingModels:{title:"모델 임베딩",items:["OpenAI 텍스트 임베딩-3-large","Cohere Embed v3","Voyage AI","지나 임베딩 v3","BGE-M3(다국어)","다국어-E5-대형","일본어 전용 모델"]},vectorDatabases:{title:"벡터 데이터베이스",items:["솔방울(관리형)","Weaviate(하이브리드 검색)","Qdrant(고성능)","밀버스(대규모)","크로마(경량)","PostgreSQL pgvector","FAISS(현지)"]},chunking:{title:"청크 및 처리",items:["계층적 청킹","시맨틱 청킹","겹치는 청크","문장 창","문맥 검색","표 및 차트 처리","멀티모달 지원"]},search:{title:"검색 및 검색",items:["하이브리드 검색(벡터 + BM25)","코히어 리랭크","크로스 인코더 리랭크","쿼리 확장 및 분해","HyDE(가상 문서 생성)","자체 쿼리 검색","다중 쿼리 검색"]}},updateNote:{title:"2026년 주요 업데이트 사항",description:"임베딩 모델에서는 텍스트 임베딩-3-large와 Cohere Embed v3가 기업 표준이 되어 일본어 성능이 크게 향상되었고, 문맥 검색이 효과가 입증되어 청크에 문맥을 추가하는 것이 표준 방식이 되었습니다. 하이브리드 검색 + 재랭크가 검색의 필수 구성이 되어 단순 벡터 검색만 구성하는 경우가 줄어들었고, 에이전트 RAG(에이전트가 동적으로 검색 전략을 선택하는 방식)가 실용화되고 있습니다. 운영 측면에서는 RAG 평가 프레임워크(RAGAS, LangSmith)를 사용하여 품질 측정 및 개선 주기를 확립하는 데 중점을 두고 있습니다."}},cta:{title:"문의하기",description:`요구 사항 준비부터 상담해 드립니다.
281PoC 및 로컬 LLM 구성도 고려할 수 있습니다.`,primaryButton:"문의하기",secondaryButton:"기술 상담"}},gL={hero:{badges:["전체 스택","LLM 통합","API 디자인"],title:"AI 애플리케이션 개발",description:"LLM을 활용하는 실용적인 애플리케이션 설계 및 구축"},mission:{title:"AI 애플리케이션 개발 서비스 개요",paragraphs:["외부 API로부터 획득한 데이터를 LLM으로 분석하고, CRM, ERP, SaaS, IoT 센서, 소셜 미디어 등 다양한 데이터 소스와 API를 연동하며, 획득한 데이터를 실시간으로 LLM에 공급하여 비즈니스 가치를 창출하는 AI 애플리케이션의 설계 및 개발을 제공합니다. 자연어를 활용한 분석 보고서 생성, 이상 징후 탐지, 트렌드 예측, 자동 분류 등 기존 BI 도구로는 불가능한 고급 데이터 분석이 가능합니다.","단순한 API 통합뿐만 아니라 여러 데이터 소스의 통합, 데이터 정제, 구조화된 처리를 통해 LLM이 해석하기 쉬운 형식으로의 변환도 가능합니다. 신속한 엔지니어링을 통해 분석의 정확성을 극대화하고 비즈니스 요구사항에 특화된 결과물을 생성합니다. 비즈니스 협상 예측을 위한 영업 데이터, VoC 분석을 위한 고객 지원 로그, 장비 유지보수 권장 사항을 제공하기 위한 센서 데이터 등 데이터와 AI를 결합한 실용적인 애플리케이션을 구축합니다.","웹 애플리케이션, 모바일 애플리케이션, Slack/Teams 연동, 주기적 배치 처리 등 다양한 인터페이스를 지원합니다. 요구사항 정의부터 API 설계, LLM 통합 구현, 프로덕션 운영까지 일관된 지원을 제공합니다."]},summary:{title:"AI 애플리케이션 개발 동향",paragraphs:["2025년부터 2026년까지 'API 통합 x LLM 분석'을 기반으로 한 AI 애플리케이션 개발이 실용화 단계에 접어들고 있습니다. 기존의 BI 도구와 대시보드로는 처리할 수 없었던 비정형 데이터 분석과 자연어 인사이트 생성이 엔터프라이즈 시스템에 통합되기 시작합니다.","특히 주목할 만한 점은 엄격한 JSON 스키마를 준수하는 출력 제어를 가능하게 하는 LLM의 구조화된 출력 기능의 성숙으로, API를 통해 수집한 데이터를 LLM에서 분석하고 그 결과를 후속 시스템에 직접 공급하는 엔드투엔드 자동화 파이프라인을 실현할 수 있게 되었다는 것입니다. 함수 호출의 다단계 실행을 통해 여러 API에 걸친 데이터 수집, 통합 및 분석을 단일 워크플로우에서 처리할 수 있습니다.","데이터 처리 인프라에서 Polars는 고속 처리의 표준으로 부상했으며, 스트리밍 처리와 결합하여 실시간 분석을 용이하게 합니다.","기업 구현의 경우, 일회성 PoC 개발에서 프로덕션 운영을 위한 확장 가능한 설계로 요구가 바뀌면서 비용 최적화, 오류 처리 및 감사 로그 지원을 포함하는 포괄적인 아키텍처 설계가 필요해졌습니다."],icons:[{label:`에이전트
282AI`},{label:`MCP
283프로토콜`},{label:`멀티
284에이전트`},{label:`휴먼온
285-더-루프`}]}
285,features:{title:"디자인 및 개발 기능",subtitle:"디자인 및 개발",items:[{title:"API 통합 및 데이터 수집 설계",description:"REST API, GraphQL, 웹소켓, 웹훅 등 다양한 프로토콜을 지원하는 데이터 수집 인프라를 구축합니다. 인증 프로세스(OAuth, API 키, JWT), 속도 제한, 재시도 메커니즘을 구현하여 안정적인 데이터 수집 파이프라인을 설계합니다. 또한 여러 API로부터의 데이터 통합, 스케줄링 및 차등 수집을 지원합니다."},{title:"데이터 전처리 및 구조화",description:"JSON 파싱, 데이터 정제, 정규화, 결측치 처리 등 원시 데이터를 LLM이 효율적으로 분석할 수 있는 포맷으로 변환하고 컨텍스트 윈도우 제한을 고려하여 최적의 데이터 분할 및 요약 작업을 수행합니다. 메타데이터 할당을 통해 분석 결과의 추적성을 보장합니다."},{title:"LLM 분석 및 신속한 설계",description:"비즈니스 요구사항에 맞는 신속한 템플릿을 설계하여 데이터 분석의 정확성을 극대화하세요. 분류, 요약, 감성 분석, 이상 징후 감지, 예측 생성 등을 위한 분석 파이프라인을 구축합니다. 함수 호출 및 구조화된 출력을 활용하여 후속 시스템과 쉽게 통합할 수 있는 형식으로 출력을 생성합니다."},{title:"애플리케이션 구현 및 운영",description:"분석 결과는 FastAPI, Next.js 등을 이용한 웹 애플리케이션, Slack/Teams Bot, 예약된 일괄 실행 등 다양한 인터페이스를 통해 제공합니다. 대시보드, 알림 알림, 자동 보고서 생성 등 현업 사용자가 즉시 활용할 수 있는 형태로 구현되어 전달됩니다. 또한 운영 모니터링, 비용 최적화, 지속적인 개선도 제공합니다."}]},techStack:{title:"기술 스택: AI 애플리케이션 개발",subtitle:"플랫폼 및 기술",categories:{apiIntegration:{title:"API 통합",items:["REST/그래프QL/웹소켓","OAuth 2.1 / API key / JWT","웹훅 / 투표","아파치 에어플로우 / 현","셀러리 / 템포럴","요청 / httpx / aiohttp","속도 제한 / 재시도","데이터 유효성 검사(Pydantic)"]},dataProcessing:{title:"데이터 처리",items:["판다 / 폴라","JSON / JSONL 파서","데이터 클렌징 파이프라인","Apache Spark(대규모 처리)","DBT(데이터 변환)","큰 기대","델타 호수 / 빙산","스트리밍(카프카/플링크)"]},llmCloud:{title:"클라우드 LLM",items:["OpenAI GPT-4o / GPT-4.1","클로드 3.5 / 클로드 4","쌍둥이자리 2.0 / 쌍둥이자리 2.5","명령 R+(코히어)","Mistral Large"]},llmLocal:{title:"로컬 LLM",items:["Llama 3.3 / Llama 4","Mistral / Mixtral","Qwen 2.5 / Qwen 3","DeepSeek V3/R1","젬마 2 / 젬마 3","Phi-4","엘리자/스왈로우(일본어 전문)","명령 R(코히어)"]},inference:{title:"추론 / 프레임워크",items:["vLLM/SGLang","올라마 / llama.cpp","LiteLLM 프록시","함수 호출","구조화된 출력","프롬프트 템플릿 엔진","LangChain / LlamaIndex","독점 분석 파이프라인"]},application:{title:"애플리케이션 계층",items:["FastAPI / 라이트스타","Next.js / React","Slack SDK / Teams SDK","스트림라이트 / 그라디오","예약된 작업(크론/클라우드 스케줄러)","PostgreSQL / 몽고DB","Redis(캐시/큐)","도커/쿠버네티스"]}},updateNote:{title:"2026년 주요 업데이트 사항",description:"LLM 분석 영역에서는 GPT-4.1과 Claude 4의 구조화된 출력 기능이 발전하여 엄격한 JSON 스키마 준수 출력 제어를 표준화했으며, 함수 호출의 다단계 실행을 통해 단일 파이프라인에서 여러 API에 걸쳐 복잡한 데이터 수집 및 분석이 가능해졌습니다. 함수 호출을 다단계로 실행하면 단일 파이프라인에서 여러 API에 걸쳐 복잡한 데이터를 수집하고 분석할 수 있습니다. 데이터 처리에서 Polars는 고속 처리를 위한 판다의 대안으로 자리 잡았으며, 스트리밍 처리와 결합하여 실시간 분석 인프라를 구축할 수 있게 해줍니다. 애플리케이션 계층에서는 MCP를 사용한 외부 도구 통합이 일반화되어 LLM이 자율적으로 API를 호출하여 데이터를 수집하고 분석하는 에이전트 애플리케이션의 개발이 가속화되고 있습니다."}},cta:{title:"문의하기",description:`요구 사항 준비부터 상담해 드립니다.
286PoC 및 로컬 LLM 구성도 고려할 수 있습니다.`,primaryButton:"문의하기",secondaryButton:"기술 상담"}},hL={seo:qx,header:Ux,hero:_x,mission:Hx,businessServices:$x,features:Qx,businessProcess:Jx,story:Zx,contact:Xx,footer:Yx,cookiePolicy:eL,about:aL,portfolio:nL,common:tL,privacyPolicy:iL,termsOfService:sL,weatherMap:rL,agentDevelopment:oL,faq:lL,pricing:dL,aiTranscription:uL,keywordTracking:cL,onPremiseLLM:mL,vectorRAG:pL,aiAppDevelopment:gL},fL={home:{title:"Plataforma de soluciones basadas en inteligencia artificial - telet.ai",description:"Transforme sus conversaciones con los clientes gracias al análisis de llamadas basado en inteligencia artificial. Obtenga información en tiempo real, análisis de opiniones y seguimiento del rendimiento para mejorar los resultados de su equipo."},about:{title:"Información de la organización - telet.ai",description:"Learn about telet.ai's mission to transform customer conversations with AI. Meet our team and explore our journey."},privacy:{title:"Política de privacidad - telet.ai",description:"Review telet.ai's privacy policy to understand how we handle your data and protect your privacy."},terms:{title:"Condiciones del servicio - telet.ai",description:"Read telet.ai's terms of service for using this website and contacting us for consultations."},cookies:{title:"Política de cookies - telet.ai",description:"Learn how telet.ai uses cookies and similar technologies (Cloudflare and Google Analytics)."},portfolio:{title:"Cartera - telet.ai",description:"Explore nuestra cartera de soluciones de IA diseñadas para mejorar sus operaciones comerciales y la experiencia de sus clientes."},agentDevelopment:{title:"Diseño y desarrollo de agentes de IA para empresas - telet.ai",description:"Diseñe y cree agentes de IA de nivel industrial adaptados a sus flujos de trabajo, herramientas y necesidades de cumplimiento normativo."},onPremiseLLM:{title:"Operaciones LLM en las instalaciones - telet.ai",description:"Utilice modelos de lenguaje grandes (LLM) modernos en su entorno para obtener un control sólido de los datos, costes predecibles y una inferencia de baja latencia."},vectorRAG:{title:"Diseño vectorial RAG e índice - telet.ai",description:"Diseñe canales de recuperación e índices adaptados a cada flujo de trabajo para mejorar las respuestas fundamentadas."},aiAppDevelopment:{title:"Desarrollo de aplicaciones de IA - telet.ai",description:"Cree aplicaciones prácticas impulsadas por LLM, integradas con sus API, datos y flujos de trabajo empresariales."}},kL={brand:"telet.ai",nav:{services:"Servicios",portfolio:"Cartera",about:"Información de la organización",contact:"Póngase en contacto con"}},bL={brandName:"telet.ai",tagline:"Multi AI-comunicaciones",badge:"Inteligencia de llamadas basada en IA",title:{line1:"Local y defensivo,",line2:"Ampliar en la nube,",line3:"Automatizado por agente."},description:"La inferencia en los bordes en SLM garantiza la soberanía de los datos, y la integración en la nube en LLM escala la potencia de procesamiento hasta el infinito; la adopción de la arquitectura Agentic AI está empezando a dar resultados en las principales empresas."},yL={badge:"Nuestra misión",title:"Hacer más accesible el LLM",paragraphs:['¿De verdad se puede llegar tan lejos?". --Esa sorpresa es lo que pretendemos.','El potencial del modelado lingüístico a gran escala (LLM) se amplía día a día. Sin embargo, queremos derribar barreras como "Me preocupa enviar datos confidenciales a API externas", "Las aplicaciones avanzadas de IA son solo para grandes empresas" y "El coste de implementación no merece la pena".',"Estamos especializados en la creación de LLM locales que se completan dentro de su entorno. La información altamente sensible de los clientes se puede utilizar de forma segura sin exponerla al mundo exterior. Podemos maximizar los beneficios de la IA al tiempo que garantizamos la seguridad de los datos.","Se encarga de todo, desde la creación rutinaria de documentos y la organización de datos hasta el análisis especializado y el apoyo a la toma de decisiones. Nuestra tecnología patentada de agentes proporciona una precisión comparable a la de los modelos API.",'El LLM no sustituye a las personas. Es una poderosa herramienta que permite a las personas ejercer más creatividad, juicio y experiencia. Llevamos la tecnología de lo especial a lo común: una auténtica "consumerización" de la tecnología.','No dude en consultarnos. Trabajaremos con usted para averiguar "qué podemos hacer" junto con usted.'],animation:{label:"LLM",sublabel:"Tecnología"}},vL={title:"Servicios",subtitle:"Servicios a empresas",services:[{title:"Diseño y desarrollo de agentes de IA para empresas",titleEn:"Agente de IA empresarial",description:"Diseñar y desarrollar agentes de IA optimizados para los requisitos empresariales, las normas internas y el alcance de los datos. Soporte desde LLM externos de tipo API hasta LLM locales.",badges:["Diseño individual","Compatible con LLM","especialización empresarial"],link:"Detalles."},{title:"servidor LLM on-premise",titleEn:"Servidor LLM local",description:"Ejecuta LLM a escala de 7B a 120B dentro del servidor dedicado de la empresa. Proporciona un entorno de uso de LLM seguro y flexible, evitando el riesgo de transmisión externa de datos.",badges:["Compatible con 7B-120B","Clave API emitida","Diseño de seguridad"],link:"Detalles."},{title:"Vector RAG y diseño de índices",titleEn:"Vector RAG Arquitectura",description:"Separe y optimice los datos RAG por contenido empresarial y lógica de análisis. Diseño de índices para búsquedas rápidas y precisas.",badges:["Índice Separación","Búsqueda de alta velocidad","soporte multilingüe"],link:"Detalles."},{title:"Desarrollo de aplicaciones de IA",titleEn:"Desarrollo de aplicaciones de IA",description:"Desarrollar aplicaciones prácticas de IA con análisis y generación por LLM en su núcleo, utilizando APIs existentes y datos externos.",badges:["Enlace API","Análisis 
286LLM","Diseño integrado"],link:"Detalles."}]},AL={title:"Proyectos de éxito con tecnología de IA",subtitle:"Experiencia en el desarrollo de IA en una amplia gama de campos, como asistentes multilingües, predicción meteorológica, LLM local y vigilancia de la seguridad.",viewDetails:"Ver detalles →.",items:[{title:"Asistente multilingüe AI",description:"Asistente de chat multilingüe de RAG + LLM. Respuestas muy precisas a consultas en varios idiomas, incluidos japonés, inglés y chino."},{title:"Sistema de previsión meteorológica",description:"Aprende datos meteorológicos y genera previsiones en tiempo real. Se generan previsiones de gran precisión utilizando el reconocimiento de patrones de series temporales y la GAR para buscar patrones similares en el pasado."},{title:"Servidor interno / On-Prem Local LLM",description:"Proporcionamos IA adaptada a sus operaciones empresariales, lista para usar en su empresa, con Open WebUI como punto de entrada común, vías de inferencia rápidas con Ollama/MLX y dominios de datos completamente separados para cada UID. Los documentos internos se capturan en un RAG con incrustación en inglés y traducción automática de consultas al japonés, y las habilidades empresariales como el resumen de noticias, la organización de documentos y las tareas rutinarias se ejecutan de forma segura codo con codo. El sistema de ejecución de habilidades está aislado como un contenedor OpenClaw y protegido por tres capas de Cloudflare edge y Nginx local. Proporcionamos asistencia completa para la selección de modelos, el diseño de habilidades y las políticas operativas, y ponemos en marcha la IA dedicada de su empresa de forma que pueda utilizarse desde el mismo día de su despliegue."},{title:"Predicción de llegada a órbita interplanetaria (AI)",description:"Obtiene datos planetarios de la API de la NASA e interpreta los cálculos de órbita en LLM. Genera informes sobre la ventana de lanzamiento, el tiempo necesario y la eficiencia del combustible."},{title:"Análisis AI de datos inmobiliarios",description:"Recopile información inmobiliaria mediante web scraping y analícela con LLM + Python. Generación automática de tendencias de precios, previsiones de mercado y retorno de la inversión."},{title:"Adivinación AI (adivinación de los cuatro pilares)",description:"Reproducir la lógica de los Cuatro Pilares del Destino en Python e interpretarla con LLM. Adquiere las coordenadas y la hora de la API de Astronomía para una valoración personalizada de la fortuna y la compatibilidad."},{title:"Google Workspace AI integration",description:"Integración de LLM con Gmail, Drive, Calendar, etc. La IA ayuda con el resumen de correos electrónicos, la búsqueda de archivos y la programación."},{title:"Multilingüismo en World NEWS",description:"Recopilación en tiempo real de noticias mundiales, traducidas y resumidas en varios idiomas por LLM. Traducción natural y generación de resúmenes basada en la comprensión contextual."},{title:"Supervisión de registros de seguridad AI Manager",description:"Supervisión en tiempo real de los registros de seguridad, detección y análisis de amenazas mediante LLM, y alertas inmediatas por comparación con patrones de ataques anteriores mediante RAG."}]},xL={title:"Cómo proceder con el proyecto",headline:"Todo lo que necesitas es una visión.",paragraphs:['Atrás quedaron los días en que las diferencias lingüísticas eran una barrera para los negocios y, aunque utilizamos la traducción automática, podemos gestionar negociaciones y desarrollos comerciales en 14 idiomas gracias a nuestro exclusivo flujo de trabajo que aprovecha al máximo el uso compartido de imágenes. Incluso las especificaciones complejas pueden comprobarse con imágenes de muestra para evitar errores de comunicación. Lo único que importa es "lo que usted quiere crear".',"El proyecto comienza con una audiencia inicial en la aplicación empresarial. Tras una puesta en común general de la visión del cliente y su percepción de los problemas, se firma un acuerdo de confidencialidad. Tras crear un entorno en el que la información confidencial pueda discutirse de forma confidencial, realizamos entrevistas detalladas y confirmamos los requisitos. Basándonos en el contenido, preparamos una propuesta y confirmamos la dirección del proyecto utilizando imágenes de muestra. Una vez establecido el acuerdo, preparamos las especificaciones y comenzamos el desarrollo.","Este flujo es sólo una introducción general. Nos adaptaremos con flexibilidad a su situación y horario. Esté donde esté en el mund
286o, aunque no hablen el mismo idioma, las imágenes y la IA apoyarán su comunicación. ¿Por qué no se une a nosotros para entrar en el mercado fronterizo en el que nadie ha entrado todavía? Deje que telet.ai sea su socio para dar forma a sus ideas."],cards:[{title:"Audiencia / NDA",description:"Tras la audiencia inicial por correo electrónico, se firma un acuerdo de confidencialidad. Puede facilitarnos detalles con toda tranquilidad."},{title:"Planificación y AC",description:"Se proporcionan propuestas e imágenes de muestra. Se admiten 14 idiomas, por lo que puede proceder sin barreras lingüísticas."},{title:"Muestreo e inicio",description:"Prepararemos las especificaciones e iniciaremos el negocio previo acuerdo."},{title:"Desarrollo, pruebas y funcionamiento",description:"Rápida implantación mediante un desarrollo ágil. Proporcionamos apoyo constante desde las pruebas hasta el soporte operativo."}]},LL={badge:"Casos prácticos",title:"Historia de la introducción de la IA",items:[{title:"Soluciones de eficiencia empresarial y reducción de costes",subtitle:"Reduzca la carga de trabajo diaria y cree un entorno en el que pueda centrarse en su actividad principal.",description:'Muchas pequeñas y medianas empresas (PYME) se enfrentan a la escasez de mano de obra y a dificultades de contratación. Incluso cuando se contrata nuevo personal, los costes de formación son elevados y hay problemas con las tasas de retención. Nuestra solución de IA ayuda en tareas cotidianas como la automatización de la gestión presupuestaria, la introducción y organización de datos, la recuperación de documentos internos y la generación automática de informes y documentos. Los asistentes de IA se encargan de tareas rutinarias que antes ocupaban mucho tiempo, 24 horas al día, 365 días al año, sin errores. Las empresas que han introducido la IA han conseguido reducciones significativas de las horas de trabajo. De "aumentar los recursos humanos" a "colaborar con la IA". Haremos todo lo posible para apoyar la reforma del estilo de trabajo de su empresa.'},{title:"Automatización del servicio de atención al cliente",subtitle:"El servicio 24 horas mejora la satisfacción del cliente y reduce los costes de mano de obra.",description:"Los chatbots de IA proporcionan respuestas automatizadas a las preguntas más frecuentes, respuesta primaria y clasificación de consultas, y respuesta en tiempo real en varios idiomas. Respuesta en tiempo real en varios idiomas. Los operadores humanos pueden centrarse en casos complejos y mejorar la calidad del servicio al cliente. Lleve la calidad de su servicio al siguiente nivel con la asistencia al cliente con IA."},{title:"Conocimiento y utilización de documentos AI",subtitle:"Activos de conocimiento internos en una forma que pueda ser utilizada inmediatamente por cualquiera",description:'¿Dónde está ese manual?". Hay información que sólo conoce el predecesor": el conocimiento impersonalizado dificulta el crecimiento de una empresa. Nuestra tecnología RAG (search extension generation) permite recuperar la información necesaria de manuales internos, preguntas frecuentes y documentos anteriores con sólo hacer preguntas en lenguaje natural. Agiliza la formación de nuevos empleados, digitaliza el conocimiento tácito de los veteranos y permite compartir conocimientos entre departamentos. Los documentos existentes pueden utilizarse tal cual, por lo que no es necesario crear documentos nuevos.'},{title:"IA de análisis de imágenes para cuidados médicos y de enfermería",subtitle:"Ojos vigilantes, asistencia las 24 horas gracias a la IA",description:"En el ámbito de la atención médica y de enfermería, es necesario vigilar a un gran número de pacientes y usuarios con un personal limitado. Nuestra IA de análisis de imágenes/vídeos detecta anomalías en tiempo real a partir de las imágenes de las cámaras. Detecta automáticamente enfermedades infecciosas mediante la detección de fiebre, alerta inmediatamente si un paciente se cae o deambula, y detecta cambios en el estado físico mediante el análisis de las expresiones faciales. Al reducir la carga de las patrullas nocturnas, responder rápidamente a las emergencias y automatizar las tareas de grabación, el personal puede centrarse en sus tareas asistenciales principales. También está disponible la instalación in situ para garantizar la privacidad."}]},PL={title:"Contacte con nosotros",description:"Podemos consultar con usted desde la fase de planificación de requisitos, y también podemos considerar configuraciones PoC y LLM locales.",openForm:"Formulario abierto",closeForm:"Cerrar el formulario",form:{name:"Su nombre",namePlaceholder:"Taro Yamada",email:"Dirección de correo electrónico",emailPlaceholder:"[email protected]",subject:"tema",subjectPlaceholder:"Objeto de su consulta",message:"Mensaje",messagePlaceholder:"Rellene su solicitud",required:"*",submit:"Enviar",submitting:"Env
286iando...",turnstileMessage:'La autorización "No soy un robot" es necesaria para el envío.',turnstileError:"No se ha podido cargar la autorización de seguridad. Por favor, vuelva a cargar.",errorRetry:"Por favor, inténtelo de nuevo."}},wL={brand:"telet.ai",tagline:"Multi AI-comunicaciones",description:"Innove su negocio con agentes de IA. Cree valor a partir del diálogo.",sections:{product:{title:"Producto",features:"Característica",benefits:"introducción",testimonials:"Testimonios de clientes"},services:{title:"Servicio",agentDev:"Diseño y desarrollo de agentes de IA para empresas",onPremise:"servidor LLM on-premise",vectorRag:"Vector RAG y diseño de índices",aiApp:"Desarrollo de aplicaciones de IA"},company:{title:"Información de la organización",about:"Acerca de telet.ai",profile:"Perfil del representante",contact:"Contacte con nosotros"},process:{title:"Cómo trabajamos",hearing:"Audiencia / NDA",planning:"Planificación y AC",sampling:"Muestreo e inicio",development:"Desarrollo, pruebas y funcionamiento"}},copyright:"2026 telet.ai. Todos los derechos reservados.",legal:{privacy:"Política de privacidad",terms:"Condiciones de uso",cookies:"Política de cookies"}},SL={title:"Política de cookies",subtitle:"Esta sección describe las cookies y otras tecnologías (Cloudflare / Google Analytics) utilizadas en este sitio.",lastUpdated:"Última actualización: 22 de enero de 2026",intro:'telet.ai ("nosotros", "nos", "nuestro") ("Nosotros") puede utilizar cookies y tecnologías similares para proporcionar y mejorar este Sitio y para garantizar su seguridad. No establecemos nuestras propias cookies de seguimiento especiales con fines publicitarios (aunque Cloudflare y Google Analytics pueden establecer cookies o tecnologías similares de acuerdo con las especificaciones de sus respectivos servicios).',sections:{what:{title:"1. ¿qué es una galleta?",description:"Las cookies son pequeños archivos de texto que se almacenan en su navegador cuando visita un sitio web."},howWeUse:{title:"Finalidad de nuestro uso de cookies, etc.",description:"Podemos utilizar cookies, etc. principalmente para los siguientes fines",items:["Para estabilizar la visualización y el funcionamiento del sitio","Detectar e impedir el acceso no autorizado y el tráfico malicioso","Para conocer el estado de los accesos y ayudar a mejorar el sitio"]},googleAnalytics:{title:"3. uso de Google Analytics",description:"Utilizamos Google Analytics 4 (GA4) proporcionado por Google LLC para el análisis de acceso.",items:["La información recopilada puede incluir páginas vistas, tiempo empleado, fuente de referencia, información sobre el dispositivo y el navegador, etc.","No utilizamos directamente información de identificación personal (nombre, dirección de correo electrónico, etc.) para enviarla a Google Analytics.","El tratamiento de los datos por parte de Google está sujeto a las condiciones y políticas de Google."]},cloudflare:{title:"4. uso de Cloudflare",description:"Utilizamos los servicios de Cloudflare, Inc. para la entrega y las medidas de seguridad de este Sitio. Cloudflare puede establecer y hacer referencia a cookies, etc. para fines como la protección DDoS y la prevención de bots.",items:["El propósito principal es la seguridad y la optimización de la comunicación, y no está destinado a ser rastreado para la entrega de anuncios","El tratamiento de datos por parte de Cloudflare está sujeto a los términos y políticas de Cloudflare"]},noSpecialCookies:{title:"5. nuestras galletas especiales",description:"No instalamos nuestras propias cookies especiales con fines de publicidad orientada al comportamiento, etc. El uso de cookies, etc. se limita principalmente al ámbito del funcionamiento del sitio, la seguridad y el análisis de acceso."},choices:{title:"6. gestión de cookies (opt-out)",description:"Si se desactivan las cookies, es posible que algunas funciones no estén disponibles.",items:["Las cookies pueden eliminarse o desactivarse en la configuración del navegador","Si desea inhabilitar la medición por parte de Google Analytics, utilice el método de inhabilitación proporcionado por Google.","El uso del modo privado de un navegador, etc., puede limitar la información almacenada."]},changes:{title:"7. cambios en esta política",description:"Podemos revisar esta política en respuesta a modificaciones legislativas y reglamentarias o a cambios en los servicios utilizados. La política revisada entrará en vigor cuando se publique en esta página."},contact:{title:"8. contacto",description:"Si tiene alguna pregunta sobre esta política, póngase en contacto con nosotros en",company:"telet.ai",contactLink:"Ir al formulario de consulta"}}},IL={hero:{title:"Acerca de telet.ai",subtitle:"Un cuidadoso apoyo al desarrollo de la IA que sólo puede proporcionar un equipo pequeño y personalizado."},story:{title:"Quiénes somos",content:"telet.ai comenzó con una pregunta. ¿Por qué hay tantas empresas que no aprovechan las innumerables interacciones entre ellas y sus clientes? El equipo, dirigido por un representante con experiencia en investigación de IA y desarrollo de softw
286are empresarial, se creó para abordar esta cuestión de frente. No somos una gran organización. Por eso somos capaces de afrontar sus retos en profundidad y proponer sólo las soluciones realmente necesarias. Nuestro punto fuerte es nuestra capacidad para diseñar arquitecturas híbridas que integran LLM local y LLM en la nube. Podemos proteger los datos confidenciales de su empresa en un entorno dedicado en la nube mientras realizamos inferencia avanzada de IA de forma escalable. Proporcionamos una CLI para desarrolladores y una interfaz de usuario de chat para el personal de primera línea, creando una base para el uso de la IA en toda su organización. Y nos centramos en ser la solución óptima en lugar de ser la más avanzada. Descartar funciones en función del presupuesto y revisar una sola configuración puede suponer una gran diferencia en el coste. Le entregamos lo que necesita, en la cantidad que necesita. Nuestro atento apoyo al desarrollo de IA sólo es posible porque somos pequeños y personales. Solucionar la escasez de personal y apoyar el crecimiento de su empresa. Esa es la promesa de telet.ai."},representative:{title:"Representante de telet.ai labo",name:"Keita Okuizumi",tagline:"Al cielo, al mar y al código: una pasión por el desarrollo de la inteligencia artificial nacida de una carrera inusual",paragraphs:['Como antiguo piloto privado (PPL) y titular de una licencia de barco, me he ocupado de la meteorología tanto en el aire como en el mar durante muchos años. En la cabina y en el puente de mando, observaba los cambios en el barómetro, descifraba las líneas de presión isobáricas y las comparaba con el movimiento del viento y las nubes. El sentido de "leer datos, juzgar y actuar" que desarrollé a través de este proceso repetitivo es el punto de partida para mí hoy en día.','Empecé a aprender a programar en Python a los 57 años. El impulso fue simple curiosidad, pero en cuanto empecé a escribir código me fascinaron las posibilidades de los agentes de IA. Creé aplicaciones con mis propias manos, las ejecuté y las mejoré. En el proceso, me di cuenta de algo. En proyectos anteriores, yo participaba como no ingeniero, y el desarrollo siempre lo hacía otra persona. Sin embargo, una vez que empecé a escribir el código yo mismo, empecé a ver la esencia del problema. Aquí está el cuello de botella" o "Este diseño no se puede ampliar": al tener el punto de vista de un ingeniero, la velocidad de realización de lo que quiero hacer ha aumentado drásticamente.',"Desarrollar servicios meteorológicos combinando la experiencia sobre el terreno con la ciencia de datos, construir agentes de IA para mejorar la eficiencia operativa y diversos proyectos experimentales. A medida que seguía trabajando con mis manos, me convencí no solo de que la tecnología era interesante, sino también de que tenía que haber gente que necesitara esto.","Nuestro objetivo no es perseguir la vanguardia. Nos enfrentamos a los problemas del cliente y a su presupuesto, y ofrecemos sólo lo que es realmente necesario a un coste razonable. No somos una gran organización, por lo que podemos ofrecer un apoyo al desarrollo adaptado a las necesidades de cada cliente. Queremos utilizar esta tecnología en beneficio de la sociedad: por eso lanzamos telet.ai."]},contact:{title:"Información de la organización",company:"telet.ai labo",ceo:"Representante: OKUIZUMI Keita",button:"Contacte con nosotros"},studios:{tokyo:{title:"Estudio de Tokio",address:"#301 First Hills A Musashikoganei, 3-3-21 Nukuiminamicho, Koganei-shi, Tokio 184-0014, Japón"}}},ML={title:"Cartera",subtitle:"Vea nuestro historial de utilización de la tecnología de IA",techStackLabel:"Pilas tecnológicas",viewProject:"Ver proyecto",privateProject:"Proyectos privados",visualizationLabel:"visualización de datos",cta:{title:"Contacte con nosotros",description:"No dude en ponerse en contacto con nosotros para hablar de su proyecto o para consultas técnicas.",button:"Póngase en contacto con nosotros"},projects:{"traffic-route-ai":{title:"Sistema de Selección de Rutas de Transporte con IA",subtitle:"Planificación de rutas de transporte público en Malasia",description:"Sistema que busca conexiones de autobús y tren entre un origen y un destino y compara las opciones por hora de llegada, duración y transbordos. Los filtros de solo autobús o tren, la búsqueda de estaciones y paradas cercanas y una interfaz multilingüe facilitan la elección de rutas para desplazamientos diarios y viajes.",techStack:["Rutas de Transporte Público","Integración de Autobús y Tren","Comparación de Rutas","Interfaz Multilingüe"]},"multilingual-assistant":{title:"Asistente multilingüe AI",description:"Asistente de chat inteligente para consultas en varios idiomas, que construye 1.573 índices vectoriales e implementa un control preciso de las respuestas mediante bifurcación condicional, filtrado de palabras NG y activación de palabras clave. Se generan respuestas coherentes y muy precisas a las preguntas de los usuarios en varios idiomas, c
286omo japonés, inglés y chino, gracias a la búsqueda semántica multilingüe.",techStack:["RAG","Búsqueda vectorial","Incrustación multilingüe","LLM","lógica de bifurcación condicional"]},"weather-forecast":{title:"Predicción meteorológica inteligente con la API meteorológica",description:"Desarrollado un sistema de IA que aprende de datos meteorológicos pasados y hace previsiones en tiempo real de las condiciones meteorológicas recientes. LLM analiza datos pasados obtenidos de JMA API, OpenWeatherMap, etc., y genera previsiones a corto plazo de temperatura, probabilidad de precipitaciones, velocidad del viento, etc. Combinando el reconocimiento de patrones de datos de series temporales con la búsqueda de patrones de similitud en el pasado mediante RAG, el sistema logra previsiones de gran precisión que complementan los modelos estadísticos convencionales.",techStack:["Enlace API meteorológica","LLM","RAG","Análisis de datos de series temporales","procesamiento en tiempo real"]},"local-llm":{title:"Servidor interno / On-Prem Local LLM",description:"Proporcionamos IA adaptada a sus operaciones empresariales, lista para usar en su empresa, con Open WebUI como punto de entrada común, vías de inferencia rápidas con Ollama/MLX y dominios de datos completamente separados para cada UID. Los documentos internos se capturan en un RAG con incrustación en inglés y traducción automática de consultas al japonés, y las habilidades empresariales como el resumen de noticias, la organización de documentos y las tareas rutinarias se ejecutan de forma segura codo con codo. El sistema de ejecución de habilidades está aislado como un contenedor OpenClaw y protegido por tres capas de Cloudflare edge y Nginx local. Proporcionamos asistencia completa para la selección de modelos, el diseño de habilidades y las políticas operativas, y ponemos en marcha la IA dedicada de su empresa de forma que pueda utilizarse desde el mismo día de su despliegue.",techStack:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"]},"orbital-prediction":{title:"Predicción de llegada a órbita interplanetaria (AI)",description:"Desarrollado un sistema para analizar los puntos de partida óptimos para la transferencia interplanetaria mediante la obtención de datos de posición planetaria, elementos orbitales y parámetros de gravedad de la API de la NASA. Realiza cálculos orbitales considerando la órbita de transferencia de Hohmann y la asistencia gravitatoria mediante API y Python, y muestra la ventana de lanzamiento, el tiempo necesario y la eficiencia del combustible. El sistema se utiliza como herramienta de simulación para instituciones educativas y empresas relacionadas con el espacio. *La función AI está actualmente eliminada, el cálculo está en curso con API y Python.",techStack:["NASA API (Horizons, SPICE)","Cálculo de la dinámica orbital","Python","visualización de datos"]},"real-estate":{title:"Análisis AI de datos inmobiliarios",description:"Desarrollo de un sistema que recopila información inmobiliaria de una región específica mediante web scraping y realiza análisis avanzados de datos utilizando LLM y Python. Se extraen variables como el precio de la propiedad, el precio unitario tsubo, la antigüedad del edificio y la distancia a la estación, y se generan automáticamente análisis de tendencias de precios, previsiones de mercado y simulaciones de rentabilidad de la inversión. También se han extraído características de descripciones no estructuradas de propiedades utilizando LLM para proporcionar un análisis exhaustivo del mercado combinado con datos cuantitativos. *Oferta ahora disponible como segunda versión (la versión COMPLETA se proporciona por separado)",techStack:["Web scraping (Scrapy, Playwright)","Python","Pandas","Análisis LLM","visualización de datos"]},"fortune-ai":{title:"Sistema de evaluación de la IA basado en cuatro pilares",subtitle:"Reproducir la sabiduría tradicional con tecnología.",paragraphs:["Four Pillars of Divination es la culminación de miles de años de adivinación oriental. Este sistema reproduce íntegramente en Python su lógica de adivinación tradicional, combinada con la interpretación y generación de consejos mediante LLM (Large Language Models). La IA reproduce fielmente el proceso de valoración realizado por un adivino experto.","Tras introducir la fecha, la hora y el lugar de nacimiento, el sistema recupera de la API de Astronomía las horas de salida y puesta del sol y la información de las coordenadas en ese momento. A partir de estos datos, el sistema calcula con precisión el signo del zodiaco, los diez dioses y el equilibrio de los cinco elementos. La lógica basada en la ciencia adivinatoria de los Cuatro Pilares del Destino se indexa en Python y se combina con datos estadísticos e información RAG (Retrieval Augmentation Generation) para mejorar la precisión del análisis de la fórmula de la vida.","Los datos calculados sobre el estilo de vida son explicados en lenguaje natural por LLM de forma fácil de entender. Se generan resultados de valoración personalizados, incluyendo el flujo de la fortuna, la compatibilidad de las relaciones interpersonales y la ocupación adecuada para usted. Puedes obtener respuestas con la misma profundidad que si hubieras consultado a un adivino profesional.","Actualmente está disponible como segunda versión. Puede probar el análisis kumishiki básico y el análisis de la fortuna. La versión completa, que incluye análisis más detallados y consejos multifacéticos, está disponible por separado."],techStack:["Python","API de astronomía (amanecer-atardecer, TimeZoneDB)","Lógica de los cuatro pilares","LLM","Cálculo de coordenadas y hora"]}
286,"google-workspace":{title:"Google Workspace AI integration",description:"Desarrollo de un sistema que vincula Google Workspace (Gmail, Drive, Calendar, Docs, Sheets) con LLM para leer, editar y procesar automáticamente datos empresariales. La IA ayuda con tareas diarias como resumir el contenido de los correos electrónicos, generar borradores para respuestas automáticas, buscar y analizar archivos de Drive, extraer horarios de Calendar y proponer ajustes. El funcionamiento del espacio de trabajo desde el Agente también se realiza a través de una conexión API segura con autenticación OAuth y un diseño de herramientas compatible con MCP. La segunda versión ya está disponible (la versión FULL se proporcionará por separado).",techStack:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"]},"world-news":{title:"Multilingüismo en World NEWS",description:"Desarrollo de un sistema que recopila artículos en tiempo real de fuentes de noticias de todo el mundo y realiza su traducción multilingüe, resumen y categorización mediante LLM. Traduce al japonés artículos originales en inglés, chino, francés, árabe y otros idiomas y los organiza por temas. El seguimiento eficaz de las noticias internacionales no se consigue con una simple traducción automática, sino con una traducción natural basada en la comprensión contextual mediante LLM y la generación de resúmenes que extraen los puntos principales del artículo. *Oferta ahora disponible como segunda versión (la versión COMPLETA se proporciona por separado).",techStack:["Noticias API","Colección RSS","LLM Traducción y resumen","tratamiento multilingüe","Auto-categorización","tratamiento programado por lotes"]},"security-monitoring":{title:"Supervisión de registros de seguridad AI Manager",description:"Desarrollo de un sistema de supervisión en tiempo real de los registros de seguridad de la empresa y de detección y análisis avanzados de amenazas mediante LLM. Un módulo Python recopila y analiza varias fuentes de registros, como cortafuegos, IDS/IPS, registros de autenticación y registros de aplicaciones, y las compara con patrones de ataques anteriores, información sobre vulnerabilidades y casos de incidentes acumulados en RAG. Cuando se detecta un patrón anormal, LLM explica el nivel de amenaza, el alcance del impacto y la respuesta recomendada en lenguaje natural, y alerta inmediatamente al responsable. Si se repite el mismo patrón, se emite automáticamente una alerta de alta prioridad para acelerar la respuesta al incidente.",techStack:["Módulo de supervisión de Python","Recopilación de registros (Fluentd, Logstash)","RAG","Base de datos de patrones de amenazas","Análisis LLM","Notificaciones de alerta (Slack, PagerDuty)"]}}},jL={learnMore:"Seguir leyendo",getStarted:"empezar a ...",contactUs:"Contacte con nosotros",backToHome:"Volver a la página de inicio"},CL={title:"Política de privacidad",subtitle:"Política de privacidad",lastUpdated:"Última actualización: 23 de enero de 2026",intro:'telet.ai (el "Servicio") considera que la protección de su información personal es una responsabilidad importante y ha establecido la siguiente política de privacidad.',sections:{collection:{title:"1. información que debe recogerse",description:"El Servicio puede recopilar la siguiente información cuando usted se pone en contacto con nosotros o utiliza el Servicio.",items:["Dirección de correo electrónico","Su nombre (opcional)","Detalles de la consulta","Otros datos facilitados voluntariamente por usted"]},purpose:{title:"2. finalidad del uso de la información",description:"La información personal recopilada sólo se utilizará para los siguientes fines",items:["Contestar y responder a las consultas","Contacto e información sobre nuestros servicios","Comunicación necesaria para el avance del proyecto","Análisis para la mejora del servicio (en un formato que no identifique a las personas)"]},thirdParty:{title:"3. suministro a terceros",description:"El Servicio no facilitará sus datos personales a terceros salvo en los siguientes casos",items:["Si el cliente da su consentimiento","Cuando exista una solicitud de divulgación basada en leyes y reglamentos","Cuando sea necesario para la protección de la vida, el cuerpo o los bienes de una persona"]},security:{title:"4. gestión de la información",description:"El Servicio gestionará adecuadamente la información personal recopilada y adoptará medidas de seguridad razonables para evitar el acceso no autorizado, la pérdida, la filtración y la falsificación."},email:{title:"5. gestión del correo electrónico",description:"El Servicio tratará los correos electrónicos de acuerdo con la siguiente política.",items:["Utilizaremos el contenido de su correo electrónico únicamente para responder a su consulta y prestarle nuestros servicios.","No venderemos, alquilaremos ni compartiremos su dirección de correo electrónico con terceros.","Es posible que le enviemos correos electrónicos informativos sobre nuestros servicios. Si desea darse de baja, utilice el enlace para darse de baja que aparece en el correo electrónico o póngase en contacto con nosotros a través de la información de contacto que figura a continuación.","El cifrado SSL/TLS se utiliza en las comunicaciones por correo electrónico para garantizar la seguridad de las comunicaciones.","Eliminaremos de forma segura su correo electrónico después de almacenarlo durante un periodo de tiempo adecuado."]},cookies:{title:"6. uso de cookies",description:"Las cookies pueden desactivarse en la configuración de su navegador."},external:{title:"7. utilización de servicios externos",description:"Este servicio puede utilizar los siguientes servicios externos. Consulte los enlaces correspondientes para conocer la política de privacidad de cada servicio.",items:["Google Analytics (access analysis)","Otros servicios en la nube necesarios para las operaciones empresariales"]},changes:{title:"8. cambios en la política de privacidad",description:"Esta política está sujeta a revisión sin previo aviso de acuerdo con las modificaciones de las leyes y reglamentos o los cambios en el contenido del servicio. La política revisada entrará en vigor cuando se publique en esta página."},contact:{title:"9. contacto",description:"Si tiene alguna pregunta sobre esta política, póngase en contacto con nosotros en",company:"telet.ai",contactLink:"Ir al formulario de consulta"}}},DL={title:"Condiciones de uso",subtitle:"Estas son las condiciones de uso de este sitio web y para reservar una consulta, realizar consultas y solicitar información a telet.ai.",lastUpdated:"Última actualización: 22 de enero de 2026",intro:'Estas Condiciones de uso (en lo sucesivo, las "Condiciones") Estas Condiciones de uso (en lo sucesivo, las "Condiciones") se aplican al sitio web operado por telet.ai (en lo sucesivo, "nosotros", "nos", "nuestro" o "nuestra"). (en lo sucesivo, "nosotros", "nos" o "nuestro"). (en lo sucesivo, el "Sitio") operado por telet.ai (en lo sucesivo, el "Nosotros"). El Sitio se ofrece principalmente como página de aterrizaje para citas de consulta, consultas y solicitudes de documentos, y no prevé la creación de cuentas ni funciones de facturación de pago en el Sitio.',sections:{scope:{title:"1. ámbito de aplicación",description:'Las presentes Condiciones Generales se aplican a todos los visitantes y usuarios del Sitio Web (en adelante, los "Usuarios"). Las Condiciones de Uso se aplicarán a todos los visitantes y usuarios del Sitio Web (en adelante, los "Usuarios"). En caso de que se celebre un acuerdo de confidencialidad, un acuerdo de subcontratación, un contrato individual, etc. por separado entre nosotros y un Usuario, dicho documento prevalecerá sobre las Condiciones.'},prohibited:{title:"2. artículos prohibidos",description:"Al utilizar el Sitio, los Usuarios no realizarán ninguno de los siguientes actos",items:["Actos que violen las leyes y reglamentos o el orden y la moral públicos","Cualquier acto que infrinja nuestros derechos de propiedad intelectual, privacidad u otros derechos o intereses, o los de terceros.","Actos que interfieran en el funcionamiento de este sitio o sistemas relacionados mediante acceso no autorizado, carga excesiva, sabotaje, etc.","Presentar información falsa o suplantar la identidad de un tercero en formularios de consulta, etc.","Scraping, ingeniería inversa o acceso automatizado excesivo sin nuestro permiso previo."]},disclaimer:{title:"3. descargo de responsabilidad",description:'proporcionamos este sitio "tal cual" y "según disponibilidad". En la máxima medida permitida por la ley, renunciamos a todas las garantías con respecto a este sitio.',items:["La información de este sitio está sujeta a cambios o supresiones sin previo aviso.","No garantizamos la exactitud, integridad o idoneidad para un fin determinado de la información contenida en este sitio.","No seremos responsables de ningún daño resultante del uso de este sitio o de la confianza depositada en la información contenida en él.","Las respuestas a las consultas y preguntas son sólo para información general y no constituyen asesoramiento jurídico, fiscal, médico o profesional de otro tipo."]},ip:{title:"4. derechos de propiedad intelectual",description:"Todos los derechos sobre los textos, imágenes, diseños, marcas, logotipos, etc. de este sitio nos pertenecen a nosotros o a los legítimos titulares de los derechos. No puede utilizarlos sin el permiso de los titulares de los derechos."},links:{title:"5. enlaces a sitios externos",description:"Este sitio web puede contener enlaces a sitios web de terceros. No somos responsables del contenido ni del funcionamiento de los sitios enlazados."},changes:{title:"6. modificación de las presentes condiciones generales",description:"Nos reservamos el derecho a modificar las presentes Condiciones Generales de vez en cuando según sea necesario. Las Condiciones de Uso modificadas entrarán en vigor cuando se publiquen en el Sitio."},governingLaw:{title:"7. ley aplicable y jurisdicción",description:"Las presentes Condiciones Generales se regirán e interpretarán de conformidad con las leyes de Japón. En caso de cualquier disputa relacionada con este Sitio, el Tribunal de Distrito de Tokio tendrá jurisdicción exclusiva como tribunal de primera instancia."},contact:{title:"8. contacto",description:"Si tiene alguna pregunta sobre estas condiciones, póngase en contacto con",company:"telet.ai",contactLink:"Ir al formulario de consulta"}}},zL={title:"moción ordinaria",subtitle:"La IA predice la",description1:"La información meteorológica es proporcionada en tiempo real por cada país. Su país se muestra en el centro del mapa. El clima de ayer y el de hoy son registros reales: las nubes de lluvia deberían haber estado en su cielo en esa fecha y hora.",description2:"Sin embargo, esta animación también anima los futuros movimientos del tiempo.",description3:"
286Vectoriza datos pasados y busca patrones a gran velocidad. También se pueden predecir patrones meteorológicos a partir del entorno. Del mismo modo, es posible predecir la cosecha, la producción y las ventas calculando elementos (i) del entorno y valores estadísticos avanzados a partir del rendimiento pasado y haciendo que la IA los analice.",refresh:"refrescar (por ejemplo, la memoria)",loading:"Cargando mapa del tiempo..."},TL={hero:{badges:["Empresa","LLM local","Agente de aduanas"],title:"Diseño y desarrollo de agentes de IA para empresas",description:"Diseño y creación de agentes de IA específicos adaptados a las necesidades de la empresa"},mission:{title:"Servicios de desarrollo de agentes de IA personalizados",description:"Desarrollamos de forma coherente agentes de IA personalizados que abordan los problemas empresariales exclusivos de su empresa, desde el diseño hasta la implementación y el funcionamiento. Nuestro diseño arquitectónico hace hincapié en la compatibilidad con los sistemas de misión crítica 
286y los entornos SaaS existentes, lo que permite una integración fluida con API, bases de datos y herramientas internas. Nuestros ingenieros están familiarizados con LangChain, AutoGen, CrewAI y otros marcos importantes, Nuestros ingenieros están familiarizados con LangChain, AutoGen, CrewAI y otros marcos importantes, y propondrán la mejor solución para la pila tecnológica y la estructura operativa de su empresa. No sólo desarrollamos chatbots puntuales, sino que también construimos sistemas multiagente en los que varios Agentes cooperan entre sí para realizar tareas, y Flujos de Trabajo Agenticos que funcionan en conjunción con herramientas externas. Apoyamos la maximización del valor empresarial aportado por los Agentes de IA a través de una asociación a largo plazo que incluye la mejora continua tras la implementación, el seguimiento de las actualizaciones del modelo y el mantenimiento de los sistemas de supervisión operativa.",imageAlt:"Servicios de desarrollo de agentes de IA personalizados"},summary:{title:"Tendencias en el desarrollo de agentes",paragraphs:['De 2025 a 202
2866, el desarrollo de agentes de IA está pasando de la fase de demostración a la de implantación corporativa a gran escala. El concepto de "IA agenética" ha arraigado, y los sistemas autónomos de ejecución empresarial que van más allá de meros chatbots han empezado a funcionar en diversos sectores.','Los "agentes usuarios de ordenadores" que controlan directamente navegadores y escritorios, como Operator de OpenAI, Computer Use de Anthropic y Project Mariner de Google, se han convertido en algo práctico. El Model Context Protocol (MCP) es un ecosistema en expansión que permite la integración plug-and-play con miles de herramientas.',"Las arquitecturas multiagente han alcanzado la madurez, con Agentes especializados que trabajan juntos para realizar tareas complejas como gestión de proyectos, atención al cliente y análisis de datos. La estandarización del protocolo A2A (agente a agente) también ha hecho avanzar la colaboración entre agentes de distintos proveedores.",'El modelo de gobernanza ha evolucionado de "Human-in-the-Loop" a "Human-on-the-Loop" para implantaciones corporativas, con un mecanismo de auditoría posterior a la decisión del agente y escalado automático basado en el nivel de riesgo como características estándar, lo que acelera la adopción en industrias reguladas como la financiera, la médica y la manufacturera. La adopción de este sistema se está acelerando en sectores regulados como el financiero, el médico y el manufacturero.']},features:{title:"Diseño y desarrollo",subtitle:"Diseño y desarrollo",items:[{title:"Diseño de agentes basado en los requisitos de la empresa",description:"Extraemos casos de uso del análisis del flujo de negocio, descomponemos tareas y aclaramos las responsabilidades de los Agentes. Determinamos si el procesamiento puede ser completado por un único Agente o requiere la coordinación de varios Agentes, y seleccionamos los patrones de inferencia óptimos, como ReAct, Plan-and-Execute y Reflexion."},{title:"Integración de GAR / herramientas / flujos de trabajo",description:"Canalizaciones RAG de gran precisión que combinan la generación de incrustaciones, la estrategia de trozos y la búsqueda híbrida, la conexión estandarizada a API y bases de datos externas con definiciones de herramientas compatibles con MCP y la orquestación de flujos de trabajo de varios pasos mediante LangGraph y CrewAI. Orqueste flujos de trabajo de varios pasos con LangGraph y CrewAI."},{title:"Diseño de seguridad y autorización",description:"Se implementa el control de acceso a las funciones del Agente mediante RBAC/ABAC, contramedidas de Inyección de Peticiones y detección y enmascaramiento de PII. Se conservan registros de auditoría de todas las entradas y salidas, y se admite el funcionamiento en entornos conformes con SOC2 e ISO27001."},{title:"Ejecución, incluidos el funcionamiento y la supervisión",description:"Implementar la visualización de trazas con LangSmith, Langfuse, etc., y la supervisión en tiempo real de la latencia, el consumo de tokens y la tasa de errores. Construir un ciclo de mejora continua que incluya alertas de detección de anomalías, infraestructura de pruebas A/B y pruebas de regresión al actualizar los modelos."}]},techStack:{title:"Pilas tecnológicas",subtitle:"Plataforma y tecnología",categories:{agentFramework:{title:"Marco de agentes",items:["AutoGen 0.4 / AG2","CrewAI","LangGraph","SDK de agentes de OpenAI","MCP antrópico","Google ADK (Agent Development Kit)","Núcleo semántico","Plataforma de agentes propia"]},apiLayer:{title:"Capa API",items:["FastAPI / Litestar","gRPC / Conectar","Federación GraphQL","Eventos enviados por el servidor (SSE)","WebSocket / NATS","OAuth 2.1 / OIDC","Pasarela API (Kong / Envoy)","Limitación de velocidad adaptativa"]},vectorDb:{title:"Vector DB / RAG",items:["Piña","Weaviate","Qdrant","Milvus","ChromaDB","pgvector","FAISS","Turbopuffer"]}
286,infrastructure:{title:"Infraestructura",items:["Kubernetes (EKS / GKE / AKS)","Docker / Podman","Clúster de GPU local","Nube privada","Sin servidor (Lambda / Cloud Run)","OpenTelemetry / Langfuse","Terraform / Pulumi","ArgoCD / Flux"]}},updateNote:{title:"Principales puntos de actualización para 2026",description:"En Agent Framework, están surgiendo SDK/protocolos oficiales de los principales proveedores, como OpenAI Agents SDK, Anthropic MCP y Google ADK; en API Layer, gRPC y SSE se han convertido en el estándar para la comunicación agente-agente, y la transición a OAuth 2.1 está en marcha. En Vector DB, Qdrant y Turbopuffer están llamando la atención por su búsqueda de alta velocidad."}},cta:{title:"Contacte con nosotros",description:`Podemos consultarle desde la disposición de los requisitos.
287También se pueden considerar configuraciones PoC y LLM locales.`,primaryButton:"Contacte con nosotros",secondaryButton:"Consulta técnica"}},EL={title:"Preguntas frecuentes",subtitle:"PREGUNTAS FRECUENTES",items:[{question:"¿Puedo utilizar mis manuales y FAQ actuales sin modificarlos?",answer:"Sí, puedes utilizarlo; es compatible con la mayoría de formatos, incluidos PDF, Word, Excel, HTML y archivos de texto. Sólo tiene que cargar sus documentos internos tal cual, y AI aprenderá el contenido y lo utilizará para responder a sus preguntas. No es necesaria ninguna conversión de formato ni ningún tratamiento especial."},{question:"¿Es seguro utilizarlo con datos que contengan información sensible?",answer:"Sí, puede utilizar nuestro servicio de forma segura. En las instalaciones (servidores internos) o en un entorno de nube privada, los datos nunca se transmiten fuera de la empresa. Podemos proponerle configuraciones que respondan a sus necesidades de seguridad."},{question:"¿Cuánto tarda en aplicarse?",answer:"Un bot de FAQ estándar puede implementarse en tan sólo 2-4 semanas. Si se requiere la integración con sistemas existentes o una personalización avanzada, estimamos 1-3 meses. También podemos empezar con una PoC (prueba de concepto) a pequeña escala."},{question:"¿Utiliza API externas como ChatGPT o Claude?",answer:"La elección está disponible bajo petición. Admitimos tanto configuraciones que utilizan API externas (OpenAI, Anthropic, Google, etc.) como configuraciones que utilizan LLM de código abierto (Llama, Mistral, Qwen, etc.) que se ejecutan de forma completamente local. Podemos proponerle la mejor configuración para sus requisitos de coste, seguridad y rendimiento."},{question:"¿Hasta qué punto es precisa la respuesta de la IA?",answer:"Dependiendo de la aplicación y de la calidad de los datos, un sistema GAR correctamente diseñado puede devolver respuestas precisas a preguntas para las que existen documentos relevantes con una precisión del 90% o superior. También se incorporan de serie mecanismos para controlar la halcinación (generación de información errónea)."},{question:"¿Admite otros idiomas además del japonés?",answer:"Sí, ofrecemos asistencia multilingüe. Admitimos los principales idiomas, como japonés, inglés, chino y coreano. En lugar de tener modelos distintos para cada idioma, un único sistema puede gestionar consultas multilingües."},{question:"¿Puede integrarse con los sistemas existentes (CRM, herramientas de chat, etc.)?",answer:"Sí, se puede integrar; admite la integración de API con las principales herramientas empresariales, como Salesforce, HubSpot, Slack, Microsoft Teams y LINE WORKS. Puedes incorporar un asistente de IA sin cambiar tu flujo de trabajo actual."},{question:"¿Cuál es su estructura de tarifas?",answer:"Depende del tamaño y los requisitos del proyecto. Aunque las tarifas de construcción inicial y explotación mensual suelen ser combinadas, también aceptamos solicitudes de desarrollo puntual o servicios de consultoría únicamente. Por favor, comuníquenos primero sus necesidades. Le facilitaremos un presupuesto aproximado."}]},RL={title:"Planes de tarifas",subtitle:"Planes de precios",description:"Planes flexibles que se adaptan al tamaño de su empresa",plans:[{name:"arranque",price:"29.800 yenes",period:"Mensual/usuario",description:"El mejor plan para equipos pequeños. Funciones básicas de IA a un precio asequible.",features:["Hasta 100 llamadas al mes","Transcripción básica","Detección de palabras clave","Asistencia por correo electrónico","7 días de conservación de datos"],cta:"Empiece gratis",popular:!1},{name:"profesional",price:"¥79,800",period:"Mensual/usuario",description:"Ideal para equipos en crecimiento. Funciones analíticas avanzadas.",features:["Hasta 500 llamadas al mes","Transcripción AI de alta precisión","Análisis emocional","Enlace CRM","Asistencia prioritaria","30 días de retención de datos","Informes personalizados"],cta:"14 días de prueba gratuita",popular:!0},{name:"empresa",price:"Contacte con nosotros",period:"personalizado",description:"Planes completos para grandes organizaciones",features:["Llamadas ilimitadas","Modelo de IA dedicado","asistencia in situ","Asistencia dedicada","Colaboración personalizada","Garantía de SLA","Auditorías de seguridad","Conservación ilimitada de datos"],cta:"Consultar con Ventas",popular:!1}],faq:{title:"Preguntas frecuentes",items:[{question:"¿Hay una prueba gratuita?",answer:"Sí, hay disponible una prueba gratuita de 14 días para los planes Profesionales. No se necesita tarjeta de crédito para empezar."},{question:"¿Puedo cambiar de plan en cualquier momento?",answer:"Sí, puede cambiar de plan en cualquier momento. Los cambios se aplicarán a partir del siguiente ciclo de facturación."},{question:"¿Hay algún plazo contractual vinculado?",answer:"Los planes mensuales no tienen restricciones de duración de contrato. Si eliges un contrato anual, recibirás un 20% de descuento."}]}},NL={hero:{badge:"Tecnología basada en IA",title:"Transcripción AI",description:"Los modelos avanzados de aprendizaje automático proporcionan una precisión del 99,5%. La IA entrenada en millones de datos de interacción con clientes convierte la voz en texto.",features:["99,5% de precisión","procesamiento en tiempo real","Compatibilidad con más de 40 idiomas"]},features:{title:"Funciones principales",subtitle:"Motor de transcripción avanzado que va más allá del simple reconocimiento de voz",items:[{title:"transcripción en tiempo real",description:"Obtenga transcripciones en tiempo real durante las conversaciones. Obtenga una visión instantánea y no pierda nunca una oportunidad de coaching en tiempo real."},{title:"soporte multilingüe",description:"Admite más de 40 idiomas y cubre equipos globales con detección automática de idiomas."},{title:"comprensión contextual",description:"Los modelos de IA entrenados en terminología específica del sector reconocen con precisión términos técnicos y empresariales."},{title:"separación de altavoces",description:"Identifica y separa automáticamente a los distintos interlocutores de una conversación y les asigna atributos claros."},{title:"léxico personalizado",description:"Aprender los nombres de productos, servicios y términos técnicos exclusivos de su empresa proporciona una precisión aún mayor."}
287,{title:"Garantía de calidad",description:"Los controles de calidad automáticos y la puntuación de fiabilidad garantizan la máxima calidad de transcripción."}]},useCases:{title:"Escenas de uso",subtitle:"Sectores y equipos que requieren una transcripción precisa de las llamadas",items:[{title:"Equipo de ventas",description:"Reflexionar sobre las llamadas de ventas e identificar patrones de éxito. Mejorar la eficacia de las conversaciones y preparar a los miembros del equipo con ejemplos concretos."},{title:"Atención al cliente",description:"Registrar con precisión los problemas de los clientes. Mantener un historial de asistencia completo para garantizar una calidad de servicio constante."},{title:"control de calidad",description:"Supervisar el cumplimiento y garantizar la observancia de los guiones. Mantener registros detallados para auditorías y formación."}]},stats:{accuracy:{value:"99.5%",label:"precisión de la transcripción"},languages:{value:"40+",label:"Idiomas admitidos"},latency:{value:"<2 seg.",label:"retraso en el procesamiento"},availability:{value:"24/7",label:"procesamiento continuo"}}},GL={hero:{badge:"Detección inteligente",title:"Seguimiento de palabras clave",description:"Supervise automáticamente las menciones de la competencia, las refutaciones y los temas importantes. No pierda nunca señales importantes de las conversaciones con los clientes.",badges:["
287Seguimiento de la competencia","Detección de respuestas","Análisis de temas","palabra clave personalizada"]},features:{title:"Seguimiento de la información crítica",subtitle:"Detección y análisis automáticos de palabras clave de todas las conversaciones",items:[{title:"Vigilancia de la competencia",description:"Siga las menciones de la competencia para saber cómo comparan los clientes potenciales su solución con las alternativas del mercado."},{title:"Detección de respuestas",description:"Identifique automáticamente las objeciones y preocupaciones más comunes y desarrolle respuestas y formación eficaces."},{title:"palabra clave personalizada",description:"Defina y rastree palabras clave y frases personalizadas específicas de su empresa, producto o sector."},{title:"Análisis de tendencias",description:"Descubra las tendencias emergentes a partir de las conversaciones con los clientes y adapte su estrategia en función de las señales reales del mercado."},{title:"extracción de contexto",description:"Obtenga el contexto antes y después de la palabra clave, no sólo su mención. Entender no solo lo que se dijo, sino por qué y cómo se dijo."},{title:"Búsqueda inteligente",description:"Busca instantáneamente en todas las conversaciones para encontrar exactamente dónde y cuándo se habló de un tema concreto."}]},applications:{title:"Escenas de uso",items:{competitive:{title:"Inteligencia competitiva",description:"Profundo conocimiento del panorama competitivo:",points:["Siga a sus competidores más mencionados","Entender cómo comparan los clientes potenciales las características y los precios","Identifique sus ventajas y debilidades competitivas","Creación de material anticompetitivo eficaz"]},objections:{title:"respuesta a una refutación",description:"Convierta una refutación en una oportunidad:",points:["Identificar las preocupaciones más comunes de los clientes","Analizar las respuestas de refutación de los mejores","Libro de jugadas con respuesta probada.","Forme a su equipo con turnos eficaces"]},product:{title:"Información sobre el producto",description:"Promover el desarrollo de productos a través de las opiniones de los clientes:",points:["Identificar las funciones más solicitadas","Comprender los retos de la funcionalidad actual","Descubra casos de uso inesperados","Priorizar la hoja de ruta en función de las necesidades de los clientes"]},compliance:{title:"Cumplimiento y calidad",description:"Garantizar el cumplimiento de la normativa y la calidad:",points:["Supervisar las divulgaciones obligatorias y el lenguaje jurídico","Marcar las conversaciones que puedan infringir la política","Seguimiento del cumplimiento de los guiones y de las mejores prácticas","Generar informes de cumplimiento para auditoría"]}}},advancedFeatures:{title:"Funciones avanzadas",items:[{title:"recuperación ambigua",description:"Detecta automáticamente variaciones de palabras clave, sinónimos y términos relacionados sin necesidad de configuración manual."},{title:"análisis histórico",description:"Analice las tendencias de las palabras clave a lo largo del tiempo para identificar patrones estacionales y temas emergentes."},{title:"Alertas en tiempo real",description:"Reciba notificaciones inmediatas cuando se mencionen palabras clave importantes en conversaciones en directo."}]}},OL={hero:{badges:["Empresa","LLM local","Funcionamiento interno del servidor"],title:"Construcción LLM in situ",description:"Opere LLM en su propio entorno, manteniendo los datos fuera de la empresa"},mission:{title:"Visión general del servicio de construcción LLM in situ",paragraphs:["Para las empresas que no pueden divulgar datos confidenciales fuera de la empresa, construimos un entorno LLM que puede completarse en sus propios servidores o en una nube privada. Esta solución es ideal para organizaciones que requieren una gestión estricta de la información, como instituciones financieras, instituciones médicas, agencias gubernamentales e institutos de investigación, porque no utiliza ninguna API pública y todo el procesamiento se completa dentro de la infraestructura gestionada por el cliente.","Proporcionamos un apoyo integral desde la selección del modelo, la construcción del servidor, la o
287ptimización del motor de inferencia y la supervisión del funcionamiento, utilizando modelos de peso abierto disponibles en el mercado como Llama 3.3, Qwen 2.5, Mistral y DeepSeek con motores de inferencia de alto rendimiento como vLLM, Ollama y SGLang. Estos modelos se ejecutan en motores de inferencia de alto rendimiento como vLLM, Ollama y SGLang para proporcionar un entorno de inferencia de baja latencia y alto rendimiento.","Damos soporte a una amplia gama de casos de uso, como la integración con sistemas existentes, chatbots, RAG internos, resumen de documentos y generación de código. Podemos diseñar para satisfacer los requisitos de la empresa, incluida la especialización empresarial mediante el ajuste fino del modelo, la optimización de la GPU NVIDIA / Apple Silicon, el diseño multiinquilino, la construcción de pasarelas API y mucho más."]},summary:{title:"Tendencias en LLM in situ",paragraphs:["En 2025-2026, la utilidad de los LLM in situ está mejorando rápidamente. El rendimiento de los modelos ponderados abiertos ha flanqueado al de los modelos cerrados, y el número de modelos ofrecidos con licencias disponibles comercialmente ha reducido significativamente el obstáculo para las operaciones internas.","Los modelos con parámetros de 8B a 70B han alcanzado un nivel práctico para muchas tareas empresariales, la cuantización GGUF permite una inferencia de alta velocidad incluso en GPU de consumo.","Para los motores de inferencia, Continuous Batching y PagedAttention de vLLM aumentan drásticamente el rendimiento, y RadixAttention de SGLang acelera las complejas interacciones multivuelta. Ollama se ha convert
287ido en el estándar de facto para los entornos de desarrollo locales, y llama.cpp está optimizado con Apple Silicon para una inferencia rápida en los Mac de la serie M.","En la adopción por parte de las empresas, además de la soberanía de los datos y el cumplimiento de la normativa, la optimización de los costes a largo plazo (alejándose de la facturación de API de pago por uso) se está convirtiendo cada vez más en una motivación para la adopción. Las configuraciones híbridas (local para procesamiento sensible y API en la nube para procesamiento de propósito general) se han convertido en una opción común."],icons:[{label:`Privado
288Nube`},{label:`Datos
289Soberanía`},{label:`Coste
290Optimización`},{label:`Empresa
291Seguridad`}]},features:{title:"Características de diseño y desarrollo",subtitle:"Diseño y desarrollo",items:[{title:"Diseño de infraestructuras y optimización de GPU",description:"Diseñe la configuración de hardware óptima para su carga de trabajo y presupuesto, incluidos NVIDIA A100/H100, RTX 4090/5090 y Apple Silicon (M2 Ultra/M3 Max/M4 Max), y cree un entorno de inferencia que aproveche al máximo el rendimiento de la GPU mediante la optimización CUDA, MPS y Metal. Optimización CUDA, MPS y Metal para maximizar el rendimiento de la GPU."},{title:"Selección y optimización de modelos",description:"Selecciona el modelo óptimo entre Llama, Qwen, Mistral, DeepSeek, etc. teniendo en cuenta las características de la tarea, los requisitos de lenguaje y las limitaciones de recursos. La cuantificación (GGUF/AWQ/GPTQ), la optimización de la caché KV y el ajuste del procesamiento por lotes se utilizan para lograr precisión y rendimiento."},{title:"Construcción del motor de inferencia",description:"Seleccione y construya motores de inferencia como vLLM, SGLang, Ollama, TGI, etc. según su aplicación, y aplique las últimas tecnologías como Continuous Batching, Speculative Decoding y Prefix Caching para proporcionar API de inferencia de baja latencia y alto rendimiento. Proporcionamos API de inferencia de baja latencia y alto rendimiento."},{title:"Funcionamiento, supervisión y seguridad",description:"Implemente la supervisión de métricas inferenciales con Prometheus/Grafana, el control de acceso con la pasarela API, los registros de auditoría, el escalado automático y la recuperación ante fallos. Cree un entorno de operaciones de producción que cumpla los requisitos de seguridad de la empresa."}]},techStack:{title:"Pila tecnológica: LLM local",subtitle:"Plataforma y tecnología",categories:{openWeightModels:{title:"Modelos de peso abierto",items:["Llama 3.3 70B / 8B","Qwen 2.5 72B / 32B / 7B","Mistral Large / Nemo","DeepSeek V3 / R1","Gemma 2 27B / 9B","Phi-4","Mando R (Cohere)"]},japaneseModels:{title:"Modelo específico japonés",items:["ELYZA-japonés-Llama-2","Golondrina 70B / 13B","Llama japonesa-3","Qwen-2.5-Japanese","Karakuri-LM"]},inferenceEngine:{title:"Motor de inferencia",items:["vLLM (dosificación continua)","SGLang (RadixAttention)","Ollama (desarrollo local)","llama.cpp (Apple Silicon)","TGI (Cara de abrazo)","TensorRT-LLM (NVIDIA)","ExLlamaV2 (especialización en cuantificación)"]},quantization:{title:"Cuantización",items:["GGUF (llama.cpp estándar)","AWQ (alta precisión de 4 bits)","GPTQ (optimización de GPU)","bitsybytes(8bit/4bit)","EETQ (Cuantización de Eficiencia Eficaz)"]},hardware:{title:"Hardware",items:["NVIDIA H100 / A100","NVIDIA L40S / A10G","RTX 4090 / 5090","Apple Silicon M2 Ultra","Apple Silicon M3/M4 Max","AMD MI300X"]}
291,infrastructure:{title:"Infraestructura",items:["Docker / Kubernetes","Servidor NVIDIA Triton","Pasarela API (Kong / Envoy)","Prometheus / Grafana","Nube privada (VMware / OpenStack)","Soporte ambiental con cámara de aire"]}},updateNote:{title:"Principales puntos de actualización para 2026",description:"En los modelos de peso abierto, Llama 3.3 alcanza un rendimiento de propósito general de clase GPT-4 y mejora notablemente el rendimiento en japonés; la serie Qwen 2.5 amplía la oferta con una variedad de tamaños y un rendimiento bien equilibrado; DeepSeek V3/R1 llama la atención por su rendimiento en costes de inferencia; y los motores de inferencia vLLM 2.0 Chunked Prefill y SGLang's RadixAttention aceleran el diálogo multivuelta. En el motor de inferencia, Chunked Prefill de vLLM 2.0 y RadixAttention de SGLang aceleran las interacciones multivuelta; la optimización de Apple Silicon de llama.cpp hace que la inferencia de modelos 70B sea práctica en M4 Max; y la tecnología Quantization ofrece precisión de 4 bits y alto rendimiento. Las técnicas de cuantificación consiguieron tanto precisión de 4 bits como velocidad de inferencia, y GGUF se convirtió en el formato estándar de facto."}},cta:{title:"Contacte con nosotros",description:`Podemos consultarle desde la disposición de los requisitos.
292También se pueden considerar configuraciones PoC y LLM locales.`,primaryButton:"Contacte con nosotros",secondaryButton:"Consulta técnica"}},BL={hero:{badges:["Empresa","RAG","generación de extensiones de búsqueda"],title:"Vector / RAG Desarrollo",description:"Crear un sistema RAG para vincular los conocimientos internos con el LLM"},mission:{title:"Visión general de los servicios de desarrollo Vector / RAG",paragraphs:["Construiremos un sistema RAG (generación de extensiones de búsqueda) que permita a los empleados realizar búsquedas y preguntas en lenguaje natural vinculando los activos de conocimiento acumulados en la empresa con LLM. Integramos diversas fuentes de datos como manuales, actas, documentos técnicos, preguntas frecuentes, historial de Slack, Confluence, SharePoint, etc. para crear un entorno en el que el conocimiento organizativo pueda utilizarse de forma inmediata.","Maximizamos la precisión de la búsqueda y la calidad de la respuesta aplicando las últimas tecnologías, como la búsqueda híbrida (búsqueda vectorial + búsqueda por palabras clave), el reordenamiento, el chunking jerárquico, el filtrado de metadatos, etc., además de la búsqueda simple de documentos. Indicamos claramente la fuente de la respuesta para suprimir la halcinación y garantizar la fiabilidad.","Admitimos diversos entornos, como AWS, GCP, Azure y on-premise, y nos integramos con la infraestructura de autenticación y la gestión de autoridades existentes. Proporcionamos un soporte coherente para mantener la frescura de los datos (actualizaciones diferenciales y reindexación automática), analizar los registros de uso y mejorar continuamente la precisión."]},summary:{title:"Tendencias tecnológicas RAG",paragraphs:['Entre 2025 y 2026, la tecnología GAR está pasando a la fase de "implementación básica a calidad de producción". Además de la búsqueda vectorial simple, la búsqueda híbrida, que combina múltiples métodos de búsqueda, el reordenamiento, que reordena los resultados de la búsqueda, y la descomposición de consultas, que descompone y procesa preguntas complejas, se han convertido en configuraciones estándar.',"Las estrategias de fragmentación también han evolucionado: la fragmentación jerárquica, que tiene en cuenta la estructura del documento, la superposición de fragmentos y la fragmentación multimodal, que procesa tablas y figuras por separado, contribuyen a mejorar la precisión. También se ha reconocido ampliamente la eficacia de la recuperación contextual (que añade información contextual a los trozos).","Para la selección de BD vectoriales, además de servicios gestionados como Pinecone, Weaviate, Qdrant y Milvus, PostgreSQL pgvector y FAISS local ofrecen una amplia gama de opciones para satisfacer sus necesidades. También hay disponibles modelos de incrustación, como text-Embedding-3-large, Cohere Embed v3 y modelos multilingües.",'En las implantaciones empresariales, la vinculación de la gestión de autoridades (ACL), el enmascaramiento de PII, los registros de auditoría y el diseño multiusuario son requisitos esenciales, y es necesario pasar de una "PoC operativa" a un "sistema de producción listo para funcionar".'],icons:[{label:`Híbrido
293Buscar en`},{label:`Multimodal
294RAG`},{label:`Agentic
295RAG`},{label:`Empresa
296Seguridad`}]},features:{title:"Características de diseño y desarrollo",subtitle:"Diseño y desarrollo",items:[{title:"Recogida y preprocesamiento de datos",description:"Extracción y limpieza de datos de PDF, Word, Excel, HTML, Markdown, Slack, Confluence, SharePoint, etc. Soporte multimodal que incluye OCR, análisis de estructura de tablas y generación de pies de imagen. Mantenga la frescura con actualizaciones diferenciales y ejecución programada."},{title:"Diseño de sistemas de búsqueda de alta precisión",description:"Construye búsquedas de alta precisión combinando Búsqueda Vectorial + Búsqueda Híbrida BM25, Reranking por Cohere Rerank / Cross-Encoder, y Expansión y Descomposición de Consultas. También se implementan el filtrado de metadatos y el control de acceso basado en permisos."}
296,{title:"Generación de respuestas y control de calidad",description:"Mejora de la calidad de las respuestas gracias a la optimización del contexto, las preguntas de respuesta rápida y la inferencia de la cadena de pensamiento. La clarificación de la fuente, la visualización de la puntuación de confianza y la detección de ambigüedades garantizan la fiabilidad para uso empresarial."},{title:"Ciclo de funcionamiento y mejora",description:"Proporcionamos asistencia operativa, que incluye análisis de registros de uso, control de la tasa de aciertos en las búsquedas y de la satisfacción de los usuarios, mejora continua a través de circuitos de retroalimentación, infraestructura de pruebas A/B, actualizaciones del modelo de incrustación y revisiones de la estrategia de fragmentación."}]},techStack:{title:"Pila tecnológica: Vector / RAG",subtitle:"Plataforma y tecnología",categories:{embeddingModels:{title:"Modelos de incrustación",items:["OpenAI text-embedding-3-large","Cohere Embed v3","Viaje AI","Incrustaciones Jina v3","BGE-M3 (multilingüe)","multilingüe-e5-grande","Modelos específicos para Japón"]},vectorDatabases:{title:"Bases de datos vectoriales",items:["Pinecone (Gestionado)","Weaviate (Búsqueda híbrida)","Qdrant (alto rendimiento)","Milvus (a gran escala)","Chroma (ligero)","PostgreSQL pgvector","FAISS (local)"]},chunking:{title:"Agrupación y procesamiento",items:["fragmentación jerárquica","Agrupación semántica","Superposición de trozos","Ventana de frases","Recuperación contextual","Tratamiento de tablas y gráficos","Apoyo multimodal"]},search:{title:"Búsqueda y recuperación",items:["Búsqueda híbrida (Vector + BM25)","Cohere Rerank","Recodificación cruzada","Ampliación y descomposición de consultas","HyDE (Generación hipotética de documentos)","Autoconsulta","Recuperación de consultas múltiples"]}},updateNote:{title:"Principales puntos de actualización para 2026",description:"En el modelo Embedding, text-Embedding-3-large y Cohere Embed v3 se convirtieron en la norma de la empresa, y el rendimiento en japonés mejoró notablemente; la recuperación contextual demostró su eficacia, y añadir contexto a los trozos se convirtió en el método estándar. La Búsqueda Híbrida + Reordenación se ha convert
296ido en una configuración obligatoria para la búsqueda, reduciendo el número de configuraciones de búsqueda vectorial simple, y se está poniendo en práctica la RAG Agentic (los agentes seleccionan dinámicamente las estrategias de búsqueda). Desde el punto de vista operativo, se está haciendo hincapié en el establecimiento de ciclos de medición y mejora de la calidad utilizando marcos de evaluación RAG (RAGAS, LangSmith)."}},cta:{title:"Contacte con nosotros",description:`Podemos consultarle desde la disposición de los requisitos.
297También se pueden considerar configuraciones PoC y LLM locales.`,primaryButton:"Contacte con nosotros",secondaryButton:"Consulta técnica"}},KL={hero:{badges:["Pila completa","Integración LLM","Diseño API"],title:"Desarrollo de aplicaciones de IA",description:"Diseñar y crear aplicaciones prácticas que aprovechen el LLM"},mission:{title:"Descripción general del servicio de desarrollo de aplicaciones de IA",paragraphs:["Proporcionamos diseño y desarrollo de aplicaciones de IA que crean valor empresarial analizando datos adquiridos de API externas con LLM, vinculando API con diversas fuentes de datos como CRM, ERP, SaaS, sensores IoT y redes sociales, y alimentando los datos adquiridos a LLM en tiempo real. Permitimos el análisis avanzado de datos que no se puede lograr con las herramientas de BI convencionales, como la generación de informes analíticos utilizando el lenguaje natural, la detección de anomalías, la predicción de tendencias y la clasificación automática.","No sólo la simple integración de API, sino también la integración de múltiples fuentes de datos, la limpieza de datos y la conversión a un formato fácil de interpretar para LLM mediante un procesamiento estructurado. La ingeniería rápida maximiza la precisión del análisis y genera resultados especializados para los requisitos empresariales. Construimos aplicaciones prácticas que combinan datos e IA, como datos de ventas para predecir negociaciones comerciales, registros de atención al cliente para realizar análisis de VoC y datos de sensores para proporcionar recomendaciones de mantenimiento de equipos.","Damos soporte a una variedad de interfaces como aplicaciones web, aplicaciones móviles, integración Slack/Teams y procesamiento periódico por lotes. Proporcionamos un soporte coherente desde la definición de requisitos hasta el diseño de la API, la implementación de la integración LLM y el funcionamiento en producción."]},summary:{title:"Tendencias en el desarrollo de aplicaciones de IA",paragraphs:['De 2025 a 202
2976, el desarrollo de aplicaciones de IA está entrando en una fase práctica basada en "integración API x análisis LLM". El análisis de datos no estructurados y la generación de conocimientos en lenguaje natural, que no podían gestionar las herramientas de BI y los cuadros de mando tradicionales, están empezando a incorporarse a los sistemas empresariales.',"Cabe destacar la maduración de la funcionalidad de salida estructurada de LLM, que permite un control estricto de la salida conforme al esquema JSON, lo que hace realidad una canalización automatizada de extremo a extremo, en la que los datos adquiridos a través de las API son analizados por LLM y los resultados se introducen directamente en los sistemas posteriores. La ejecución en varias fases de la llamada a funciones permite gestionar en un único flujo de trabajo la recopilación, integración y análisis de datos a través de varias API.","En la infraestructura de procesamiento de datos, Polars ha surgido como un estándar para el procesamiento de alta velocidad y, en combinación con el procesamiento en flujo, facilita el análisis en tiempo real.","En las implantaciones corporativas, las necesidades han pasado del desarrollo PoC puntual al diseño escalable para el funcionamiento en producción, lo que requiere un diseño de arquitectura integral que incluya la optimización de costes, la gestión de errores y el soporte de registros de auditoría."],icons:[{label:`Agentic
298IA`},{label:`MCP
299Protocolo`},{label:`Multi
300Agente`},{label:`Humano-en
301-the-Loop`}]},features:{title:"Características de diseño y desarrollo",subtitle:"Diseño y desarrollo",items:[{title:"Integración de API y diseño de recopilación de datos",description:"Construimos una infraestructura de recopilación de datos compatible con varios protocolos como REST API, GraphQL, WebSocket y Webhook. Diseñamos un canal de adquisición de datos estable mediante la implementación de procesos de autenticación (OAuth, clave API, JWT), limitación de velocidad y mecanismos de reintento. También soportamos la integración de datos, la programación y la adquisición diferencial desde múltiples API."},{title:"Preprocesamiento y estructuración de datos",description:"Convierte los datos sin procesar en un formato que pueda ser analizado eficazmente por LLM, incluido el análisis sintáctico de JSON, la limpieza de datos, la normalización y el procesamiento de valores omitidos, y realiza una segmentación y resumen óptimos de los datos teniendo en cuenta las restricciones de la ventana contextual. La asignación de metadatos garantiza la trazabilidad de los resultados del análisis."},{title:"Análisis LLM y diseño rápido",description:"Maximice la precisión de los análisis de datos diseñando plantillas rápidas específicas para sus requisitos empresariales. Construimos pipelines de análisis para clasificación, resumen, análisis de sentimiento, detección de anomalías, generación de predicciones, etc. Utilizamos Function Calling y Structured Output para generar resultados en un formato que pueda integrarse fácilmente con sistemas posteriores."},{title:"Aplicación y funcionamiento",description:"Proporcionamos los resultados de los análisis a través de diversas interfaces, como FastAPI, aplicaciones web con Next.js, etc., Slack/Teams Bot y ejecución programada por lotes. Los cuadros de mando, las alertas de notificación y la generación automática de informes se implementan y entregan de forma que los usuarios empresariales puedan utilizarlos inmediatamente. También proporcionamos supervisión operativa, optimización de costes y mejora continua."}]},techStack:{title:"Pila tecnológica: Desarrollo de aplicaciones de IA",subtitle:"Plataforma y tecnología",categories:{apiIntegration:{title:"Integración API",items:["REST / GraphQL / WebSocket","OAuth 2.1 / API key / JWT","Webhook / Sondeo","Apache Airflow / Prefect","Apio / Temporal","requests / httpx / aiohttp","Limitación de velocidad / Reintento","Validación de datos (Pydantic)"]},dataProcessing:{title:"Tratamiento de datos",items:["Pandas / Polares","Analizador JSON / JSONL","Proceso de limpieza de datos","Apache Spark (procesamiento a gran escala)","dbt (conversión de datos)","Grandes esperanzas","Lago Delta / Iceberg","Streaming (Kafka / Flink)"]}
301,llmCloud:{title:"LLM en la nube",items:["OpenAI GPT-4o / GPT-4.1","Claude 3.5 / Claude 4","Géminis 2.0 / Géminis 2.5","Comando R+ (Cohere)","Mistral Large"]},llmLocal:{title:"LLM local",items:["Llama 3.3 / Llama 4","Mistral / Mixtral","Qwen 2.5 / Qwen 3","DeepSeek V3 / R1","Gemma 2 / Gemma 3","Phi-4","ELYZA / Golondrina (especializada en japonés)","Mando R (Cohere)"]},inference:{title:"Inferencia / Marco",items:["vLLM / SGLang","Ollama / llama.cpp","Proxy LiteLLM","Llamada a función","Salida estructurada","Motor de plantillas Prompt","LangChain / LlamaIndex","Canal de análisis propio"]},application:{title:"Capa de aplicación",items:["FastAPI / Litestar","Next.js / React","Slack SDK / Teams SDK","Streamlit / Gradio","Trabajos programados (Cron / Cloud Scheduler)","PostgreSQL / MongoDB","Redis (Caché / Cola)","Docker / Kubernetes"]}},updateNote:{title:"Principales puntos de actualización para 2026",description:"En el área de análisis LLM, la funcionalidad de salida estructurada de GPT-4.1 y Claude 4 ha madurado para estandarizar un estricto control de salida conforme con JSON Schema, y la ejecución en varias etapas de Function Calling permite la recopilación y el análisis de datos complejos a través de varias API en una única canalización. La ejecución en varias etapas de Function Calling permite la recopilación y el análisis de datos complejos a través de múltiples API en una única canalización. En el procesamiento de datos, Polars se ha convert
301ido en una alternativa consolidada a Pandas para el procesamiento de alta velocidad y, en combinación con el procesamiento de flujos, facilita la construcción de una infraestructura de análisis en tiempo real. En la capa de aplicación, la integración de herramientas externas mediante MCP se ha convertido en algo habitual, lo que acelera el desarrollo de aplicaciones agénticas en las que los LLM llaman a las API de forma autónoma para adquirir y analizar datos."}},cta:{title:"Contacte con nosotros",description:`Podemos consultarle desde la disposición de los requisitos.
302También se pueden considerar configuraciones PoC y LLM locales.`,primaryButton:"Contacte con nosotros",secondaryButton:"Consulta técnica"}},VL={seo:fL,header:kL,hero:bL,mission:yL,businessServices:vL,features:AL,businessProcess:xL,story:LL,contact:PL,footer:wL,cookiePolicy:SL,about:IL,portfolio:ML,common:jL,privacyPolicy:CL,termsOfService:DL,weatherMap:zL,agentDevelopment:TL,faq:EL,pricing:RL,aiTranscription:NL,keywordTracking:GL,onPremiseLLM:OL,vectorRAG:BL,aiAppDevelopment:KL},FL={home:{title:"Plataforma de soluções com tecnologia de IA - telet.ai",description:"Transforme as conversas com os seus clientes com análises de chamadas baseadas em IA. Obtenha insights em tempo real, análises de sentimentos e acompanhamento de desempenho para melhorar os resultados da sua equipa."},about:{title:"Informações da organização - telet.ai",description:"Learn about telet.ai's mission to transform customer conversations with AI. Meet our team and explore our journey."},privacy:{title:"Política de Privacidade - telet.ai",description:"Review telet.ai's privacy policy to understand how we handle your data and protect your privacy."},terms:{title:"Termos de Serviço - telet.ai",description:"Read telet.ai's terms of service for using this website and contacting us for consultations."},cookies:{title:"Política de Cookies - telet.ai",description:"Learn how telet.ai uses cookies and similar technologies (Cloudflare and Google Analytics)."},portfolio:{title:"Portfólio - telet.ai",description:"Explore o nosso portfólio de soluções de IA projetadas para melhorar as suas operações comerciais e a experiência dos clientes."},agentDevelopment:{title:"Concepção e desenvolvimento de agentes de IA empresarial - telet.ai",description:"Projete e crie agentes de IA de nível de produção adaptados aos seus fluxos de trabalho, ferramentas e necessidades de conformidade."},onPremiseLLM:{title:"Operações LLM no local - telet.ai",description:"Opere LLMs modernos dentro do seu ambiente para obter um forte controlo de dados, custos previsíveis e inferência de baixa latência."},vectorRAG:{title:"Vector RAG & Design de Índice - telet.ai",description:"Crie pipelines de recuperação de design e índices personalizados para cada fluxo de trabalho, a fim de melhorar as respostas fundamentadas."},aiAppDevelopment:{title:"Desenvolvimento de aplicações de IA - telet.ai",description:"Crie aplicações práticas com tecnologia LLM, integradas às suas APIs, dados e fluxos de trabalho comerciais."}},WL={brand:"telet.ai",nav:{services:"Serviços",portfolio:"Portfólio",about:"Informações da organização",contact:"Contato"}},qL={brandName:"telet.ai",tagline:"Comunicações com várias IAs",badge:"Inteligência de chamadas com tecnologia de IA",title:{line1:"Local e defensivo,",line2:"Expandir na nuvem,",line3:"Automatizado pelo agente."},description:"A inferência de borda no SLM garante a soberania dos dados e a integração da nuvem no LLM dimensiona a capacidade de processamento ao infinito; a adoção da arquitetura Agentic AI está começando a mostrar resultados nas principais empresas."},UL={badge:"Nossa missão",title:"Tornando o LLM mais acessível",paragraphs:['Você pode realmente ir tão longe?". -Essa surpresa é o que estamos buscando.','O potencial da modelagem de linguagem em larga escala (LLM) está se expandindo a cada dia. No entanto, queremos derrubar barreiras como "Estou preocupado em enviar dados confidenciais para APIs externas", "Aplicativos avançados de IA são apenas para grandes empresas" e "O custo de implementação não vale a pena".',"Somos especializados na criação de LLMs locais que são concluídos em seu ambiente. As informações altamente confidenciais dos clientes podem ser utilizadas com segurança sem serem expostas ao mundo exterior. Podemos maximizar os benefícios da IA e, ao mesmo tempo, garantir a segurança dos dados.","Ele cuida de tudo, desde a criação de documentos de rotina e a organização de dados até a análise especializada e o suporte a decisões. Nossa tecnologia proprietária de agentes oferece precisão comparável aos modelos de API.",'O LLM não substitui as pessoas. É uma ferramenta poderosa que permite que as pessoas exerçam mais criatividade, julgamento e conhecimento. Levamos a tecnologia de especial para comum - uma verdadeira "consumerização" da tecnologia.','Fique à vontade para nos consultar. Trabalharemos com você para descobrir "O que podemos fazer?" junto com você.'],animation:{label:"LLM",sublabel:"Tecnologia"}},_L={title:"Serviços",subtitle:"Serviços comerciais",services:[{title:"Projeto e desenvolvimento de agentes de IA para empresas",titleEn:"Agente de IA empresarial",description:"Projetar e desenvolver agentes de IA otimizados para requisitos de negócios, regras internas e escopo de dados. Suporte de LLM do tipo API externo para LLM local.",badges:["Design individual","Compatível com LLM","especialização em negócios"],link:"Detalhes."},{title:"Servidor LLM em promessa",titleEn:"Servidor LLM no local",description:"Executa o LLM em escala de 7B a 120B no servidor dedicado da empresa. Oferece um ambiente de uso seguro e flexível do LLM, evitando o risco de transmissão externa de dados.",badges:["7B-120B suportado","Chave de API emitida","Projeto de segurança"],link:"Detalhes."},{title:"Vetor RAG e design de índice",titleEn:"Arquitetura Vector RAG",description:"Separe e otimize os dados RAG por conteúdo comercial e lógica de análise. Projeto de índice para pesquisas rápidas e precisas.",badges:["
302Separação de índices","Pesquisa de alta velocidade","Suporte multilíngue"],link:"Detalhes."},{title:"Desenvolvimento de aplicativos de IA",titleEn:"Desenvolvimento de aplicativos de IA",description:"Desenvolver aplicativos práticos de IA com análise e geração pelo LLM em seu núcleo, utilizando APIs existentes e dados externos.",badges:["Vinculação de API","Análise do LLM","Design integrado"],link:"Detalhes."}]},HL={title:"Projetos de realização usando tecnologia de IA",subtitle:"Experiência em desenvolvimento de IA em uma ampla variedade de campos, incluindo assistentes multilíngues, previsão do tempo, LLM local e monitoramento de segurança.",viewDetails:"Ver detalhes →.",items:[{title:"Assistente multilíngue de IA",description:"Assistente de bate-papo multilíngue da RAG + LLM. Respostas altamente precisas a consultas em vários idiomas, incluindo japonês, inglês e chinês."},{title:"Sistema de previsão do tempo",description:"Aprende dados meteorológicos e gera previsões em tempo real. Previsões altamente precisas são geradas usando o reconhecimento de padrões de séries temporais e o RAG para pesquisar padrões semelhantes no passado."},{title:"Servidor interno / On-Prem Local LLM",description:"Fornecemos IA adaptada às suas operações comerciais, pronta para uso em sua empresa, com Open WebUI como ponto de entrada comum, pistas de inferência rápidas com Ollama/MLX e domínios de dados completamente separados para cada UID. Os documentos internos são capturados em um RAG com incorporação em inglês e tradução automática de consultas em japonês, e as habilidades de negócios, como resumo de notícias, organização de documentos e tarefas de rotina, são executadas com segurança lado a lado. O sistema de execução de habilidades é isolado como um contêiner OpenClaw e protegido por três camadas de borda Cloudflare e Nginx local. Fornecemos suporte abrangente para seleção de modelos, design de habilidades e políticas operacionais, e iniciamos a IA dedicada da sua empresa em um formato que pode ser usado desde o dia em que é implantado."},{title:"Previsão de chegada orbital interplanetária (AI)",description:"Obter dados planetários da API da NASA e interpretar cálculos de órbita no LLM. Gera relatórios sobre a janela de lançamento, o tempo necessário e a eficiência de combustível."},{title:"Análise de IA de dados imobiliários",description:"Colete informações imobiliárias por meio de raspagem da Web e analise-as com LLM + Python. Geração automática de tendências de preços, previsões de mercado e retorno sobre o investimento."},{title:"IA de adivinhação (adivinhação de quatro pilares)",description:"Reproduza a lógica dos Quatro Pilares do Destino em Python e interprete-a com o LLM. Adquira coordenadas e tempo da API Astronomy para avaliação personalizada da sorte e da compatibilidade."},{title:"Google Workspace AI integration",description:"Integração do LLM com Gmail, Drive, Calendar, etc. A IA auxilia no resumo de e-mails, na pesquisa de arquivos e no agendamento."},{title:"World NEWS Multilingualização",description:"Coleção em tempo real de notícias mundiais, traduzidas e resumidas em vários idiomas pelo LLM. Tradução natural e geração de resumos com base na compreensão contextual."},{title:"Monitoramento de registros de segurança AI Manager",description:"Monitoramento em tempo real dos registros de segurança, detecção e análise de ameaças pelo LLM e alertas imediatos por meio da correspondência com padrões de ataques anteriores pelo RAG."}]},$L={title:"Como prosseguir com o projeto",headline:"Tudo o que você precisa é de uma visão.",paragraphs:['Já se foi o tempo em que as diferenças de idioma eram uma barreira para os negócios e, embora usemos tradução por IA, podemos lidar com negociações e desenvolvimento de negócios em 14 idiomas por meio de nosso fluxo de trabalho exclusivo que faz uso total do compartilhamento de imagens. Até mesmo especificações complexas podem ser verificadas com imagens de amostra para evitar erros de comunicação. A única coisa que importa é "o que você deseja criar".',"O projeto começa com uma audiência inicial no aplicativo de negócios. Depois de um compartilhamento geral da visão do cliente e da noção dos problemas, é assinado um NDA (Non-Disclosure Agreement, acordo de confidencialidade). Depois de criar um ambiente no qual as informações confidenciais possam ser discutidas em sigilo, realizamos entrevistas detalhadas e c
302onfirmamos os requisitos. Com base no conteúdo, preparamos uma proposta e confirmamos a direção do projeto usando imagens de amostra. Com o entendimento estabelecido, preparamos as especificações e iniciamos o desenvolvimento.","Este fluxo é apenas uma introdução geral. Nós nos adaptaremos de forma flexível à sua situação e ao seu cronograma. Onde quer que você esteja no mundo, mesmo que não fale o mesmo idioma, as imagens e a IA darão suporte à sua comunicação. Por que você não se junta a nós para entrar no mercado de fronteira que ninguém ainda explorou? Deixe que o telet.ai seja seu parceiro para dar forma às suas ideias."],cards:[{title:"Audiência / NDA",description:"Após a audiência inicial por e-mail, é assinado um contrato de confidencialidade. Você pode nos fornecer detalhes com tranquilidade."},{title:"Planejamento e CA",description:"São fornecidas propostas e imagens de amostra. Há suporte para 14 idiomas, para que você possa prosseguir sem barreiras linguísticas."},{title:"Amostragem e início",description:"Prepararemos as especificações e iniciaremos os negócios mediante acordo."},{title:"Desenvolvimento, teste e operação",description:"Implementação rápida por meio de desenvolvimento ágil. Fornecemos suporte consistente, desde os testes até o suporte operacional."}]},QL={badge:"Estudos de caso",title:"História de introdução à IA",items:[{title:"Soluções de eficiência empresarial e redução de custos",subtitle:"Reduza a carga de trabalho diária e crie um ambiente no qual você possa se concentrar em seu negócio principal.",description:'Muitas pequenas e médias empresas (PMEs) enfrentam escassez de mão de obra e dificuldades de contratação. Mesmo quando novos funcionários são contratados, os custos de treinamento são altos e há problemas com as taxas de retenção. Nossa solução de IA oferece suporte a tarefas diárias, como automação do gerenciamento de orçamento, entrada e organização de dados, recuperação de documentos internos e geração automática de relatórios e documentos. Os assistentes de IA lidam com tarefas rotineiras que costumavam tomar muito tempo, 24 horas por dia, 365 dias por ano, sem erros. As empresas que introduziram a IA perceberam reduções significativas nas horas de trabalho. Desde "aumentar os recursos humanos" até "colaborar com a IA". Faremos o possível para apoiar a reforma do estilo de trabalho de sua empresa.'},{title:"Automação do suporte ao cliente",subtitle:"O serviço 24 horas melhora a satisfação do cliente e reduz os custos de mão de obra.",description:"Os chatbots com IA fornecem respostas automatizadas a perguntas frequentes, resposta primária e classificação de consultas, além de resposta em tempo real em vários idiomas. Resposta em tempo real em vários idiomas. Os operadores humanos podem se concentrar em casos complexos e melhorar a qualidade do atendimento ao cliente. Eleve a qualidade do seu atendimento a um novo patamar com o suporte ao cliente com IA."},{title:"IA de conhecimento e utilização de documentos",subtitle:"Ativos de conhecimento interno em um formato que pode ser utilizado imediatamente por qualquer pessoa",description:'Onde está esse manual?". Há informações que somente o antecessor conhece" - o conhecimento impessoalizado impede o crescimento de uma empresa. Nossa tecnologia RAG (geração de extensão de pesquisa) permite que você recupere as informações necessárias de manuais internos, perguntas frequentes e documentos anteriores simplesmente fazendo perguntas em linguagem natural. Ela agiliza o treinamento de novos funcionários, digitaliza o conhecimento tácito dos veteranos e permite o compartilhamento de conhecimento entre os departamentos. Os documentos existentes podem ser usados como estão, portanto, não há necessidade de criar novos documentos.'},{title:"IA de análise de imagens para cuidados médicos e de enfermagem",subtitle:"Olhos atentos, suporte 24 horas por dia por IA",description:"Nas áreas de assistência médica e de enfermagem, é necessário cuidar de um grande número de pacientes e usuários com uma equipe limitada. Nossa IA de análise de imagem/vídeo detecta anormalidades em tempo real a partir de imagens de câmeras. Ela detecta automaticamente doenças infecciosas por meio da detecção de febre, alerta imediatamente se um paciente cair ou se afastar e detecta alterações n
302a condição física por meio da análise de expressões faciais. Reduzindo a carga de patrulhas noturnas, respondendo rapidamente a emergências e automatizando tarefas de registro, a equipe pode se concentrar em suas tarefas de atendimento primário. A instalação no local também está disponível para garantir a privacidade."}]},JL={title:"Entre em contato conosco",description:"Podemos consultá-lo desde a fase de planejamento dos requisitos e também podemos considerar configurações de PoC e LLM locais.",openForm:"Formulário aberto",closeForm:"Fechar o formulário",form:{name:"Seu nome",namePlaceholder:"Taro Yamada",email:"Endereço de e-mail",emailPlaceholder:"[email protected]",subject:"assunto",subjectPlaceholder:"Assunto de sua consulta",message:"Mensagem",messagePlaceholder:"Preencha sua consulta",required:"*",submit:"Enviar",submitting:"Enviando...",turnstileMessage:'A autorização "Não sou um robô" é necessária para o envio.',turnstileError:"Falha ao carregar a autorização de segurança. Favor recarregar.",errorRetry:"Tente novamente."}},ZL={brand:"telet.ai",tagline:"Comunicações com várias IAs",description:"Inove seus negócios com agentes de IA. Crie valor a partir do diálogo.",sections:{product:{title:"Produto",features:"Recurso",benefits:"introdução",testimonials:"Depoimentos de clientes"},services:{title:"Serviço",agentDev:"Projeto e desenvolvimento de agentes de IA para empresas",onPremise:"Servidor LLM em promessa",vectorRag:"Vetor RAG e design de índice",aiApp:"Desenvolvimento de aplicativos de IA"},company:{title:"Informações da organização",about:"Sobre o telet.ai",profile:"Perfil do representante",contact:"Entre em contato conosco"},process:{title:"Como fazemos negócios",hearing:"Audiência / NDA",planning:"Planejamento e CA",sampling:"Amostragem e início",development:"Desenvolvimento, teste e operação"}},copyright:"© 2026 telet.ai. Todos os direitos reservados.",legal:{privacy:"Política de privacidade",terms:"Termos de uso",cookies:"Política de cookies"}},XL={title:"Política de cookies",subtitle:"Esta seção descreve os cookies e outras tecnologias (Cloudflare / Google Analytics) usados neste site.",lastUpdated:"Última atualização: 22 de janeiro de 2026",intro:'telet.ai ("nós", "nos", "nosso") ("Nós") pode usar cookies e tecnologias semelhantes para fornecer e melhorar este Site e garantir sua segurança. Não definimos nossos próprios cookies de rastreamento especiais para fins de publicidade (embora a Cloudflare e o Google Analytics possam definir cookies ou tecnologias semelhantes de acordo com suas respectivas especificações de serviço).',sections:{what:{title:"1. o que é um cookie?",description:"Cookies são pequenos arquivos de texto que são armazenados no navegador quando você visita um site."},howWeUse:{title:"Objetivo de nosso uso de cookies, etc.",description:"Podemos usar cookies, etc. principalmente para os seguintes fins",items:["Para estabilizar a exibição e a operação do site","Para detectar e impedir o acesso não autorizado e o tráfego malicioso","Para entender o status do acesso e ajudar a melhorar o site"]},googleAnalytics:{title:"3. uso do Google Analytics",description:"Usamos o Google Analytics 4 (GA4) fornecido pelo Google LLC para análise de acesso.",items:["As informações coletadas podem incluir páginas visualizadas, tempo gasto, fonte de referência, informações sobre o dispositivo e o navegador, etc.","Não usamos diretamente informações de identificação pessoal (nome, endereço de e-mail, etc.) com a finalidade de enviá-las ao Google Analytics.","O tratamento de dados pelo Google está sujeito aos termos e políticas do Google"]},cloudflare:{title:"4. uso do Cloudflare",description:"Usamos os serviços da Cloudflare, Inc. para medidas de entrega e segurança deste Site. A Cloudflare pode definir e fazer referência a cookies, etc. para fins como proteção contra DDoS e prevenção de bots.",items:["A finalidade principal é a otimização da segurança e da comunicação, e não se destina a ser rastreada para a entrega de anúncios","O tratamento de dados pela Cloudflare está sujeito aos termos e políticas da Cloudflare"]},noSpecialCookies:{title:"5. nossos próprios cookies especiais",de
302scription:"Não configuramos nossos próprios cookies especiais para fins de publicidade de direcionamento comportamental, etc. O uso de cookies, etc., limita-se principalmente ao escopo da operação, segurança e análise de acesso do site."},choices:{title:"6. gerenciamento de cookies (opt-out)",description:"Se os cookies estiverem desativados, algumas funções poderão não estar disponíveis.",items:["Os cookies podem ser excluídos ou desativados nas configurações do navegador","Se você quiser desativar a medição pelo Google Analytics, use o método de desativação fornecido pelo Google","O uso do modo privado de um navegador, etc., pode limitar as informações armazenadas."]},changes:{title:"7. alterações a esta política",description:"Podemos revisar esta política em resposta a alterações em leis e regulamentos ou mudanças nos serviços utilizados. A política revisada entrará em vigor quando for publicada nesta página."},contact:{title:"8. entre em contato conosco",description:"Se tiver alguma dúvida sobre esta política, entre em contato conosco pelo e-mail",company:"telet.ai",contactLink:"Ir para o formulário de consulta"}}},YL={hero:{title:"Sobre o telet.ai",subtitle:"Suporte cuidadoso ao desenvolvimento de IA que só pode ser fornecido por uma equipe pequena e personalizada."},story:{title:"Informações da organização",content:"A telet.ai começou com uma pergunta. Por que tantas empresas não estão conseguindo aproveitar os insights que estão nas inúmeras interações entre as empresas e seus clientes? A equipe, liderada por um representante com experiência em pesquisa de IA e desenvolvimento de software empresarial, foi criada para enfrentar esse problema de frente. Não somos uma organização de grande porte. Por isso, somos capazes de enfrentar seus desafios em profundidade e propor apenas as soluções realmente necessárias. Nosso ponto forte é a capacidade de projetar arquiteturas híbridas que integram LLM local e LLM na nuvem. Podemos proteger os dados confidenciais da sua empresa em um ambiente de nuvem dedicado e, ao mesmo tempo, realizar inferência avançada de IA de maneira escalonável. Fornecemos uma CLI para desenvolvedores e uma interface de usuário de bate-papo para a equipe de linha de frente, criando uma base para o uso de IA em toda a sua organização. E nos concentramos em ser a solução ideal, em vez de ser a mais avançada. O descarte de funções de acordo com o orçamento e a revisão de apenas uma configuração podem fazer uma grande diferença no custo. Entregamos o que você precisa, na quantidade que você precisa. Nosso suporte atencioso ao desenvolvimento de IA só é possível porque somos pequenos e pessoais. Para resolver a escassez de mão de obra e apoiar o crescimento de sua empresa. Essa é a promessa da telet.ai."},representative:{title:"Representante do telet.ai labo",name:"Keita Okuizumi",tagline:"Para o céu, para o mar e para o código - uma paixão pelo desenvolvimento de IA nascida de uma carreira incomum",paragraphs:['Como ex-piloto privado (PPL) e portador de licença de navio, há muitos anos lido com o clima no ar e no mar. No cockpit e na casa do leme, observei as mudanças no barômetro, decifrei as linhas de pressão isobáricas e as comparei com o movimento do vento e das nuvens. O senso de "ler dados, julgar e agir" que desenvolvi por meio desse processo repetitivo é o ponto de partida para mim hoje.','Comecei a aprender programação em Python aos 57 anos de idade. O ímpeto foi uma simples curiosidade, mas assim que comecei a escrever código, fiquei fascinado com as possibilidades dos agentes de IA. Criei aplicativos com minhas próprias mãos, executei-os e os aprimorei. Durante o processo, percebi algo. Em projetos anteriores, eu estava envolvido como não engenheiro, e o desenvolvimento era sempre feito por outra pessoa. No entanto, quando comecei a escrever o código eu mesmo, comecei a ver a essência do problema. Este é o gargalo aqui" ou "Este projeto não pode ser expandido" - ao ter o ponto de vista de um engenheiro, a velocidade de realização do que eu queria fazer aumentou drasticamente.',"Desenvolvimento de serviços meteorológicos combinando experiência de campo com ciência de dados, criação de agentes de IA para melhorar a eficiência operacional e vários projetos experimentais. À medida que continuei a trabalhar com minhas mãos, convenci-me não apenas de que a tecnologia era interessante, mas também de que deve haver pessoas que precisam dela.","Nosso objetivo não é perseguir a vanguarda. Enfrentamos os problemas e o orçamento do cliente e fornecemos apenas o que é realmente necessário a um custo razoável. Como não somos uma organização de grande porte, podemos oferecer suporte ao desenvolvimento personalizado de acordo com as necessidades de cada cliente. Queremos usar essa tecnologia para o benefício da sociedade - por isso lançamos o telet.ai."]},contact:{title:"Sobre nós",company:"telet.ai labo",ceo:"Representante: OKUIZUMI Keita",button:"Entre em contato conosco"},studios:{tokyo:{title:"Estúdio de Tóquio",address:"#301 First Hills A Musashikoganei, 3-3-21 Nukuiminamicho, Koganei-shi, Tóquio 184-0014, Japão"}}},eP={title:"Portfólio",subtitle:"Veja nosso histórico de utilização da tecnologia de IA",techStackLabel:"Pilhas de tecnologia",viewProject:"Exibir projeto",privateProject:"Projetos privados",visualizationLabel:"visualização de dados",cta:{title:"Entre em contato conosco",description:"Fique à vontade para entrar em contato conosco para discutir seu projeto ou para consultas técnicas.",button:"Entre em contato conosco"},projects:{"traffic-route-ai":{title:"Sistema de Seleção de Rotas de Transporte com IA",subtitle:"Planejamento de rotas de transporte público na Malásia",description:"Sistema que busca conexões de ônibus e trem entre origem e destino e compara opções por horário de chegada, duração e número de baldeações. Filtros de apenas ônibus ou trem, busca de estações e paradas próximas e uma interface multilíngue ajudam a escolher rotas para o dia a dia e viagens.",techStack:["Rotas de Transporte Público","Integração de Ônibus e Trem","Comparação de Rotas","Interface Multilíngue"]},"multilingual-assistant":{title:"Assistente multilíngue de IA",description:"Assistente de bate-papo inteligente para consultas em vários idiomas, criando 1.573 índices de vetores e implementando um controle preciso das respostas por meio de ramificação condicional, filtragem de palavras NG e acionamento de palavras-chave. Respostas consistentes e altamente precisas às perguntas dos usuários em vários idiomas, incluindo japonês, inglês e chinês, são geradas por meio de pesquisa semântica entre idiomas.",techStack:["RAG","Pesquisa de vetores","Incorporação multilíngue","LLM","lógica de ramificação condicional"]},"weather-forecast":{title:"Previsão meteorológica de IA com a API de clima",description:"Desenvolveu um sistema de IA que aprende com dados meteorológicos anteriores e faz previsões em tempo real das condições meteorológicas recentes. O LLM analisa dados anteriores obtidos da API da JMA, do OpenWeatherMap etc. e gera previsões de curto prazo para temperatura, probabilidade de precipitação, velocidade do vento etc. Combinando o reconhecimento de padrões de dados de séries temporais com a pesquisa de padrões de similaridade do passado pelo RAG, o sistema obtém previsões altamente precisas que complementam os modelos estatísticos convencionais.",techStack:["Vinculação da API de clima","LLM","RAG","Análise de dados de séries temporais","processamento em tempo real"]},"local-llm":{title:"Servidor interno / On-Prem Local LLM",description:"Fornecemos IA adaptada às suas operações comerciais, pronta para uso em sua empresa, com Open WebUI como ponto de entrada comum, pistas de inferência rápidas com Ollama/MLX e domínios de dados completamente separados para cada UID. Os documentos internos são capturados em um RAG com incorporação em inglês e tradução automática de consultas em japonês, e as habilidades de negócios, como resumo de notícias, organização de documentos e tarefas de rotina, são executadas com segurança lado a lado. O sistema de execução de habilidades é isolado como um contêiner OpenClaw e protegido por três camadas de borda Cloudflare e Nginx local. Fornecemos suporte abrangente para seleção de modelos, design de habilidades e políticas operacionais, e iniciamos a IA dedicada da sua empresa em um formato que pode ser usado desde o dia em que é implantado.",techStack:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"]},"orbital-prediction":{title:"Previsão de chegada orbital interplanetária (AI)",description:"Desenvolveu um sistema para analisar pontos de partida ideais para transferência interplanetária, obtendo dados de posição planetária, elementos orbitais e parâmetros de gravidade da API da NASA. Calcula cálculos de órbita considerando a órbita de transferência de Hohmann e a assistência gravitacional usando API e Python, e exibe a janela de lançamento, o tempo necessário e a eficiência de combustível. O sistema é usado como uma ferramenta de simulação para instituições educacionais e empresas relacionadas ao espaço. *A função AI foi removida no momento, o cálculo está em andamento com a API e o Python.",techStack:["NASA API (Horizons, SPICE)","Cálculo da dinâmica orbital","Python","visualização de dados"]},"real-estate":{title:"Análise de IA de dados imobiliários",description:"Desenvolveu um sistema que coleta informações imobiliárias de uma região específica por meio de raspagem da Web e realiza análises avançadas de dados usando LLM e Python. Variáveis como preço da propriedade, preço unitário tsubo, idade do edifício e distância da estação são extraídas, e a análise de tendências de preços, previsões de mercado e simulações de retorno de investimento são geradas automaticamente. Os recursos também foram extraídos de descrições de propriedades não estruturadas usando LLM para fornecer uma análise de mercado abrangente combinada com dados quantitativos. *Oferta agora disponível como uma segunda versão (a versão COMPLETA é fornecida separadamente)",techStack:["Raspagem da Web (Scrapy, Playwright)","Python","Pandas","Análise do LLM","visualização de dados"]},"fortune-ai":{title:"Sistema de avaliação de IA dos quatro pilares",subtitle:"Reproduzindo a sabedoria tradicional com a tecnologia.",paragraphs:["O Four Pillars of Divination é a culminação de milhares de anos de adivinhação oriental. Esse sistema reproduz sua lógica tradicional de adivinhação totalmente em Python, combinada com a interpretação e a geração de conselhos usando LLM (Large Language Models). A IA reproduz fielmente o processo de avaliação realizado por um adivinho especialista.","Depois de inserir a data, a hora e o local de nascimento, o sistema recupera os horários do nascer e do pôr do sol e as informações de coordenadas naquele momento a partir da API de Astronomia. Com base nesses dados, o sistema calcula com precisão o signo do zodíaco, os dez deuses e o equilíbrio dos cinco elementos. A lógica baseada n
302a ciência de adivinhação dos Quatro Pilares do Destino é indexada em Python e combinada com dados estatísticos e informações de RAG (Retrieval Augmentation Generation) para melhorar a precisão da análise da fórmula de vida.","Os dados calculados sobre o estilo de vida são explicados em linguagem natural pelo LLM de maneira fácil de entender. São gerados resultados de avaliação personalizados, incluindo o fluxo da sorte, a compatibilidade dos relacionamentos interpessoais e a ocupação adequada para você. Você pode obter respostas com a mesma profundidade como se tivesse consultado uma cartomante profissional.","Atualmente, ele está disponível em uma segunda versão. Você pode experimentar a análise básica do kumishiki e a análise da sorte. A versão completa, que inclui análises mais detalhadas e conselhos multifacetados, está disponível separadamente."],techStack:["Python","API de astronomia (Sunrise-Sunset, TimeZoneDB)","Lógica de quatro pilares","LLM","Cálculo de coordenadas e tempo"]},"google-workspace":{title:"Google Workspace AI integration",description:"Desenvolveu um sistema que vincula o Google Workspace (Gmail, Drive, Agenda, Docs, Sheets) ao LLM para ler, editar e processar automaticamente dados comerciais. A IA auxilia nas tarefas diárias, como resumir o conteúdo de e-mails, gerar rascunhos para respostas automáticas, pesquisar e analisar arquivos do Drive, extrair programações do Calendário e propor ajustes. A operação do espaço de trabalho a partir do agente também é realizada por meio de conexão API segura com autenticação OAuth e design de ferramenta compatível com MCP. A segunda versão já está disponível (a versão COMPLETA será fornecida separadamente).",techStack:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"]},"world-news":{title:"World NEWS Multilingualização",description:"Desenvolvimento de um sistema que coleta artigos em tempo real de fontes de notícias de todo o mundo e realiza tradução, resumo e categorização multilíngue usando LLM. Traduz artigos originais em inglês, chinês, francês, árabe e outros idiomas para o japonês e os organiza por tópico. O monitoramento eficiente de notícias internacionais não é obtido por meio de uma simples tradução automática, mas por uma tradução natural baseada na compreensão contextual usando LLM e na geração de resumos que extraem os pontos principais do artigo. *Oferta agora disponível em uma segunda versão (a versão COMPLETA é fornecida separadamente).",techStack:["Notícias API","Coleção de RSS","Tradução e Resumo do LLM","processamento multilíngue","Auto-categorização","processamento em lote programado"]},"security-monitoring":{title:"Monitoramento de registros de segurança AI Manager",description:"Desenvolveu um sistema para monitoramento em tempo real de registros de segurança corporativa e detecção e análise avançadas de ameaças usando LLM. Várias fontes de registro, como firewalls, IDS/IPS, registros de autenticação e registros de aplicativos, são coletadas e analisadas por um módulo Python e comparadas com padrões de ataques anteriores, informações de vulnerabilidade e casos de incidentes acumulados no RAG. Quando um padrão anormal é detectado, o LLM explica o nível da ameaça, o escopo do impacto e a resposta recomendada em linguagem natural e alerta imediatamente a pessoa responsável. Se o mesmo padrão se repetir, um alerta de alta prioridade é emitido automaticamente para acelerar a resposta ao incidente.",techStack:["Módulo de monitoramento Python","Coleta de registros (Fluentd, Logstash)","RAG","Banco de dados de padrões de ameaças","Análise do LLM","Notificações de alerta (Slack, PagerDuty)"]}}},aP={learnMore:"Leia mais",getStarted:"começar a ...",contactUs:"Entre em contato conosco",backToHome:"Voltar para a página inicial"},nP={title:"Política de privacidade",subtitle:"Política de privacidade",lastUpdated:"Última atualização: 23 de janeiro de 2026",intro:'O telet.ai (o "Serviço") considera a proteção de suas informações pessoais uma responsabilidade importante e estabeleceu a seguinte política de privacidade.',sections:{collection:{title:"1. informações a serem coletadas",description:"O Serviço poderá coletar as seguintes informações quando você entrar em contato conosco ou usar o Serviço.",items:["Endereço de e-mail","Seu nome (opcional)","Detalhes da consulta","Outras informações fornecidas voluntariamente por você"]},purpose:{title:"2. finalidade do uso das informações",description:"As informações pessoais coletadas serão usadas somente para as seguintes finalidades",items:["Atender e responder a consultas","Contato e informações sobre nossos serviços","Comunicação necessária para o andamento do projeto","Análise para melhoria do serviço (em um formato que não identifique indivíduos)"]}
302,thirdParty:{title:"3. fornecimento a terceiros",description:"O Serviço não fornecerá suas informações pessoais a terceiros, exceto nos seguintes casos",items:["Se o cliente consentir","Quando houver uma solicitação de divulgação com base em leis e regulamentos","Quando necessário para a proteção da vida, do corpo ou da propriedade de uma pessoa"]},security:{title:"4. gerenciamento de informações",description:"O Serviço gerenciará adequadamente as informações pessoais coletadas e tomará medidas de segurança razoáveis para impedir o acesso não autorizado, a perda, o vazamento e a falsificação."},email:{title:"5. tratamento de e-mails",description:"O Serviço tratará os e-mails de acordo com a política a seguir.",items:["Usaremos o conteúdo de seu e-mail somente para responder à sua consulta e fornecer nossos serviços.","Não venderemos, alugaremos ou compartilharemos seu endereço de e-mail com terceiros","Podemos lhe enviar e-mails informativos sobre nossos serviços. Se desejar cancelar a assinatura, use o link de cancelamento no e-mail ou entre em contato conosco usando as informações de contato abaixo.","A criptografia SSL/TLS é usada nas comunicações por e-mail para garantir a segurança das comunicações","Excluiremos seu e-mail com segurança após armazená-lo por um período de tempo apropriado."]},cookies:{title:"6. uso de cookies",description:"Os cookies podem ser desativados nas configurações de seu navegador."},external:{title:"7. uso de serviços externos",description:"Este serviço pode usar os seguintes serviços externos. Consulte os respectivos links para conhecer a política de privacidade de cada serviço.",items:["Google Analytics (access analysis)","Outros serviços em nuvem necessários para as operações comerciais"]},changes:{title:"8. alterações na política de privacidade",description:"Esta política está sujeita a revisão sem aviso prévio, de acordo com alterações nas leis e regulamentos ou alterações no conteúdo do serviço. A política revisada entrará em vigor quando for publicada nesta página."},contact:{title:"9. entre em contato conosco",description:"Se tiver alguma dúvida sobre esta política, entre em contato conosco pelo e-mail",company:"telet.ai",contactLink:"Ir para o formulário de consulta"}}},tP={title:"Termos de uso",subtitle:"Estes são os termos e condições para o uso deste site e para agendar uma consulta, fazer consultas e solicitar informações ao telet.ai.",lastUpdated:"Última atualização: 22 de janeiro de 2026",intro:'Estes Termos de Uso (doravante denominados "Termos") Estes Termos de Uso (doravante denominados "Termos") aplicam-se ao website operado pela telet.ai (doravante denominada "nós", "nos", "nosso" ou "nossa"). (doravante denominada "nós", "nos" ou "nosso"). (doravante denominada "Site") operado pela telet.ai (doravante denominada "Nós"). O Site é fornecido principalmente como uma página de destino para agendamentos de consultas, consultas e solicitações de documentos, e não prevê a criação de contas ou funções de cobrança paga no Site.',sections:{scope:{title:"1. escopo de aplicação",description:'Estes Termos e Condições se aplicam a todos os visitantes e usuários do Site ("Usuários"). Os Termos de Uso se aplicam a todos os visitantes e usuários do Site (doravante denominados "Usuários"). Caso um NDA separado, acordo de terceirização, contrato individual etc. seja celebrado entre nós e um Usuário, esse documento terá precedência sobre os Termos e Condições.'},prohibited:{title:"2. itens proibidos",description:"Ao usar o Site, os Usuários não devem se envolver em nenhum dos seguintes atos",items:["Atos que violam leis e regulamentos ou a ordem e a moral públicas","Qualquer ato que infrinja os direitos de propriedade intelectual, a privacidade ou outros direitos ou interesses nossos ou de terceiros","Atos que interfiram na operação deste site ou dos sistemas relacionados por meio de acesso não autorizado, carga excessiva, sabotagem, etc.","Enviar informações falsas ou fazer-se passar por um terceiro em formulários de consulta, etc.","Raspagem, engenharia reversa ou acesso automatizado excessivo sem nossa permissão prévia"]},disclaimer:{title:"3. isenção de responsabilidade",description:'fornecemos este site "no estado em que se encontra" e "conforme disponível". Na medida máxima permitida por lei, nos isentamos de todas as garantias com relação a este site.',items:["As informações contidas neste site estão sujeitas a alterações ou exclusões sem aviso prévio.","Não garantimos a precisão, a integridade ou a adequação das informações contidas neste site a uma finalidade específica.","Não seremos responsáveis por quaisquer danos resultantes de seu uso deste site ou da confiança nas informações aqui contidas.","As respostas a consultas e questionamentos são apenas para informações gerais e não constituem aconselhamento jurídico, tributário, médico ou de outro tipo."]},ip:{title:"4. direitos de propriedade intelectual",description:"Todos os direitos sobre o texto, as imagens, os designs, as marcas registradas, os logotipos etc. deste site pertencem a nós ou aos detentores dos direitos. Você não pode usá-los sem a permissão dos detentores dos direitos."},links:{title:"5. links para sites externos",description:"Este site pode conter links para sites de terceiros. Não somos responsáveis pelo conteúdo ou pela operação dos sites vinculados."},changes:{title:"6. modificação destes Termos e Condições",description:"Reservamo-nos o direito de alterar estes Termos e Condições de tempos em tempos, conforme necessário. Os Termos de Uso alterados entrarão em vigor quando publicados no Site."},governingLaw:{title:"7. lei aplicável e jurisdição",description:"Estes Termos e Condições serão regidos e interpretados de acordo com as leis do Japão. Em caso de qualquer disputa relacionada a este Site, o Tribunal Distrital de Tóquio terá jurisdição exclusiva como tribunal de primeira instância."},contact:{title:"8. entre em contato conosco",description:"Se tiver alguma dúvida sobre estes Termos e Condições, entre em contato com",company:"telet.ai",contactLink:"Ir para o formulário de consulta"}}}
302,iP={title:"movimento regular",subtitle:"A IA prevê o",description1:"As informações meteorológicas são fornecidas em tempo real por cada país. Seu país é exibido no centro do mapa. O clima de ontem e o de hoje são registros reais – as nuvens de chuva deveriam estar no seu céu naquela data e hora.",description2:"No entanto, essa animação também mostra os movimentos climáticos futuros.",description3:"Vetores de dados passados e busca de padrões em alta velocidade. Os padrões climáticos também podem ser previstos com base no ambiente ao redor. Da mesma forma, é possível prever a colheita, a produção e as vendas calculando elementos (i) do ambiente e valores estatísticos avançados do desempenho anterior e fazendo com que a IA os analise.",refresh:"atualização (por exemplo, memória)",loading:"Carregando o mapa meteorológico..."},sP={hero:{badges:["Empresa","LLM local","Agente personalizado"],title:"Projeto e desenvolvimento de agentes de IA para empresas",description:"Projetar e criar agentes de IA dedicados e adaptados aos requisitos da empresa"},mission:{title:"Serviços de desenvolvimento de agentes de IA personalizados",description:"Desenvolvemos consistentemente agentes de IA personalizados que abordam os problemas comerciais exclusivos de sua empresa, desde o projeto até a implementação e a operação. Nosso projeto arquitetônico enfatiza a compatibilidade com sistemas de missão crítica existentes e ambientes de SaaS, permitindo uma integração suave com APIs, bancos de dados e ferramentas internas. Nossos engenheiros estão familiarizados com LangChain, AutoGen, CrewAI e outras estruturas importantes, Nossos engenheiros estão familiarizados com LangChain, AutoGen, CrewAI e outras estruturas importantes e proporão a melhor solução para a pilha de tecnologia e a estrutura operacional da sua empresa. Não desenvolvemos apenas chatbots únicos, mas também criamos sistemas multiagentes nos quais vários agentes cooperam entre si para realizar tarefas e fluxos de trabalho agênticos que funcionam em conjunto com ferramentas externas. Apoiamos a maximização do valor comercial trazido pelos agentes de IA por meio de uma parceria de longo prazo que inclui melhoria contínua após a implementação, seguindo atualizações de modelos e manutenção de sistemas de monitoramento operacional.",imageAlt:"Serviços de desenvolvimento de agentes de IA personalizados"},summary:{title:"Tendências de desenvolvimento de agentes",paragraphs:['De 2025 a 202
3026, o desenvolvimento do Agente de IA está passando da fase de demonstração para a fase de implementação corporativa em grande escala. O conceito de "Agentic AI" criou raízes, e sistemas autônomos de execução de negócios que vão além de meros chatbots começaram a operar em vários setores.','Agentes que usam computador" que controlam diretamente navegadores e desktops, como o Operator da OpenAI, o Computer Use da Anthropic e o Project Mariner do Google, tornaram-se práticos. O MCP (Model Context Protocol) é um ecossistema em expansão, que permite a integração plug-and-play com milhares de ferramentas.',"As arquiteturas de vários agentes atingiram a maturidade, com agentes especializados trabalhando juntos para realizar tarefas complexas, como gerenciamento de projetos, suporte ao cliente e análise de dados. A padronização do protocolo A2A (Agent-to-Agent) também avançou na colaboração de agentes entre diferentes fornecedores.",'O modelo de governança evoluiu de "Human-in-the-Loop" para "Human-on-the-Loop" para implementações corporativas, com um mecanismo de auditoria de decisões pós-agente e escalonamento automático com base no nível de risco como recursos padrão, acelerando a adoção em setores regulamentados, como finanças, saúde e manufatura. A adoção desse sistema está se acelerando em setores regulamentados, como o financeiro, o médico e o de manufatura.']},features:{title:"Design e desenvolvimento",subtitle:"Design e desenvolvimento",items:[{title:"Design de agentes com base em requisitos comerciais",description:"Extrair casos de uso da análise do fluxo de negócios, decompor tarefas e esclarecer as responsabilidades do agente. Determinamos se o processamento pode ser concluído por um único agente ou se requer coordenação de vários agentes e selecionamos os padrões de inferência ideais, como ReAct, Plan-and-Execute e Reflexion."},{title:"Integração de RAGs/ferramentas/fluxos de trabalho",description:"Pipelines RAG altamente precisos que combinam Embedding Generation, Chunk Strategy e Hybrid Search, conexão padronizada a APIs e bancos de dados externos com definições de ferramentas compatíveis com MCP e orquestração de fluxo de trabalho em várias etapas usando LangGraph e CrewAI. Orquestre fluxos de trabalho de várias etapas com LangGraph e CrewAI."},{title:"Projeto de segurança e autorização",description:"O controle de acesso das funções do agente por RBAC/ABAC, as contramedidas de injeção de prompt e a detecção e o mascaramento de PII são implementados. Os registros de auditoria de todas as entradas e saídas são mantidos, e há suporte para a operação em ambiente compatível com SOC2 e ISO27001."},{title:"Implementação, incluindo operação e monitoramento",description:"Implemente a visualização de traços com LangSmith, Langfuse, etc., e o monitoramento em tempo real da latência, do consumo de tokens e da taxa de erros. Crie um ciclo de aprimoramento contínuo, incluindo alertas de detecção de anomalias, infraestrutura de teste A/B e teste de regressão ao atualizar modelos."}]},techStack:{title:"Pilhas de tecnologia",subtitle:"Plataforma e tecnologia",categories:{agentFramework:{title:"Estrutura do agente",items:["AutoGen 0.4 / AG2","CrewAI","LangGraph","SDK de agentes da OpenAI","MCP antrópico","Google ADK (Agent Development Kit)","Núcleo semântico","Plataforma proprietária do agente"]},apiLayer:{title:"Camada de API",items:["FastAPI / Litestar","gRPC / Conectar","Federação GraphQL","Eventos enviados pelo servidor (SSE)","WebSocket / NATS","OAuth 2.1 / OIDC","Gateway de API (Kong / Envoy)","Limite de taxa adaptável"]},vectorDb:{title:"Vetor DB / RAG",items:["Pinha","Weaviate","Qdrant","Milvus","ChromaDB","pgvetor","FAISS","Turbopuffer"]}
302,infrastructure:{title:"Infraestrutura",items:["Kubernetes (EKS / GKE / AKS)","Docker / Podman","Cluster de GPU no local","Nuvem privada","Sem servidor (Lambda / Cloud Run)","OpenTelemetry / Langfuse","Terraform / Pulumi","ArgoCD / Flux"]}},updateNote:{title:"Principais pontos de atualização para 2026",description:"Na estrutura do agente, estão surgindo SDKs/protocolos oficiais dos principais fornecedores, como o OpenAI Agents SDK, o Anthropic MCP e o Google ADK; na camada de API, o gRPC e o SSE se tornaram o padrão para a comunicação entre agentes, e a transição para o OAuth 2.1 está em andamento. No Vector DB, o Qdrant e o Turbopuffer estão ganhando atenção por sua pesquisa de alta velocidade."}},cta:{title:"Entre em contato conosco",description:`Podemos consultá-lo desde a definição dos requisitos.
303As configurações de PoC e LLM local também podem ser consideradas.`,primaryButton:"Entre em contato conosco",secondaryButton:"Consulta técnica"}},rP={title:"Perguntas frequentes",subtitle:"PERGUNTAS FREQUENTES",items:[{question:"Posso usar meus manuais e FAQs existentes sem modificações?",answer:"Sim, você pode usá-lo; ele é compatível com a maioria dos formatos, incluindo PDF, Word, Excel, HTML e arquivos de texto. Basta fazer o upload de seus documentos internos existentes como estão, e a IA aprenderá o conteúdo e o usará para responder às suas perguntas. Não é necessária nenhuma conversão de formato ou processamento especial."},{question:"É seguro usá-lo com dados que contêm informações confidenciais?",answer:"Sim, você pode usar nosso serviço com segurança. No local (servidores internos) ou em um ambiente de nuvem privada, os dados nunca são transmitidos para fora da empresa. Podemos propor configurações para atender a seus requisitos de segurança."},{question:"Quanto tempo leva para ser implementado?",answer:"Um bot de perguntas frequentes padrão pode ser implementado em apenas 2 a 4 semanas. Se for necessária a integração com sistemas existentes ou personalização avançada, estimamos de 1 a 3 meses. Também podemos começar com uma PoC (prova de conceito) em pequena escala."},{question:"Você usa APIs externas, como ChatGPT ou Claude?",answer:"A escolha está disponível mediante solicitação. Oferecemos suporte a configurações que usam APIs externas (OpenAI, Anthropic, Google, etc.) e configurações que usam LLMs de código aberto (Llama, Mistral, Qwen, etc.) que são executadas totalmente localmente. Podemos propor a melhor configuração para seus requisitos de custo, segurança e desempenho."},{question:"Qual é a precisão da resposta da IA?",answer:"Dependendo do aplicativo e da qualidade dos dados, um sistema RAG adequadamente projetado pode retornar respostas precisas a perguntas para as quais existem documentos relevantes com 90% ou mais de precisão. Mecanismos para controlar a halcinação (geração de informações errôneas) também são incorporados como padrão."},{question:"Vocês oferecem suporte a outros idiomas além do japonês?",answer:"Sim, o suporte multilíngue está disponível. Oferecemos suporte a todos os principais idiomas, inclusive japonês, inglês, chinês e coreano. Em vez de ter modelos separados para cada idioma, um único sistema pode lidar com consultas em vários idiomas."},{question:"Você pode se integrar aos sistemas existentes (CRM, ferramentas de bate-papo, etc.)?",answer:"Sim, ele pode ser integrado; ele suporta a integração da API com as principais ferramentas de negócios, como Salesforce, HubSpot, Slack, Microsoft Teams e LINE WORKS. Você pode incorporar um assistente de IA sem alterar seu fluxo de trabalho existente."},{question:"Qual é sua estrutura de taxas?",answer:"Isso depende do tamanho e dos requisitos do projeto. Embora as taxas de construção inicial e de operação mensal sejam geralmente combinadas, também aceitamos solicitações de desenvolvimento pontual ou apenas de serviços de consultoria. Informe-nos primeiro sobre seus requisitos. Nós lhe forneceremos uma estimativa aproximada."}]},oP={title:"Planos de tarifas",subtitle:"Planos de preços",description:"Planos flexíveis para se adequar ao tamanho de sua empresa",plans:[{name:"inicial",price:"29.800 ienes",period:"Mensal/usuário",description:"O melhor plano para equipes pequenas. Funções básicas de IA a um preço acessível.",features:["Até 100 chamadas por mês","Transcrição básica","Detecção de palavras-chave","Suporte por e-mail","Retenção de dados por 7 dias"],cta:"Comece a usar gratuitamente",popular:!1},{name:"profissional",price:"¥79,800",period:"Mensal/usuário",description:"Ideal para equipes em crescimento. Recursos analíticos avançados.",features:["Até 500 chamadas por mês","Transcrição de IA de alta precisão","Análise emocional","Vinculação de CRM","Suporte prioritário","Retenção de dados por 30 dias","Relatórios personalizados"],cta:"Teste gratuito de 14 dias",popular:!0},{name:"empresa",price:"Entre em contato conosco",period:"personalizado",description:"Planos com recursos completos para grandes organizações",features:["Chamadas ilimitadas","Modelo de IA dedicado","Suporte no local","Suporte dedicado","Colaboração personalizada","Garantia de SLA","Auditorias de segurança","Retenção ilimitada de dados"],cta:"Consultar a equipe de vendas",popular:!1}],faq:{title:"Perguntas frequentes",items:[{question:"Existe um teste gratuito?",answer:"Sim, uma avaliação gratuita de 14 dias está disponível para os planos Professional. Não é necessário cartão de crédito para começar."},{question:"Posso mudar meu plano a qualquer momento?",answer:"Sim, você pode fazer upgrade ou downgrade do seu plano a qualquer momento. As alterações serão aplicadas a partir do próximo ciclo de faturamento."},{question:"Existe um termo de contrato vinculado?",answer:"Os planos mensais não têm restrições de prazo de contrato. Se você optar por um contrato anual, receberá um desconto de 20%."}]}},lP={hero:{badge:"Tecnologia com tecnologia de IA",title:"Transcrição de IA",description:"Modelos avançados de aprendizado de máquina proporcionam 99,5% de precisão. A IA treinada em milhões de dados de interação com o cliente converte voz em texto.",features:["99,5% de precisão","processamento em tempo real","Suporte para mais de 40 idiomas"]},features:{title:"Funções principais",subtitle:"Mecanismo de transcrição avançado que vai além do simples reconhecimento de fala",items:[{title:"transcrição em tempo real",description:"Obtenha transcrições em tempo real durante as conversas. Obtenha insights instantâneos e nunca perca uma oportunidade de treinamento em tempo real."},{title:"Suporte multilíngue",description:"Suporta mais de 40 idiomas e abrange equipes globais com detecção automática de idiomas."},{title:"compreensão contextual",description:"Os modelos de IA treinados em terminologia específica do setor reconhecem com precisão termos técnicos e comerciais."},{title:"separação de alto-falantes",description:"Identifica e separa automaticamente diferentes locutores em uma conversa e atribui atributos claros ao locutor."},{title:"léxico personalizado",description:"Aprender os nomes exclusivos de produtos, nomes de serviços e termos técnicos de sua empresa proporciona uma precisão ainda maior."},{title:"Garantia de qualidade",description:"Verificações automáticas de qualidade e pontuação de confiabilidade garantem a transcrição da mais alta qualidade."}]},useCases:{title:"Cenas de uso",subtitle:"Setores e equipes que exigem transcrição precisa de chamadas",items:[{title:"Equipe de vendas",description:"Refletir sobre as chamadas de vendas e identificar padrões de sucesso. Melhorar a eficácia das conversas e treinar os membros da equipe com exemplos específicos."}
303,{title:"Suporte ao cliente",description:"Registrar com precisão os problemas dos clientes. Manter um histórico de suporte abrangente para garantir a qualidade consistente do serviço."},{title:"controle de qualidade",description:"Monitorar a conformidade e garantir o cumprimento do script. Manter registros detalhados para auditorias e treinamentos."}]},stats:{accuracy:{value:"99.5%",label:"precisão da transcrição"},languages:{value:"40+",label:"Idiomas suportados"},latency:{value:"<2 segundos.",label:"atraso no processamento"},availability:{value:"24/7",label:"processamento contínuo"}}},dP={hero:{badge:"Detecção inteligente",title:"Rastreamento de palavras-chave",description:"Monitore automaticamente as menções, as refutações e os tópicos importantes dos concorrentes. Nunca perca sinais importantes das conversas com os clientes.",badges:["Rastreamento da concorrência","Detecção de resposta","Análise de tópicos","palavra-chave personalizada"]},features:{title:"Rastrear informações críticas",subtitle:"Detecção e análise automáticas de palavras-chave de todas as conversas",items:[{title:"Monitoramento da concorrência",description:"Acompanhe as menções dos concorrentes para entender como os clientes em potencial comparam sua solução com as alternativas do mercado."},{title:"Detecção de resposta",description:"Identifique automaticamente as objeções e preocupações comuns e desenvolva respostas e treinamentos eficazes."},{title:"palavra-chave personalizada",description:"Defina e monitore palavras-chave e frases personalizadas específicas para sua empresa, produto ou setor."},{title:"Análise de tendências",description:"Descubra as tendências emergentes das conversas com os clientes e adapte sua estratég
303ia com base nos sinais reais do mercado."},{title:"extração de contexto",description:"Obtenha o contexto antes e depois da palavra-chave, não apenas a menção dela. Entenda não apenas o que foi dito, mas por que e como foi dito."},{title:"Pesquisa inteligente",description:"Pesquise instantaneamente todas as conversas para descobrir exatamente onde e quando um determinado tópico foi discutido."}]},applications:{title:"Cenas de uso",items:{competitive:{title:"Inteligência competitiva",description:"Conhecimento profundo do cenário competitivo:",points:["Acompanhe seus concorrentes mencionados com mais frequência","Entenda como os clientes em potencial comparam recursos e preços","Identificar suas vantagens e fraquezas competitivas","Criação de materiais anticompetitivos eficazes"]},objections:{title:"resposta a uma refutação",description:"Transforme uma refutação em uma oportunidade:",points:["Identificar as preocupações mais comuns dos clientes","Analisar as respostas de refutação dos melhores desempenhos","Manual com resposta comprovada.","Treine sua equipe com uma recuperação eficaz"]},product:{title:"Insights sobre o produto",description:"Promover o desenvolvimento de produtos por meio do feedback do cliente:",points:["Identificar os recursos mais solicitados","Compreender os desafios da funcionalidade atual","Descubra casos de uso inesperados","Priorizar o roteiro com base nas necessidades do cliente"]},compliance:{title:"Conformidade e qualidade",description:"Garantir a conformidade e a qualidade regulatórias:",points:["Monitorar as divulgações exigidas e a linguagem jurídica","Sinalizar conversas que possam violar a política","Acompanhe a conformidade do script e as práticas recomendadas","Gerar relatórios de conformidade para auditoria"]}}},advancedFeatures:{title:"Recursos avançados",items:[{title:"recuperação ambígua",description:"Detecta automaticamente variações de palavras-chave, sinônimos e termos relacionados sem configuração manual."},{title:"análise histórica",description:"Analise as tendências de palavras-chave ao longo do tempo para identificar padrões sazonais e tópicos emergentes."},{title:"Alertas em tempo real",description:"Receba notificações imediatas quando palavras-chave importantes forem mencionadas em conversas ao vivo."}]}},uP={hero:{badges:["Empresa","LLM local","Operação interna do servidor"],title:"Construção de LLM no local",description:"Opere o LLM em seu próprio ambiente, mantendo os dados fora da empresa"},mission:{title:"Visão geral do serviço de construção de LLM no local",paragraphs:["Para empresas que não podem liberar dados confidenciais fora da empresa, criamos um ambiente LLM que pode ser concluído em seus próprios servidores ou em uma nuvem privada. Essa solução é ideal para organizações que exigem gerenciamento rigoroso de informações, como instituições financeiras, instituições médicas, agências governamentais e institutos de pesquisa, porque não usa nenhuma API pública e todo o processamento é concluído na infraestrutura gerenciada pelo cliente.","Fornecemos suporte abrangente desde a seleção do modelo, construção do servidor, otimização do mecanismo de inferência e monitoramento da operação, usando modelos de peso aberto disponíveis comercialmente, como Llama 3.3, Qwen 2.5, Mistral e DeepSeek, com mecanismos de inferência de alto desempenho, como vLLM, Ollama e SGLang. Esses modelos são executados em mecanismos de inferência de alto desempenho, como vLLM, Ollama e SGLang, para fornecer um ambiente de inferência de baixa latência e alta produtividade.","Oferecemos suporte a uma ampla variedade de casos de uso, como integração com sistemas existentes, chatbots, RAGs internos, resumo de documentos e geração de código. Podemos projetar para atender aos requisitos da empresa, incluindo especialização de negócios por meio de ajuste fino do modelo, otimização de GPU NVIDIA/Apple Silicon, design multilocatário, construção de gateway de API e muito mais."]},summary:{title:"Tendências do LLM no local",paragraphs:["Em 2025-2026, a utilidade dos LLMs no local está melhorando rapidamente. O desempenho dos modelos ponderados abertos superou o dos modelos fechados, e o número de modelos oferecidos com licenças disponíveis comercialmente reduziu significativamente o obstáculo para as operações internas.","Os modelos com parâmetros de 8B a 70B atingiram um nível prático para muitas tarefas comerciais;
303 a quantização GGUF permite a inferência em alta velocidade até mesmo em GPUs de consumo.","Para os mecanismos de inferência, o Continuous Batching e o PagedAttention do vLLM aumentam drasticamente o rendimento, e o RadixAttention do SGLang acelera interações complexas de várias voltas. O Ollama se tornou o padrão de fato para ambientes de desenvolvimento local, e o llama.cpp é otimizado pela Apple Silicon para inferência rápida em Macs da série M.","Na adoção corporativa, além da soberania e da conformidade dos dados, a otimização de custos a longo prazo (afastando-se do faturamento de API pago conforme o uso) está se tornando cada vez mais uma motivação para a adoção. As configurações híbridas (local para processamento sensível e API em nuvem para processamento de uso geral) tornaram-se uma opção comum."],icons:[{label:`Privado
304Nuvem`},{label:`Dados
305Soberania`},{label:`Custo
306Otimização`},{label:`Empresa
307Segurança`}]},features:{title:"Recursos de design e desenvolvimento",subtitle:"Design e desenvolvimento",items:[{title:"Projeto de infraestrutura e otimização de GPU",description:"Projete a configuração de hardware ideal para sua carga de trabalho e seu orçamento, incluindo NVIDIA A100/H100, RTX 4090/5090 e Apple Silicon (M2 Ultra/M3 Max/M4 Max), e crie um ambiente de inferência que aproveite ao máximo o desempenho da GPU por meio da otimização CUDA, MPS e Metal. Otimização de CUDA, MPS e Metal para maximizar o desempenho da GPU."},{title:"Seleção e otimização de modelos",description:"Selecione o modelo ideal entre Llama, Qwen, Mistral, DeepSeek, etc., considerando as características da tarefa, os requisitos de linguagem e as restrições de recursos. A quantização (GGUF/AWQ/GPTQ), a otimização do cache KV e o ajuste do processamento em lote são usados para obter precisão e taxa de transferência."},{title:"Construção do mecanismo de inferência",description:"Selecione e crie mecanismos de inferência, como vLLM, SGLang, Ollama, TGI, etc., de acordo com seu aplicativo, e aplique as tecnologias mais recentes, como Continuous Batching, Speculative Decoding e Prefix Caching, para fornecer APIs de inferência de baixa latência e alta produtividade. Fornecemos APIs de inferência de baixa latência e alta taxa de transferência."},{title:"Operação, monitoramento e segurança",description:"Implemente o monitoramento de métricas inferenciais com o Prometheus/Grafana, controle de acesso com gateway de API, logs de auditoria, dimensionamento automático e recuperação de falhas. Crie um ambiente de operação de produção que atenda aos requisitos de segurança da empresa."}]},techStack:{title:"Pilha de tecnologia: LLM no local",subtitle:"Plataforma e tecnologia",categories:{openWeightModels:{title:"Modelos de peso aberto",items:["Llama 3.3 70B / 8B","Qwen 2.5 72B / 32B / 7B","Mistral Large / Nemo","DeepSeek V3 / R1","Gemma 2 27B / 9B","Phi-4","Comando R (Cohere)"]},japaneseModels:{title:"Modelo específico do Japão",items:["ELYZA-japonês-Llama-2","Andorinha 70B / 13B","Japonês-Llama-3","Qwen-2.5-Japanese","Karakuri-LM"]},inferenceEngine:{title:"Mecanismo de inferência",items:["vLLM (Loteamento Contínuo)","SGLang (RadixAttention)","Ollama (desenvolvimento local)","llama.cpp (Apple Silicon)","TGI (Hugging Face)","TensorRT-LLM (NVIDIA)","ExLlamaV2 (especialização em quantização)"]},quantization:{title:"Quantização",items:["GGUF (padrão llama.cpp)","AWQ (4 bits de alta precisão)","GPTQ (otimização de GPU)","bits e bytes (8 bits/4 bits)","EETQ (Quantização de Eficiência Eficiente)"]},hardware:{title:"Hardware",items:["NVIDIA H100 / A100","NVIDIA L40S / A10G","RTX 4090 / 5090","Apple Silicon M2 Ultra","Apple Silicon M3/M4 Max","AMD MI300X"]}
307,infrastructure:{title:"Infraestrutura",items:["Docker / Kubernetes","Servidor NVIDIA Triton","Gateway de API (Kong / Envoy)","Prometheus / Grafana","Nuvem privada (VMware / OpenStack)","Suporte ambiental com isolamento acústico"]}},updateNote:{title:"Principais pontos de atualização para 2026",description:"Nos modelos de peso aberto, o Llama 3.3 atinge o desempenho de uso geral da classe GPT-4 e melhora muito o desempenho do idioma japonês; a série Qwen 2.5 expande a escolha com uma variedade de tamanhos e desempenho bem equilibrado; o DeepSeek V3/R1 atrai a atenção por seu desempenho de custo de inferência; e os mecanismos de inferência vLLM 2.0 Chunked Prefill e SGLang's RadixAttention aceleram o diálogo de várias voltas. No mecanismo de inferência, o Chunked Prefill do vLLM 2.0 e o RadixAttention da SGLang aceleram as interações de várias voltas; a otimização do llama.cpp da Apple Silicon torna prática a inferência do modelo 70B no M4 Max; e a tecnologia Quantization oferece precisão de 4 bits e alto desempenho. As técnicas de quantização alcançaram precisão de 4 bits e velocidade de inferência, e o GGUF tornou-se o formato padrão de fato."}},cta:{title:"Entre em contato conosco",description:`Podemos consultá-lo desde a definição dos requisitos.
308As configurações de PoC e LLM local também podem ser consideradas.`,primaryButton:"Entre em contato conosco",secondaryButton:"Consulta técnica"}},cP={hero:{badges:["Empresa","RAG","geração de extensões de pesquisa"],title:"Desenvolvimento Vector / RAG",description:"Criar um sistema RAG para vincular o conhecimento interno ao LLM"},mission:{title:"Visão geral dos serviços de desenvolvimento da Vector / RAG",paragraphs:["Criaremos um sistema RAG (geração de extensão de pesquisa) que permite que os funcionários pesquisem e façam perguntas em linguagem natural, vinculando os ativos de conhecimento acumulados na empresa com o LLM. Integramos várias fontes de dados, como manuais, atas, documentos técnicos, perguntas frequentes, histórico do Slack, Confluence, SharePoint etc. para criar um ambiente em que o conhecimento organizacional possa ser utilizado imediatamente.","Maximizamos a precisão da pesquisa e a qualidade da resposta aplicando as tecnologias mais recentes, como a pesquisa híbrida (pesquisa vetorial + pesquisa de palavras-chave), reanálise, chunking hierárquico, filtragem de metadados etc., além da pesquisa simples de documentos. Indicamos claramente a fonte da resposta para suprimir a halcinação e garantir a confiabilidade.","Oferecemos suporte a vários ambientes, incluindo AWS, GCP, Azure e no local, e nos integramos à infraestrutura de autenticação e ao gerenciamento de autoridade existentes. Fornecemos suporte consistente para manter a atualização dos dados (atualizações diferenciais e reindexação automática), analisando os registros de uso e melhorando continuamente a precisão."]},summary:{title:"Tendências tecnológicas do RAG",paragraphs:['Entre 2025 e 2026, a tecnologia RAG está entrando na fase de "implementação básica para qualidade de produção". Além da pesquisa vetorial simples, a Pesquisa Híbrida, que combina vários métodos de pesquisa, o Reranking, que reordena os resultados da pesquisa, e a Decomposição de Consultas, que decompõe e processa perguntas complexas, tornaram-se configurações padrão.',"As estratégias de fragmentação também evoluíram, com a fragmentação hierárquica que leva em conta a estrutura do documento, a sobreposição de blocos e a fragmentação multimodal que processa tabelas e figuras separadamente, tudo isso contribuindo para melhorar a precisão. O Contextual Retrieval (adição de informações contextuais aos blocos) também foi amplamente reconhecido como eficaz.","Para a seleção do banco de dados vetorial, além dos serviços gerenciados, como Pinecone, Weaviate, Qdrant e Milvus, o PostgreSQL pgvector e o FAISS local oferecem uma ampla gama de opções para atender às suas necessidades. Os modelos de incorporação também estão disponíveis, incluindo text-Embedding-3-large, Cohere Embed v3 e modelos multilíngues.",'Em implementações empresariais, a vinculação de gerenciamento de autoridade (ACL), o mascaramento de PII, os registros de auditoria e o design multilocatário são requisitos essenciais, e é necessário passar de um "PoC funcional" para um "sistema de produção pronto para produção".'],icons:[{label:`Híbrido
309Pesquisa`},{label:`Multimodal
310RAG`},{label:`Agêntico
311RAG`},{label:`Empresa
312Segurança`}]},features:{title:"Recursos de design e desenvolvimento",subtitle:"Design e desenvolvimento",items:[{title:"Pipeline de coleta e pré-processamento de dados",description:"Extração e limpeza de dados de PDF, Word, Excel, HTML, Markdown, Slack, Confluence, SharePoint, etc. Suporte multimodal, incluindo OCR, análise de estrutura de tabela e geração de legenda de imagem. Mantenha o frescor com atualizações diferenciais e execução programada."},{title:"Projeto de sistema de busca de alta precisão",description:"Construa uma pesquisa de alta precisão combinando Vector Search + BM25 Hybrid Search, Reranking by Cohere Rerank / Cross-Encoder, e Query Expansion and Decomposition. A filtragem de metadados e o controle de acesso baseado em permissão também são implementados."},{title:"Geração de respostas e controle de qualidade",description:"Qualidade de resposta aprimorada com otimização de contexto, prompts de poucos disparos e inferência de cadeia de pensamento. O esclarecimento da fonte, a exibição da pontuação de confiança e a detecção de halcinação são implementados para garantir a confiabilidade do uso comercial."},{title:"Ciclo de operação e aprimoramento",description:"Fornecemos suporte operacional, incluindo análise de registros de uso, monitoramento da taxa de acertos de pesquisa e da satisfação com as respostas, melhoria contínua por meio de ciclos de feedback, infraestrutura de testes A/B, atualizações de modelos de incorporação e revisões de estratég
312ias de fragmentação."}]},techStack:{title:"Pilha de tecnologia: Vector / RAG",subtitle:"Plataforma e tecnologia",categories:{embeddingModels:{title:"Modelos de incorporação",items:["OpenAI text-embedding-3-large","Cohere Embed v3","IA do Voyage","Jina Embeddings v3","BGE-M3 (multilíngue)","multilingual-e5-large","Modelos específicos do Japão"]},vectorDatabases:{title:"Bancos de dados vetoriais",items:["Pinecone (gerenciado)","Weaviate (Pesquisa híbrida)","Qdrant (alto desempenho)","Milvus (grande escala)","Chroma (leve)","PostgreSQL pgvector","FAISS (local)"]},chunking:{title:"Chunking e processamento",items:["fragmentação hierárquica","Agrupamento semântico","Sobreposição de blocos","Janela de frases","Recuperação contextual","Processamento de tabelas e gráficos","Suporte multimodal"]},search:{title:"Busca e recuperação",items:["Pesquisa híbrida (Vector + BM25)","Cohere Rerank","Reranking entre codificadores","Expansão e decomposição de consultas","HyDE (Hypothetical Document Generation)","Recuperação de consulta automática","Recuperação de várias consultas"]}},updateNote:{title:"Principais pontos de atualização para 2026",description:"No modelo Embedding, o text-Embedding-3-large e o Cohere Embed v3 tornaram-se o padrão da empresa, e o desempenho do idioma japonês melhorou significativamente; o Contextual Retrieval provou ser eficaz, e a adição de contexto aos blocos tornou-se o método padrão. O Hybrid Search + Reranking tornou-se uma configuração obrigatória para a pesquisa, reduzindo o número de configurações simples de pesquisa vetorial, e o Agentic RAG (agentes selecionam dinamicamente as estratég
312ias de pesquisa) está sendo usado na prática. No aspecto operacional, a ênfase está sendo colocada no estabelecimento de ciclos de medição e aprimoramento da qualidade usando estruturas de avaliação RAG (RAGAS, LangSmith)."}},cta:{title:"Entre em contato conosco",description:`Podemos consultá-lo desde a definição dos requisitos.
313As configurações de PoC e LLM local também podem ser consideradas.`,primaryButton:"Entre em contato conosco",secondaryButton:"Consulta técnica"}},mP={hero:{badges:["Pilha completa","Integração do LLM","Projeto da API"],title:"Desenvolvimento de aplicativos de IA",description:"Projetar e criar aplicativos práticos que aproveitem o LLM"},mission:{title:"Visão geral do serviço de desenvolvimento de aplicativos de IA",paragraphs:["Fornecemos projeto e desenvolvimento de aplicativos de IA que criam valor comercial analisando dados adquiridos de APIs externas com o LLM, vinculando APIs a diversas fontes de dados, como CRM, ERP, SaaS, sensores de IoT e mídias sociais, e alimentando o LLM com os dados adquiridos em tempo real. Possibilitamos a análise avançada de dados que não pode ser obtida com ferramentas de BI convencionais, como a geração de relatórios analíticos usando linguagem natural, detecção de anomalias, previsão de tendências e classificação automática.","Não apenas a simples integração de API, mas também a integração de várias fontes de dados, a limpeza de dados e a conversão para um formato que seja fácil de ser interpretado pelo LLM por meio de processamento estruturado. A engenharia imediata maximiza a precisão da análise e gera resultados especializados para os requisitos de negócios. Criamos aplicativos práticos que combinam dados e IA, como dados de vendas para prever negociações comerciais, registros de suporte ao cliente para realizar análises de VoC e dados de sensores para fornecer recomendações de manutenção de equipamentos.","Oferecemos suporte a uma variedade de interfaces, como aplicativos da Web, aplicativos móveis, integração Slack/Teams e processamento periódico em lote. Fornecemos suporte consistente desde a definição de requisitos até o design da API, a implementação da integração do LLM e a operação de produção."]},summary:{title:"Tendências no desenvolvimento de aplicativos de IA",paragraphs:['De 2025 a 202
3136, o desenvolvimento de aplicativos de IA está entrando em uma fase prática baseada em "integração de API x análise de LLM". A análise de dados não estruturados e a geração de insights em linguagem natural, que não podiam ser tratados por ferramentas e painéis de BI tradicionais, estão começando a ser incorporados aos sistemas corporativos.',"Destaca-se o amadurecimento da funcionalidade de saída estruturada do LLM, que permite o controle rigoroso da saída em conformidade com o esquema JSON, tornando realidade um pipeline automatizado de ponta a ponta, em que os dados adquiridos por meio de APIs são analisados pelo LLM e os resultados são alimentados diretamente nos sistemas subsequentes. A execução em vários estágios da Chamada de Função permite que a coleta, a integração e a análise de dados em várias APIs sejam tratadas em um único fluxo de trabalho.","Na infraestrutura de processamento de dados, o Polars surgiu como um padrão para processamento de alta velocidade e, em combinação com o processamento de streaming, facilita a análise em tempo real.","Nas implementações corporativas, as necessidades mudaram do desenvolvimento pontual de PoC para um projeto dimensionável para a operação de produção, exigindo um projeto de arquitetura abrangente que inclua otimização de custos, tratamento de erros e suporte a registros de auditoria."],icons:[{label:`Agêntico
314IA`},{label:`MCP
315Protocolo`},{label:`Múltiplos
316Agente`},{label:`Humano em
317-no circuito`}]},features:{title:"Recursos de design e desenvolvimento",subtitle:"Design e desenvolvimento",items:[{title:"Integração de API e projeto de coleta de dados",description:"Criamos uma infraestrutura de coleta de dados compatível com vários protocolos, como API REST, GraphQL, WebSocket e Webhook. Projetamos um pipeline de aquisição de dados estável implementando processos de autenticação (OAuth, chave de API, JWT), limitação de taxa e mecanismos de repetição. Também oferecemos suporte à integração de dados, agendamento e aquisição diferencial de várias APIs."},{title:"Pré-processamento e estruturação de dados",description:"Converte dados brutos em um formato que pode ser analisado com eficiência pelo LLM, incluindo análise de JSON, limpeza de dados, normalização e processamento de valores ausentes, e realiza a segmentação e o resumo ideais dos dados, considerando as restrições da janela de contexto. A atribuição de metadados garante a rastreabilidade dos resultados da análise."},{title:"Análise do LLM e projeto imediato",description:"Maximize a precisão da análise de dados projetando modelos de prompt específicos para suas necessidades comerciais. Criamos pipelines de análise para classificação, sumarização, análise de sentimentos, detecção de anomalias, geração de previsões, etc. Utilizamos Function Calling e Structured Output para gerar resultados em um formato que pode ser facilmente integrado a sistemas subsequentes."},{title:"Implementação e operação de aplicativos",description:"Fornecemos resultados de análise por meio de várias interfaces, incluindo FastAPI, aplicativos da Web usando Next.js, etc., Slack/Teams Bot e execução em lote programada. Painéis, alertas de notificação e geração automática de relatórios são implementados e entregues em um formato que os usuários corporativos podem utilizar imediatamente. Também fornecemos monitoramento operacional, otimização de custos e melhoria contínua."}]},techStack:{title:"Pilha de tecnologia: Desenvolvimento de aplicativos de IA",subtitle:"Plataforma e tecnologia",categories:{apiIntegration:{title:"Integração de API",items:["REST / GraphQL / WebSocket","OAuth 2.1 / API key / JWT","Webhook / Sondagem","Fluxo de ar Apache / Prefect","Aipo / Temporal","solicitações / httpx / aiohttp","Limite de taxa / Repetição","Validação de dados (Pydantic)"]},dataProcessing:{title:"Processamento de dados",items:["Pandas / Polares","Analisador JSON / JSONL","Pipeline de limpeza de dados","Apache Spark (processamento em grande escala)","dbt (conversão de dados)","Grandes expectativas","Lago Delta / Iceberg","Streaming (Kafka/Flink)"]}
317,llmCloud:{title:"LLM em nuvem",items:["OpenAI GPT-4o / GPT-4.1","Claude 3.5 / Claude 4","Gemini 2.0 / Gemini 2.5","Comando R+ (Cohere)","Mistral Large"]},llmLocal:{title:"LLM local",items:["Llama 3.3 / Llama 4","Mistral / Mixtral","Qwen 2.5 / Qwen 3","DeepSeek V3 / R1","Gemma 2 / Gemma 3","Phi-4","ELYZA / Swallow (especializada em japonês)","Comando R (Cohere)"]},inference:{title:"Inferência / Estrutura",items:["vLLM / SGLang","Ollama / llama.cpp","Proxy LiteLLM","Chamada de função","Saída estruturada","Mecanismo de modelo de prompt","LangChain / LlamaIndex","Pipeline de análise proprietária"]},application:{title:"Camada de aplicativos",items:["FastAPI / Litestar","Next.js / React","Slack SDK / Teams SDK","Streamlit / Gradio","Trabalhos agendados (Cron / Cloud Scheduler)","PostgreSQL / MongoDB","Redis (Cache / Fila)","Docker / Kubernetes"]}},updateNote:{title:"Principais pontos de atualização para 2026",description:"Na área de análise do LLM, a funcionalidade de Saída Estruturada do GPT-4.1 e do Claude 4 amadureceu para padronizar o controle de saída estrito em conformidade com o esquema JSON, e a execução em vários estágios da Chamada de Função permite a coleta e a análise de dados complexos em várias APIs em um único pipeline. A execução em vários estágios da Chamada de Função permite a coleta e a análise de dados complexos em várias APIs em um único pipeline. No processamento de dados, o Polars tornou-se uma alternativa estabelecida ao Pandas para o processamento em alta velocidade e, em combinação com o processamento de streaming, facilita a construção de uma infraestrutura de análise em tempo real. Na camada de aplicativos, a integração de ferramentas externas usando o MCP tornou-se comum, acelerando o desenvolvimento de aplicativos agênticos nos quais os LLMs chamam APIs de forma autônoma para adquirir e analisar dados."}},cta:{title:"Entre em contato conosco",description:`Podemos consultá-lo desde a definição dos requisitos.
318As configurações de PoC e LLM local também podem ser consideradas.`,primaryButton:"Entre em contato conosco",secondaryButton:"Consulta técnica"}},pP={seo:FL,header:WL,hero:qL,mission:UL,businessServices:_L,features:HL,businessProcess:$L,story:QL,contact:JL,footer:ZL,cookiePolicy:XL,about:YL,portfolio:eP,common:aP,privacyPolicy:nP,termsOfService:tP,weatherMap:iP,agentDevelopment:sP,faq:rP,pricing:oP,aiTranscription:lP,keywordTracking:dP,onPremiseLLM:uP,vectorRAG:cP,aiAppDevelopment:mP},gP={home:{title:"KI-gestützte Lösungsplattform - telet.ai",description:"Verwandeln Sie Ihre Kundengespräche mit KI-gestützter Anrufanalyse. Erhalten Sie Echtzeit-Einblicke, Stimmungsanalysen und Leistungsüberwachung, um die Ergebnisse Ihres Teams zu verbessern."},about:{title:"Organisationsinformationen - telet.ai",description:"Learn about telet.ai's mission to transform customer conversations with AI. Meet our team and explore our journey."},privacy:{title:"Datenschutzerklärung - telet.ai",description:"Review telet.ai's privacy policy to understand how we handle your data and protect your privacy."},terms:{title:"Nutzungsbedingungen - telet.ai",description:"Read telet.ai's terms of service for using this website and contacting us for consultations."},cookies:{title:"Cookie-Richtlinie - telet.ai",description:"Learn how telet.ai uses cookies and similar technologies (Cloudflare and Google Analytics)."},portfolio:{title:"Portfolio - telet.ai",description:"Entdecken Sie unser Portfolio an KI-Lösungen, die darauf ausgelegt sind, Ihre Geschäftsabläufe und Kundenerfahrungen zu verbessern."},agentDevelopment:{title:"Entwurf und Entwicklung von KI-Agenten für Unternehmen - telet.ai",description:"Entwerfen und erstellen Sie produktionsreife KI-Agenten, die auf Ihre Arbeitsabläufe, Tools und Compliance-Anforderungen zugeschnitten sind."},onPremiseLLM:{title:"Lokale LLM-Operationen - telet.ai",description:"Nutzen Sie moderne LLMs in Ihrer Umgebung für eine starke Datenkontrolle, vorhersehbare Kosten und Inferenz mit geringer Latenz."},vectorRAG:{title:"Vektor-RAG & Index-Design - telet.ai",description:"Entwickeln Sie auf jeden Arbeitsablauf zugeschnittene Pipelines und Indizes für die Designabfrage, um fundierte Antworten zu verbessern."},aiAppDevelopment:{title:"Entwicklung von KI-Anwendungen - telet.ai",description:"Entwickeln Sie praktische Anwendungen auf Basis von LLMs – integriert in Ihre APIs, Daten und Geschäftsabläufe."}},hP={brand:"telet.ai",nav:{services:"Dienstleistungen",portfolio:"Portfolio",about:"Organisationsinformationen",contact:"Kontakt"}},fP={brandName:"telet.ai",tagline:"Multi AI-Kommunikationen",badge:"KI-gestützte Anrufintelligenz",title:{line1:"Lokal und defensiv,",line2:"Expandieren Sie in der Cloud,",line3:"Automatisiert durch Agent."},description:"Die Edge-Inferenz in SLM gewährleistet die Datenhoheit, und die Cloud-Integration in LLM skaliert die Verarbeitungsleistung ins Unendliche; die Einführung der Agentic AI-Architektur zeigt erste Ergebnisse bei führenden Unternehmen."},kP={badge:"Unser Auftrag",title:"LLM besser zugänglich machen",paragraphs:['Können Sie wirklich so weit gehen?" --Diese Überraschung ist unser Ziel.','Das Potenzial der groß angelegten Sprachmodellierung (LLM) wird täglich größer. Wir wollen jedoch Barrieren wie "Ich habe Angst, vertrauliche Daten an externe APIs zu senden", "Fortgeschrittene KI-Anwendungen sind nur für große Unternehmen" und "Die Kosten für die Implementierung lohnen sich nicht" abbauen.',"Wir sind darauf spezialisiert, lokale LLMs zu erstellen, die innerhalb Ihrer Umgebung abgeschlossen werden. Hochsensible Kundendaten können sicher genutzt werden, ohne der Außenwelt ausgesetzt zu sein. Wir können die Vorteile der K
318I maximieren und gleichzeitig die Datensicherheit gewährleisten.","Sie reicht von der routinemäßigen Dokumentenerstellung und Datenorganisation bis hin zu speziellen Analysen und Entscheidungshilfen. Unsere firmeneigene Agententechnologie bietet eine Genauigkeit, die mit API-Modellen vergleichbar ist.",'Das LLM ersetzt den Menschen nicht. Es ist ein leistungsfähiges Instrument, das es den Menschen ermöglicht, mehr Kreativität, Urteilsvermögen und Fachwissen einzusetzen. Wir machen die Technologie vom Besonderen zum Alltäglichen - eine echte "Verbraucherisierung" der Technologie.',"Sie können sich gerne mit uns beraten. Wir werden gemeinsam mit Ihnen herausfinden, was wir tun können."],animation:{label:"LLM",sublabel:"Technologie"}},bP={title:"Dienstleistungen",subtitle:"Dienstleistungen für Unternehmen",services:[{title:"Design und Entwicklung von KI-Agenten für Unternehmen",titleEn:"KI-Agent für Unternehmen",description:"Entwurf und Entwicklung von KI-Agenten, die für Geschäftsanforderungen, interne Regeln und Datenumfang optimiert sind. Unterstützung vom externen API-Typ LLM bis zum lokalen LLM.",badges:["Individuelles Design","LLM-kompatibel","wirtschaftliche Spezialisierung"],link:"Einzelheiten."},{title:"LLM-Server auf Abruf",titleEn:"LLM-Server vor Ort",description:"Führt LLM im Umfang von 7B bis 120B innerhalb des dedizierten Servers des Unternehmens aus. Bietet eine sichere und flexible LLM-Nutzungsumgebung und vermeidet das Risiko einer externen Datenübertragung.",badges:["7B-120B unterstützt","API KEY ausgestellt","Sicherheit Design"],link:"Einzelheiten."},{title:"Vektor-RAG und Indexgestaltung",titleEn:"Vector RAG Architektur",description:"Trennen und optimieren Sie RAG-Daten nach Geschäftsinhalten und Analyselogik. Indexdesign für eine schnelle und genaue Suche.",badges:["Index-Trennung","Hochgeschwindigkeitssuche","mehrsprachige Unterstützung"],link:"Einzelheiten."},{title:"AI-Anwendungsentwicklung",titleEn:"AI-Anwendungsentwicklung",description:"Entwicklung praktischer KI-Anwendungen, bei denen die Analyse und Generierung durch LLM im Mittelpunkt steht, unter Nutzung vorhandener APIs und externer Daten.",badges:["API-Verknüpfung","LLM-Analyse","Integriertes Design"],link:"Einzelheiten."}]},yP={title:"Leistungsprojekte mit KI-Technologie",subtitle:"KI-Entwicklungserfahrung in einer Vielzahl von Bereichen, darunter mehrsprachige Assistenten, Wettervorhersage, lokale LLM und Sicherheitsüberwachung.",viewDetails:"Details ansehen →.",items:[{title:"AI Mehrsprachiger Assistent",description:"Mehrsprachiger Chat-Assistent von RAG + LLM. Hochpräzise Antworten auf Anfragen in mehreren Sprachen, darunter Japanisch, Englisch und Chinesisch."},{title:"Wettervorhersagesystem",description:"Lernt Wetterdaten und erstellt Echtzeitvorhersagen. Hochpräzise Vorhersagen werden durch den Einsatz von Zeitreihen-Mustererkennung und RAG erzeugt, um nach ähnlichen Mustern in der Vergangenheit zu suchen."},{title:"Interner Server / On-Prem Local LLM",description:"Wir liefern auf Ihre Geschäftsabläufe zugeschnittene KI, die in Ihrem Unternehmen sofort einsatzbereit ist, mit Open WebUI als gemeinsamen Einstiegspunkt, schnellen Inferenzspuren mit Ollama/MLX und vollständig getrennten Datendomänen für jede UID. Interne Dokumente werden in einem RAG mit englischer Einbettung und automatischer japanischer Abfrageübersetzung erfasst, und Business Skills wie Nachrichtenzusammenfassung, Dokumentenorganisation und Routineaufgaben werden sicher nebeneinander ausgeführt. Das Skill-Ausführungssystem ist als OpenClaw-Container isoliert und durch drei Schichten von Cloudflare Edge und lokalem Nginx geschützt. Wir bieten umfassende Unterstützung bei der Modellauswahl, dem Skill-Design und den Betriebsrichtlinien und machen die dedizierte KI Ihres Unternehmens vom ersten Tag an einsatzfähig."},{title:"Interplanetare Orbital-Ankunftsvorhersage (AI)",description:"Beziehen Sie Planetendaten von der NASA-API und interpretieren Sie Bahnberechnungen im LLM. Erzeugt Berichte über Startfenster, benötigte Zeit und Treibstoffeffizienz."}
318,{title:"AI-Analyse von Immobiliendaten",description:"Sammeln Sie Immobilieninformationen durch Web Scraping und analysieren Sie diese mit LLM + Python. Automatische Generierung von Preistrends, Marktprognosen und Investitionsrenditen."},{title:"Wahrsagerei AI (Vier Säulen Wahrsagerei)",description:"Reproduzieren Sie die Logik der Vier Säulen des Schicksals in Python und interpretieren Sie sie mit LLM. Erfassen Sie Koordinaten und Zeit von der Astronomie-API für eine personalisierte Einschätzung des Glücks und der Kompatibilität."},{title:"Google Workspace AI integration",description:"LLM-Integration mit Gmail, Drive, Kalender, etc. KI hilft bei der E-Mail-Zusammenfassung, Dateisuche und Terminplanung."},{title:"World NEWS Mehrsprachigkeit",description:"Sammlung von Weltnachrichten in Echtzeit, übersetzt und zusammengefasst in mehreren Sprachen von LLM. Natürliche Übersetzung und Generierung von Zusammenfassungen auf der Grundlage eines kontextuellen Verständnisses."},{title:"Sicherheitsprotokollüberwachung AI Manager",description:"Echtzeitüberwachung von Sicherheitsprotokollen, Erkennung und Analyse von Bedrohungen durch LLM und sofortige Warnmeldungen durch Abgleich mit früheren Angriffsmustern durch RAG."}]},vP={title:"Wie man mit dem Projekt fortfährt",headline:"Alles, was Sie brauchen, ist eine Vision.",paragraphs:['Vorbei sind die Zeiten, in denen Sprachunterschiede ein Geschäftshindernis darstellten. Obwohl wir KI-Übersetzung verwenden, können wir Geschäftsverhandlungen und Entwicklungen in 14 Sprachen durch unseren einzigartigen Arbeitsablauf abwickeln, der die gemeinsame Nutzung von Bildern in vollem Umfang nutzt. Selbst komplexe Spezifikationen können anhand von Beispielbildern überprüft werden, um Missverständnisse zu vermeiden. Das Einzige, was zählt, ist das, was Sie schaffen wollen".',"Das Projekt beginnt mit einer ersten Anhörung in der Geschäftsanwendung. Nach einem allgemeinen Austausch über die Visionen des Kunden und sein Gespür für die Probleme wird ein NDA (Non-Disclosure Agreement) unterzeichnet. Nachdem wir eine Umgebung geschaffen haben, in der vertrauliche Informationen vertraulich besprochen werden können, führen wir ausführliche Interviews und bestätigen die Anforderungen. Auf der Grundlage des Inhalts erstellen wir einen Vorschlag und bestätigen die Richtung des Projekts anhand von Beispielbildern. Wenn wir uns einig sind, erstellen wir die Spezifikationen und beginnen mit der Entwicklung.","Dieser Ablauf ist nur eine allgemeine Einführung. Wir werden uns flexibel an Ihre Situation und Ihren Zeitplan anpassen. Wo auch immer Sie sich auf der Welt befinden, selbst wenn Sie nicht dieselbe Sprache sprechen, werden Bilder und KI Ihre Kommunikation unterstützen. Warum schließen Sie sich nicht uns an, um den Markt zu betreten, den noch niemand erschlossen hat? Lassen Sie telet.ai Ihr Partner sein, um Ihren Ideen Gestalt zu geben."],cards:[{title:"Anhörung / NDA",description:"Nach der ersten Anhörung per E-Mail wird eine Geheimhaltungsvereinbarung unterzeichnet. Sie können uns unbesorgt Einzelheiten mitteilen."},{title:"Planung & CA",description:"Es werden Vorschläge und Beispielbilder bereitgestellt. 14 Sprachen werden unterstützt, so dass Sie ohne Sprachbarrieren arbeiten können."},{title:"Probenahme & Start",description:"Wir werden ein Lastenheft erstellen und nach Vereinbarung die Arbeit aufnehmen."},{title:"Entwicklung, Prüfung und Betrieb",description:"Zügige Umsetzung durch agile Entwicklung. Wir bieten durchgängige Unterstützung vom Testen bis zur Betriebsunterstützung."}]},AP={badge:"Fallstudien",title:"AI-Einführungsgeschichte",items:[{title:"Lösungen für Unternehmenseffizienz und Kostenreduzierung",subtitle:"Reduzieren Sie die tägliche Arbeitsbelastung und schaffen Sie ein Umfeld, in dem Sie sich auf Ihr Kerngeschäft konzentrieren können.",description:'Viele kleine und mittlere Unternehmen (KMU) haben mit Arbeitskräftemangel und Einstellungsschwierigkeiten zu kämpfen. Selbst wenn neues Personal eingestellt wird, sind die Schulungskosten hoch und es gibt Probleme mit der Mitarbeiterbindung. Unsere KI-Lösung unterstützt alltägliche Aufgaben wie die Automatisierung der Budgetverwaltung, die Dateneingabe und -organisation, die interne Suche nac
318h Dokumenten und die automatische Erstellung von Berichten und Dokumenten. KI-Assistenten erledigen Routineaufgaben, die früher viel Zeit in Anspruch nahmen, 24 Stunden am Tag, 365 Tage im Jahr, ohne Fehler. Unternehmen, die KI eingeführt haben, konnten ihre Arbeitszeiten deutlich reduzieren. Von der "Aufstockung der Humanressourcen" bis zur "Zusammenarbeit mit KI". Wir werden unser Bestes tun, um die Reform des Arbeitsstils in Ihrem Unternehmen zu unterstützen.'},{title:"Automatisierung der Kundenbetreuung",subtitle:"Der 24-Stunden-Service verbessert die Kundenzufriedenheit und senkt die Arbeitskosten.",description:"KI-Chatbots bieten automatische Antworten auf häufig gestellte Fragen, primäre Beantwortung und Sortierung von Anfragen sowie Echtzeit-Antworten in mehreren Sprachen. Echtzeit-Antworten in mehreren Sprachen. Menschliche Mitarbeiter können sich auf komplexe Fälle konzentrieren und die Qualität des Kundenservices verbessern. Heben Sie Ihre Servicequalität mit KI-Kundensupport auf die nächste Stufe."},{title:"Wissen und Dokumentennutzung AI",subtitle:"Interne Wissensbestände in einer Form, die von jedem sofort genutzt werden kann",description:'Wo ist das Handbuch?" Es gibt Informationen, die nur der Vorgänger kennt" - unpersönliches Wissen hemmt das Wachstum eines Unternehmens. Unsere RAG-Technologie (Search Extension Generation) ermöglicht es Ihnen, notwendige Informationen aus internen Handbüchern, FAQs und früheren Dokumenten abzurufen, indem Sie einfach Fragen in natürlicher Sprache stellen. Sie rationalisiert die Schulung neuer Mitarbeiter, digitalisiert das implizite Wissen von Veteranen und ermöglicht den abteilungsübergreifenden Wissensaustausch. Vorhandene Dokumente können unverändert weiterverwendet werden, so dass keine neuen Dokumente erstellt werden müssen.'},{title:"Bildanalyse-KI für die medizinische und pflegerische Versorgung",subtitle:"Wachsame Augen, 24-Stunden-Unterstützung durch KI",description:"Im medizinischen und pflegerischen Bereich ist es notwendig, eine große Anzahl von Patienten und Nutzern mit wenig Personal zu überwachen. Unsere Bild-/Videoanalyse-KI erkennt Anomalien in Echtzeit aus Kamerabildern. Sie erkennt automatisch Infektionskrankheiten, indem sie Fieber feststellt, alarmiert sofort, wenn ein Patient stürzt oder umherirrt, und erkennt Veränderungen des körperlichen Zustands durch Analyse der Mimik. Durch die Verringerung der Belastung durch nächtliche Patrouillen, die schnelle Reaktion auf Notfälle und die Automatisierung von Aufzeichnungsaufgaben kann sich das Personal auf seine primären Pflegeaufgaben konzentrieren. Zur Wahrung der Privatsphäre ist auch eine Vor-Ort-Installation möglich."}]},xP={title:"Kontakt",description:"Wir können Sie bereits in der Phase der Bedarfsplanung beraten und auch PoC- und lokale LLM-Konfigurationen in Betracht ziehen.",openForm:"Offene Form",closeForm:"Schließen Sie das Formular",form:{name:"Ihr Name",namePlaceholder:"Taro Yamada",email:"E-Mail Adresse",emailPlaceholder:"[email protected]",subject:"Thema",subjectPlaceholder:"Gegenstand Ihrer Anfrage",message:"Nachricht",messagePlaceholder:"Bitte füllen Sie Ihre Anfrage aus",required:"*",submit:"Senden Sie",submitting:"Ich schicke...",turnstileMessage:'Die Genehmigung "Ich bin kein Roboter" ist für die Einreichung erforderlich.',turnstileError:"Die Sicherheitsautorisierung konnte nicht geladen werden. Bitte neu laden.",errorRetry:"Bitte versuchen Sie es erneut."}},LP={brand:"telet.ai",tagline:"Multi AI-Kommunikationen",description:"Innovieren Sie Ihr Unternehmen mit KI-Agenten. Schaffen Sie Mehrwert durch Dialog.",sections:{product:{title:"Produkt",features:"Merkmal",benefits:"Einführung",testimonials:"Erfahrungsberichte von Kunden"},services:{title:"Dienst",agentDev:"Design und Entwicklung von KI-Agenten für Unternehmen",onPremise:"LLM-Server auf Abruf",vectorRag:"Vektor-RAG und Indexgestaltung",aiApp:"AI-Anwendungsentwicklung"},company:{title:"Organisationsinformationen",about:"Über telet.ai",profile:"Repräsentatives Profil",contact:"Kontakt"},process:{title:"Wie wir Geschäfte machen",hearing:"Anhörung / NDA",planning:"Planung & CA",sampling:"Probenahme & Start",development:"Entwicklung, Prüfung und Betrieb"}},copyright:"© 2026 telet.ai. Alle Rechte vorbehalten.",legal:{privacy:"Datenschutzbestimmungen",terms:"Nutzungsbedingungen",cookies:"Cookie-Richtlinie"}},PP={title:"Cookie-Richtlinie",subtitle:"Dieser Abschnitt beschreibt die auf dieser Website verwendeten Cookies und anderen Technologien (Cloudflare / Google Analytics).",lastUpdated:"Letzte Aktualisierung: 22. Januar 2026",intro:'telet.ai ("wir", "uns", "unser") ("wir") kann Cookies und ähnliche Technologien verwenden, um diese Website bereitzustellen und zu verbessern und um ihre Sicherheit zu gewährleisten. Wir setzen keine eigenen speziellen Tracking-Cookie
318s für Werbezwecke (obwohl Cloudflare und Google Analytics Cookies oder ähnliche Technologien in Übereinstimmung mit ihren jeweiligen Service-Spezifikationen setzen können).',sections:{what:{title:"1. Was ist ein Keks?",description:"Cookies sind kleine Textdateien, die in Ihrem Browser gespeichert werden, wenn Sie eine Website besuchen."},howWeUse:{title:"Zweck unserer Verwendung von Cookies usw.",description:"Wir können Cookies usw. hauptsächlich für folgende Zwecke verwenden",items:["Zur Stabilisierung der Anzeige und des Betriebs der Website","Erkennen und Verhindern von unberechtigtem Zugriff und bösartigem Datenverkehr","Um den Status des Zugangs zu verstehen und die Website zu verbessern"]},googleAnalytics:{title:"3. Verwendung von Google Analytics",description:"Wir verwenden Google Analytics 4 (GA4) von Google LLC für die Zugriffsanalyse.",items:["Zu den gesammelten Informationen gehören die aufgerufenen Seiten, die Verweildauer, die Verweisquelle, Geräte- und Browserinformationen usw.","Wir verwenden keine direkt persönlich identifizierbaren Informationen (Name, E-Mail-Adresse usw.), um sie an Google Analytics zu senden.","Die Behandlung der Daten durch Google unterliegt den Bedingungen und Richtlinien von Google"]},cloudflare:{title:"4. Nutzung von Cloudflare",description:"Wir nutzen die Dienste von Cloudflare, Inc. für die Bereitstellung und Sicherheitsmaßnahmen dieser Website. Cloudflare kann Cookies usw. für Zwecke wie DDoS-Schutz und Bot-Prävention setzen und darauf verweisen.",items:["Sie dienen in erster Linie der Sicherheit und der Optimierung der Kommunikation und sind nicht für die Nachverfolgung der Anzeigenschaltung bestimmt.","Die Behandlung von Daten durch Cloudflare unterliegt den Bedingungen und Richtlinien von Cloudflare"]},noSpecialCookies:{title:"5. unsere eigenen Spezialkekse",description:"Wir setzen keine eigenen speziellen Cookies zum Zwecke der verhaltensorientierten Werbung usw. Die Verwendung von Cookies usw. ist hauptsächlich auf den Betrieb der Website, die Sicherheit und die Zugriffsanalyse beschränkt."},choices:{title:"6. die Verwaltung von Cookies (Opt-out)",description:"Wenn Cookies deaktiviert sind, können einige Funktionen nicht verfügbar sein.",items:["Cookies können in den Browsereinstellungen gelöscht oder deaktiviert werden","Wenn Sie die Messung durch Google Analytics deaktivieren möchten, verwenden Sie bitte die von Google bereitgestellte Opt-out-Methode","Die Verwendung des privaten Modus eines Browsers usw. kann die gespeicherten Informationen einschränken."]},changes:{title:"7. Änderungen an dieser Politik",description:"Wir können diese Richtlinie als Reaktion auf Änderungen von Gesetzen und Vorschriften oder auf Änderungen bei den genutzten Diensten überarbeiten. Die überarbeitete Richtlinie tritt in Kraft, wenn sie auf dieser Seite veröffentlicht wird."},contact:{title:"8. Kontakt",description:"Wenn Sie Fragen zu dieser Politik haben, kontaktieren Sie uns bitte unter",company:"telet.ai",contactLink:"Weiter zum Anfrageformular"}}},wP={hero:{title:"Über telet.ai",subtitle:"Sorgfältige Unterstützung bei der KI-Entwicklung, die nur von einem kleinen, persönlichen Team geleistet werden kann."},story:{title:"Über uns",content:"telet.ai begann mit einer Frage. Warum gelingt es so vielen Unternehmen nicht, die Erkenntnisse zu nutzen, die in den unzähligen Interaktionen zwischen Unternehmen und ihren Kunden liegen? Das Team, das von einem Vertreter mit Erfahrung in der KI-Forschung und der Entwicklung von Unternehmenssoftware geleitet wird, wurde gegründet, um dieses Problem frontal anzugehen. Wir sind keine große Organisation. Deshalb sind wir in der Lage, uns eingehend mit Ihren Herausforderungen zu befassen und nur die Lösungen vorzuschlagen, die wirklich notwendig sind. Unsere Stärke ist unsere Fähigkeit, hybride Architekturen zu entwerfen, die lokales LLM und Cloud LLM integrieren. Wir können die sensiblen Daten Ihres Unternehmens in einer dedizierten Cloud-Umgebung schützen und gleichzeitig fortschrittliche KI-Inferenz in einer skalierbaren Weise durchführen. Wir stellen eine CLI für Entwickler und eine Chat-UI für Mitarbeiter zur Verfügung und schaffen so eine Grundlage für den Einsatz von KI in Ihrem gesamten Unternehmen. Und wir konzentrieren uns darauf, die optimale Lösung zu sein und nicht die fortsc
318hrittlichste. Der Verzicht auf Funktionen je nach Budget und die Überprüfung einer einzigen Konfiguration können einen großen Kostenunterschied ausmachen. Wir liefern Ihnen das, was Sie brauchen, in der Menge, die Sie brauchen. Unsere aufmerksame KI-Entwicklungsunterstützung ist nur möglich, weil wir klein und persönlich sind. Wir lösen Personalengpässe und unterstützen das Wachstum Ihres Unternehmens. Das ist das Versprechen von telet.ai."},representative:{title:"Repräsentant von telet.ai labo",name:"Keita Okuizumi",tagline:"Zum Himmel, zum Meer und zum Code - eine Leidenschaft für KI-Entwicklung, geboren aus einer ungewöhnlichen Karriere",paragraphs:['Als ehemaliger Privatpilot (PPL) und Inhaber eines Schiffsführerscheins habe ich mich viele Jahre lang mit dem Wetter in der Luft und auf See beschäftigt. Im Cockpit und im Steuerhaus beobachtete ich die Veränderungen des Barometers, entzifferte die isobaren Drucklinien und verglich sie mit der Bewegung von Wind und Wolken. Der Sinn für "Daten lesen, beurteilen und handeln", den ich durch diesen sich wiederholenden Prozess entwickelt habe, ist der Ausgangspunkt für mich heute.','Ich habe im Alter von 57 Jahren begonnen, Python zu programmieren. Der Anstoß dazu war einfache Neugier, aber sobald ich anfing, Code zu schreiben, war ich von den Möglichkeiten der KI-Agenten fasziniert. Ich habe mit meinen eigenen Händen Anwendungen erstellt, sie laufen lassen und verbessert. Dabei wurde mir etwas klar. Bei früheren Projekten war ich als Nicht-Ingenieur beteiligt, und die Entwicklung wurde immer von jemand anderem übernommen. Als ich jedoch anfing, den Code selbst zu schreiben, erkannte ich den Kern des Problems. Das ist der Engpass hier" oder "Dieser Entwurf kann nicht erweitert werden" - durch die Sichtweise eines Ingenieurs hat sich die Geschwindigkeit, mit der ich das, was ich tun will, verwirklichen kann, dramatisch erhöht.',"Entwicklung von Wetterdiensten durch die Kombination von Felderfahrung und Datenwissenschaft, Aufbau von KI-Agenten zur Verbesserung der betrieblichen Effizienz und verschiedene experimentelle Projekte. Als ich weiter mit meinen Händen arbeitete, war ich nicht nur davon überzeugt, dass die Technologie interessant ist, sondern auch, dass es Menschen geben muss, die das brauchen.","Unser Ziel ist es nicht, dem neuesten Stand der Technik hinterherzulaufen. Wir stellen uns den Problemen und dem Budget des Kunden und liefern nur das, was wirklich notwendig ist, zu einem vernünftigen Preis. Wir sind kein großes Unternehmen, so dass wir in der Lage sind, Entwicklungsunterstützung zu leisten, die auf die Bedürfnisse jedes einzelnen Kunden zugeschnitten ist. Wir wollen diese Technologie zum Nutzen der Gesellschaft einsetzen - deshalb haben wir telet.ai gegründet."]},contact:{title:"Organisationsinformationen",company:"telet.ai labo",ceo:"Stellvertreter: OKUIZUMI Keita",button:"Kontakt"},studios:{tokyo:{title:"Studio Tokio",address:"#301 First Hills A Musashikoganei, 3-3-21 Nukuiminamicho, Koganei-shi, Tokio 184-0014, Japan"}}},SP={title:"Portfolio",subtitle:"Sehen Sie unsere Erfolgsbilanz beim Einsatz von KI-Technologie",techStackLabel:"Technologie-Stapel",viewProject:"Projekt anzeigen",privateProject:"Private Projekte",visualizationLabel:"Datenvisualisierung",cta:{title:"Kontakt",description:"Bitte nehmen Sie Kontakt mit uns auf, um Ihr Projekt zu besprechen oder technische Fragen zu stellen.",button:"Kontakt"},projects:{"traffic-route-ai":{title:"KI-System zur Auswahl von Verkehrsverbindungen",subtitle:"Routenplanung für den öffentlichen Verkehr in Malaysia",description:"Das System sucht Bus- und Bahnverbindungen zwischen Start und Ziel und vergleicht Optionen nach Ankunftszeit, Reisedauer und Umstiegen. Filter für reine Bus- oder Bahnverbindungen, die Suche nach nahegelegenen Stationen und Haltestellen sowie eine mehrsprachige Oberfläche unterstützen die Routenwahl im Alltag und auf Reisen.",techStack:["ÖPNV-Routenplanung","Bus- und Bahnanbindung","Routenvergleich","Mehrsprachige Oberfläche"]},"multilingual-assistant":{title:"AI Mehrsprachiger Assistent",description:"Intelligenter Chat-Assistent für mehrsprachige Anfragen, der 1.573 Vektorindizes erstellt und eine präzise Antwortsteuerung durch bedingte Verzweigungen, NG-Wort-Filterung und Stichwortauslösung implementiert. Konsistente und hochpräzise Antworten auf Benutzerfragen in mehreren Sprachen, einschließlich Japanisch, Englisch und Chinesisch, werden durch sprachübergreifende semantische Suche generiert.",techStack:["RAG","Vektorsuche","Mehrsprachige Einbettung","LLM","bedingte Verzweigungslogik"]},"weather-forecast":{title:"AI-Wettervorhersage mit Wetter-API",description:"Entwicklung eines KI-Systems, das aus vergangenen Wetterdaten lernt und Echtzeitprognosen für aktuelle Wetterbedingungen erstellt. LLM analysiert vergangene Daten, die von der JMA-API, OpenWeatherMap usw. stammen, und erstellt kurzfristige Prognosen für Temperatur, Niederschlagswahrscheinlichkeit, Windgeschwindigkeit usw. Durch die Kombination der Mustererkennung von Zeitreihendaten mit der Suche nac
318h Ähnlichkeitsmustern in der Vergangenheit durch RAG erzielt das System hochpräzise Vorhersagen, die herkömmliche statistische Modelle ergänzen.",techStack:["Wetter-API-Kopplung","LLM","RAG","Analyse von Zeitreihendaten","Echtzeitverarbeitung"]},"local-llm":{title:"Interner Server / On-Prem Local LLM",description:"Wir liefern auf Ihre Geschäftsabläufe zugeschnittene KI, die in Ihrem Unternehmen sofort einsatzbereit ist, mit Open WebUI als gemeinsamen Einstiegspunkt, schnellen Inferenzspuren mit Ollama/MLX und vollständig getrennten Datendomänen für jede UID. Interne Dokumente werden in einem RAG mit englischer Einbettung und automatischer japanischer Abfrageübersetzung erfasst, und Business Skills wie Nachrichtenzusammenfassung, Dokumentenorganisation und Routineaufgaben werden sicher nebeneinander ausgeführt. Das Skill-Ausführungssystem ist als OpenClaw-Container isoliert und durch drei Schichten von Cloudflare Edge und lokalem Nginx geschützt. Wir bieten umfassende Unterstützung bei der Modellauswahl, dem Skill-Design und den Betriebsrichtlinien und machen die dedizierte KI Ihres Unternehmens vom ersten Tag an einsatzfähig.",techStack:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"]},"orbital-prediction":{title:"Interplanetare Orbital-Ankunftsvorhersage (AI)",description:"Entwicklung eines Systems zur Analyse optimaler Abflugpunkte für den interplanetaren Transfer durch Beschaffung von Planetenpositionsdaten, Bahnelementen und Schwerkraftparametern aus der NASA-API. Berechnung der Umlaufbahn unter Berücksichtigung des Hohmann-Transfer-Orbits und der Schwerkraftunterstützung mit Hilfe von API und Python sowie Anzeige des Startfensters, der benötigten Zeit und der Treibstoffeffizienz. Das System wird als Simulationswerkzeug für Bildungseinrichtungen und raumfahrtbezogene Unternehmen verwendet. *Die AI-Funktion wird derzeit entfernt, die Berechnung mit API und Python ist in Arbeit.",techStack:["NASA API (Horizons, SPICE)","Orbitaldynamische Berechnung","Python","Datenvisualisierung"]},"real-estate":{title:"AI-Analyse von Immobiliendaten",description:"Entwicklung eines Systems, das über Web Scraping Immobilieninformationen für eine bestimmte Region sammelt und mit LLM und Python eine erweiterte Datenanalyse durchführt. Variablen wie Immobilienpreis, Tsubo-Einheitspreis, Gebäudealter und Bahnhofsentfernung werden extrahiert, und Preistrendanalysen, Marktprognosen und Simulationen der Investitionsrendite werden automatisch erstellt. Merkmale wurden auch aus unstrukturierten Immobilienbeschreibungen mit LLM extrahiert, um eine umfassende Marktanalyse in Kombination mit quantitativen Daten zu ermöglichen. *Angebot jetzt als zweite Version verfügbar (FULL-Version separat erhältlich)",techStack:["Web-Scraping (Scrapy, Playwright)","Python","Pandas","LLM-Analyse","Datenvisualisierung"]},"fortune-ai":{title:"Vier Säulen des AI-Beurteilungssystems",subtitle:"Reproduktion traditioneller Weisheiten mit Hilfe von Technologie.",paragraphs:["Four Pillars of Divination ist der Höhepunkt der jahrtausendealten östlichen Wahrsagerei. Dieses System reproduziert die traditionelle Wahrsagerlogik vollständig in Python, kombiniert mit Interpretation und Ratschlagserzeugung unter Verwendung von LLM (Large Language Models). Die KI reproduziert originalgetreu den Beurteilungsprozess, der von einem erfahrenen Wahrsager durchgeführt wird.","Nach Eingabe von Datum, Uhrzeit und Geburtsort ruft das System die Sonnenaufgangs- und Sonnenuntergangszeiten sowie die Koordinateninformationen zu diesem Zeitpunkt von der Astronomie-API ab. Auf der Grundlage dieser Daten berechnet das System genau das Tierkreiszeichen, die zehn Götter und das Gleichgewicht der fünf Elemente. Die auf der Divinationswissenschaft der Vier Säulen des Schicksals basierende Logik wird in Python indiziert und mit statistischen Daten und RAG-Informationen (Retrieval Augmentation Generation) kombiniert, um die Genauigkeit der Lebensformelanalyse zu verbessern.","Die berechneten Lebensstildaten werden von LLM in natürlicher Sprache auf leicht verständliche Weise erklärt. Es werden personalisierte Einschätzungsergebnisse generiert, einschließlich des Glücksflusses, der Kompatibilität zwischenmenschlicher Beziehungen und des für Sie geeigneten Berufs. Sie können Antworten mit der gleichen Tiefe erhalten, als ob Sie einen professionellen Wahrsager konsultiert hätten.","Sie ist derzeit in einer zweiten Version verfügbar. Sie können die grundlegende Kumishiki-Analyse und die Glücksanalyse ausprobieren. Die Vollversion, die detailliertere Analysen und vielseitige Ratschläge enthält, ist separat erhältlich."],techStack:["Python","Astronomie-API (Sonnenaufgang-Sonnenuntergang, TimeZoneDB)","Vier-Säulen-Logik","LLM","Koordinaten- und Zeitberechnung"]}
318,"google-workspace":{title:"Google Workspace AI integration",description:"Entwicklung eines Systems, das Google Workspace (Gmail, Drive, Calendar, Docs, Sheets) mit LLM verbindet, um Geschäftsdaten zu lesen, zu bearbeiten und automatisch zu verarbeiten. KI unterstützt bei täglichen Aufgaben wie dem Zusammenfassen von E-Mail-Inhalten, dem Erstellen von Entwürfen für automatische Antworten, dem Durchsuchen und Analysieren von Drive-Dateien, dem Extrahieren von Zeitplänen aus dem Kalender und dem Vorschlagen von Anpassungen. Der Betrieb des Arbeitsbereichs vom Agenten aus wird auch durch eine sichere API-Verbindung mit OAuth-Authentifizierung und MCP-konformem Tool-Design realisiert. Die zweite Version ist jetzt verfügbar (die FULL-Version wird separat bereitgestellt).",techStack:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"]},"world-news":{title:"World NEWS Mehrsprachigkeit",description:"Entwicklung eines Systems, das Artikel in Echtzeit aus Nachrichtenquellen auf der ganzen Welt sammelt und eine mehrsprachige Übersetzung, Zusammenfassung und Kategorisierung mit LLM durchführt. Übersetzt Originalartikel in Englisch, Chinesisch, Französisch, Arabisch und anderen Sprachen ins Japanische und ordnet sie nach Themen. Effiziente internationale Nachrichtenüberwachung wird nicht durch einfache maschinelle Übersetzung erreicht, sondern durch natürliche Übersetzung, die auf kontextuellem Verständnis unter Verwendung von LLM und der Erstellung von Zusammenfassungen basiert, die die wichtigsten Punkte des Artikels extrahieren. *Angebot jetzt als zweite Version verfügbar (FULL-Version separat erhältlich).",techStack:["Nachrichten-API","RSS-Sammlung","LLM Übersetzung und Zusammenfassung","mehrsprachige Verarbeitung","Auto-Kategorisierung","geplante Stapelverarbeitung"]},"security-monitoring":{title:"Sicherheitsprotokollüberwachung AI Manager",description:"Entwicklung eines Systems für die Echtzeit-Überwachung von Sicherheitsprotokollen in Unternehmen und für die fortschrittliche Erkennung und Analyse von Bedrohungen mithilfe von LLM. Verschiedene Protokollquellen wie Firewalls, IDS/IPS, Authentifizierungsprotokolle und Anwendungsprotokolle werden von einem Python-Modul gesammelt und analysiert und mit früheren Angriffsmustern, Schwachstelleninformationen und Vorfällen, die in RAG gesammelt wurden, verglichen. Wenn ein anormales Muster erkannt wird, erklärt LLM den Bedrohungsgrad, das Ausmaß der Auswirkungen und die empfohlene Reaktion in natürlicher Sprache und alarmiert sofort die verantwortliche Person. Wenn das gleiche Muster wieder auftritt, wird automatisch eine Warnung mit hoher Priorität ausgegeben, um die Reaktion auf den Vorfall zu beschleunigen.",techStack:["Python-Überwachungsmodul","Log-Sammlung (Fluentd, Logstash)","RAG","Bedrohungsmuster-DB","LLM-Analyse","Warnmeldungen (Slack, PagerDuty)"]}}},IP={learnMore:"Mehr lesen",getStarted:"anfangen zu ...",contactUs:"Kontakt",backToHome:"Zurück zu Home"},MP={title:"Datenschutzbestimmungen",subtitle:"Datenschutzbestimmungen",lastUpdated:"Letzte Aktualisierung: 23. Januar 2026",intro:'telet.ai (der "Dienst") betrachtet den Schutz Ihrer persönlichen Daten als eine wichtige Verantwortung und hat die folgenden Datenschutzrichtlinien aufgestellt.',sections:{collection:{title:"1. zu erfassende Informationen",description:"Der Dienst kann die folgenden Informationen erfassen, wenn Sie uns kontaktieren oder den Dienst nutzen.",items:["E-Mail Adresse","Ihr Name (optional)","Anfrage Details","Andere von Ihnen freiwillig zur Verfügung gestellte Informationen"]},purpose:{title:"2. Zweck der Verwendung von Informationen",description:"Die gesammelten persönlichen Daten werden nur für folgende Zwecke verwendet",items:["Beantwortung von Anfragen und Beantwortung von Anträgen","Kontakt und Informationen über unsere Dienstleistungen","Für den Projektfortschritt erforderliche Kommunikation","Analyse zur Verbesserung der Dienstleistungen (in einem Format, das keine Rückschlüsse auf Einzelpersonen zulässt)"]},thirdParty:{title:"3. Bereitstellung für Dritte",description:"Der Dienst gibt Ihre persönlichen Daten nicht an Dritte weiter, außer in folgenden Fällen",items:["Wenn der Kunde zustimmt","Wenn ein Antrag auf Offenlegung aufgrund von Gesetzen und Vorschriften vorliegt","Wenn dies zum Schutz des Lebens, des Körpers oder des Eigentums einer Person erforderlich ist"]},security:{title:"4. Informationsmanagement",description:"Der Dienst verwaltet die gesammelten personenbezogenen Daten ordnungsgemäß und ergreift angemessene Sicherheitsmaßnahmen, um unbefugten Zugriff, Verlust, Weitergabe und Fälschung zu verhindern."},email:{title:"5. Bearbeitung von E-Mails",description:"Der Dienst behandelt E-Mails nach Maßgabe der folgenden Bestimmungen.",items:["Wir werden den Inhalt Ihrer E-Mail nur für die Beantwortung Ihrer Anfrage und die Erbringung unserer Dienstleistungen verwenden.","Wir werden Ihre E-Mail-Adresse nicht verkaufen, vermieten oder an Dritte weitergeben.","Wir 
318können Ihnen Informations-E-Mails über unsere Dienstleistungen schicken. Wenn Sie sich abmelden möchten, verwenden Sie bitte den Abmeldelink in der E-Mail oder kontaktieren Sie uns über die nachstehenden Kontaktinformationen.","Für die E-Mail-Kommunikation wird eine SSL/TLS-Verschlüsselung verwendet, um eine sichere Kommunikation zu gewährleisten.","Wir werden Ihre E-Mail nach einer angemessenen Aufbewahrungszeit sicher löschen."]},cookies:{title:"6. Verwendung von Cookies",description:"Cookies können in den Einstellungen Ihres Browsers deaktiviert werden."},external:{title:"7. Inanspruchnahme von externen Dienstleistungen",description:"Dieser Dienst kann die folgenden externen Dienste nutzen. Bitte beachten Sie die jeweiligen Links zu den Datenschutzbestimmungen der einzelnen Dienste.",items:["Google Analytics (access analysis)","Andere für den Geschäftsbetrieb erforderliche Cloud-Dienste"]},changes:{title:"8. Änderungen der Datenschutzpolitik",description:"Diese Richtlinie kann ohne Vorankündigung geändert werden, wenn Gesetze und Vorschriften geändert werden oder wenn sich der Inhalt der Dienste ändert. Die überarbeitete Richtlinie tritt in Kraft, sobald sie auf dieser Seite veröffentlicht wird."},contact:{title:"9. Kontakt",description:"Wenn Sie Fragen zu dieser Politik haben, kontaktieren Sie uns bitte unter",company:"telet.ai",contactLink:"Weiter zum Anfrageformular"}}},jP={title:"Nutzungsbedingungen",subtitle:"Dies sind die Bedingungen für die Nutzung dieser Website und für die Buchung einer Beratung, für Anfragen und für die Anforderung von Informationen von telet.ai.",lastUpdated:"Letzte Aktualisierung: 22. Januar 2026",intro:'Diese Nutzungsbedingungen (im Folgenden als "Bedingungen" bezeichnet) Diese Nutzungsbedingungen (im Folgenden als "Bedingungen" bezeichnet) gelten für die von telet.ai (im Folgenden als "wir", "uns", "unser" oder "unser" bezeichnet) betriebene Website. (im Folgenden als "wir", "uns" oder "unser" bezeichnet). (im Folgenden als "Website" bezeichnet), betrieben von telet.ai (im Folgenden als "wir" bezeichnet). Die Website wird in erster Linie als Landing Page für Beratungstermine, Anfragen und Dokumentenanfragen zur Verfügung gestellt und bietet keine Funktionen zur Erstellung von Konten oder zur bezahlten Abrechnung auf der Website.',sections:{scope:{title:"1. Anwendungsbereich",description:'Diese Nutzungsbedingungen gelten für alle Besucher und Nutzer der Website ("Nutzer"). Die Nutzungsbedingungen gelten für alle Besucher und Nutzer der Website (nachstehend "Nutzer" genannt). Falls zwischen uns und einem Nutzer ein separates NDA, eine Outsourcing-Vereinbarung, ein individueller Vertrag usw. geschlossen wird, hat dieses Dokument Vorrang vor den Nutzungsbedingungen.'},prohibited:{title:"2. verbotene Gegenstände",description:"Bei der Nutzung der Website dürfen die Nutzer keine der folgenden Handlungen vornehmen",items:["Handlungen, die gegen Gesetze und Vorschriften oder die öffentliche Ordnung und Moral verstoßen","Jede Handlung, die unsere Rechte am geistigen Eigentum, die Privatsphäre oder andere Rechte oder Interessen eines Dritten verletzt","Handlungen, die den Betrieb dieser Website oder damit verbundener Systeme durch unbefugten Zugriff, übermäßige Belastung, Sabotage usw. stören.","Angabe falscher Informationen oder Vortäuschung einer dritten Person in Anfrageformularen usw.","Scraping, Reverse Engineering oder übermäßiger automatisierter Zugriff ohne unsere vorherige Genehmigung"]},disclaimer:{title:"3. Haftungsausschluss",description:'Wir stellen diese Website ohne Mängelgewähr" und wie verfügbar" zur Verfügung. Im vollen gesetzlich zulässigen Umfang schließen wir alle Garantien in Bezug auf diese Website aus.',items:["Die Informationen auf dieser Website können ohne vorherige Ankündigung geändert oder gelöscht werden.","Wir übernehmen keine Gewähr für die Richtigkeit, Vollständigkeit oder Eignung der Informationen auf dieser Website für einen bestimmten Zweck.","Wir haften nicht für Schäden, die sich aus der Nutzung dieser Website oder dem Vertrauen auf die darin enthaltenen Informationen ergeben.","Die Antworten auf Konsultationen und Anfragen dienen nur der allgemeinen Information und stellen keine rechtliche, steuerliche, medizinische oder sonstige professionelle Beratung dar."]},ip:{title:"4. Rechte an geistigem Eigentum",description:"Alle Rechte an den Texten, Bildern, Designs, Marken, Logos usw. auf dieser Website gehören uns oder den rechtmäßigen Inhabern der Rechte. Sie dürfen sie nicht ohne die Erlaubnis der Rechteinhaber verwenden."},links:{title:"5. Links zu externen Websites",description:"Diese Website kann Links zu Websites Dritter enthalten. Wir sind nicht verantwortlich für den Inhalt oder den Betrieb der verlinkten Seiten."},changes:{title:"6. Änderung dieser Bedingungen und Konditionen",description:"Wir behalten uns das Recht vor, diese Nutzungsbedingungen von Zeit zu Zeit nach Bedarf zu ändern. Die geänderten Nutzungsbedingungen treten in Kraft, wenn sie auf der Website veröffentlicht werden."},governingLaw:{title:"7. Geltendes Recht und Gerichtsbarkeit",description:"Diese Allgemeinen Geschäftsbedingungen unterliegen den Gesetzen Japans und werden nach diesen ausgelegt. Für alle Streitigkeiten, die sich aus oder im Zusammenhang mit dieser Website ergeben, ist das Bezirksgericht Tokio als Gericht erster Instanz ausschließlich zuständig."},contact:{title:"8. Kontakt",description:"Wenn Sie Fragen zu diesen Geschäftsbedingungen haben, wenden Sie sich bitte an",company:"telet.ai",contactLink:"Weiter zum Anfrageformular"}}}
318,CP={title:"regelmäßiger Antrag",subtitle:"KI prognostiziert die",description1:"Wetterinformationen werden von jedem Land in Echtzeit bereitgestellt. Ihr Land wird in der Mitte der Karte angezeigt. Das gestrige und heutige Wetter sind tatsächliche Aufzeichnungen – die Regenwolken sollten zu diesem Zeitpunkt an Ihrem Himmel gewesen sein.",description2:"Diese Animation animiert aber auch zukünftige Wetterbewegungen.",description3:"Vektoren für vergangene Daten und sucht mit hoher Geschwindigkeit nach Mustern. Auch Wettermuster lassen sich aus der Umgebung vorhersagen. In ähnlicher Weise ist es möglich, Ernte, Produktion und Umsatz vorherzusagen, indem man Elemente (i) aus der Umgebung und fortgeschrittene statistische Werte aus vergangenen Leistungen berechnet und sie von der KI analysieren lässt.",refresh:"Auffrischung (z. B. Speicher)",loading:"Laden der Wetterkarte..."},DP={hero:{badges:["Unternehmen","Lokaler LLM","Zollagent"],title:"Design und Entwicklung von KI-Agenten für Unternehmen",description:"Entwurf und Erstellung von speziellen, auf die Geschäftsanforderungen zugeschnittenen KI-Agenten"},mission:{title:"Kundenspezifische AI-Agent-Entwicklungsdienste",description:"Wir entwickeln maßgeschneiderte KI-Agenten, die von der Konzeption über die Implementierung bis hin zum Betrieb auf die speziellen Geschäftsanforderungen Ihres Unternehmens zugeschnitten sind. Unser architektonisches Design betont die Kompatibilität mit bestehenden unternehmenskritischen Systemen und SaaS-Umgebungen und ermöglicht eine reibungslose Integration mit APIs, Datenbanken und internen Tools. Unsere Ingenieure sind mit LangChain, AutoGen, CrewAI und anderen wichtigen Frameworks vertraut. Unsere Ingenieure sind mit LangChain, AutoGen, CrewAI und anderen wichtigen Frameworks vertraut und werden die beste Lösung für den Technologie-Stack und die Betriebsstruktur Ihres Unternehmens vorschlagen. Wir entwickeln nicht nur einzelne Chatbots, sondern bauen auch Multi-Agenten-Systeme, in denen mehrere Agenten miteinander kooperieren, um Aufgaben zu erfüllen, sowie Agentic Workflows, die in Verbindung mit externen Tools arbeiten. Wir unterstützen die Maximierung des geschäftlichen Nutzens von KI-Agenten durch eine langfristige Partnerschaft, die kontinuierliche Verbesserungen nach der Implementierung, nachfolgende Modell-Updates und die Wartung von Betriebsüberwachungssystemen umfasst.",imageAlt:"Kundenspezifische AI-Agent-Entwicklungsdienste"},summary:{title:"Trends in der Agentenentwicklung",paragraphs:['Von 2025 bis 2026 wird die Entwicklung von KI-Agenten von der Demonstrationsphase in die Phase der umfassenden Implementierung in Unternehmen übergehen. Das Konzept der "agentenbasierten KI" hat sich durchgesetzt, und autonome Systeme für die Geschäftsabwicklung, die über bloße Chatbots hinausgehen, haben in verschiedenen Branchen ihren Betrieb aufgenommen.','Computer-Using Agents", die Browser und Desktops direkt steuern, wie z. B. Operator von OpenAI, Computer Use von Anthropic und Project Mariner von Google, sind praktisch geworden. Das Model Context Protocol (MCP) ist ein aufkeimendes Ökosystem, das die Plug-and-Play-Integration mit Tausenden von Tools ermöglicht.',"Multi-Agenten-Architekturen sind inzwischen ausgereift, wobei spezialisierte Agenten zusammenarbeiten, um komplexe Aufgaben wie Projektmanagement, Kundensupport und Datenanalyse zu erfüllen. Die Standardisierung des A2A-Protokolls (Agent-to-Agent) hat ebenfalls Fortschritte bei der Zusammenarbeit von Agenten zwischen verschiedenen Anbietern gebracht.",'Das Governance-Modell hat sich von "Human-in-the-Loop" zu "Human-on-the-Loop" für Unternehmensimplementierungen entwickelt, wobei ein Mechanismus für die Prüfung von Entscheidungen nach dem Agenten und eine automatische Eskalation auf der Grundlage der Risikostufe zu den Standardfunktionen gehören, was die Einführung in regulierten Branchen wie dem Finanzwesen, dem Gesundheitswesen und der Fertigung beschleunigt. Die Einführung dieses Systems beschleunigt sich in regulierten Branchen wie dem Finanzwesen, dem Gesundheitswesen und der Fertigung.']},features:{title:"Design und Entwicklung",subtitle:"Design und Entwicklung",items:[{title:"Agentendesign auf der Grundlage von Geschäftsanforderungen",description:"Extrahieren von Anwendungsfällen aus der Geschäftsflussanalyse, Zerlegen von Aufgaben und Klären der Zuständigkeiten von Agenten. Wir bestimmen, ob die Verarbeitung von einem einzelnen Agenten abgeschlossen werden kann oder eine Koordination mehrerer Agenten erfordert, und wählen die optimalen Inferenzmuster wie ReAct, Plan-and-Execute und Reflexion."},{title:"RAG / Werkzeug / Workflow-Integration",description:"Hochpräzise RAG-Pipelines mit Einbettungsgenerierung, Chunk-Strategie und hybrider Suche, standardisierte Verbindung zu externen APIs und Datenbanken mit MCP-konformen Tool-Definitionen und mehrstufige Workflow-Orchestrierung mit LangGraph und CrewAI. Orchestrieren Sie mehrstufige Workflows mit LangGraph und CrewAI."},{title:"Sicherheit und Berechtigungskonzept",description:"Die Zugriffskontrolle der Agentenfunktionen durch RBAC/ABAC, Gegenmaßnahmen für Prompt Injection sowie PII-Erkennung und 
318-Maskierung sind implementiert. Audit-Protokolle aller Eingaben und Ausgaben werden aufbewahrt, und der Betrieb einer SOC2- und ISO27001-konformen Umgebung wird unterstützt."},{title:"Umsetzung einschließlich Betrieb und Überwachung",description:"Implementierung der Trace-Visualisierung mit LangSmith, Langfuse usw. und Echtzeitüberwachung von Latenz, Token-Verbrauch und Fehlerrate. Aufbau eines kontinuierlichen Verbesserungszyklus mit Warnmeldungen zur Erkennung von Anomalien, Infrastruktur für A/B-Tests und Regressionstests bei der Aktualisierung von Modellen."}]},techStack:{title:"Technologie-Stapel",subtitle:"Plattform und Technologie",categories:{agentFramework:{title:"Agent Framework",items:["AutoGen 0.4 / AG2","CrewAI","LangGraph","OpenAI Agenten SDK","Anthropischer MCP","Google ADK (Agent Development Kit)","Semantischer Kern","Proprietäre Agentenplattform"]},apiLayer:{title:"API-Schicht",items:["FastAPI / Litestar","gRPC / Verbinden","GraphQL-Föderation","Server-gesendete Ereignisse (SSE)","WebSocket / NATS","OAuth 2.1 / OIDC","API-Gateway (Kong / Envoy)","Adaptive Ratenbegrenzung"]},vectorDb:{title:"Vektor DB / RAG",items:["Kiefernzapfen","Weaviate","Qdrant","Milvus","ChromaDB","pgvector","FAISS","Turbopuffer"]}
318,infrastructure:{title:"Infrastruktur",items:["Kubernetes (EKS / GKE / AKS)","Docker/Podman","Vor-Ort-GPU-Cluster","Private Wolke","Serverlos (Lambda / Cloud Run)","OpenTelemetry / Langfuse","Terraform / Pulumi","ArgoCD / Fluss"]}},updateNote:{title:"Wichtigste Aktualisierungspunkte für 2026",description:"Im Agenten-Framework sind offizielle SDKs/Protokolle von großen Anbietern wie OpenAI Agents SDK, Anthropic MCP und Google ADK im Kommen; im API-Layer sind gRPC und SSE zum Standard für die Kommunikation zwischen Agenten geworden, und der Übergang zu OAuth 2.1 ist im Gange. Im Bereich Vector DB machen Qdrant und Turbopuffer durch ihre Hochgeschwindigkeitssuche auf sich aufmerksam."}},cta:{title:"Kontakt",description:`Wir können Sie bei der Zusammenstellung der Anforderungen beraten.
319PoC und lokale LLM-Konfigurationen können ebenfalls berücksichtigt werden.`,primaryButton:"Kontakt",secondaryButton:"Technische Konsultation"}},zP={title:"Häufig gestellte Fragen",subtitle:"FAQ",items:[{question:"Kann ich meine bestehenden Handbücher und FAQs ohne Änderungen verwenden?",answer:"Ja, Sie können es verwenden; es unterstützt die meisten Formate, einschließlich PDF, Word, Excel, HTML und Textdateien. Laden Sie einfach Ihre vorhandenen internen Dokumente so hoch, wie sie sind, und KI lernt den Inhalt und verwendet ihn, um Ihre Fragen zu beantworten. Es ist keine Formatkonvertierung oder spezielle Bearbeitung erforderlich."},{question:"Ist die Verwendung mit Daten, die sensible Informationen enthalten, sicher?",answer:"Ja, Sie können unseren Dienst sicher nutzen. Ob vor Ort (interne Server) oder in einer privaten Cloud-Umgebung, die Daten werden niemals außerhalb des Unternehmens übertragen. Wir können Ihnen Konfigurationen vorschlagen, die Ihre Sicherheitsanforderungen erfüllen."},{question:"Wie lange dauert die Umsetzung?",answer:"Ein Standard-FAQ-Bot kann in nur 2-4 Wochen implementiert werden. Wenn eine Integration in bestehende Systeme oder eine erweiterte Anpassung erforderlich ist, veranschlagen wir 1-3 Monate. Wir können auch mit einem PoC (Proof of Concept) 
319im kleinen Rahmen beginnen."},{question:"Verwenden Sie externe APIs wie ChatGPT oder Claude?",answer:"Eine Auswahl ist auf Anfrage möglich. Wir unterstützen sowohl Konfigurationen, die externe APIs (OpenAI, Anthropic, Google usw.) verwenden, als auch Konfigurationen, die Open-Source-LLMs (Llama, Mistral, Qwen usw.) verwenden, die vollständig lokal laufen. Wir können Ihnen die beste Konfiguration für Ihre Kosten-, Sicherheits- und Leistungsanforderungen vorschlagen."},{question:"Wie genau ist die Antwort der KI?",answer:"Je nach Anwendung und Datenqualität kann ein richtig konzipiertes RAG-System Fragen, für die relevante Dokumente existieren, mit einer Genauigkeit von 90 % oder mehr beantworten. Mechanismen zur Kontrolle der Halcination (Generierung von fehlerhaften Informationen) sind ebenfalls standardmäßig eingebaut."},{question:"Unterstützen Sie auch andere Sprachen als Japanisch?",answer:"Ja, mehrsprachige Unterstützung ist verfügbar. Wir unterstützen alle wichtigen Sprachen, einschließlich Japanisch, Englisch, Chinesisch und Koreanisch. Anstatt separate Modelle für jede Sprache zu haben, kann ein einziges System mehrsprachige Abfragen bearbeiten."},{question:"Können Sie sich in bestehende Systeme (CRM, Chat-Tools usw.) integrieren?",answer:"Ja, er kann integriert werden. Er unterstützt die API-Integration mit wichtigen Business-Tools wie Salesforce, HubSpot, Slack, Microsoft Teams und LINE WORKS. Sie können einen KI-Assistenten einbinden, ohne Ihren bestehenden Arbeitsablauf zu ändern."},{question:"Wie ist Ihre Gebührenstruktur?",answer:"Das hängt von der Größe und den Anforderungen des Projekts ab. In der Regel werden die Gebühren für den Erstaufbau und den monatlichen Betrieb kombiniert, aber wir akzeptieren auch Anfragen für die Entwicklung von Spotlights oder reine Beratungsleistungen. Bitte teilen Sie uns zunächst Ihre Anforderungen mit. Wir werden Ihnen dann einen groben Kostenvoranschlag unterbreiten."}]},TP={title:"Tarif-Pläne",subtitle:"Preispläne",description:"Flexible Pläne zur Anpassung an die Größe Ihres Unternehmens",plans:[{name:"Starthilfe",price:"29.800 Yen",period:"Monatlich/Nutzer",description:"Der beste Plan für kleine Teams. KI-Basisfunktionen zu einem erschwinglichen Preis.",features:["Bis zu 100 Anrufe pro Monat","Grundlegende Transkription","Schlüsselwort-Erkennung","E-Mail-Unterstützung","7 Tage Datenspeicherung"],cta:"Jetzt kostenlos loslegen",popular:!1},{name:"professionell",price:"¥79,800",period:"Monatlich/Nutzer",description:"Ideal für wachsende Teams. Erweiterte analytische Funktionen.",features:["Bis zu 500 Anrufe pro Monat","Hochpräzise AI-Transkription","Emotionale Analyse","CRM-Verknüpfung","Vorrangige Unterstützung","30 Tage Datenspeicherung","Benutzerdefinierte Berichte"],cta:"14 Tage kostenloser Test",popular:!0},{name:"Unternehmen",price:"Kontakt",period:"benutzerdefinierte",description:"Voll ausgestattete Pläne für große Organisationen",features:["Unbegrenzte Anrufe","Spezielles AI-Modell","Vor-Ort-Unterstützung","Engagierte Unterstützung","Individuelle Zusammenarbeit","SLA-Garantie","Sicherheitsprüfungen","Unbegrenzte Datenspeicherung"],cta:"Beratung mit dem Vertrieb",popular:!1}],faq:{title:"Häufig gestellte Fragen",items:[{question:"Gibt es eine kostenlose Testversion?",answer:"Ja, eine 14-tägige kostenlose Testversion ist für die Professional-Tarife verfügbar. Für den Start ist keine Kreditkarte erforderlich."},{question:"Kann ich meinen Plan jederzeit ändern?",answer:"Ja, Sie können Ihren Tarif jederzeit erhöhen oder herabstufen. Die Änderungen werden mit dem nächsten Abrechnungszyklus wirksam."},{question:"Ist der Vertrag an eine Frist gebunden?",answer:"Monatliche Tarife haben keine Beschränkung der Vertragslaufzeit. Wenn Sie sich für einen Jahresvertrag entscheiden, erhalten Sie einen Rabatt von 20 %."}]}},EP={hero:{badge:"KI-gestützte Technologie",title:"AI-Transkription",description:"Fortschrittliche Modelle für maschinelles Lernen bieten 99,5 % Genauigkeit. KI, die auf Millionen von Kundeninteraktionsdaten trainiert wurde, wandelt Sprache in Text um.",features:["99,5% Genauigkeit","Echtzeitverarbeitung","Unterstützung für mehr als 40 Sprachen"]},features:{title:"Hauptfunktionen",subtitle:"Fortschrittliche Transkriptions-Engine, die über einfache Spracherkennung hinausgeht",items:[{title:"Echtzeit-Transkription",description:"Erhalten Sie Echtzeit-Transkripte während Gesprächen. Gewinnen Sie sofortige Einblicke und verpassen Sie keine Gelegenheit für ein Echtzeit-Coaching."},{title:"mehrsprachige Unterstützung",description:"Unterstützt mehr als 40 Sprachen und deckt globale Teams mit automatischer Spracherkennung ab."},{title:"kontextuelles Verständnis",description:"KI-Modelle, die auf branchenspezifische Terminologie trainiert sind, erkennen technische und geschäftliche Begriffe präzise."},{title:"Lautsprechertrennung",description:"Identifiziert und trennt automatisch verschiedene Sprecher in einem Gespräch und weist ihnen eindeutige Sprechereigenschaften zu."},{title:"benutzerdefiniertes Lexikon",description:"Das Erlernen der eindeutigen Produkt- und Dienstleistungsnamen sowie der Fachbegriffe Ihres Unternehmens sorgt für eine noch höhere Genauigkeit."},{title:"Qualitätssicherung",description:"Automatische Qualitätskontrollen und eine Zuverlässigkeitsbewertung gewährleisten die höchste Qualität der Transkription."}]},useCases:{title:"Verwendungsszenen",subtitle:"Branchen und Teams, die eine genaue Transkription von Anrufen benötigen",items:[{title:"Verkaufsteam",description:"Reflektieren Sie Ihre Verkaufsgespräche und erkennen Sie Erfolgsmuster. Verbessern Sie die Gesprächseffektivität und coachen Sie Teammitglieder mit konkreten Beispielen."},{title:"Kundenbetreuung",description:"Genaue Aufzeichnung von Kundenproblemen. Führen Sie eine umfassende Supporthistorie, um eine gleichbleibende Servicequalität zu gewährleisten."},{title:"Qualitätskontrolle",description:"Überwachung der Einhaltung der Vorschriften und Sicherstellung der Befolgung des Drehbuchs. Führen Sie detaillierte Aufzeichnungen für Audits und Schulungen."}]},stats:{accuracy:{value:"99.5%",label:"Transkriptionsgenauigkeit"},languages:{value:"40+",label:"Unterstützte Sprachen"},latency:{value:"<2 Sek.",label:"Verarbeitungsverzögerung"},availability:{value:"24/7",label:"kontinuierliche Verarbeitung"}}
319},RP={hero:{badge:"Intelligente Erkennung",title:"Verfolgung von Schlüsselwörtern",description:"Überwachen Sie automatisch Erwähnungen von Mitbewerbern, Gegenargumente und wichtige Themen. Verpassen Sie keine wichtigen Signale aus Kundengesprächen.",badges:["Verfolgung von Wettbewerbern","Antwort-Erkennung","Themenanalyse","benutzerdefiniertes Schlüsselwort"]},features:{title:"Wichtige Informationen verfolgen",subtitle:"Automatische Erkennung und Analyse von Schlüsselwörtern aus allen Gesprächen",items:[{title:"Überwachung des Wettbewerbs",description:"Verfolgen Sie Erwähnungen von Mitbewerbern, um zu verstehen, wie potenzielle Kunden Ihre Lösung mit Alternativen auf dem Markt vergleichen."},{title:"Antwort-Erkennung",description:"Erkennen Sie automatisch häufige Einwände und Bedenken und entwickeln Sie effektive Antworten und Schulungen."},{title:"benutzerdefiniertes Schlüsselwort",description:"Definieren und verfolgen Sie benutzerdefinierte Schlüsselwörter und Phrasen, die für Ihr Unternehmen, Ihr Produkt oder Ihre Branche spezifisch sind."},{title:"Trendanalyse",description:"Entdecken Sie neue Trends aus Kundengesprächen und passen Sie Ihre Strategie auf der Grundlage aktueller Marktsignale an."},{title:"Kontextextextraktion",description:"Holen Sie sich den Kontext vor und nach dem Schlüsselwort, nicht nur die Erwähnung des Schlüsselworts. Verstehen Sie nicht nur, was gesagt wurde, sondern auch warum und wie es gesagt wurde."},{title:"Intelligente Suche",description:"Durchsuchen Sie sofort alle Unterhaltungen, um genau herauszufinden, wo und wann ein bestimmtes Thema diskutiert wurde."}]},applications:{title:"Verwendungsszenen",items:{competitive:{title:"Competitive Intelligence",description:"Tiefes Verständnis der Wettbewerbslandschaft:",points:["Verfolgen Sie Ihre am häufigsten erwähnten Konkurrenten","Verstehen, wie potenzielle Kunden Merkmale und Preise vergleichen","Identifizieren Sie Ihre Wettbewerbsvorteile und Schwächen","Schaffung wirksamer wettbewerbswidriger Materialien"]},objections:{title:"Erwiderung einer Gegendarstellung",description:"Verwandeln Sie eine Widerlegung in eine Chance:",points:["Identifizieren Sie die häufigsten Kundenanliegen","Analysieren Sie die Antworten der Leistungsträger","Playbook mit bewährter Reaktion.","Trainieren Sie Ihr Team mit effektiven Turnarounds"]},product:{title:"Produkt-Einblicke",description:"Förderung der Produktentwicklung durch Kundenfeedback:",points:["Identifizierung der am meisten gewünschten Funktionen","Verstehen der Herausforderungen für die aktuelle Funktionalität","Entdecken Sie unerwartete Anwendungsfälle","Priorisierung der Roadmap auf der Grundlage der Kundenbedürfnisse"]},compliance:{title:"Einhaltung der Vorschriften und Qualität",description:"Sicherstellung der Einhaltung von Vorschriften und der Qualität:",points:["Überwachung der erforderlichen Angaben und der Rechtssprache","Kennzeichnung von Gesprächen, die gegen die Richtlinien verstoßen könnten","Verfolgung der Einhaltung von Skripten und bewährten Verfahren","Erstellung von Compliance-Berichten für Audits"]}}},advancedFeatures:{title:"Erweiterte Funktionen",items:[{title:"mehrdeutiger Abruf",description:"Automatische Erkennung von Schlüsselwortvarianten, Synonymen und verwandten Begriffen ohne manuelle Konfiguration."},{title:"historische Analyse",description:"Analysieren Sie Keyword-Trends im Zeitverlauf, um saisonale Muster und neue Themen zu erkennen."},{title:"Warnmeldungen in Echtzeit",description:"Erhalten Sie sofortige Benachrichtigungen, wenn wichtige Schlüsselwörter in Live-Unterhaltungen erwähnt werden."}]}},NP={hero:{badges:["Unternehmen","Lokaler LLM","Interner Serverbetrieb"],title:"Vor-Ort-LLM-Konstruktion",description:"Betreiben Sie LLM in Ihrer eigenen Umgebung und halten Sie die Daten außerhalb des Unternehmens."},mission:{title:"Überblick über den LLM-Bauservice vor Ort",paragraphs:["Für Unternehmen, die vertrauliche Daten nicht nach außen geben dürfen, erstellen wir eine LLM-Umgebung, die auf ihren eigenen Servern oder in einer privaten Cloud ausgeführt werden kann. Diese Lösung ist ideal für Organisationen, die ein strenges Informationsmanagement benötigen, wie z. B. Finanzinstitute, medizinische Einrichtungen, Regierungsbehörden und Forschungsinstitute, da sie keine öffentliche API verwendet und die gesamte Verarbeitung innerhalb der vom Kunden verwalteten Infrastruktur erfolgt.","Wir bieten umfassende Unterstützung von der Modellauswahl über die Serverkonstruktion und die Optimierung der Inferenzmaschine bis hin zur Betriebsüberwachung. Dabei verwenden wir handelsübliche Modelle mit offenem Gewicht wie Llama 3.3, Qwen 2.5, Mistral und DeepSeek mit Hochleistungs-Inferenzmaschinen wie vLLM, Ollama und SGLang. Diese Modelle werden auf Hochleistungs-Inferenzmaschinen wie vLLM, Ollama und SGLang ausgeführt, um eine Inferenzumgebung mit niedriger Latenz und hohem Durchsatz zu schaffen.","Wir unterstützen eine breite Palette von Anwendungsfällen wie die Integration in bestehende Systeme, Chatbots, interne RAGs, Dokumentenzusammenfassung und Codegenerierung. Wir können die Anforderungen von Unternehmen erfüllen, einschließlich Geschäftsspezialisierung durch Modellfeinabstimmung, NVIDIA GPU / Apple Silicon Optimierung, mandantenfähiges Design, API-Gateway-Konstruktion und mehr."]},summary:{title:"Vor-Ort-LLM-Trends",paragraphs:["In den Jahren 2025-2026 verbessert sich der Nutzen von LLMs vor Ort rapide. Die Leistung offener gewichteter Modelle hat die geschlossener Modelle überholt, und die Zahl der Modelle, die mit kommerziell verfügbaren Lizenzen angeboten werden, hat die Hürde für den internen Betrieb deutlich gesenkt.","Die Modelle mit 8B bis 70B Parametern haben ein praktisches Niveau für viele Geschäftsaufgaben erreicht, die GGUF-Quantisierung ermöglicht Hochgeschwindigkeitsinferenz sogar auf Consumer-GPUs.","Bei den Inferenz-Engines erhöhen Continuous Batching und PagedAttention von vLLM den Durchsatz dramatisch, und RadixAttention von SGLang beschleunigt komplexe Interaktionen mit mehreren Umdrehungen. Ollama hat sich zum De-facto-Standard für lokale Entwicklungsumgebungen entwickelt, und llama.cpp ist Apple Silicon, das für schnelle Inferenzen auf Macs der M-Serie optimiert ist.","Bei der Einführung in Unternehmen wird neben der Datensouveränität und der Einhaltung von Vorschriften auch die langfristige Kostenoptimierung (Abkehr von der Abrechnung nach Aufwand) immer mehr zu einem Motiv für die Einführung. Hybride Konfigurationen (lokal für sensible Verarbeitungen und Cloud-API für allgemeine Verarbeitungen) sind eine gängige Option geworden."],icons:[{label:`Privat
320Wolke`},{label:`Daten
321Souveränität`},{label:`Kosten
322Optimierung`},{label:`Unternehmen
323Sicherheit`}]},features:{title:"Design- und Entwicklungsmerkmale",subtitle:"Design und Entwicklung",items:[{title:"Infrastrukturdesign und GPU-Optimierung",description:"Entwerfen Sie die optimale Hardwarekonfiguration für Ihre Arbeitslast und Ihr Budget, einschließlich NVIDIA A100/H100, RTX 4090/5090 und Apple Silicon (M2 Ultra/M3 Max/M4 Max), und erstellen Sie eine Inferenzumgebung, die die GPU-Leistung durch CUDA-, MPS- und Metal-Optimierung voll ausschöpft. CUDA-, MPS- und Metal-Optimierung zur Maximierung der GPU-Leistung."},{title:"Modellauswahl und Optimierung",description:"Auswahl des optimalen Modells aus Llama, Qwen, Mistral, DeepSeek usw. unter Berücksichtigung der Aufgabenmerkmale, Sprachanforderungen und Ressourcenbeschränkungen. Quantisierung (GGUF/AWQ/GPTQ), KV-Cache-Optimierung und Stapelverarbeitungsoptimierung werden verwendet, um sowohl Genauigkeit als auch Durchsatz zu erreichen."},{title:"Konstruktion der Inferenzmaschine",description:"Wählen und erstellen Sie Inferenz-Engines wie vLLM, SGLang, Ollama, TGI usw. entsprechend Ihrer Anwendung, und wenden Sie die neuesten Technologien wie Continuous Batching, Speculative Decoding und Prefix Caching an, um Inferenz-APIs mit niedriger Latenz und hohem Durchsatz bereitzustellen. Wir bieten Inferenz-APIs mit niedriger Latenz und hohem Durchsatz."},{title:"Betrieb, Überwachung und Sicherheit",description:"Implementieren Sie die Überwachung aussagekräftiger Metriken mit Prometheus/Grafana, Zugriffskontrolle mit API-Gateway, Prüfprotokolle, automatische Skalierung und Fehlerbehebung. Erstellen Sie eine Produktionsbetriebsumgebung, die die Sicherheitsanforderungen des Unternehmens erfüllt."}]},techStack:{title:"Technologie-Stapel: Vor-Ort-LLM",subtitle:"Plattform und Technologie",categories:{openWeightModels:{title:"Modelle mit offenem Gewicht",items:["Llama 3.3 70B / 8B","Qwen 2.5 72B / 32B / 7B","Mistral Large / Nemo","DeepSeek V3 / R1","Gemma 2 27B / 9B","Phi-4","Befehl R (Cohere)"]},japaneseModels:{title:"Japan-spezifisches Modell",items:["ELYZA-Japanisch-Lama-2","Schwalbe 70B / 13B","Japanisches Lama-3","Qwen-2.5-Japanese","K
323arakuri-LM"]},inferenceEngine:{title:"Inferenzmaschine",items:["vLLM (Kontinuierliches Batching)","SGLang (RadixAttention)","Ollama (lokale Entwicklung)","llama.cpp (Apple Silicon)","TGI (Umarmendes Gesicht)","TensorRT-LLM (NVIDIA)","ExLlamaV2 (Quantisierungsspezialisierung)"]},quantization:{title:"Quantisierung",items:["GGUF (Lama.cpp Standard)","AWQ (hohe Präzision 4bit)","GPTQ (GPU-Optimierung)","BitsundBytes(8bit/4bit)","EETQ (Effiziente Wirkungsgradquantisierung)"]},hardware:{title:"Hardware",items:["NVIDIA H100 / A100","NVIDIA L40S / A10G","RTX 4090 / 5090","Apple Silizium M2 Ultra","Apple Silizium M3/M4 Max","AMD MI300X"]},infrastructure:{title:"Infrastruktur",items:["Docker / Kubernetes","NVIDIA Triton-Server","API-Gateway (Kong / Envoy)","Prometheus / Grafana","Private Cloud (VMware/OpenStack)","Unterstützung für eine luftdurchlässige Umgebung"]}},updateNote:{title:"Wichtigste Aktualisierungspunkte für 2026",description:"Bei den Modellen mit offenem Gewicht erreicht Llama 3.3 eine Allzweckleistung der Klasse GPT-4 und verbessert die Leistung der japanischen Sprache erheblich; die Qwen 2.5-Serie erweitert die Auswahl mit einer Vielzahl von Größen und ausgewogener Leistung; DeepSeek V3/R1 zieht die Aufmerksamkeit auf seine Inferenzkostenleistung; und die Inferenzmaschinen vLLM 2.0 Chunked Prefill und SGLang's RadixAttention beschleunigen Multiturn-Dialoge. In der Inferenz-Engine beschleunigen Chunked Prefill von vLLM 2.0 und RadixAttention von SGLang Multiturn-Interaktionen; die Apple Silicon Optimierung von llama.cpp macht die Inferenz von 70B-Modellen auf M4 Max praktikabel; und die Quantisierungs-Technologie bietet 4-Bit-Präzision und hohe Leistung. Durch die Quantisierungstechniken wurden sowohl eine 4-Bit-Präzision als auch eine hohe Inferenzgeschwindigkeit erreicht, und GGUF wurde zum De-facto-Standardformat."}},cta:{title:"Kontakt",description:`Wir können Sie bei der Zusammenstellung der Anforderungen beraten.
324PoC und lokale LLM-Konfigurationen können ebenfalls berücksichtigt werden.`,primaryButton:"Kontakt",secondaryButton:"Technische Konsultation"}},GP={hero:{badges:["Unternehmen","RAG","Generierung von Sucherweiterungen"],title:"Vector / RAG Entwicklung",description:"Aufbau eines RAG-Systems zur Verknüpfung von internem Wissen mit LLM"},mission:{title:"Vector / RAG Development Services Überblick",paragraphs:["Wir werden ein RAG-System (Search Extension Generation) aufbauen, das es den Mitarbeitern ermöglicht, in natürlicher Sprache zu suchen und Fragen zu stellen, indem die im Unternehmen angesammelten Wissensbestände mit LLM verknüpft werden. Wir integrieren verschiedene Datenquellen wie Handbücher, Protokolle, technische Dokumente, FAQs, Slack-Verlauf, Confluence, SharePoint usw., um eine Umgebung zu schaffen, in der organisatorisches Wissen sofort genutzt werden kann.","Wir maximieren die Suchgenauigkeit und Antwortqualität, indem wir neben der einfachen Dokumentensuche die neuesten Technologien wie Hybrid Search (Vektorsuche + Schlagwortsuche), Reranking, hierarchisches Chunking, Metadatenfilterung usw. einsetzen. Wir geben die Quelle der Antwort eindeutig an, um sowohl die Halbierung der Suchergebnisse zu verhindern als auch die Zuverlässigkeit zu gewährleisten.","Wir unterstützen eine Vielzahl von Umgebungen, darunter AWS, GCP, Azure und On-Premise, und integrieren uns in die bestehende Authentifizierungsinfrastruktur und das Autoritätsmanagement. Wir bieten konsistente Unterstützung für die Aufrechterhaltung der Datenaktualität (differenzielle Updates und automatische Neuindizierung), die Analyse von Nutzungsprotokollen und die kontinuierliche Verbesserung der Genauigkeit."]},summary:{title:"RAG-Technologie-Trends",paragraphs:['Zwischen 2025 und 2026 tritt die RAG-Technologie in die Phase "Basisimplementierung bis Produktionsqualität" ein. Neben der einfachen Vektorsuche sind die Hybridsuche, die mehrere Suchmethoden kombiniert, das Reranking, das die Suchergebnisse neu ordnet, und die Query Decomposition, die komplexe Fragen zerlegt und verarbeitet, zu Standardkonfigurationen geworden.',"Auch die Chunking-Strategien haben sich weiterentwickelt: Hierarchisches Chunking, das die Struktur des Dokuments berücksichtigt, überlappende Chunks und multimodales Chunking, bei dem Tabellen und Abbildungen getrennt verarbeitet werden, tragen alle zur Verbesserung der Genauigkeit bei. Contextual Retrieval (das Hinzufügen von Kontextinformationen zu Chunks) hat sich ebenfalls als sehr effektiv erwiesen.","Für die Auswahl der Vektor-DB bieten neben verwalteten Die
324nsten wie Pinecone, Weaviate, Qdrant und Milvus auch PostgreSQL pgvector und lokales FAISS eine breite Palette von Optionen, um Ihre Anforderungen zu erfüllen. Auch Einbettungsmodelle sind verfügbar, darunter Text-Embedding-3-large, Cohere Embed v3 und mehrsprachige Modelle.",'Bei der Bereitstellung in Unternehmen sind die Verknüpfung von Autoritätsmanagement (ACL), die Maskierung von PII, Audit-Protokolle und ein mandantenfähiges Design wesentliche Anforderungen, und es besteht die Notwendigkeit, von einem "funktionierenden PoC" zu einem "produktionsreifen Produktionssystem" überzugehen.'],icons:[{label:`Hybride
325Suche`},{label:`Multimodal
326RAG`},{label:`Agentisch
327RAG`},{label:`Unternehmen
328Sicherheit`}]},features:{title:"Design- und Entwicklungsmerkmale",subtitle:"Design und Entwicklung",items:[{title:"Datenerfassung und Vorverarbeitungspipeline",description:"Datenextraktion und -bereinigung aus PDF, Word, Excel, HTML, Markdown, Slack, Confluence, SharePoint, usw. Multimodale Unterstützung einschließlich OCR, Tabellenstrukturanalyse und Generierung von Bildunterschriften. Aufrechterhaltung der Aktualität durch differenzierte Updates und geplante Ausführung."},{title:"Entwurf eines hochpräzisen Suchsystems",description:"Konstruieren Sie eine hochpräzise Suche, die Vektorsuche + BM25-Hybridsuche, Reranking durch Cohere Rerank / Cross-Encoder sowie Query Expansion und Decomposition kombiniert. Metadatenfilterung und erlaubnisbasierte Zugriffskontrolle sind ebenfalls implementiert."},{title:"Antwortgenerierung und Qualitätskontrolle",description:"Verbesserte Antwortqualität durch Kontextoptimierung, Few-shot Prompts und Chain-of-Thought-Inferenz. Quellenklärung, Anzeige des Konfidenzwerts und Erkennung von Halcinationen sorgen für Zuverlässigkeit im geschäftlichen Einsatz."},{title:"Betrieb und Verbesserungszyklus",description:"Wir bieten operative Unterstützung, einschließlich der Analyse von Nutzungsprotokollen, der Überwachung der Suchtrefferquote und der Antwortzufriedenheit, der kontinuierlichen Verbesserung durch Feedbackschleifen, der Infrastruktur für A/B-Tests, der Aktualisierung des Einbettungsmodells und der Überprüfung der Chunking-Strategie."}]},techStack:{title:"Technologie-Stack: Vektor / RAG",subtitle:"Plattform und Technologie",categories:{embeddingModels:{title:"Modelle einbetten",items:["OpenAI Texteinbettung-3-groß","Cohere Embed v3","Reise AI","Jina Einbettungen v3","BGE-M3 (mehrsprachig)","mehrsprachig-e5-groß","Japan-s
328pezifische Modelle"]},vectorDatabases:{title:"Vektordatenbanken",items:["Tannenzapfen (verwaltet)","Weaviate (Hybride Suche)","Qdrant (hohe Leistung)","Milvus (großer Maßstab)","Chroma (Leichtgewicht)","PostgreSQL pgvector","FAISS (lokal)"]},chunking:{title:"Chunking & Verarbeitung",items:["hierarchisches Chunking","Semantisches Chunking","Überlappende Chunks","Satzfenster","Kontextbezogenes Abrufen","Tabellen- und Diagrammbearbeitung","Multimodale Unterstützung"]},search:{title:"Suche und Abrufe",items:["Hybride Suche (Vektor + BM25)","Cohere Rerank","Encoder-übergreifendes Reranking","Erweiterung und Zerlegung von Abfragen","HyDE (Hypothetische Dokumentengenerierung)","Selbstabfrage-Abruf","Abruf mehrerer Abfragen"]}},updateNote:{title:"Wichtigste Aktualisierungspunkte für 2026",description:"Beim Einbettungsmodell wurden Text-Embedding-3-large und Cohere Embed v3 zum Unternehmensstandard, und die Leistung in japanischer Sprache verbesserte sich erheblich; Contextual Retrieval erwies sich als effektiv, und das Hinzufügen von Kontext zu Chunks wurde zur Standardmethode. Hybrid Search + Reranking ist zu einer obligatorischen Konfiguration für die Suche geworden, wodurch die Zahl der Konfigurationen, die sich auf die einfache Vektorsuche beschränken, verringert wurde, und Agentic RAG (Agenten wählen dynamisch Suchstrategien aus) wird in der Praxis eingesetzt. Auf der operativen Seite wird der Schwerpunkt auf die Einführung von Qualitätsmessungs- und Verbesserungszyklen unter Verwendung von RAG-Bewertungsrahmen (RAGAS, LangSmith) gelegt."}},cta:{title:"Kontakt",description:`Wir können Sie bei der Zusammenstellung der Anforderungen beraten.
329PoC und lokale LLM-Konfigurationen können ebenfalls berücksichtigt werden.`,primaryButton:"Kontakt",secondaryButton:"Technische Konsultation"}},OP={hero:{badges:["Voller Stapel","LLM-Integration","API-Entwurf"],title:"AI-Anwendungsentwicklung",description:"Entwurf und Entwicklung praktischer Anwendungen, die das LLM nutzen"},mission:{title:"Überblick über den AI-Anwendungsentwicklungsservice",paragraphs:["Wir bieten Design und Entwicklung von KI-Anwendungen, die durch die Analyse von Daten, die von externen APIs mit LLM erfasst werden, einen geschäftlichen Mehrwert schaffen, indem wir APIs mit verschiedenen Datenquellen wie CRM, ERP, SaaS, IoT-Sensoren und sozialen Medien verknüpfen und erfasste Daten in Echtzeit in LLM einspeisen. Wir ermöglichen fortschrittliche Datenanalysen, die mit herkömmlichen BI-Tools nicht möglich sind, wie z. B. die Erstellung von Analyseberichten mit natürlicher Sprache, die Erkennung von Anomalien, die Trendvorhersage und die automatische Klassifizierung.","Es handelt sich nicht nur um eine einfache API-Integration, sondern auch um die Integration mehrerer Datenquellen, die Datenbereinigung und die Konvertierung in ein Format, das für LLM durch strukturierte Verarbeitung leicht zu interpretieren ist. Promptes Engineering maximiert die Genauigkeit der Analyse und erzeugt eine auf die Geschäftsanforderungen spezialisierte Ausgabe. Wir entwickeln praktische Anwendungen, die Daten und KI kombinieren, z. B. Verkaufsdaten zur Vorhersage von Geschäftsverhandlungen, Kundensupportprotokolle zur Durchführung von VoC-Analysen und Sensordaten zur Bereitstellung von Wartungsempfehlungen für Geräte.","Wir unterstützen eine Vielzahl von Schnittstellen wie Webanwendungen, mobile Anwendungen, Slack/Teams-Integration und periodische Batch-Verarbeitung. Wir bieten konsistente Unterstützung von der Anforderungsdefinition über das API-Design und die Implementierung der LLM-Integration bis hin zum Produktionsbetrieb."]},summary:{title:"Trends in der Entwicklung von KI-Anwendungen",paragraphs:['Von 2025 bis 2026 tritt die Entwicklung von KI-Anwendungen in eine praktische Phase ein, die auf "API-Integration x LLM-Analyse" basiert. Die Analyse unstrukturierter Daten und die Generierung von Erkenntnissen in natürlicher Sprache, die von herkömmlichen BI-Tools und Dashboards nicht bewältigt werden können, werden allmählich in die Unternehmenssysteme integriert.',"Besonders hervorzuheben ist die Weiterentwicklung der LLM-Funktionalität für strukturierte Ausgabe, die eine strikte JSON-Schema-konforme Ausgabesteuerung ermöglicht und eine durchgängig automatisierte Pipeline Realität werden lässt, bei der über APIs erfasste Daten von LLM analysiert und die Ergebnisse direkt in nachfolgende Systeme eingespeist werden. Die mehrstufige Ausführung von Fu
329nction Calling ermöglicht es, die Datenerfassung, -integration und -analyse über mehrere APIs hinweg in einem einzigen Arbeitsablauf zu verarbeiten.","In der Datenverarbeitungsinfrastruktur hat sich Polars als Standard für die Hochgeschwindigkeitsverarbeitung herauskristallisiert, und in Kombination mit der Streaming-Verarbeitung ermöglicht es Echtzeitanalysen.","Bei Unternehmensimplementierungen haben sich die Anforderungen von einer einmaligen PoC-Entwicklung zu einem skalierbaren Design für den Produktionsbetrieb verlagert, was ein umfassendes Architekturdesign erfordert, das Kostenoptimierung, Fehlerbehandlung und Audit-Protokollunterstützung umfasst."],icons:[{label:`Agentisch
330KI`},{label:`MCP
331Protokoll`},{label:`Multi
332Agent`},{label:`Mensch-auf
333-the-Loop`}]},features:{title:"Design- und Entwicklungsmerkmale",subtitle:"Design und Entwicklung",items:[{title:"API-Integration und Entwurf der Datenerfassung",description:"Aufbau einer Datenerfassungsinfrastruktur, die verschiedene Protokolle wie REST API, GraphQL, WebSocket und Webhook unterstützt. Wir entwickeln eine stabile Datenerfassungspipeline, indem wir Authentifizierungsprozesse (OAuth, API-Schlüssel, JWT), Ratenbegrenzung und Wiederholungsmechanismen implementieren. Außerdem unterstützen wir die Datenintegration, die Zeitplanung und die differenzierte Erfassung von mehreren APIs."},{title:"Vorverarbeitung und Strukturierung von Daten",description:"Konvertiert Rohdaten in ein Format, das von LLM effizient analysiert werden kann, einschließlich JSON-Parsing, Datenbereinigung, Normalisierung und Verarbeitung fehlender Werte, und führt eine optimale Datensegmentierung und -zusammenfassung unter Berücksichtigung von Kontextfenstereinschränkungen durch. Die Zuweisung von Metadaten gewährleistet die Nachvollziehbarkeit der Analyseergebnisse."},{title:"LLM-Analyse und prompter Entwurf",description:"Maximieren Sie die Genauigkeit der Datenanalyse durch die Entwicklung von Vorlagen, die speziell auf Ihre Geschäftsanforderungen zugeschnitten sind. Wir erstellen Analysepipelines für Klassifizierung, Zusammenfassung, Stimmungsanalyse, Erkennung von Anomalien, Erstellung von Prognosen usw. Wir verwenden Function Calling und Structured Output, um Output in einem Format zu generieren, das leicht in nachfolgende Systeme integriert werden kann."},{title:"Implementierung und Betrieb der Anwendung",description:"Wir stellen die Analyseergebnisse über eine Vielzahl von Schnittstellen bereit, darunter FastAPI, Webanwendungen mit Next.js usw., Slack/Teams Bot und geplante Batch-Ausführung. Dashboards, Benachrichtigungen und automatische Berichtserstellung werden implementiert und in einer Form bereitgestellt, die Geschäftsanwender sofort nutzen können. Wir bieten auch Betriebsüberwachung, Kostenoptimierung und kontinuierliche Verbesserung."}]},techStack:{title:"Technologie-Stapel: AI-Anwendungsentwicklung",subtitle:"Plattform und Technologie",categories:{apiIntegration:{title:"API-Integration",items:["REST / GraphQL / WebSocket","OAuth 2.1 / API key / JWT","Webhook/Abfrage","Apache Airflow / Präfekt","Staudensellerie / Temporal","Anfragen / httpx / aiohttp","Ratenbegrenzung / Wiederholung","Datenüberprüfung (Pydantic)"]},dataProcessing:{title:"Datenverarbeitung",items:["Pandas / Polare","JSON/JSONL-Parser","Datenbereinigungs-Pipeline","Apache Spark (Verarbeitung in großem Maßstab)","dbt (Datenkonvertierung)","Große Erwartungen","Deltasee / Eisberg","Streaming (Kafka / Flink)"]},llmCloud:{title:"Wolke LLM",items:["OpenAI GPT-4o / GPT-4.1","Claude 3.5 / Claude 4","Zwilling 2.0 / Zwilling 2.5","Befehl R+ (Cohere)","Mistral Large"]},llmLocal:{title:"Lokaler LLM",items:["Llama 3.3 / Llama 4","Mistral / Mixtral","Qwen 2.5 / Qwen 3","DeepSeek V3 / R1","Gemma 2 / Gemma 3","Phi-4","ELYZA / Swallow (spezialisiert auf Japanisch)","Befehl R (Cohere)"]},inference:{title:"Schlussfolgerung / Rahmen",items:["vLLM / SGLang","Ollama / llama.cpp","LiteLLM-Vollmacht","Funktion Aufrufen","Strukturierte Ausgabe","Eingabeaufforderung Template Engine","LangChain / LlamaIndex","Proprietäre Analyse-Pipeline"]},application:{title:"Anwendungsschicht",items:["FastAPI / Litestar","Next.js / React","Slack SDK / Teams SDK","Streamlit / Gradio","Geplante Aufträge (Cron / Cloud Scheduler)","PostgreSQL / MongoDB","Redis (Cache / Warteschlange)","Docker / Kubernetes"]}},updateNote:{title:"Wichtigste Aktualisierungspunkte für 2026",description:"Im Bereich der LLM-Analyse ist die Funktionalität der strukturierten Ausgabe von GPT-4.1 und Claude 4 ausgereift, um eine strikte JSON-Schema-konforme Ausgabesteuerung zu standardisieren, und die mehrstufige Ausführung von Fu
333nktionsaufrufen ermöglicht eine komplexe Datenerfassung und -analyse über mehrere APIs hinweg in einer einzigen Pipeline. Die mehrstufige Ausführung von Funktionsaufrufen ermöglicht eine komplexe Datenerfassung und -analyse über mehrere APIs in einer einzigen Pipeline. In der Datenverarbeitung hat sich Polars als Alternative zu Pandas für die Hochgeschwindigkeitsverarbeitung etabliert und erleichtert in Kombination mit der Streaming-Verarbeitung den Aufbau einer Echtzeit-Analyseinfrastruktur. Auf der Anwendungsebene ist die Integration externer Tools mit MCP inzwischen gang und gäbe und beschleunigt die Entwicklung agentenbasierter Anwendungen, bei denen LLMs eigenständig APIs aufrufen, um Daten zu erfassen und zu analysieren."}},cta:{title:"Kontakt",description:`Wir können Sie bei der Zusammenstellung der Anforderungen beraten.
334PoC und lokale LLM-Konfigurationen können ebenfalls berücksichtigt werden.`,primaryButton:"Kontakt",secondaryButton:"Technische Konsultation"}},BP={seo:gP,header:hP,hero:fP,mission:kP,businessServices:bP,features:yP,businessProcess:vP,story:AP,contact:xP,footer:LP,cookiePolicy:PP,about:wP,portfolio:SP,common:IP,privacyPolicy:MP,termsOfService:jP,weatherMap:CP,agentDevelopment:DP,faq:zP,pricing:TP,aiTranscription:EP,keywordTracking:RP,onPremiseLLM:NP,vectorRAG:GP,aiAppDevelopment:OP},KP="https://telet.ai",VP=["ja","en","th","ms","id","zh","ko","es","pt","de"],FP=["home","about","privacy","terms","cookies","portfolio","agent-development","on-premise-llm","vector-rag","ai-app-development"];function Ql(n){return!!(n&&VP.includes(n))}function op(n){return!!(n&&FP.includes(n))}function on(n,t="home",s=null){const o=[n];return t!=="home"&&o.push(t),t==="portfolio"&&s&&o.push(s),`/${o.map(encodeURIComponent).join("/")}/`}function Ml(n,t="home",s=null){return`${KP}${on(n,t,s)}`}function Bi(n){const t=n.pathname.split("/").filter(Boolean).map(decodeURIComponent),s=Ql(t[0])?t[0]:null,o=s&&op(t[1])?t[1]:null,d=n.searchParams.get("lang"),p=n.searchParams.get("page"),c=s||(Ql(d)?d:null),g=o||(op(p)?p:"home"),h=g==="portfolio"&&(o?t[2]:n.searchParams.get("project"))||null;return{language:c,page:g,project:h}}const Jl={ja:{code:"ja",name:"日本語"},en:{code:"en",name:"English"},th:{code:"th",name:"ไทย"},ms:{code:"ms",name:"Bahasa Malaysia"},id:{code:"id",name:"Bahasa Indonesia"},zh:{code:"zh",name:"中文"},ko:{code:"ko",name:"한국어"},es:{code:"es",name:"Español"},pt:{code:"pt",name:"Português"},de:{code:"de",name:"Deutsch"}},Ct={ja:Av,en:Hv,th:yA,ms:UA,id:kx,zh:Wx,ko:hL,es:VL,pt:pP,de:BP};function WP(){const n=navigator.language.split("-")[0];return n in Ct?n:"en"}function Zl(){return typeof window>"u"?null:Bi(new URL(window.location.href)).language}function qP(){if(typeof window<"u"){const n=Zl();if(n)return n;const t=localStorage.getItem("telet-language");return t&&t in Ct?t:WP()}return"en"}const Gg=T.createContext(void 0);function UP({children:n}){const[t,s]=T.useState(qP),o=p=>{s(p),localStorage.setItem("telet-language",p);const c=Bi(new URL(window.location.href));window.history.replaceState({},"",on(p,c.page,c.project))},d=p=>{const c=p.split(".");let g=Ct[t];for(const h of c)if(g&&typeof g=="object"&&h in g)g=g[h];else{g=Ct.en;for(const b of c)if(g&&typeof g=="object"&&b in g)g=g[b];else return p;break}return g??p};return T.useEffect(()=>{const p=Zl();if(p){p!==t&&s(p),localStorage.setItem("telet-language",p);return}const c=localStorage.getItem("telet-language");c&&c in Ct&&c!==t&&s(c)},[]),T.useEffect(()=>{const p=()=>{const c=Zl();c&&Ql(c)&&(s(c),localStorage.setItem("telet-language",c))};return window.addEventListener("popstate",p),()=>window.removeEventListener("popstate",p)},[]),T.useEffect(()=>{document.documentElement.lang=t},[t]),l.jsx(Gg.Provider,{value:{language:t,setLanguage:o,t:d,translations:Ct[t]},children:n})}function Oe(){const n=T.useContext(Gg);if(n===void 0)throw new Error("useI18n must be used within an I18nProvider");return n}function lp(){const{language:n,setLanguage:t}=Oe(),[s,o]=T.useState(!1),d=T.useRef(null);T.useEffect(()=>{function g(h){d.current&&!d.current.contains(h.target)&&o(!1)}if(s)return document.addEventListener("mousedown",g),()=>{document.removeEventListener("mousedown",g)}},[s]);const p=g=>{t(g),o(!1)},c=Jl[n];return l.jsxs("div",{className:"relative",ref:d,children:[l.jsxs("button",{onClick:()=>o(!s),className:"flex items-center gap-2 px-3 py-2 rounded-lg border border-border bg-background hover:bg-muted/50 transition-colors","aria-label":"Change language",children:[l.jsx(Ld,{className:"w-4 h-4"}),l.jsx("span",{className:"text-sm font-medium",children:c.code.toUpperCase()})]}),s&&l.jsx("div",{className:"absolute right-0 mt-2 w-48 rounded-lg border border-border bg-background shadow-lg z-50 max-h-80 overflow-y-auto",children:l.jsx("div",{className:"p-2",children:Object.entries(Jl).map(([g,h])=>l.jsxs("button",{onClick:()=>p(g),className:`w-full flex items-center gap-3 px-3 py-2 rounded-md text-left transition-colors ${n===g?"bg-blue-900 text-white":"hover:bg-muted/50"}`,children:[l.jsx("span",{className:"text-xs font-mono w-6",children:h.code.toUpperCase()}),l.jsx("span",{className:"text-sm font-medium",children:h.name})]},g))})})]})}function Og({onNavigate:n}={}){const[t,s]=T.useState(!1),{language:o,t:d}=Oe(),p=on(o,"about"),c=(h,b)=>{b&&n&&(h.preventDefault(),n(b),s(!1))},g=(h,b)=>{h.preventDefault(),s(!1);const f=document.getElementById(b);f?f.scrollIntoView({behavior:"smooth"}):n&&(n("home"),setTimeout(()=>{const y=document.getElementById(b);y&&y.scrollIntoView({behavior:"smooth"})},100))};return l.jsxs("header",{className:"border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 responsive-header",children:[l.jsxs("div",{className:"container flex h-16 items-center justify-between px-4 mx-auto max-w-6xl responsive-header-inner",children:[l.jsxs("a",{href:"#home",className:"flex items-center space-x-3 cursor-pointer",onClick:h=>c(h,"home"),children:[l.jsx("span",{className:"text-[22px] sm:text-2xl font-bold brand-accent",children:"( ;"}),l.jsx("span",{className:"text-xl font-bold",children:" telet.ai"})]}),l.jsxs("nav",{className:"hidden md:flex items-center space-x-8 responsive-header-nav",children:[l.jsx("a",{href:"#services",className:"text-muted-foreground hover:text-foreground transition-colors",onClick:h=>
334g(h,"services"),children:d("header.nav.services")}),l.jsx("a",{href:"#portfolio",className:"text-muted-foreground hover:text-foreground transition-colors",onClick:h=>c(h,"portfolio"),children:d("header.nav.portfolio")}),l.jsx("a",{href:p,className:"text-muted-foreground hover:text-foreground transition-colors",onClick:h=>c(h,"about"),children:d("header.nav.about")}),l.jsx("a",{href:"#contact-form",className:"text-muted-foreground hover:text-foreground transition-colors",onClick:h=>g(h,"contact-form"),children:d("header.nav.contact")}),l.jsx(lp,{})]}),l.jsxs("div",{className:"flex items-center gap-2 md:hidden",children:[l.jsx(lp,{}),l.jsx("button",{onClick:()=>s(!t),children:t?l.jsx(Qy,{className:"h-6 w-6"}):l.jsx(Dy,{className:"h-6 w-6"})})]})]}),t&&l.jsx("div",{className:"md:hidden border-t bg-background",children:l.jsxs("nav",{className:"flex flex-col space-y-4 p-4",children:[l.jsx("a",{href:"#services",className:"text-muted-foreground hover:text-foreground transition-colors",onClick:h=>g(h,"services"),children:d("header.nav.services")}),l.jsx("a",{href:"#portfolio",className:"text-muted-foreground hover:text-foreground transition-colors",onClick:h=>c(h,"portfolio"),children:d("header.nav.portfolio")}),l.jsx("a",{href:p,className:"text-muted-foreground hover:text-foreground transition-colors",onClick:h=>c(h,"about"),children:d("header.nav.about")}),l.jsx("a",{href:"#contact-form",className:"text-muted-foreground hover:text-foreground transition-colors",onClick:h=>g(h,"contact-form"),children:d("header.nav.contact")})]})})]})}const _P="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBvcGFjaXR5PSIuMyIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIzLjciPjxyZWN0IHg9IjE2IiB5PSIxNiIgd2lkdGg9IjU2IiBoZWlnaHQ9IjU2IiByeD0iNiIvPjxwYXRoIGQ9Im0xNiA1OCAxNi0xOCAzMiAzMiIvPjxjaXJjbGUgY3g9IjUzIiBjeT0iMzUiIHI9IjciLz48L3N2Zz4KCg==";function sa(n){const[t,s]=T.useState(!1),o=()=>{s(!0)},{src:d,alt:p,className:c,lazy:g=!0,loading:h,...b}=n,f=h??(g?"lazy":"eager");return t?l.jsx("div",{className:`inline-block bg-gray-100 text-center align-middle ${c??""}`,children:l.jsx("div",{className:"flex items-center justify-center w-full h-full",children:l.jsx("img",{src:_P,alt:"Error loading image",...b,"data-original-url":d})})}):l.jsx("img",{src:d,alt:p,className:c,loading:f,decoding:"async",...b,onError:o})}function HP(){const{t:n}=Oe();return l.jsxs("section",{className:"relative min-h-[600px] lg:min-h-[700px] overflow-hidden responsive-hero ios-scroll",children:[l.jsx("div",{className:"absolute inset-0",children:l.jsx(sa,{src:"/images/optimized/hero-office.webp",alt:"AI Agent Development",className:"w-full h-full object-cover",lazy:!1})}),l.jsx("div",{className:"absolute inset-0 hero-overlay"}),l.jsx("div",{className:"relative container mx-auto max-w-6xl px-4 py-20 lg:py-32 responsive-hero-pad",children:l.jsxs("div",{className:"hero-glassmorphism text-center space-y-6 max-w-4xl mx-auto responsive-hero-stack",children:[l.jsxs("div",{className:"flex flex-col items-center mb-8",children:[l.jsx("div",{className:"text-5xl md:text-6xl font-bold text-foreground mb-4",children:n("hero.brandName")}),l.jsx("div",{className:"text-2xl md:text-3xl text-muted-foreground font-light",children:n("hero.tagline")})]}),l.jsxs("div",{className:"inline-flex items-center bg-background/80 text-foreground px-4 py-2 rounded-full border border-border shadow-lg backdrop-blur-md",children:[l.jsx(sy,{className:"w-4 h-4 mr-2"}),l.jsx("span",{className:"text-sm",children:n("hero.badge")})]}),l.jsx("h1",{className:"text-4xl md:text-6xl lg:text-7xl tracking-tight responsive-hero-title",children:l.jsxs("div",{className:"flex flex-col items-start max-w-fit mx-auto responsive-hero-lines",children:[l.jsx("span",{className:"block responsive-hero-line1",children:n("hero.title.line1")}),l.jsx("span",{className:"block pl-12 md:pl-20 responsive-hero-line2",children:n("hero.title.line2")}),l.jsx("span",{className:"block pl-24 md:pl-40 text-primary responsive-hero-line3",children:n("hero.title.line3")})]})}),l.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-2xl mx-auto responsive-hero-body",children:n("hero.description")})]})})]})}const $P=[Rg,Tn,tt,Nt],QP=["agent-development","on-premise-llm","vector-rag","ai-app-development"];function JP({onServiceClick:n}){const{t,translations:s}=Oe(),o=s.businessServices?.services||[];return l.jsx("section",{id:"services",className:"py-16 md:py-20 bg-white responsive-section",children:l.jsxs("div",{className:"container mx-auto max-w-7xl px-4 responsive-section-inner",children:[l.jsxs("div",{className:"text-center space-y-2 mb-16 responsive-section-header",children:[l.jsx("h2",{className:"text-3xl md:text-4xl",children:t("businessServices.title")}),l.jsx("p",{className:"text-sm text-muted-foreground",children:t("businessServices.subtitle")})]}),l.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8 responsive-services-grid",children:o.map((d,p)=>{const c=$P[p]||Rg,g=QP[p],h=g&&n;return l.jsxs("div",{className:`flex flex-col items-start p-4 rounded-lg transition-all duration-200 ease-out ${h?"cursor-pointer hover:-translate-y-1 hover:shadow-lg hover:bg-muted/10":""}`,onClick:()=>h&&n(g),children:[l.jsx("div",{className:"mb-6",children:l.jsx(c,{className:"w-12 h-12 text-blue-900",strokeWidth:1.5})}),l.jsx("h3",{className:"text-base font-semibold mb-3 leading-tight",children:d.title}),l.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:d.description})]},p)})})]})})}function Bg(n){var t,s,o="";if(typeof n=="string"||typeof n=="number")o+=n;else if(typeof n=="object")if(Array.isArray(n)){var d=n.length;for(t=0;t<d;t++)n[t]&&(s=Bg(n[t]))&&(o&&(o+=" "),o+=s)}else for(s in n)n[s]&&(o&&(o+=" "),o+=s);return o}function Kg(){for(var n,t,s=0,o="",d=arguments.length;s<d;s++)(n=arguments[s])&&(t=Bg(n))&&(o&&(o+=" "),o+=t);return o}const ZP=(n,t)=>{const s=new Array(n.length+t.length);for(let o=0;o<n.length;o++)s[o]=n[o];for(let o=0;o<t.length;o++)s[n.length+o]=t[o];return s},XP=(n,t)=>({classGroupId:n,validator:t}),Vg=(n=new Map,t=null,s)=>({nextPart:n,validators:t,classGroupId:s}),fr="-",dp=[],YP="arbitrary..",ew=n=>{const t=nw(n),{conflictingClassGroups:s,conflictingClassGroupModifiers:o}=n;return{getClassGroupId:c=>{if(c.startsWith("[")&&c.endsWith("]"))return aw(c);const g=c.split(fr),h=g[0]===""&&g.length>1?1:0;return Fg(g,h,t)},getConflictingClassGroupIds:(c,g)=>{if(g){const h=o[c],b=s[c];return h?b?ZP(b,h):h:b||dp}return s[c]||dp}}},Fg=(n,t,s)=>{if(n.length-t===0)return s.classGroupId;const d=n[t],p=s.nextPart.get(d);if(p){const b=Fg(n,t+1,p);if(b)return b}const c=s.validators;if(c===null)return;const g=t===0?n.join(fr):n.slice(t).join(fr),h=c.length;for(let b=0;b<h;b++){const f=c[b];if(f.validator(g))return f.classGroupId}},aw=n=>n.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=n.slice(1,-1),s=t.indexOf(":"),o=t.slice(0,s);return o?YP+o:void 0})(),nw=n=>{const{theme:t,classGroups:s}=n;return tw(s,t)},tw=(n,t)=>{const s=Vg();for(const o in n){const d=n[o];Pd(d,s,o,t)}return s},Pd=(n,t,s,o)=>{const d=n.length;for(let p=0;p<d;p++){const c=n[p];iw(c,t,s,o)}},iw=(n,t,s,o)=>
vendor: 8,600 bytes, line 334
334{if(typeof n=="string"){sw(n,t,s);return}if(typeof n=="function"){rw(n,t,s,o);return}ow(n,t,s,o)},sw=(n,t,s)=>{const o=n===""?t:Wg(t,n);o.classGroupId=s},rw=(n,t,s,o)=>{if(lw(n)){Pd(n(o),t,s,o);return}t.validators===null&&(t.validators=[]),t.validators.push(XP(s,n))},ow=(n,t,s,o)=>{const d=Object.entries(n),p=d.length;for(let c=0;c<p;c++){const[g,h]=d[c];Pd(h,Wg(t,g),s,o)}},Wg=(n,t)=>{let s=n;const o=t.split(fr),d=o.length;for(let p=0;p<d;p++){const c=o[p];let g=s.nextPart.get(c);g||(g=Vg(),s.nextPart.set(c,g)),s=g}return s},lw=n=>"isThemeGetter"in n&&n.isThemeGetter===!0,dw=n=>{if(n<1)return{get:()=>{},set:()=>{}};let t=0,s=Object.create(null),o=Object.create(null);const d=(p,c)=>{s[p]=c,t++,t>n&&(t=0,o=s,s=Object.create(null))};return{get(p){let c=s[p];if(c!==void 0)return c;if((c=o[p])!==void 0)return d(p,c),c},set(p,c){p in s?s[p]=c:d(p,c)}}},Xl="!",up=":",uw=[],cp=(n,t,s,o,d)=>({modifiers:n,hasImportantModifier:t,baseClassName:s,maybePostfixModifierPosition:o,isExternal:d}),cw=n=>{const{prefix:t,experimentalParseClassName:s}=n;let o=d=>{const p=[];let c=0,g=0,h=0,b;const f=d.length;for(let z=0;z<f;z++){const C=d[z];if(c===0&&g===0){if(C===up){p.push(d.slice(h,z)),h=z+1;continue}if(C==="/"){b=z;continue}}C==="["?c++:C==="]"?c--:C==="("?g++:C===")"&&g--}const y=p.length===0?d:d.slice(h);let A=y,M=!1;y.endsWith(Xl)?(A=y.slice(0,-1),M=!0):y.startsWith(Xl)&&(A=y.slice(1),M=!0);const P=b&&b>h?b-h:void 0;return cp(p,M,A,P)};if(t){const d=t+up,p=o;o=c=>c.startsWith(d)?p(c.slice(d.length)):cp(uw,!1,c,void 0,!0)}if(s){const d=o;o=p=>s({className:p,parseClassName:d})}return o},mw=n=>{const t=new Map;return n.orderSensitiveModifiers.forEach((s,o)=>{t.set(s,1e6+o)}),s=>{const o=[];let d=[];for(let p=0;p<s.length;p++){const c=s[p],g=c[0]==="[",h=t.has(c);g||h?(d.length>0&&(d.sort(),o.push(...d),d=[]),o.push(c)):d.push(c)}return d.length>0&&(d.sort(),o.push(...d)),o}},pw=n=>({cache:dw(n.cacheSize),parseClassName:cw(n),sortModifiers:mw(n),...ew(n)}),gw=/\s+/,hw=(n,t)=>{const{parseClassName:s,getClassGroupId:o,getConflictingClassGroupIds:d,sortModifiers:p}=t,c=[],g=n.trim().split(gw);let h="";for(let b=g.length-1;b>=0;b-=1){const f=g[b],{isExternal:y,modifiers:A,hasImportantModifier:M,baseClassName:P,maybePostfixModifierPosition:z}=s(f);if(y){h=f+(h.length>0?" "+h:h);continue}let C=!!z,E=o(C?P.substring(0,z):P);if(!E){if(!C){h=f+(h.length>0?" "+h:h);continue}if(E=o(P),!E){h=f+(h.length>0?" "+h:h);continue}C=!1}const F=A.length===0?"":A.length===1?A[0]:p(A).join(":"),K=M?F+Xl:F,U=K+E;if(c.indexOf(U)>-1)continue;c.push(U);const W=d(E,C);for(let J=0;J<W.length;++J){const de=W[J];c.push(K+de)}h=f+(h.length>0?" "+h:h)}return h},fw=(...n)=>{let t=0,s,o,d="";for(;t<n.length;)(s=n[t++])&&(o=qg(s))&&(d&&(d+=" "),d+=o);return d},qg=n=>{if(typeof n=="string")return n;let t,s="";for(let o=0;o<n.length;o++)n[o]&&(t=qg(n[o]))&&(s&&(s+=" "),s+=t);return s},kw=(n,...t)=>{let s,o,d,p;const c=h=>{const b=t.reduce((f,y)=>y(f),n());return s=pw(b),o=s.cache.get,d=s.cache.set,p=g,g(h)},g=h=>{const b=o(h);if(b)return b;const f=hw(h,s);return d(h,f),f};return p=c,(...h)=>p(fw(...h))},bw=[],Ue=n=>{const t=s=>s[n]||bw;return t.isThemeGetter=!0,t},Ug=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,_g=/^\((?:(\w[\w-]*):)?(.+)\)$/i,yw=/^\d+\/\d+$/,vw=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Aw=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,xw=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Lw=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Pw=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,jt=n=>yw.test(n),ge=n=>!!n&&!Number.isNaN(Number(n)),Cn=n=>!!n&&Number.isInteger(Number(n)),jl=n=>n.endsWith("%")&&ge(n.slice(0,-1)),tn=n=>vw.test(n),ww=()=>!0,Sw=n=>Aw.test(n)&&!xw.test(n),Hg=()=>!1,Iw=n=>Lw.test(n),Mw=n=>Pw.test(n),jw=n=>!X(n)&&!Y(n),Cw=n=>Bt(n,Jg,Hg),X=n=>Ug.test(n),Zn=n=>Bt(n,Zg,Sw),Cl=n=>Bt(n,Rw,ge),mp=n=>Bt(n,$g,Hg),Dw=n=>Bt(n,Qg,Mw),rr=n=>Bt(n,Xg,Iw),Y=n=>_g.test(n),Ci=n=>Kt(n,Zg),zw=n=>Kt(n,Nw),pp=n=>Kt(n,$g),Tw=n=>Kt(n,Jg),Ew=n=>Kt(n,Qg),or=n=>Kt(n,Xg,!0),Bt=(n,t,s)=>{const o=Ug.exec(n);return o?o[1]?t(o[1]):s(o[2]):!1},Kt=(n,t,s=!1)=>{const o=_g.exec(n);return o?o[1]?t(o[1]):s:!1},$g=n=>n==="position"||n==="percentage",Qg=n=>n==="image"||n==="url",Jg=n=>n==="length"||n==="size"||n==="bg-size",Zg=n=>n==="length",Rw=n=>n==="number",Nw=n=>n==="family-name",Xg=n=>n==="shadow",Gw=()=>{const n=Ue("color"),t=Ue("font"),s=Ue("text"),o=Ue("font-weight"),d=Ue("tracking"),p=Ue("leading"),c=Ue("breakpoint"),g=Ue("container"),h=Ue("spacing"),b=Ue("radius"),f=Ue("shadow"),y=Ue("inset-shadow"),A=Ue("text-shadow"),M=Ue("drop-shadow"),P=Ue("blur"),z=Ue("perspective"),C=Ue("aspect"),E=Ue("ease"),F=Ue("animate"),K=()=>["auto","avoid","all","avoid-page","page","left","right","column"],U=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],W=()=>[...U(),Y,X],J=()=>["auto","hidden","clip","visible","scroll"],de=()=>["auto","contain","none"],O=()=>[Y,X,h],_=()=>[jt,"full","auto",...O()],te=()=>[Cn,"none","subgrid",Y,X],be=()=>["auto",{span:["full",Cn,Y,X]},Cn,Y,X],pe=()=>[Cn,"auto",Y,X],ke=()=>["auto","min","max","fr",Y,X],Ie=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],me=()=>["start","end","center","stretch","center-safe","end-safe"],Le=()=>["auto",...O()],se=()=>[jt,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...O()],D=()=>[n,Y,X],Q=()=>[...U(),pp,mp,{position:[Y,X]}],q=()=>["no-repeat",{repeat:["","x","y","space","round"]}],w=()=>["auto","cover","contain",Tw,Cw,{size:[Y,X]}],R=()=>[jl,Ci,Zn],ie=()=>["","none","full",b,Y,X],le=()=>["",ge,Ci,Zn],fe=()=>["solid","dashed","dotted","double"],ye=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ce=()=>[ge,jl,pp,mp],Ae=()=>["","none",P,Y,X],we=()=>["none",ge,Y,X],He=()=>["none",ge,Y,X],un=()=>[ge,Y,X],Gn=()=>[jt,"full",...O()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[tn],breakpoint:[tn],color:[ww],container:[tn],"drop-shadow":[tn],ease:["in","out","in-out"],font:[jw],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[tn],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[tn],shadow:[tn],spacing:["px",ge],text:[tn],"text-shadow":[tn],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",jt,X,Y,C]}],container:["container"],columns:[{columns:[ge,X,Y,g]}],"break-after":[{"break-after":K()}],"break-before":[{"break-before":K()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:W()}],overflow:[{overflow:J()}],"overflow-x":[{"overflow-x":J()}],"overflow-y":[{"overflow-y":J()}],overscroll:[{overscroll:de()}],"overscroll-x":[{"overscroll-x":de()}],"overscroll-y":[{"overscroll-y":de()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:_()}],"inset-x":[{"inset-x":_()}],"inset-y":[{"inset-y":_()}],start:[{start:_()}],end:[{end:_()}],top:[{top:_()}],right:[{right:_()}],bottom:[{bottom:_()}],left:[{left:_()}],visibility:["visible","invisible","collapse"],z:[{z:[Cn,"auto",Y,X]}],basis:[{basis:[jt,"full","auto",g,...O()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ge,jt,"auto","initial","none",X]}],grow:[{grow:["",ge,Y,X]}],shrink:[{shrink:["",ge,Y,X]}],order:[{order:[Cn,"first","last","none",Y,X]}],"grid-cols":[{"grid-cols":te()}],"col-start-end":[{col:be()}],"col-start":[{"col-start":pe()}
vendor: 10,888 bytes, line 334
334],"col-end":[{"col-end":pe()}],"grid-rows":[{"grid-rows":te()}],"row-start-end":[{row:be()}],"row-start":[{"row-start":pe()}],"row-end":[{"row-end":pe()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":ke()}],"auto-rows":[{"auto-rows":ke()}],gap:[{gap:O()}],"gap-x":[{"gap-x":O()}],"gap-y":[{"gap-y":O()}],"justify-content":[{justify:[...Ie(),"normal"]}],"justify-items":[{"justify-items":[...me(),"normal"]}],"justify-self":[{"justify-self":["auto",...me()]}],"align-content":[{content:["normal",...Ie()]}],"align-items":[{items:[...me(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...me(),{baseline:["","last"]}]}],"place-content":[{"place-content":Ie()}],"place-items":[{"place-items":[...me(),"baseline"]}],"place-self":[{"place-self":["auto",...me()]}],p:[{p:O()}],px:[{px:O()}],py:[{py:O()}],ps:[{ps:O()}],pe:[{pe:O()}],pt:[{pt:O()}],pr:[{pr:O()}],pb:[{pb:O()}],pl:[{pl:O()}],m:[{m:Le()}],mx:[{mx:Le()}],my:[{my:Le()}],ms:[{ms:Le()}],me:[{me:Le()}],mt:[{mt:Le()}],mr:[{mr:Le()}],mb:[{mb:Le()}],ml:[{ml:Le()}],"space-x":[{"space-x":O()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":O()}],"space-y-reverse":["space-y-reverse"],size:[{size:se()}],w:[{w:[g,"screen",...se()]}],"min-w":[{"min-w":[g,"screen","none",...se()]}],"max-w":[{"max-w":[g,"screen","none","prose",{screen:[c]},...se()]}],h:[{h:["screen","lh",...se()]}],"min-h":[{"min-h":["screen","lh","none",...se()]}],"max-h":[{"max-h":["screen","lh",...se()]}],"font-size":[{text:["base",s,Ci,Zn]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,Y,Cl]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",jl,X]}],"font-family":[{font:[zw,X,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[d,Y,X]}],"line-clamp":[{"line-clamp":[ge,"none",Y,Cl]}],leading:[{leading:[p,...O()]}],"list-image":[{"list-image":["none",Y,X]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Y,X]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:D()}],"text-color":[{text:D()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...fe(),"wavy"]}],"text-decoration-thickness":[{decoration:[ge,"from-font","auto",Y,Zn]}],"text-decoration-color":[{decoration:D()}],"underline-offset":[{"underline-offset":[ge,"auto",Y,X]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:O()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Y,X]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Y,X]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:Q()}],"bg-repeat":[{bg:q()}],"bg-size":[{bg:w()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Cn,Y,X],radial:["",Y,X],conic:[Cn,Y,X]},Ew,Dw]}],"bg-color":[{bg:D()}],"gradient-from-pos":[{from:R()}],"gradient-via-pos":[{via:R()}],"gradient-to-pos":[{to:R()}],"gradient-from":[{from:D()}],"gradient-via":[{via:D()}],"gradient-to":[{to:D()}],rounded:[{rounded:ie()}],"rounded-s":[{"rounded-s":ie()}],"rounded-e":[{"rounded-e":ie()}],"rounded-t":[{"rounded-t":ie()}],"rounded-r":[{"rounded-r":ie()}],"rounded-b":[{"rounded-b":ie()}],"rounded-l":[{"rounded-l":ie()}],"rounded-ss":[{"rounded-ss":ie()}],"rounded-se":[{"rounded-se":ie()}],"rounded-ee":[{"rounded-ee":ie()}],"rounded-es":[{"rounded-es":ie()}],"rounded-tl":[{"rounded-tl":ie()}],"rounded-tr":[{"rounded-tr":ie()}],"rounded-br":[{"rounded-br":ie()}],"rounded-bl":[{"rounded-bl":ie()}],"border-w":[{border:le()}],"border-w-x":[{"border-x":le()}],"border-w-y":[{"border-y":le()}],"border-w-s":[{"border-s":le()}],"border-w-e":[{"border-e":le()}],"border-w-t":[{"border-t":le()}],"border-w-r":[{"border-r":le()}],"border-w-b":[{"border-b":le()}],"border-w-l":[{"border-l":le()}],"divide-x":[{"divide-x":le()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":le()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...fe(),"hidden","none"]}],"divide-style":[{divide:[...fe(),"hidden","none"]}],"border-color":[{border:D()}],"border-color-x":[{"border-x":D()}],"border-color-y":[{"border-y":D()}],"border-color-s":[{"border-s":D()}],"border-color-e":[{"border-e":D()}],"border-color-t":[{"border-t":D()}],"border-color-r":[{"border-r":D()}],"border-color-b":[{"border-b":D()}],"border-color-l":[{"border-l":D()}],"divide-color":[{divide:D()}],"outline-style":[{outline:[...fe(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ge,Y,X]}],"outline-w":[{outline:["",ge,Ci,Zn]}],"outline-color":[{outline:D()}],shadow:[{shadow:["","none",f,or,rr]}],"shadow-color":[{shadow:D()}],"inset-shadow":[{"inset-shadow":["none",y,or,rr]}],"inset-shadow-color":[{"inset-shadow":D()}],"ring-w":[{ring:le()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:D()}],"ring-offset-w":[{"ring-offset":[ge,Zn]}],"ring-offset-color":[{"ring-offset":D()}],"inset-ring-w":[{"inset-ring":le()}],"inset-ring-color":[{"inset-ring":D()}],"text-shadow":[{"text-shadow":["none",A,or,rr]}],"text-shadow-color":[{"text-shadow":D()}],opacity:[{opacity:[ge,Y,X]}],"mix-blend":[{"mix-blend":[...ye(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ye()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ge]}],"mask-image-linear-from-pos":[{"mask-linear-from":ce()}],"mask-image-linear-to-pos":[{"mask-linear-to":ce()}],"mask-image-linear-from-color":[{"mask-linear-from":D()}],"mask-image-linear-to-color":[{"mask-linear-to":D()}],"mask-image-t-from-pos":[{"mask-t-from":ce()}],"mask-image-t-to-pos":[{"mask-t-to":ce()}],"mask-image-t-from-color":[{"mask-t-from":D()}],"mask-image-t-to-color":[{"mask-t-to":D()}],"mask-image-r-from-pos":[{"mask-r-from":ce()}],"mask-image-r-to-pos":[{"mask-r-to":ce()}],"mask-image-r-from-color":[{"mask-r-from":D()}],"mask-image-r-to-color":[{"mask-r-to":D()}],"mask-image-b-from-pos":[{"mask-b-from":ce()}],"mask-image-b-to-pos":[{"mask-b-to":ce()}],"mask-image-b-from-color":[{"mask-b-from":D()}],"mask-image-b-to-color":[{"mask-b-to":D()}],"mask-image-l-from-pos":[{"mask-l-from":ce()}],"mask-image-l-to-pos":[{"mask-l-to":ce()}],"mask-image-l-from-color":[{"mask-l-from":D()}],"mask-image-l-to-color":[{"mask-l-to":D()}],"mask-image-x-from-pos":[{"mask-x-from":ce()}],"mask-image-x-to-pos":[{"mask-x-to":ce()}],"mask-image-x-from-color":[{"mask-x-from":D()}],"mask-image-x-to-color":[{"mask-x-to":D()}],"mask-image-y-from-pos":[{"mask-y-from":ce()}],"mask-image-y-to-pos":[{"mask-y-to":ce()}],"mask-image-y-from-color":[{"mask-y-from":D()}],"mask-image-y-to-color":[{"mask-y-to":D()}],"mask-image-radial":[{"mask-radial":[Y,X]}],"mask-image-radial-from-pos":[{"mask-radial-from":ce()}],"mask-image-radial-to-pos":[{"mask-radial-to":ce()}],"mask-image-radial-from-color":[{"mask-radial-from":D()}],"mask-image-radial-to-color":[{"mask-radial-to":D()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":U()}],"mask-image-conic-pos":[{"mask-conic":[ge]}],"mask-image-conic-from-pos":[{"mask-conic-from":ce()}],"mask-image-conic-to-pos":[{"mask-conic-to":ce()}],"mask-image-conic-from-color":[{"mask-conic-from":D()}],"mask-image-conic-to-color":[{"mask-conic-to":D()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:Q()}],"mask-repeat":[{mask:q()}],"mask-size":[{mask:w()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Y,X]}],filter:[{filter:["","none",Y,X]}],blur:[{blur:Ae()}],brightness:[{brightness:[ge,Y,X]}],contrast:[{contrast:[ge,Y,X]}],"drop-shadow":[{"drop-shadow":["","none",M,or,rr]}],"drop-shadow-color":[{"drop-shadow":D()}],grayscale:[{grayscale:["",ge,Y,X]}],"hue-rotate":[{"hue-rotate":[ge,Y,X]}],invert:[{invert:["",ge,Y,X]}],saturate:[{saturate:[ge,Y,X]}],sepia:[{sepia:["",ge,Y,X]}],"backdrop-filter":[{"backdrop-filter":["","none",Y,X]}],"backdrop-blur":[{"backdrop-blur":Ae()}],"backdrop-brightness":[{"backdrop-brightness":[ge,Y,X]}],"backdrop-contrast":[{"backdrop-contrast":[ge,Y,X]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ge,Y,X]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ge,Y,X]}],"backdrop-invert":[{"backdrop-invert":["",ge,Y,X]}],"backdrop-opacity":[{"backdrop-opacity":[ge,Y,X]}],"backdrop-saturate":[{"backdrop-saturate":[ge,Y,X]}],"backdrop-sepia":[{"backdrop-sepia":["",ge,Y,X]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":O()}],"border-spacing-x":[{"border-spacing-x":O()}],"border-spacing-y":[{"border-spacing-y":O()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Y,X]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ge,"initial",Y,X]}],ease:[{ease:["linear","initial",E,Y,X]}],delay:[{delay:[ge,Y,X]}],animate:[{animate:["none",F,Y,X]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[z,Y,X]}],"perspective-origin":[{"perspective-origin":W()}],rotate:[{rotate:we()}],"rotate-x":[{"rotate-x":we()}],"rotate-y":[{"rotate-y":we()}],"rotate-z":[{"rotate-z":we()}],scale:[{scale:He()}],"scale-x":[{"scale-x":He()}],"scale-y":[{"scale-y":He()}],"scale-z":[{"scale-z":He()}],"scale-3d":["scale-3d"],skew:[{skew:un()}],"skew-x":[{"skew-x":un()}],"skew-y":[{"skew-y":un()}],transform:[{transform:[Y,X,"","none","gpu","cpu"]}],"transform-origin":[{origin:W()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Gn()}],"translate-x":[{"translate-x":Gn()}],"translate-y":[{"translate-y":Gn()}],"translate-z":[{"translate-z":Gn()}
vendor: 5,125 bytes, line 334
334],"translate-none":["translate-none"],accent:[{accent:D()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:D()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Y,X]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":O()}],"scroll-mx":[{"scroll-mx":O()}],"scroll-my":[{"scroll-my":O()}],"scroll-ms":[{"scroll-ms":O()}],"scroll-me":[{"scroll-me":O()}],"scroll-mt":[{"scroll-mt":O()}],"scroll-mr":[{"scroll-mr":O()}],"scroll-mb":[{"scroll-mb":O()}],"scroll-ml":[{"scroll-ml":O()}],"scroll-p":[{"scroll-p":O()}],"scroll-px":[{"scroll-px":O()}],"scroll-py":[{"scroll-py":O()}],"scroll-ps":[{"scroll-ps":O()}],"scroll-pe":[{"scroll-pe":O()}],"scroll-pt":[{"scroll-pt":O()}],"scroll-pr":[{"scroll-pr":O()}],"scroll-pb":[{"scroll-pb":O()}],"scroll-pl":[{"scroll-pl":O()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Y,X]}],fill:[{fill:["none",...D()]}],"stroke-w":[{stroke:[ge,Ci,Zn,Cl]}],stroke:[{stroke:["none",...D()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Ow=kw(Gw);function Ba(...n){return Ow(Kg(n))}function wd({className:n,...t}){return l.jsx("div",{"data-slot":"card",className:Ba("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border",n),...t})}function Bw({className:n,...t}){return l.jsx("div",{"data-slot":"card-header",className:Ba("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 pt-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",n),...t})}function Kw({className:n,...t}){return l.jsx("h4",{"data-slot":"card-title",className:Ba("leading-none",n
vendor: 4,140 bytes, line 334
334),...t})}function Vw({className:n,...t}){return l.jsx("p",{"data-slot":"card-description",className:Ba("text-muted-foreground",n),...t})}function Yg({className:n,...t}){return l.jsx("div",{"data-slot":"card-content",className:Ba("px-6 [&:last-child]:pb-6",n),...t})}const Fw=[Ld,fy,Tn,Ry,xd,Uy,oy,Ty,Vy],Ww=["multilingual-assistant","weather-forecast","local-llm","orbital-prediction","real-estate","fortune-ai","google-workspace","world-news","security-monitoring"];function qw({onNavigateToPortfolio:n}){const{t,translations:s}=Oe(),o=s.features?.items||[],d=p=>{n&&n(p)};return l.jsx("section",{id:"features",className:"py-20 lg:py-32 responsive-section",children:l.jsxs("div",{className:"container mx-auto max-w-6xl px-4 responsive-section-inner",children:[l.jsxs("div",{className:"text-center space-y-4 mb-16 responsive-section-header",children:[l.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl",children:t("features.title")}),l.jsx("p",{className:"text-lg text-muted-foreground max-w-2xl mx-auto",children:t("features.subtitle")})]}),l.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 responsive-features-grid",children:o.map((p,c)=>{const g=Fw[c]||Ld,h=Ww[c];return l.jsxs(wd,{className:"border-border/50 cursor-pointer hover:border-primary hover:shadow-lg transition-all",onClick:()=>d(h),children:[l.jsxs(Bw,{children:[l.jsx("div",{className:"w-12 h-12 flex items-center justify-center mb-4",children:l.jsx(g,{className:"w-6 h-6 text-primary"})}),l.jsx(Kw,{className:"text-xl",children:p.title})]}),l.jsxs(Yg,{children:[l.jsx(Vw,{className:"text-base",children:p.description}),l.jsx("div",{className:"mt-4 text-sm text-primary",children:t("features.viewDetails")})]})]},c)})})]})})}const eh=T.createContext({});function Uw(n){const t=T.useRef(null);return t.current===null&&(t.current=n()),t.current}const ah=typeof window<"u",_w=ah?T.useLayoutEffect:T.useEffect,Sd=T.createContext(null);function Id(n,t){n.indexOf(t)===-1&&n.push(t)}function Md(n,t){const s=n.indexOf(t);s>-1&&n.splice(s,1)}const $a=(n,t,s)=>s>t?t:s<n?n:s;let jd=()=>{};const dn={},nh=n=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(n);function th(n){return typeof n=="object"&&n!==null}const ih=n=>/^0[^.\s]+$/u.test(n);function Cd(n){let t;return()=>(t===void 0&&(t=n()),t)}const Ma=n=>n,Hw=(n,t)=>s=>t(n(s)),Ui=(...n)=>n.reduce(Hw),Ki=(n,t,s)=>{const o=t-n;return o===0?1:(s-n)/o};class Dd{constructor(){this.subscriptions=[]}add(t){return Id(this.subscriptions,t),()=>Md(this.subscriptions,t)}notify(t,s,o){const d=this.subscriptions.length;if(d)if(d===1)this.subscriptions[0](t,s,o);else for(let p=0;p<d;p++){const c=this.subscriptions[p];c&&c(t,s,o)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}const ln=n=>n*1e3,Ia=n=>n/1e3;function sh(n,t){return t?n*(1e3/t):0}const rh=(n,t,s)=>(((1-3*s+3*t)*n+(3*s-6*t))*n+3*t)*n,$w=1e-7,Qw=12;function Jw(n,t,s,o,d){let p,c,g=0;do c=t+(s-t)/2,p=rh(c,o,d)-n,p>0?s=c:t=c;while(Math.abs(p)>$w&&++g<Qw);return c}function _i(n,t,s,o){if(n===t&&s===o)return Ma;const d=p=>Jw(p,0,1,n,s);return p=>p===0||p===1?p:rh(d(p),t,o)}const oh=n=>t=>t<=.5?n(2*t)/2:(2-n(2*(1-t)))/2,lh=n=>t=>1-n(1-t),dh=_i(.33,1.53,.69,.99),zd=lh(dh),uh=oh(zd),ch=n=>(n*=2)<1?.5*zd(n):.5*(2-Math.pow(2,-10*(n-1))),Td=n=>1-Math.sin(Math.acos(n)),mh=lh(Td),ph=oh(Td),Zw=_i(.42,0,1,1),Xw=_i(0,0,.58,1),gh=_i(.42,0,.58,1),Yw=n=>Array.isArray(n)&&typeof n[0]!="number",hh=n=>Array.isArray(n)&&typeof n[0]=="number",eS={linear:Ma,easeIn:Zw,easeInOut:gh,easeOut:Xw,circIn:Td,circInOut:ph,circOut:mh,backIn:zd,backInOut:uh,backOut:dh,anticipate:ch},aS=n=>typeof n=="string",gp=n=>{if(hh(n)){jd(n.length===4);const[t,s,o,d]=n;return _i(t,s,o,d)}else if(aS(n))return eS[n];return n},lr=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function nS(n,t){let s=new Set,o=new Set,d=!1,p=!1;const c=new WeakSet;let g={delta:0,timestamp:0,isProcessing:!1};function h(f){c.has(f)&&(b.schedule(f),n()),f(g)}const b={schedule:(f,y=!1,A=!1)=>{const P=A&&d?s:o;return y&&c.add(f),P.has(f)||P.add(f),f},cancel:f=>{o.delete(f),c.delete(f)},process:f=>{if(g=f,d){p=!0;return}
vendor: 111,618 bytes, line 334
334d=!0,[s,o]=[o,s],s.forEach(h),s.clear(),d=!1,p&&(p=!1,b.process(f))}};return b}const tS=40;function fh(n,t){let s=!1,o=!0;const d={delta:0,timestamp:0,isProcessing:!1},p=()=>s=!0,c=lr.reduce((K,U)=>(K[U]=nS(p),K),{}),{setup:g,read:h,resolveKeyframes:b,preUpdate:f,update:y,preRender:A,render:M,postRender:P}=c,z=()=>{const K=dn.useManualTiming?d.timestamp:performance.now();s=!1,dn.useManualTiming||(d.delta=o?1e3/60:Math.max(Math.min(K-d.timestamp,tS),1)),d.timestamp=K,d.isProcessing=!0,g.process(d),h.process(d),b.process(d),f.process(d),y.process(d),A.process(d),M.process(d),P.process(d),d.isProcessing=!1,s&&t&&(o=!1,n(z))},C=()=>{s=!0,o=!0,d.isProcessing||n(z)};return{schedule:lr.reduce((K,U)=>{const W=c[U];return K[U]=(J,de=!1,O=!1)=>(s||C(),W.schedule(J,de,O)),K},{}),cancel:K=>{for(let U=0;U<lr.length;U++)c[lr[U]].cancel(K)},state:d,steps:c}}const{schedule:De,cancel:En,state:Ye,steps:Dl}=fh(typeof requestAnimationFrame<"u"?requestAnimationFrame:Ma,!0);let mr;function iS(){mr=void 0}const la={now:()=>(mr===void 0&&la.set(Ye.isProcessing||dn.useManualTiming?Ye.timestamp:performance.now()),mr),set:n=>{mr=n,queueMicrotask(iS)}},kh=n=>t=>typeof t=="string"&&t.startsWith(n),bh=kh("--"),sS=kh("var(--"),Ed=n=>sS(n)?rS.test(n.split("/*")[0].trim()):!1,rS=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function hp(n){return typeof n!="string"?!1:n.split("/*")[0].includes("var(--")}const Vt={test:n=>typeof n=="number",parse:parseFloat,transform:n=>n},Vi={...Vt,transform:n=>$a(0,1,n)},dr={...Vt,default:1},Ei=n=>Math.round(n*1e5)/1e5,Rd=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function oS(n){return n==null}const lS=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Nd=(n,t)=>s=>!!(typeof s=="string"&&lS.test(s)&&s.startsWith(n)||t&&!oS(s)&&Object.prototype.hasOwnProperty.call(s,t)),yh=(n,t,s)=>o=>{if(typeof o!="string")return o;const[d,p,c,g]=o.match(Rd);return{[n]:parseFloat(d),[t]:parseFloat(p),[s]:parseFloat(c),alpha:g!==void 0?parseFloat(g):1}},dS=n=>$a(0,255,n),zl={...Vt,transform:n=>Math.round(dS(n))},et={test:Nd("rgb","red"),parse:yh("red","green","blue"),transform:({red:n,green:t,blue:s,alpha:o=1})=>"rgba("+zl.transform(n)+", "+zl.transform(t)+", "+zl.transform(s)+", "+Ei(Vi.transform(o))+")"};function uS(n){let t="",s="",o="",d="";return n.length>5?(t=n.substring(1,3),s=n.substring(3,5),o=n.substring(5,7),d=n.substring(7,9)):(t=n.substring(1,2),s=n.substring(2,3),o=n.substring(3,4),d=n.substring(4,5),t+=t,s+=s,o+=o,d+=d),{red:parseInt(t,16),green:parseInt(s,16),blue:parseInt(o,16),alpha:d?parseInt(d,16)/255:1}}const Yl={test:Nd("#"),parse:uS,transform:et.transform},Hi=n=>({test:t=>typeof t=="string"&&t.endsWith(n)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${n}`}),Dn=Hi("deg"),Ha=Hi("%"),ee=Hi("px"),cS=Hi("vh"),mS=Hi("vw"),fp={...Ha,parse:n=>Ha.parse(n)/100,transform:n=>Ha.transform(n*100)},Dt={test:Nd("hsl","hue"),parse:yh("hue","saturation","lightness"),transform:({hue:n,saturation:t,lightness:s,alpha:o=1})=>"hsla("+Math.round(n)+", "+Ha.transform(Ei(t))+", "+Ha.transform(Ei(s))+", "+Ei(Vi.transform(o))+")"},Fe={test:n=>et.test(n)||Yl.test(n)||Dt.test(n),parse:n=>et.test(n)?et.parse(n):Dt.test(n)?Dt.parse(n):Yl.parse(n),transform:n=>typeof n=="string"?n:n.hasOwnProperty("red")?et.transform(n):Dt.transform(n),getAnimatableNone:n=>{const t=Fe.parse(n);return t.alpha=0,Fe.transform(t)}},pS=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function gS(n){return isNaN(n)&&typeof n=="string"&&(n.match(Rd)?.length||0)+(n.match(pS)?.length||0)>0}const vh="number",Ah="color",hS="var",fS="var(",kp="${}",kS=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function Fi(n){const t=n.toString(),s=[],o={color:[],number:[],var:[]},d=[];let p=0;const g=t.replace(kS,h=>(Fe.test(h)?(o.color.push(p),d.push(Ah),s.push(Fe.parse(h))):h.startsWith(fS)?(o.var.push(p),d.push(hS),s.push(h)):(o.number.push(p),d.push(vh),s.push(parseFloat(h))),++p,kp)).split(kp);return{values:s,split:g,indexes:o,types:d}}function xh(n){return Fi(n).values}function Lh(n){const{split:t,types:s}=Fi(n),o=t.length;return d=>{let p="";for(let c=0;c<o;c++)if(p+=t[c],d[c]!==void 0){const g=s[c];g===vh?p+=Ei(d[c]):g===Ah?p+=Fe.transform(d[c]):p+=d[c]}return p}}const bS=n=>typeof n=="number"?0:Fe.test(n)?Fe.getAnimatableNone(n):n;function yS(n){const t=xh(n);return Lh(n)(t.map(bS))}const Rn={test:gS,parse:xh,createTransformer:Lh,getAnimatableNone:yS};function Tl(n,t,s){return s<0&&(s+=1),s>1&&(s-=1),s<1/6?n+(t-n)*6*s:s<1/2?t:s<2/3?n+(t-n)*(2/3-s)*6:n}function vS({hue:n,saturation:t,lightness:s,alpha:o}){n/=360,t/=100,s/=100;let d=0,p=0,c=0;if(!t)d=p=c=s;else{const g=s<.5?s*(1+t):s+t-s*t,h=2*s-g;d=Tl(h,g,n+1/3),p=Tl(h,g,n),c=Tl(h,g,n-1/3)}return{red:Math.round(d*255),green:Math.round(p*255),blue:Math.round(c*255),alpha:o}}function kr(n,t){return s=>s>0?t:n}const Re=(n,t,s)=>n+(t-n)*s,El=(n,t,s)=>{const o=n*n,d=s*(t*t-o)+o;return d<0?0:Math.sqrt(d)},AS=[Yl,et,Dt],xS=n=>AS.find(t=>t.test(n));function bp(n){const t=xS(n);if(!t)return!1;let s=t.parse(n);return t===Dt&&(s=vS(s)),s}const yp=(n,t)=>{const s=bp(n),o=bp(t);if(!s||!o)return kr(n,t);const d={...s};return p=>(d.red=El(s.red,o.red,p),d.green=El(s.green,o.green,p),d.blue=El(s.blue,o.blue,p),d.alpha=Re(s.alpha,o.alpha,p),et.transform(d))},ed=new Set(["none","hidden"]);function LS(n,t){return ed.has(n)?s=>s<=0?n:t:s=>s>=1?t:n}function PS(n,t){return s=>Re(n,t,s)}function Gd(n){return typeof n=="number"?PS:typeof n=="string"?Ed(n)?kr:Fe.test(n)?yp:IS:Array.isArray(n)?Ph:typeof n=="object"?Fe.test(n)?yp:wS:kr}function Ph(n,t){const s=[...n],o=s.length,d=n.map((p,c)=>Gd(p)(p,t[c]));return p=>{for(let c=0;c<o;c++)s[c]=d[c](p);return s}}function wS(n,t){const s={...n,...t},o={};for(const d in s)n[d]!==void 0&&t[d]!==void 0&&(o[d]=Gd(n[d])(n[d],t[d]));return d=>{for(const p in o)s[p]=o[p](d);return s}}function SS(n,t){const s=[],o={color:0,var:0,number:0};for(let d=0;d<t.values.length;d++){const p=t.types[d],c=n.indexes[p][o[p]],g=n.values[c]??0;s[d]=g,o[p]++}return s}const IS=(n,t)=>{const s=Rn.createTransformer(t),o=Fi(n),d=Fi(t);return o.indexes.var.length===d.indexes.var.length&&o.indexes.color.length===d.indexes.color.length&&o.indexes.number.length>=d.indexes.number.length?ed.has(n)&&!d.values.length||ed.has(t)&&!o.values.length?LS(n,t):Ui(Ph(SS(o,d),d.values),s):kr(n,t)};function wh(n,t,s){return typeof n=="number"&&typeof t=="number"&&typeof s=="number"?Re(n,t,s):Gd(n)(n,t)}const MS=n=>{const t=({timestamp:s})=>n(s);return{start:(s=!0)=>De.update(t,s),stop:()=>En(t),now:()=>Ye.isProcessing?Ye.timestamp:la.now()}},Sh=(n,t,s=10)=>{let o="";const d=Math.max(Math.round(t/s),2);for(let p=0;p<d;p++)o+=Math.round(n(p/(d-1))*1e4)/1e4+", ";return`linear(${o.substring(0,o.length-2)})`},br=2e4;function Od(n){let t=0;const s=50;let o=n.next(t);for(;!o.done&&t<br;)t+=s,o=n.next(t);return t>=br?1/0:t}function jS(n,t=100,s){const o=s({...n,keyframes:[0,t]}),d=Math.min(Od(o),br);return{type:"keyframes",ease:p=>o.next(d*p).value/t,duration:Ia(d)}}const CS=5;function Ih(n,t,s){const o=Math.max(t-CS,0);return sh(s-n(o),t-o)}const Ge={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},Rl=.001;function DS({duration:n=Ge.duration,bounce:t=Ge.bounce,velocity:s=Ge.velocity,mass:o=Ge.mass}){let d,p,c=1-t;c=$a(Ge.minDamping,Ge.maxDamping,c),n=$a(Ge.minDuration,Ge.maxDuration,Ia(n)),c<1?(d=b=>{const f=b*c,y=f*n,A=f-s,M=ad(b,c),P=Math.exp(-y);return Rl-A/M*P},p=b=>{const y=b*c*n,A=y*s+s,M=Math.pow(c,2)*Math.pow(b,2)*n,P=Math.exp(-y),z=ad(Math.pow(b,2),c);return(-d(b)+Rl>0?-1:1)*((A-M)*P)/z}):(d=b=>{const f=Math.exp(-b*n),y=(b-s)*n+1;return-Rl+f*y},p=b=>{const f=Math.exp(-b*n),y=(s-b)*(n*n);return f*y});const g=5/n,h=TS(d,p,g);if(n=ln(n),isNaN(h))return{stiffness:Ge.stiffness,damping:Ge.damping,duration:n};{const b=Math.pow(h,2)*o;return{stiffness:b,damping:c*2*Math.sqrt(o*b),duration:n}}}const zS=12;function TS(n,t,s){let o=s;for(let d=1;d<zS;d++)o=o-n(o)/t(o);return o}function ad(n,t){return n*Math.sqrt(1-t*t)}const ES=["duration","bounce"],RS=["stiffness","damping","mass"];function vp(n,t){return t.some(s=>n[s]!==void 0)}function NS(n){let t={velocity:Ge.velocity,stiffness:Ge.stiffness,damping:Ge.damping,mass:Ge.mass,isResolvedFromDuration:!1,...n};if(!vp(n,RS)&&vp(n,ES))if(n.visualDuration){const s=n.visualDuration,o=2*Math.PI/(s*1.2),d=o*o,p=2*$a(.05,1,1-(n.bounce||0))*Math.sqrt(d);t={...t,mass:Ge.mass,stiffness:d,damping:p}}else{const s=DS(n);t={...t,...s,mass:Ge.mass},t.isResolvedFromDuration=!0}return t}function yr(n=Ge.visualDuration,t=Ge.bounce){const s=typeof n!="object"?{visualDuration:n,keyframes:[0,1],bounce:t}:n;let{restSpeed:o,restDelta:d}=s;const p=s.keyframes[0],c=s.keyframes[s.keyframes.length-1],g={done:!1,value:p},{stiffness:h,damping:b,mass:f,duration:y,velocity:A,isResolvedFromDuration:M}=NS({...s,velocity:-Ia(s.velocity||0)}),P=A||0,z=b/(2*Math.sqrt(h*f)),C=c-p,E=Ia(Math.sqrt(h/f)),F=Math.abs(C)<5;o||(o=F?Ge.restSpeed.granular:Ge.restSpeed.default),d||(d=F?Ge.restDelta.granular:Ge.restDelta.default);let K;if(z<1){const W=ad(E,z);K=J=>{const de=Math.exp(-z*E*J);return c-de*((P+z*E*C)/W*Math.sin(W*J)+C*Math.cos(W*J))}}else if(z===1)K=W=>c-Math.exp(-E*W)*(C+(P+E*C)*W);else{const W=E*Math.sqrt(z*z-1);K=J=>{const de=Math.exp(-z*E*J),O=Math.min(W*J,300);return c-de*((P+z*E*C)*Math.sinh(O)+W*C*Math.cosh(O))/W}}const U={calculatedDuration:M&&y||null,next:W=>{const J=K(W);if(M)g.done=W>=y;else{let de=W===0?P:0;z<1&&(de=W===0?ln(P):Ih(K,W,J));const O=Math.abs(de)<=o,_=Math.abs(c-J)<=d;g.done=O&&_}return g.value=g.done?c:J,g},toString:()=>{const W=Math.min(Od(U),br),J=Sh(de=>U.next(W*de).value,W,30);return W+"ms "+J},toTransition:()=>{}};return U}yr.applyToOptions=n=>{const t=jS(n,100,yr);return n.ease=t.ease,n.duration=ln(t.duration),n.type="keyframes",n};function nd({keyframes:n,velocity:t=0,power:s=.8,timeConstant:o=325,bounceDamping:d=10,bounceStiffness:p=500,modifyTarget:c,min:g,max:h,restDelta:b=.5,restSpeed:f}){const y=n[0],A={done:!1,value:y},M=O=>g!==void 0&&O<g||h!==void 0&&O>h,P=O=>g===void 0?h:h===void 0||Math.abs(g-O)<Math.abs(h-O)?g:h;let z=s*t;const C=y+z,E=c===void 0?C:c(C);E!==C&&(z=E-y);const F=O=>-z*Math.exp(-O/o),K=O=>E+F(O),U=O=>{const _=F(O),te=K(O);A.done=Math.abs(_)<=b,A.value=A.done?E:te};let W,J;const de=O=>{M(A.value)&&(W=O,J=yr({keyframes:[A.value,P(A.value)],velocity:Ih(K,O,A.value),damping:d,stiffness:p,restDelta:b,restSpeed:f}))};return de(0),{calculatedDuration:null,next:O=>{let _=!1;return!J&&W===void 0&&(_=!0,U(O),de(O)),W!==void 0&&O>=W?J.next(O-W):(!_&&U(O),A)}}}function GS(n,t,s){const o=[],d=s||dn.mix||wh,p=n.length-1;for(let c=0;c<p;c++){let g=d(n[c],n[c+1]);if(t){const h=Array.isArray(t)?t[c]||Ma:t;g=Ui(h,g)}o.push(g)}return o}function OS(n,t,{clamp:s=!0,ease:o,mixer:d}={}){const p=n.length;if(jd(p===t.length),p===1)return()=>t[0];if(p===2&&t[0]===t[1])return()=>t[1];const c=n[0]===n[1];n[0]>n[p-1]&&(n=[...n].reverse(),t=[...t].reverse());const g=GS(t,o,d),h=g.length,b=f=>{if(c&&f<n[0])return t[0];let y=0;if(h>1)for(;y<n.length-2&&!(f<n[y+1]);y++);const A=Ki(n[y],n[y+1],f);return g[y](A)};return s?f=>b($a(n[0],n[p-1],f)):b}function BS(n,t){const s=n[n.length-1];for(let o=1;o<=t;o++){const d=Ki(0,t,o);n.push(Re(s,1,d))}}function KS(n){const t=[0];return BS(t,n.length-1),t}function VS(n,t){return n.map(s=>s*t)}function FS(n,t){return n.map(()=>t||gh).splice(0,n.length-1)}function Ri({duration:n=300,keyframes:t,times:s,ease:o="easeInOut"}){const d=Yw(o)?o.map(gp):gp(o),p={done:!1,value:t[0]},c=VS(s&&s.length===t.length?s:KS(t),n),g=OS(c,t,{ease:Array.isArray(d)?d:FS(t,d)});return{calculatedDuration:n,next:h=>(p.value=g(h),p.done=h>=n,p)}}const WS=n=>n!==null;function Bd(n,{repeat:t,repeatType:s="loop"},o,d=1){const p=n.filter(WS),g=d<0||t&&s!=="loop"&&t%2===1?0:p.length-1;return!g||o===void 0?p[g]:o}const qS={decay:nd,inertia:nd,tween:Ri,keyframes:Ri,spring:yr};function Mh(n){typeof n.type=="string"&&(n.type=qS[n.type])}class Kd{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(t=>{this.resolve=t})}notifyFinished(){this.resolve()}then(t,s){return this.finished.then(t,s)}}const US=n=>n/100;class Vd extends Kd{constructor(t){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.stop=()=>{const{motionValue:s}=this.options;s&&s.updatedAt!==la.now()&&this.tick(la.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=t,this.initAnimation(),this.play(),t.autoplay===!1&&this.pause()}initAnimation(){const{options:t}=this;Mh(t);const{type:s=Ri,repeat:o=0,repeatDelay:d=0,repeatType:p,velocity:c=0}=t;let{keyframes:g}=t;const h=s||Ri;h!==Ri&&typeof g[0]!="number"&&(this.mixKeyframes=Ui(US,wh(g[0],g[1])),g=[0,100]);const b=h({...t,keyframes:g});p==="mirror"&&(this.mirroredGenerator=h({...t,keyframes:[...g].reverse(),velocity:-c})),b.calculatedDuration===null&&(b.calculatedDuration=Od(b));const{calculatedDuration:f}=b;this.calculatedDuration=f,this.resolvedDuration=f+d,this.totalDuration=this.resolvedDuration*(o+1)-d,this.generator=b}updateTime(t){const s=Math.round(t-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=s}tick(t,s=!1){const{generator:o,totalDuration:d,mixKeyframes:p,mirroredGenerator:c,resolvedDuration:g,calculatedDuration:h}=this;if(this.startTime===null)return o.next(0);const{delay:b=0,keyframes:f,repeat:y,repeatType:A,repeatDelay:M,type:P,onUpdate:z,finalKeyframe:C}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),s?this.currentTime=t:this.updateTime(t);const E=this.currentTime-b*(this.playbackSpeed>=0?1:-1),F=this.playbackSpeed>=0?E<0:E>d;this.currentTime=Math.max(E,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let K=this.currentTime,U=o;if(y){const O=Math.min(this.currentTime,d)/g;let _=Math.floor(O),te=O%1;!te&&O>=1&&(te=1),te===1&&_--,_=Math.min(_,y+1),!!(_%2)&&(A==="reverse"?(te=1-te,M&&(te-=M/g)):A==="mirror"&&(U=c)),K=$a(0,1,te)*g}const W=F?{done:!1,value:f[0]}:U.next(K);p&&(W.value=p(W.value));let{done:J}=W;!F&&h!==null&&(J=this.playbackSpeed>=0?this.currentTime>=d:this.currentTime<=0);const de=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&J);return de&&P!==nd&&(W.value=Bd(f,this.options,C,this.speed)),z&&z(W.value),de&&this.finish(),W}then(t,s){return this.finished.then(t,s)}get duration(){return Ia(this.calculatedDuration)}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Ia(t)}get time(){return Ia(this.currentTime)}set time(t){t=ln(t),this.currentTime=t,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.playbackSpeed),this.driver?.start(!1)}get speed(){return this.playbackSpeed}set speed(t){this.updateTime(la.now());const s=this.playbackSpeed!==t;this.playbackSpeed=t,s&&(this.time=Ia(this.currentTime))}play(){if(this.isStopped)return;const{driver:t=MS,startTime:s}=this.options;this.driver||(this.driver=t(d=>this.tick(d))),this.options.onPlay?.();const o=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=o):this.holdTime!==null?this.startTime=o-this.holdTime:this.startTime||(this.startTime=s??o),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(la.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}attachTimeline(t){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),t.observe(this)}}function _S(n){for(let t=1;t<n.length;t++)n[t]??(n[t]=n[t-1])}const at=n=>n*180/Math.PI,td=n=>{const t=at(Math.atan2(n[1],n[0]));return id(t)},HS={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:n=>(Math.abs(n[0])+Math.abs(n[3]))/2,rotate:td,rotateZ:td,skewX:n=>at(Math.atan(n[1])),skewY:n=>at(Math.atan(n[2])),skew:n=>(Math.abs(n[1])+Math.abs(n[2]))/2},id=n=>(n=n%360,n<0&&(n+=360),n),Ap=td,xp=n=>Math.sqrt(n[0]*n[0]+n[1]*n[1]),Lp=n=>Math.sqrt(n[4]*n[4]+n[5]*n[5]),$S={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:xp,scaleY:Lp,scale:n=>(xp(n)+Lp(n))/2,rotateX:n=>id(at(Math.atan2(n[6],n[5]))),rotateY:n=>id(at(Math.atan2(-n[2],n[0]))),rotateZ:Ap,rotate:Ap,skewX:n=>at(Math.atan(n[4])),skewY:n=>at(Math.atan(n[1])),skew:n=>(Math.abs(n[1])+Math.abs(n[4]))/2};function sd(n){return n.includes("scale")?1:0}function rd(n,t){if(!n||n==="none")return sd(t);const s=n.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let o,d;if(s)o=$S,d=s;else{const g=n.match(/^matrix\(([-\d.e\s,]+)\)$/u);o=HS,d=g}if(!d)return sd(t);const p=o[t],c=d[1].split(",").map(JS);return typeof p=="function"?p(c):c[p]}const QS=(n,t)=>{const{transform:s="none"}=getComputedStyle(n);return rd(s,t)};function JS(n){return parseFloat(n.trim())}const Ft=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Wt=new Set(Ft),Pp=n=>n===Vt||n===ee,ZS=new Set(["x","y","z"]),XS=Ft.filter(n=>!ZS.has(n));function YS(n){const t=[];return XS.forEach(s=>{const o=n.getValue(s);o!==void 0&&(t.push([s,o.get()]),o.set(s.startsWith("scale")?1:0))}),t}const zn={width:({x:n},{paddingLeft:t="0",paddingRight:s="0"})=>n.max-n.min-parseFloat(t)-parseFloat(s),height:({y:n},{paddingTop:t="0",paddingBottom:s="0"})=>n.max-n.min-parseFloat(t)-parseFloat(s),top:(n,{top:t})=>parseFloat(t),left:(n,{left:t})=>parseFloat(t),bottom:({y:n},{top:t})=>parseFloat(t)+(n.max-n.min),right:({x:n},{left:t})=>parseFloat(t)+(n.max-n.min),x:(n,{transform:t})=>rd(t,"x"),y:(n,{transform:t})=>rd(t,"y")};zn.translateX=zn.x;zn.translateY=zn.y;const nt=new Set;let od=!1,ld=!1,dd=!1;function jh(){if(ld){const n=Array.from(nt).filter(o=>o.needsMeasurement),t=new Set(n.map(o=>o.element)),s=new Map;t.forEach(o=>{const d=YS(o);d.length&&(s.set(o,d),o.render())}),n.forEach(o=>o.measureInitialState()),t.forEach(o=>{o.render();const d=s.get(o);d&&d.forEach(([p,c])=>{o.getValue(p)?.set(c)})}),n.forEach(o=>o.measureEndState()),n.forEach(o=>{o.suspendedScrollY!==void 0&&window.scrollTo(0,o.suspendedScrollY)})}ld=!1,od=!1,nt.forEach(n=>n.complete(dd)),nt.clear()}function Ch(){nt.forEach(n=>{n.readKeyframes(),n.needsMeasurement&&(ld=!0)})}function eI(){dd=!0,Ch(),jh(),dd=!1}class Fd{constructor(t,s,o,d,p,c=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...t],this.onComplete=s,this.name=o,this.motionValue=d,this.element=p,this.isAsync=c}scheduleResolve(){this.state="scheduled",this.isAsync?(nt.add(this),od||(od=!0,De.read(Ch),De.resolveKeyframes(jh))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:s,element:o,motionValue:d}=this;if(t[0]===null){const p=d?.get(),c=t[t.length-1];if(p!==void 0)t[0]=p;else if(o&&s){const g=o.readValue(s,c);g!=null&&(t[0]=g)}t[0]===void 0&&(t[0]=c),d&&p===void 0&&d.set(t[0])}_S(t)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(t=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,t),nt.delete(this)}cancel(){this.state==="scheduled"&&(nt.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const aI=n=>n.startsWith("--");function nI(n,t,s){aI(t)?n.style.setProperty(t,s):n.style[t]=s}const tI=Cd(()=>window.ScrollTimeline!==void 0),iI={};function sI(n,t){const s=Cd(n);return()=>iI[t]??s()}const Dh=sI(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),zi=([n,t,s,o])=>`cubic-bezier(${n}, ${t}, ${s}, ${o})`,wp={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:zi([0,.65,.55,1]),circOut:zi([.55,0,1,.45]),backIn:zi([.31,.01,.66,-.59]),backOut:zi([.33,1.53,.69,.99])};function zh(n,t){if(n)return typeof n=="function"?Dh()?Sh(n,t):"ease-out":hh(n)?zi(n):Array.isArray(n)?n.map(s=>zh(s,t)||wp.easeOut):wp[n]}function rI(n,t,s,{delay:o=0,duration:d=300,repeat:p=0,repeatType:c="loop",ease:g="easeOut",times:h}={},b=void 0){const f={[t]:s};h&&(f.offset=h);const y=zh(g,d);Array.isArray(y)&&(f.easing=y);const A={delay:o,duration:d,easing:Array.isArray(y)?"linear":y,fill:"both",iterations:p+1,direction:c==="reverse"?"alternate":"normal"};return b&&(A.pseudoElement=b),n.animate(f,A)}function Th(n){return typeof n=="function"&&"applyToOptions"in n}function oI({type:n,...t}){return Th(n)&&Dh()?n.applyToOptions(t):(t.duration??(t.duration=300),t.ease??(t.ease="easeOut"),t)}class lI extends Kd{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!t)return;const{element:s,name:o,keyframes:d,pseudoElement:p,allowFlatten:c=!1,finalKeyframe:g,onComplete:h}=t;this.isPseudoElement=!!p,this.allowFlatten=c,this.options=t,jd(typeof t.type!="string");const b=oI(t);this.animation=rI(s,o,d,b,p),b.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!p){const f=Bd(d,this.options,g,this.speed);this.updateMotionValue?this.updateMotionValue(f):nI(s,o,f),this.animation.cancel()}h?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:t}=this;t==="idle"||t==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){this.isPseudoElement||this.animation.commitStyles?.()}get duration(){const t=this.animation.effect?.getComputedTiming?.().duration||0;return Ia(Number(t))}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Ia(t)}get time(){return Ia(Number(this.animation.currentTime)||0)}set time(t){this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=ln(t)}get speed(){return this.animation.playbackRate}set speed(t){t<0&&(this.finishedTime=null),this.animation.playbackRate=t}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(t){this.manualStartTime=this.animation.startTime=t}attachTimeline({timeline:t,observe:s}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,t&&tI()?(this.animation.timeline=t,Ma):s(this)}}const Eh={anticipate:ch,backInOut:uh,circInOut:ph};function dI(n){return n in Eh}function uI(n){typeof n.ease=="string"&&dI(n.ease)&&(n.ease=Eh[n.ease])}const Nl=10;class cI extends lI{constructor(t){uI(t),Mh(t),super(t),t.startTime!==void 0&&(this.startTime=t.startTime),this.options=t}updateMotionValue(t){const{motionValue:s,onUpdate:o,onComplete:d,element:p,...c}=this.options;if(!s)return;if(t!==void 0){s.set(t);return}const g=new Vd({...c,autoplay:!1}),h=Math.max(Nl,la.now()-this.startTime),b=$a(0,Nl,h-Nl);s.setWithVelocity(g.sample(Math.max(0,h-b)).value,g.sample(h).value,b),g.stop()}}const Sp=(n,t)=>t==="zIndex"?!1:!!(typeof n=="number"||Array.isArray(n)||typeof n=="string"&&(Rn.test(n)||n==="0")&&!n.startsWith("url("));function mI(n){const t=n[0];if(n.length===1)return!0;for(let s=0;s<n.length;s++)if(n[s]!==t)return!0}function pI(n,t,s,o){const d=n[0];if(d===null)return!1;if(t==="display"||t==="visibility")return!0;const p=n[n.length-1],c=Sp(d,t),g=Sp(p,t);return!c||!g?!1:mI(n)||(s==="spring"||Th(s))&&o}function ud(n){n.duration=0,n.type="keyframes"}const gI=new Set(["opacity","clipPath","filter","transform"]),hI=Cd(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));function fI(n){const{motionValue:t,name:s,repeatDelay:o,repeatType:d,damping:p,type:c}=n;if(!(t?.owner?.current instanceof HTMLElement))return!1;const{onUpdate:h,transformTemplate:b}=t.owner.getProps();return hI()&&s&&gI.has(s)&&(s!=="transform"||!b)&&!h&&!o&&d!=="mirror"&&p!==0&&c!=="inertia"}const kI=40;class bI extends Kd{constructor({autoplay:t=!0,delay:s=0,type:o="keyframes",repeat:d=0,repeatDelay:p=0,repeatType:c="loop",keyframes:g,name:h,motionValue:b,element:f,...y}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=la.now();const A={autoplay:t,delay:s,type:o,repeat:d,repeatDelay:p,repeatType:c,name:h,motionValue:b,element:f,...y},M=f?.KeyframeResolver||Fd;this.keyframeResolver=new M(g,(P,z,C)=>this.onKeyframesResolved(P,z,A,!C),h,b,f),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(t,s,o,d){this.keyframeResolver=void 0;const{name:p,type:c,velocity:g,delay:h,isHandoff:b,onUpdate:f}=o;this.resolvedAt=la.now(),pI(t,p,c,g)||((dn.instantAnimations||!h)&&f?.(Bd(t,o,s)),t[0]=t[t.length-1],ud(o),o.repeat=0);const A={startTime:d?this.resolvedAt?this.resolvedAt-this.createdAt>kI?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:s,...o,keyframes:t},M=!b&&fI(A),P=A.motionValue?.owner?.current,z=M?new cI({...A,element:P}):new Vd(A);z.finished.then(()=>{this.notifyFinished()}).catch(Ma),this.pendingTimeline&&(this.stopTimeline=z.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=z}get finished(){return this._animation?this.animation.finished:this._finished}then(t,s){return this.finished.finally(t).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),eI()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(t){this.animation.time=t}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(t){this.animation.speed=t}get startTime(){return this.animation.startTime}attachTimeline(t){return this._animation?this.stopTimeline=this.animation.attachTimeline(t):this.pendingTimeline=t,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}function Rh(n,t,s,o=0,d=1){const p=Array.from(n).sort((b,f)=>b.sortNodePosition(f)).indexOf(t),c=n.size,g=(c-1)*o;return typeof s=="function"?s(p,c):d===1?p*o:g-p*o}const yI=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function vI(n){const t=yI.exec(n);if(!t)return[,];const[,s,o,d]=t;return[`--${s??o}`,d]}function Nh(n,t,s=1){const[o,d]=vI(n);if(!o)return;const p=window.getComputedStyle(t).getPropertyValue(o);if(p){const c=p.trim();return nh(c)?parseFloat(c):c}return Ed(d)?Nh(d,t,s+1):d}const AI={type:"spring",stiffness:500,damping:25,restSpeed:10},xI=n=>({type:"spring",stiffness:550,damping:n===0?2*Math.sqrt(550):30,restSpeed:10}),LI={type:"keyframes",duration:.8},PI={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},wI=(n,{keyframes:t})=>t.length>2?LI:Wt.has(n)?n.startsWith("scale")?xI(t[1]):AI:PI,SI=n=>n!==null;function II(n,{repeat:t,repeatType:s="loop"},o){const d=n.filter(SI),p=t&&s!=="loop"&&t%2===1?0:d.length-1;return d[p]}function Wd(n,t){return n?.[t]??n?.default??n}function MI({when:n,delay:t,delayChildren:s,staggerChildren:o,staggerDirection:d,repeat:p,repeatType:c,repeatDelay:g,from:h,elapsed:b,...f}){return!!Object.keys(f).length}const qd=(n,t,s,o={},d,p)=>c=>{const g=Wd(o,n)||{},h=g.delay||o.delay||0;let{elapsed:b=0}=o;b=b-ln(h);const f={keyframes:Array.isArray(s)?s:[null,s],ease:"easeOut",velocity:t.getVelocity(),...g,delay:-b,onUpdate:A=>{t.set(A),g.onUpdate&&g.onUpdate(A)},onComplete:()=>{c(),g.onComplete&&g.onComplete()},name:n,motionValue:t,element:p?void 0:d};MI(g)||Object.assign(f,wI(n,f)),f.duration&&(f.duration=ln(f.duration)),f.repeatDelay&&(f.repeatDelay=ln(f.repeatDelay)),f.from!==void 0&&(f.keyframes[0]=f.from);let y=!1;if((f.type===!1||f.duration===0&&!f.repeatDelay)&&(ud(f),f.delay===0&&(y=!0)),(dn.instantAnimations||dn.skipAnimations)&&(y=!0,ud(f),f.delay=0),f.allowFlatten=!g.type&&!g.ease,y&&!p&&t.get()!==void 0){const A=II(f.keyframes,g);if(A!==void 0){De.update(()=>{f.onUpdate(A),f.onComplete()});return}}return g.isSync?new Vd(f):new bI(f)};function Ip(n){const t=[{},{}];return n?.values.forEach((s,o)=>{t[0][o]=s.get(),t[1][o]=s.getVelocity()}),t}function Ud(n,t,s,o){if(typeof t=="function"){const[d,p]=Ip(o);t=t(s!==void 0?s:n.custom,d,p)}if(typeof t=="string"&&(t=n.variants&&n.variants[t]),typeof t=="function"){const[d,p]=Ip(o);t=t(s!==void 0?s:n.custom,d,p)}return t}function Rt(n,t,s){const o=n.getProps();return Ud(o,t,s!==void 0?s:o.custom,n)}const Gh=new Set(["width","height","top","left","right","bottom",...Ft]),Mp=30,jI=n=>!isNaN(parseFloat(n));class CI{constructor(t,s={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=o=>{const d=la.now();if(this.updatedAt!==d&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(o),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(const p of this.dependents)p.dirty()},this.hasAnimated=!1,this.setCurrent(t),this.owner=s.owner}setCurrent(t){this.current=t,this.updatedAt=la.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=jI(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,s){this.events[t]||(this.events[t]=new Dd);const o=this.events[t].add(s);return t==="change"?()=>{o(),De.read(()=>{this.events.change.getSize()||this.stop()})}:o}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,s){this.passiveEffect=t,this.stopPassiveEffect=s}set(t){this.passiveEffect?this.passiveEffect(t,this.updateAndNotify):this.updateAndNotify(t)}setWithVelocity(t,s,o){this.set(s),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-o}jump(t,s=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,s&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(t){this.dependents||(this.dependents=new Set),this.dependents.add(t)}removeDependent(t){this.dependents&&this.dependents.delete(t)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=la.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>Mp)return 0;const s=Math.min(this.updatedAt-this.prevUpdatedAt,Mp);return sh(parseFloat(this.current)-parseFloat(this.prevFrameValue),s)}start(t){return this.stop(),new Promise(s=>{this.hasAnimated=!0,this.animation=t(s),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Ot(n,t){return new CI(n,t)}const cd=n=>Array.isArray(n);function DI(n,t,s){n.hasValue(t)?n.getValue(t).set(s):n.addValue(t,Ot(s))}function zI(n){return cd(n)?n[n.length-1]||0:n}function TI(n,t){const s=Rt(n,t);let{transitionEnd:o={},transition:d={},...p}=s||{};p={...p,...o};for(const c in p){const g=zI(p[c]);DI(n,c,g)}}const ia=n=>!!(n&&n.getVelocity);function EI(n){return!!(ia(n)&&n.add)}function md(n,t){const s=n.getValue("willChange");if(EI(s))return s.add(t);if(!s&&dn.WillChange){const o=new dn.WillChange("auto");n.addValue("willChange",o),o.add(t)}}function _d(n){return n.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`)}const RI="framerAppearId",Oh="data-"+_d(RI);function Bh(n){return n.props[Oh]}function NI({protectedKeys:n,needsAnimating:t},s){const o=n.hasOwnProperty(s)&&t[s]!==!0;return t[s]=!1,o}function Kh(n,t,{delay:s=0,transitionOverride:o,type:d}={}){let{transition:p=n.getDefaultTransition(),transitionEnd:c,...g}=t;o&&(p=o);const h=[],b=d&&n.animationState&&n.animationState.getState()[d];for(const f in g){const y=n.getValue(f,n.latestValues[f]??null),A=g[f];if(A===void 0||b&&NI(b,f))continue;const M={delay:s,...Wd(p||{},f)},P=y.get();if(P!==void 0&&!y.isAnimating&&!Array.isArray(A)&&A===P&&!M.velocity)continue;let z=!1;if(window.MotionHandoffAnimation){const E=Bh(n);if(E){const F=window.MotionHandoffAnimation(E,f,De);F!==null&&(M.startTime=F,z=!0)}}md(n,f),y.start(qd(f,y,A,n.shouldReduceMotion&&Gh.has(f)?{type:!1}:M,n,z));const C=y.animation;C&&h.push(C)}return c&&Promise.all(h).then(()=>{De.update(()=>{c&&TI(n,c)})}),h}function pd(n,t,s={}){const o=Rt(n,t,s.type==="exit"?n.presenceContext?.custom:void 0);let{transition:d=n.getDefaultTransition()||{}}=o||{};s.transitionOverride&&(d=s.transitionOverride);const p=o?()=>Promise.all(Kh(n,o,s)):()=>Promise.resolve(),c=n.variantChildren&&n.variantChildren.size?(h=0)=>{const{delayChildren:b=0,staggerChildren:f,staggerDirection:y}=d;return GI(n,t,h,b,f,y,s)}:()=>Promise.resolve(),{when:g}=d;if(g){const[h,b]=g==="beforeChildren"?[p,c]:[c,p];return h().then(()=>b())}else return Promise.all([p(),c(s.delay)])}function GI(n,t,s=0,o=0,d=0,p=1,c){const g=[];for(const h of n.variantChildren)h.notify("AnimationStart",t),g.push(pd(h,t,{...c,delay:s+(typeof o=="function"?0:o)+Rh(n.variantChildren,h,o,d,p)}).then(()=>h.notify("AnimationComplete",t)));return Promise.all(g)}function OI(n,t,s={}){n.notify("AnimationStart",t);let o;if(Array.isArray(t)){const d=t.map(p=>pd(n,p,s));o=Promise.all(d)}else if(typeof t=="string")o=pd(n,t,s);else{const d=typeof t=="function"?Rt(n,t,s.custom):t;o=Promise.all(Kh(n,d,s))}return o.then(()=>{n.notify("AnimationComplete",t)})}const BI={test:n=>n==="auto",parse:n=>n},Vh=n=>t=>t.test(n),Fh=[Vt,ee,Ha,Dn,mS,cS,BI],jp=n=>Fh.find(Vh(n));function KI(n){return typeof n=="number"?n===0:n!==null?n==="none"||n==="0"||ih(n):!0}const VI=new Set(["brightness","contrast","saturate","opacity"]);function FI(n){const[t,s]=n.slice(0,-1).split("(");if(t==="drop-shadow")return n;const[o]=s.match(Rd)||[];if(!o)return n;const d=s.replace(o,"");let p=VI.has(t)?1:0;return o!==s&&(p*=100),t+"("+p+d+")"}const WI=/\b([a-z-]*)\(.*?\)/gu,gd={...Rn,getAnimatableNone:n=>{const t=n.match(WI);return t?t.map(FI).join(" "):n}},Cp={...Vt,transform:Math.round},qI={rotate:Dn,rotateX:Dn,rotateY:Dn,rotateZ:Dn,scale:dr,scaleX:dr,scaleY:dr,scaleZ:dr,skew:Dn,skewX:Dn,skewY:Dn,distance:ee,translateX:ee,translateY:ee,translateZ:ee,x:ee,y:ee,z:ee,perspective:ee,transformPerspective:ee,opacity:Vi,originX:fp,originY:fp,originZ:ee},Hd={borderWidth:ee,borderTopWidth:ee,borderRightWidth:ee,borderBottomWidth:ee,borderLeftWidth:ee,borderRadius:ee,radius:ee,borderTopLeftRadius:ee,borderTopRightRadius:ee,borderBottomRightRadius:ee,borderBottomLeftRadius:ee,width:ee,maxWidth:ee,height:ee,maxHeight:ee,top:ee,right:ee,bottom:ee,left:ee,inset:ee,insetBlock:ee,insetBlockStart:ee,insetBlockEnd:ee,insetInline:ee,insetInlineStart:ee,insetInlineEnd:ee,padding:ee,paddingTop:ee,paddingRight:ee,paddingBottom:ee,paddingLeft:ee,paddingBlock:ee,paddingBlockStart:ee,paddingBlockEnd:ee,paddingInline:ee,paddingInlineStart:ee,paddingInlineEnd:ee,margin:ee,marginTop:ee,marginRight:ee,marginBottom:ee,marginLeft:ee,marginBlock:ee,marginBlockStart:ee,marginBlockEnd:ee,marginInline:ee,marginInlineStart:ee,marginInlineEnd:ee,backgroundPositionX:ee,backgroundPositionY:ee,...qI,zIndex:Cp,fillOpacity:Vi,strokeOpacity:Vi,numOctaves:Cp},UI={...Hd,color:Fe,backgroundColor:Fe,outlineColor:Fe,fill:Fe,stroke:Fe,borderColor:Fe,borderTopColor:Fe,borderRightColor:Fe,borderBottomColor:Fe,borderLeftColor:Fe,filter:gd,WebkitFilter:gd},Wh=n=>UI[n];function qh(n,t){let s=Wh(n);return s!==gd&&(s=Rn),s.getAnimatableNone?s.getAnimatableNone(t):void 0}const _I=new Set(["auto","none","0"]);function HI(n,t,s){let o=0,d;for(;o<n.length&&!d;){const p=n[o];typeof p=="string"&&!_I.has(p)&&Fi(p).values.length&&(d=n[o]),o++}if(d&&s)for(const p of t)n[p]=qh(s,d)}class $I extends Fd{constructor(t,s,o,d,p){super(t,s,o,d,p,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:s,name:o}=this;if(!s||!s.current)return;super.readKeyframes();for(let f=0;f<t.length;f++){let y=t[f];if(typeof y=="string"&&(y=y.trim(),Ed(y))){const A=Nh(y,s.current);A!==void 0&&(t[f]=A),f===t.length-1&&(this.finalKeyframe=y)}}if(this.resolveNoneKeyframes(),!Gh.has(o)||t.length!==2)return;const[d,p]=t,c=jp(d),g=jp(p),h=hp(d),b=hp(p);if(h!==b&&zn[o]){this.needsMeasurement=!0;return}if(c!==g)if(Pp(c)&&Pp(g))for(let f=0;f<t.length;f++){const y=t[f];typeof y=="string"&&(t[f]=parseFloat(y))}else zn[o]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){const{unresolvedKeyframes:t,name:s}=this,o=[];for(let d=0;d<t.length;d++)(t[d]===null||KI(t[d]))&&o.push(d);o.length&&HI(t,o,s)}measureInitialState(){const{element:t,unresolvedKeyframes:s,name:o}=this;if(!t||!t.current)return;o==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=zn[o](t.measureViewportBox(),window.getComputedStyle(t.current)),s[0]=this.measuredOrigin;const d=s[s.length-1];d!==void 0&&t.getValue(o,d).jump(d,!1)}measureEndState(){const{element:t,name:s,unresolvedKeyframes:o}=this;if(!t||!t.current)return;const d=t.getValue(s);d&&d.jump(this.measuredOrigin,!1);const p=o.length-1,c=o[p];o[p]=zn[s](t.measureViewportBox(),window.getComputedStyle(t.current)),c!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=c),this.removedTransforms?.length&&this.removedTransforms.forEach(([g,h])=>{t.getValue(g).set(h)}),this.resolveNoneKeyframes()}}function QI(n,t,s){if(n==null)return[];if(n instanceof EventTarget)return[n];if(typeof n=="string"){let o=document;const d=s?.[n]??o.querySelectorAll(n);return d?Array.from(d):[]}return Array.from(n).filter(o=>o!=null)}const Uh=(n,t)=>t&&typeof n=="number"?t.transform(n):n;function JI(n){return th(n)&&"offsetHeight"in n}const{schedule:$d}=fh(queueMicrotask,!1),Oa={x:!1,y:!1};function _h(){return Oa.x||Oa.y}function ZI(n){return n==="x"||n==="y"?Oa[n]?null:(Oa[n]=!0,()=>{Oa[n]=!1}):Oa.x||Oa.y?null:(Oa.x=Oa.y=!0,()=>{Oa.x=Oa.y=!1})}function Hh(n,t){const s=QI(n),o=new AbortController,d={passive:!0,...t,signal:o.signal};return[s,d,()=>o.abort()]}function Dp(n){return!(n.pointerType==="touch"||_h())}function XI(n,t,s={}){const[o,d,p]=Hh(n,s),c=g=>{if(!Dp(g))return;const{target:h}=g,b=t(h,g);if(typeof b!="function"||!h)return;const f=y=>{Dp(y)&&(b(y),h.removeEventListener("pointerleave",f))};h.addEventListener("pointerleave",f,d)};return o.forEach(g=>{g.addEventListener("pointerenter",c,d)}),p}const $h=(n,t)=>t?n===t?!0:$h(n,t.parentElement):!1,Qd=n=>n.pointerType==="mouse"?typeof n.button!="number"||n.button<=0:n.isPrimary!==!1,YI=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function Qh(n){return YI.has(n.tagName)||n.isContentEditable===!0}const pr=new WeakSet;function zp(n){return t=>{t.key==="Enter"&&n(t)}}function Gl(n,t){n.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const e0=(n,t)=>{const s=n.currentTarget;if(!s)return;const o=zp(()=>{if(pr.has(s))return;Gl(s,"down");const d=zp(()=>{Gl(s,"up")}),p=()=>Gl(s,"cancel");s.addEventListener("keyup",d,t),s.addEventListener("blur",p,t)});s.addEventListener("keydown",o,t),s.addEventListener("blur",()=>s.removeEventListener("keydown",o),t)};function Tp(n){return Qd(n)&&!_h()}function a0(n,t,s={}){const[o,d,p]=Hh(n,s),c=g=>{const h=g.currentTarget;if(!Tp(g))return;pr.add(h);const b=t(h,g),f=(M,P)=>{window.removeEventListener("pointerup",y),window.removeEventListener("pointercancel",A),pr.has(h)&&pr.delete(h),Tp(M)&&typeof b=="function"&&b(M,{success:P})},y=M=>{f(M,h===window||h===document||s.useGlobalTarget||$h(h,M.target))},A=M=>{f(M,!1)};window.addEventListener("pointerup",y,d),window.addEventListener("pointercancel",A,d)};return o.forEach(g=>{(s.useGlobalTarget?window:g).addEventListener("pointerdown",c,d),JI(g)&&(g.addEventListener("focus",b=>e0(b,d)),!Qh(g)&&!g.hasAttribute("tabindex")&&(g.tabIndex=0))}),p}function Jh(n){return th(n)&&"ownerSVGElement"in n}function n0(n){return Jh(n)&&n.tagName==="svg"}const t0=[...Fh,Fe,Rn],i0=n=>t0.find(Vh(n)),Ep=()=>({translate:0,scale:1,origin:0,originPoint:0}),zt=()=>({x:Ep(),y:Ep()}),Rp=()=>({min:0,max:0}),_e=()=>({x:Rp(),y:Rp()}),hd={current:null},Zh={current:!1},s0=typeof window<"u";function r0(){if(Zh.current=!0,!!s0)if(window.matchMedia){const n=window.matchMedia("(prefers-reduced-motion)"),t=()=>hd.current=n.matches;n.addEventListener("change",t),t()}else hd.current=!1}const o0=new WeakMap;function Sr(n){return n!==null&&typeof n=="object"&&typeof n.start=="function"}function Wi(n){return typeof n=="string"||Array.isArray(n)}const Jd=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],Zd=["initial",...Jd];function Ir(n){return Sr(n.animate)||Zd.some(t=>Wi(n[t]))}function Xh(n){return!!(Ir(n)||n.variants)}function l0(n,t,s){for(const o in t){const d=t[o],p=s[o];if(ia(d))n.addValue(o,d);else if(ia(p))n.addValue(o,Ot(d,{owner:n}));else if(p!==d)if(n.hasValue(o)){const c=n.getValue(o);c.liveStyle===!0?c.jump(d):c.hasAnimated||c.set(d)}else{const c=n.getStaticValue(o);n.addValue(o,Ot(c!==void 0?c:d,{owner:n}))}}for(const o in s)t[o]===void 0&&n.removeValue(o);return t}const Np=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];let vr={};function Yh(n){vr=n}function d0(){return vr}class u0{scrapeMotionValuesFromProps(t,s,o){return{}}constructor({parent:t,props:s,presenceContext:o,reducedMotionConfig:d,blockInitialAnimation:p,visualState:c},g={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Fd,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const A=la.now();this.renderScheduledAt<A&&(this.renderScheduledAt=A,De.render(this.render,!1,!0))};const{latestValues:h,renderState:b}=c;this.latestValues=h,this.baseTarget={...h},this.initialValues=s.initial?{...h}:{},this.renderState=b,this.parent=t,this.props=s,this.presenceContext=o,this.depth=t?t.depth+1:0,this.reducedMotionConfig=d,this.options=g,this.blockInitialAnimation=!!p,this.isControllingVariants=Ir(s),this.isVariantNode=Xh(s),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(t&&t.current);const{willChange:f,...y}=this.scrapeMotionValuesFromProps(s,{},this);for(const A in y){const M=y[A];h[A]!==void 0&&ia(M)&&M.set(h[A])}}mount(t){this.current=t,o0.set(t,this),this.projection&&!this.projection.instance&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((s,o)=>this.bindToMotionValue(o,s)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(Zh.current||r0(),this.shouldReduceMotion=hd.current),this.parent?.addChild(this),this.update(this.props,this.presenceContext)}unmount(){this.projection&&this.projection.unmount(),En(this.notifyUpdate),En(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const s=this.features[t];s&&(s.unmount(),s.isMounted=!1)}this.current=null}addChild(t){this.children.add(t),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(t)}removeChild(t){this.children.delete(t),this.enteringChildren&&this.enteringChildren.delete(t)}bindToMotionValue(t,s){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const o=Wt.has(t);o&&this.onBindTransform&&this.onBindTransform();const d=s.on("change",c=>{this.latestValues[t]=c,this.props.onUpdate&&De.preRender(this.notifyUpdate),o&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let p;typeof window<"u"&&window.MotionCheckAppearSync&&(p=window.MotionCheckAppearSync(this,t,s)),this.valueSubscriptions.set(t,()=>{d(),p&&p(),s.owner&&s.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in vr){const s=vr[t];if(!s)continue;const{isEnabled:o,Feature:d}=s;if(!this.features[t]&&d&&o(this.props)&&(this.features[t]=new d(this)),this.features[t]){const p=this.features[t];p.isMounted?p.update():(p.mount(),p.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):_e()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,s){this.latestValues[t]=s}update(t,s){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=s;for(let o=0;o<Np.length;o++){const d=Np[o];this.propEventSubscriptions[d]&&(this.propEventSubscriptions[d](),delete this.propEventSubscriptions[d]);const p="on"+d,c=t[p];c&&(this.propEventSubscriptions[d]=this.on(d,c))}this.prevMotionValues=l0(this,this.scrapeMotionValuesFromProps(t,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(t){return this.props.variants?this.props.variants[t]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(t){const s=this.getClosestVariantNode();if(s)return s.variantChildren&&s.variantChildren.add(t),()=>s.variantChildren.delete(t)}addValue(t,s){const o=this.values.get(t);s!==o&&(o&&this.removeValue(t),this.bindToMotionValue(t,s),this.values.set(t,s),this.latestValues[t]=s.get())}removeValue(t){this.values.delete(t);const s=this.valueSubscriptions.get(t);s&&(s(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,s){if(this.props.values&&this.props.values[t])return this.props.values[t];let o=this.values.get(t);return o===void 0&&s!==void 0&&(o=Ot(s===null?void 0:s,{owner:this}),this.addValue(t,o)),o}readValue(t,s){let o=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:this.getBaseTargetFromProps(this.props,t)??this.readValueFromInstance(this.current,t,this.options);return o!=null&&(typeof o=="string"&&(nh(o)||ih(o))?o=parseFloat(o):!i0(o)&&Rn.test(s)&&(o=qh(t,s)),this.setBaseTarget(t,ia(o)?o.get():o)),ia(o)?o.get():o}setBaseTarget(t,s){this.baseTarget[t]=s}getBaseTarget(t){const{initial:s}=this.props;let o;if(typeof s=="string"||typeof s=="object"){const p=Ud(this.props,s,this.presenceContext?.custom);p&&(o=p[t])}if(s&&o!==void 0)return o;const d=this.getBaseTargetFromProps(this.props,t);return d!==void 0&&!ia(d)?d:this.initialValues[t]!==void 0&&o===void 0?void 0:this.baseTarget[t]}on(t,s){return this.events[t]||(this.events[t]=new Dd),this.events[t].add(s)}notify(t,...s){this.events[t]&&this.events[t].notify(...s)}scheduleRenderMicrotask(){$d.render(this.render)}}class ef extends u0{constructor(){super(...arguments),this.KeyframeResolver=$I}sortInstanceNodePosition(t,s){return t.compareDocumentPosition(s)&2?1:-1}getBaseTargetFromProps(t,s){const o=t.style;return o?o[s]:void 0}removeValueFromRenderState(t,{vars:s,style:o}){delete s[t],delete o[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;ia(t)&&(this.childSubscription=t.on("change",s=>{this.current&&(this.current.textContent=`${s}`)}))}}class Nn{constructor(t){this.isMounted=!1,this.node=t}update(){}}function af({top:n,left:t,right:s,bottom:o}){return{x:{min:t,max:s},y:{min:n,max:o}}}function c0({x:n,y:t}){return{top:t.min,right:n.max,bottom:t.max,left:n.min}}function m0(n,t){if(!t)return n;const s=t({x:n.left,y:n.top}),o=t({x:n.right,y:n.bottom});return{top:s.y,left:s.x,bottom:o.y,right:o.x}}function Ol(n){return n===void 0||n===1}function fd({scale:n,scaleX:t,scaleY:s}){return!Ol(n)||!Ol(t)||!Ol(s)}function Yn(n){return fd(n)||nf(n)||n.z||n.rotate||n.rotateX||n.rotateY||n.skewX||n.skewY}function nf(n){return Gp(n.x)||Gp(n.y)}function Gp(n){return n&&n!=="0%"}function Ar(n,t,s){const o=n-s,d=t*o;return s+d}function Op(n,t,s,o,d){return d!==void 0&&(n=Ar(n,d,o)),Ar(n,s,o)+t}function kd(n,t=0,s=1,o,d){n.min=Op(n.min,t,s,o,d),n.max=Op(n.max,t,s,o,d)}function tf(n,{x:t,y:s}){kd(n.x,t.translate,t.scale,t.originPoint),kd(n.y,s.translate,s.scale,s.originPoint)}const Bp=.999999999999,Kp=1.0000000000001;function p0(n,t,s,o=!1){const d=s.length;if(!d)return;t.x=t.y=1;let p,c;for(let g=0;g<d;g++){p=s[g],c=p.projectionDelta;const{visualElement:h}=p.options;h&&h.props.style&&h.props.style.display==="contents"||(o&&p.options.layoutScroll&&p.scroll&&p!==p.root&&Et(n,{x:-p.scroll.offset.x,y:-p.scroll.offset.y}),c&&(t.x*=c.x.scale,t.y*=c.y.scale,tf(n,c)),o&&Yn(p.latestValues)&&Et(n,p.latestValues))}t.x<Kp&&t.x>Bp&&(t.x=1),t.y<Kp&&t.y>Bp&&(t.y=1)}function Tt(n,t){n.min=n.min+t,n.max=n.max+t}function Vp(n,t,s,o,d=.5){const p=Re(n.min,n.max,d);kd(n,t,s,p,o)}function Et(n,t){Vp(n.x,t.x,t.scaleX,t.scale,t.originX),Vp(n.y,t.y,t.scaleY,t.scale,t.originY)}function sf(n,t){return af(m0(n.getBoundingClientRect(),t))}function g0(n,t,s){const o=sf(n,s),{scroll:d}=t;return d&&(Tt(o.x,d.offset.x),Tt(o.y,d.offset.y)),o}const h0={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},f0=Ft.length;function k0(n,t,s){let o="",d=!0;for(let p=0;p<f0;p++){const c=Ft[p],g=n[c];if(g===void 0)continue;let h=!0;if(typeof g=="number")h=g===(c.startsWith("scale")?1:0);else{const b=parseFloat(g);h=c.startsWith("scale")?b===1:b===0}if(!h||s){const b=Uh(g,Hd[c]);if(!h){d=!1;const f=h0[c]||c;o+=`${f}(${b}) `}s&&(t[c]=b)}}return o=o.trim(),s?o=s(t,d?"":o):d&&(o="none"),o}function Xd(n,t,s){const{style:o,vars:d,transformOrigin:p}=n;let c=!1,g=!1;for(const h in t){const b=t[h];if(Wt.has(h)){c=!0;continue}else if(bh(h)){d[h]=b;continue}else{const f=Uh(b,Hd[h]);h.startsWith("origin")?(g=!0,p[h]=f):o[h]=f}}if(t.transform||(c||s?o.transform=k0(t,n.transform,s):o.transform&&(o.transform="none")),g){const{originX:h="50%",originY:b="50%",originZ:f=0}=p;o.transformOrigin=`${h} ${b} ${f}`}}function rf(n,{style:t,vars:s},o,d){const p=n.style;let c;for(c in t)p[c]=t[c];d?.applyProjectionStyles(p,o);for(c in s)p.setProperty(c,s[c])}function Fp(n,t){return t.max===t.min?0:n/(t.max-t.min)*100}const Di={correct:(n,t)=>{if(!t.target)return n;if(typeof n=="string")if(ee.test(n))n=parseFloat(n);else return n;const s=Fp(n,t.target.x),o=Fp(n,t.target.y);return`${s}% ${o}%`}},b0={correct:(n,{treeScale:t,projectionDelta:s})=>{const o=n,d=Rn.parse(n);if(d.length>5)return o;const p=Rn.createTransformer(n),c=typeof d[0]!="number"?1:0,g=s.x.scale*t.x,h=s.y.scale*t.y;d[0+c]/=g,d[1+c]/=h;const b=Re(g,h,.5);return typeof d[2+c]=="number"&&(d[2+c]/=b),typeof d[3+c]=="number"&&(d[3+c]/=b),p(d)}},bd={borderRadius:{...Di,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Di,borderTopRightRadius:Di,borderBottomLeftRadius:Di,borderBottomRightRadius:Di,boxShadow:b0};function of(n,{layout:t,layoutId:s}){return Wt.has(n)||n.startsWith("origin")||(t||s!==void 0)&&(!!bd[n]||n==="opacity")}function Yd(n,t,s){const o=n.style,d=t?.style,p={};if(!o)return p;for(const c in o)(ia(o[c])||d&&ia(d[c])||of(c,n)||s?.getValue(c)?.liveStyle!==void 0)&&(p[c]=o[c]);return p}function y0(n){return window.getComputedStyle(n)}class v0 extends ef{constructor(){super(...arguments),this.type="html",this.renderInstance=rf}readValueFromInstance(t,s){if(Wt.has(s))return this.projection?.isProjecting?sd(s):QS(t,s);{const o=y0(t),d=(bh(s)?o.getPropertyValue(s):o[s])||0;return typeof d=="string"?d.trim():d}}measureInstanceViewportBox(t,{transformPagePoint:s}){return sf(t,s)}build(t,s,o){Xd(t,s,o.transformTemplate)}scrapeMotionValuesFromProps(t,s,o){return Yd(t,s,o)}}const A0={offset:"stroke-dashoffset",array:"stroke-dasharray"},x0={offset:"strokeDashoffset",array:"strokeDasharray"};function L0(n,t,s=1,o=0,d=!0){n.pathLength=1;const p=d?A0:x0;n[p.offset]=`${-o}`,n[p.array]=`${t} ${s}`}const P0=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function lf(n,{attrX:t,attrY:s,attrScale:o,pathLength:d,pathSpacing:p=1,pathOffset:c=0,...g},h,b,f){if(Xd(n,g,b),h){n.style.viewBox&&(n.attrs.viewBox=n.style.viewBox);return}n.attrs=n.style,n.style={};const{attrs:y,style:A}=n;y.transform&&(A.transform=y.transform,delete y.transform),(A.transform||y.transformOrigin)&&(A.transformOrigin=y.transformOrigin??"50% 50%",delete y.transformOrigin),A.transform&&(A.transformBox=f?.transformBox??"fill-box",delete y.transformBox);for(const M of P0)y[M]!==void 0&&(A[M]=y[M],delete y[M]);t!==void 0&&(y.x=t),s!==void 0&&(y.y=s),o!==void 0&&(y.scale=o),d!==void 0&&L0(y,d,p,c,!1)}const df=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),uf=n=>typeof n=="string"&&n.toLowerCase()==="svg";function w0(n,t,s,o){rf(n,t,void 0,o);for(const d in t.attrs)n.setAttribute(df.has(d)?d:_d(d),t.attrs[d])}function cf(n,t,s){const o=Yd(n,t,s);for(const d in n)if(ia(n[d])||ia(t[d])){const p=Ft.indexOf(d)!==-1?"attr"+d.charAt(0).toUpperCase()+d.substring(1):d;o[p]=n[d]}return o}class S0 extends ef{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=_e}getBaseTargetFromProps(t,s){return t[s]}readValueFromInstance(t,s){if(Wt.has(s)){const o=Wh(s);return o&&o.default||0}return s=df.has(s)?s:_d(s),t.getAttribute(s)}scrapeMotionValuesFromProps(t,s,o){return cf(t,s,o)}build(t,s,o){lf(t,s,this.isSVGTag,o.transformTemplate,o.style)}renderInstance(t,s,o,d){w0(t,s,o,d)}mount(t){this.isSVGTag=uf(t.tagName),super.mount(t)}}const I0=Zd.length;function mf(n){if(!n)return;if(!n.isControllingVariants){const s=n.parent?mf(n.parent)||{}:{};return n.props.initial!==void 0&&(s.initial=n.props.initial),s}const t={};for(let s=0;s<I0;s++){const o=Zd[s],d=n.props[o];(Wi(d)||d===!1)&&(t[o]=d)}return t}function pf(n,t){if(!Array.isArray(t))return!1;const s=t.length;if(s!==n.length)return!1;for(let o=0;o<s;o++)if(t[o]!==n[o])return!1;return!0}const M0=[...Jd].reverse(),j0=Jd.length;function C0(n){return t=>Promise.all(t.map(({animation:s,options:o})=>OI(n,s,o)))}function D0(n){let t=C0(n),s=Wp(),o=!0;const d=h=>(b,f)=>{const y=Rt(n,f,h==="exit"?n.presenceContext?.custom:void 0);if(y){const{transition:A,transitionEnd:M,...P}=y;b={...b,...P,...M}}return b};function p(h){t=h(n)}function c(h){const{props:b}=n,f=mf(n.parent)||{},y=[],A=new Set;let M={},P=1/0;for(let C=0;C<j0;C++){const E=M0[C],F=s[E],K=b[E]!==void 0?b[E]:f[E],U=Wi(K),W=E===h?F.isActive:null;W===!1&&(P=C);let J=K===f[E]&&K!==b[E]&&U;if(J&&o&&n.manuallyAnimateOnMount&&(J=!1),F.protectedKeys={...M},!F.isActive&&W===null||!K&&!F.prevProp||Sr(K)||typeof K=="boolean")continue;const de=z0(F.prevProp,K);let O=de||E===h&&F.isActive&&!J&&U||C>P&&U,_=!1;const te=Array.isArray(K)?K:[K];let be=te.reduce(d(E),{});W===!1&&(be={});const{prevResolvedValues:pe={}}=F,ke={...pe,...be},Ie=se=>{O=!0,A.has(se)&&(_=!0,A.delete(se)),F.needsAnimating[se]=!0;const D=n.getValue(se);D&&(D.liveStyle=!1)};for(const se in ke){const D=be[se],Q=pe[se];if(M.hasOwnProperty(se))continue;let q=!1;cd(D)&&cd(Q)?q=!pf(D,Q):q=D!==Q,q?D!=null?Ie(se):A.add(se):D!==void 0&&A.has(se)?Ie(se):F.protectedKeys[se]=!0}F.prevProp=K,F.prevResolvedValues=be,F.isActive&&(M={...M,...be}),o&&n.blockInitialAnimation&&(O=!1);const me=J&&de;O&&(!me||_)&&y.push(...te.map(se=>{const D={type:E};if(typeof se=="string"&&o&&!me&&n.manuallyAnimateOnMount&&n.parent){const{parent:Q}=n,q=Rt(Q,se);if(Q.enteringChildren&&q){const{delayChildren:w}=q.transition||{};D.delay=Rh(Q.enteringChildren,n,w)}}return{animation:se,options:D}}))}if(A.size){const C={};if(typeof b.initial!="boolean"){const E=Rt(n,Array.isArray(b.initial)?b.initial[0]:b.initial);E&&E.transition&&(C.transition=E.transition)}A.forEach(E=>{const F=n.getBaseTarget(E),K=n.getValue(E);K&&(K.liveStyle=!0),C[E]=F??null}),y.push({animation:C})}let z=!!y.length;return o&&(b.initial===!1||b.initial===b.animate)&&!n.manuallyAnimateOnMount&&(z=!1),o=!1,z?t(y):Promise.resolve()}function g(h,b){if(s[h].isActive===b)return Promise.resolve();n.variantChildren?.forEach(y=>y.animationState?.setActive(h,b)),s[h].isActive=b;const f=c(h);for(const y in s)s[y].protectedKeys={};return f}return{animateChanges:c,setActive:g,setAnimateFunction:p,getState:()=>s,reset:()=>{s=Wp()}}}function z0(n,t){return typeof t=="string"?t!==n:Array.isArray(t)?!pf(t,n):!1}function Xn(n=!1){return{isActive:n,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Wp(){return{animate:Xn(!0),whileInView:Xn(),whileHover:Xn(),whileTap:Xn(),whileDrag:Xn(),whileFocus:Xn(),exit:Xn()}}function qp(n,t){n.min=t.min,n.max=t.max}function Ga(n,t){qp(n.x,t.x),qp(n.y,t.y)}function Up(n,t){n.translate=t.translate,n.scale=t.scale,n.originPoint=t.originPoint,n.origin=t.origin}const gf=1e-4,T0=1-gf,E0=1+gf,hf=.01,R0=0-hf,N0=0+hf;function da(n){return n.max-n.min}function G0(n,t,s){return Math.abs(n-t)<=s}function _p(n,t,s,o=.5){n.origin=o,n.originPoint=Re(t.min,t.max,n.origin),n.scale=da(s)/da(t),n.translate=Re(s.min,s.max,n.origin)-n.originPoint,(n.scale>=T0&&n.scale<=E0||isNaN(n.scale))&&(n.scale=1),(n.translate>=R0&&n.translate<=N0||isNaN(n.translate))&&(n.translate=0)}function Ni(n,t,s,o){_p(n.x,t.x,s.x,o?o.originX:void 0),_p(n.y,t.y,s.y,o?o.originY:void 0)}function Hp(n,t,s){n.min=s.min+t.min,n.max=n.min+da(t)}function O0(n,t,s){Hp(n.x,t.x,s.x),Hp(n.y,t.y,s.y)}function $p(n,t,s){n.min=t.min-s.min,n.max=n.min+da(t)}function xr(n,t,s){$p(n.x,t.x,s.x),$p(n.y,t.y,s.y)}function Qp(n,t,s,o,d){return n-=t,n=Ar(n,1/s,o),d!==void 0&&(n=Ar(n,1/d,o)),n}function B0(n,t=0,s=1,o=.5,d,p=n,c=n){if(Ha.test(t)&&(t=parseFloat(t),t=Re(c.min,c.max,t/100)-c.min),typeof t!="number")return;let g=Re(p.min,p.max,o);n===p&&(g-=t),n.min=Qp(n.min,t,s,g,d),n.max=Qp(n.max,t,s,g,d)}function Jp(n,t,[s,o,d],p,c){B0(n,t[s],t[o],t[d],t.scale,p,c)}const K0=["x","scaleX","originX"],V0=["y","scaleY","originY"];function Zp(n,t,s,o){Jp(n.x,t,K0,s?s.x:void 0,o?o.x:void 0),Jp(n.y,t,V0,s?s.y:void 0,o?o.y:void 0)}function Xp(n){return n.translate===0&&n.scale===1}function ff(n){return Xp(n.x)&&Xp(n.y)}function Yp(n,t){return n.min===t.min&&n.max===t.max}function F0(n,t){return Yp(n.x,t.x)&&Yp(n.y,t.y)}function eg(n,t){return Math.round(n.min)===Math.round(t.min)&&Math.round(n.max)===Math.round(t.max)}function kf(n,t){return eg(n.x,t.x)&&eg(n.y,t.y)}function ag(n){return da(n.x)/da(n.y)}function ng(n,t){return n.translate===t.translate&&n.scale===t.scale&&n.originPoint===t.originPoint}function Sa(n){return[n("x"),n("y")]}function W0(n,t,s){let o="";const d=n.x.translate/t.x,p=n.y.translate/t.y,c=s?.z||0;if((d||p||c)&&(o=`translate3d(${d}px, ${p}px, ${c}px) `),(t.x!==1||t.y!==1)&&(o+=`scale(${1/t.x}, ${1/t.y}) `),s){const{transformPerspective:b,rotate:f,rotateX:y,rotateY:A,skewX:M,skewY:P}=s;b&&(o=`perspective(${b}px) ${o}`),f&&(o+=`rotate(${f}deg) `),y&&(o+=`rotateX(${y}deg) `),A&&(o+=`rotateY(${A}deg) `),M&&(o+=`skewX(${M}deg) `),P&&(o+=`skewY(${P}deg) `)}const g=n.x.scale*t.x,h=n.y.scale*t.y;return(g!==1||h!==1)&&(o+=`scale(${g}, ${h})`),o||"none"}const bf=["TopLeft","TopRight","BottomLeft","BottomRight"],q0=bf.length,tg=n=>typeof n=="string"?parseFloat(n):n,ig=n=>typeof n=="number"||ee.test(n);function U0(n,t,s,o,d,p){d?(n.opacity=Re(0,s.opacity??1,_0(o)),n.opacityExit=Re(t.opacity??1,0,H0(o))):p&&(n.opacity=Re(t.opacity??1,s.opacity??1,o));for(let c=0;c<q0;c++){const g=`border${bf[c]}Radius`;let h=sg(t,g),b=sg(s,g);if(h===void 0&&b===void 0)continue;h||(h=0),b||(b=0),h===0||b===0||ig(h)===ig(b)?(n[g]=Math.max(Re(tg(h),tg(b),o),0),(Ha.test(b)||Ha.test(h))&&(n[g]+="%")):n[g]=b}(t.rotate||s.rotate)&&(n.rotate=Re(t.rotate||0,s.rotate||0,o))}function sg(n,t){return n[t]!==void 0?n[t]:n.borderRadius}const _0=yf(0,.5,mh),H0=yf(.5,.95,Ma);function yf(n,t,s){return o=>o<n?0:o>t?1:s(Ki(n,t,o))}function $0(n,t,s){const o=ia(n)?n:Ot(n);return o.start(qd("",o,t,s)),o.animation}function qi(n,t,s,o={passive:!0}){return n.addEventListener(t,s,o),()=>n.removeEventListener(t,s)}const Q0=(n,t)=>n.depth-t.depth;class J0{constructor(){this.children=[],this.isDirty=!1}add(t){Id(this.children,t),this.isDirty=!0}remove(t){Md(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(Q0),this.isDirty=!1,this.children.forEach(t)}}function Z0(n,t){const s=la.now(),o=({timestamp:d})=>{const p=d-s;p>=t&&(En(o),n(p-t))};return De.setup(o,!0),()=>En(o)}function gr(n){return ia(n)?n.get():n}class X0{constructor(){this.members=[]}add(t){Id(this.members,t),t.scheduleRender()}remove(t){if(Md(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const s=this.members[this.members.length-1];s&&this.promote(s)}}relegate(t){const s=this.members.findIndex(d=>t===d);if(s===0)return!1;let o;for(let d=s;d>=0;d--){const p=this.members[d];if(p.isPresent!==!1){o=p;break}}return o?(this.promote(o),!0):!1}promote(t,s){const o=this.lead;if(t!==o&&(this.prevLead=o,this.lead=t,t.show(),o)){o.instance&&o.scheduleRender(),t.scheduleRender(),t.resumeFrom=o,s&&(t.resumeFrom.preserveOpacity=!0),o.snapshot&&(t.snapshot=o.snapshot,t.snapshot.latestValues=o.animationValues||o.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:d}=t.options;d===!1&&o.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:s,resumingFrom:o}=t;s.onExitComplete&&s.onExitComplete(),o&&o.options.onExitComplete&&o.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}const hr={hasAnimatedSinceResize:!0,hasEverUpdated:!1},Bl=["","X","Y","Z"],Y0=1e3;let eM=0;function Kl(n,t,s,o){const{latestValues:d}=t;d[n]&&(s[n]=d[n],t.setStaticValue(n,0),o&&(o[n]=0))}function vf(n){if(n.hasCheckedOptimisedAppear=!0,n.root===n)return;const{visualElement:t}=n.options;if(!t)return;const s=Bh(t);if(window.MotionHasOptimisedAnimation(s,"transform")){const{layout:d,layoutId:p}=n.options;window.MotionCancelOptimisedAnimation(s,"transform",De,!(d||p))}const{parent:o}=n;o&&!o.hasCheckedOptimisedAppear&&vf(o)}function Af({attachResizeListener:n,defaultParent:t,measureScroll:s,checkIsScrollRoot:o,resetTransform:d}){return class{constructor(c={},g=t?.()){this.id=eM++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(tM),this.nodes.forEach(oM),this.nodes.forEach(lM),this.nodes.forEach(iM)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=c,this.root=g?g.root||g:this,this.path=g?[...g.path,g]:[],this.parent=g,this.depth=g?g.depth+1:0;for(let h=0;h<this.path.length;h++)this.path[h].shouldResetTransform=!0;this.root===this&&(this.nodes=new J0)}addEventListener(c,g){return this.eventHandlers.has(c)||this.eventHandlers.set(c,new Dd),this.eventHandlers.get(c).add(g)}notifyListeners(c,...g){const h=this.eventHandlers.get(c);h&&h.notify(...g)}hasListeners(c){return this.eventHandlers.has(c)}mount(c){if(this.instance)return;this.isSVG=Jh(c)&&!n0(c),this.instance=c;const{layoutId:g,layout:h,visualElement:b}=this.options;if(b&&!b.current&&b.mount(c),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(h||g)&&(this.isLayoutDirty=!0),n){let f,y=0;const A=()=>this.root.updateBlockedByResize=!1;De.read(()=>{y=window.innerWidth}),n(c,()=>{const M=window.innerWidth;M!==y&&(y=M,this.root.updateBlockedByResize=!0,f&&f(),f=Z0(A,250),hr.hasAnimatedSinceResize&&(hr.hasAnimatedSinceResize=!1,this.nodes.forEach(lg)))})}g&&this.root.registerSharedNode(g,this),this.options.animate!==!1&&b&&(g||h)&&this.addEventListener("didUpdate",({delta:f,hasLayoutChanged:y,hasRelativeLayoutChanged:A,layout:M})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const P=this.options.transition||b.getDefaultTransition()||pM,{onLayoutAnimationStart:z,onLayoutAnimationComplete:C}=b.getProps(),E=!this.targetLayout||!kf(this.targetLayout,M),F=!y&&A;if(this.options.layoutRoot||this.resumeFrom||F||y&&(E||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const K={...Wd(P,"layout"),onPlay:z,onComplete:C};(b.shouldReduceMotion||this.options.layoutRoot)&&(K.delay=0,K.type=!1),this.startAnimation(K),this.setAnimationOrigin(f,F)}else y||lg(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=M})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const c=this.getStack();c&&c.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),En(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(dM),this.animationId++)}getTransformTemplate(){const{visualElement:c}=this.options;return c&&c.getProps().transformTemplate}willUpdate(c=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&vf(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let f=0;f<this.path.length;f++){const y=this.path[f];y.shouldResetTransform=!0,y.updateScroll("snapshot"),y.options.layoutRoot&&y.willUpdate(!1)}const{layoutId:g,layout:h}=this.options;if(g===void 0&&!h)return;const b=this.getTransformTemplate();this.prevTransformTemplateValue=b?b(this.latestValues,""):void 0,this.updateSnapshot(),c&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(rg);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(og);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(rM),this.nodes.forEach(aM),this.nodes.forEach(nM)):this.nodes.forEach(og),this.clearAllSnapshots();const g=la.now();Ye.delta=$a(0,1e3/60,g-Ye.timestamp),Ye.timestamp=g,Ye.isProcessing=!0,Dl.update.process(Ye),Dl.preRender.process(Ye),Dl.render.process(Ye),Ye.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,$d.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(sM),this.sharedNodes.forEach(uM)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,De.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){De.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!da(this.snapshot.measuredBox.x)&&!da(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let h=0;h<this.path.length;h++)this.path[h].updateScroll();const c=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected=_e(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:g}=this.options;g&&g.notify("LayoutMeasure",this.layout.layoutBox,c?c.layoutBox:void 0)}updateScroll(c="measure"){let g=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===c&&(g=!1),g&&this.instance){const h=o(this.instance);this.scroll={animationId:this.root.animationId,phase:c,isRoot:h,offset:s(this.instance),wasRoot:this.scroll?this.scroll.isRoot:h}}}resetTransform(){if(!d)return;const c=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,g=this.projectionDelta&&!ff(this.projectionDelta),h=this.getTransformTemplate(),b=h?h(this.latestValues,""):void 0,f=b!==this.prevTransformTemplateValue;c&&this.instance&&(g||Yn(this.latestValues)||f)&&(d(this.instance,b),this.shouldResetTransform=!1,this.scheduleRender())}measure(c=!0){const g=this.measurePageBox();let h=this.removeElementScroll(g);return c&&(h=this.removeTransform(h)),gM(h),{animationId:this.root.animationId,measuredBox:g,layoutBox:h,latestValues:{},source:this.id}}measurePageBox(){const{visualElement:c}=this.options;if(!c)return _e();const g=c.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(hM))){const{scroll:b}=this.root;b&&(Tt(g.x,b.offset.x),Tt(g.y,b.offset.y))}return g}removeElementScroll(c){const g=_e();if(Ga(g,c),this.scroll?.wasRoot)return g;for(let h=0;h<this.path.length;h++){const b=this.path[h],{scroll:f,options:y}=b;b!==this.root&&f&&y.layoutScroll&&(f.wasRoot&&Ga(g,c),Tt(g.x,f.offset.x),Tt(g.y,f.offset.y))}return g}applyTransform(c,g=!1){const h=_e();Ga(h,c);for(let b=0;b<this.path.length;b++){const f=this.path[b];!g&&f.options.layoutScroll&&f.scroll&&f!==f.root&&Et(h,{x:-f.scroll.offset.x,y:-f.scroll.offset.y}),Yn(f.latestValues)&&Et(h,f.latestValues)}return Yn(this.latestValues)&&Et(h,this.latestValues),h}removeTransform(c){const g=_e();Ga(g,c);for(let h=0;h<this.path.length;h++){const b=this.path[h];if(!b.instance||!Yn(b.latestValues))continue;fd(b.latestValues)&&b.updateSnapshot();const f=_e(),y=b.measurePageBox();Ga(f,y),Zp(g,b.latestValues,b.snapshot?b.snapshot.layoutBox:void 0,f)}return Yn(this.latestValues)&&Zp(g,this.latestValues),g}setTargetDelta(c){this.targetDelta=c,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(c){this.options={...this.options,...c,crossfade:c.crossfade!==void 0?c.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==Ye.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(c=!1){const g=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=g.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=g.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=g.isSharedProjectionDirty);const h=!!this.resumingFrom||this!==g;if(!(c||h&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:f,layoutId:y}=this.options;if(!this.layout||!(f||y))return;this.resolvedRelativeTargetAt=Ye.timestamp;const A=this.getClosestProjectingParent();A&&this.linkedParentVersion!==A.layoutVersion&&!A.options.layoutRoot&&this.removeRelativeTarget(),!this.targetDelta&&!this.relativeTarget&&(A&&A.layout?this.createRelativeTarget(A,this.layout.layoutBox,A.layout.layoutBox):this.removeRelativeTarget()),!(!this.relativeTarget&&!this.targetDelta)&&(this.target||(this.target=_e(),this.targetWithTransforms=_e()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),O0(this.target,this.relativeTarget,this.relativeParent.target)):this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):Ga(this.target,this.layout.layoutBox),tf(this.target,this.targetDelta)):Ga(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,A&&!!A.resumingFrom==!!this.resumingFrom&&!A.options.layoutScroll&&A.target&&this.animationProgress!==1?this.createRelativeTarget(A,this.target,A.target):this.relativeParent=this.relativeTarget=void 0))}getClosestProjectingParent(){if(!(!this.parent||fd(this.parent.latestValues)||nf(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(c,g,h){this.relativeParent=c,this.linkedParentVersion=c.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=_e(),this.relativeTargetOrigin=_e(),xr(this.relativeTargetOrigin,g,h),Ga(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){const c=this.getLead(),g=!!this.resumingFrom||this!==c;let h=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(h=!1),g&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(h=!1),this.resolvedRelativeTargetAt===Ye.timestamp&&(h=!1),h)return;const{layout:b,layoutId:f}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(b||f))return;Ga(this.layoutCorrected,this.layout.layoutBox);const y=this.treeScale.x,A=this.treeScale.y;p0(this.layoutCorrected,this.treeScale,this.path,g),c.layout&&!c.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(c.target=c.layout.layoutBox,c.targetWithTransforms=_e());const{target:M}=c;if(!M){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(Up(this.prevProjectionDelta.x,this.projectionDelta.x),Up(this.prevProjectionDelta.y,this.projectionDelta.y)),Ni(this.projectionDelta,this.layoutCorrected,M,this.latestValues),(this.treeScale.x!==y||this.treeScale.y!==A||!ng(this.projectionDelta.x,this.prevProjectionDelta.x)||!ng(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",M))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(c=!0){if(this.options.visualElement?.scheduleRender(),c){const g=this.getStack();g&&g.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=zt(),this.projectionDelta=zt(),this.projectionDeltaWithTransform=zt()}setAnimationOrigin(c,g=!1){const h=this.snapshot,b=h?h.latestValues:{},f={...this.latestValues},y=zt();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!g;const A=_e(),M=h?h.source:void 0,P=this.layout?this.layout.source:void 0,z=M!==P,C=this.getStack(),E=!C||C.members.length<=1,F=!!(z&&!E&&this.options.crossfade===!0&&!this.path.some(mM));this.animationProgress=0;let K;this.mixTargetDelta=U=>{const W=U/1e3;dg(y.x,c.x,W),dg(y.y,c.y,W),this.setTargetDelta(y),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(xr(A,this.layout.layoutBox,this.relativeParent.layout.layoutBox),cM(this.relativeTarget,this.relativeTargetOrigin,A,W),K&&F0(this.relativeTarget,K)&&(this.isProjectionDirty=!1),K||(K=_e()),Ga(K,this.relativeTarget)),z&&(this.animationValues=f,U0(f,b,this.latestValues,W,F,E)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=W},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(c){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(En(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=De.update(()=>{hr.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=Ot(0)),this.currentAnimation=$0(this.motionValue,[0,1e3],{...c,velocity:0,isSync:!0,onUpdate:g=>{this.mixTargetDelta(g),c.onUpdate&&c.onUpdate(g)},onStop:()=>{},onComplete:()=>{c.onComplete&&c.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const c=this.getStack();c&&c.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Y0),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const c=this.getLead();let{targetWithTransforms:g,target:h,layout:b,latestValues:f}=c;if(!(!g||!h||!b)){if(this!==c&&this.layout&&b&&xf(this.options.animationType,this.layout.layoutBox,b.layoutBox)){h=this.target||_e();const y=da(this.layout.layoutBox.x);h.x.min=c.target.x.min,h.x.max=h.x.min+y;const A=da(this.layout.layoutBox.y);h.y.min=c.target.y.min,h.y.max=h.y.min+A}Ga(g,h),Et(g,f),Ni(this.projectionDeltaWithTransform,this.layoutCorrected,g,f)}}registerSharedNode(c,g){this.sharedNodes.has(c)||this.sharedNodes.set(c,new X0),this.sharedNodes.get(c).add(g);const b=g.options.initialPromotionConfig;g.promote({transition:b?b.transition:void 0,preserveFollowOpacity:b&&b.shouldPreserveFollowOpacity?b.shouldPreserveFollowOpacity(g):void 0})}isLead(){const c=this.getStack();return c?c.lead===this:!0}getLead(){const{layoutId:c}=this.options;return c?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:c}=this.options;return c?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:c}=this.options;if(c)return this.root.sharedNodes.get(c)}promote({needsReset:c,transition:g,preserveFollowOpacity:h}={}){const b=this.getStack();b&&b.promote(this,h),c&&(this.projectionDelta=void 0,this.needsReset=!0),g&&this.setOptions({transition:g})}relegate(){const c=this.getStack();return c?c.relegate(this):!1}resetSkewAndRotation(){const{visualElement:c}=this.options;if(!c)return;let g=!1;const{latestValues:h}=c;if((h.z||h.rotate||h.rotateX||h.rotateY||h.rotateZ||h.skewX||h.skewY)&&(g=!0),!g)return;const b={};h.z&&Kl("z",c,b,this.animationValues);for(let f=0;f<Bl.length;f++)Kl(`rotate${Bl[f]}`,c,b,this.animationValues),Kl(`skew${Bl[f]}`,c,b,this.animationValues);c.render();for(const f in b)c.setStaticValue(f,b[f]),this.animationValues&&(this.animationValues[f]=b[f]);c.scheduleRender()}applyProjectionStyles(c,g){if(!this.instance||this.isSVG)return;if(!this.isVisible){c.visibility="hidden";return}const h=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,c.visibility="",c.opacity="",c.pointerEvents=gr(g?.pointerEvents)||"",c.transform=h?h(this.latestValues,""):"none";return}const b=this.getLead();if(!this.projectionDelta||!this.layout||!b.target){this.options.layoutId&&(c.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,c.pointerEvents=gr(g?.pointerEvents)||""),this.hasProjected&&!Yn(this.latestValues)&&(c.transform=h?h({},""):"none",this.hasProjected=!1);return}c.visibility="";const f=b.animationValues||b.latestValues;this.applyTransformsToTarget();let y=W0(this.projectionDeltaWithTransform,this.treeScale,f);h&&(y=h(f,y)),c.transform=y;const{x:A,y:M}=this.projectionDelta;c.transformOrigin=`${A.origin*100}% ${M.origin*100}% 0`,b.animationValues?c.opacity=b===this?f.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:f.opacityExit:c.opacity=b===this?f.opacity!==void 0?f.opacity:"":f.opacityExit!==void 0?f.opacityExit:0;for(const P in bd){if(f[P]===void 0)continue;const{correct:z,applyTo:C,isCSSVariable:E}=bd[P],F=y==="none"?f[P]:z(f[P],b);if(C){const K=C.length;for(let U=0;U<K;U++)c[C[U]]=F}else E?this.options.visualElement.renderState.vars[P]=F:c[P]=F}this.options.layoutId&&(c.pointerEvents=b===this?gr(g?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(c=>c.currentAnimation?.stop()),this.root.nodes.forEach(rg),this.root.sharedNodes.clear()}}}function aM(n){n.updateLayout()}function nM(n){const t=n.resumeFrom?.snapshot||n.snapshot;if(n.isLead()&&n.layout&&t&&n.hasListeners("didUpdate")){const{layoutBox:s,measuredBox:o}=n.layout,{animationType:d}=n.options,p=t.source!==n.layout.source;d==="size"?Sa(f=>{const y=p?t.measuredBox[f]:t.layoutBox[f],A=da(y);y.min=s[f].min,y.max=y.min+A}):xf(d,t.layoutBox,s)&&Sa(f=>{const y=p?t.measuredBox[f]:t.layoutBox[f],A=da(s[f]);y.max=y.min+A,n.relativeTarget&&!n.currentAnimation&&(n.isProjectionDirty=!0,n.relativeTarget[f].max=n.relativeTarget[f].min+A)});const c=zt();Ni(c,s,t.layoutBox);const g=zt();p?Ni(g,n.applyTransform(o,!0),t.measuredBox):Ni(g,s,t.layoutBox);const h=!ff(c);let b=!1;if(!n.resumeFrom){const f=n.getClosestProjectingParent();if(f&&!f.resumeFrom){const{snapshot:y,layout:A}=f;if(y&&A){const M=_e();xr(M,t.layoutBox,y.layoutBox);const P=_e();xr(P,s,A.layoutBox),kf(M,P)||(b=!0),f.options.layoutRoot&&(n.relativeTarget=P,n.relativeTargetOrigin=M,n.relativeParent=f)}}}n.notifyListeners("didUpdate",{layout:s,snapshot:t,delta:g,layoutDelta:c,hasLayoutChanged:h,hasRelativeLayoutChanged:b})}else if(n.isLead()){const{onExitComplete:s}=n.options;s&&s()}n.options.transition=void 0}function tM(n){n.parent&&(n.isProjecting()||(n.isProjectionDirty=n.parent.isProjectionDirty),n.isSharedProjectionDirty||(n.isSharedProjectionDirty=!!(n.isProjectionDirty||n.parent.isProjectionDirty||n.parent.isSharedProjectionDirty)),n.isTransformDirty||(n.isTransformDirty=n.parent.isTransformDirty))}function iM(n){n.isProjectionDirty=n.isSharedProjectionDirty=n.isTransformDirty=!1}function sM(n){n.clearSnapshot()}function rg(n){n.clearMeasurements()}function og(n){n.isLayoutDirty=!1}function rM(n){const{visualElement:t}=n.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),n.resetTransform()}function lg(n){n.finishAnimation(),n.targetDelta=n.relativeTarget=n.target=void 0,n.isProjectionDirty=!0}function oM(n){n.resolveTargetDelta()}function lM(n){n.calcProjection()}function dM(n){n.resetSkewAndRotation()}function uM(n){n.removeLeadSnapshot()}function dg(n,t,s){n.translate=Re(t.translate,0,s),n.scale=Re(t.scale,1,s),n.origin=t.origin,n.originPoint=t.originPoint}function ug(n,t,s,o){n.min=Re(t.min,s.min,o),n.max=Re(t.max,s.max,o)}function cM(n,t,s,o){ug(n.x,t.x,s.x,o),ug(n.y,t.y,s.y,o)}function mM(n){return n.animationValues&&n.animationValues.opacityExit!==void 0}const pM={duration:.45,ease:[.4,0,.1,1]},cg=n=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(n),mg=cg("applewebkit/")&&!cg("chrome/")?Math.round:Ma;function pg(n){n.min=mg(n.min),n.max=mg(n.max)}function gM(n){pg(n.x),pg(n.y)}function xf(n,t,s){return n==="position"||n==="preserve-aspect"&&!G0(ag(t),ag(s),.2)}function hM(n){return n!==n.root&&n.scroll?.wasRoot}const fM=Af({attachResizeListener:(n,t)=>qi(n,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),Vl={current:void 0},Lf=Af({measureScroll:n=>({x:n.scrollLeft,y:n.scrollTop}),defaultParent:()=>{if(!Vl.current){const n=new fM({});n.mount(window),n.setOptions({layoutScroll:!0}),Vl.current=n}return Vl.current},resetTransform:(n,t)=>{n.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:n=>window.getComputedStyle(n).position==="fixed"}),Pf=T.createContext({transformPagePoint:n=>n,isStatic:!1,reducedMotion:"never"});function kM(n=!0){const t=T.useContext(Sd);if(t===null)return[!0,null];const{isPresent:s,onExitComplete:o,register:d}=t,p=T.useId();T.useEffect(()=>{if(n)return d(p)},[n]);const c=T.useCallback(()=>n&&o&&o(p),[p,o,n]);return!s&&o?[!1,c]:[!0]}const wf=T.createContext({strict:!1}),gg={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]};let hg=!1;function bM(){if(hg)return;const n={};for(const t in gg)n[t]={isEnabled:s=>gg[t].some(o=>!!s[o])};Yh(n),hg=!0}function Sf(){return bM(),d0()}function yM(n){const t=Sf();for(const s in n)t[s]={...t[s],...n[s]};Yh(t)}const vM=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function Lr(n){return n.startsWith("while")||n.startsWith("drag")&&n!=="draggable"||n.startsWith("layout")||n.startsWith("onTap")||n.startsWith("onPan")||n.startsWith("onLayout")||vM.has(n)}let If=n=>!Lr(n);function AM(n){typeof n=="function"&&(If=t=>t.startsWith("on")?!Lr(t):n(t))}try{AM(require("@emotion/is-prop-valid").default)}catch{}function xM(n,t,s){const o={};for(const d in n)d==="values"&&typeof n.values=="object"||(If(d)||s===!0&&Lr(d)||!t&&!Lr(d)||n.draggable&&d.startsWith("onDrag"))&&(o[d]=n[d]);return o}const Mr=T.createContext({});function LM(n,t){if(Ir(n)){const{initial:s,animate:o}=n;return{initial:s===!1||Wi(s)?s:void 0,animate:Wi(o)?o:void 0}}return n.inherit!==!1?t:{}}function PM(n){const{initial:t,animate:s}=LM(n,T.useContext(Mr));return T.useMemo(()=>({initial:t,animate:s}),[fg(t),fg(s)])}function fg(n){return Array.isArray(n)?n.join(" "):n}const eu=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function Mf(n,t,s){for(const o in t)!ia(t[o])&&!of(o,s)&&(n[o]=t[o])}function wM({transformTemplate:n},t){return T.useMemo(()=>{const s=eu();return Xd(s,t,n),Object.assign({},s.vars,s.style)},[t])}function SM(n,t){const s=n.style||{},o={};return Mf(o,s,n),Object.assign(o,wM(n,t)),o}function IM(n,t){const s={},o=SM(n,t);return n.drag&&n.dragListener!==!1&&(s.draggable=!1,o.userSelect=o.WebkitUserSelect=o.WebkitTouchCallout="none",o.touchAction=n.drag===!0?"none":`pan-${n.drag==="x"?"y":"x"}`),n.tabIndex===void 0&&(n.onTap||n.onTapStart||n.whileTap)&&(s.tabIndex=0),s.style=o,s}const jf=()=>({...eu(),attrs:{}});function MM(n,t,s,o){const d=T.useMemo(()=>{const p=jf();return lf(p,t,uf(o),n.transformTemplate,n.style),{...p.attrs,style:{...p.style}}},[t]);if(n.style){const p={};Mf(p,n.style,n),d.style={...p,...d.style}}return d}const jM=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function au(n){return typeof n!="string"||n.includes("-")?!1:!!(jM.indexOf(n)>-1||/[A-Z]/u.test(n))}function CM(n,t,s,{latestValues:o},d,p=!1,c){const h=(c??au(n)?MM:IM)(t,o,d,n),b=xM(t,typeof n=="string",p),f=n!==T.Fragment?{...b,...h,ref:s}:{},{children:y}=t,A=T.useMemo(()=>ia(y)?y.get():y,[y]);return T.createElement(n,{...f,children:A})}function DM({scrapeMotionValuesFromProps:n,createRenderState:t},s,o,d){return{latestValues:zM(s,o,d,n),renderState:t()}}function zM(n,t,s,o){const d={},p=o(n,{});for(const A in p)d[A]=gr(p[A]);let{initial:c,animate:g}=n;const h=Ir(n),b=Xh(n);t&&b&&!h&&n.inherit!==!1&&(c===void 0&&(c=t.initial),g===void 0&&(g=t.animate));let f=s?s.initial===!1:!1;f=f||c===!1;const y=f?g:c;if(y&&typeof y!="boolean"&&!Sr(y)){const A=Array.isArray(y)?y:[y];for(let M=0;M<A.length;M++){const P=Ud(n,A[M]);if(P){const{transitionEnd:z,transition:C,...E}=P;for(const F in E){let K=E[F];if(Array.isArray(K)){const U=f?K.length-1:0;K=K[U]}K!==null&&(d[F]=K)}for(const F in z)d[F]=z[F]}}}return d}const Cf=n=>(t,s)=>{const o=T.useContext(Mr),d=T.useContext(Sd),p=()=>DM(n,t,o,d);return s?p():Uw(p)},TM=Cf({scrapeMotionValuesFromProps:Yd,createRenderState:eu}),EM=Cf({scrapeMotionValuesFromProps:cf,createRenderState:jf}),RM=Symbol.for("motionComponentSymbol");function NM(n,t,s){const o=T.useRef(s);T.useInsertionEffect(()=>{o.current=s});const d=T.useRef(null);return T.useCallback(p=>{p&&n.onMount?.(p),t&&(p?t.mount(p):t.unmount());const c=o.current;if(typeof c=="function")if(p){const g=c(p);typeof g=="function"&&(d.current=g)}else d.current?(d.current(),d.current=null):c(p);else c&&(c.current=p)},[t])}const Df=T.createContext({});function Ti(n){return n&&typeof n=="object"&&Object.prototype.hasOwnProperty.call(n,"current")}function GM(n,t,s,o,d,p){const{visualElement:c}=T.useContext(Mr),g=T.useContext(wf),h=T.useContext(Sd),b=T.useContext(Pf).reducedMotion,f=T.useRef(null);o=o||g.renderer,!f.current&&o&&(f.current=o(n,{visualState:t,parent:c,props:s,presenceContext:h,blockInitialAnimation:h?h.initial===!1:!1,reducedMotionConfig:b,isSVG:p}));const y=f.current,A=T.useContext(Df);y&&!y.projection&&d&&(y.type==="html"||y.type==="svg")&&OM(f.current,s,d,A);const M=T.useRef(!1);T.useInsertionEffect(()=>{y&&M.current&&y.update(s,h)});const P=s[Oh],z=T.useRef(!!P&&!window.MotionHandoffIsComplete?.(P)&&window.MotionHasOptimisedAnimation?.(P));return _w(()=>{y&&(M.current=!0,window.MotionIsMounted=!0,y.updateFeatures(),y.scheduleRenderMicrotask(),z.current&&y.animationState&&y.animationState.animateChanges())}),T.useEffect(()=>{y&&(!z.current&&y.animationState&&y.animationState.animateChanges(),z.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(P)}),z.current=!1),y.enteringChildren=void 0)}),y}function OM(n,t,s,o){const{layoutId:d,layout:p,drag:c,dragConstraints:g,layoutScroll:h,layoutRoot:b,layoutCrossfade:f}=t;n.projection=new s(n.latestValues,t["data-framer-portal-id"]?void 0:zf(n.parent)),n.projection.setOptions({layoutId:d,layout:p,alwaysMeasureLayout:!!c||g&&Ti(g),visualElement:n,animationType:typeof p=="string"?p:"both",initialPromotionConfig:o,crossfade:f,layoutScroll:h,layoutRoot:b})}function zf(n){if(n)return n.options.allowProjection!==!1?n.projection:zf(n.parent)}function Fl(n,{forwardMotionProps:t=!1,type:s}={},o,d){o&&yM(o);const p=s?s==="svg":au(n),c=p?EM:TM;function g(b,f){let y;const A={...T.useContext(Pf),...b,layoutId:BM(b)},{isStatic:M}=A,P=PM(b),z=c(b,M);if(!M&&ah){KM();const C=VM(A);y=C.MeasureLayout,P.visualElement=GM(n,z,A,d,C.ProjectionNode,p)}return l.jsxs(Mr.Provider,{value:P,children:[y&&P.visualElement?l.jsx(y,{visualElement:P.visualElement,...A}):null,CM(n,b,NM(z,P.visualElement,f),z,M,t,p)]})}g.displayName=`motion.${typeof n=="string"?n:`create(${n.displayName??n.name??""})`}`;const h=T.forwardRef(g);return h[RM]=n,h}function BM({layoutId:n}){const t=T.useContext(eh).id;return t&&n!==void 0?t+"-"+n:n}function KM(n,t){T.useContext(wf).strict}function VM(n){const t=Sf(),{drag:s,layout:o}=t;if(!s&&!o)return{};const d={...s,...o};return{MeasureLayout:s?.isEnabled(n)||o?.isEnabled(n)?d.MeasureLayout:void 0,ProjectionNode:d.ProjectionNode}}function FM(n,t){if(typeof Proxy>"u")return Fl;const s=new Map,o=(p,c)=>Fl(p,c,n,t),d=(p,c)=>o(p,c);return new Proxy(d,{get:(p,c)=>c==="create"?o:(s.has(c)||s.set(c,Fl(c,void 0,n,t)),s.get(c))})}const WM=(n,t)=>t.isSVG??au(n)?new S0(t):new v0(t,{allowProjection:n!==T.Fragment});class qM extends Nn{constructor(t){super(t),t.animationState||(t.animationState=D0(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();Sr(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:s}=this.node.prevProps||{};t!==s&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let UM=0;class _M extends Nn{constructor(){super(...arguments),this.id=UM++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:s}=this.node.presenceContext,{isPresent:o}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===o)return;const d=this.node.animationState.setActive("exit",!t);s&&!t&&d.then(()=>{s(this.id)})}mount(){const{register:t,onExitComplete:s}=this.node.presenceContext||{};s&&s(this.id),t&&(this.unmount=t(this.id))}unmount(){}}const HM={animation:{Feature:qM},exit:{Feature:_M}};function $i(n){return{point:{x:n.pageX,y:n.pageY}}}const $M=n=>t=>Qd(t)&&n(t,$i(t));function Gi(n,t,s,o){return qi(n,t,$M(s),o)}const Tf=({current:n})=>n?n.ownerDocument.defaultView:null,kg=(n,t)=>Math.abs(n-t);function QM(n,t){const s=kg(n.x,t.x),o=kg(n.y,t.y);return Math.sqrt(s**2+o**2)}const bg=new Set(["auto","scroll"]);class Ef{constructor(t,s,{transformPagePoint:o,contextWindow:d=window,dragSnapToOrigin:p=!1,distanceThreshold:c=3,element:g}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=M=>{this.handleScroll(M.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const M=ql(this.lastMoveEventInfo,this.history),P=this.startEvent!==null,z=QM(M.offset,{x:0,y:0})>=this.distanceThreshold;if(!P&&!z)return;const{point:C}=M,{timestamp:E}=Ye;this.history.push({...C,timestamp:E});const{onStart:F,onMove:K}=this.handlers;P||(F&&F(this.lastMoveEvent,M),this.startEvent=this.lastMoveEvent),K&&K(this.lastMoveEvent,M)},this.handlePointerMove=(M,P)=>{this.lastMoveEvent=M,this.lastMoveEventInfo=Wl(P,this.transformPagePoint),De.update(this.updatePoint,!0)},this.handlePointerUp=(M,P)=>{this.end();const{onEnd:z,onSessionEnd:C,resumeAnimation:E}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&E&&E(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const F=ql(M.type==="pointercancel"?this.lastMoveEventInfo:Wl(P,this.transformPagePoint),this.history);this.startEvent&&z&&z(M,F),C&&C(M,F)},!Qd(t))return;this.dragSnapToOrigin=p,this.handlers=s,this.transformPagePoint=o,this.distanceThreshold=c,this.contextWindow=d||window;const h=$i(t),b=Wl(h,this.transformPagePoint),{point:f}=b,{timestamp:y}=Ye;this.history=[{...f,timestamp:y}];const{onSessionStart:A}=s;A&&A(t,ql(b,this.history)),this.removeListeners=Ui(Gi(this.contextWindow,"pointermove",this.handlePointerMove),Gi(this.contextWindow,"pointerup",this.handlePointerUp),Gi(this.contextWindow,"pointercancel",this.handlePointerUp)),g&&this.startScrollTracking(g)}startScrollTracking(t){let s=t.parentElement;for(;s;){const o=getComputedStyle(s);(bg.has(o.overflowX)||bg.has(o.overflowY))&&this.scrollPositions.set(s,{x:s.scrollLeft,y:s.scrollTop}),s=s.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0,passive:!0}),window.addEventListener("scroll",this.onWindowScroll,{passive:!0}),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(t){const s=this.scrollPositions.get(t);if(!s)return;const o=t===window,d=o?{x:window.scrollX,y:window.scrollY}:{x:t.scrollLeft,y:t.scrollTop},p={x:d.x-s.x,y:d.y-s.y};p.x===0&&p.y===0||(o?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=p.x,this.lastMoveEventInfo.point.y+=p.y):this.history.length>0&&(this.history[0].x-=p.x,this.history[0].y-=p.y),this.scrollPositions.set(t,d),De.update(this.updatePoint,!0))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),En(this.updatePoint)}}function Wl(n,t){return t?{point:t(n.point)}:n}function yg(n,t){return{x:n.x-t.x,y:n.y-t.y}}function ql({point:n},t){return{point:n,delta:yg(n,Rf(t)),offset:yg(n,JM(t)),velocity:ZM(t,.1)}}function JM(n){return n[0]}function Rf(n){return n[n.length-1]}function ZM(n,t){if(n.length<2)return{x:0,y:0};let s=n.length-1,o=null;const d=Rf(n);for(;s>=0&&(o=n[s],!(d.timestamp-o.timestamp>ln(t)));)s--;if(!o)return{x:0,y:0};const p=Ia(d.timestamp-o.timestamp);if(p===0)return{x:0,y:0};const c={x:(d.x-o.x)/p,y:(d.y-o.y)/p};return c.x===1/0&&(c.x=0),c.y===1/0&&(c.y=0),c}function XM(n,{min:t,max:s},o){return t!==void 0&&n<t?n=o?Re(t,n,o.min):Math.max(n,t):s!==void 0&&n>s&&(n=o?Re(s,n,o.max):Math.min(n,s)),n}function vg(n,t,s){return{min:t!==void 0?n.min+t:void 0,max:s!==void 0?n.max+s-(n.max-n.min):void 0}}function YM(n,{top:t,left:s,bottom:o,right:d}){return{x:vg(n.x,s,d),y:vg(n.y,t,o)}}function Ag(n,t){let s=t.min-n.min,o=t.max-n.max;return t.max-t.min<n.max-n.min&&([s,o]=[o,s]),{min:s,max:o}}function ej(n,t){return{x:Ag(n.x,t.x),y:Ag(n.y,t.y)}}function aj(n,t){let s=.5;const o=da(n),d=da(t);return d>o?s=Ki(t.min,t.max-o,n.min):o>d&&(s=Ki(n.min,n.max-d,t.min)),$a(0,1,s)}function nj(n,t){const s={};return t.min!==void 0&&(s.min=t.min-n.min),t.max!==void 0&&(s.max=t.max-n.min),s}const yd=.35;function tj(n=yd){return n===!1?n=0:n===!0&&(n=yd),{x:xg(n,"left","right"),y:xg(n,"top","bottom")}}function xg(n,t,s){return{min:Lg(n,t),max:Lg(n,s)}}function Lg(n,t){return typeof n=="number"?n:n[t]||0}const ij=new WeakMap;class sj{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=_e(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=t}start(t,{snapToCursor:s=!1,distanceThreshold:o}={}){const{presenceContext:d}=this.visualElement;if(d&&d.isPresent===!1)return;const p=y=>{s?(this.stopAnimation(),this.snapToCursor($i(y).point)):this.pauseAnimation()},c=(y,A)=>{this.stopAnimation();const{drag:M,dragPropagation:P,onDragStart:z}=this.getProps();if(M&&!P&&(this.openDragLock&&this.openDragLock(),this.openDragLock=ZI(M),!this.openDragLock))return;this.latestPointerEvent=y,this.latestPanInfo=A,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Sa(E=>{let F=this.getAxisMotionValue(E).get()||0;if(Ha.test(F)){const{projection:K}=this.visualElement;if(K&&K.layout){const U=K.layout.layoutBox[E];U&&(F=da(U)*(parseFloat(F)/100))}}this.originPoint[E]=F}),z&&De.postRender(()=>z(y,A)),md(this.visualElement,"transform");const{animationState:C}=this.visualElement;C&&C.setActive("whileDrag",!0)},g=(y,A)=>{this.latestPointerEvent=y,this.latestPanInfo=A;const{dragPropagation:M,dragDirectionLock:P,onDirectionLock:z,onDrag:C}=this.getProps();if(!M&&!this.openDragLock)return;const{offset:E}=A;if(P&&this.currentDirection===null){this.currentDirection=rj(E),this.currentDirection!==null&&z&&z(this.currentDirection);return}this.updateAxis("x",A.point,E),this.updateAxis("y",A.point,E),this.visualElement.render(),C&&C(y,A)},h=(y,A)=>{this.latestPointerEvent=y,this.latestPanInfo=A,this.stop(y,A),this.latestPointerEvent=null,this.latestPanInfo=null},b=()=>Sa(y=>this.getAnimationState(y)==="paused"&&this.getAxisMotionValue(y).animation?.play()),{dragSnapToOrigin:f}=this.getProps();this.panSession=new Ef(t,{onSessionStart:p,onStart:c,onMove:g,onSessionEnd:h,resumeAnimation:b},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:f,distanceThreshold:o,contextWindow:Tf(this.visualElement),element:this.visualElement.current})}stop(t,s){const o=t||this.latestPointerEvent,d=s||this.latestPanInfo,p=this.isDragging;if(this.cancel(),!p||!d||!o)return;const{velocity:c}=d;this.startAnimation(c);const{onDragEnd:g}=this.getProps();g&&De.postRender(()=>g(o,d))}cancel(){this.isDragging=!1;const{projection:t,animationState:s}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:o}=this.getProps();!o&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),s&&s.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(t,s,o){const{drag:d}=this.getProps();if(!o||!ur(t,d,this.currentDirection))return;const p=this.getAxisMotionValue(t);let c=this.originPoint[t]+o[t];this.constraints&&this.constraints[t]&&(c=XM(c,this.constraints[t],this.elastic[t])),p.set(c)}resolveConstraints(){const{dragConstraints:t,dragElastic:s}=this.getProps(),o=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,d=this.constraints;t&&Ti(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&o?this.constraints=YM(o.layoutBox,t):this.constraints=!1,this.elastic=tj(s),d!==this.constraints&&o&&this.constraints&&!this.hasMutatedConstraints&&Sa(p=>{this.constraints!==!1&&this.getAxisMotionValue(p)&&(this.constraints[p]=nj(o.layoutBox[p],this.constraints[p]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:s}=this.getProps();if(!t||!Ti(t))return!1;const o=t.current,{projection:d}=this.visualElement;if(!d||!d.layout)return!1;const p=g0(o,d.root,this.visualElement.getTransformPagePoint());let c=ej(d.layout.layoutBox,p);if(s){const g=s(c0(c));this.hasMutatedConstraints=!!g,g&&(c=af(g))}return c}startAnimation(t){const{drag:s,dragMomentum:o,dragElastic:d,dragTransition:p,dragSnapToOrigin:c,onDragTransitionEnd:g}=this.getProps(),h=this.constraints||{},b=Sa(f=>{if(!ur(f,s,this.currentDirection))return;let y=h&&h[f]||{};c&&(y={min:0,max:0});const A=d?200:1e6,M=d?40:1e7,P={type:"inertia",velocity:o?t[f]:0,bounceStiffness:A,bounceDamping:M,timeConstant:750,restDelta:1,restSpeed:10,...p,...y};return this.startAxisValueAnimation(f,P)});return Promise.all(b).then(g)}startAxisValueAnimation(t,s){const o=this.getAxisMotionValue(t);return md(this.visualElement,t),o.start(qd(t,o,0,s,this.visualElement,!1))}stopAnimation(){Sa(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){Sa(t=>this.getAxisMotionValue(t).animation?.pause())}getAnimationState(t){return this.getAxisMotionValue(t).animation?.state}getAxisMotionValue(t){const s=`_drag${t.toUpperCase()}`,o=this.visualElement.getProps(),d=o[s];return d||this.visualElement.getValue(t,(o.initial?o.initial[t]:void 0)||0)}snapToCursor(t){Sa(s=>{const{drag:o}=this.getProps();if(!ur(s,o,this.currentDirection))return;const{projection:d}=this.visualElement,p=this.getAxisMotionValue(s);if(d&&d.layout){const{min:c,max:g}=d.layout.layoutBox[s],h=p.get()||0;p.set(t[s]-Re(c,g,.5)+h)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:s}=this.getProps(),{projection:o}=this.visualElement;if(!Ti(s)||!o||!this.constraints)return;this.stopAnimation();const d={x:0,y:0};Sa(c=>{const g=this.getAxisMotionValue(c);if(g&&this.constraints!==!1){const h=g.get();d[c]=aj({min:h,max:h},this.constraints[c])}});const{transformTemplate:p}=this.visualElement.getProps();this.visualElement.current.style.transform=p?p({},""):"none",o.root&&o.root.updateScroll(),o.updateLayout(),this.resolveConstraints(),Sa(c=>{if(!ur(c,t,null))return;const g=this.getAxisMotionValue(c),{min:h,max:b}=this.constraints[c];g.set(Re(h,b,d[c]))})}addListeners(){if(!this.visualElement.current)return;ij.set(this.visualElement,this);const t=this.visualElement.current,s=Gi(t,"pointerdown",h=>{const{drag:b,dragListener:f=!0}=this.getProps(),y=h.target,A=y!==t&&Qh(y);b&&f&&!A&&this.start(h)}),o=()=>{const{dragConstraints:h}=this.getProps();Ti(h)&&h.current&&(this.constraints=this.resolveRefConstraints())},{projection:d}=this.visualElement,p=d.addEventListener("measure",o);d&&!d.layout&&(d.root&&d.root.updateScroll(),d.updateLayout()),De.read(o);const c=qi(window,"resize",()=>this.scalePositionWithinConstraints()),g=d.addEventListener("didUpdate",(({delta:h,hasLayoutChanged:b})=>{this.isDragging&&b&&(Sa(f=>{const y=this.getAxisMotionValue(f);y&&(this.originPoint[f]+=h[f].translate,y.set(y.get()+h[f].translate))}),this.visualElement.render())}));return()=>{c(),s(),p(),g&&g()}}getProps(){const t=this.visualElement.getProps(),{drag:s=!1,dragDirectionLock:o=!1,dragPropagation:d=!1,dragConstraints:p=!1,dragElastic:c=yd,dragMomentum:g=!0}=t;return{...t,drag:s,dragDirectionLock:o,dragPropagation:d,dragConstraints:p,dragElastic:c,dragMomentum:g}}}function ur(n,t,s){return(t===!0||t===n)&&(s===null||s===n)}function rj(n,t=10){let s=null;return Math.abs(n.y)>t?s="y":Math.abs(n.x)>t&&(s="x"),s}class oj extends Nn{constructor(t){super(t),this.removeGroupControls=Ma,this.removeListeners=Ma,this.controls=new sj(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Ma}update(){const{dragControls:t}=this.node.getProps(),{dragControls:s}=this.node.prevProps||{};t!==s&&(this.removeGroupControls(),t&&(this.removeGroupControls=t.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.endPanSession()}}const Pg=n=>(t,s)=>{n&&De.postRender(()=>n(t,s))};class lj extends Nn{constructor(){super(...arguments),this.removePointerDownListener=Ma}onPointerDown(t){this.session=new Ef(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Tf(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:s,onPan:o,onPanEnd:d}=this.node.getProps();return{onSessionStart:Pg(t),onStart:Pg(s),onMove:o,onEnd:(p,c)=>{delete this.session,d&&De.postRender(()=>d(p,c))}}}mount(){this.removePointerDownListener=Gi(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let Ul=!1;class dj extends T.Component{componentDidMount(){const{visualElement:t,layoutGroup:s,switchLayoutGroup:o,layoutId:d}=this.props,{projection:p}=t;p&&(s.group&&s.group.add(p),o&&o.register&&d&&o.register(p),Ul&&p.root.didUpdate(),p.addEventListener("animationComplete",()=>{this.safeToRemove()}),p.setOptions({...p.options,onExitComplete:()=>this.safeToRemove()})),hr.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:s,visualElement:o,drag:d,isPresent:p}=this.props,{projection:c}=o;return c&&(c.isPresent=p,Ul=!0,d||t.layoutDependency!==s||s===void 0||t.isPresent!==p?c.willUpdate():this.safeToRemove(),t.isPresent!==p&&(p?c.promote():c.relegate()||De.postRender(()=>{const g=c.getStack();(!g||!g.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),$d.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:s,switchLayoutGroup:o}=this.props,{projection:d}=t;Ul=!0,d&&(d.scheduleCheckAfterUnmount(),s&&s.group&&s.group.remove(d),o&&o.deregister&&o.deregister(d))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Nf(n){const[t,s]=kM(),o=T.useContext(eh);return l.jsx(dj,{...n,layoutGroup:o,switchLayoutGroup:T.useContext(Df),isPresent:t,safeToRemove:s})}const uj={pan:{Feature:lj},drag:{Feature:oj,ProjectionNode:Lf,MeasureLayout:Nf}};function wg(n,t,s){const{props:o}=n;n.animationState&&o.whileHover&&n.animationState.setActive("whileHover",s==="Start");const d="onHover"+s,p=o[d];p&&De.postRender(()=>p(t,$i(t)))}class cj extends Nn{mount(){const{current:t}=this.node;t&&(this.unmount=XI(t,(s,o)=>(wg(this.node,o,"Start"),d=>wg(this.node,d,"End"))))}unmount(){}}class mj extends Nn{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Ui(qi(this.node.current,"focus",()=>this.onFocus()),qi(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Sg(n,t,s){const{props:o}=n;if(n.current instanceof HTMLButtonElement&&n.current.disabled)return;n.animationState&&o.whileTap&&n.animationState.setActive("whileTap",s==="Start");const d="onTap"+(s==="End"?"":s),p=o[d];p&&De.postRender(()=>p(t,$i(t)))}class pj extends Nn{mount(){const{current:t}=this.node;t&&(this.unmount=a0(t,(s,o)=>(Sg(this.node,o,"Start"),(d,{success:p})=>Sg(this.node,d,p?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const vd=new WeakMap,_l=new WeakMap,gj=n=>{const t=vd.get(n.target);t&&t(n)},hj=n=>
334{n.forEach(gj)};function fj({root:n,...t}){const s=n||document;_l.has(s)||_l.set(s,{});const o=_l.get(s),d=JSON.stringify(t);return o[d]||(o[d]=new IntersectionObserver(hj,{root:n,...t})),o[d]}function kj(n,t,s){const o=fj(t);return vd.set(n,s),o.observe(n),()=>{vd.delete(n),o.unobserve(n)}}const bj={some:0,all:1};class yj extends Nn{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:s,margin:o,amount:d="some",once:p}=t,c={root:s?s.current:void 0,rootMargin:o,threshold:typeof d=="number"?d:bj[d]},g=h=>{const{isIntersecting:b}=h;if(this.isInView===b||(this.isInView=b,p&&!b&&this.hasEnteredView))return;b&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",b);const{onViewportEnter:f,onViewportLeave:y}=this.node.getProps(),A=b?f:y;A&&A(h)};return kj(this.node.current,c,g)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:s}=this.node;["amount","margin","root"].some(vj(t,s))&&this.startObserver()}unmount(){}}function vj({viewport:n={}},{viewport:t={}}={}){return s=>n[s]!==t[s]}const Aj={inView:{Feature:yj},tap:{Feature:pj},focus:{Feature:mj},hover:{Feature:cj}},xj={layout:{ProjectionNode:Lf,MeasureLayout:Nf}},Lj={...HM,...Aj,...uj,...xj},sn=FM(Lj,WM);function Pj(){const{t:n,translations:t}=Oe(),s=t.mission?.paragraphs||[];return l.jsx("section",{className:"py-16 lg:py-20 border-b responsive-section",children:l.jsxs("div",{className:"container mx-auto max-w-7xl px-6 lg:px-8",children:[l.jsxs("div",{className:"mb-8",children:[l.jsx("div",{className:"inline-block px-3 py-1.5 bg-blue-900/10 rounded border border-blue-900/20 mb-4",children:l.jsx("span",{className:"text-xs text-blue-900 font-medium uppercase tracking-wide",children:n("mission.badge")})}),l.jsx("h2",{className:"text-3xl lg:text-4xl font-semibold",children:n("mission.title")})]}),l.jsxs("div",{className:"flex flex-col lg:flex-row gap-8 lg:gap-12 items-stretch",children:[l.jsx("div",{className:"flex-1 space-y-4 text-base leading-relaxed text-foreground/90",children:s.map((o,d)=>l.jsx("p",{children:o},d))}),l.jsx("div",{className:"hidden lg:flex w-[300px] flex-shrink-0 items-center justify-center",children:l.jsx(wj,{label:n("mission.animation.label"),sublabel:n("mission.animation.sublabel")})})]})]})})}function wj({label:n,sublabel:t}){const s={x:50,y:50},o=[{radius:15,duration:4,electrons:2},{radius:25,duration:6,electrons:4},{radius:35,duration:8,electrons:6}];return l.jsxs("div",{className:"relative w-full h-full",children:[l.jsxs("svg",{className:"w-full h-full",viewBox:"0 0 100 100",children:[o.map((d,p)=>l.jsx(sn.circle,{cx:s.x,cy:s.y,r:d.radius,fill:"none",stroke:"#1e3a8a",strokeWidth:"0.15",opacity:"0.2",initial:{pathLength:0,opacity:0},animate:{pathLength:1,opacity:.2},transition:{duration:2,ease:"easeOut"}},`orbit-${p}`)),o.map((d,p)=>[...Array(d.electrons)].map((c,g)=>{const h=g/d.electrons*360;return l.jsx(sn.circle,{r:"1.2",fill:"#1e3a8a",initial:{cx:s.x+d.radius*Math.cos(h*Math.PI/180),cy:s.y+d.radius*Math.sin(h*Math.PI/180)},animate:{cx:[s.x+d.radius*Math.cos(h*Math.PI/180),s.x+d.radius*Math.cos((h+360)*Math.PI/180)],cy:[s.y+d.radius*Math.sin(h*Math.PI/180),s.y+d.radius*Math.sin((h+360)*Math.PI/180)]},transition:{duration:d.duration,repeat:1/0,ease:"linear",delay:g/d.electrons*d.duration}},`electron-${p}-${g}`)})),l.jsxs(sn.g,{children:[l.jsx(sn.circle,{cx:s.x,cy:s.y,r:"4",fill:"#1e3a8a",animate:{scale:[1,1.1,1]},transition:{duration:2,repeat:1/0,ease:"easeInOut"}}),l.jsx(sn.circle,{cx:s.x,cy:s.y,r:"4",fill:"none",stroke:"#1e3a8a",strokeWidth:"0.5",animate:{r:[4,8,12],opacity:[.6,.3,0]},transition:{duration:2,repeat:1/0,ease:"easeOut"}})]}),[0,120,240].map((d,p)=>{const g=s.x+20*Math.cos(d*Math.PI/180),h=s.y+20*Math.sin(d*Math.PI/180);return l.jsxs(sn.g,{children:[l.jsx(sn.line,{x1:s.x,y1:s.y,x2:g,y2:h,stroke:"#1e3a8a",strokeWidth:"0.4",initial:{pathLength:0,opacity:0},animate:{pathLength:1,opacity:[0,.4,.4,0]},transition:{duration:3,repeat:1/0,delay:p*1,ease:"easeInOut"}}),l.jsx(sn.circle,{cx:g,cy:h,r:"2.5",fill:"#1e3a8a",initial:{scale:0,opacity:0}
vendor: 10,634 bytes, line 334
334,animate:{scale:[0,1,1,0],opacity:[0,.8,.8,0]},transition:{duration:3,repeat:1/0,delay:p*1,ease:"easeInOut"}})]},`bond-${p}`)})]}),l.jsx("div",{className:"absolute inset-0 flex items-center justify-center pointer-events-none",children:l.jsxs(sn.div,{className:"text-center",initial:{opacity:0},animate:{opacity:[0,1,1,.7]},transition:{duration:3,repeat:1/0,ease:"easeInOut"},children:[l.jsx("div",{className:"text-xs font-medium text-blue-900",children:n}),l.jsx("div",{className:"text-[10px] text-blue-900/60",children:t})]})})]})}const Sj=["/images/optimized/business-meeting.webp","/images/optimized/team-workspace.webp","/images/optimized/team-collaboration.webp","/images/optimized/professional-office.webp"];function Ij(){const{t:n,translations:t}=Oe(),s=t.businessProcess?.paragraphs||[],o=t.businessProcess?.cards||[];return l.jsx("section",{className:"py-16 border-b responsive-section",children:l.jsx("div",{className:"container mx-auto max-w-7xl px-4 responsive-section-inner",children:l.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-8 lg:gap-12 items-start",children:[l.jsxs("div",{className:"flex flex-col justify-start",children:[l.jsx("h2",{className:"text-4xl font-bold text-foreground mb-4",children:n("businessProcess.title")}),l.jsx("p",{className:"text-2xl font-bold text-foreground mb-6",children:n("businessProcess.headline")}),l.jsx("div",{className:"space-y-4 text-base text-gray-600 leading-relaxed",children:s.map((d,p)=>l.jsx("p",{children:d},p))})]}),l.jsx("div",{className:"space-y-6",children:o.map((d,p)=>l.jsxs("div",{className:"bg-white rounded-lg overflow-hidden flex gap-4 p-4",children:[l.jsx("div",{className:"flex-shrink-0 w-24 h-24",children:l.jsx(sa,{src:Sj[p],alt:d.title,className:"w-full h-full object-cover rounded"})}),l.jsxs("div",{className:"flex-1 flex flex-col justify-center",children:[l.jsx("h3",{className:"text-lg font-bold text-foreground mb-2",children:d.title}),l.jsx("p",{className:"text-sm text-gray-600 leading-relaxed",children:d.description})]})]},p))})]})})})}function Ig(n,t){if(typeof n=="function")return n(t);n!=null&&(n.current=t)}function Mj(...n){return t=>{let s=!1;const o=n.map(d=>{const p=Ig(d,t);return!s&&typeof p=="function"&&(s=!0),p});if(s)return()=>{for(let d=0;d<o.length;d++){const p=o[d];typeof p=="function"?p():Ig(n[d],null)}}}}var jj=Symbol.for("react.lazy"),Pr=Qb[" use ".trim().toString()];function Cj(n){return typeof n=="object"&&n!==null&&"then"in n}function Gf(n){return n!=null&&typeof n=="object"&&"$$typeof"in n&&n.$$typeof===jj&&"_payload"in n&&Cj(n._payload)}function nu(n){const t=Dj(n),s=T.forwardRef((o,d)=>{let{children:p,...c}=o;Gf(p)&&typeof Pr=="function"&&(p=Pr(p._payload));const g=T.Children.toArray(p),h=g.find(Tj);if(h){const b=h.props.children,f=g.map(y=>y===h?T.Children.count(b)>1?T.Children.only(null):T.isValidElement(b)?b.props.children:null:y);return l.jsx(t,{...c,ref:d,children:T.isValidElement(b)?T.cloneElement(b,void 0,f):null})}return l.jsx(t,{...c,ref:d,children:p})});return s.displayName=`${n}.Slot`,s}var Of=nu("Slot");function Dj(n){const t=T.forwardRef((s,o)=>{let{children:d,...p}=s;if(Gf(d)&&typeof Pr=="function"&&(d=Pr(d._payload)),T.isValidElement(d)){const c=Rj(d),g=Ej(p,d.props);return d.type!==T.Fragment&&(g.ref=o?Mj(o,c):c),T.cloneElement(d,g)}return T.Children.count(d)>1?T.Children.only(null):null});return t.displayName=`${n}.SlotClone`,t}var zj=Symbol("radix.slottable");function Tj(n){return T.isValidElement(n)&&typeof n.type=="function"&&"__radixId"in n.type&&n.type.__radixId===zj}function Ej(n,t){const s={...t};for(const o in t){const d=n[o],p=t[o];/^on[A-Z]/.test(o)?d&&p?s[o]=(...g)=>{const h=p(...g);return d(...g),h}:d&&(s[o]=d):o==="style"?s[o]={...d,...p}:o==="className"&&(s[o]=[d,p].filter(Boolean).join(" "))}return{...n,...s}}function Rj(n){let t=Object.getOwnPropertyDescriptor(n.props,"ref")?.get,s=t&&"isReactWarning"in t&&t.isReactWarning;return s?n.ref:(t=Object.getOwnPropertyDescriptor(n,"ref")?.get,s=t&&"isReactWarning"in t&&t.isReactWarning,s?n.props.ref:n.props.ref||n.ref)}const Mg=n=>typeof n=="boolean"?`${n}`:n===0?"0":n,jg=Kg,Bf=(n,t)=>s=>{var o;if(t?.variants==null)return jg(n,s?.class,s?.className);const{variants:d,defaultVariants:p}=t,c=Object.keys(d).map(b=>{const f=s?.[b],y=p?.[b];if(f===null)return null;const A=Mg(f)||Mg(y);return d[b][A]}),g=s&&Object.entries(s).reduce((b,f)=>{let[y,A]=f;return A===void 0||(b[y]=A),b},{}),h=t==null||(o=t.compoundVariants)===null||o===void 0?void 0:o.reduce((b,f)=>{let{class:y,className:A,...M}=f;return Object.entries(M).every(P=>{let[z,C]=P;return Array.isArray(C)?C.includes({...p,...g}[z]):{...p,...g}[z]===C})?[...b,y,A]:b},[]);return jg(n,c,h,s?.class,s?.className)},Nj=Bf("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background text-foreground hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9 rounded-md"}},defaultVariants:{variant:"default",size:"default"}});function ja({className:n,variant:t,size:s,asChild:o=!1,...d}){const p=o?Of:"button";return l.jsx(p,{"data-slot":"button",className:Ba(Nj({variant:t,size:s,className:n})),...d})}const Gj=Bf("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function Qi({className:n,variant:t,asChild:s=!1,...o}){const d=s?Of:"span";return l.jsx(d,{"data-slot":"badge",className:Ba(Gj({variant:t}),n),...o})}const Oi=[{id:"traffic-route-ai",number:"",title:{ja:"交通経路AI選択システム",en:"AI Transit Route Selection System",zh:"AI交通路线选择系统",ko:"AI 교통 경로 선택 시스템",es:"Sistema de Selección de Rutas de Transporte con IA",pt:"Sistema de Seleção de Rotas de Transporte com IA",de:"KI-System zur Auswahl von Verkehrsverbindungen",ms:"Sistem Pemilihan Laluan Pengangkutan AI",id:"Sistem Pemilihan Rute Transportasi AI",th:"ระบบ AI เลือกเส้นทางการเดินทาง"},subtitle:{ja:"マレーシアの公共交通をつなぐ、経路選択サポート",en:"Route planning for public transport in Malaysia",zh:"连接马来西亚公共交通,辅助路线选择",ko:"말레이시아 대중교통 경로 선택 지원",es:"Planificación de rutas de transporte público en Malasia",pt:"Planejamento de rotas de transporte público na Malásia",de:"Routenplanung für den öffentlichen Verkehr in Malaysia",ms:"Perancangan laluan pengangkutan awam di Malaysia",id:"Perencanaan rute transportasi umum di Malaysia",th:"วางแผนเส้นทางขนส่งสาธารณะในมาเลเซีย"},description:{ja:"出発地と目的地からバス・鉄道を組み合わせた移動経路を検索し、到着時刻・所要時間・乗換回数で候補を比較できる交通経路選択システム。バスのみ・鉄道のみの絞り込みや近くの駅・停留所の検索、多言語表示に対応し、日常の移動から旅行まで目的に合ったルート選びを支援します。",en:"A transit route selection system that searches bus and train connections between an origin and destination and compares options by arrival time, journey duration, and transfers. Bus-only and train-only filters, nearby station and stop search, and a multilingual interface help users choose routes for everyday journeys and travel.",zh:"根据出发地和目的地搜索公交与铁路组合路线,并按到达时间、行程时长和换乘次数比较方案。支持仅公交、仅铁路筛选、附近车站搜索及多语言界面,帮助用户为日常出行和旅行选择合适的路线。",ko:"출발지와 목적지를 기준으로 버스와 철도를 조합한 경로를 검색하고 도착 시각, 소요 시간, 환승 횟수로 후보를 비교하는 시스템입니다. 버스 전용·철도 전용 필터, 주변 역과 정류장 검색, 다국어 화면을 제공하여 일상 이동과 여행에 맞는 경로 선택을 돕습니다.",es:"Sistema que busca conexiones de autobús y tren entre un origen y un destino y compara las opciones por hora de llegada, duración y transbordos. Los filtros de solo autobús o tren, la búsqueda de estaciones y paradas cercanas y una interfaz multilingüe facilitan la elección de rutas para desplazamientos diarios y viajes.",pt:"Sistema que busca conexões de ônibus e trem entre origem e destino e compara opções por horário de chegada, duração e número de baldeações. Filtros de apenas ônibus ou trem, busca de estações e paradas próximas e uma interface multilíngue ajudam a escolher rotas para o dia a dia e viagens.",de:"Das System sucht Bus- und Bahnverbindungen zwischen Start und Ziel und vergleicht Optionen nach Ankunftszeit, Reisedauer und Umstiegen. Filter für reine Bus- oder Bahnverbindungen, die Suche nac
334h nahegelegenen Stationen und Haltestellen sowie eine mehrsprachige Oberfläche unterstützen die Routenwahl im Alltag und auf Reisen.",ms:"Sistem yang mencari gabungan laluan bas dan kereta api antara tempat bertolak dan destinasi serta membandingkan pilihan mengikut waktu ketibaan, tempoh perjalanan dan bilangan pertukaran. Penapis bas sahaja atau kereta api sahaja, carian stesen dan hentian berdekatan serta antara muka berbilang bahasa membantu pemilihan laluan untuk perjalanan harian dan percutian.",id:"Sistem yang mencari kombinasi rute bus dan kereta antara titik keberangkatan dan tujuan serta membandingkan pilihan berdasarkan waktu tiba, durasi perjalanan, dan jumlah perpindahan. Filter khusus bus atau kereta, pencarian stasiun dan halte terdekat, serta antarmuka multibahasa membantu memilih rute untuk perjalanan sehari-hari maupun wisata.",th:"ระบบค้นหาเส้นทางที่ผสมผสานรถโดยสารและรถไฟจากจุดเริ่มต้นถึงปลายทาง พร้อมเปรียบเทียบเวลาเดินทาง เวลาถึง และจำนวนครั้งที่เปลี่ยนสาย รองรับตัวกรองเฉพาะรถโดยสารหรือรถไฟ การค้นหาสถานีและป้ายใกล้เคียง และหน้าจอหลายภาษา เพื่อช่วยเลือกเส้นทางสำหรับการเดินทางประจำวันและการท่องเที่ยว"},techStack:{ja:["公共交通経路検索","バス・鉄道連携","経路比較","多言語UI"],en:["Public Transit Routing","Bus & Rail Integration","Route Comparison","Multilingual UI"],zh:["公共交通路线搜索","公交与铁路整合","路线比较","多语言界面"],ko:["대중교통 경로 검색","버스·철도 연계","경로 비교","다국어 UI"],es:["Rutas de Transporte Público","Integración de Autobús y Tren","Comparación de Rutas","Interfaz Multilingüe"],pt:["Rotas de Transporte Público","Integração de Ônibus e Trem","Comparação de Rotas","Interface Multilíngue"],de:["ÖPNV-Routenplanung","Bus- und Bahnanbindung","Routenvergleich","Mehrsprachige Oberfläche"],ms:["Laluan Pengangkutan Awam","Integrasi Bas dan Kereta Api","Perbandingan Laluan","Antara Muka Berbilang Bahasa"],id:["Rute Transportasi Umum","Integrasi Bus dan Kereta","Perbandingan Rute","Antarmuka Multibahasa"],th:["ค้นหาเส้นทางขนส่งสาธารณะ","เชื่อมต่อรถโดยสารและรถไฟ","เปรียบเทียบเส้นทาง","หน้าจอหลายภาษา"]},projectUrl:"https://trf.mychats.info/",imageSrc:"/images/traffic-route-ai.webp",videoSrc:"/videos/traffic-route-ai.mp4"},{id:"multilingual-assistant",number:"",title:{ja:"AI多言語アシスタント",en:"AI Multilingual Assistant",zh:"AI多语言助手",ko:"AI 다국어 어시스턴트",es:"Asistente Multilingue con IA",pt:"Assistente Multilíngue com IA",th:"ผู้ช่วย AI หลายภาษา",ms:"Pembantu AI Pelbagai Bahasa",id:"Asisten AI Multibahasa",de:"KI-Mehrsprachiger Assistent"},description:{ja:"複数言語での問い合わせに対応するインテリジェントなチャットアシスタント。1,573件のベクトルインデックスを構築し、条件分岐、NGワードフィルタリング、キーワードトリガーによる精密な回答制御を実装しました。日本語・英語・中国語など多言語でのユーザー質問に対し、言語横断的なセマンティック検索により一貫した高精度な回答を生成します。",en:"An intelligent chat assistant supporting multilingual inquiries. Built a vector index of 1,573 items with conditional branching, NG word filtering, and keyword-triggered precision response control. Generates consistent, high-accuracy answers to user questions in Japanese, English, Chinese, and other languages through cross-lingual semantic search.",zh:"支持多语言查询的智能聊天助手。构建了1,573个条目的向量索引,实现了条件分支、敏感词过滤和关键词触发的精准回答控制。通过跨语言语义搜索,为日语、英语、中文等多语言用户问题ç”
334Ÿæˆä¸€è‡´çš„高精度回答。",ko:"다국어 문의를 지원하는 지능형 채팅 어시스턴트. ì¡°ê±´ 분기, 금지어 필터링, 키워드 트리거 정밀 응답 제어를 갖춘 1,573개 항목의 벡터 인덱스를 구축했습니다. 일본어, 영어, 중국어 등 다국어 사용자 질문에 대해 교차 언어 의미 검색을 통해 일관되고 높은 정확도의 답변을 생성합니다.",es:"Un asistente de chat inteligente que admite consultas multilingües. Se construyó un índice vectorial de 1,573 elementos con ramificación condicional, filtrado de palabras prohibidas y control de respuesta precisa activado por palabras clave. Genera respuestas consistentes y de alta precisión para preguntas de usuarios en japonés, inglés, chino y otros idiomas mediante búsqueda semántica multilingüe.",pt:"Um assistente de chat inteligente que suporta consultas multilíngues. Construiu um índice vetorial de 1.573 itens com ramificação condicional, filtragem de palavras proibidas e controle de resposta de precisão acionado por palavras-chave. Gera respostas consistentes e de alta precisão para perguntas de usuários em japonês, inglês, chinês e outros idiomas por meio de pesquisa semântica multilíngue.",th:"ผู้ช่วยแชทอัจฉริยะที่รองรับการสอบถามหลายภาษา สร้างดัชนีเวกเตอร์ 1,573 รายการพร้อมการแยกสาขาตามเงื่อนไข การกรองคำต้องห้าม และการควบคุมการตอบสนองที่แม่นยำโดยคำสำคัญ สร้างคำตอบที่สม่ำเสมอและมีความแม่นยำสูงสำหรับคำถามของผู้ใช้ในภาษาญี่ปุ่น อังกฤษ à¸
334ˆà¸µà¸™ และภาษาอื่นๆ ผ่านการค้นหาเชิงความหมายข้ามภาษา",ms:"Pembantu sembang pintar yang menyokong pertanyaan pelbagai bahasa. Membina indeks vektor 1,573 item dengan percabangan bersyarat, penapisan perkataan terlarang, dan kawalan respons tepat yang dicetuskan kata kunci. Menjana jawapan yang konsisten dan tepat tinggi untuk soalan pengguna dalam bahasa Jepun, Inggeris, Cina dan bahasa lain melalui carian semantik silang bahasa.",id:"Asisten obrolan cerdas yang mendukung pertanyaan multibahasa. Membangun indeks vektor dari 1.573 item dengan percabangan kondisional, penyaringan kata terlarang, dan kontrol respons presisi yang dipicu kata kunci. Menghasilkan jawaban yang konsisten dan akurat tinggi untuk pertanyaan pengguna dalam bahasa Jepang, Inggris, Cina, dan bahasa lain melalui pencarian semantik lintas bahasa.",de:"Ein intelligenter Chat-Assistent, der mehrsprachige Anfragen unterstützt. Erstellung eines Vektorindexes mit 1.573 Elementen mit bedingter Verzweigung, Filterung verbotener Wörter und schlüsselwortgesteuerter Präzisionsantwortkontrolle. Generiert konsistente, hochpräzise Antworten auf Benutzerfragen in Japanisch, Englisch, Chinesisch und anderen Sprachen durch sprachübergreifende semantische Suche."},techStack:{ja:["RAG","Vector Search","多言語Embedding","LLM","条件分岐ロジック"],en:["RAG","Vector Search","Multilingual Embedding","LLM","Conditional Logic"],zh:["RAG","向量搜索","多语言嵌入","LLM","条件逻辑"],ko:["RAG","벡터 검색","다국어 임베딩","LLM","ì¡°ê±´ 로직"],es:["RAG","Búsqueda Vectorial","Embedding Multilingüe","LLM","Lógica Condicional"],pt:["RAG","Busca Vetorial","Embedding Multilíngue","LLM","Lógica Condicional"],th:["RAG","Vector Search","Multilingual Embedding","LLM","Conditional Logic"],ms:["RAG","Carian Vektor","Embedding Berbilang Bahasa","LLM","Logik Bersyarat"],id:["RAG","Pencarian Vektor","Embedding Multibahasa","LLM","Logika Kondisional"],de:["RAG","Vektorsuche","Mehrsprachiges Embedding","LLM","Bedingte Logik"]},projectUrl:"https://app.lllm.tech/",imageSrc:"/images/multilingual-assistant-ui.png"},{id:"weather-forecast",number:"",title:{ja:"気象APIによるAI気象予測",en:"AI Weather Forecasting with Weather APIs",zh:"基于气象API的AI天气预测",ko:"기상 API를 활용한 AI 날씨 예측",es:"Pronóstico del Tiempo con IA mediante APIs Meteorológicas",pt:"Previsão do Tempo com IA usando APIs Meteorológicas",th:"การพยากรณ์อากาศด้วย AI ผ่าน API สภาพอากาศ",ms:"Ramalan Cuaca AI dengan API Cuaca",id:"Prakiraan Cuaca AI dengan API Cuaca",de:"KI-Wettervorhersage mit Wetter-APIs"},description:{ja:"過去の気象データを学習し、直近の気象状況をリアルタイム予測するAIシステムを開発。気象庁API、OpenWeatherMap等から取得した過去データをLLMで解析し、温度、降水確率、風速などの短期予測を生成します。時系列データのパターン認識とRAGによる過去類似パターン検索を組み合わせ、従来の統計モデルを補完する高精度な予測を実現しました。",en:"Developed an AI system that learns from historical weather data to predict real-time weather conditions. Analyzes past data from Japan Meteorological Agency API and OpenWeatherMap using LLM to generate short-term forecasts for temperature, precipitation probability, and wind speed. Achieved high-accuracy predictions by combining time-series pattern recognition with RAG-based retrieval of similar historical patterns, complementing traditional statistical models.",zh:"开发了一个从历史气象数据中学习的AI系统,用于实时预测天气状况。使用LLM分析来自日本气象厅API和OpenWeatherMap的历史数据,生成温度、降水概率和风速的短期预测。通过结合时间序列模式识别和基于RAG的历史相似模式检索,实现了高精度预测,补充了传统统计模型。",ko:"과거 기상 데이터를 학습하여 실시간 날씨 상황을 예측하는 AI 시스템을 개발했습니다. 일본 기상청 API와 OpenWeatherMap의 과거 데이터를 LLM으로 분석하여 기온, 강수 확률, 풍속의 단기 예보를 생성합니다. 시계열 패턴 인식과 RAG 기반 유사 과거 패턴 검색을 결합하여 기존 통계 모델을 보완하는 고정밀 예측을 실현했습니다.",es:"Desarrollamos un sistema de IA que aprende de datos meteorológicos históricos para predecir condiciones climáticas en tiempo real. Analiza datos pasados de la API de la Agencia Meteorológica de Japón y OpenWeatherMap usando LLM para generar pronósticos a corto plazo de temperatura, probabilidad de precipitación y velocidad del viento. Logró predicciones de alta precisión combinando reconocimiento de patrones de series temporales con recuperación basada en RAG de patrones históricos similares, complementando los modelos estadísticos tradicionales.",pt:"Desenvolvemos um sistema de IA que aprende com dados meteorológicos históricos para prever condições climáticas em tempo real. Analisa dados passados da API da Agência Meteorológica do Japão e OpenWeatherMap usando LLM para gerar previsões de curto prazo de temperatura, probabilidade de precipitação e velocidade do vento. Alcançou previsões de alta precisão combinando reconhecimento de padrões de séries temporais com recuperação baseada em RAG de padrões históricos similares, complementando modelos estatísticos tradicionais.",th:"พัฒนาระบบ AI ที่เรียนรู้จากข้อมูลสภาพอากาศในอดีตเพื่อคาดการณ์สภาพอากาศแบบเรียลไทม์ วิเคราะห์ข้อมูลในอดีตจาก API ของกรมอุตุนิยมวิทยาญี่ปุ่นและ OpenWeatherMap โดยใช้ LLM เพื่อสร้างการพยากรณ์ระยะสั้นสำหรับอุณหภูมิ ความน่าจะเป็นของฝน และความเร็วลม บรรลุการคาดการณ์ที่แม่นยำสูงโดยผสมผสานการจดจำรูปแบบอนุกรมเวลากับการดึงข้อมูลรูปแบบในอดีตที่คล้ายกันโดยใช้ RAG ซึ่งเสริมโมเดลทางสถิติแบบดั้งเดิม",ms:"Membangunkan sistem AI yang belajar dari data cuaca sejarah untuk meramalkan keadaan cuaca masa nyata. Menganalisis data lepas dari API Agensi Meteorologi Jepun dan OpenWeatherMap menggunakan LLM untuk menjana ramalan 
334jangka pendek suhu, kebarangkalian hujan, dan kelajuan angin. Mencapai ramalan ketepatan tinggi dengan menggabungkan pengecaman corak siri masa dengan pengambilan corak sejarah serupa berasaskan RAG, melengkapkan model statistik tradisional.",id:"Mengembangkan sistem AI yang belajar dari data cuaca historis untuk memprediksi kondisi cuaca secara real-time. Menganalisis data masa lalu dari API Badan Meteorologi Jepang dan OpenWeatherMap menggunakan LLM untuk menghasilkan prakiraan jangka pendek suhu, probabilitas hujan, dan kecepatan angin. Mencapai prediksi akurasi tinggi dengan menggabungkan pengenalan pola deret waktu dengan pengambilan pola historis serupa berbasis RAG, melengkapi model statistik tradisional.",de:"Entwicklung eines KI-Systems, das aus historischen Wetterdaten lernt, um Wetterbedingungen in Echtzeit vorherzusagen. Analysiert vergangene Daten von der japanischen Meteorologiebehörde-API und OpenWeatherMap mit LLM, um kurzfristige Vorhersagen für Temperatur, Niederschlagswahrscheinlichkeit und Windgeschwindigkeit zu erstellen. Erreichte hochpräzise Vorhersagen durch Kombination von Zeitreihen-Mustererkennung mit RAG-basiertem Abruf ähnlicher historischer Muster, die traditionelle statistische Modelle ergänzen."},techStack:{ja:["気象API連携","LLM","RAG","時系列データ解析","リアルタイム処理"],en:["Weather API Integration","LLM","RAG","Time-Series Analysis","Real-Time Processing"],zh:["气象API集成","LLM","RAG","时间序列分析","实时处理"],ko:["기상 API 연동","LLM","RAG","시계열 데이터 분석","실시간 처리"],es:["Integración de API Meteorológica","LLM","RAG","Análisis de Series Temporales","Procesamiento en Tiempo Real"],pt:["Integração de API Meteorológica","LLM","RAG","Análise de Séries Temporais","Processamento em Tempo Real"],th:["การเชื่อมต่อ API สภาพอากาศ","LLM","RAG","การวิเคราะห์อนุกรมเวลา","การประมวลผลแบบเรียลไทม์"],ms:["Integrasi API Cuaca","LLM","RAG","Analisis Siri Masa","Pemprosesan Masa Nyata"],id:["Integrasi API Cuaca","LLM","RAG","Analisis Deret Waktu","Pemrosesan Real-Time"],de:["Wetter-API-Integration","LLM","RAG","Zeitreihenanalyse","Echtzeitverarbeitung"]},projectUrl:"https://tenki.info/",imageSrc:"/images/weather-forecast.jpg"},{id:"local-llm",number:"",title:{ja:"社内サーバー/オンプレ ローカルLLM",en:"In-house Server / On-Prem Local LLM",zh:"内部服务器 / On-Prem Local LLM",ko:"사내 서버 / On-Prem Local LLM",es:"Servidor interno / On-Prem Local LLM",pt:"Servidor interno / On-Prem Local LLM",th:"เซิร์ฟเวอร์ภายใน / On-Prem Local LLM",ms:"Pelayan Dalaman / On-Prem Local LLM",id:"Server Internal / On-Prem Local LLM",de:"Interner Server / On-Prem Local LLM"},description:{ja:"お客様の業務に合わせたAIを、社内ですぐ使える状態でお届けします。Open WebUIを共通の入り口に据え、Ollama/MLXによる高速推論レーンと、UIDごとに完全に分離されたデータ領域を構築。社内ドキュメントは英語埋め込み × 日本語クエリ自動翻訳のRAGに取り込み、ニュース要約・資料整理・ルーチン業務などの業務スキルを安全に並走させます。スキル実行系はOpenClawコンテナとして隔離し、Cloudflareエッジ+ローカルNginxの三層で守る設計。モデル選定からスキル設計、運用ポリシーまで一括で支援し、御社専用のAIを「導入したその日から使える」形で立ち上げます。",en:"We deliver AI tailored to your business operations, ready to use within your company, with Open WebUI as a common entry point, fast inference lanes with Ollama/MLX, and completely separated data domains for each UID. In-house documents are captured in a RAG with English embedding and automatic Japanese query translation, and business skills such as news summarization, document organization, and routine tasks are safely executed side by side. The skill execution system is isolated as an OpenClaw container and protected by three layers of Cloudflare edge and local Nginx. We provide comprehensive support for model selection, skill design, and operational policies, and start up your company's dedicated AI in a form that can be used from the day it is deployed.",zh:"我们提供为您的业务运营量身定制的人工智能,以开放式 WebUI 作为通用入口点,使用 Ollama/MLX 快速推理通道,并为每个 UID 提供完全分离的数据域,可在贵公司内部随时使用。在 RAG 中捕获内部文档,并进行英语嵌入和日语自动查询翻译,同时安全地执行新闻摘要、文档组织和日常任务等业务技能。技能执行系统作为 OpenClaw 容器进行隔离,并受到三层 Cloudflare 边缘和本地 Nginx 的保护。我们为模型选择、技能设计和运行策略提供全面支持,并以部署当天即可使用的形式启动贵公司的专用人工智能。",ko:"개방형 WebUI를 공통 진입점으로 삼아 회사 내에서 바로 사용할 수 있는 비즈니스 운영 맞춤형 AI를 제공하며, Ollama/MLX를 통한 빠른 추론 레인, 각 UID에 대해 완전히 분리된 데이터 도메인을 제공합니다. 사내 문서는 영어 임베딩과 일본어 쿼리 자동 번역 기능을 갖춘 RAG로 캡처되며, 뉴스 요약, 문서 정리, 일상 업무와 같은 비즈니스 스킬이 안전하게 나란히 실행됩니다. 스킬 실행 시스템은 OpenClaw 컨테이너로 격리되어 있으며 Cloudflare 에지 및 로컬 Nginx의 3계층으로 보호됩니다. 모델 선택, 스킬 설계, 운영 정책 등을 종합적으로 지원하며, 배포한 날부터 바로 사용할 수 있는 형태로 귀사의 전용 AI를 가동합니다.",es:"Proporcionamos IA adaptada a sus operaciones empresariales, lista para usar en su empresa, con Open WebUI como punto de entrada común, vías de inferencia rápidas con Ollama/MLX y dominios de datos completamente separados para cada UID. Los documentos internos se capturan en un RAG con incrustación en inglés y traducción automática de consultas al japonés, y las habilidades empresariales como el resumen de noticias, la organización de documentos y las tareas rutinarias se ejecutan de forma segura codo con codo. El sistema de ejecución de habilidades está aislado como un contenedor OpenClaw y protegido por tres capas de Cloudflare edge y Nginx local. Proporcionamos asistencia completa para la selección de modelos, el diseño de habilidades y las políticas operativas, y ponemos en marcha la IA dedicada de su empresa de forma que pueda utilizarse desde el mismo día de su despliegue.",pt:"Fornecemos IA adaptada às suas operações comerciais, pronta para uso em sua empresa, com Open WebUI como ponto de entrada comum, pistas de inferência rápidas com Ollama/MLX e domínios de dados completamente separados para cada UID. Os documentos internos são capturados em um RAG com incorporação em inglês e tradução automática de consultas em japonês, e as habilidades de negócios, como resumo de notícias, organização de documentos e tarefas de rotina, são executadas com segurança lado a lado. O sistema de execução de habilidades é isolado como um contêiner OpenClaw e protegido por três camadas de borda Cloudflare e Nginx local. Fornecemos suporte abrangente para seleção de modelos, design de habilidades e políticas operacionais, e iniciamos a IA dedicada da sua empresa em um formato que pode ser usado desde o dia em que é implantado.",th:"เราส่งมอบ AI ที่ปรับแต่งให้เหมาะกับกระบวนการทำงานของธุรกิจคุณ พร้อมใช้งานภายในบริษัทของคุณ ด้วย Open WebUI เป็นจุดเข้าใช้งานทั่วไป ช่องทางประมวลผลที่รวดเร็วด้วย Ollama/MLX และโดเมนข้อมูลที่แยกออกจากกันอย่างสมบูรณ์สำหรับแต่ละ UID เอกสารภายในองค์กรจะถูกบันทึกไว้ใน RAG พร้อมก
334ารฝังภาษาอังกฤษและการแปลคำถามภาษาญี่ปุ่นโดยอัตโนมัติ และทักษะทางธุรกิจ เช่น การสรุปข่าว การจัดระเบียบเอกสาร และการทำงานประจำ จะถูกดำเนินการอย่างปลอดภัยควบคู่กันไประบบการใช้งานทักษะถูกแยกออกเป็นคอนเทนเนอร์ OpenClaw และได้รับการปกป้องโดยชั้นป้องกันสามชั้นจาก Cloudflare edge และ Nginx ท้องถิ่น เราให้การสนับสนุนอย่างครอบคลุมสำหรับการเลือกแบบจำลอง, การออกแบบทักษะ, และนโยบายการดำเนินงาน และเริ่มต้นระบบ AI เฉพาะของบริษัทคุณในรูปแบบที่สามารถใช้งานได้ตั้งแต่วันที่ติดตั้ง",ms:"Kami menyediakan AI yang disesuaikan dengan operasi perniagaan anda, sedia untuk digunakan dalam syarikat anda, dengan Open WebUI sebagai titik kemasukan biasa, laluan inferens pantas dengan Ollama/MLX, dan domain data yang dipisahkan sepenuhnya untuk setiap UID. Dokumen dalaman dirakam dalam RAG dengan pemadatan Bahasa Inggeris dan terjemahan pertanyaan Jepun secara automatik, dan kemahiran perniagaan seperti ringkasan berita, pengaturan dokumen, dan tugas rutin dijalankan dengan selamat secara serentak. Sistem pelaksanaan kemahiran diasingkan sebagai kontena OpenClaw dan dilindungi oleh tiga lapisan edge Cloudflare serta Nginx tempatan. Kami menyediakan sokongan menyeluruh untuk pemilihan model, reka bentuk kemahiran, dan dasar operasi, dan memulakan AI khusus syarikat anda dalam bentuk yang boleh digunakan sejak hari ia dikerahkan.",id:"Kami memberikan AI yang disesuaikan dengan operasi bisnis Anda, siap digunakan di dalam perusahaan Anda, dengan Open WebUI sebagai titik masuk umum, jalur inferensi cepat dengan Ollama/MLX, dan domain data yang sepenuhnya terpisah untuk setiap UID. Dokumen internal ditangkap dalam RAG dengan penyematan bahasa Inggris dan terjemahan kueri bahasa Jepang otomatis, dan keterampilan bisnis seperti ringkasan berita, organisasi dokumen, dan tugas rutin dijalankan dengan aman secara berdampingan. Sistem eksekusi keterampilan diisolasi sebagai wadah OpenClaw dan dilindungi oleh tiga lapisan Cloudflare edge dan Nginx lokal. Kami menyediakan dukungan komprehensif untuk pemilihan model, desain keterampilan, dan kebijakan operasional, dan memulai AI khusus perusahaan Anda dalam bentuk yang dapat digunakan sejak hari pertama digunakan.",de:"Wir liefern auf Ihre Geschäftsabläufe zugeschnittene KI, die in Ihrem Unternehmen sofort einsatzbereit ist, mit Open WebUI als gemeinsamen Einstiegspunkt, schnellen Inferenzspuren mit Ollama/MLX und vollständig getrennten Datendomänen für jede UID. Interne Dokumente werden in einem RAG mit englischer Einbettung und automatischer japanischer Abfrageübersetzung erfasst, und Business Skills wie Nachrichtenzusammenfassung, Dokumentenorganisation und Routineaufgaben werden sicher nebeneinander ausgeführt. Das Skill-Ausführungssystem ist als OpenClaw-Container isoliert und durch drei Schichten von Cloudflare Edge und lokalem Nginx geschützt. Wir bieten umfassende Unterstützung bei der Modellauswahl, dem Skill-Design und den Betriebsrichtlinien und machen die dedizierte KI Ihres Unternehmens vom ersten Tag an einsatzfähig."},techStack:{ja:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"],en:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"],zh:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"],ko:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"],es:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"],pt:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"],th:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"],ms:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"],id:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"],de:["CUDA","MLX","Anemll","OpenClaw","Ollama","LangChain","LlamaIndex","Docker","Kubernetes"]},projectUrl:"https://lllm.tech/",imageSrc:"/images/local-llm.jpg"},{id:"orbital-prediction",number:"",title:{ja:"惑星間軌道到達予測(AI)",en:"Interplanetary Transfer Window Prediction",zh:"行星际转移窗口预测",ko:"행성간 전이 윈도우 예측",es:"Predicción de Ventanas de Transferencia Interplanetaria",pt:"Previsão de Janelas de Transferência Interplanetária",th:"การคาดการณ์หน้าต่างการถ่ายโอนระหว่างดาวเคราะห์",ms:"Ramalan Tetingkap Pemindahan Antara Planet",id:"Prediksi Jendela Transfer Antarplanet",de:"Interplanetare Transferfenster-Vorhersage"},description:{ja:"NASA APIから惑星位置データ、軌道要素、重力パラメータを取得し、惑星間移動の最適な出発ポイントを解析するシステムを開発ã€
334‚ホーマン遷移軌道、重力アシストを考慮した軌道計算をAPIとPythonで算定し、打ち上げウィンドウ、所要時間、燃料効率を表示します。教育機関・宇宙関連企業向けのシミュレーションツールとして活用されています。※AI機能を現在外しています、APIとPythonで計算中",en:"Developed a system that retrieves planetary position data, orbital elements, and gravity parameters from NASA APIs to analyze optimal departure points for interplanetary travel. Calculates trajectories considering Hohmann transfer orbits and gravity assists using APIs and Python, displaying launch windows, travel time, and fuel efficiency. Used as a simulation tool for educational institutions and space-related companies. *AI features currently disabled; calculations performed via API and Python.",zh:"开发了一个从NASA API获取行星位置数据、轨道要素和重力参数的系统,用于分析行星际旅行的最佳出发点。使用API和Python计算考虑霍曼转移轨道和重力辅助的轨迹,显示发射窗口、旅行时间和燃料效率。作为教育机构和航天相关公司的模拟工具使用。*AI功能目前已禁用;通过API和Python进行计算。",ko:"NASA API에서 행성 위치 데이터, 궤도 요소 및 중력 매개변수를 검색하여 행성간 여행의 최적 출발 지점을 분석하는 시스템을 개발했습니다. API와 Python을 사용하여 호만 전이 궤도와 중력 어시스트를 고려한 궤적을 계산하고 발사 윈도우, 이동 시간 및 연료 효율을 표시합니다. 교육 기관 및 우주 관련 기업의 시뮬레이션 도구로 사용됩니다. *AI 기능 현재 비활성화됨; API와 Python으로 계산 수행 중.",es:"Desarrollamos un sistema que recupera datos de posición planetaria, elementos orbitales y parámetros gravitacionales de las APIs de la NASA para analizar puntos de partida óptimos para viajes interplanetarios. Calcula trayectorias considerando órbitas de transferencia de Hohmann y asistencias gravitacionales usando APIs y Python, mostrando ventanas de lanzamiento, tiempo de viaje y eficiencia de combustible. Usado como herramienta de simulación para instituciones educativas y empresas espaciales. *Funciones de IA actualmente deshabilitadas; cálculos realizados mediante API y Python.",pt:"Desenvolvemos um sistema que recupera dados de posição planetária, elementos orbitais e parâmetros gravitacionais das APIs da NASA para analisar pontos de partida ideais para viagens interplanetárias. Calcula trajetórias considerando órbitas de transferência de Hohmann e assistências gravitacionais usando APIs e Python, exibindo janelas de lançamento, tempo de viagem e eficiência de combustível. Usado como ferramenta de simulação para instituições educacionais e empresas espaciais. *Recursos de IA atualmente desativados; cálculos realizados via API e Python.",th:"พัฒนาระบบที่ดึงข้อมูลตำแหน่งดาวเคราะห์ องค์ประกอบวงโคจร และพารามิเตอร์แรงโน้มถ่วงจาก NASA API เพื่อวิเคราะห์จุดออกเดินทางที่เหมาะสมที่สุดสำหรับการเดินทางระหว่างดาวเคราะห์ คำนวณวิถีโดยพิจารณาวงโคจรถ่ายโอนฮอมันน์และการช่วยเหลือด้านแรงโน้มถ่วงโดยใช้ API และ Python แสดงหน้าต่างการปล่อย เวลาเดินทาง และประสิทธิภาพเชื้อเพลิง ใช้เป็นเครื่องมือจำลองสำหรับสถาบันการศึกษาและบริษัทที่เกี่ยวข้องกับอวกาศ *ฟีเจอร์ AI ปิดใช้งานในปัจจุบัน; การคำนวณดำเนินการผ่าน API และ Python",ms:"Membangunkan sistem yang mengambil data kedudukan planet, elemen orbit, dan parameter graviti dari API NASA untuk menganalisis titik berlepas optimum untuk perjalanan antara planet. Mengira trajektori mempertimbangkan orbit pemindahan Hohmann dan bantuan graviti menggunakan API dan Python, memaparkan tetingkap pelancaran, masa perjalanan, dan kecekapan bahan api. Digunakan sebagai alat simulasi untuk institusi pendidikan dan syarikat berkaitan angkasa. *Ciri AI kini dilumpuhkan; pengiraan dilakukan melalui API dan Python.",id:"Mengembangkan sistem yang mengambil data posisi planet, elemen orbit, dan parameter gravitasi dari NASA API untuk menganalisis titik keberangkatan optimal untuk perjalanan antarplanet. Menghitung lintasan dengan mempertimbangkan orbit transfer Hohmann dan bantuan gravitasi menggunakan API dan Python, menampilkan jendela peluncuran, waktu perjalanan, dan efisiensi bahan bakar. Digunakan sebagai alat simulasi untuk lembaga pendidikan dan perusahaan terkait luar angkasa. *Fitur AI saat ini dinonaktifkan; perhitungan dilakukan melalui API dan Python.",de:"Entwicklung eines Systems, das Planetenpositionsdaten, Orbitalelemente und Gravitationsparameter von NASA-APIs abruft, um optimale Abfahrtspunkte für interplanetare Reisen zu analysieren. Berechnet Trajektorien unter Berücksichtigung von Hohmann-Transferbahnen und Gravitationsassistenten mit APIs und Python, zeigt Startfenster, Reisezeit und Treibstoffeffizienz an. Wird als Simulationswerkzeug für Bildungseinrichtungen und raumfahrtbezogene Unternehmen verwendet. *KI-Funktionen derzeit deaktiviert; Berechnungen werden über API und Python durchgeführt."},techStack:{ja:["NASA API (Horizons, SPICE)","軌道力学計算","Python","データビジュアライゼーション"],en:["NASA API (Horizons, SPICE)","Orbital Mechanics","Python","Data Visualization"],zh:["NASA API (Horizons, SPICE)","轨道力学","Python","数据可视化"],ko:["NASA API (Horizons, SPICE)","궤도 역학","Python","데이터 시각화"],es:["NASA API (Horizons, SPICE)","Mecánica Orbital","Python","Visualización de Datos"],pt:["NASA API (Horizons, SPICE)","Mecânica Orbital","Python","Visualização de Dados"],th:["NASA API (Horizons, SPICE)","กลศาสตร์วงโคจร","Python","การแสดงข้อมูลเป็นภาพ"],ms:["NASA API (Horizons, SPICE)","Mekanik Orbit","Python","Visualisasi Data"],id:["NASA API (Horizons, SPICE)","Mekanika Orbit","Python","Visualisasi Data"],de:["NASA API (Horizons, SPICE)","Orbitalmechanik","Python","Datenvisualisierung"]},projectUrl:"https://telet-ai.github.io/space-travel/",imageSrc:"/images/optimized/orbital-simulation.webp"},{id:"real-estate",number:"",title:{ja:"不動産データAI解析",en:"Real Estate Data Analysis with AI",zh:"房地产数据AI分析",ko:"부동산 데이터 AI 분석",es:"Análisis de Datos Inmobiliarios con IA",pt:"Análise de Dados Imobiliários com IA",th:"การวิเคราะห์ข้อมูลอสังหาริมทรัพย์ด้วย AI",ms:"Analisis Data Hartanah dengan AI",id:"Analisis Data Properti dengan AI",de
334:"Immobiliendatenanalyse mit KI"},description:{ja:"特定地域の不動産情報をWebスクレイピングで収集し、LLMとPythonによる高度なデータ解析を行うシステムを開発。物件価格、坪単価、築年数、駅距離などの変数を抽出し、価格トレンド分析、相場予測、投資収益率シミュレーションを自動生成します。非構造化な物件説明文からもLLMで特徴を抽出し、定量データと組み合わせた総合的な市場分析を提供しました。※セカンドバージョンとして公開中(FULLバージョンは別途提供)",en:"Developed a system that collects real estate information for specific regions via web scraping and performs advanced data analysis using LLM and Python. Extracts variables such as property prices, price per tsubo, building age, and distance to stations, automatically generating price trend analysis, market forecasts, and investment ROI simulations. Also extracts features from unstructured property descriptions using LLM, providing comprehensive market analysis combined with quantitative data. *Currently available as second version (full version available separately).",zh:"开发了一个通过网络抓取收集特定地区房地产信息并使用LLM和Python进行高级数据分析的系统。提取房产价格、每坪单价、建筑年龄和到车站距离等变量,自动生成价格趋势分析、市场预测和投资回报率模拟。还使用LLM从非结构化的房产描述中提取特征,结合定量数据提供全面的市场分析。*目前作为第二版本发布(完整版本另行提供)。",ko:"웹 스크래핑을 통해 특정 지역의 부동산 정보를 수집하고 LLM과 Python을 사용한 고급 데이터 분석을 수행하는 시스템을 개발했습니다. 물건 가격, 평당 가격, 건물 연식, 역까지 거리 등의 변수를 추출하여 가격 추세 분석, 시장 예측, 투자 수익률 시뮬레이션을 자동 생성합니다. LLM을 사용하여 비구조화된 물건 설명에서도 특징을 추출하고 정량적 데이터와 결합한 종합적인 시장 분석을 제공했습니다. *현재 두 번째 버전으로 공개 중(풀 버전은 별도 제공).",es:"Desarrollamos un sistema que recopila información inmobiliaria de regiones específicas mediante web scraping y realiza análisis de datos avanzados usando LLM y Python. Extrae variables como precios de propiedades, precio por tsubo, antigüedad del edificio y distancia a estaciones, generando automáticamente análisis de tendencias de precios, pronósticos de mercado y simulaciones de ROI de inversión. También extrae características de descripciones de propiedades no estructuradas usando LLM, proporcionando análisis de mercado integral combinado con datos cuantitativos. *Actualmente disponible como segunda versión (versión completa disponible por separado).",pt:"Desenvolvemos um sistema que coleta informações imobiliárias de regiões específicas via web scraping e realiza análise de dados avançada usando LLM e Python. Extrai variáveis como preços de propriedades, preço por tsubo, idade do edifício e distância até estações, gerando automaticamente análise de tendências de preços, previsões de mercado e simulações de ROI de investimento. Também extrai características de descrições de propriedades não estruturadas usando LLM, fornecendo análise de mercado abrangente combinada com dados quantitativos. *Atualmente disponível como segunda versão (versão completa disponível separadamente).",th:"พัฒนาระบบที่รวบรวมข้อมูลอสังหาริมทรัพย์สำหรับภูมิภาคเฉพาะผ่าน web scraping และทำการวิเคราะห์ข้อมูลขั้นสูงโดยใช้ LLM และ Python ดึงตัวแปรเช่นราคาอสังหาริมทรัพย์ ราคาต่อตารางเมตร อายุอาคาร และระยะทางไปยังสถานี สร้างการวิเคราะห์แนวโน้มราคา การคาดการณ์ตลาด และการจำลอง ROI การลงทุนโดยอัตโนมัติ ยังดึงคุณลักษณะจากคำอธิบายอสังหาริมทรัพย์ที่ไม่มีโครงสร้างโดยใช้ LLM ให้การวิเคราะห์ตลาดที่ครอบคลุมรวมกับข้อมูลเชิงปริมาณ *มีให้บริการในเวอร์ชันที่สองในปัจจุบัน (เวอร์ชันเต็มมีให้แยกต่างหาก)",ms:"Membangunkan sistem yang mengumpul maklumat hartanah untuk kawasan tertentu melalui web scraping dan melakukan analisis data lanjutan menggunakan LLM dan Python. Mengekstrak pembolehubah seperti harga hartanah, harga per tsubo, umur bangunan, dan jarak ke stesen, menjana analisis trend harga, ramalan pasaran, dan simulasi ROI pelaburan secara automatik. Juga mengekstrak ciri dari perihalan hartanah tidak berstruktur menggunakan LLM, menyediakan analisis pasaran komprehensif digabungkan dengan data kuantitatif. *Kini tersedia sebagai versi kedua (versi penuh tersedia secara berasingan).",id:"Mengembangkan sistem yang mengumpulkan informasi properti untu
334k wilayah tertentu melalui web scraping dan melakukan analisis data lanjutan menggunakan LLM dan Python. Mengekstrak variabel seperti harga properti, harga per tsubo, usia bangunan, dan jarak ke stasiun, secara otomatis menghasilkan analisis tren harga, perkiraan pasar, dan simulasi ROI investasi. Juga mengekstrak fitur dari deskripsi properti tidak terstruktur menggunakan LLM, memberikan analisis pasar komprehensif dikombinasikan dengan data kuantitatif. *Saat ini tersedia sebagai versi kedua (versi lengkap tersedia secara terpisah).",de:"Entwicklung eines Systems, das Immobilieninformationen für bestimmte Regionen per Web-Scraping sammelt und erweiterte Datenanalysen mit LLM und Python durchführt. Extrahiert Variablen wie Immobilienpreise, Preis pro Tsubo, Gebäudealter und Entfernung zu Bahnhöfen und generiert automatisch Preistrend-Analysen, Marktprognosen und Investitions-ROI-Simulationen. Extrahiert auch Merkmale aus unstrukturierten Immobilienbeschreibungen mit LLM und bietet umfassende Marktanalysen kombiniert mit quantitativen Daten. *Derzeit als zweite Version verfügbar (Vollversion separat erhältlich)."},techStack:{ja:["Webスクレイピング (Scrapy, Playwright)","Python","Pandas","LLM解析","データ可視化"],en:["Web Scraping (Scrapy, Playwright)","Python","Pandas","LLM Analysis","Data Visualization"],zh:["网络抓取 (Scrapy, Playwright)","Python","Pandas","LLM分析","数据可视化"],ko:["웹 스크래핑 (Scrapy, Playwright)","Python","Pandas","LLM 분석","데이터 시각화"],es:["Web Scraping (Scrapy, Playwright)","Python","Pandas","Análisis LLM","Visualización de Datos"],pt:["Web Scraping (Scrapy, Playwright)","Python","Pandas","Análise LLM","Visualização de Dados"],th:["Web Scraping (Scrapy, Playwright)","Python","Pandas","การวิเคราะห์ LLM","การแสดงข้อมูลเป็นภาพ"],ms:["Web Scraping (Scrapy, Playwright)","Python","Pandas","Analisis LLM","Visualisasi Data"],id:["Web Scraping (Scrapy, Playwright)","Python","Pandas","Analisis LLM","Visualisasi Data"],de:["Web Scraping (Scrapy, Playwright)","Python","Pandas","LLM-Analyse","Datenvisualisierung"]},projectUrl:"https://lookies.ai/",imageSrc:"/images/optimized/real-estate-dashboard.webp"},{id:"fortune-ai",number:"",title:{ja:"四柱推命AI鑑定マネージャー",en:"AI Four Pillars Fortune Analysis Manager",zh:"AI四柱推命运势分析管理器",ko:"AI 사주 운세 분석 매니저",es:"Gestor de Análisis de Fortuna de los Cuatro Pilares con IA",pt:"Gerenciador de Análise de Fortuna dos Quatro Pilares com IA",th:"ระบบจัดการวิเคราะห์ดวงชะตาสี่เสาด้วย AI",ms:"Pengurus Analisis Nasib Empat Tiang AI",id:"Manajer Analisis Keberuntungan Empat Pilar AI",de:"KI-Vier-Säulen-Schicksalsanalyse-Manager"},description:{ja:"生年月日・出生時間・出生地から四柱推命(命式)を算出し、運勢・相性・適職などを自然言語で生成するAI鑑定システム。",en:"An AI fortune analysis system that calculates Four Pillars of Destiny (BaZi chart) from birth date, time, and location, generating natural language readings for fortune, compatibility, and career suitability.",zh:"一个AI运势分析系统,根据出生日期、时间和地点计算四柱推命(八字命盘),以自然语言生成运势、相性和职业适合性的解读。",ko:"생년월일, 출생 시간, 출생지로부터 사주팔자를 계산하고 운세, 궁합, 적성 등을 자연어로 생성하는 AI 운세 분석 시스템입니다.",es:"Un sistema de análisis de fortuna con IA que calcula los Cuatro Pilares del Destino (carta BaZi) a partir de la fecha, hora y lugar de nacimiento, generando lecturas en lenguaje natural sobre fortuna, compatibilidad y aptitud profesional.",pt:"Um sistema de análise de fortuna com IA que calcula os Quatro Pilares do Destino (carta BaZi) a partir da data, hora e local de nascimento, gerando leituras em linguagem natural sobre fortuna, compatibilidade e adequação profissional.",th:"ระบบวิเคราะห์ดวงชะตาด้วย AI ที่คำนวณสี่เสาแห่งชะตากรรม (แผนภูมิ BaZi) จากวันเกิด เวลา และสถานที่เกิด สร้างคำทำนายเป็นภาษาธรรมชาติเกี่ยวกับดวง ความเข้ากันได้ และความเหมาะสมกับอาชีพ",ms:"Sistem analisis nasib AI yang mengira Empat Tiang Takdir (carta BaZi) dari tarikh, masa, dan lokasi lahir, menjana bacaan bahasa semula jadi untuk nasib, keserasian, dan kesesuaian kerjaya.",id:"Sistem analisis keberuntungan AI yang menghitung Empat Pilar Takdir (bagan BaZi) dari tanggal, waktu, dan lokasi lahir, menghasilkan pembacaan bahasa alami untu
334k keberuntungan, kompatibilitas, dan kesesuaian karier.",de:"Ein KI-Schicksalsanalysesystem, das die Vier Säulen des Schicksals (BaZi-Diagramm) aus Geburtsdatum, -zeit und -ort berechnet und natürlichsprachliche Lesungen für Glück, Kompatibilität und Berufseignung erstellt."},paragraphs:{ja:["四柱推命(生年月日・出生時間・出生地)を元に個人の運勢や性格をAIで解析し、自然言語でわかりやすくフィードバックする鑑定システムを開発。出生地からタイムゾーンを自動判定し、真太陽時を算出することで正確な命式計算を実現しました。","四柱推命の占い学に基づくロジックをPythonで指数化し、統計データとRAG(検索拡張生成)情報を組み合わせることで、命式解析の精度を高めています。","算出された命式データは、LLMが自然言語でわかりやすく解説。運勢の流れ、対人関係の相性、あなたに適した職業など、パーソナライズされた鑑定結果を生成します。専門の占い師に相談したときと同様の、深みのある回答を得ることができます。","現在、セカンドバージョンとして公開中です。基本的な命式解析と運勢鑑定をお試しいただけます。より詳細な分析と多角的なアドバイスを含むフルバージョンは、別途ご提供しております。"],en:["Developed a fortune analysis system that uses AI to analyze individual fortune and personality based on Four Pillars of Destiny (birth date, time, and location), providing easy-to-understand feedback in natural language. Achieved accurate BaZi chart calculation by automatically determining time zones from birthplace and computing true solar time.","The fortune-telling logic based on Four Pillars astrology is indexed in Python, combining statistical data with RAG (Retrieval-Augmented Generation) information to enhance the accuracy of chart analysis.","The calculated chart data is explained in natural language by the LLM, generating personalized fortune readings including life cycles, interpersonal compatibility, and suitable careers. Provides in-depth responses comparable to consulting a professional fortune teller.","Currently available as second version, offering basic chart analysis and fortune reading. A full version with more detailed analysis and multi-faceted advice is available separately."],zh:["开发了一个运势分析系统,使用AI基于四柱推命(出生日期、时间和地点)分析个人运势和性格,以自然语言提供易于理解的反馈。通过自动从出生地确定时区并计算真太阳时,实现了准确的八字命盘计算。","基于四柱占星术的算命逻辑在Python中被索引化,结合统计数据和RAG(检索增强生成)信息来提高命盘分析的准确性。","计算出的命盘数据由LLM以自然语言解释,生成包括人生周期、人际关系相性和适合职业在内的个性化运势解读。提供与咨询专业算命师相当的深入回答。","目前作为第二版本提供,提供基本的命盘分析和运势解读。包含更详细分析和多方面建议的完整版本另行提供。"],ko:["사주팔자(생년월일, 출생 시간, 출생지)를 기반으로 AI를 사용하여 개인의 운세와 성격을 분석하고 자연어로 이해하기 쉬운 피드백을 제공하는 운세 분석 시스템을 개발했습니다. 출생지에서 시간대를 자동으로 결정하고 진태양시를 계산하여 정확한 사주 계산을 실현했습니다.","사주 점성술에 기반한 운세 로직이 Python으로 인덱싱되어 통계 데이터와 RAG(검색 증강 생성) 정보를 결합하여 사주 분석의 정확도를 높였습니다.","계산된 사주 데이터는 LLM이 자연어로 설명하여 인생 주기, 대인 관계 궁합, 적합한 직업을 포함한 개인화된 운세 해석을 생성합니다. 전문 점술사에게 상담했을 때와 비슷한 깊이 있는 답변을 제공합니다.","현재 두 번째 버전으로 제공되며 기본적인 사주 분석과 운세 해석을 이용할 수 있습니다. 더 상세한 분석과 다각적인 조언ì
334„ 포함한 풀 버전은 별도로 제공됩니다."],es:["Desarrollamos un sistema de análisis de fortuna que utiliza IA para analizar la fortuna y personalidad individual basándose en los Cuatro Pilares del Destino (fecha, hora y lugar de nacimiento), proporcionando retroalimentación fácil de entender en lenguaje natural. Logramos un cálculo preciso de la carta BaZi determinando automáticamente las zonas horarias desde el lugar de nacimiento y calculando el tiempo solar verdadero.","La lógica de adivinación basada en la astrología de los Cuatro Pilares está indexada en Python, combinando datos estadísticos con información RAG (Generación Aumentada por Recuperación) para mejorar la precisión del análisis de la carta.","Los datos de la carta calculados son explicados en lenguaje natural por el LLM, generando lecturas de fortuna personalizadas incluyendo ciclos de vida, compatibilidad interpersonal y carreras adecuadas. Proporciona respuestas profundas comparables a consultar a un adivino profesional.","Actualmente disponible como segunda versión, ofreciendo análisis básico de carta y lectura de fortuna. Una versión completa con análisis más detallado y consejos multifacéticos está disponible por separado."],pt:["Desenvolvemos um sistema de análise de fortuna que usa IA para analisar a fortuna e personalidade individual com base nos Quatro Pilares do Destino (data, hora e local de nascimento), fornecendo feedback fácil de entender em linguagem natural. Alcançamos um cálculo preciso da carta BaZi determinando automaticamente os fusos horários a partir do local de nascimento e calculando o tempo solar verdadeiro.","A lógica de adivinhação baseada n
334a astrologia dos Quatro Pilares é indexada em Python, combinando dados estatísticos com informações RAG (Geração Aumentada por Recuperação) para melhorar a precisão da análise da carta.","Os dados da carta calculados são explicados em linguagem natural pelo LLM, gerando leituras de fortuna personalizadas incluindo ciclos de vida, compatibilidade interpessoal e carreiras adequadas. Fornece respostas aprofundadas comparáveis à consulta com um adivinho profissional.","Atualmente disponível como segunda versão, oferecendo análise básica de carta e leitura de fortuna. Uma versão completa com análise mais detalhada e conselhos multifacetados está disponível separadamente."],th:["พัฒนาระบบวิเคราะห์ดวงชะตาที่ใช้ AI เพื่อวิเคราะห์ดวงชะตาและบุคลิกภาพส่วนบุคคลตามสี่เสาแห่งชะตากรรม (วันเกิด เวลา และสถานที่) ให้ข้อเสนอแนะที่เข้าใจง่ายในภาษาธรรมชาติ บรรลุการคำนวณแผนภูมิ BaZi ที่แม่นยำโดยการกำหนดโซนเวลาจากสถานที่เกิดโดยอัตโนมัติและคำนวณเวลาสุริยะที่แท้จริง","ตรรกะการทำนายตามโหราศาสตร์สี่เสาถูกจัดทำดัชนีใน Python โดยรวมข้อมูลสถิติกับข้อมูล RAG (การสร้างเสริมการดึงข้อมูล) เพื่อเพิ่มความแม่นยำของการวิเคราะห์แผนภูมิ","ข้อมูลแผนภูมิที่คำนวณได้จะถูกอธิบายเป็นภาษาธรรมชาติโดย LLM สร้างการทำนายดวงชะตาส่วนบุคคลรวมถึงวัฏจักรชีวิต ความเข้ากันได้ระหว่างบุคคล และอาชีพที่เหมาะสม ให้คำตอบเชิงลึกเทียบเท่ากับการปรึกษาหมอดูมืออาชีพ","ปัจจุบันมีให้บริการเป็นเวอร์ชันที่สอง นำเสนอการวิเคราะห์แผนภูมิพื้นฐานและการทำนายดวงชะตา เวอร์ชันเต็มพร้อมการวิเคราะห์ที่ละเอียดกว่าและคำแนะนำหลากหลายมีให้แยกต่างหาก"],ms:["Membangunkan sistem analisis nasib yang menggunakan AI untuk menganalisis nasib dan personaliti individu berdasarkan Empat Tiang Takdir (tarikh, masa, dan lokasi lahir), memberikan maklum balas mudah difahami dalam bahasa semula jadi. Mencapai pengiraan carta BaZi yang tepat dengan menentukan zon masa dari tempat lahir secara automatik dan mengira masa solar sebenar.","Logik ramalan berdasarkan astrologi Empat Tiang diindeks dalam Python, menggabungkan data statistik dengan maklumat RAG (Penjanaan Ditingkatkan Pengambilan) untuk meningkatkan ketepatan analisis carta.","Data carta yang dikira dijelaskan dalam bahasa semula jadi oleh LLM, menjana bacaan nasib yang diperibadikan termasuk kitaran hidup, keserasian interpersonal, dan kerjaya yang sesuai. Memberikan respons mendalam setanding dengan berunding dengan peramal profesional.","Kini tersedia sebagai versi kedua, menawarkan analisis carta asas dan bacaan nasib. Versi penuh dengan analisis lebih terperinci dan nasihat pelbagai aspek tersedia secara berasingan."],id:["Mengembangkan sistem analisis keberuntungan yang menggunakan AI untuk menganalisis keberuntungan dan kepribadian individu berdasarkan Empat Pilar Takdir (tanggal, waktu, dan lokasi lahir), memberikan umpan balik yang mudah dipahami dalam bahasa alami. Mencapai perhitungan bagan BaZi yang akurat dengan secara otomatis menentukan zona waktu dari tempat lahir dan menghitung waktu matahari sejati.","Logika ramalan berdasarkan astrologi Empat Pilar diindeks dalam Python, menggabungkan data statistik dengan informasi RAG (Retrieval-Augmented Generation) untuk meningkatkan akurasi analisis bagan.","Data bagan yang dihitung dijelaskan dalam bahasa alami oleh LLM, menghasilkan pembacaan keberuntungan yang dipersonalisasi termasuk siklus hidup, kompatibilitas interpersonal, dan karier yang cocok. Memberikan respons mendalam yang sebanding dengan berkonsultasi dengan peramal profesional.","Saat ini tersedia sebagai versi kedua, menawarkan analisis bagan dasar dan pembacaan keberuntungan. Versi lengkap dengan analisis lebih detail dan saran multi-segi tersedia secara terpisah."],de:["Entwicklung eines Schicksalsanalysesystems, das KI verwendet, um individuelles Schicksal und Persönlichkeit basierend auf den Vier Säulen des Schicksals (Geburtsdatum, -zeit und 
334-ort) zu analysieren und leicht verständliches Feedback in natürlicher Sprache zu liefern. Erreichte genaue BaZi-Diagrammberechnung durch automatische Bestimmung der Zeitzonen vom Geburtsort und Berechnung der wahren Sonnenzeit.","Die Wahrsagelogik basierend auf der Vier-Säulen-Astrologie ist in Python indexiert und kombiniert statistische Daten mit RAG-Informationen (Retrieval-Augmented Generation), um die Genauigkeit der Diagrammanalyse zu verbessern.","Die berechneten Diagrammdaten werden vom LLM in natürlicher Sprache erklärt und generieren personalisierte Schicksalslesungen einschließlich Lebenszyklen, zwischenmenschlicher Kompatibilität und geeigneter Karrieren. Liefert tiefgehende Antworten vergleichbar mit der Konsultation eines professionellen Wahrsagers.","Derzeit als zweite Version verfügbar, bietet grundlegende Diagrammanalyse und Schicksalslesung. Eine Vollversion mit detaillierterer Analyse und vielseitigen Ratschlägen ist separat erhältlich."]},techStack:{ja:["Python","天文API (Sunrise-Sunset, TimeZoneDB)","四柱推命ロジック","LLM","座標・時刻計算"],en:["Python","Astronomical API (Sunrise-Sunset, TimeZoneDB)","BaZi Logic","LLM","Coordinate/Time Calculation"],zh:["Python","天文API (Sunrise-Sunset, TimeZoneDB)","四柱推命逻辑","LLM","坐标/时间计算"],ko:["Python","천문 API (Sunrise-Sunset, TimeZoneDB)","사주 로직","LLM","좌표/시간 계산"],es:["Python","API Astronómica (Sunrise-Sunset, TimeZoneDB)","Lógica BaZi","LLM","Cálculo de Coordenadas/Tiempo"],pt:["Python","API Astronômica (Sunrise-Sunset, TimeZoneDB)","Lógica BaZi","LLM","Cálculo de Coordenadas/Tempo"],th:["Python","API ดาราศาสตร์ (Sunrise-Sunset, TimeZoneDB)","ตรรกะ BaZi","LLM","การคำนวณพิกัด/เวลา"],ms:["Python","API Astronomi (Sunrise-Sunset, TimeZoneDB)","Logik BaZi","LLM","Pengiraan Koordinat/Masa"],id:["Python","API Astronomi (Sunrise-Sunset, TimeZoneDB)","Logika BaZi","LLM","Perhitungan Koordinat/Waktu"],de:["Python","Astronomische API (Sunrise-Sunset, TimeZoneDB)","BaZi-Logik","LLM","Koordinaten-/Zeitberechnung"]},projectUrl:"https://lookies.ai/",imageSrc:"",noImage:!0},{id:"google-workspace",number:"",title:{ja:"Google Workspace AI連携",en:"Google Workspace AI Integration",zh:"Google Workspace AI集成",ko:"Google Workspace AI 통합",es:"Integración de IA con Google Workspace",pt:"Integração de IA com Google Workspace",th:"การรวม AI กับ Google Workspace",ms:"Integrasi AI Google Workspace",id:"Integrasi AI Google Workspace",de:"Google Workspace KI-Integration"},description:{ja:"Google Workspace(Gmail、Drive、Calendar、Docs、Sheets)とLLMを連携し、業務データの読み込み・編集・自動処理を行うシステムを開発。メール内容の要約・自動返信下書き生成、Driveファイルの検索・内容解析、Calendarからのスケジュール抽出と調整提案など、日常業務をAIがアシストします。OAuth認証による安全なAPI接続と、MCP準拠のツール設計により、Agentからの自律的なWorkspace操作も実現しました。※セカンドバージョンとして公開中(FULLバージョンは別途提供)",en:"Developed a system integrating Google Workspace (Gmail, Drive, Calendar, Docs, Sheets) with LLM for reading, editing, and automated processing of business data. AI assists daily tasks including email summarization and auto-reply draft generation, Drive file search and content analysis, and schedule extraction from Calendar with adjustment suggestions. Achieved autonomous Workspace operations from Agents through secure OAuth-authenticated API connections and MCP-compliant tool design. *Currently available as second version (full version available separately).",zh:"开发了一个将Google Workspace(Gmail、Drive、Calendar、Docs、Sheets)与LLM集成的系统,用于业务数据的读取、编辑和自动处理。AI协助日常任务,包括邮件摘要和自动回复草稿生成、Drive文件搜索和内容分析、以及从Calendar提取日程并提出调整建议。通过安全的OAuth认证API连接和符合MCP的工具设计,实现了Agent的自主Workspace操作。*目前作为第二版本发布(完整版本另行提供)。",ko:"Google Worksp
334ace(Gmail, Drive, Calendar, Docs, Sheets)와 LLM을 연동하여 업무 데이터의 읽기, 편집, 자동 처리를 수행하는 시스템을 개발했습니다. 이메일 요약 및 자동 회신 초안 생성, Drive 파일 검색 및 콘텐츠 분석, Calendar에서 일정 추출 및 조정 제안 등 일상 업무를 AI가 지원합니다. 안전한 OAuth 인증 API 연결과 MCP 준수 도구 설계를 통해 Agent의 자율적인 Workspace 작업을 실현했습니다. *현재 두 번째 버전으로 공개 중(풀 버전은 별도 제공).",es:"Desarrollamos un sistema que integra Google Workspace (Gmail, Drive, Calendar, Docs, Sheets) con LLM para lectura, edición y procesamiento automatizado de datos empresariales. La IA asiste tareas diarias incluyendo resumen de correos y generación de borradores de respuesta automática, búsqueda de archivos en Drive y análisis de contenido, y extracción de programación desde Calendar con sugerencias de ajuste. Logró operaciones autónomas de Workspace desde Agentes mediante conexiones API autenticadas con OAuth seguras y diseño de herramientas compatible con MCP. *Actualmente disponible como segunda versión (versión completa disponible por separado).",pt:"Desenvolvemos um sistema integrando Google Workspace (Gmail, Drive, Calendar, Docs, Sheets) com LLM para leitura, edição e processamento automatizado de dados empresariais. A IA auxilia tarefas diárias incluindo resumo de e-mails e geração de rascunhos de resposta automática, pesquisa de arquivos no Drive e análise de conteúdo, e extração de agenda do Calendar com sugestões de ajuste. Alcançou operações autônomas do Workspace a partir de Agentes através de conexões API autenticadas com OAuth seguras e design de ferramentas compatível com MCP. *Atualmente disponível como segunda versão (versão completa disponível separadamente).",th:"พัฒนาระบบที่รวม Google Workspace (Gmail, Drive, Calendar, Docs, Sheets) กับ LLM สำหรับการอ่าน แก้ไข และประมวลผลอัตโนมัติของข้อมูลธุรกิจ AI ช่วยเหลืองานประจำวันรวมถึงการสรุปอีเมลและการสร้างร่างตอบกลับอัตโนมัติ การค้นหาไฟล์ Drive และการวิเคราะห์เนื้อหา และการดึงกำหนดการจาก Calendar พร้อมข้อเสนอแนะการปรับเปลี่ยน บรรลุการดำเนินการ Workspace อัตโนมัติจาก Agents ผ่านการเชื่อมต่อ API ที่รับรองความถูกต้องด้วย OAuth ที่ปลอดภัยและการออกแบบเครื่องมือที่สอดคล้องกับ MCP *มีให้บริการในเวอร์ชันที่สองในปัจจุบัน (เวอร์ชันเต็มมีให้แยกต่างหาก)",ms:"Membangunkan sistem yang menyepadukan Google Workspace (Gmail, Drive, Calendar, Docs, Sheets) dengan LLM untuk membaca, mengedit, dan pemprosesan automatik data perniagaan. AI membantu tugas harian termasuk ringkasan e-mel dan penjanaan draf balasan automatik, carian fail Drive dan analisis kandungan, dan pengekstrakan jadual dari Calendar dengan cadangan penyesuaian. Mencapai operasi Workspace autonomi dari Ejen melalui sambungan API yang disahkan OAuth selamat dan reka bentuk alat yang mematuhi MCP. *Kini tersedia sebagai versi kedua (versi penuh tersedia secara berasingan).",id:"Mengembangkan sistem yang mengintegrasikan Google Workspace (Gmail, Drive, Calendar, Docs, Sheets) dengan LLM untuk membaca, mengedit, dan pemrosesan otomatis data bisnis. AI membantu tugas harian termasuk ringkasan email dan pembuatan draf balasan otomatis, pencarian file Drive dan analisis konten, dan ekstraksi jadwal dari Calendar dengan saran penyesuaian. Mencapai operasi Workspace otonom dari Agents melalui koneksi API yang diautentikasi OAuth yang aman dan desain alat yang sesuai MCP. *Saat ini tersedia sebagai versi kedua (versi lengkap tersedia secara terpisah).",de:"Entwicklung eines Systems, das Google Worksp
334ace (Gmail, Drive, Calendar, Docs, Sheets) mit LLM für das Lesen, Bearbeiten und automatische Verarbeiten von Geschäftsdaten integriert. KI unterstützt tägliche Aufgaben einschließlich E-Mail-Zusammenfassung und automatische Antwort-Entwurfserstellung, Drive-Dateisuche und Inhaltsanalyse sowie Terminextraktion aus dem Kalender mit Anpassungsvorschlägen. Erreichte autonome Workspace-Operationen von Agenten durch sichere OAuth-authentifizierte API-Verbindungen und MCP-konformes Werkzeugdesign. *Derzeit als zweite Version verfügbar (Vollversion separat erhältlich)."},techStack:{ja:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"],en:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"],zh:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"],ko:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"],es:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"],pt:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"],th:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"],ms:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"],id:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"],de:["Google Workspace API","OAuth 2.0","LLM","MCP","LangChain Tools","FastAPI"]},projectUrl:"https://lookies.ai/",imageSrc:"/images/google-workspace.jpg"},{id:"world-news",number:"",title:{ja:"世界NEWS多言語化",en:"World News Multilingual Summarization",zh:"全球新闻多语言摘要",ko:"세계 뉴스 다국어 요약",es:"Resumen Multilingüe de Noticias Mundiales",pt:"Resumo Multilíngue de Notícias Mundiais",th:"การสรุปข่าวโลกหลายภาษา",ms:"Ringkasan Berita Dunia Berbilang Bahasa",id:"Ringkasan Berita Dunia Multibahasa",de:"Mehrsprachige Weltübersichtszusammenfassung"},description:{ja:"世界各国のニュースソースからリアルタイムで記事を収集し、LLMによる多言語翻訳・要約・カテゴリ分類を行うシステム開発。英語、中国語、フランス語、アラビア語など多言語の原文記事を日本語に翻訳し、トピック別に整理。単純な機械翻訳ではなく、LLMによる文脈理解に基づいた自然な翻訳と、記事の要点を抽出したサマリー生成により、効率的な国際ニュースモニタリングを実現しました。※セカンドバージョンとして公開中(FULLバージョンは別途提供)",en:"Developed a system that collects articles in real-time from news sources worldwide, performing multilingual translation, summarization, and category classification using LLM. Translates original articles in English, Chinese, French, Arabic, and other languages into Japanese, organized by topic. Achieved efficient international news monitoring through natural translation based on LLM context understanding rather than simple machine translation, along with summary generation extracting key points. *Currently available as second version (full version available separately).",zh:"开发了一个从全球新闻源实时收集文章的系统,使用LLM进行多语言翻译、摘要和分类。将英语、中文、法语、阿拉伯语等多语言原文文章翻译成日语,按主题组织。通过基于LLM上下文理解的自然翻译而非简单的机器翻译,以及提取要点的摘要生成,实现了高效的国际新闻监控。*目前作为第二版本发布(完整版本另行提供)。",ko:"전 세계 뉴스 소스에서 기사를 실시간으로 수집하고 LLM을 사용한 다국어 번역, 요약, 카테고리 분류를 수행하는 시스템을 개발했습니다. 영어, 중국어, 프랑스어, 아랍어 등 다국어 원문 기사를 일본어로 번역하여 주제별로 정리합니다. 단순한 기계 번역이 아닌 LLM 문맥 이해에 기반한 자연스러운 번역과 핵심 요점을 추출한 요약 생성을 통해 효율적인 국제 뉴스 모니터링을 실현했습니다. *현재 두 번째 버전으로 공개 중(풀 버전은 별도 제공).",es:"Desarrollamos un sistema que recopila artículos en tiempo real de fuentes de noticias de todo el mund
334o, realizando traducción multilingüe, resumen y clasificación por categorías usando LLM. Traduce artículos originales en inglés, chino, francés, árabe y otros idiomas al japonés, organizados por tema. Logró un monitoreo eficiente de noticias internacionales mediante traducción natural basada en comprensión contextual de LLM en lugar de traducción automática simple, junto con generación de resúmenes extrayendo puntos clave. *Actualmente disponible como segunda versión (versión completa disponible por separado).",pt:"Desenvolvemos um sistema que coleta artigos em tempo real de fontes de notícias em todo o mundo, realizando tradução multilíngue, resumo e classificação por categorias usando LLM. Traduz artigos originais em inglês, chinês, francês, árabe e outros idiomas para japonês, organizados por tópico. Alcançou monitoramento eficiente de notícias internacionais através de tradução natural baseada na compreensão contextual do LLM em vez de tradução automática simples, junto com geração de resumos extraindo pontos-chave. *Atualmente disponível como segunda versão (versão completa disponível separadamente).",th:"พัฒนาระบบที่รวบรวมบทความแบบเรียลไทม์จากแหล่งข่าวทั่วโลก ทำการแปลหลายภาษา สรุป และจำแนกหมวดหมู่โดยใช้ LLM แปลบทความต้นฉบับภาษาอังกฤษ à¸
334ˆà¸µà¸™ ฝรั่งเศส อาหรับ และภาษาอื่นๆ เป็นภาษาญี่ปุ่น จัดเรียงตามหัวข้อ บรรลุการติดตามข่าวระหว่างประเทศอย่างมีประสิทธิภาพผ่านการแปลที่เป็นธรรมชาติตามความเข้าใจบริบทของ LLM แทนการแปลด้วยเครื่องอย่างง่าย พร้อมกับการสร้างสรุปที่ดึงประเด็นสำคัญ *มีให้บริการในเวอร์ชันที่สองในปัจจุบัน (เวอร์ชันเต็มมีให้แยกต่างหาก)",ms:"Membangunkan sistem yang mengumpul artikel dalam masa nyata dari sumber berita di seluruh dunia, melaksanakan terjemahan berbilang bahasa, ringkasan, dan pengelasan kategori menggunakan LLM. Menterjemah artikel asal dalam bahasa Inggeris, Cina, Perancis, Arab, dan bahasa lain ke bahasa Jepun, disusun mengikut topik. Mencapai pemantauan berita antarabangsa yang cekap melalui terjemahan semula jadi berdasarkan pemahaman konteks LLM dan bukannya terjemahan mesin mudah, bersama dengan penjanaan ringkasan yang mengekstrak perkara utama. *Kini tersedia sebagai versi kedua (versi penuh tersedia secara berasingan).",id:"Mengembangkan sistem yang mengumpulkan artikel secara real-time dari sumber berita di seluruh dunia, melakukan terjemahan multibahasa, ringkasan, dan klasifikasi kategori menggunakan LLM. Menerjemahkan artikel asli dalam bahasa Inggris, Cina, Prancis, Arab, dan bahasa lain ke bahasa Jepang, diorganisir berdasarkan topik. Mencapai pemantauan berita internasional yang efisien melalui terjemahan alami berdasarkan pemahaman konteks LLM daripada terjemahan mesin sederhana, bersama dengan pembuatan ringkasan yang mengekstrak poin-poin kunci. *Saat ini tersedia sebagai versi kedua (versi lengkap tersedia secara terpisah).",de:"Entwicklung eines Systems, das Artikel in Echtzeit von Nachrichtenquellen weltweit sammelt und mehrsprachige Übersetzung, Zusammenfassung und Kategorisierung mit LLM durchführt. Übersetzt Originalartikel in Englisch, Chinesisch, Französisch, Arabisch und anderen Sprachen ins Japanische, organisiert nach Themen. Erreichte effizientes internationales Nachrichtenmonitoring durch natürliche Übersetzung basierend auf LLM-Kontextverständnis anstelle einfacher maschineller Übersetzung, zusammen mit Zusammenfassungsgenerierung, die Kernpunkte extrahiert. *Derzeit als zweite Version verfügbar (Vollversion separat erhältlich)."},techStack:{ja:["News API","RSS収集","LLM翻訳・要約","多言語処理","自動カテゴリ分類","定期バッチ処理"],en:["News API","RSS Collection","LLM Translation/Summarization","Multilingual Processing","Auto Category Classification","Scheduled Batch Processing"],zh:["News API","RSS收集","LLM翻译/摘要","多语言处理","自动分类","定时批处理"],ko:["News API","RSS 수집","LLM 번역/요약","다국어 처리","자동 카테고리 분류","정기 배치 처리"],es:["News API","Recopilación RSS","Traducción/Resumen LLM","Procesamiento Multilingüe","Clasificación Automática de Categorías","Procesamiento por Lotes Programado"],pt:["News API","Coleta RSS","Tradução/Resumo LLM","Processamento Multilíngue","Classificação Automática de Categorias","Processamento em Lote Programado"],th:["News API","การรวบรวม RSS","การแปล/สรุป LLM","การประมวลผลหลายภาษา","การจำแนกหมวดหมู่อัตโนมัติ","การประมวลผลแบบแบตช์ตามกำหนดเวลา"],ms:["News API","Pengumpulan RSS","Terjemahan/Ringkasan LLM","Pemprosesan Berbilang Bahasa","Pengelasan Kategori Automatik","Pemprosesan Kumpulan Berjadual"],id:["News API","Pengumpulan RSS","Terjemah
334an/Ringkasan LLM","Pemrosesan Multibahasa","Klasifikasi Kategori Otomatis","Pemrosesan Batch Terjadwal"],de:["News API","RSS-Sammlung","LLM-Übersetzung/Zusammenfassung","Mehrsprachige Verarbeitung","Automatische Kategorisierung","Geplante Stapelverarbeitung"]},projectUrl:"https://lookies.ai/",imageSrc:"/images/world-news.jpg"},{id:"security-monitoring",number:"",title:{ja:"セキュリティログ監視AIマネージャー",en:"AI Security Log Monitoring Manager",zh:"AI安全日志监控管理器",ko:"AI 보안 로그 모니터링 매니저",es:"Gestor de Monitoreo de Logs de Seguridad con IA",pt:"Gerenciador de Monitoramento de Logs de Segurança com IA",th:"ระบบจัดการติดตาม Log ความปลอดภัยด้วย AI",ms:"Pengurus Pemantauan Log Keselamatan AI",id:"Manajer Pemantauan Log Keamanan AI",de:"KI-Sicherheitsprotokoll-Überwachungsmanager"},description:{ja:"企業のセキュリティログをリアルタイム監視し、LLMによる高度な脅威検知・分析を行うシステムを開発。ファイアウォール、IDS/IPS、認証ログ、アプリケーションログなど多様なログソースをPythonモジュールで収集・解析し、RAGに蓄積された過去の攻撃パターン、脆弱性情報、インシデント事例と照合します。異常パターンを検知した際はLLMが脅威レベル、影響範囲、推奨対応を自然言語で解説し、担当者へ即時アラート通知。同一パターンの再発時は自動的に高優先度アラートを発報し、インシデント対応の迅速化を実現しました。",en:"Developed a system for real-time monitoring of enterprise security logs with advanced threat detection and analysis using LLM. Collects and analyzes diverse log sources including firewall, IDS/IPS, authentication logs, and application logs using Python modules, cross-referencing with past attack patterns, vulnerability information, and incident cases stored in RAG. When anomalous patterns are detected, the LLM explains threat level, scope of impact, and recommended responses in natural language with immediate alert notification to personnel. Automatically issues high-priority alerts upon recurrence of the same pattern, enabling faster incident response.",zh:"开发了一个使用LLM进行高级威胁检测和分析的企业安全日志实时监控系统。使用Python模块收集和分析包括防火墙、IDS/IPS、认证日志和应用程序日志在内的各种日志源,与存储在RAG中的过去攻击模式、漏洞信息和事件案例进行交叉引用。当检测到异常模式时,LLM以自然语言解释威胁级别、影响范围和建议响应,并即时向相关人员发送警报通知。在同一模式再次出现时自动发出高优先级警报,实现更快的事件响应。",ko:"LLM을 사용한 고급 위협 탐지 및 분석으로 기업 보안 로그를 실시간 모니터링하는 시스템을 개발했습니다. Python 모듈을 사용하여 방화벽, IDS/IPS, 인증 로그, 애플리케이션 로그를 포함한 다양한 로그 소스를 수집 및 분석하고 RAG에 저장된 과거 공격 패턴, 취약점 정보, 인시던트 사례와 교차 참조합니다. 이상 패턴이 감지되면 LLM이 위협 수준, 영향 범위, 권장 대응을 자연어로 설명하고 담당자에게 즉시 알림을 전송합니다. 동일 패턴 재발 시 자동으로 고우선순위 알림을 발송하여 빠른 인시던트 대응을 실현했습니다.",es:"Desarrollamos un sistema para monitoreo en tiempo real de logs de seguridad empresarial con detección y análisis avanzado de amenazas usando LLM. Recopila y analiza diversas fuentes de logs incluyendo firewall, IDS/IPS, logs de autenticación y logs de aplicaciones usando módulos Python, cruzando referencias con patrones de ataque pasados, información de vulnerabilidades y casos de incidentes almacenados en RAG. Cuando se detectan patrones anómalos, el LLM explica nivel de amenaza, alcance del impacto y respuestas recomendadas en lenguaje natural con notificación de alerta inmediata al personal. Emite automáticamente alertas de alta prioridad ante recurrencia del mismo patrón, permitiendo respuesta más rápida a incidentes.",pt:"Desenvolvemos um sistema para monitoramento em tempo real de logs de segurança empresarial com detecção e análise avançada de ameaças usando LLM. Coleta e analisa diversas fontes de logs incluindo firewall, IDS/IPS, logs de autenticação e logs de aplicação usando módulos Python, cruzando referências com padrões de ataque passados, informações de vulnerabilidades e casos de incidentes armazenados em RAG. Quando padrões anômalos são detectados, o LLM explica nível de ameaça, escopo de impacto e respostas re
334comendadas em linguagem natural com notificação de alerta imediata ao pessoal. Emite automaticamente alertas de alta prioridade na recorrência do mesmo padrão, permitindo resposta mais rápida a incidentes.",th:"พัฒนาระบบสำหรับการตรวจสอบ log ความปลอดภัยขององค์กรแบบเรียลไทม์พร้อมการตรวจจับและวิเคราะห์ภัยคุกคามขั้นสูงโดยใช้ LLM รวบรวมและวิเคราะห์แหล่ง log ที่หลากหลายรวมถึงไฟร์วอลล์ IDS/IPS log การยืนยันตัวตน และ log แอปพลิเคชันโดยใช้โมดูล Python อ้างอิงไขว้กับรูปแบบการโจมตีในอดีต ข้อมูลช่องโหว่ และกรณีเหตุการณ์ที่เก็บไว้ใน RAG เมื่อตรวจพบรูปแบบผิดปกติ LLM จะอธิบายระดับภัยคุกคาม ขอบเขตผลกระทบ และการตอบสนองที่แนะนำเป็นภาษาธรรมชาติพร้อมแจ้งเตือนทันทีต่อบุคลากร ออกการแจ้งเตือนความสำคัญสูงโดยอัตโนมัติเมื่อรูปแบบเดียวกันเกิดขึ้นซ้ำ ช่วยให้ตอบสนองต่อเหตุการณ์ได้เร็วขึ้น",ms:"Membangunkan sistem untuk pemantauan masa nyata log keselamatan perusahaan dengan pengesanan dan analisis ancaman lanjutan menggunakan LLM. Mengumpul dan menganalisis pelbagai sumber log termasuk firewall, IDS/IPS, log pengesahan, dan log aplikasi menggunakan modul Python, merujuk silang dengan corak serangan lepas, maklumat kerentanan, dan kes insiden yang disimpan dalam RAG. Apabila corak anomali dikesan, LLM menerangkan tahap ancaman, skop impak, dan respons yang disyorkan dalam bahasa semula jadi dengan pemberitahuan amaran segera kepada kakitangan. Mengeluarkan amaran keutamaan tinggi secara automatik apabila corak sama berulang, membolehkan respons insiden lebih pantas.",id:"Mengembangkan sistem untuk pemantauan real-time log keamanan perusahaan dengan deteksi dan analisis ancaman canggih menggunakan LLM. Mengumpulkan dan menganalisis berbagai sumber log termasuk firewall, IDS/IPS, log autentikasi, dan log aplikasi menggunakan modul Python, mereferensikan silang dengan pola serangan masa lalu, informasi kerentanan, dan kasus insiden yang disimpan dalam RAG. Ketika pola anomali terdeteksi, LLM menjelaskan tingkat ancaman, cakupan dampak, dan respons yang direkomendasikan dalam bahasa alami dengan pemberitahuan peringatan segera kepada personel. Secara otomatis mengeluarkan peringatan prioritas tinggi saat pola yang sama terulang, memungkinkan respons insiden yang lebih cepat.",de:"Entwicklung eines Systems zur Echtzeit-Überwachung von Unternehmenssicherheitsprotokollen mit fortschrittlicher Bedrohungserkennung und -analyse mittels LLM. Sammelt und analysiert diverse Protokollquellen einschließlich Firewall, IDS/IPS, Authentifizierungsprotokolle und Anwendungsprotokolle mit Python-Modulen und gleicht sie mit in RAG gespeicherten vergangenen Angriffsmustern, Schwachstelleninformationen und Vorfallsfällen ab. Bei Erkennung anomaler Muster erklärt das LLM Bedrohungsstufe, Auswirkungsbereich und empfohlene Reaktionen in natürlicher Sprache mit sofortiger Alarmbenachrichtigung an das Personal. Gibt bei Wiederholung desselben Musters automatisch Warnungen mit hoher Priorität aus und ermöglicht schnellere Vorfallsreaktion."},techStack:{ja:["Python監視モジュール","ログ収集 (Fluentd, Logstash)","RAG","脅威パターンDB","LLM解析","アラート通知 (Slack, PagerDuty)"],en:["Python Monitoring Module","Log Collection (Fluentd, Logstash)","RAG","Threat Pattern DB","LLM Analysis","Alert Notification (Slack, PagerDuty)"],zh:["Python监控模块","日志收集 (Fluentd, Logstash)","RAG","威胁模式数据库","LLM分析","告警通知 (Slack, PagerDuty)"],ko:["Python 모니터링 모듈","로그 수집 (Fluentd, Logstash)","RAG","위협 패턴 DB","LLM 분석","알림 통지 (Slack, PagerDuty)"],es:["Módulo de Monitoreo Python","Recopilación de Logs (Fluentd, Logstash)","RAG","BD de Patrones de Amenazas","Análisis 
334LLM","Notificación de Alertas (Slack, PagerDuty)"],pt:["Módulo de Monitoramento Python","Coleta de Logs (Fluentd, Logstash)","RAG","DB de Padrões de Ameaças","Análise LLM","Notificação de Alertas (Slack, PagerDuty)"],th:["โมดูลตรวจสอบ Python","การรวบรวม Log (Fluentd, Logstash)","RAG","ฐานข้อมูลรูปแบบภัยคุกคาม","การวิเคราะห์ LLM","การแจ้งเตือน (Slack, PagerDuty)"],ms:["Modul Pemantauan Python","Pengumpulan Log (Fluentd, Logstash)","RAG","DB Corak Ancaman","Analisis LLM","Pemberitahuan Amaran (Slack, PagerDuty)"],id:["Modul Pemantauan Python","Pengumpulan Log (Fluentd, Logstash)","RAG","DB Pola Ancaman","Analisis LLM","Notifikasi Peringatan (Slack, PagerDuty)"],de:["Python-Überwachungsmodul","Log-Sammlung (Fluentd, Logstash)","RAG","Bedrohungsmuster-DB","LLM-Analyse","Alarmbenachrichtigung (Slack, PagerDuty)"]},projectUrl:null,imageSrc:"/images/security-log.jpg"}];Oi.map(n=>n.id);function Oj({src:n,poster:t,title:s}){const o=T.useRef(null),[d,p]=T.useState(()=>typeof window<"u"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches);return T.useEffect(()=>{const c=window.matchMedia("(prefers-reduced-motion: reduce)"),g=()=>p(c.matches);return c.addEventListener("change",g),g(),()=>c.removeEventListener("change",g)},[]),T.useEffect(()=>{const c=o.current;c&&(d?c.pause():c.play().catch(()=>{}))},[d]),l.jsx("video",{ref:o,src:n,poster:t,"aria-label":s,className:"block w-full h-full object-contain",autoPlay:!d,muted:!0,loop:!d,playsInline:!0,controls:!0,controlsList:"nofullscreen nodownload noremoteplayback",disablePictureInPicture:!0,disableRemotePlayback:!0,preload:"metadata"})}function Bj({projectId:n}){const{t,language:s}=Oe(),o=s,d=Oi.map(c=>({...c,title:c.title[o],description:c.description[o],subtitle:c.subtitle?c.subtitle[o]:void 0,paragraphs:c.paragraphs?c.paragraphs[o]:void 0,techStack:c.techStack[o]})),p=c=>{const g=document.getElementById(c);g&&g.scrollIntoView({behavior:"smooth",block:"start"})};return T.useEffect(()=>{const g=window.location.hash.replace("#","")||n;g&&setTimeout(()=>{p(g)},100)},[n]),l.jsxs("div",{className:"bg-background",children:[l.jsxs("section",{className:"relative py-16 md:py-20 bg-gradient-to-br from-blue-900 to-blue-800 text-white overflow-hidden",children:[l.jsx("div",{className:"absolute inset-0 z-0",children:l.jsx(sa,{src:"/images/portfolio-cover.jpg",alt:"Portfolio Background",className:"w-full h-full object-cover opacity-20"})}),l.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-blue-900/80 to-blue-800/80 z-0"}),l.jsxs("div",{className:"container mx-auto max-w-6xl px-4 text-center relative z-10",children:[l.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold mb-4",children:t("portfolio.title")}),l.jsx("p",{className:"text-lg md:text-xl text-white/90 mb-8",children:t("portfolio.subtitle")}),l.jsx("div",{className:"flex flex-wrap justify-center gap-3 max-w-4xl mx-auto",children:d.map(c=>l.jsxs("button",{onClick:()=>p(c.id),className:"px-4 py-2 bg-white/10 hover:bg-white/20 rounded text-sm transition-colors",children:[c.number&&`${c.number}. `,c.title]},c.id))})]})]}),l.jsx("div",{className:"py-12 md:py-16",children:l.jsx("div",{className:"container mx-auto max-w-6xl px-4 space-y-8",children:d.map((c,g)=>{const h=g%2===1,b=c.id==="multilingual-assistant",f=c.id==="local-llm",y=f||c.id==="orbital-prediction";return l.jsx("section",{id:c.id,className:"scroll-mt-20 border-b pb-8 last:border-b-0",children:l.jsxs("div",{className:`grid gap-6 ${f?"md:items-stretch":"items-start"} ${c.noImage?"":"md:grid-cols-2"}`,children:[l.jsxs("div",{className:h?"md:order-2":"md:order-1",children:[l.jsxs("div",{className:"flex items-start gap-3 mb-2",children:[c.number&&l.jsx("span",{className:"text-2xl font-bold text-blue-900/30 min-w-[2.5rem]",children:c.number}),l.jsx("h2",{className:"text-xl font-bold",children:c.title})]}),c.subtitle&&l.jsx("p",{className:"text-sm font-semibold text-blue-900 mb-2 italic",children:c.subtitle}),c.paragraphs?l.jsx("div",{className:"space-y-2 mb-3",children:c.paragraphs.map((A,M)=>l.jsx("p",{className:"text-muted-foreground leading-relaxed text-sm",children:A},M))}):l.jsx("p",{className:"text-muted-foreground leading-relaxed mb-3 text-sm",children:c.description}),l.jsxs("div",{className:"mb-3",children:[l.jsx("h3",{className:"text-xs font-semibold text-muted-foreground mb-1.5",children:t("portfolio.techStackLabel")}),l.jsx("div",{className:"flex flex-wrap gap-1.5",children:c.techStack.map((A,M)=>l.jsx(Qi,{variant:"secondary",className:"bg-blue-900/5 text-blue-900 border-blue-900/10 text-xs px-2 py-0.5",children:A},M))})]}),c.projectUrl&&l.jsx(ja,{size:"sm",className:"bg-blue-900 hover:bg-blue-800 h-8 text-xs px-3",asChild:!0,children:l.jsxs("a",{href:c.projectUrl,target:"_blank",rel:"noopener noreferrer",children:[t("portfolio.viewProject"),l.jsx(rp,{className:"ml-1.5 w-3 h-3"})]})}),!c.projectUrl&&l.jsx("span",{className:"inline-block px-3 py-1 text-xs text-muted-foreground bg-muted/30 rounded",children:t("portfolio.privateProject")})]}),!c.noImage&&l.jsx("div",{className:h?"md:order-1":"md:order-2",children:l.jsx("div",{style:c.videoSrc?{width:200*720/606,maxWidth:"100%",marginInline:"auto"}:void 0,className:`w-full rounded-lg overflow-hidden bg-muted/30 flex items-center justify-center ${c.videoSrc?"h-[200px]":c.paragraphs?"h-auto min-h-[200px]":b?"aspect-[1214/857]":f?"h-[220px] md:h-full md:min-h-[300px]":"h-[200px]"}`,children:c.videoSrc?l.jsx(Oj,{src:c.videoSrc,poster:c.imageSrc,title:c.title}):c.isAnimation?l.jsx("div",{className:"w-full h-full bg-gradient-to-br from-blue-100 to-blue-50 flex items-center justify-center py-8",children:l.jsxs("div",{className:"text-center space-y-2 p-4",children:[l.jsx(uy,{className:"w-10 h-10 text-blue-900 mx-auto animate-pulse",strokeWidth:1.5}),l.jsx("p",{className:"text-xs text-muted-foreground",children:t("portfolio.visualizationLabel")})]})}):b?l.jsxs("svg",{viewBox:"0 0 1214 857",role:"img","aria-label":c.title,className:"block h-full w-full",preserveAspectRatio:"xMidYMid meet",children:[l.jsx("title",{children:c.title}),l.jsx("image",{href:c.imageSrc,width:"1214",height:"857",preserveAspectRatio:"xMidYMid slice"})]}):l.jsx(sa,{src:c.imageSrc,alt:c.title,className:`w-full h-full ${c.paragraphs?"object-contain max-h-[300px] py-4":y?"object-cover":"object-contain"}`})})})]})},c.id)})})}),l.jsx("section",{className:"py-12 md:py-14 bg-muted/30",children:l.jsxs("div",{className:"container mx-auto max-w-4xl px-4 text-center",children:[l.jsx("h2",{className:"text-3xl md:text-4xl mb-3",children:t("portfolio.cta.title")}),l.jsx("p",{className:"text-lg text-muted-foreground mb-6 leading-relaxed",children:t("portfolio.cta.description")}),l.jsxs(ja,{size:"lg",className:"text-base h-12 px-8 bg-blue-900 hover:bg-blue-800",children:[t("portfolio.cta.button"),l.jsx(rp,{className:"ml-2 w-4 h-4"})]})]})})]})}const Kj=[xd,Sy,Ay,ay];function Vj(){const{t:n,translations:t}=Oe(),s=t.story?.items||[];return l.jsx("section",{id:"story",className:"py-16 lg:py-20 border-b responsive-section",children:l.jsxs("div",{className:"container mx-auto max-w-7xl px-6 lg:px-8 responsive-section-inner",children:[l.jsxs("div",{className:"mb-8",children:[l.jsx("div",{className:"inline-block px-3 py-1.5 bg-blue-900/10 rounded border border-blue-900/20 mb-4",children:l.jsx("span",{className:"text-sm text-blue-900 font-medium uppercase tracking-wide",children:n("story.badge")})}),l.jsx("h2",{className:"text-3xl lg:text-4xl font-semibold",children:n("story.title")})]}),l.jsx("div",{className:"space-y-6",children:s.map((o,d)=>{const p=Kj[d]||xd;return l.jsxs("div",{className:"flex flex-col md:flex-row gap-4 md:gap-6 p-5",children:[l.jsxs("div",{className:"flex items-start gap-4 md:w-72 flex-shrink-0",children:[l.jsx("div",{className:"w-12 h-12 rounded-lg bg-blue-900/10 flex items-center justify-center flex-shrink-0",children:l.jsx(p,{className:"w-6 h-6 text-blue-900",strokeWidth:1.5})}),l.jsxs("div",{className:"md:hidden flex-1",children:[l.jsx("h3",{className:"text-lg font-semibold",children:o.title}),l.jsx("p",{className:"text-base text-blue-900/80",children:o.subtitle})]})]}),l.jsxs("div",{className:"flex-1 space-y-2",children:[l.jsxs("div",{className:"hidden md:block",children:[l.jsx("h3",{className:"text-lg font-semibold",children:o.title}),l.jsx("p",{className:"text-base text-blue-900/80",children:o.subtitle})]}),l.jsx("p",{className:"text-base leading-relaxed text-foreground
334/80",children:o.description})]})]},d)})})]})})}function Hl({className:n,type:t,...s}){return l.jsx("input",{type:t,"data-slot":"input",className:Ba("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border px-3 py-1 text-base bg-input-background transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",n),...s})}function Fj({className:n,...t}){return l.jsx("textarea",{"data-slot":"textarea",className:Ba("resize-none border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-input-background px-3 py-2 text-base transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",n),...t})}Tg();var Wj=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],qj=Wj.reduce((n,t)=>{const s=nu(`Primitive.${t}`),o=T.forwardRef((d,p)=>{const{asChild:c,...g}=d,h=c?s:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),l.jsx(h,{...g,ref:p})});return o.displayName=`Primitive.${t}`,{...n,[t]:o}},{}),Uj="Label",Kf=T.forwardRef((n,t)=>l.jsx(qj.label,{...n,ref:t,onMouseDown:s=>{s.target.closest("button, input, select, textarea")||(n.onMouseDown?.(s),!s.defaultPrevented&&s.detail>1&&s.preventDefault())}}));Kf.displayName=Uj;var _j=Kf;function cr({className:n,...t}){return l.jsx(_j,{"data-slot":"label",className:Ba("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",n),...t})}const Hj=!1,Cg="https://formspree.io/f/mqeenpoy";function $j(){const{t:n}=Oe(),t=!1,[s,o]=T.useState(!1),[d,p]=T.useState({name:"",email:"",subject:"",message:""}),[c,g]=T.useState(!1),[h,b]=T.useState(null),[f,y]=T.useState(null),[A,M]=T.useState(!1);T.useRef(null);const P=T.useRef(null),z="contact",C="contact-form",E=Hj,F=T.useCallback(()=>{},[f]);T.useEffect(()=>{if(s){const U=setTimeout(()=>{F()},100);return()=>clearTimeout(U)}},[s,F]),T.useEffect(()=>{const U=()=>{const W=window.location.hash;(W===`#${z}`||W===`#${C}`)&&(o(!0),requestAnimationFrame(()=>{const J=document.getElementById(C)||document.getElementById(z);J&&J.scrollIntoView({behavior:"smooth",block:"start"})}))};return U(),window.addEventListener("hashchange",U),()=>window.removeEventListener("hashchange",U)},[]),T.useEffect(()=>()=>{f&&window.turnstile&&window.turnstile.remove(f)},[f]);const K=async U=>{U.preventDefault(),g(!0);try{const W=P.current;if(!W)throw new Error("Form not found");const J=new FormData(W);J.append("_replyto",d.email);const de=await fetch(Cg,{method:"POST",headers:{Accept:"application/json"},body:J});if(de.ok)f&&window.turnstile&&window.turnstile.reset(f),b(null),window.location.href="/thank_you.html";else{const O=await de.text();let _="送信に失敗しました";try{const te=JSON.parse(O);_=te?.error||te?.message||te?.errors?.[0]?.message||_}catch{}throw new Error(_)}}catch(W){f&&window.turnstile&&window.turnstile.reset(f),b(null);const J=W instanceof Error?W.message:"送信に失敗しました";alert(`${J}
335もう一度お試しください。`)}finally{g(!1)}};return l.jsx("section",{id:z,className:"py-16 md:py-20 bg-muted/30 scroll-mt-24 responsive-section",children:l.jsx("div",{id:C,className:"container mx-auto max-w-4xl px-4 scroll-mt-24",children:l.jsx(wd,{className:"border-0 shadow-lg",children:l.jsxs(Yg,{className:"p-8 md:p-10",children:[l.jsxs("div",{className:"text-center",children:[l.jsx("h3",{className:"text-xl mb-4",children:n("contact.title")}),l.jsx("p",{className:"text-sm text-muted-foreground mb-6",children:n("contact.description")}),l.jsxs(ja,{size:"lg",className:"w-full",onClick:()=>o(!s),children:[s?l.jsx(gy,{className:"w-5 h-5 mr-2"}
335):l.jsx(my,{className:"w-5 h-5 mr-2"}),n(s?"contact.closeForm":"contact.openForm")]})]}),s&&l.jsxs("form",{ref:P,action:Cg,method:"POST",className:"mt-8 space-y-6",onSubmit:K,children:[l.jsx("input",{type:"text",name:"_gotcha",className:"hidden",tabIndex:-1,autoComplete:"off"}),l.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[l.jsxs("div",{className:"space-y-2",children:[l.jsxs(cr,{htmlFor:"name",className:"text-sm font-semibold text-foreground",children:[n("contact.form.name")," ",l.jsx("span",{className:"text-destructive",children:"*"})]}),l.jsx(Hl,{id:"name",name:"name",type:"text",value:d.name,onChange:U=>p({...d,name:U.target.value}),placeholder:n("contact.form.namePlaceholder"),className:"h-12 bg-background border-input",required:!0})]}),l.jsxs("div",{className:"space-y-2",children:[l.jsxs(cr,{htmlFor:"email",className:"text-sm font-semibold text-foreground",children:[n("contact.form.email")," ",l.jsx("span",{className:"text-destructive",children:"*"})]}),l.jsx(Hl,{id:"email",name:"email",type:"email",value:d.email,onChange:U=>p({...d,email:U.target.value}),placeholder:n("contact.form.emailPlaceholder"),className:"h-12 bg-background border-input",required:!0})]})]}),l.jsxs("div",{className:"space-y-2",children:[l.jsxs(cr,{htmlFor:"subject",className:"text-sm font-semibold text-foreground",children:[n("contact.form.subject")," ",l.jsx("span",{className:"text-destructive",children:"*"})]}),l.jsx(Hl,{id:"subject",name:"subject",type:"text",value:d.subject,onChange:U=>p({...d,subject:U.target.value}),placeholder:n("contact.form.subjectPlaceholder"),className:"h-12 bg-background border-input",required:!0})]}),l.jsxs("div",{className:"space-y-2",children:[l.jsxs(cr,{htmlFor:"message",className:"text-sm font-semibold text-foreground",children:[n("contact.form.message")," ",l.jsx("span",{className:"text-destructive",children:"*"})]}),l.jsx(Fj,{id:"message",name:"message",value:d.message,onChange:U=>p({...d,message:U.target.value}),placeholder:n("contact.form.messagePlaceholder"),className:"min-h-[150px] bg-background border-input",rows:6,required:!0})]}),E,l.jsx("div",{className:"pt-2",children:l.jsxs(ja,{type:"submit",size:"lg",className:"w-full h-12 text-base",disabled:c||E,children:[l.jsx(Gy,{className:"w-5 h-5 mr-2"}),n(c?"contact.form.submitting":"contact.form.submit")]})})]})]})})})})}const Qj="modulepreload",Jj=function(n){return"/"+n},Dg={},$l=function(t,s,o){let d=Promise.resolve();if(s&&s.length>0){let c=function(b){return Promise.all(b.map(f=>Promise.resolve(f).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};document.getElementsByTagName("link");const g=document.querySelector("meta[property=csp-nonce]"),h=g?.nonce||g?.getAttribute("nonce");d=c(s.map(b=>{if(b=Jj(b),b in Dg)return;Dg[b]=!0;const f=b.endsWith(".css"),y=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${b}"]${y}`))return;const A=document.createElement("link");if(A.rel=f?"stylesheet":Qj,f||(A.as="script"),A.crossOrigin="",A.href=b,h&&A.setAttribute("nonce",h),document.head.appendChild(A),f)return new Promise((M,P)=>{A.addEventListener("load",M),A.addEventListener("error",()=>P(new Error(`Unable to preload CSS for ${b}`)))})}))}function p(c){const g=new Event("vite:preloadError",{cancelable:!0});if(g.payload=c,window.dispatchEvent(g),!g.defaultPrevented)throw c}return d.then(c=>{for(const g of c||[])g.status==="rejected"&&p(g.reason);return t().catch(p)})},Zj=()=>{const n=Intl.DateTimeFormat().resolvedOptions().timeZone;return n.includes("Asia/Tokyo")||n.includes("Japan")?[138,36]:n.includes("Asia/Seoul")||n.includes("Korea")?[127,37]:n.includes("Asia/Shanghai")||n.includes("China")?[116,35]:n.includes("America/Ne
335w_York")||n.includes("America/Chicago")?[-95,40]:n.includes("America/Los_Angeles")?[-120,37]:n.includes("Europe")?[10,50]:n.includes("Asia/Singapore")||n.includes("Asia/Kuala_Lumpur")?[103,3]:[138,36]},Xj=new URL("/maptiler/",window.location.origin);function Yj(){const{t:n}=Oe(),t=T.useRef(null),[s,o]=T.useState(!0),[d,p]=T.useState("wind"),[c,g]=T.useState(null),[h,b]=T.useState(null),[f,y]=T.useState(!0),[A,M]=T.useState(0),P=T.useRef(!1),z=T.useRef(null),C=T.useRef({}),E=T.useRef(null),F=T.useRef(null),K=T.useRef(!0),U=1800,W=T.useCallback(_=>{console.log("[WeatherMap] Starting manual animation"),F.current&&clearInterval(F.current),typeof _.animateByFactor=="function"?(console.log("[WeatherMap] Using animateByFactor(0.5)"),_.animateByFactor(.5)):typeof _.animate=="function"?(console.log("[WeatherMap] Using animate(0.5)"),_.animate(.5)):console.warn("[WeatherMap] No animation method found on layer"),F.current=setInterval(()=>{if(!K.current){console.log("[WeatherMap] Animation paused");return}try{const te=_.getAnimationTime(),be=_.getAnimationEnd(),pe=_.getAnimationStart();let ke=te+U;ke>be&&(ke=pe,console.log("[WeatherMap] Animation looped back to start")),_.setAnimationTime(ke),z.current?.triggerRepaint&&z.current.triggerRepaint(),Date.now()%1e4<1e3&&console.log("[WeatherMap] Animation time:",ke,"Progress:",((ke-pe)/(be-pe)*100).toFixed(1)+"%");const Ie=_.getAnimationTimeDate(),me=_.getAnimationStartDate(),Le=_.getAnimationEndDate();if(me&&Le&&Ie){const se=Le.getTime()-me.getTime(),D=Ie.getTime()-me.getTime();M(D/se*100)}}catch(te){console.error("Animation step error:",te)}},1e3)},[]);T.useEffect(()=>P.current||!t.current?void 0:(P.current=!0,(async()=>{try{const te=await $l(()=>import("./maptiler-sdk-C0xmb5Ux.js"),__vite__mapDeps([0,1])),be=await $l(()=>import("./maptiler-weather-BhTpvdrl.js"),__vite__mapDeps([2,1]));await $l(()=>Promise.resolve({}),__vite__mapDeps([3])),te.config.apiKey="",te.config.telemetry=!1,te.config.session=!1,te.config.caching=!1;const pe=new URL("maps/satellite/style.json?proxy-style=2",Xj).toString(),ke=new te.Map({container:t.current,style:pe,center:Zj(),zoom:4,attributionControl:!1,navigationControl:!1,geolocateControl:!1,interactive:!1});z.current=ke;const Ie=setTimeout(()=>{console.log("Loading timeout - showing UI anyway"),o(!1)},5e3);ke.on("load",async()=>{console.log("Map loaded successfully"),clearTimeout(Ie),o(!1);try{const me=new be.WindLayer({opacity:.5}),Le=new be.TemperatureLayer({opacity:.5,colorramp:be.ColorRamp.builtin.TEMPERATURE}),se=new be.PrecipitationLayer({opacity:.5}),D=new be.RadarLayer({opacity:.5});C.current={wind:me,temperature:Le,precipitation:se,radar:D},ke.addLayer(me),E.current=me,console.log("Wind layer added");try{await me.onSourceReadyAsync(),console.log("Weather source ready (async)");const Q=me.getAnimationStartDate(),q=me.getAnimationEndDate();g(Q),b(q),console.log("Time range:",Q,"to",q),W(me)}catch(Q){console.error("Failed to initialize wind layer:",Q),me.on("sourceReady",()=>{console.log("Weather source ready (fallback event)");const q=me.getAnimationStartDate(),w=me.getAnimationEndDate();g(q),b(w),W(me)})}}catch(me){console.error("Error creating weather layers:",me)}}),ke.on("error",me=>{console.error("Map error:",me),clearTimeout(Ie),o(!1)})}catch(te){console.error("Error initializing map:",te),o(!1)}})(),()=>{F.current&&(clearInterval(F.current),F.current=null),z.current&&(z.current.remove(),z.current=null)}),[W]);const J=async _=>{if(!z.current)return;const te=z.current;F.current&&(clearInterval(F.current),F.current=null);const be=C.current[d];if(be)try{te.removeLayer(be.id)}catch{}const pe=C.current[_];if(pe){te.addLayer(pe),E.current=pe;try{await pe.onSourceReadyAsync(),console.log(`${_} layer source ready (async)`);const ke=pe.getAnimationStartDate(),Ie=pe.getAnimationEndDate();g(ke),b(Ie),W(pe)}catch(ke){console.error(`Failed to initialize ${_} layer:`,ke),pe.on("sourceReady",()=>{console.log(`${_} layer source ready (fallback event)`);const Ie=pe.getAnimationStartDate(),me=pe.getAnimationEndDate();g(Ie),b(me),W(pe)})}}p(_)};T.useCallback(()=>
335{if(!E.current)return;const _=!f;K.current=_,y(_)},[f]);const de=_=>{const te=_.getFullYear(),be=String(_.getMonth()+1).padStart(2,"0"),pe=String(_.getDate()).padStart(2,"0"),ke=String(_.getHours()).padStart(2,"0");return`${te}${be}${pe}/${ke}:30`},O=[{id:"wind",label:"Wind",icon:"💨"},{id:"precipitation",label:"Rain",icon:"🌧️"},{id:"radar",label:"Radar",icon:"📡"}];return l.jsxs("div",{className:"weather-map",children:[l.jsx("div",{ref:t,className:"weather-map-canvas"}),s&&l.jsxs("div",{className:"weather-map-loading",children:[l.jsx("div",{className:"weather-map-spinner"}),l.jsx("p",{className:"weather-map-loading-text",children:n("weatherMap.loading")})]}),!s&&l.jsx("div",{className:"weather-controls",children:O.map(_=>l.jsx("button",{onClick:()=>J(_.id),title:_.label,className:d===_.id?"weather-layer-btn is-active":"weather-layer-btn",children:_.icon},_.id))}),!s&&l.jsxs("div",{className:"weather-ai-modal",children:[l.jsx("h3",{className:"weather-ai-title",children:n("weatherMap.title")}),l.jsx("p",{className:"weather-ai-text",children:n("weatherMap.subtitle")}),l.jsx("p",{className:"weather-ai-text",children:n("weatherMap.description1")}),l.jsx("p",{className:"weather-ai-text",children:n("weatherMap.description2")}),l.jsx("p",{className:"weather-ai-text weather-ai-text-last",children:n("weatherMap.description3")}),l.jsx("button",{className:"weather-refresh-btn",onClick:()=>window.location.reload(),children:n("weatherMap.refresh")})]}),!s&&l.jsxs("div",{className:"weather-timeline",children:[l.jsxs("div",{className:"weather-timeline-row",children:[l.jsx("progress",{className:"weather-progress",value:Math.max(0,Math.min(100,A)),max:100}),l.jsxs("div",{className:"weather-live",children:[l.jsx("span",{className:"weather-live-dot"}),"Live"]})]}),l.jsxs("div",{className:"weather-time-labels",children:[l.jsx("span",{children:de(new Date(Date.now()-2880*60*1e3))}),l.jsx("span",{className:"weather-time-now",children:de(new Date)}),l.jsx("span",{children:de(new Date(Date.now()+2880*60*1e3))})]})]})]})}function eC(){return l.jsx("section",{className:"border-b",children:l.jsx(Yj,{})})}var aC=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],nC=aC.reduce((n,t)=>{const s=nu(`Primitive.${t}`),o=T.forwardRef((d,p)=>{const{asChild:c,...g}=d,h=c?s:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),l.jsx(h,{...g,ref:p})});return o.displayName=`Primitive.${t}`,{...n,[t]:o}},{}),tC="Separator",zg="horizontal",iC=["horizontal","vertical"],Vf=T.forwardRef((n,t)=>{const{decorative:s,orientation:o=zg,...d}=n,p=sC(o)?o:zg,g=s?{role:"none"}:{"aria-orientation":p==="vertical"?p:void 0,role:"separator"};return l.jsx(nC.div,{"data-orientation":p,...g,...d,ref:t})});Vf.displayName=tC;function sC(n){return iC.includes(n)}var rC=Vf;function oC({className:n,orientation:t="horizontal",decorative:s=!0,...o}){return l.jsx(rC,{"data-slot":"separator-root",decorative:s,orientation:t,className:Ba("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",n),...o})}function Ua({onNavigate:n}){const{language:t,t:s}=Oe(),o=on(t,"about"),d=(h,b)=>{n&&(h.preventDefault(),n(b))},p=h=>{n&&(h.preventDefault(),n("privacy"))},c=h=>{n&&(h.preventDefault(),n("terms"))},g=h=>{n&&(h.preventDefault(),n("cookies"))};return l.jsx("footer",{className:"bg-[#0b1b3a] !bg-[#0b1b3a] text-white responsive-footer footer-bg",children:l.jsxs("div",{className:"container mx-auto max-w-6xl px-4 py-16 responsive-footer-inner",children:[l.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-8 responsive-footer-grid",children:[l.jsxs("div",{className:"space-y-4",children:[l.jsxs("div",{className:"flex items-center",children:[l.jsx("span",{className:"text-[22px] sm:text-2xl font-bold brand-accent",children:"( ;"}),l.jsx("span",{className:"text-2xl font-bold brand-underscore",children:"_"}),l.jsx("span",{className:"text-2xl font-bold text-white",children:s("footer.brand")})]}),l.jsx("div",{className:"text-sm text-white/80",children:s("footer.tagline")}),l.jsx("p",{className:"text-white/80",children:s("footer.description")})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h3",{children:s("footer.sections.product.title")}),l.jsxs("div",{className:"space-y-2 text-white/80",children:[l.jsx("div",{children:l.jsx("a",{href:"#features",className:"hover:text-white transition-colors",children:s("footer.sections.product.features")})}),l.jsx("div",{children:l.jsx("a",{href:"#benefits",className:"hover:text-white transition-colors",children:s("footer.sections.product.benefits")})}),l.jsx("div",{children:l.jsx("a",{href:"#testimonials",className:"hover:text-white transition-colors",children:s("footer.sections.product.testimonials")})})]})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h3",{children:s("footer.sections.services.title")}),l.jsxs("div",{className:"space-y-2 text-white/80",children:[l.jsx("div",{children:l.jsx("a",{href:"#agent-development",className:"hover:text-white transition-colors",onClick:h=>d(h,"agent-development"),children:s("footer.sections.services.agentDev")})}),l.jsx("div",{children:l.jsx("a",{href:"#on-premise-llm",className:"hover:text-white transition-colors",onClick:h=>d(h,"on-premise-llm"),children:s("footer.sections.services.onPremise")})}),l.jsx("div",{children:l.jsx("a",{href:"#vector-rag",className:"hover:text-white transition-colors",onClick:h=>d(h,"vector-rag"),children:s("footer.sections.services.vectorRag")})}),l.jsx("div",{children:l.jsx("a",{href:"#ai-app-development",className:"hover:text-white transition-colors",onClick:h=>d(h,"ai-app-development"),children:s("footer.sections.services.aiApp")})})]})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h3",{children:l.jsx("a",{href:o,className:"hover:text-white transition-colors",onClick:h=>d(h,"about"),children:s("footer.sections.company.title")})}),l.jsxs("div",{className:"space-y-2 text-white/80",children:[l.jsx("div",{children:l.jsx("a",{href:o,className:"hover:text-white transition-colors",onClick:h=>d(h,"about"),children:s("footer.sections.company.about")})}),l.jsx("div",{children:l.jsx("a",{href:o,className:"hover:text-white transition-colors",onClick:h=>d(h,"about"),children:s("footer.sections.company.profile")})}),l.jsx("div",{children:l.jsx("a",{href:"#",className:"hover:text-white transition-colors",children:s("footer.sections.company.contact")})})]})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h3",{children:s("footer.sections.process.title")}),l.jsxs("div",{className:"space-y-2 text-white/80",children:[l.jsx("div",{children:l.jsx("a",{href:"#",className:"hover:text-white transition-colors",children:s("footer.sections.process.hearing")})}),l.jsx("div",{children:l.jsx("a",{href:"#",className:"hover:text-white transition-colors",children:s("footer.sections.process.planning")})}),l.jsx("div",{children:l.jsx("a",{href:"#",className:"hover:text-white transition-colors",children:s("footer.sections.process.sampling")})}),l.jsx("div",{children:l.jsx("a",{href:"#",className:"hover:text-white transition-colors",children:s("footer.sections.process.development")})})]})]})]}
335),l.jsx(oC,{className:"my-8 bg-primary-foreground/20"}),l.jsxs("div",{className:"flex flex-col md:flex-row justify-between items-center space-y-4 md:space-y-0",children:[l.jsx("div",{className:"text-white/80 text-sm",children:s("footer.copyright")}),l.jsxs("div",{className:"flex space-x-6 text-sm text-white/80",children:[l.jsx("a",{href:on(t,"privacy"),className:"hover:text-white transition-colors",onClick:p,children:s("footer.legal.privacy")}),l.jsx("a",{href:on(t,"terms"),className:"hover:text-white transition-colors",onClick:c,children:s("footer.legal.terms")}),l.jsx("a",{href:on(t,"cookies"),className:"hover:text-white transition-colors",onClick:g,children:s("footer.legal.cookies")})]})]})]})})}function rn({children:n,onBack:t,onNavigate:s}){return l.jsxs("div",{className:"min-h-screen bg-background",children:[l.jsx(Og,{onNavigate:s}),l.jsx("main",{children:n})]})}function lC(){const{t:n}=Oe(),t=[{title:n("about.studios.tokyo.title"),description:n("about.studios.tokyo.address")}];return l.jsxs("div",{className:"min-h-screen bg-background",children:[l.jsxs("section",{className:"relative py-16 md:py-20 bg-gradient-to-br from-blue-900 to-blue-800 text-white overflow-hidden",children:[l.jsx("div",{className:"absolute inset-0 z-0",children:l.jsx(sa,{src:"/images/about-cover.jpg",alt:"About Us Background",className:"w-full h-full object-cover opacity-20"})}),l.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-blue-900/80 to-blue-800/80 z-0"}),l.jsxs("div",{className:"container mx-auto max-w-6xl px-4 text-center relative z-10",children:[l.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold mb-4",children:n("about.hero.title")}),l.jsx("p",{className:"text-lg md:text-xl text-white/90 max-w-3xl mx-auto",children:n("about.hero.subtitle")})]})]}),l.jsx("section",{className:"relative py-20 lg:py-32 overflow-hidden",children:l.jsx("div",{className:"container mx-auto max-w-6xl px-4",children:l.jsxs("div",{className:"grid lg:grid-cols-2 gap-12 items-center",children:[l.jsxs("div",{className:"space-y-6",children:[l.jsx("h2",{className:"text-3xl md:text-4xl",children:n("about.story.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("about.story.content")})]}),l.jsx("div",{className:"relative",children:l.jsx("div",{className:"aspect-[4/3] rounded-lg overflow-hidden shadow-2xl",children:l.jsx(sa,{src:"/images/optimized/professional-office.webp",alt:"telet.ai Team",className:"w-full h-full object-cover"})})})]})})}),l.jsx("section",{className:"py-20 bg-muted/30",children:l.jsx("div",{className:"container mx-auto max-w-4xl px-4",children:l.jsxs("div",{className:"space-y-8",children:[l.jsxs("div",{className:"text-center space-y-3",children:[l.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl",children:n("about.representative.title")}),l.jsx("p",{className:"text-xl md:text-2xl text-primary font-semibold",children:n("about.representative.name")}),l.jsx("p",{className:"text-lg text-muted-foreground",children:n("about.representative.tagline")})]}),l.jsx("div",{className:"bg-background rounded-lg p-8 md:p-10 shadow-sm border border-border/50 space-y-6",children:n("about.representative.paragraphs").map((s,o)=>l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:s},o))})]})})}),l.jsx("section",{className:"py-20",children:l.jsxs("div",{className:"container mx-auto max-w-6xl px-4",children:[l.jsxs("div",{className:"text-center space-y-4 mb-16",children:[l.jsx("h2",{className:"text-3xl md:text-4xl lg:text-5xl",children:n("about.contact.title")}),l.jsxs("div",{className:"space-y-2",children:[l.jsx("p",{className:"text-xl md:text-2xl font-semibold text-primary",children:n("about.contact.company")}),l.jsx("p",{className:"text-lg text-muted-foreground",children:n("about.contact.ceo")})]})]}),l.jsx("div",{className:"max-w-2xl mx-auto",children:t.map((s,o)=>l.jsx(wd,{className:"p-8",children:l.jsx("div",{className:"space-y-4",children:l.jsxs("div",{children:[l.jsx("h3",{className:"text-2xl mb-3",children:s.title}),l.jsx("p",{className:"text-muted-foreground leading-relaxed",children:s.description})]})})},o))}),l.jsx("div",{className:"text-center mt-12",children:l.jsxs("button",{className:"inline-flex items-center gap-2 px-10 py-4 bg-blue-900 text-white rounded-lg hover:bg-blue-800 transition-colors text-lg",children:[l.jsx(jy,{className:"w-5 h-5"}),n("about.contact.button")]})})]})})]})}function dC(){const{t:n}=Oe();return l.jsxs("div",{className:"min-h-screen bg-background",children:[l.jsxs("section",{className:"relative py-16 md:py-20 bg-gradient-to-br from-blue-900 to-blue-800 text-white overflow-hidden",children:[l.jsx("div",{className:"absolute inset-0 z-0",children:l.jsx(sa,{src:"/images/optimized/legal-document.webp",alt:"Privacy Policy Backgroun
335d",className:"w-full h-full object-cover opacity-20",lazy:!1})}),l.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-blue-900/80 to-blue-800/80 z-0"}),l.jsxs("div",{className:"container mx-auto max-w-6xl px-4 text-center relative z-10",children:[l.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold mb-4",children:n("privacyPolicy.title")}),l.jsx("p",{className:"text-lg md:text-xl text-white/90 max-w-3xl mx-auto",children:n("privacyPolicy.subtitle")})]})]}),l.jsx("section",{className:"py-20 lg:py-32",children:l.jsx("div",{className:"container mx-auto max-w-4xl px-4",children:l.jsxs("div",{className:"bg-background rounded-lg p-8 md:p-12 space-y-8",children:[l.jsx("div",{className:"text-center pb-6 border-b border-border",children:l.jsx("p",{className:"text-sm text-muted-foreground",children:n("privacyPolicy.lastUpdated")})}),l.jsx("div",{className:"space-y-4",children:l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("privacyPolicy.intro")})}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("privacyPolicy.sections.collection.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("privacyPolicy.sections.collection.description")}),l.jsx("ul",{className:"list-disc list-inside space-y-2 text-base text-muted-foreground leading-relaxed ml-4",children:n("privacyPolicy.sections.collection.items").map((t,s)=>l.jsx("li",{children:t},s))})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("privacyPolicy.sections.purpose.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("privacyPolicy.sections.purpose.description")}),l.jsx("ul",{className:"list-disc list-inside space-y-2 text-base text-muted-foreground leading-relaxed ml-4",children:n("privacyPolicy.sections.purpose.items").map((t,s)=>l.jsx("li",{children:t},s))})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("privacyPolicy.sections.thirdParty.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("privacyPolicy.sections.thirdParty.description")}),l.jsx("ul",{className:"list-disc list-inside space-y-2 text-base text-muted-foreground leading-relaxed ml-4",children:n("privacyPolicy.sections.thirdParty.items").map((t,s)=>l.jsx("li",{children:t},s))})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("privacyPolicy.sections.security.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("privacyPolicy.sections.security.description")})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("privacyPolicy.sections.email.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("privacyPolicy.sections.email.description")}),l.jsx("ul",{className:"list-disc list-inside space-y-2 text-base text-muted-foreground leading-relaxed ml-4",children:n("privacyPolicy.sections.email.items").map((t,s)=>l.jsx("li",{children:t},s))})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("privacyPolicy.sections.cookies.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("privacyPolicy.sections.cookies.description")})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("privacyPolicy.sections.external.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("privacyPolicy.sections.external.description")}),l.jsx("ul",{className:"list-disc list-inside space-y-2 text-base text-muted-foreground leading-relaxed ml-4",children:n("privacyPolicy.sections.external.items").map((t,s)=>l.jsx("li",{children:t},s))})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("privacyPolicy.sections.changes.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("privacyPolicy.sections.changes.description")})]}),l.jsxs("div",{className:"space-y-4 pt-6 border-t border-border",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("privacyPolicy.sections.contact.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("privacyPolicy.sections.contact.description")}),l.jsxs("div",{className:"bg-muted/30 rounded-lg p-6 space-y-3",children:[l.jsx("p",{className:"text-lg font-semibold",children:n("privacyPolicy.sections.contact.company")}),l.jsx("a",{href:"#contact-form",className:"inline-flex items-center gap-2 text-primary hover:underline",children:n("privacyPolicy.sections.contact.contactLink")})]})]})]})})})]})}function uC(){const{t:n}=Oe();return l.jsxs("div",{className:"min-h-screen bg-background",children:[l.jsxs("section",{className:"relative py-16 md:py-20 bg-gradient-to-br from-blue-900 to-blue-800 text-white overflow-hidden",children:[l.jsx("div",{className:"absolute inset-0 z-0",children:l.jsx(sa,{src:"/images/optimized/legal-document.webp",alt:"Terms of Service Backgroun
335d",className:"w-full h-full object-cover opacity-20",lazy:!1})}),l.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-blue-900/80 to-blue-800/80 z-0"}),l.jsxs("div",{className:"container mx-auto max-w-6xl px-4 text-center relative z-10",children:[l.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold mb-4",children:n("termsOfService.title")}),l.jsx("p",{className:"text-lg md:text-xl text-white/90 max-w-3xl mx-auto",children:n("termsOfService.subtitle")})]})]}),l.jsx("section",{className:"py-20 lg:py-32",children:l.jsx("div",{className:"container mx-auto max-w-4xl px-4",children:l.jsxs("div",{className:"bg-background rounded-lg p-8 md:p-12 space-y-8",children:[l.jsx("div",{className:"text-center pb-6 border-b border-border",children:l.jsx("p",{className:"text-sm text-muted-foreground",children:n("termsOfService.lastUpdated")})}),l.jsx("div",{className:"space-y-4",children:l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("termsOfService.intro")})}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("termsOfService.sections.scope.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("termsOfService.sections.scope.description")})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("termsOfService.sections.prohibited.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("termsOfService.sections.prohibited.description")}),l.jsx("ul",{className:"list-disc list-inside space-y-2 text-base text-muted-foreground leading-relaxed ml-4",children:n("termsOfService.sections.prohibited.items").map((t,s)=>l.jsx("li",{children:t},s))})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("termsOfService.sections.disclaimer.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("termsOfService.sections.disclaimer.description")}),l.jsx("ul",{className:"list-disc list-inside space-y-2 text-base text-muted-foreground leading-relaxed ml-4",children:n("termsOfService.sections.disclaimer.items").map((t,s)=>l.jsx("li",{children:t},s))})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("termsOfService.sections.ip.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("termsOfService.sections.ip.description")})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("termsOfService.sections.links.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("termsOfService.sections.links.description")})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("termsOfService.sections.changes.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("termsOfService.sections.changes.description")})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("termsOfService.sections.governingLaw.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("termsOfService.sections.governingLaw.description")})]}),l.jsxs("div",{className:"space-y-4 pt-6 border-t border-border",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("termsOfService.sections.contact.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("termsOfService.sections.contact.description")}),l.jsxs("div",{className:"bg-muted/30 rounded-lg p-6 space-y-3",children:[l.jsx("p",{className:"text-lg font-semibold",children:n("termsOfService.sections.contact.company")}),l.jsx("a",{href:"#contact-form",className:"inline-flex items-center gap-2 text-primary hover:underline",children:n("termsOfService.sections.contact.contactLink")})]})]})]})})})]})}function cC(){const{t:n}=Oe();return l.jsxs("div",{className:"min-h-screen bg-background",children:[l.jsxs("section",{className:"relative py-16 md:py-20 bg-gradient-to-br from-blue-900 to-blue-800 text-white overflow-hidden",children:[l.jsx("div",{className:"absolute inset-0 z-0",children:l.jsx(sa,{src:"/images/optimized/legal-document.webp",alt:"Cookie Policy Backgroun
335d",className:"w-full h-full object-cover opacity-20",lazy:!1})}),l.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-blue-900/80 to-blue-800/80 z-0"}),l.jsxs("div",{className:"container mx-auto max-w-6xl px-4 text-center relative z-10",children:[l.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold mb-4",children:n("cookiePolicy.title")}),l.jsx("p",{className:"text-lg md:text-xl text-white/90 max-w-3xl mx-auto",children:n("cookiePolicy.subtitle")})]})]}),l.jsx("section",{className:"py-20 lg:py-32",children:l.jsx("div",{className:"container mx-auto max-w-4xl px-4",children:l.jsxs("div",{className:"bg-background rounded-lg p-8 md:p-12 space-y-8",children:[l.jsx("div",{className:"text-center pb-6 border-b border-border",children:l.jsx("p",{className:"text-sm text-muted-foreground",children:n("cookiePolicy.lastUpdated")})}),l.jsx("div",{className:"space-y-4",children:l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("cookiePolicy.intro")})}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("cookiePolicy.sections.what.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("cookiePolicy.sections.what.de
335scription")})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("cookiePolicy.sections.howWeUse.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("cookiePolicy.sections.howWeUse.description")}),l.jsx("ul",{className:"list-disc list-inside space-y-2 text-base text-muted-foreground leading-relaxed ml-4",children:n("cookiePolicy.sections.howWeUse.items").map((t,s)=>l.jsx("li",{children:t},s))})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("cookiePolicy.sections.googleAnalytics.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("cookiePolicy.sections.googleAnalytics.description")}),l.jsx("ul",{className:"list-disc list-inside space-y-2 text-base text-muted-foreground leading-relaxed ml-4",children:n("cookiePolicy.sections.googleAnalytics.items").map((t,s)=>l.jsx("li",{children:t},s))})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("cookiePolicy.sections.cloudflare.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("cookiePolicy.sections.cloudflare.description")}),l.jsx("ul",{className:"list-disc list-inside space-y-2 text-base text-muted-foreground leading-relaxed ml-4",children:n("cookiePolicy.sections.cloudflare.items").map((t,s)=>l.jsx("li",{children:t},s))})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("cookiePolicy.sections.noSpecialCookies.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("cookiePolicy.sections.noSpecialCookies.description")})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("cookiePolicy.sections.choices.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("cookiePolicy.sections.choices.description")}),l.jsx("ul",{className:"list-disc list-inside space-y-2 text-base text-muted-foreground leading-relaxed ml-4",children:n("cookiePolicy.sections.choices.items").map((t,s)=>l.jsx("li",{children:t},s))})]}),l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("cookiePolicy.sections.changes.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("cookiePolicy.sections.changes.description")})]}),l.jsxs("div",{className:"space-y-4 pt-6 border-t border-border",children:[l.jsx("h2",{className:"text-2xl md:text-3xl",children:n("cookiePolicy.sections.contact.title")}),l.jsx("p",{className:"text-base text-muted-foreground leading-relaxed",children:n("cookiePolicy.sections.contact.description")}),l.jsxs("div",{className:"bg-muted/30 rounded-lg p-6 space-y-3",children:[l.jsx("p",{className:"text-lg font-semibold",children:n("cookiePolicy.sections.contact.company")}),l.jsx("a",{href:"#contact-form",className:"inline-flex items-center gap-2 text-primary hover:underline",children:n("cookiePolicy.sections.contact.contactLink")})]})]})]})})})]})}function _a({title:n="telet.ai - AI-Powered Solutions Platform",description:t="Transform your customer conversations with AI-powered call analytics. Get real-time insights, sentiment analysis, and performance tracking to improve your team's results.",image:s="https://telet.ai/images/ogp-telet-ai.jpg",url:o="https://telet.ai",jsonLd:d=null}){const{language:p}=Oe(),c=g=>{switch(g){case"ja":return"ja_JP";case"en":return"en_US";case"zh":return"zh_CN";case"ko":return"ko_KR";case"th":return"th_TH";case"ms":return"ms_MY";case"id":return"id_ID";case"pt":return"pt_PT";case"es":return"es_ES";case"de":return"de_DE";default:return"en_US"}};return T.useEffect(()=>{const g=Bi(new URL(window.location.href)),h=Ml(p,g.page,g.project);document.title=n;const b=["og:title","og:description","og:image","og:url","og:locale","og:type","twitter:card","twitter:title","twitter:description","twitter:image","description"];b.forEach(C=>{const E=document.querySelector(`meta[property="${C}"]`)||document.querySelector(`meta[name="${C}"]`);E&&E.remove()}),[{name:"description",content:t},{property:"og:title",content:n},{property:"og:description",content:t},{property:"og:image",content:s},{property:"og:url",content:h},{property:"og:locale",content:c(p)},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:title",content:n},{name:"twitter:description",content:t},{name:"twitter:image",content:s}
335].forEach(({name:C,property:E,content:F})=>{const K=document.createElement("meta");C&&K.setAttribute("name",C),E&&K.setAttribute("property",E),K.setAttribute("content",F),document.head.appendChild(K)});let y=document.querySelector('link[rel="canonical"]');y||(y=document.createElement("link"),y.setAttribute("rel","canonical"),document.head.appendChild(y)),y.setAttribute("href",h),document.querySelectorAll('link[rel="alternate"][hreflang]').forEach(C=>C.remove()),Object.keys(Jl).forEach(C=>{const E=document.createElement("link");E.setAttribute("rel","alternate"),E.setAttribute("hreflang",C),E.setAttribute("href",Ml(C,g.page,g.project)),document.head.appendChild(E)});const A=document.createElement("link");A.setAttribute("rel","alternate"),A.setAttribute("hreflang","x-default"),A.setAttribute("href",Ml("ja",g.page,g.project)),document.head.appendChild(A);const M="telet-jsonld",P=g.page==="portfolio"?Array.from(document.querySelectorAll('script[type="application/ld+json"]:not([id])')):[];P.forEach(C=>C.remove());const z=document.getElementById(M);if(z&&z.remove(),d){const C=document.createElement("script");C.id=M,C.type="application/ld+json",C.textContent=JSON.stringify(d),document.head.appendChild(C)}return()=>{P.forEach(C=>document.head.appendChild(C)),b.forEach(C=>{const E=document.querySelector(`meta[property="${C}"]`)||document.querySelector(`meta[name="${C}"]`);E&&E.remove()})}},[n,t,s,o,d,p]),null}function mC({onContactClick:n}){const{t}=Oe(),s=t("agentDevelopment.hero.badges"),o=t("agentDevelopment.summary.paragraphs"),d=t("agentDevelopment.features.items"),p=t("agentDevelopment.techStack.categories");return l.jsxs("div",{children:[l.jsx("section",{className:"relative bg-background",children:l.jsxs("div",{className:"relative h-[350px] md:h-[420px] overflow-hidden",children:[l.jsx(sa,{src:"https://plus.unsplash.com/premium_photo-1764691397085-d3b3ccf3e33a?q=80&w=1332&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",alt:"AI Infrastructure",className:"w-full h-full object-cover"}),l.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-blue-900/50 via-blue-900/30 to-transparent"}),l.jsx("div",{className:"absolute inset-0 flex items-center",children:l.jsx("div",{className:"container mx-auto max-w-6xl px-4",children:l.jsxs("div",{className:"max-w-2xl space-y-4 text-white",children:[l.jsx("div",{className:"flex gap-2 flex-wrap",children:s.map((c,g)=>l.jsx(Qi,{variant:"secondary",className:"bg-white/20 text-white border-0",children:c},g))}),l.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold leading-tight",children:t("agentDevelopment.hero.title")}),l.jsx("p",{className:"text-lg md:text-xl text-white/90",children:t("agentDevelopment.hero.description")})]})})})]})}),l.jsx("section",{className:"py-12 md:py-14 bg-white",children:l.jsx("div",{className:"container mx-auto max-w-6xl px-4",children:l.jsxs("div",{className:"grid lg:grid-cols-10 gap-10 items-center",children:[l.jsxs("div",{className:"space-y-4 lg:col-span-7",children:[l.jsx("h2",{className:"text-3xl md:text-4xl",children:t("agentDevelopment.mission.title")}),l.jsx("div",{className:"space-y-3 text-muted-foreground leading-relaxed",children:l.jsx("p",{children:t("agentDevelopment.mission.description")})})]}),l.jsx("div",{className:"rounded-lg overflow-hidden lg:col-span-3",children:l.jsx(sa,{src:"/images/agent-dev-service.jpg",alt:t("agentDevelopment.mission.imageAlt"),className:"w-full h-full object-cover"})})]})})}),l.jsx("section",{className:"py-12 md:py-14 bg-white",children:l.jsx("div",{className:"container mx-auto max-w-6xl px-4",children:l.jsxs("div",{className:"space-y-4",children:[l.jsx("div",{className:"flex flex-col md:flex-row md:items-start md:gap-6",children:l.jsx("h2",{className:"text-3xl md:text-4xl md:whitespace-nowrap",children:t("agentDevelopment.summary.title")})}),l.jsx("div",{className:"space-y-3 text-muted-foreground leading-relaxed",children:o.map((c,g)=>l.jsx("p",{children:c},g))})]})})}),l.jsx("section",{className:"py-12 md:py-14 bg-muted/30",children:l.jsxs("div",{className:"container mx-auto max-w-6xl px-4",children:[l.jsxs("div",{className:"text-center mb-8",children:[l.jsx("h2",{className:"text-3xl md:text-4xl mb-2",children:t("agentDevelopment.features.title")}),l.jsx("p",{className:"text-muted-foreground",children:t("agentDevelopment.features.subtitle")})]}),l.jsx("div",{className:"grid md:grid-cols-2 gap-6",children:d.map((c,g)=>{const h=[Gt,Ly,Ng,Tn],b=h[g%h.length];return l.jsx("div",{className:"bg-white p-6 rounded-lg space-y-2",children:l.jsxs("div",{className:"flex items-start gap-3",children:[l.jsx("div",{className:"w-10 h-10 rounded bg-blue-900/5 flex items-center justify-center flex-shrink-0 mt-1",children:l.jsx(b,{className:"w-5 h-5 text-blue-900",strokeWidth:1.5})}),l.jsxs("div",{className:"flex-1",children:[l.jsx("h3",{className:"font-semibold mb-2",children:c.title}),l.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:c.description})]})]})},g)})})]})}),l.jsx("section",{className:"py-12 md:py-14 bg-muted/30",children:l.jsxs("div",{className:"container mx-auto max-w-6xl px-4",children:[l.jsxs("div",{className:"text-center mb-8",children:[l.jsx("h2",{className:"text-3xl md:text-4xl mb-2",children:t("agentDevelopment.techStack.title")}),l.jsx("p",{className:"text-muted-foreground",children:t("agentDevelopment.techStack.subtitle")})]}),l.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-8 mb-8",children:Object.entries(p).map(([c,g])=>l.jsxs("div",{children:[l.jsx("h3",{className:"mb-3 text-sm text-muted-foreground uppercase tracking-wide",children:g.title}),l.jsx("ul",{className:"space-y-1.5 text-sm",children:g.items.map((h,b)=>l.jsxs("li",{children:["• ",h]},b))})]},c))}),l.jsxs("div",{className:"bg-white p-6 rounded-lg",children:[l.jsx("h3",{className:"font-semibold mb-3",children:t("agentDevelopment.techStack.updateNote.title")}),l.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:t("agentDevelopment.techStack.updateNote.description")})]})]})}),l.jsx("section",{className:"py-12 md:py-14 bg-white",children:l.jsxs("div",{className:"container mx-auto max-w-4xl px-4 text-center",children:[l.jsx("h2",{className:"text-3xl md:text-4xl mb-3",children:t("agentDevelopment.cta.title")}),l.jsx("p",{className:"text-lg text-muted-foreground mb-6 leading-relaxed whitespace-pre-line",children:t("agentDevelopment.cta.description")}),l.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[l.jsxs(ja,{size:"lg",className:"text-base h-12 px-8 bg-blue-900 hover:bg-blue-800",onClick:n,children:[t("agentDevelopment.cta.primaryButton"),l.jsx(wr,{className:"ml-2 w-4 h-4"})]}),l.jsx(ja,{size:"lg",variant:"outline",className:"text-base h-12 px-8 border-blue-900 text-blue-900 hover:bg-blue-900/5",onClick:n,children:t("agentDevelopment.cta.secondaryButton")})]})]})})]})}function pC({onContactClick:n}){const{t}=Oe(),s=t("onPremiseLLM.hero.badges"),o=t("onPremiseLLM.mission.paragraphs"),d=t("onPremiseLLM.summary.paragraphs"),p=t("onPremiseLLM.summary.icons"),c=t("onPremiseLLM.features.items"),g=t("onPremiseLLM.techStack.categories"),h=[tt,Gt,Nt,Tn];return l.jsxs("div",{children:[l.jsx("section",{className:"relative bg-background",children:l.jsxs("div",{className:"relative h-[350px] md:h-[420px] overflow-hidden",children:[l.jsx(sa,{src:"/images/optimized/onpremise-llm-hero.webp",alt:"On-Premise LLM Server",className:"w-full h-full object-cover",lazy:!1}),l.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-blue-900/50 via-blue-900/30 to-transparent"}),l.jsx("div",{className:"absolute inset-0 flex items-center",children:l.jsx("div",{className:"container mx-auto max-w-6xl px-4",children:l.jsxs("div",{className:"max-w-2xl space-y-4 text-white",children:[l.jsx("div",{className:"flex gap-2 flex-wrap",children:s.map((b,f)=>l.jsx(Qi,{variant:"secondary",className:"bg-white/20 text-white border-0",children:b},f))}),l.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold leading-tight",children:t("onPremiseLLM.hero.title")}),l.jsx("p",{className:"text-lg md:text-xl text-white/90",children:t("onPremiseLLM.hero.description")})]})})})]})}),l.jsx("section",{className:"py-12 md:py-14 bg-white",children:l.jsx("div",{className:"container mx-auto max-w-6xl px-4",children:l.jsxs("div",{className:"grid lg:grid-cols-10 gap-10 items-center",children:[l.jsxs("div",{className:"space-y-4 lg:col-span-7",children:[l.jsx("h2",{className:"text-3xl md:text-4xl",children:t("onPremiseLLM.mission.title")}),l.jsx("div",{className:"space-y-3 text-muted-foreground leading-relaxed",children:o.map((b,f)=>l.jsx("p",{children:b},f))})]}),l.jsx("div",{className:"rounded-lg overflow-hidden lg:col-span-3",children:l.jsx(sa,{src:"/images/onpremise-llm-cover.jpg",alt:t("onPremiseLLM.mission.title"),className:"w-full h-full object-cover"})})]})})}),l.jsx("section",{className:"py-12 md:py-14 bg-white",children:l.jsx("div",{className:"container mx-auto max-w-6xl px-4",children:l.jsxs("div",{className:"grid lg:grid-cols-2 gap-10 items-center",children:[l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-3xl md:text-4xl",children:t("onPremiseLLM.summary.title")}),l.jsx("div",{className:"space-y-3 text-muted-foreground leading-relaxed",children:d.map((b,f)=>l.jsx("p",{children:b},f))})]}),l.jsx("div",{className:"flex items-center justify-center",children:l.jsx("div",{className:"grid grid-cols-2 gap-4",children:p.map((b,f)=>{const y=h[f%h.length],A=b.label.split(`
336`);return l.jsxs("div",{className:"flex flex-col items-center justify-center p-6 bg-muted/30 rounded-lg",children:[l.jsx(y,{className:"w-12 h-12 text-blue-900 mb-2",strokeWidth:1.5}),l.jsx("span",{className:"text-sm text-center text-muted-foreground",children:A.map((M,P)=>l.jsxs("span",{children:[M,P<A.length-1&&l.jsx("br",{})]},P))})]},f)})})})]})})}),l.jsx("section",{className:"py-12 md:py-14 bg-muted/30",children:l.jsxs("div",{className:"container mx-auto max-w-6xl px-4",children:[l.jsxs("div",{className:"text-center mb-8",children:[l.jsx("h2",{className:"text-3xl md:text-4xl mb-2",children:t("onPremiseLLM.features.title")}),l.jsx("p",{className:"text-muted-foreground",children:t("onPremiseLLM.features.subtitle")})]}),l.jsx("div",{className:"grid md:grid-cols-2 gap-6",children:c.map((b,f)=>
336{const y=[Tn,Gt,Ng,tt],A=y[f%y.length];return l.jsx("div",{className:"bg-white p-6 rounded-lg space-y-2",children:l.jsxs("div",{className:"flex items-start gap-3",children:[l.jsx("div",{className:"w-10 h-10 rounded bg-blue-900/5 flex items-center justify-center flex-shrink-0 mt-1",children:l.jsx(A,{className:"w-5 h-5 text-blue-900",strokeWidth:1.5})}),l.jsxs("div",{className:"flex-1",children:[l.jsx("h3",{className:"font-semibold mb-2",children:b.title}),l.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:b.description})]})]})},f)})})]})}),l.jsx("section",{className:"py-12 md:py-14 bg-muted/30",children:l.jsxs("div",{className:"container mx-auto max-w-6xl px-4",children:[l.jsxs("div",{className:"text-center mb-8",children:[l.jsx("h2",{className:"text-3xl md:text-4xl mb-2",children:t("onPremiseLLM.techStack.title")}),l.jsx("p",{className:"text-muted-foreground",children:t("onPremiseLLM.techStack.subtitle")})]}),l.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-8 mb-8",children:Object.entries(g).map(([b,f])=>l.jsxs("div",{children:[l.jsx("h3",{className:"mb-3 text-sm text-muted-foreground uppercase tracking-wide",children:f.title}),l.jsx("ul",{className:"space-y-1.5 text-sm",children:f.items.map((y,A)=>l.jsxs("li",{children:["• ",y]},A))})]},b))}),l.jsxs("div",{className:"bg-white p-6 rounded-lg",children:[l.jsx("h3",{className:"font-semibold mb-3",children:t("onPremiseLLM.techStack.updateNote.title")}),l.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:t("onPremiseLLM.techStack.updateNote.description")})]})]})}),l.jsx("section",{className:"py-12 md:py-14 bg-white",children:l.jsxs("div",{className:"container mx-auto max-w-4xl px-4 text-center",children:[l.jsx("h2",{className:"text-3xl md:text-4xl mb-3",children:t("onPremiseLLM.cta.title")}),l.jsx("p",{className:"text-lg text-muted-foreground mb-6 leading-relaxed whitespace-pre-line",children:t("onPremiseLLM.cta.description")}),l.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[l.jsxs(ja,{size:"lg",className:"text-base h-12 px-8 bg-blue-900 hover:bg-blue-800",onClick:n,children:[t("onPremiseLLM.cta.primaryButton"),l.jsx(wr,{className:"ml-2 w-4 h-4"})]}),l.jsx(ja,{size:"lg",variant:"outline",className:"text-base h-12 px-8 border-blue-900 text-blue-900 hover:bg-blue-900/5",onClick:n,children:t("onPremiseLLM.cta.secondaryButton")})]})]})})]})}function gC({onContactClick:n}){const{t}=Oe(),s=t("vectorRAG.hero.badges"),o=t("vectorRAG.mission.paragraphs"),d=t("vectorRAG.summary.paragraphs"),p=t("vectorRAG.summary.icons"),c=t("vectorRAG.features.items"),g=t("vectorRAG.techStack.categories"),h=[tt,Gt,Nt,Tn];return l.jsxs("div",{children:[l.jsx("section",{className:"relative bg-background",children:l.jsxs("div",{className:"relative h-[350px] md:h-[420px] overflow-hidden",children:[l.jsx(sa,{src:"/images/optimized/vector-rag-code.webp",alt:"Vector RAG Architecture",className:"w-full h-full object-cover",lazy:!1}),l.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-blue-900/50 via-blue-900/30 to-transparent"}),l.jsx("div",{className:"absolute inset-0 flex items-center",children:l.jsx("div",{className:"container mx-auto max-w-6xl px-4",children:l.jsxs("div",{className:"max-w-2xl space-y-4 text-white",children:[l.jsx("div",{className:"flex gap-2 flex-wrap",children:s.map((b,f)=>l.jsx(Qi,{variant:"secondary",className:"bg-white/20 text-white border-0",children:b},f))}),l.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold leading-tight",children:t("vectorRAG.hero.title")}),l.jsx("p",{className:"text-lg md:text-xl text-white/90",children:t("vectorRAG.hero.description")})]})})})]})}),l.jsx("section",{className:"py-12 md:py-14 bg-white",children:l.jsx("div",{className:"container mx-auto max-w-6xl px-4",children:l.jsxs("div",{className:"grid lg:grid-cols-10 gap-10 items-center",children:[l.jsxs("div",{className:"space-y-4 lg:col-span-7",children:[l.jsx("h2",{className:"text-3xl md:text-4xl",children:t("vectorRAG.mission.title")}),l.jsx("div",{className:"space-y-3 text-muted-foreground leading-relaxed",children:o.map((b,f)=>l.jsx("p",{children:b},f))})]}),l.jsx("div",{className:"rounded-lg overflow-hidden lg:col-span-3",children:l.jsx(sa,{src:"/images/optimized/vector-rag-cover.webp",alt:t("vectorRAG.mission.imageAlt"),className:"w-full h-full object-cover"})})]})})}),l.jsx("section",{className:"py-12 md:py-14 bg-white",children:l.jsx("div",{className:"container mx-auto max-w-6xl px-4",children:l.jsxs("div",{className:"grid lg:grid-cols-2 gap-10 items-center",children:[l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-3xl md:text-4xl",children:t("vectorRAG.summary.title")}),l.jsx("div",{className:"space-y-3 text-muted-foreground leading-relaxed",children:d.map((b,f)=>l.jsx("p",{children:b},f))})]}),l.jsx("div",{className:"flex items-center justify-center",children:l.jsx("div",{className:"grid grid-cols-2 gap-4",children:p.map((b,f)=>{const y=h[f%h.length],A=b.label.split(`
337`);return l.jsxs("div",{className:"flex flex-col items-center justify-center p-6 bg-muted/30 rounded-lg",children:[l.jsx(y,{className:"w-12 h-12 text-blue-900 mb-2",strokeWidth:1.5}),l.jsx("span",{className:"text-sm text-center text-muted-foreground",children:A.map((M,P)=>l.jsxs("span",{children:[M,P<A.length-1&&l.jsx("br",{})]},P))})]},f)})})})]})})}),l.jsx("section",{className:"py-12 md:py-14 bg-muted/30",children:l.jsxs("div",{className:"container mx-auto max-w-6xl px-4",children:[l.jsxs("div",{className:"text-center mb-8",children:[l.jsx("h2",{className:"text-3xl md:text-4xl mb-2",children:t("vectorRAG.features.title")}),l.jsx("p",{className:"text-muted-foreground",children:t("vectorRAG.features.subtitle")})]}),l.jsx("div",{className:"grid md:grid-cols-2 gap-6",children:c.map((b,f)=>
337{const y=[tt,Nt,Gt,Tn],A=y[f%y.length];return l.jsx("div",{className:"bg-white p-6 rounded-lg space-y-2",children:l.jsxs("div",{className:"flex items-start gap-3",children:[l.jsx("div",{className:"w-10 h-10 rounded bg-blue-900/5 flex items-center justify-center flex-shrink-0 mt-1",children:l.jsx(A,{className:"w-5 h-5 text-blue-900",strokeWidth:1.5})}),l.jsxs("div",{className:"flex-1",children:[l.jsx("h3",{className:"font-semibold mb-2",children:b.title}),l.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:b.description})]})]})},f)})})]})}),l.jsx("section",{className:"py-12 md:py-14 bg-muted/30",children:l.jsxs("div",{className:"container mx-auto max-w-6xl px-4",children:[l.jsxs("div",{className:"text-center mb-8",children:[l.jsx("h2",{className:"text-3xl md:text-4xl mb-2",children:t("vectorRAG.techStack.title")}),l.jsx("p",{className:"text-muted-foreground",children:t("vectorRAG.techStack.subtitle")})]}),l.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-8 mb-8",children:Object.entries(g).map(([b,f])=>l.jsxs("div",{children:[l.jsx("h3",{className:"mb-3 text-sm text-muted-foreground uppercase tracking-wide",children:f.title}),l.jsx("ul",{className:"space-y-1.5 text-sm",children:f.items.map((y,A)=>l.jsxs("li",{children:["• ",y]},A))})]},b))}),l.jsxs("div",{className:"bg-white p-6 rounded-lg",children:[l.jsx("h3",{className:"font-semibold mb-3",children:t("vectorRAG.techStack.updateNote.title")}),l.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:t("vectorRAG.techStack.updateNote.description")})]})]})}),l.jsx("section",{className:"py-12 md:py-14 bg-white",children:l.jsxs("div",{className:"container mx-auto max-w-4xl px-4 text-center",children:[l.jsx("h2",{className:"text-3xl md:text-4xl mb-3",children:t("vectorRAG.cta.title")}),l.jsx("p",{className:"text-lg text-muted-foreground mb-6 leading-relaxed whitespace-pre-line",children:t("vectorRAG.cta.description")}),l.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[l.jsxs(ja,{size:"lg",className:"text-base h-12 px-8 bg-blue-900 hover:bg-blue-800",onClick:n,children:[t("vectorRAG.cta.primaryButton"),l.jsx(wr,{className:"ml-2 w-4 h-4"})]}),l.jsx(ja,{size:"lg",variant:"outline",className:"text-base h-12 px-8 border-blue-900 text-blue-900 hover:bg-blue-900/5",onClick:n,children:t("vectorRAG.cta.secondaryButton")})]})]})})]})}function hC({onContactClick:n}){const{t}=Oe(),s=t("aiAppDevelopment.hero.badges"),o=t("aiAppDevelopment.mission.paragraphs"),d=t("aiAppDevelopment.summary.paragraphs"),p=t("aiAppDevelopment.summary.icons"),c=t("aiAppDevelopment.features.items"),g=t("aiAppDevelopment.techStack.categories"),h=[Nt,tt,Hy,Wy];return l.jsxs("div",{children:[l.jsx("section",{className:"relative bg-background",children:l.jsxs("div",{className:"relative h-[350px] md:h-[420px] overflow-hidden",children:[l.jsx("img",{src:"/images/ai-app-cover.jpg",alt:"AI Application Development",className:"w-full h-full object-cover",style:{transform:"scaleX(-1)"}}),l.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-blue-900/80 via-blue-900/60 to-blue-900/30"}),l.jsx("div",{className:"absolute inset-0 flex items-center",children:l.jsx("div",{className:"container mx-auto max-w-6xl px-4",children:l.jsxs("div",{className:"max-w-2xl space-y-4 text-white bg-blue-900/70 backdrop-blur-sm p-6 md:p-8 rounded-lg",children:[l.jsx("div",{className:"flex gap-2 flex-wrap",children:s.map((b,f)=>l.jsx(Qi,{variant:"secondary",className:"bg-white/20 text-white border-0",children:b},f))}),l.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold leading-tight",children:t("aiAppDevelopment.hero.title")}),l.jsx("p",{className:"text-lg md:text-xl text-white/90",children:t("aiAppDevelopment.hero.description")})]})})})]})}),l.jsx("section",{className:"py-12 md:py-14 bg-white",children:l.jsx("div",{className:"container mx-auto max-w-6xl px-4",children:l.jsxs("div",{className:"grid lg:grid-cols-10 gap-10 items-center",children:[l.jsxs("div",{className:"space-y-4 lg:col-span-7",children:[l.jsx("h2",{className:"text-3xl md:text-4xl",children:t("aiAppDevelopment.mission.title")}),l.jsx("div",{className:"space-y-3 text-muted-foreground leading-relaxed",children:o.map((b,f)=>l.jsx("p",{children:b},f))})]}),l.jsx("div",{className:"rounded-lg overflow-hidden lg:col-span-3",children:l.jsx(sa,{src:"/images/optimized/ai-app-mission.webp",alt:t("aiAppDevelopment.mission.title"),className:"w-full h-full object-cover"})})]})})}),l.jsx("section",{className:"py-12 md:py-14 bg-white",children:l.jsx("div",{className:"container mx-auto max-w-6xl px-4",children:l.jsxs("div",{className:"grid lg:grid-cols-2 gap-10 items-center",children:[l.jsxs("div",{className:"space-y-4",children:[l.jsx("h2",{className:"text-3xl md:text-4xl",children:t("aiAppDevelopment.summary.title")}),l.jsx("div",{className:"space-y-3 text-muted-foreground leading-relaxed",children:d.map((b,f)=>l.jsx("p",{children:b},f))})]}),l.jsx("div",{className:"flex items-center justify-center",children:l.jsx("div",{className:"grid grid-cols-2 gap-4",children:p.map((b,f)=>{const y=h[f%h.length],A=b.label.split(`
338`);return l.jsxs("div",{className:"flex flex-col items-center justify-center p-6 bg-muted/30 rounded-lg",children:[l.jsx(y,{className:"w-12 h-12 text-blue-900 mb-2",strokeWidth:1.5}),l.jsx("span",{className:"text-sm text-center text-muted-foreground",children:A.map((M,P)=>l.jsxs("span",{children:[M,P<A.length-1&&l.jsx("br",{})]},P))})]},f)})})})]})})}),l.jsx("section",{className:"py-12 md:py-14 bg-muted/30",children:l.jsxs("div",{className:"container mx-auto max-w-6xl px-4",children:[l.jsxs("div",{className:"text-center mb-8",children:[l.jsx("h2",{className:"text-3xl md:text-4xl mb-2",children:t("aiAppDevelopment.features.title")}),l.jsx("p",{className:"text-muted-foreground",children:t("aiAppDevelopment.features.subtitle")})]}),l.jsx("div",{className:"grid md:grid-cols-2 gap-6",children:c.map((b,f)=>{const y=[tt,Gt,Nt,Tn],A=y[f%y.length];return l.jsx("div",{className:"bg-white p-6 rounded-lg space-y-2",children:l.jsxs("div",{className:"flex items-start gap-3",children:[l.jsx("div",{className:"w-10 h-10 rounded bg-blue-900/5 flex items-center justify-center flex-shrink-0 mt-1",children:l.jsx(A,{className:"w-5 h-5 text-blue-900",strokeWidth:1.5})}),l.jsxs("div",{className:"flex-1",children:[l.jsx("h3",{className:"font-semibold mb-2",children:b.title}),l.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:b.description})]})]})},f)})})]})}),l.jsx("section",{className:"py-12 md:py-14 bg-muted/30",children:l.jsxs("div",{className:"container mx-auto max-w-6xl px-4",children:[l.jsxs("div",{className:"text-center mb-8",children:[l.jsx("h2",{className:"text-3xl md:text-4xl mb-2",children:t("aiAppDevelopment.techStack.title")}),l.jsx("p",{className:"text-muted-foreground",children:t("aiAppDevelopment.techStack.subtitle")})]}),l.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-8 mb-8",children:Object.entries(g).map(([b,f])=>l.jsxs("div",{children:[l.jsx("h3",{className:"mb-3 text-sm text-muted-foreground uppercase tracking-wide",children:f.title}),l.jsx("ul",{className:"space-y-1.5 text-sm",children:f.items.map((y,A)=>l.jsxs("li",{children:["• ",y]},A))})]},b))}),l.jsxs("div",{className:"bg-white p-6 rounded-lg",children:[l.jsx("h3",{className:"font-semibold mb-3",children:t("aiAppDevelopment.techStack.updateNote.title")}),l.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:t("aiAppDevelopment.techStack.updateNote.description")})]})]})}),l.jsx("section",{className:"py-12 md:py-14 bg-white",children:l.jsxs("div",{className:"container mx-auto max-w-4xl px-4 text-center",children:[l.jsx("h2",{className:"text-3xl md:text-4xl mb-3",children:t("aiAppDevelopment.cta.title")}),l.jsx("p",{className:"text-lg text-muted-foreground mb-6 leading-relaxed whitespace-pre-line",children:t("aiAppDevelopment.cta.description")}),l.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[l.jsxs(ja,{size:"lg",className:"text-base h-12 px-8 bg-blue-900 hover:bg-blue-800",onClick:n,children:[t("aiAppDevelopment.cta.primaryButton"),l.jsx(wr,{className:"ml-2 w-4 h-4"})]}),l.jsx(ja,{size:"lg",variant:"outline",className:"text-base h-12 px-8 border-blue-900 text-blue-900 hover:bg-blue-900/5",onClick:n,children:t("aiAppDevelopment.cta.secondaryButton")})]})]})})]})}function fC(){const{language:n,t,translations:s}=Oe(),o=Bi(new URL(window.location.href)),[d,p]=T.useState(o.page),[c,g]=T.useState(o.page==="portfolio"&&Oi.some(P=>P.id===o.project)?o.project:null),h=P=>{window.history.pushState({},"",on(n,P.page||"home",P.project||null))},b=()=>{const P=Bi(new URL(window.location.href)),z=P.page,C=z==="portfolio"&&Oi.some(E=>E.id===P.project)?P.project:null;p(z),g(C)};T.useEffect(()=>{},[]),T.useEffect(()=>{b();const P=()=>b();return window.addEventListener("popstate",P),()=>window.removeEventListener("popstate",P)},[]);const f=P=>{p(P),window.scrollTo(0,0),h({page:P,project:null})},y=P=>{g(P),p("portfolio"),window.scrollTo(0,0),h({page:"portfolio",project:P})},A=()=>{p("home"),g(null),window.scrollTo(0,0),h({page:"home",project:null})},M=()=>{p("home"),g(null),h({page:"home",project:null}),setTimeout(()=>{const P=document.getElementById("contact-form");P&&P.scrollIntoView({behavior:"smooth"})},100)};if(d==="about")return l.jsxs(l.Fragment,{children:[l.jsx(_a,{title:t("seo.about.title"),description:t("seo.about.description")}),l.jsxs(rn,{onBack:A,onNavigate:P=>f(P),children:[l.jsx(lC,{}),l.jsx(Ua,{onNavigate:P=>f(P)})]})]});if(d==="privacy")return l.jsxs(l.Fragment,{children:[l.jsx(_a,{title:t("seo.privacy.title"),description:t("seo.privacy.description")}),l.jsxs(rn,{onBack:A,onNavigate:P=>f(P),children:[l.jsx(dC,{}),l.jsx(Ua,{onNavigate:P=>f(P)})]})]});if(d==="terms")return l.jsxs(l.Fragment,{children:[l.jsx(_a,{title:t("seo.terms.title"),description:t("seo.terms.description")}),l.jsxs(rn,{onBack:A,onNavigate:P=>f(P),children:[l.jsx(uC,{}),l.jsx(Ua,{onNavigate:P=>f(P)})]})]});if(d==="cookies")return l.jsxs(l.Fragment,{children:[l.jsx(_a,{title:t("seo.cookies.title"),description:t("seo.cookies.description")}),l.jsxs(rn,{onBack:A,onNavigate:P=>f(P),children:[l.jsx(cC,{}),l.jsx(Ua,{onNavigate:P=>f(P)})]})]});if(d==="portfolio"){const P=c&&Oi.find(te=>
338te.id===c)||null,z=t("header.nav.portfolio"),C=P?t(`portfolio.projects.${P.id}.title`):"",E=P?`${C} - ${t("seo.portfolio.title")}`:t("seo.portfolio.title"),F=t(P?`portfolio.projects.${P.id}.description`:"seo.portfolio.description"),K=String(F).replace(/\s+/g," ").trim(),U=Array.from(K),W=U.length>180?`${U.slice(0,177).join("")}…`:K,J=(te,be)=>`https://telet.ai${on(te,"portfolio",be||null)}`,de=J(n),O=P?J(n,P.id):de,_=P?{"@context":"https://schema.org","@type":"WebPage","@id":O,url:O,name:C,description:F,inLanguage:n,isPartOf:{"@type":"CollectionPage",name:z,url:de}}:{"@context":"https://schema.org","@type":"ItemList",name:z,itemListElement:Object.entries(s.portfolio.projects).map(([te,be],pe)=>({"@type":"ListItem",position:pe+1,name:be.title,url:J(n,te)}))};return l.jsxs(l.Fragment,{children:[l.jsx(_a,{title:E,description:W,jsonLd:_}),l.jsxs(rn,{onBack:A,onNavigate:te=>f(te),children:[l.jsx(Bj,{projectId:c}),l.jsx(Ua,{onNavigate:te=>f(te)})]})]})}return d==="agent-development"?l.jsxs(l.Fragment,{children:[l.jsx(_a,{title:t("seo.agentDevelopment.title"),description:t("seo.agentDevelopment.description")}),l.jsxs(rn,{onBack:A,onNavigate:P=>f(P),onContactClick:M,children:[l.jsx(mC,{onContactClick:M}),l.jsx(Ua,{onNavigate:P=>f(P)})]})]}):d==="on-premise-llm"?l.jsxs(l.Fragment,{children:[l.jsx(_a,{title:t("seo.onPremiseLLM.title"),description:t("seo.onPremiseLLM.description")}),l.jsxs(rn,{onBack:A,onNavigate:P=>f(P),onContactClick:M,children:[l.jsx(pC,{onContactClick:M}),l.jsx(Ua,{onNavigate:P=>f(P)})]})]}):d==="vector-rag"?l.jsxs(l.Fragment,{children:[l.jsx(_a,{title:t("seo.vectorRAG.title"),description:t("seo.vectorRAG.description")}),l.jsxs(rn,{onBack:A,onNavigate:P=>f(P),onContactClick:M,children:[l.jsx(gC,{onContactClick:M}),l.jsx(Ua,{onNavigate:P=>f(P)})]})]}):d==="ai-app-development"?l.jsxs(l.Fragment,{children:[l.jsx(_a,{title:t("seo.aiAppDevelopment.title"),description:t("seo.aiAppDevelopment.description")}),l.jsxs(rn,{onBack:A,onNavigate:P=>f(P),onContactClick:M,children:[l.jsx(hC,{onContactClick:M}),l.jsx(Ua,{onNavigate:P=>f(P)})]})]}):l.jsxs("div",{className:"min-h-screen bg-background",children:[l.jsx(_a,{title:t("seo.home.title"),description:t("seo.home.description")}),l.jsx(Og,{onNavigate:P=>f(P)}),l.jsxs("main",{children:[l.jsx(HP,{}),l.jsx(Pj,{}),l.jsx(JP,{onServiceClick:f}),l.jsx(eC,{}),l.jsx(qw,{onNavigateToPortfolio:y}),l.jsx(Ij,{}),l.jsx(Vj,{}),l.jsx($j,{})]}),l.jsx(Ua,{onNavigate:P=>f(P)})]})}Hb.createRoot(document.getElementById("root")).render(l.jsx(UP,{children:l.jsx(fC,{})}));export{Bb as g};

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.