Skip to content

Commit ac460f6

Browse files
authored
Desktop mvp (#22)
* chore: logging + transcription improvements * chore: add ax context call on rec start * chore: amical assets * chore: qol setup changes * chore: add sidebar * chore: transcriptions tab * chore: transcriptions ui * chore: frame improvements * chore: ui rework * chore logger fixes * chore: whisper model download func * chore: update model downloading * chore: transcription updates * chore: improved logging * chore: log whisper metrics + raw pcm proc * chore: ste up libsql * chore: layout fixes * chore: clean up ipcs * chore: integrate trpc * chore: formatting fixes * chore: fix pnpm lock file
1 parent 17fdb72 commit ac460f6

123 files changed

Lines changed: 10731 additions & 1626 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

β€Ž.gitignoreβ€Ž

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ yarn-error.log*
3636
# Misc
3737
.DS_Store
3838
*.pem
39+
CLAUDE.md
40+
.serena
3941

4042
# Temp files
41-
/tmp
43+
/tmp

β€ŽAI_INFERENCE_SETUP.mdβ€Ž

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# AI Inference Configuration
2+
3+
Amical supports two AI inference options for transcription:
4+
5+
1. **OpenAI Whisper** (default)
6+
2. **Amical Cloud** (hosted endpoint)
7+
8+
## Configuration
9+
10+
### Using OpenAI (Default)
11+
12+
By default, Amical uses OpenAI's Whisper API. You need to provide an API key either:
13+
14+
- Through the UI: Open settings and go to "Configure API Key" tab
15+
- Via environment variable: `OPENAI_API_KEY=your_key_here`
16+
17+
### Using Amical Cloud
18+
19+
To use the Amical Cloud hosted endpoint instead:
20+
21+
1. Set the environment variable: `USE_CLOUD_INFERENCE=true`
22+
2. No API key is required for cloud inference
23+
24+
## Examples
25+
26+
### Running with OpenAI (default)
27+
```bash
28+
# Set API key via environment
29+
OPENAI_API_KEY=sk-your-openai-key npm run dev
30+
31+
# Or just run normally and set API key through UI
32+
npm run dev
33+
```
34+
35+
### Running with Amical Cloud
36+
```bash
37+
USE_CLOUD_INFERENCE=true npm run dev
38+
```
39+
40+
### Running with both environment variables
41+
```bash
42+
USE_CLOUD_INFERENCE=true OPENAI_API_KEY=sk-backup-key npm run dev
43+
```
44+
45+
## Cloud Endpoint Details
46+
47+
When using Amical Cloud (`USE_CLOUD_INFERENCE=true`), the app makes POST requests to:
48+
49+
- **URL**: `https://dictation.amical.ai/transcribe`
50+
- **Headers**:
51+
- `Content-Type: application/json`
52+
- `x-admin-api-key: asdsa`
53+
- `x-org-user-id: <random_generated_id>`
54+
- **Model**: Groq Whisper Large v3
55+
- **Format**: Returns unformatted transcription
56+
57+
## Switching Between Modes
58+
59+
To switch between inference modes, simply restart the application with the appropriate environment variable:
60+
61+
```bash
62+
# Switch to cloud
63+
USE_CLOUD_INFERENCE=true npm run dev
64+
65+
# Switch back to OpenAI
66+
npm run dev
67+
```
68+
69+
The application will log which inference mode is being used on startup.

β€Žapps/electron/.eslintrc.jsonβ€Ž

Lines changed: 0 additions & 24 deletions
This file was deleted.

β€Žapps/electron/.gitignoreβ€Ž

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,3 +94,6 @@ out/
9494
# Swift Build
9595
.build/
9696
bin/
97+
98+
# VSCode
99+
.vscode/
31.1 KB
Loading
3.13 KB
Loading
522 Bytes
Loading
6.07 KB
Loading
947 Bytes
Loading
1.28 KB
Loading

0 commit comments

Comments
Β (0)