Files
opic/frontend/bindings/opiccoach/models.ts
T

93 lines
2.1 KiB
TypeScript
Raw Normal View History

2026-06-26 00:06:07 +09:00
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as time$0 from "../time/models.js";
export interface AnswerEvaluation {
"score": number;
"keywords": string[] | null;
"strengths": string[] | null;
"improvements": string[] | null;
"feedback": string;
}
export interface AnswerRecord {
"question": Question;
"transcript": string;
"durationSec": number;
"evaluation": AnswerEvaluation;
"answeredAt": time$0.Time;
"audioPresent": boolean;
}
export interface AppSettings {
"hasApiKey": boolean;
"demoMode": boolean;
"evaluationModel": string;
"transcribeModel": string;
"realtimeModel": string;
}
export interface ConfigureRequest {
"apiKey": string;
"demoMode": boolean;
"evaluationModel": string;
"transcribeModel": string;
"realtimeModel": string;
}
export interface ExamConfig {
"difficulty": string;
"topics": string[] | null;
"language": string;
}
export interface ExamReport {
"sessionId": string;
"config": ExamConfig;
"overall": OverallReport;
"answers": AnswerRecord[] | null;
"generatedAt": time$0.Time;
}
export interface OverallReport {
"score": number;
"estimatedBand": string;
"summary": string;
"strengths": string[] | null;
"priorities": string[] | null;
}
export interface Question {
"index": number;
"category": string;
"topic": string;
"text": string;
"intent": string;
}
export interface StartSessionResponse {
"sessionId": string;
"question": Question;
"totalCount": number;
}
export interface SubmitAnswerRequest {
"sessionId": string;
"questionIdx": number;
"audioBase64": string;
"audioMime": string;
"transcript": string;
"durationSec": number;
}
export interface SubmitAnswerResponse {
"transcript": string;
"evaluation": AnswerEvaluation;
"next"?: Question | null;
"completed": boolean;
"progress": number;
}