AI-powered marketing assistant built with TypeScript, Express, and React. Uses Claude (Anthropic) and Gemini (Google) APIs for intelligent marketing advice.
- Text-based conversation with AI marketing assistant
- Real-time responses with typing indicator
- Message history within session
- Copy bot responses to clipboard
- Voice dialogue mode — speak directly with AI (Chrome/Edge)
- Text-to-Speech — listen to bot responses
- Speech-to-Text input in chat
- Claude (Anthropic) — primary model with system prompt
- Gemini (Google) — free tier alternative for testing
- Pre-configured marketing specialist persona
- Knows: SEO, social media, content planning, branding, ad copywriting
- Responds in Georgian
- Restricted from sharing personal/financial information
| Welcome Screen | Chat | Voice Dialogue |
|---|---|---|
![]() |
![]() |
![]() |
- Node.js + Express
- TypeScript
- Anthropic SDK (Claude API)
- Google Generative AI SDK (Gemini API)
- dotenv — environment variables
- cors — cross-origin requests
- React 19 + Vite
- TypeScript
- Web Speech API — voice input/output
- CSS — custom dark theme with green accents
ai-bot/
├── src/
│ ├── controllers/
│ │ └── chatController.ts # Claude & Gemini API logic
│ ├── routes/
│ │ └── chatRoute.ts # API endpoints
│ ├── prompts/
│ │ └── marketingPrompt.ts # System prompt
│ ├── database/ # Future: chat history
│ └── index.ts # Express server
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ │ ├── ChatMessage.tsx
│ │ │ ├── ChatInput.tsx
│ │ │ └── VoiceChat.tsx
│ │ ├── services/
│ │ │ └── api.ts
│ │ ├── styles/
│ │ ├── types/
│ │ └── App.tsx
│ └── vite.config.ts
├── .env
├── .gitignore
├── package.json
└── tsconfig.json
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/claude |
Send message to Claude AI |
| POST | /api/gemini |
Send message to Gemini AI |
{
"message": "SEO სტრატეგია მცირე ბიზნესისთვის"
}{
"reply": "AI-ის პასუხი აქ..."
}git clone https://github.com/Lussskki/AI-bot-typescript.git
cd ai-botnpm installCreate .env file:
ANTHROPIC_API_KEY=sk-ant-your-key-here
GEMINI_API_KEY=AIzaSy-your-key-here
Start server:
npm run devcd frontend
npm install
npm run dev- Frontend:
http://localhost:5173 - Backend:
http://localhost:3001
| Service | URL | Pricing |
|---|---|---|
| Claude (Anthropic) | console.anthropic.com | Paid ($5 min) |
| Gemini (Google) | aistudio.google.com | Free tier available |
| Feature | Chrome | Edge | Brave | Firefox | Safari |
|---|---|---|---|---|---|
| Chat | Yes | Yes | Yes | Yes | Yes |
| Voice Input | Yes | Yes | No | No | Partial |
| Voice Output | Yes | Yes | Yes | Yes | Yes |
Luka Guledani — Developer at Kvara Group


