File size: 4,673 Bytes
e294914 cab263c d022aab 7c29ee2 1581bbf e294914 d5436e0 f8dfb0f d63135e e294914 d022aab 7c29ee2 42b403c e294914 7c29ee2 e294914 0f596d3 e294914 0f596d3 8a5897f 0f596d3 e294914 4affef3 d834bcd d5436e0 e294914 83cf282 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# version - ArcticMonkeys:30.07.24
# python core libraries
import re
import psutil
# streamlit
import streamlit as st
# components from other authors
from streamlit_mic_recorder import mic_recorder
# core modules
from audio_processing.A2T import A2T
from audio_processing.T2A import T2A
from llm.utils.chat import Conversation
# utils modules
from utils.keywords import keywords
from utils.prompt_toggle import select_prompt, load_prompts
from utils.documentation import Documentation
# TODO:
# * Зробити в utils можливість для використання різних промптів -> Done
# * Додати як робив на HF хто на фото -> agent
# * Додати можливіть малюнками вирішувати мат проблеми -> agent
# * Додати моливість створювати/редагувати докменти(pdf, docx) -> agent
prompts = load_prompts()
doc = Documentation()
chat = Conversation()
t2a = T2A()
def remove_labels_with_regex(text: str):
pattern = r'^(Human:|AI:|Chelsea:)\s*'
cleaned_text = re.sub(pattern, '', text, flags=re.MULTILINE)
return cleaned_text
def main():
try:
mic = mic_recorder(start_prompt="Record", stop_prompt="Stop", just_once=True, use_container_width=True)
if mic is not None:
a2t = A2T(mic["bytes"])
text = a2t.predict()
prompt = select_prompt(input_text=text, prompts=prompts, keywords=keywords)
print(f"Prompt:\n{prompt}")
output_from_chat = chat.chatting(prompt=prompt if prompt is not None else text)
response = remove_labels_with_regex(text=output_from_chat)
t2a.autoplay(response)
if response:
st.markdown(f"Your input: {text}")
st.markdown(f"Chelsea response: {response}")
prompt = None
response = None
print(f"Prompt: {prompt}, response: {response}")
except Exception as e:
print(f"An error occurred in main finction, reasone is: {e}")
doc.execution()
if __name__ == "__main__":
print(f"Total Memory: {psutil.virtual_memory().total / (1024**3):.2f} GB")
print(f"Available Memory: {psutil.virtual_memory().available / (1024**3):.2f} GB")
print(f"CPU Cores: {psutil.cpu_count()}")
print(f"CPU Usage: {psutil.cpu_percent()}%")
main()
footer="""
<style>
/* Common styles for the footer */
.footer {
position: fixed;
left: 0;
bottom: 0;
width: 100%;
height: 60px; /* Set a fixed height for consistency */
font-size: 14px; /* Adjust font size for readability */
text-align: center;
padding: 15px 0; /* Reduced padding */
transition: color 0.3s, background-color 0.3s;
}
.footer p {
margin: 0; /* Remove default margins */
font-size: 18px; /* Adjust font size as needed */
}
a:link, a:visited {
text-decoration: dotted;
color: inherit; /* Use current text color */
}
a:hover, a:active {
background: linear-gradient(to right, #ffe44d, #ffdd1a, #ffd700, #ffd900);
-webkit-text-fill-color: transparent;
-webkit-background-clip: text;
}
.footer a:hover {
color: #ff4500; /* Different hover color */
}
/* Light mode styles */
@media (prefers-color-scheme: light) {
a:link, a:visited {
color: #0056b3; /* Blue color for links */
}
.footer a:hover {
color: #ff4500; /* Hover color for light mode */
}
}
/* Dark mode styles */
@media (prefers-color-scheme: dark) {
a:link, a:visited {
color: #ffd700; /* Gold color for links in dark mode */
}
.footer a:hover {
color: #ffa500; /* Hover color for dark mode */
}
}
</style>
<div class="footer">
<p>Please support the project on <a href="https://buymeacoffee.com/cineai" target="_blank">Buy Me a Coffee</a></p>
</div>
"""
# st.markdown(footer,unsafe_allow_html=True) |