adding some business tasks to look at including in the demo, and updating the slides
This commit is contained in:
+2
-1
@@ -1,4 +1,5 @@
|
|||||||
*.mp3
|
*.mp3
|
||||||
*.bin
|
*.bin
|
||||||
.DS_Store
|
.DS_Store
|
||||||
*.wav
|
*.wav
|
||||||
|
business-transactions.csv
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
### 1. High-Sensitivity Data Processing (Privacy Demo)
|
||||||
|
|
||||||
|
Goal: Show that you can process "secret" business data without it ever leaving the machine.
|
||||||
|
|
||||||
|
- Client Confidentiality:
|
||||||
|
"I am uploading a transcript of a private discovery call with a potential high-ticket client. Please
|
||||||
|
extract the key pain points, their current budget, and create a personalized proposal outline.
|
||||||
|
(Highlight: No data is sent to OpenAI/Google, so the client's privacy is 100% guaranteed)."
|
||||||
|
- Financial Analysis:
|
||||||
|
"Analyze the raw CSV `/Users/jamestwose/Coding/ledex-demo/business-transactions.csv` of my monthly business expenses for the last year. Identify the top 3 categories
|
||||||
|
where I'm overspending and suggest a lean budget to increase my profit margin by 15%. (Highlight: Your
|
||||||
|
financial records never touch a cloud server)."
|
||||||
|
|
||||||
|
### 2. High-Volume Content Engine (Cost Savings Demo)
|
||||||
|
|
||||||
|
Goal: Demonstrate tasks that would be expensive or hit "rate limits" on paid subscriptions if done at
|
||||||
|
scale.
|
||||||
|
|
||||||
|
- The Content Multiplier:
|
||||||
|
"Here is a long-form blog post I wrote. Transform this into: 1) A 5-tweet X thread, 2) A punchy
|
||||||
|
LinkedIn post for entrepreneurs, 3) A 15-second Instagram Reel script, and 4) A newsletter teaser.
|
||||||
|
Maintain a professional yet adventurous 'digital nomad' tone. (Highlight: Do this for 100 articles for
|
||||||
|
$0 extra cost)."
|
||||||
|
- SEO Keyword Expansion:
|
||||||
|
"Generate 50 variations of low-competition, long-tail keywords for a 'Luxury Villa Rental in Algarve'
|
||||||
|
business, categorized by user intent (informational, transactional, navigational). (Highlight:
|
||||||
|
High-volume brainstorming without subscription 'credit' limits)."
|
||||||
|
|
||||||
|
### 3. Workflow Automation & Structuring (Efficiency Demo)
|
||||||
|
|
||||||
|
Goal: Show how Local AI handles "boring" administrative overhead instantly.
|
||||||
|
|
||||||
|
- Meeting-to-Action Pipeline:
|
||||||
|
"Here are my messy notes from a brainstorming session. Turn these into a structured Project Brief with
|
||||||
|
a clear 'Definition of Done,' a list of action items assigned by role, and a suggested timeline for
|
||||||
|
the next 4 weeks. (Highlight: Rapidly converting chaos into a business plan offline)."
|
||||||
|
- Email Systematization:
|
||||||
|
"I receive a lot of these types of inquiries: [Paste 3 example emails]. Create 3 different response
|
||||||
|
templates: one for 'High Intent/Qualified', one for 'Low Budget/Not a fit', and one for 'Requesting
|
||||||
|
more info'. Make them sound human and welcoming. (Highlight: Building a local knowledge base of
|
||||||
|
business assets)."
|
||||||
|
|
||||||
|
### 4. "The Offline Edge" (Independence Demo)
|
||||||
|
|
||||||
|
Goal: Specifically for Slide 9 (Live Offline Walkthrough). Do this while the Wi-Fi is physically off.
|
||||||
|
|
||||||
|
- The "Crisis" Assistant:
|
||||||
|
"I have no internet right now and I'm about to enter a meeting. Help me prepare a 3-point rebuttal for
|
||||||
|
a client who thinks my pricing is too high compared to a cheap agency. Focus on 'Quality,' 'Security,'
|
||||||
|
and 'Long-term ROI'. (Highlight: AI as a reliable tool that works in a cafe with no Wi-Fi)."
|
||||||
|
|
||||||
|
### Summary Table for your Demo Presentation:
|
||||||
|
|
||||||
|
┌──────────────┬────────────────────────────┬─────────────────────────────────────────┐
|
||||||
|
Demo Segment Business Task Core "Local AI" Win
|
||||||
|
├──────────────┼────────────────────────────┼─────────────────────────────────────────┤
|
||||||
|
Privacy Client Proposal/Finance Zero Data Leaks $\rightarrow$ Trust
|
||||||
|
├──────────────┼────────────────────────────┼─────────────────────────────────────────┤
|
||||||
|
Scale Content Repurposing Zero Subscriptions $\rightarrow$ Profit
|
||||||
|
├──────────────┼────────────────────────────┼─────────────────────────────────────────┤
|
||||||
|
Workflow Meeting $\to$ Action Items Zero Friction $\rightarrow$ Speed
|
||||||
|
├──────────────┼────────────────────────────┼─────────────────────────────────────────┤
|
||||||
|
Sovereignty Offline Strategy Zero Downtime $\rightarrow$ Reliability
|
||||||
|
└──────────────┴────────────────────────────┴─────────────────────────────────────────┘
|
||||||
@@ -5,4 +5,4 @@ Tools used:
|
|||||||
|
|
||||||
## Demos
|
## Demos
|
||||||
- Sentiment analysis of reviews + learning points
|
- Sentiment analysis of reviews + learning points
|
||||||
- Meeting recording + summarization + action points
|
- Meeting recording + summarization + action points [DONE]
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ export default function App() {
|
|||||||
const [soundEnabled, setSoundEnabled] = useState<boolean>(false);
|
const [soundEnabled, setSoundEnabled] = useState<boolean>(false);
|
||||||
|
|
||||||
// Shared state for cross-slide communication
|
// Shared state for cross-slide communication
|
||||||
const [selectedGoal, setSelectedGoal] = useState<GoalType>('agents');
|
const [selectedGoal, setSelectedGoal] = useState<GoalType>('writing');
|
||||||
const [procureBudget, setProcureBudget] = useState<BudgetType>('budget');
|
const [procureBudget, setProcureBudget] = useState<BudgetType>('budget');
|
||||||
const [toastMessage, setToastMessage] = useState<string | null>(null);
|
const [toastMessage, setToastMessage] = useState<string | null>(null);
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ export default function ControlBar({
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="flex items-center gap-2 order-2 sm:order-3 w-full sm:w-auto justify-between sm:justify-start">
|
<div className="flex items-center gap-2 order-2 sm:order-3 w-full sm:w-auto justify-between sm:justify-start">
|
||||||
<button
|
{/* <button
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
handleElementClick();
|
handleElementClick();
|
||||||
onToggleAutoplay();
|
onToggleAutoplay();
|
||||||
@@ -63,7 +63,7 @@ export default function ControlBar({
|
|||||||
>
|
>
|
||||||
{isAutoplay ? <Pause className="w-3 h-3 text-emerald-400 animate-pulse" /> : <Play className="w-3 h-3" />}
|
{isAutoplay ? <Pause className="w-3 h-3 text-emerald-400 animate-pulse" /> : <Play className="w-3 h-3" />}
|
||||||
<span>{isAutoplay ? 'AUTOPLAY: ON' : 'AUTOPLAY: OFF'}</span>
|
<span>{isAutoplay ? 'AUTOPLAY: ON' : 'AUTOPLAY: OFF'}</span>
|
||||||
</button>
|
</button> */}
|
||||||
|
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
<button
|
<button
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ export default function Slide1Title() {
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h1 className="font-display font-extrabold text-3xl sm:text-4xl md:text-5xl lg:text-5xl text-white tracking-tight leading-tight uppercase font-glow mb-5">
|
<h1 className="font-display font-extrabold text-3xl sm:text-4xl md:text-5xl lg:text-5xl text-white tracking-tight leading-tight uppercase font-glow mb-5">
|
||||||
The Sovereign Business Engine
|
Private AI for Your Business
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<div className="h-[2px] w-24 bg-gradient-to-r from-transparent via-emerald-500 to-transparent mb-6" />
|
<div className="h-[2px] w-24 bg-gradient-to-r from-transparent via-emerald-500 to-transparent mb-6" />
|
||||||
@@ -33,7 +33,7 @@ export default function Slide1Title() {
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="mt-12 flex flex-wrap gap-3 font-mono text-[10px] text-slate-400 justify-center">
|
<div className="mt-12 flex flex-wrap gap-3 font-mono text-[10px] text-slate-400 justify-center">
|
||||||
<span className="px-3 py-1.5 rounded-full bg-slate-950 border border-emerald-900/30">✓ PRIVATE INTEL</span>
|
<span className="px-3 py-1.5 rounded-full bg-slate-950 border border-emerald-900/30">✓ PRIVATE</span>
|
||||||
<span className="px-3 py-1.5 rounded-full bg-slate-950 border border-emerald-900/30">✓ DECENTRALISED</span>
|
<span className="px-3 py-1.5 rounded-full bg-slate-950 border border-emerald-900/30">✓ DECENTRALISED</span>
|
||||||
<span className="px-3 py-1.5 rounded-full bg-slate-950 border border-emerald-900/30">✓ 0% SAAS TRANSACTION</span>
|
<span className="px-3 py-1.5 rounded-full bg-slate-950 border border-emerald-900/30">✓ 0% SAAS TRANSACTION</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ const paradoxCards: ParadoxCard[] = [
|
|||||||
{
|
{
|
||||||
title: "Subscription Taxes",
|
title: "Subscription Taxes",
|
||||||
desc: "Licensing Cost",
|
desc: "Licensing Cost",
|
||||||
detail: "Paying $20–$40 per person every single month creates heavy baseline overheads for growing digital agencies or self-starters.",
|
detail: "Paying $20+ per person every single month creates heavy baseline overheads for growing digital agencies or self-starters.",
|
||||||
alternative: "Zero-Bill Scale. Run identical models on modern laptops with zero cumulative licensing bills or user caps.",
|
alternative: "Zero-Bill Scale. Run identical models on modern laptops with zero cumulative licensing bills or user caps.",
|
||||||
color: "from-amber-500/10 to-amber-600/5 border-amber-950/40 text-amber-400",
|
color: "from-amber-500/10 to-amber-600/5 border-amber-950/40 text-amber-400",
|
||||||
tag: "CASH BURN"
|
tag: "CASH BURN"
|
||||||
@@ -54,13 +54,13 @@ export default function Slide2CloudParadox() {
|
|||||||
The Cloud Expense Trap
|
The Cloud Expense Trap
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-slate-400 font-sans text-sm sm:text-base leading-relaxed mb-6">
|
<p className="text-slate-400 font-sans text-sm sm:text-base leading-relaxed mb-6">
|
||||||
Relying on big-tech online platforms invites data leakage risks, builds high monthly software subscriptions, and depends on having perfect Internet. Tap each risk card to unlock your secure local remedy.
|
Relying on big-tech online platforms invites data leakage risks, builds high monthly software subscriptions, and depends on having perfect Internet.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="hidden lg:flex items-center gap-2 border border-slate-800/80 rounded px-3 py-1.5 bg-slate-900/50 text-[10px] font-mono text-slate-500">
|
{/* <div className="hidden lg:flex items-center gap-2 border border-slate-800/80 rounded px-3 py-1.5 bg-slate-900/50 text-[10px] font-mono text-slate-500">
|
||||||
<Info className="w-3.5 h-3.5 text-emerald-400 shrink-0" />
|
<Info className="w-3.5 h-3.5 text-emerald-400 shrink-0" />
|
||||||
<span>Interactive: Click each card to reveal the offline local alternative.</span>
|
<span>Interactive: Click each card to reveal the offline local alternative.</span>
|
||||||
</div>
|
</div> */}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="lg:col-span-8 grid grid-cols-1 md:grid-cols-3 gap-4 w-full h-auto">
|
<div className="lg:col-span-8 grid grid-cols-1 md:grid-cols-3 gap-4 w-full h-auto">
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ export default function Slide3LocalAIStack() {
|
|||||||
Your Private AI Workspace
|
Your Private AI Workspace
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-slate-400 font-sans text-sm sm:text-base leading-relaxed mb-6">
|
<p className="text-slate-400 font-sans text-sm sm:text-base leading-relaxed mb-6">
|
||||||
Running secure local AI is straightforward and divides into three simple, clear levels. Click any layer below to see how friendly desktop apps link directly to your laptop's power.
|
Running secure local AI is straightforward and divides into three simple, clear levels.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="bg-slate-950/40 border border-emerald-950/30 rounded-lg p-5 font-mono text-left">
|
<div className="bg-slate-950/40 border border-emerald-950/30 rounded-lg p-5 font-mono text-left">
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ export default function Slide4Quantization() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="grid grid-cols-1 lg:grid-cols-12 gap-8 items-center max-w-6xl mx-auto w-full">
|
<div className="grid grid-cols-1 lg:grid-cols-12 gap-8 items-center max-w-6xl mx-auto w-full">
|
||||||
<div className="lg:col-span-5 flex flex-col justify-center">
|
<div className="lg:col-span-6 flex flex-col justify-center">
|
||||||
<span className="text-emerald-500 font-mono text-xs font-bold uppercase tracking-wider mb-2">// DYNAMIC OPTIMISATION</span>
|
<span className="text-emerald-500 font-mono text-xs font-bold uppercase tracking-wider mb-2">// DYNAMIC OPTIMISATION</span>
|
||||||
<h2 className="font-display font-bold text-2xl sm:text-3xl text-white tracking-tight uppercase leading-none mb-4">
|
<h2 className="font-display font-bold text-2xl sm:text-3xl text-white tracking-tight uppercase leading-none mb-4">
|
||||||
AI Compression: Smart Scaling
|
AI Compression: Smart Scaling
|
||||||
@@ -80,7 +80,7 @@ export default function Slide4Quantization() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="lg:col-span-7 flex flex-col gap-6 w-full">
|
<div className="lg:col-span-6 flex flex-col gap-6 w-full">
|
||||||
<div className="bg-slate-950/60 border border-slate-800/80 rounded-xl p-5 sm:p-6 md:p-8 relative">
|
<div className="bg-slate-950/60 border border-slate-800/80 rounded-xl p-5 sm:p-6 md:p-8 relative">
|
||||||
<div className="flex items-center justify-between font-mono text-[10px] text-slate-400 mb-6">
|
<div className="flex items-center justify-between font-mono text-[10px] text-slate-400 mb-6">
|
||||||
<span>INTERACTIVE COMPRESSION SELECTOR</span>
|
<span>INTERACTIVE COMPRESSION SELECTOR</span>
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ export default function Slide5Pipelines({ showToast }: { showToast: (msg: string
|
|||||||
Smart Workflow Pipelines
|
Smart Workflow Pipelines
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-slate-400 font-sans text-sm sm:text-base leading-relaxed mb-6">
|
<p className="text-slate-400 font-sans text-sm sm:text-base leading-relaxed mb-6">
|
||||||
Transform unstructured data into actionable insights. Select a pipeline type and watch local AI extract, categorize, and score your business data in milliseconds.
|
Transform unstructured data into actionable insights.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="flex flex-col gap-3 font-mono text-[11px] text-slate-400">
|
<div className="flex flex-col gap-3 font-mono text-[11px] text-slate-400">
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ export default function Slide6HardwareMatrix({
|
|||||||
Your Hardware Match
|
Your Hardware Match
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-slate-400 font-sans text-sm sm:text-base leading-relaxed mb-6">
|
<p className="text-slate-400 font-sans text-sm sm:text-base leading-relaxed mb-6">
|
||||||
Map local AI targets against your company assets. Standard office equipment already houses substantial computational power. Utilize our selector to plan your deployment.
|
Map local AI targets against your company assets. Standard office equipment already houses substantial computational power.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="flex bg-slate-950/80 border border-slate-800/80 rounded p-1 gap-1 mb-6 font-mono text-[10px]">
|
<div className="flex bg-slate-950/80 border border-slate-800/80 rounded p-1 gap-1 mb-6 font-mono text-[10px]">
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ export default function Slide7BuyersGuide({
|
|||||||
Easy Setup & Hardware Guide
|
Easy Setup & Hardware Guide
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-slate-400 text-xs sm:text-sm leading-relaxed mb-5">
|
<p className="text-slate-400 text-xs sm:text-sm leading-relaxed mb-5">
|
||||||
Buying or repurposing hardware is simple once you isolate your goals. Modern large models scale entirely based on **Memory Bandwidth** rather than CPU cores. Select your options below to see your optimal setup plan:
|
Buying or repurposing hardware is simple once you isolate your goals. Modern large models scale entirely based on **Memory Bandwidth** rather than CPU cores.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="mb-4">
|
<div className="mb-4">
|
||||||
@@ -130,13 +130,13 @@ export default function Slide7BuyersGuide({
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="bg-rose-950/15 border border-rose-900/25 p-4 rounded-lg text-slate-350 font-sans text-[11px] leading-relaxed flex gap-3">
|
{/* <div className="bg-rose-950/15 border border-rose-900/25 p-4 rounded-lg text-slate-350 font-sans text-[11px] leading-relaxed flex gap-3">
|
||||||
<AlertTriangle className="w-5 h-5 text-rose-500 shrink-0 animate-pulse" />
|
<AlertTriangle className="w-5 h-5 text-rose-500 shrink-0 animate-pulse" />
|
||||||
<div>
|
<div>
|
||||||
<span className="font-mono text-[9.5px] font-bold text-rose-400 tracking-wider block uppercase mb-1">// CRITICAL BUYER SHIELD PROTOCOL:</span>
|
<span className="font-mono text-[9.5px] font-bold text-rose-400 tracking-wider block uppercase mb-1">// CRITICAL BUYER SHIELD PROTOCOL:</span>
|
||||||
Do NOT buy multiple CPU-core servers expecting quick inference speeds. LLM read-phases are bound strictly by **Memory Bandwidth**. Prefer Apple Silicon (Unified Memory bus width > 300GB/s) or discrete Nvidia RTX Series GPUs. CPU-only rendering will result in a 5x to 10x speed penalty.
|
Do NOT buy multiple CPU-core servers expecting quick inference speeds. LLM read-phases are bound strictly by **Memory Bandwidth**. Prefer Apple Silicon (Unified Memory bus width > 300GB/s) or discrete Nvidia RTX Series GPUs. CPU-only rendering will result in a 5x to 10x speed penalty.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> */}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="lg:col-span-7 flex flex-col w-full font-sans">
|
<div className="lg:col-span-7 flex flex-col w-full font-sans">
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ export default function Slide8ROI({ selectedGoal, procureBudget, showToast }: Sl
|
|||||||
const goalCostMap: Record<GoalType, number> = { writing: 0, rag: 1500, agents: 3500 };
|
const goalCostMap: Record<GoalType, number> = { writing: 0, rag: 1500, agents: 3500 };
|
||||||
const targetCost = goalCostMap[selectedGoal] ?? 3500;
|
const targetCost = goalCostMap[selectedGoal] ?? 3500;
|
||||||
setSetupCosts(targetCost);
|
setSetupCosts(targetCost);
|
||||||
showToast(`Applied ${selectedGoal.toUpperCase()} goal recommendation: $${targetCost.toLocaleString()}`);
|
// showToast(`Applied ${selectedGoal.toUpperCase()} goal recommendation: $${targetCost.toLocaleString()}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleBudgetCostApply = () => {
|
const handleBudgetCostApply = () => {
|
||||||
@@ -28,7 +28,7 @@ export default function Slide8ROI({ selectedGoal, procureBudget, showToast }: Sl
|
|||||||
const bgtCostMap: Record<BudgetType, number> = { existing: 0, budget: 1500, pro: 3500, enterprise: 12500 };
|
const bgtCostMap: Record<BudgetType, number> = { existing: 0, budget: 1500, pro: 3500, enterprise: 12500 };
|
||||||
const targetCost = bgtCostMap[procureBudget] ?? 1500;
|
const targetCost = bgtCostMap[procureBudget] ?? 1500;
|
||||||
setSetupCosts(targetCost);
|
setSetupCosts(targetCost);
|
||||||
showToast(`Applied ${procureBudget.toUpperCase()} specification plan: $${targetCost.toLocaleString()}`);
|
// showToast(`Applied ${procureBudget.toUpperCase()} specification plan: $${targetCost.toLocaleString()}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
const cloudMonthlyCost = employees * monthlySaaS;
|
const cloudMonthlyCost = employees * monthlySaaS;
|
||||||
@@ -106,9 +106,9 @@ export default function Slide8ROI({ selectedGoal, procureBudget, showToast }: Sl
|
|||||||
</div>
|
</div>
|
||||||
<input
|
<input
|
||||||
type="range"
|
type="range"
|
||||||
min="10"
|
min="1"
|
||||||
max="500"
|
max="500"
|
||||||
step="10"
|
step="1"
|
||||||
value={employees}
|
value={employees}
|
||||||
onChange={(e) => { handleElementClick(); setEmployees(Number(e.target.value)); }}
|
onChange={(e) => { handleElementClick(); setEmployees(Number(e.target.value)); }}
|
||||||
className="w-full h-1 bg-slate-900 rounded-lg appearance-none cursor-pointer accent-emerald-500"
|
className="w-full h-1 bg-slate-900 rounded-lg appearance-none cursor-pointer accent-emerald-500"
|
||||||
@@ -123,7 +123,7 @@ export default function Slide8ROI({ selectedGoal, procureBudget, showToast }: Sl
|
|||||||
<input
|
<input
|
||||||
type="range"
|
type="range"
|
||||||
min="10"
|
min="10"
|
||||||
max="100"
|
max="1000"
|
||||||
step="5"
|
step="5"
|
||||||
value={monthlySaaS}
|
value={monthlySaaS}
|
||||||
onChange={(e) => { handleElementClick(); setMonthlySaaS(Number(e.target.value)); }}
|
onChange={(e) => { handleElementClick(); setMonthlySaaS(Number(e.target.value)); }}
|
||||||
|
|||||||
Reference in New Issue
Block a user