130 lines
3.1 KiB
TypeScript
130 lines
3.1 KiB
TypeScript
// 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 {
|
|
"provider": string;
|
|
"hasApiKey": boolean;
|
|
"hasOpenAIKey": boolean;
|
|
"hasGeminiKey": boolean;
|
|
"demoMode": boolean;
|
|
"evaluationModel": string;
|
|
"transcribeModel": string;
|
|
"realtimeModel": string;
|
|
"speechModel": string;
|
|
"speechVoice": string;
|
|
"geminiEvaluationModels": string[] | null;
|
|
"geminiTranscriptionModels": string[] | null;
|
|
"geminiSpeechModels": string[] | null;
|
|
"geminiSpeechVoice": string;
|
|
}
|
|
|
|
export interface ConfigureRequest {
|
|
"provider": string;
|
|
"apiKey": string;
|
|
"geminiApiKey": string;
|
|
"demoMode": boolean;
|
|
"evaluationModel": string;
|
|
"transcribeModel": string;
|
|
"realtimeModel": string;
|
|
"speechModel": string;
|
|
"speechVoice": string;
|
|
"geminiEvaluationModels": string[] | null;
|
|
"geminiTranscriptionModels": string[] | null;
|
|
"geminiSpeechModels": string[] | null;
|
|
"geminiSpeechVoice": string;
|
|
}
|
|
|
|
export interface ExamConfig {
|
|
"difficulty": string;
|
|
"topics": string[] | null;
|
|
"language": string;
|
|
}
|
|
|
|
export interface ExamReport {
|
|
"sessionId": string;
|
|
"config": ExamConfig;
|
|
"overall": OverallReport;
|
|
"answers": AnswerRecord[] | null;
|
|
"answeredCount": number;
|
|
"totalCount": number;
|
|
"partial": boolean;
|
|
"generatedAt": time$0.Time;
|
|
}
|
|
|
|
export interface GradePrediction {
|
|
"grade": string;
|
|
"probability": number;
|
|
"status": string;
|
|
"description": string;
|
|
}
|
|
|
|
export interface OverallReport {
|
|
"score": number;
|
|
"estimatedBand": string;
|
|
"summary": string;
|
|
"strengths": string[] | null;
|
|
"weaknesses": string[] | null;
|
|
"priorities": string[] | null;
|
|
"targetGrade": string;
|
|
"targetStatus": string;
|
|
"targetProbability": number;
|
|
"gradePredictions": GradePrediction[] | null;
|
|
}
|
|
|
|
export interface Question {
|
|
"index": number;
|
|
"category": string;
|
|
"topic": string;
|
|
"text": string;
|
|
"intent": string;
|
|
}
|
|
|
|
export interface SpeechResponse {
|
|
"audioBase64": string;
|
|
"mimeType": 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;
|
|
}
|