ai: call transcripts (each side recorded, merged by time) and summaries; search on Recordings
This commit is contained in:
1 parent
d9f9c6e444
commit
4d331fb70e
56 files changed
+5186
-37
No files matched your search
@@ -70,6 +70,11 @@ export type RecordingDto = {
|
||||
startedAt: string;
|
||||
durationMs: number | null;
|
||||
sizeBytes: number | null;
|
||||
/** Spec 10 §3, when call transcripts (and summaries) are on. */
|
||||
summary: string | null;
|
||||
hasTranscript: boolean;
|
||||
/** Why there's no transcript or summary. */
|
||||
aiError: string | null;
|
||||
call: {
|
||||
id: string;
|
||||
direction: CallDirection;
|
||||
@@ -79,6 +84,13 @@ export type RecordingDto = {
|
||||
} | null;
|
||||
};
|
||||
|
||||
/** GET /api/recordings/:id/transcript: who said what, from which second of the recording. */
|
||||
export type TranscriptDto = {
|
||||
lines: { side: 'caller' | 'other'; at: number; text: string }[];
|
||||
summary: string | null;
|
||||
aiError: string | null;
|
||||
};
|
||||
|
||||
/** GET /api/reports/summary and /api/reports/queues (04 §7.3). Both default to the last 30 days. */
|
||||
export const ReportRangeSchema = z
|
||||
.object({ from: z.iso.date().optional(), to: z.iso.date().optional() })
|
||||
|
||||
@@ -100,6 +100,10 @@ export const SettingsSchemas = {
|
||||
'ai.stt': AiEndpointSchema.nullable().default(null),
|
||||
'ai.tts': AiTtsEndpointSchema.nullable().default(null),
|
||||
'ai.voicemailTranscripts': z.boolean().default(false),
|
||||
/** Recorded calls: each side recorded on its own, then written out (spec 10 §3). */
|
||||
'ai.callTranscripts': z.boolean().default(false),
|
||||
/** …and summarized by ai.llm. */
|
||||
'ai.callSummaries': z.boolean().default(false),
|
||||
// Not in 02 §3's table but used by the generator (03 §3).
|
||||
'system.transportHash': z.string().nullable().default(null),
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user