Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI, Query | |
| from pydantic import BaseModel | |
| from typing import List, Optional | |
| from src.ontology.matcher import ConceptMatcher | |
| from src.parser.parser import Parser | |
| from src.enrichment.enricher import Enricher | |
| from src.prompt_builder.builder import PromptBuilder | |
| from src.embeddings.engine import EmbeddingEngine | |
| from src.ontology.models import PromptIR | |
| from src.knowledge.engine import KnowledgeEngine | |
| from src.runtime.onnx_runtime import ONNXEmbeddingEngine | |
| app = FastAPI(title="Prompt Compiler API v3.3") | |
| # Initialize components | |
| ONTOLOGY_DIR = "data/ontology" | |
| INDEX_PATH = "data/faiss_indices_onnx" | |
| KNOWLEDGE_DB = "data/knowledge/build/knowledge.db" | |
| matcher = ConceptMatcher(ONTOLOGY_DIR) | |
| knowledge_engine = KnowledgeEngine(KNOWLEDGE_DB) | |
| embedding_engine = ONNXEmbeddingEngine(index_dir=INDEX_PATH) | |
| embedding_engine.load_index() | |
| class CompileRequest(BaseModel): | |
| text: str | |
| safe_mode: bool = True | |
| semantic: bool = True | |
| profile: str = "generic" | |
| language: str = "es" # Default to 'es' to enable the Always-English translator | |
| class CompileResponse(BaseModel): | |
| ir: PromptIR | |
| prompt: dict | |
| async def compile_prompt(request: CompileRequest): | |
| # Select parser based on semantic flag and language | |
| # We create a new parser instance or use a cached one to handle the translation state | |
| current_parser = Parser(matcher, embedding_engine=embedding_engine, language=request.language) | |
| enricher = Enricher(matcher, knowledge_engine=knowledge_engine) | |
| builder = PromptBuilder(profile_name=request.profile) | |
| ir = current_parser.parse(request.text, safe_mode=request.safe_mode) | |
| ir = enricher.enrich(ir) | |
| prompt = builder.build(ir) | |
| return CompileResponse(ir=ir, prompt=prompt) | |
| async def health(): | |
| return {"status": "ok"} | |