feat: Add external expert sources (Wikidata SPARQL + ConceptNet API)
- Add expert_cache.py: TTL-based in-memory cache (1 hour default) - Add expert_source_service.py: WikidataProvider and ConceptNetProvider - Wikidata SPARQL queries for occupations with Chinese labels - ConceptNet API queries for occupation-related concepts - Random selection from cached pool - Update schemas.py: Add ExpertSource enum (llm/wikidata/conceptnet) - Update ExpertTransformationRequest with expert_source and expert_language - Update router: Conditionally use external sources with LLM fallback - New SSE events: expert_source, expert_fallback - Update frontend types with ExpertSource 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -230,6 +230,8 @@ export interface ExpertTransformationDAGResult {
|
||||
results: ExpertTransformationCategoryResult[];
|
||||
}
|
||||
|
||||
export type ExpertSource = 'llm' | 'wikidata' | 'conceptnet';
|
||||
|
||||
export interface ExpertTransformationRequest {
|
||||
query: string;
|
||||
category: string;
|
||||
@@ -237,6 +239,8 @@ export interface ExpertTransformationRequest {
|
||||
expert_count: number; // 2-8
|
||||
keywords_per_expert: number; // 1-3
|
||||
custom_experts?: string[]; // ["藥師", "工程師"]
|
||||
expert_source?: ExpertSource; // 專家來源 (default: 'llm')
|
||||
expert_language?: string; // 外部來源語言 (default: 'zh')
|
||||
model?: string;
|
||||
temperature?: number;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user