Mungkin untuk rahasia menambahkan 1 versi dengan file JSON (dengan info he dihapus) dan 1 dengan yang digunakan tanpa file json tetapi variabel rahasia)
Langganan chatbase dibatalkan. (Atau dapat menggunakan LLM lain (mungkin Mistral LLM sejak gratis ???) pada 24/1/2025
Juga mungkin perlu memisahkan hanya file yang diperlukan untuk penyebaran dalam repo github terpisah untuk mencegah kesalahan. Karena menambahkan file ekstra lain -lain dapat menyebabkan kesalahan penyebaran !! (Sama untuk '18. Karaoke Event Streamlit App ', yang sekarang memiliki kesalahan karena saya menambahkan file ekstra yang lain -lain ke repo github ... oops ...)
mungkin bisa menempatkan pic dari situs web Streanlit, firebase, chatbase dan figma juga dan
berencana untuk mengubahnya dari yang dapat ditransfer di antara kursus menjadi hanya berfungsi untuk satu kursus ... karena untuk membuatnya dapat ditransfer di antara kursus terlalu sulit
Ini adalah proyek yang dilakukan sebagai bagian dari Program Peluang Penelitian Sarjana Universitas saya (UROP), berjudul 'UROP: Telegram Chatbot untuk pemrogram pemula untuk belajar pengkodean' , diawasi dan diprakarsai oleh Profesor Oka Kurniawan (berikut adalah akun Github-nya), bekerja selama 8 bulan (on-off).
Berikut adalah deskripsi proyek urop:
'' '
Pengodean pembelajaran dapat ditingkatkan secara signifikan ketika peserta didik memiliki umpan balik langsung dan dipersonalisasi. Jumlah peserta didik untuk pengkodean membuat instruktur manusia tidak mungkin memberikan umpan balik langsung dan dipersonalisasi kepada peserta didik. Munculnya AI memberi kita kemungkinan untuk membuat tutor chatbot yang dapat mendukung pelajar di mana saja dan kapan saja. Tujuan dari proyek ini adalah untuk membuat chatbot telegram di mana peserta didik bisa mendapatkan umpan balik terkait dengan kursus pengkodean mereka. Umpan balik harus akurat seperti yang tercermin dalam catatan not atau instruktur.
Chatbot dapat digunakan untuk lembaga mana pun yang mengajarkan pemrograman.
'' '
Proyek ini terdiri dari 2 repositori gitub:
Repositori GitHub ini meng -hosting kode untuk aplikasi web streamlit untuk chatbot telegram dengan chatbase kustom GPT llm model API dan firebase (API) database realtime.
Pendekatan untuk mengembangkan proyek urop ini dibagi menjadi 2 komponen:
Bot telegram yang digunakan proyek ini, model CHATBASE Custom GPT LLM, StreamLit (Python Framework) aplikasi situs web dan tautan Firebase (API):
Berikut adalah direktori untuk menjelaskan tujuan setiap file dalam repositori ini:
File yang diperlukan dalam pembuatan aplikasi web streamLit untuk chatbot telegram dengan chatbase kustom GPT LLM Model API dan Firebase (API) dari database realtime
File tambahan yang bukan bagian dari pembuatan aplikasi Web StreamLit untuk chatbot telegram dengan chatbase kustom GPT llm model API dan firebase (API) database realtime, tetapi termasuk iterasi/versi chatbase chatbase chatbase dan fire -versi chatbase dan fire -inpire chatbase dan fire -detbase chatbase chatbase chatbase chatbase llm)
File tambahan yang bukan bagian dari pembuatan aplikasi Web StreamLit untuk chatbot telegram dengan chatbase kustom kustom GPT LLM Model API dan Firebase (API) Database Realtime, tetapi termasuk perjalanan pembelajaran saya dari beberapa teknologi yang diperlukan yang digunakan dalam proyek ini yang tidak saya kenal
Proses Penyebaran Aplikasi Web StreamLit untuk Chatbot Telegram dengan CHATBASE Custom GPT LLM Model API dan Firebase (API) Database Realtime di StreamLit Cloud
1. '.Streamlit' folder
Saya. file 'config.toml'
File Python utama untuk aplikasi Web StreamLit untuk chatbot telegram dengan chatbase kustom GPT LLM Model API dan Firebase (API) dari database realtime itu sendiri.
2. File 'ReadMe.MD'
File 'README.MD'.
3. File 'firebase_key.json'
{
"type" : "service_account" ,
"project_id" : "urop-telegram-chatbot" ,
"private_key_id" : "d370c3cff86ea75089c60973d19105f90d84fdc7" ,
"private_key" : "-----BEGIN PRIVATE KEY----- n MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC2Yqgt09bJB335 n bN61dlqWY0yFcLv8DPqvHKtpUqzSAvQGdK00zaPlezkd4SKGfohd8z4o0srpUPt9 n 0fLhIPJJJhTjRN7rZpvJOPWiECQfHFXc2OJhOdabDnJoIeth+29RfD5D4t2HUdWO n /OiSKJfNYNAf2sKELJLlPOnXwpa/wfzNhHap50WLjed8OzF+Y57ucFHut/USlsWp n 3uiRdjHod3Sfs0eL+jKfeOdkni7o/E1ytN1Ascvc1OLpbi9h6GyoLLZf8g2O1Nyn n fe26tfRnkYvT1viErxnhQBGUh3hz3SVIsZ4FYyVrlWVwH+U8CJg2foBtbtOZjmEK n PNAC0fi3AgMBAAECggEATMs0iftA3CtJ6Rxkl55qXRkZbrQ9is7CPLpDGFlFyDWT n HybAiVOu12Cvd3vEiEG91GUnfpPm+R9ujRc5/33aVl9w+xKUFCUDolHX5zGJrAnH n w3IUu6BZUrdeB6eEjyCJyhMYuofLA/+6fnbRzDzIUiMZ7tezAGkuPtSLl5vo0ns5 n 1Mw13sSlssc3bjd+bCa23xDamzKWpMFlHJztnbsRVjKXfzMx2f45+snT1Lqo4kk/ n cCpM8QFlMHxLgei7JOKSkEj6LYM9Xn1dRmPJGGSAtlx/2W0/DFrVD4GCLXReKNsz n 4afFN42cZB88pKT/8YB3KoH3o/wA79k4AdsagccGbQKBgQDz3p5Yi1YgvmxWPKxd n pO1cYek2itrpH9YUZirehU01rrdHJvyufFVEoUHoeoXcDHVt++1iHZvZPwt/ZgZq n P2tM5XWY1hlgdDgOb5J2td8jdMJuKBkzGLpnSg0qSEVlsBEsJhajvGIzBIz2Ervk n hz1F3pIwXDZNEFS5ywMrW55WgwKBgQC/dRym9V3g0Y6g2mjAqIANRZ605R3MZpst n N5r9GFSBB/JXo22shLCA0/RL0A3Q8aGblVv9VwHVOi1qaeU8DIcQqJvdKfspIi0J n L8mp3ZraGzknCEHkj0oKGqNCE2Nsfx+dQ6du+u7UOecb22pjqV2UeL6gMerAMf16 n X1ZTL7hevQKBgFyIVObd/9Euz+as4O4rXVEXaakjaMraJJ3a4ltKkzBSWgKqfWgr n jyMaWOrASrhjFc+krr7y4ya8cD1n1flMlQc5bbSPUFOz5W080oMuoTtP21J27pDf n yiLVC0fG4mYiN3HcBe0c1tnq2R2poBenZQ101V16L7RwBOX2bP5vphXHAoGBALX1 n CncOqNr6rm/nQzkeqxxx9yR6v7g8J+xwdWdm0SEUOVjbJGeab9jwF7RZllfm3S1t n ZNC/+Sj6MqF45PkN+ut1IzStKltsdJrPhPxgdUQmLUoQSfd7yuURbellXc+GfbhL n zPvnlkWyhhduj40KMLrjil/bMPzaRcogg31p0/KNAoGBAKNTzPgZSif0PGXPEvhK n zEi5ojwvC9iOIKvmjgXLu+e0zAI27PiiryrfrpQW6CK7RpK9KO2lQ2NUdyOi0MVI n kqMGPLzjVwBKtWMhIwvaZxFJBvCNIg6nE5RSKoXFSYKWqmLPp+2ydPLXGPgAzNL/ n /7+TBiy9OmEkqIbNmwzgiYgR n -----END PRIVATE KEY----- n " ,
"client_email" : "firebase-adminsdk-rvtdl@urop-telegram-chatbot.iam.gserviceaccount.com" ,
"client_id" : "108928779375842545414" ,
"auth_uri" : "https://accounts.google.com/o/oauth2/auth" ,
"token_uri" : "https://oauth2.googleapis.com/token" ,
"auth_provider_x509_cert_url" : "https://www.googleapis.com/oauth2/v1/certs" ,
"client_x509_cert_url" : "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-rvtdl%40urop-telegram-chatbot.iam.gserviceaccount.com" ,
"universe_domain" : "googleapis.com"
}File ini mewakili kunci otetikasi. Rupanya, ketika mengakses ke API (seperti API Firebase), Anda harus memiliki semacam kunci otentikasi, yang merupakan file ini untuk memastikan bahwa hanya pengguna yang berwenang yang dapat mengakses API. Lihat video ini untuk memahami bagaimana kunci otentikasi API Firebase digunakan dengan kode python Anda: https://www.youtube.com/watch?v=s-Ga8c3tovy&t=336s (kode pertama dengan hala)
4. File 'Persyaratan.txt'
streamlit == 1.27 . 2
streamlit_autorefresh == 1.0 . 1
firebase_admin == 6.2 . 0Ini adalah file wajib, sesuai dengan penyebaran aplikasi web streamlit untuk chatbot telegram dengan chatbase kustom GPT llm model API dan firebase (API) Database realtime (Refery 'Python Cloud untuk Dokumentasi pada KITA PERANGKATAN (REFER PERANGKATAN. the Telegram Chatbot integrated with Chatbase custom GPT LLM model API and Firebase (API)'s Realtime Database on Streamlit Cloud' for more information on the deployment process of this Streamlit Web Application for the Telegram Chatbot integrated with Chatbase custom GPT LLM model API and Firebase (API)'s Realtime Database on Streamlit Cloud): https://docs.streamlit.io/streamlit-community-cloud/deploy-your-app (streamlit cloud), yang memungkinkan Anda untuk memberi tahu streamlit (python framework) untuk mengunduh aplikasi eksternal/kerangka kerja yang ditentukan dalam file ini. Terintegrasi dengan chatbase kustom GPT LLM Model API dan Firebase (API) dari database realtime.
Rupanya, file 'Persyaratan.txt' adalah praktik umum di berbagai platform penyebaran di Python, tidak hanya untuk cloud yang diinogasikan. Apakah Anda menggunakan aplikasi Anda pada platform seperti Heroku, AWS, Vercel, atau lainnya, menentukan dependensi dalam file 'Persyaratan.txt' memungkinkan platform untuk memahami dan menginstal paket yang diperlukan.
5. 'streamlit_web_application.py' file
File Python utama untuk aplikasi Web StreamLit untuk chatbot telegram dengan chatbase kustom GPT LLM Model API dan Firebase (API) dari database realtime itu sendiri.
Sumber:
Saya telah memberi label versi masing -masing file bersama dengan deskripsi singkat tentang perbedaan antara versi dalam nama file. Berikut adalah deskripsi yang sedikit lebih rumit tentang perbedaan dalam versi:
Mengapa saya memilih database realtime Firebase alih -alih database MySQL?
Dengan pengetahuan saya yang baru -baru ini dipelajari tentang MySQL, saya ingin mencoba menggunakan database MySQL dalam proyek ini. Namun, saya menyadari bahwa banyak platform hosting basis data seperti Azure Database dan Amazon Web Services memerlukan informasi penagihan Anda untuk mulai menampung database MySQL di atasnya. Saya tidak ingin mengambil risiko kelebihan ditagih karena kemungkinan besar saya tidak akan mempertahankan aplikasi saya yang dibangun karena saya hanya membuat mereka untuk tujuan pendidikan dan bukan untuk produksi. Oleh karena itu, saya memutuskan untuk menggunakan database realtime Relational/NoSQL Firebase karena itu adalah satu -satunya platform hosting database yang tidak memerlukan informasi penagihan.
Karena kurangnya pengetahuan saya di beberapa teknologi yang diperlukan digunakan dalam aplikasi web yang streamlit untuk chatbot telegram yang terintegrasi dengan chatbase kustom kustom LLM model API dan firebase (API) database waktu nyata, saya harus terlebih dahulu mempelajarinya, yang meliputi: yang meliputi:
Prompt Engineering Learn (dari Prompt Engineering Course oleh Deeplearning.ai bekerja sama dengan OpenAI (menggunakan chatgpt sebagai LLM))
Consists of my learning journey of the Prompt Engineering paradigm (online course where I learnt the Prompt Engineering paradigm from: https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/ by DeepLearning.AI, in collaboration with OpenAI titled 'ChatGPT Prompt Engineering for Developers' (only up till the 7th video in the playlist)
Apa itu rekayasa cepat?
Prompt Engineering adalah proses menulis/menyempurnakan prompt AI generatif untuk meningkatkan keakuratan dan efektivitasnya dan mendapatkan output yang diinginkan dari model AI.
Apa yang diminta?
Prompt AI (termasuk model bahasa besar (LLM)) adalah pertanyaan, perintah, atau pernyataan yang Anda masukkan ke dalam model AI (termasuk model bahasa besar (LLM)) untuk memulai respons atau tindakan, memanfaatkan kekuatan pemrosesan bahasa alami (NLP).
(Catatan: Openai GPT Model API (Python Framework) memerlukan langganan pembayaran bulanan: Kode dalam tutorial ini memerlukan API Model GPT Openai (Python Framework) untuk mendapatkan tanggapan dari chatgpt. Namun, API Model OpenAi GPT API (Python Framwork) Access wajib. (Python Framework) Akses, yang membutuhkan pembayaran.
Oleh karena itu, sebagian besar 'output' dari kode dalam tutorial ini akan menjadi output simulasi yang ditampilkan dalam video dalam tutorial ini, yang ditulis dalam file notebook Jupyter)
Sumber:
Figma belajar
Terdiri dari perjalanan belajar saya dari Figma (daftar putar YouTube utama tempat saya mempelajari paradigma teknik yang cepat dari: https://www.youtube.com/playlist?list=plkid0a0xcibuyx3c_nyn13w9z_kkiias oleh Aliena cai, titled 'figma ux (video uxe ux (titory' tilled 'figma ux (videled' figma ux (video uxe ux (Aliena cai, tilled 'figma ux (titoriors' figma ux (Aliena Cai, Tutorial 'figma ux (Aliena cai
Apa itu Figma?
Figma adalah aplikasi web kolaboratif untuk desain antarmuka, dengan fitur offline tambahan diaktifkan oleh aplikasi desktop untuk macOS dan windows. Set fitur FIGMA berfokus pada desain antarmuka pengguna (UI) dan pengalaman pengguna (UX), dengan penekanan pada kolaborasi waktu-nyata, memanfaatkan berbagai editor grafik vektor dan alat pembuatan prototipe.
Aturan penting tentang Figma adalah bahwa Anda tidak boleh memulai apa pun dari awal! Selalu ingat untuk mengambil dari referensi, dan menyalin dari templat situs web yang ada untuk meningkatkan kualitas dan waktu penciptaan prototipe situs web! (Seperti yang disarankan dari video YouTube AJ & Smart)
Sumber:
Apa itu Cloud Streamlit?
Dari Situs Web Resmi Streamlit Cloud: 'StreamLit Cloud adalah produk baru yang memungkinkan Anda membangun, menggunakan, dan berbagi data dari aplikasi Web Streamlit dalam hitungan menit.'
Jujur, dokumentasi tentang cara menggunakan aplikasi web streamLit (python framework) pada cloud streamlit (tautan: https://docs.streamlit.io/streamlit-community-cloud/deploy-yapp) menjelaskan langkah dengan sangat jelas tentang cara menggunakan aplikasi streamlit streamlit pada streamlit pada streamlit cloud. Setelah digunakan dengan benar, saya mendapatkan tautan langsung 'streamlit.io' ke aplikasi Web StreamLit, yang kemudian dapat saya bagikan dengan orang lain untuk mencoba aplikasi web streamlit ini.
Menangani informasi sensitif sebagai 'rahasia'/variabel lingkungan pada cloud streamlit:
Ketika saya mencoba untuk mendorong kunci pribadi basis data Firebase atau tombol privat API model GPT Custom Custom GPT LLM ke repositori GitHub ini secara langsung, saya terus mendapatkan peringatan keamanan bahwa 'rahasia' saya diekspos dari GitHub. I did not care about it at first, but it became an issue when Firebase Realtime Database's private keys keeps resetting and gets cancelled whenever the private key is detected to be exposed publicly, causing the deployed Streamlit website application to stop working, and I had to re-generate new unique private keys from the Firebase website again which is very troublesome and the same issue will occur if I try to push the Firebase Realtime Database's private keys onto this Repositori GitHub lagi.
Oleh karena itu, saya menemukan bahwa berbagai platform penyebaran, tidak hanya untuk cloud yang diinogasikan, apakah Anda menggunakan aplikasi Anda pada platform seperti Heroku, AWS, Vercel, atau lainnya, Anda dapat menambahkan 'Rahasia'/Variabel Lingkungan secara langsung pada aplikasi yang digunakan pada Platform yang dieksposikan.
Khususnya untuk cloud streamlit, Anda dapat menambahkan variabel 'Rahasia'/Lingkungan secara langsung pada aplikasi yang digunakan pada cloud streamlit dan mempelajari cara menggunakan variabel 'Rahasia'/Lingkungan yang ditambahkan ini pada aplikasi yang dikerahkan pada Cloud Streamlit dengan mengikuti dokumentasi ini (tautan: https:/blog.sstreamlit.io/io/tautan.
Berikut adalah contoh bagaimana saya melakukannya di aplikasi web streamlit ini untuk chatbot telegram dengan chatbase kustom GPT llm model API dan firebase (API) database realtime di streamlit cloud:
fb_credentials = json.loads(st.secrets['FIREBASE_DB_CONVERSATIONS'])
if "conversations" not in firebase_admin._apps:
# Initialize Firebase
credentials_object_conversations = firebase_admin.credentials.Certificate(fb_credentials)
firebase_admin.initialize_app(credentials_object_conversations, {
'databaseURL': 'https://urop-telegram-chatbot-default-rtdb.asia-southeast1.firebasedatabase.app/'
}, name='conversations')
# Get a reference to the database
reference_to_database_conversations = db.reference('/', app=firebase_admin.get_app('conversations'))
Sumber: