""" Hiền Concept — bge-m3 Embedding Service Lightweight HF Space: gradio + sentence-transformers only (~300MB) API: POST /api/predict → 1024-dim float list """ import gradio as gr from sentence_transformers import SentenceTransformer print("📥 Loading BAAI/bge-m3...") model = SentenceTransformer("BAAI/bge-m3") print("✅ bge-m3 ready!") def embed(text: str) -> list: """Embed text with bge-m3. Called by Vercel chatbot via Gradio API.""" if not text or not text.strip(): return [] vec = model.encode(text.strip(), normalize_embeddings=True) return vec.tolist() with gr.Blocks(title="Hiền Embed") as demo: gr.Markdown("# bge-m3 Embedding API\n1024-dim vectors — used by Hiền Concept chatbot") txt = gr.Textbox(label="Text", placeholder="chi phí là bao nhiêu?") btn = gr.Button("Embed") out = gr.JSON(label="Embedding (1024-dim)") btn.click(fn=embed, inputs=txt, outputs=out, api_name="embed") demo.launch()