Skip to content

tripmurpy/Project-chatbot-Apotek

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💊 Apotek AI — Telegram Medicine Chatbot (Prototype)

⚠️ STATUS PROYEK: ON-GOING PROTOTYPE ⚠️ Proyek ini masih dalam tahap pengembangan aktif (On-Going) dan berstatus purwarupa (prototype). Beberapa fitur (seperti pemrosesan pesan suara / Voice Notes) mungkin masih dalam tahap integrasi, dan pembaruan arsitektur serta data masih terus dilakukan untuk mencapai versi yang lebih stabil.

Apotek AI adalah Chatbot Telegram berbasis Kecerdasan Buatan (AI) yang dirancang untuk memberikan informasi dan rekomendasi obat menggunakan metode RAG (Retrieval-Augmented Generation). Bot ini didukung oleh vector database dan model bahasa ukuran besar (LLM) untuk memahami keluhan pengguna dan mencari solusi yang relevan dari 50.000+ data obat.


🎯 Fitur Saat Ini & Target Pengembangan

Fitur Status Deskripsi
💬 Natural Text Chat ✅ Selesai Pengguna dapat mengetik keluhan dengan bahasa sehari-hari.
🔍 Semantic Search (RAG) ✅ Selesai Mencari obat paling relevan dari database lokal (50K+ data).
🤖 AI Response (Gemini) ✅ Selesai Menghasilkan respons yang ramah, informatif, dan mudah dipahami.
🇮🇩 Bahasa Indonesia ✅ Selesai Interaksi sepenuhnya menggunakan Bahasa Indonesia.
🎤 Voice Note Processing 🚧 On-Going Konversi pesan suara Telegram (OGG) ke Teks menggunakan Speech-to-Text.
📊 Analytics Dashboard 📅 Terjadwal Dashboard untuk memantau metrik penggunaan bot dan query populer.

🏗️ Arsitektur Sistem (High-Level)

Sistem ini menggabungkan Telegram Bot API dengan RAG engine:

  1. User Input: Pengguna mengirim pesan teks keluhan via Telegram.
  2. Retrieval (ChromaDB): Sistem mengubah teks menjadi vektor (embedding) dan mencari data obat yang paling relevan dari dataset (dimuat ke dalam memori ChromaDB).
  3. Generation (Gemini AI): Konteks obat yang ditemukan digabungkan dengan keluhan pengguna (lewat Prompting) dan diserahkan ke Gemini AI.
  4. Response: Gemini AI meracik jawaban berdasar data obat yang akurat untuk kemudian dikirim kembali ke pengguna Telegram.

📁 Struktur Direktori Proyek

apotek/
│
├── src/                             # Source code utama
│   ├── core/                        # Konfigurasi, variabel environment, dan template prompt
│   ├── services/                    # Business logic (RAG engine & Voice processing)
│   └── bot/                         # Layer Telegram Bot (Command & Message Handlers)
│
├── data/                            # Direktori penyimpanan data
│   └── medicine_dataset.csv         # Database obat mentah (50K+ baris)
│
├── docs/                            # Dokumentasi tambahan
├── tests/                           # Modul pengujian otomatis (Testing)
├── chroma_db/                       # Vector store lokal (Otomatis dibuat saat run pertama)
│
├── main.py                          # Entry point aplikasi bot (Jalankan file ini)
├── requirements.txt                 # Dependensi pustaka Python
├── .env.example                     # Template file environment
└── README.md                        # Dokumentasi ini

⚙️ Tech Stack

Komponen Teknologi yang Digunakan
LLM (Language Model) Google Gemini 2.0 Flash
Embeddings paraphrase-multilingual-MiniLM-L12-v2 (Sentence-Transformers)
Vector Database ChromaDB (Local Storage)
Bot Framework python-telegram-bot (v20+)
Data Processing Pandas

🚀 Panduan Instalasi & Penggunaan (Quick Start)

Karena proyek ini masih berbentuk purwarupa, jalankan instalasi secara manual di lokal komputer atau server Anda.

1. Kloning & Persiapan Lingkungan (Environment)

Pastikan Anda sudah menginstal Python 3.10+.

# Clone repository ini (jika ada di Git) atau masuk ke direktori proyek lokal
cd apotek

# (Opsional) Buat virtual environment agar dependensi tidak bentrok
python -m venv venv
source venv/Scripts/activate # Untuk Windows
# source venv/bin/activate    # Untuk Linux/Mac

# Install semua dependensi yang diperlukan
pip install -r requirements.txt

2. Persiapan Environment Variables

Gandakan file .env.example menjadi .env:

copy .env.example .env  # Windows
# cp .env.example .env  # Linux/Mac

Edit file .env dan masukkan kredensial berikut:

(Opsional) Hanya untuk pengembangan fitur Voice: Instal FFmpeg di komputer Anda (ffmpeg.org).

3. Menjalankan Bot

Jalankan file utama untuk memulai aplikasi:

python main.py

💡 Catatan Penting (First Run): Saat bot pertama kali dijalankan, sistem akan membaca file medicine_dataset.csv dan membuat index (embedding) ke dalam ChromaDB. Proses ini mungkin memakan waktu 2-5 menit (tergantung spesifikasi komputer). Pada proses eksekusi berikutnya (ketika bot direstart), bot akan langsung siap dalam hitungan detik.

4. Interaksi dengan Bot

  • Buka aplikasi Telegram.
  • Cari bot Anda yang sesuai dengan Token dari BotFather.
  • Kirim perintah /start untuk melihat pesan sapaan bot.
  • Ketik keluhan (misalnya: "Kepala saya pusing dari kemarin dan hidung tersumbat, obat apa yang cocok?") lalu bot akan merespons.

📌 Rencana Kedepan (Roadmap Pengembangan)

Sebagai proyek yang masih On-Going, berikut adalah fokus pengembangan selanjutnya:

  • Menyelesaikan integrasi komplit voice_service.py untuk menerima Voice Notes Telegram otomatis.
  • Meningkatkan performa fetching data LLM agar latency lebih rendah.
  • Menyediakan fallback response bila API Gemini mengalami limit atau timeout.
  • Penambahan unit test dan integration test menyeluruh di folder tests/.

Dibuat untuk keperluan prototipe dan pembelajaran.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors