Files
ALwrity/frontend/src/services/writingAssistantService.ts
2025-11-05 08:51:00 +05:30

47 lines
1.1 KiB
TypeScript

export interface WASource {
title: string;
url: string;
text?: string;
author?: string;
published_date?: string;
score: number;
}
export interface WASuggestion {
text: string;
confidence: number;
sources: WASource[];
}
export interface WASuggestResponse {
success: boolean;
suggestions: WASuggestion[];
}
class WritingAssistantService {
private baseUrl: string;
constructor() {
// Consistent API URL pattern - no hardcoded localhost fallback
this.baseUrl = process.env.REACT_APP_API_URL || process.env.REACT_APP_BACKEND_URL || '';
}
async suggest(text: string): Promise<WASuggestion[]> {
const resp = await fetch(`${this.baseUrl}/api/writing-assistant/suggest`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ text, max_results: 1 })
});
if (!resp.ok) {
const t = await resp.text();
throw new Error(`WA HTTP ${resp.status}: ${t}`);
}
const data: WASuggestResponse = await resp.json();
return data.suggestions || [];
}
}
export const writingAssistantService = new WritingAssistantService();
export default writingAssistantService;