Spaces:
Sleeping
Sleeping
| # -*- coding: utf-8 -*- | |
| """ | |
| Created on Thu Sep 21 22:17:43 2023 | |
| @author: Loges | |
| """ | |
| import streamlit as st | |
| import sentencepiece | |
| from gtts import gTTS | |
| import base64 | |
| import time | |
| from transformers import pipeline, T5Tokenizer, T5ForConditionalGeneration | |
| model=T5ForConditionalGeneration.from_pretrained("Logeswaransr/T5_MineAI_Prototype").to("cpu") | |
| tokenizer=T5Tokenizer.from_pretrained("Logeswaransr/T5_MineAI_Prototype") | |
| pipe=pipeline('text2text-generation', model=model, tokenizer=tokenizer) | |
| greetings=["Hello! My name is MineAI, A specially trained LLM here to assist you on your Mining Related Queries.","How may I help you?"] | |
| st.set_page_config(page_title='Sample Chatbot', layout='wide') | |
| if 'messages' not in st.session_state: | |
| st.session_state.messages=[] | |
| st.subheader("Mine AI") | |
| for message in st.session_state.messages: | |
| with st.chat_message(message['role']): | |
| st.markdown(message['content']) | |
| ## messages element format: {'role':'user', 'content':'<user prompt>'} | |
| if st.session_state.messages==[]: | |
| for gr in greetings: | |
| with st.chat_message("assistant"): | |
| st.markdown(gr) | |
| if gr==greetings[1]: | |
| tts=gTTS(gr) | |
| tts.save('greeting_audio.mp3') | |
| with open('greeting_audio.mp3', 'rb') as file: | |
| greeting_audio_data=file.read() | |
| greeting_audio_base64 = base64.b64encode(greeting_audio_data).decode('utf-8') | |
| greeting_audio_tag = f'<audio autoplay="true" src="data:audio/mp3;base64,{greeting_audio_base64}">' | |
| st.markdown(greeting_audio_tag, unsafe_allow_html=True) | |
| st.session_state.messages.append({ | |
| 'role':'assistant', | |
| 'content': gr}) | |
| audio_stream="response_audio.mp3" | |
| tts=gTTS("Here is your answer") | |
| tts.save(audio_stream) | |
| with open(audio_stream, 'rb') as file: | |
| audio_data=file.read() | |
| audio_base64 = base64.b64encode(audio_data).decode('utf-8') | |
| audio_tag = f'<audio autoplay="true" src="data:audio/mp3;base64,{audio_base64}">' | |
| if prompt:=st.chat_input("Enter your query"): | |
| with st.chat_message("user"): | |
| st.markdown(prompt) | |
| st.session_state.messages.append({ | |
| 'role':'user', | |
| 'content': prompt}) | |
| out=pipe(prompt) | |
| response=out[0]['generated_text'] | |
| # response = f"Analysis: {response}" | |
| with st.chat_message("assistant"): | |
| st.markdown(response) | |
| st.markdown(audio_tag, unsafe_allow_html=True) | |
| st.session_state.messages.append({ | |
| 'role':'assistant', | |
| 'content': response}) | |