Peut-être que pour les secrets, ajoutez 1 version avec le fichier JSON (avec les informations effacées) et 1 avec celle déployée sans le fichier JSON mais les variables secrets)
L'abonnement Chatbase est annulé. (Sinon, peut utiliser un autre LLM (peut-être le Mistral LLM depuis son gratuit ???) le 24/1/2025
Pourrait également avoir besoin de séparer uniquement les fichiers nécessaires pour le déploiement dans un repo GitHub séparé afin d'éviter l'erreur. Cuz ajoutant des fichiers supplémentaires divers peut entraîner une erreur de déploiement !! (Idem pour le '18. Karaoke Event Streamlit App ', qui a maintenant des erreurs car j'ai ajouté des fichiers supplémentaires divers à son repo github ... oups ...)
Peut peut-être mettre une photo du site Web Streanlit, Firebase, Chatbase et Figma aussi et le
Prévoyez de le changer de transférable entre les cours pour ne fonctionner que pour un seul cours ... car le rendre transférable entre les cours est trop difficile
Ceci est un projet réalisé dans le cadre du programme d'opportunités de recherche de premier cycle de mon université (UROP), intitulé `` Urop: Telegram Chatbot pour les programmeurs novices pour apprendre le codage '' , supervisé et lancé par le professeur Oka Kurniawan (voici son compte Github), en train de faire un travail de 8 mois de (on-off).
Voici la description du projet UROP:
'' '
Le codage d'apprentissage peut être considérablement amélioré lorsque les apprenants ont des commentaires immédiats et personnalisés. Le nombre d'apprenants à codage empêche les instructeurs humains de donner des commentaires immédiats et personnalisés aux apprenants. La montée en puissance de l'IA nous donne la possibilité de créer un tutor de chatbot qui peut soutenir les apprenants n'importe où et à tout moment. Le but de ce projet est de créer un chatbot télégramme où les apprenants peuvent obtenir des commentaires liés à leurs cours de codage. Les commentaires doivent être exacts, comme en témoigne l'ensemble de problèmes de notes ou d'instructeur.
Le chatbot peut être utilisé pour toute institution qui enseigne la programmation.
'' '
Ce projet est composé de 2 référentiels GitHub:
Ce référentiel GitHub héberge le code de l'application Web Streamlit pour le chatbot Telegram avec la base de données en temps réel GPT GPT LLM Model et Firebase (API) personnalisée.
L'approche pour développer ce projet UROP est divisée en 2 composantes:
Le bot télégramme déployé de ce projet, le modèle GPT LLM personnalisé de chatbase, Streamlit (Python Framework), liens d'application de site Web de Fire-Base (API):
Voici un répertoire pour expliquer l'objectif de chaque fichier dans ce référentiel:
Fichiers requis dans la création de l'application Web Streamlit pour le chatbot télégramme avec la base de données en temps réel GPT LLM du chatbase personnalisé et Firebase (API)
Des fichiers supplémentaires qui ne font pas partie de la création de l'application Web Streamlit pour le chatbot Telegram avec la base de données réelle de Chatbase personnalisé GPT LLM, mais comprennent les itérations / versions / versions / prototypes de la télégramme avec Télégrammes de la parole avec le modèle de chat de chatbase CHATBAS
Des fichiers supplémentaires qui ne font pas partie de la création de l'application Web Streamlit pour le chatbot télégramme avec la base de données en temps réel de Chatbase personnalisé GPT LLM, mais incluent mon parcours d'apprentissage de certaines des technologies requises dans ce projet que je ne connaissais pas avec
Processus de déploiement de l'application Web Streamlit pour le chatbot télégramme avec la base de données en temps réel GPT LLM personnalisé de Chatbase sur Streamlit Cloud
1. '.Streamlit' dossier
je. Fichier 'config.toml'
Le fichier Python principal de l'application Web Streamlit pour le chatbot Telegram avec l'API du modèle GPT LLM personnalisé de chatbase et Firebase (API) lui-même.
2. Fichier «Readme.md»
Le fichier 'readme.md'.
3. Fichier '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"
}Ce fichier représente la clé d'auteur. Apparemment, lorsque vous accédez aux API (comme l'API Firebase), vous devrez avoir une sorte de clé d'authentification, ce que ce fichier est pour vous assurer que seuls les utilisateurs autorisés peuvent accéder à l'API. Reportez-vous à cette vidéo pour comprendre comment la clé d'authentification API Firebase est utilisée avec votre code Python: https://www.youtube.com/watch?v=s-ga8c3tovy&t=336s (code d'abord avec hala)
4. Fichier «exigences.txt»
streamlit == 1.27 . 2
streamlit_autorefresh == 1.0 . 1
firebase_admin == 6.2 . 0This is a compulsory file, in accordance to the deployment of Streamlit Web Application for the Telegram Chatbot with Chatbase custom GPT LLM model API and Firebase (API)'s Realtime Database in Streamlit Cloud as described in the documentation on how to deploy a Streamlit (Python Framework) Web Application on Streamlit Cloud (refer to the section below '4. Deployment Process of the Streamlit Web Application for the Telegram Chatbot intégré à la base de données réel GPT LLM Model API et à Firebase (API) sur le cloud Streamlit `` Pour plus d'informations sur le processus de déploiement de cette application Web Streamlit pour le télégramme CHATBOT intégré à la base de données en temps réel Chatbase Custom GPT): https://docs.streamlit.io/streamlit-communnity-cloud/deploy-your-app (Streamlit Cloud), qui vous permet de dire à Streamlit (Python Framework) pour télécharger les bibliothèques externes / frameworks / packages spécifiés dans cette application de web `` exigence Chatbase personnalisé GPT LLM Model API et Firebase (API) Base de données en temps réel.
Apparemment, le fichier «exigences.txt» est une pratique courante sur diverses plates-formes de déploiement dans Python, pas seulement pour Streamlit Cloud. Que vous déployiez vos applications sur des plates-formes comme Heroku, AWS, Vercel ou autres, en spécifiant les dépendances dans un fichier «exigences.txt» permet à la plate-forme de comprendre et d'installer les packages nécessaires.
5. Fichier 'streamlit_web_application.py'
Le fichier Python principal de l'application Web Streamlit pour le chatbot Telegram avec l'API du modèle GPT LLM personnalisé de chatbase et Firebase (API) lui-même.
Source (s):
J'ai étiqueté la version de chacun des fichiers ainsi qu'une brève description des différences entre les versions des noms de fichiers. Voici une description légèrement plus élaborée des différences de versions:
Pourquoi ai-je choisi la base de données en temps réel de Firebase au lieu des bases de données MySQL?
Avec ma connaissance récemment apprise de MySQL, je voulais essayer d'utiliser des bases de données MySQL dans ce projet. Cependant, j'ai réalisé que de nombreuses plates-formes d'hébergement de base de données telles que Azure Database et Amazon Web Services nécessitent vos informations de facturation afin de commencer à héberger des bases de données MySQL. Je ne voulais pas prendre le risque d'être surfacturé car je ne maintiendrai probablement pas ma demande construite car je les ai créées uniquement à des fins d'éducation et non pour la production. Par conséquent, j'ai décidé d'utiliser à la place la base de données relationnelle / NOSQL de Firebase de Firebase, car c'est la seule plate-forme d'hébergement de base de données qui n'a pas besoin d'informations de facturation.
En raison de mon manque de connaissances dans certaines des technologies requises utilisées dans l'application Web Streamlit pour le chatbot télégramme intégré à la base de données en temps réel de Chatbase personnalisé GPT LLM, j'ai dû d'abord les apprendre, qui comprend:
Inside Engineering Learn (du cours d'ingénierie rapide par Deeplearning.ai en collaboration avec OpenAI (en utilisant le chatppt comme 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)
Qu'est-ce que l'ingénierie rapide?
L'ingénierie rapide est le processus d'écriture / raffinage d'une invite d'IA générative pour améliorer sa précision et son efficacité et obtenir les sorties souhaitées des modèles d'IA.
Quelles sont les invites?
Une IA (y compris des modèles de langues grands (LLM)) est une question, une commande ou une déclaration que vous entrez dans un modèle d'IA (y compris des modèles de langage grand (LLM)) pour initier une réponse ou une action, exploitant la puissance du traitement du langage naturel (PNL).
(Remarque: l'Openai GPT Model API (Python Framework) nécessite un abonnement de paiement mensuel: Les codes de ce didacticiel nécessitent l'API Openai GPT Model (Python Framework) afin d'obtenir l'accès à ChatGpt. ce qui nécessite un paiement.
Par conséquent, la plupart des «sorties» du code de ce tutoriel seront la sortie simulée affichée dans les vidéos de ce tutoriel, écrite dans des fichiers de carnet de jupyter)
Source (s):
Figma apprend
Consists of my learning journey of Figma (main Youtube playlist where I learnt the Prompt Engineering paradigm from: https://www.youtube.com/playlist?list=PLKId0A0XCIbUYx3c_NYn13W9Z_kkIiA2m by Aliena Cai, titled 'Figma UX Tutorial by Aliena' (only up till the 4th video in the playlist)
Qu'est-ce que Figma?
Figma est une application Web collaborative pour la conception d'interface, avec des fonctionnalités hors ligne supplémentaires activées par les applications de bureau pour macOS et Windows. L'ensemble de fonctionnalités de FIGMA se concentre sur l'interface utilisateur (UI) et la conception de l'expérience utilisateur (UX), en mettant l'accent sur la collaboration en temps réel, en utilisant une variété d'éditeurs graphiques vectoriels et d'outils de prototypage.
Une règle importante sur Figma est que vous ne devriez jamais démarrer à partir de zéro! N'oubliez pas de retirer des références et de copier des modèles de site Web existants pour augmenter la qualité et l'heure de création du prototype du site Web! (comme indiqué par la vidéo YouTube d'AJ & Smart)
Source (s):
Qu'est-ce que le cloud rationalisé?
À partir du site Web officiel du cloud Streamlit: «Streamlit Cloud est un nouveau produit qui vous permet de créer, de déployer et de partager des données à partir des applications Web rationalisées en quelques minutes.
Honnêtement, la documentation sur la façon de déployer une application Web Streamlit (Python Framework) sur Streamlit Cloud (lien: https://docs.Streamlit.io/streamlit-communnity-cloud/deploy-your-app) explique très clairement étape par étape sur la façon de déployer une application Web Streamlit sur le cloud Streamlit. Une fois déploié correctement, j'ai obtenu un lien direct 'streamlit.io' vers l'application Web Streamlit, que je peux ensuite partager avec d'autres pour essayer cette application Web Streamlit.
Gestion des informations sensibles en tant que variables «secrets» / environnement sur le cloud rationalisé:
Lorsque j'ai essayé de pousser les touches privées de la base de données de Firebase en temps réel ou la clé privée du modèle GPT LLM personnalisé sur ce référentiel GitHub directement, j'ai continué à obtenir un avertissement de sécurité que mes «secrets» sont exposés à partir de 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 Référentiel GitHub à nouveau.
Par conséquent, j'ai découvert que diverses plates-formes de déploiement, non seulement pour Streamlit Cloud, que vous déployiez vos applications sur des plateformes comme Heroku, AWS, Vercel ou d'autres, vous pouvez ajouter des variables de «secrets» / environnement directement sur les applications déployées sur les plates-formes de déploiement elles-mêmes, éliminant ainsi le risque de sécurité des «secrets» exposés sur GitHub.
Plus précisément pour le cloud Streamlit, vous pouvez ajouter des variables «secrets» / environnement directement sur les applications déployées sur Streamlit Cloud et apprendre à utiliser ces variables `` Secrets '' / Environment » ajoutées sur les applications déployées sur Streamlit Cloud dans le code en suivant cette documentation (lien: https://blog.streamlit.io/secrets-ins-sharings-apps-ps/).
Voici un exemple de la façon dont je l'ai fait dans cette application Web Streamlit pour le chatbot télégramme avec API du modèle GPT LLM personnalisé de chatbase et Firebase (API) sur 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'))
Source (s):