--- title: ๐Ÿ˜ Laos Natural Science Chatbot emoji: ๐Ÿ’ฌ colorFrom: yellow colorTo: purple sdk: gradio sdk_version: 6.1.0 app_file: app.py pinned: false hf_oauth: true hf_oauth_scopes: - inference-api --- # ๐Ÿ˜ Laos Natural Science Chatbot (เบงเบดเบ—เบฐเบเบฒเบชเบฒเบ” เบ—เบณเบกเบฐเบŠเบฒเบ” เบก.1-เบก.4) Chatbot เบ•เบปเบงเบ™เบตเป‰เบญเบญเบเปเบšเบšเบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบฎเบฝเบ™เบŠเบฑเป‰เบ™ เบก.1-เบก.4 เปƒเบ™เบงเบดเบŠเบฒเบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”เบ—เบณเบกเบฐเบŠเบฒเบ”เบžเบฒเบชเบฒเบฅเบฒเบง เปƒเบŠเป‰ SeaLLM + JSONL เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบ•เปเบฒเบฅเบฒเบ›เบฐเบซเบงเบฑเบ”เบชเบฒเบ” เปเบฅเบฐ Q&A เบ—เบตเปˆเบ„เบนเป€เบžเบตเปˆเบกเป€เบญเบ‡ (Teacher Panel) เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ”เป‰เบงเบ [Gradio](https://gradio.app) เปเบฅเบฐเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™ Hugging Face Spaces. --- ## โœจ Features - ๐Ÿ‘ฉโ€๐ŸŽ“ **Student Chat** - เบ™เบฑเบเบฎเบฝเบ™เบ–เบฒเบกเบ„เปเบฒเบ–เบฒเบกเบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”เบ—เบณเบกเบฐเบŠเบฒเบ”เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบฅเบฒเบง - เบ„เปเบฒเบ•เบญเบšเบชเบฑเป‰เบ™เป† 2โ€“3 เบ›เบฐเป‚เบซเบเบ เป€เบ‚เบปเป‰เบฒเปƒเบˆเบ‡เปˆเบฒเบ เป€เปเบฒเบฐเบเบฑเบšเบ™เบฑเบเบฎเบฝเบ™ เบก.1-เบก.4 - เบญเบตเบ‡เบˆเบฒเบเบ‚เปเป‰เบกเบนเบ™เปƒเบ™ JSONL เบ•เปเบฒเบฅเบฒ + Q&A เบ—เบตเปˆเบ„เบนเบ•เบฑเป‰เบ‡เป„เบงเป‰ - ๐Ÿ‘ฉโ€๐Ÿซ **Teacher Panel** - เป€เบžเบตเปˆเบก / เปเบเป‰เป„เบ‚ / เบฅเบถเบš Q&A เบกเบท (เธšเบฑเบ™เบ—เบถเบเปƒเบ™ `data/manual_qa.jsonl`) - เบ„เปเบฒเบ•เบญเบšเปƒเปเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ—เบฑเบ™เบ—เบตเปƒเบ™ Student Chat - เป€เบšเบดเปˆเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ Q&A เบ—เบฑเบ‡เปเบปเบ” เปเบฅเบฐเป€เบฅเบทเบญเบเปเบ–เบงเป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚ - ๐Ÿง  **RAG + Embeddings** - เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบ JSONL เบ•เปเบฒเบฅเบฒเบ”เป‰เบงเบ sentence-transformers (embedding-based retrieval) - เป€เบฅเบทเบญเบเบŠเบดเป‰เบ™เบ‚เปเป‰เบกเบนเบ™ (entries) เบ—เบตเปˆเปƒเบเป‰เบ„เบฝเบ‡เบเบฑเบšเบ„เปเบฒเบ–เบฒเบกเบ—เบตเปˆเบชเบธเบ” - เปƒเบŠเป‰ SeaLLM เบ•เบญเบšเบ„เปเบฒเบ–เบฒเบกเป‚เบ”เบเบญเบตเบ‡เบˆเบฒเบ context เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ --- ## ๐Ÿ“ Project structure ```text laos-history-chatbot/ โ”œโ”€โ”€ app.py # Gradio UI (Student Chat + Teacher Panel) โ”œโ”€โ”€ model_utils.py # SeaLLM, RAG, embeddings, chatbot logic โ”œโ”€โ”€ loader.py # Load textbook JSONL + manual_qa.jsonl โ”œโ”€โ”€ qa_store.py # In-memory storage & normalize_question โ”œโ”€โ”€ teacher_panel.py # Teacher Panel actions (save/update/delete/select) โ”œโ”€โ”€ data/ โ”‚ โ”œโ”€โ”€ 1_Year_U_1.jsonl # Curriculum (textbook) data ... (Still have more jsonl that I have to add) โ”‚ โ””โ”€โ”€ manual_qa.jsonl # Manual Q&A from teachers โ”œโ”€โ”€ requirements.txt # Python dependencies โ””โ”€โ”€ README.md # This file