Spaces:
Running
Running
| """ | |
| Hugging Face Spaces compatible app | |
| """ | |
| import os | |
| import gradio as gr | |
| from main import app as fastapi_app | |
| # Gradio wrapper cho Hugging Face Spaces | |
| def create_gradio_interface(): | |
| """ | |
| Tạo Gradio interface để deploy trên Hugging Face Spaces | |
| """ | |
| with gr.Blocks(title="Event Social Media Embeddings API") as demo: | |
| gr.Markdown(""" | |
| # 🔍 Event Social Media Embeddings API | |
| API để embeddings và search multimodal (text + images) với **Jina CLIP v2** + **Qdrant Cloud** | |
| ## 🌟 Features: | |
| - ✅ Multimodal: Text + Image embeddings | |
| - ✅ Tiếng Việt: 100% support | |
| - ✅ High Performance: ONNX + HNSW | |
| - ✅ Cloud: Qdrant Cloud | |
| ## 📡 API Endpoints: | |
| - `POST /index` - Index data | |
| - `POST /search` - Hybrid search | |
| - `POST /search/text` - Text search | |
| - `POST /search/image` - Image search | |
| ### 🔗 API Docs: | |
| Truy cập `/docs` để xem API documentation đầy đủ | |
| """) | |
| gr.Markdown("### API is running at the `/docs` endpoint") | |
| return demo | |
| # Mount FastAPI app | |
| demo = create_gradio_interface() | |
| # Wrap FastAPI với Gradio | |
| app = gr.mount_gradio_app(fastapi_app, demo, path="/") | |
| if __name__ == "__main__": | |
| import uvicorn | |
| uvicorn.run(app, host="0.0.0.0", port=7860) | |