Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -1,7 +1,8 @@
|
|
1 |
import streamlit as st
|
2 |
-
from transformers import
|
|
|
3 |
|
4 |
-
# بارگذاری مدل
|
5 |
@st.cache_resource
|
6 |
def load_model():
|
7 |
tokenizer = AutoTokenizer.from_pretrained("HooshvareLab/bert-fa-base-uncased")
|
@@ -10,81 +11,39 @@ def load_model():
|
|
10 |
|
11 |
tokenizer, model = load_model()
|
12 |
|
13 |
-
#
|
14 |
def generate_response(text):
|
15 |
-
inputs = tokenizer(text, return_tensors="pt")
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
|
|
20 |
return response
|
21 |
|
|
|
22 |
def main():
|
23 |
st.set_page_config(page_title="دستیار هوش مصنوعی", layout="wide")
|
24 |
-
st.title("دستیار هوش مصنوعی
|
25 |
|
26 |
-
#
|
27 |
if "messages" not in st.session_state:
|
28 |
st.session_state.messages = []
|
29 |
|
30 |
-
# نمایش
|
31 |
-
|
32 |
-
|
|
|
|
|
|
|
33 |
|
34 |
-
#
|
35 |
-
|
36 |
-
<script>
|
37 |
-
// تابع ارسال پیام به Streamlit
|
38 |
-
function sendMessage() {
|
39 |
-
var userInput = document.getElementById("user-input").value;
|
40 |
-
document.getElementById("user-input").value = ""; // پاک کردن ورودی
|
41 |
-
// اضافه کردن پیام کاربر به لیست پیامها
|
42 |
-
var chatMessages = document.getElementById("chat-messages");
|
43 |
-
var newMessage = document.createElement("div");
|
44 |
-
newMessage.classList.add("message", "user-message");
|
45 |
-
newMessage.innerText = userInput;
|
46 |
-
chatMessages.appendChild(newMessage);
|
47 |
-
// ارسال پیام به Streamlit
|
48 |
-
Streamlit.setComponentValue("user-input", userInput);
|
49 |
-
}
|
50 |
-
|
51 |
-
// دریافت پاسخ از Streamlit و نمایش اون
|
52 |
-
Streamlit.on('update', function() {
|
53 |
-
var response = Streamlit.getComponentValue("response");
|
54 |
-
if (response) {
|
55 |
-
// اضافه کردن پیام به لیست پیامها
|
56 |
-
var chatMessages = document.getElementById("chat-messages");
|
57 |
-
var newMessage = document.createElement("div");
|
58 |
-
newMessage.classList.add("message", "assistant-message");
|
59 |
-
newMessage.innerText = response;
|
60 |
-
chatMessages.appendChild(newMessage);
|
61 |
-
}
|
62 |
-
});
|
63 |
-
|
64 |
-
// ارسال پیام با فشردن Enter
|
65 |
-
var userInput = document.getElementById("user-input");
|
66 |
-
userInput.addEventListener("keyup", function(event) {
|
67 |
-
if (event.keyCode === 13) {
|
68 |
-
event.preventDefault();
|
69 |
-
document.getElementById("send-button").click();
|
70 |
-
}
|
71 |
-
});
|
72 |
-
</script>
|
73 |
-
</body>
|
74 |
-
""")
|
75 |
-
|
76 |
-
st.components.v1.html(html_content, height=700, scrolling=True)
|
77 |
-
|
78 |
-
# دریافت پیام از Session State
|
79 |
-
user_input = st.components.v1.text_input("user-input", value="", key="user_input")
|
80 |
if user_input:
|
81 |
st.session_state.messages.append({"role": "user", "content": user_input})
|
82 |
response = generate_response(user_input)
|
83 |
st.session_state.messages.append({"role": "assistant", "content": response})
|
84 |
-
|
85 |
-
# ارسال پاسخ به Session State
|
86 |
-
if st.session_state.messages:
|
87 |
-
st.components.v1.text_area("response", value=st.session_state.messages[-1]["content"], key="response")
|
88 |
|
89 |
if __name__ == "__main__":
|
90 |
-
main()
|
|
|
1 |
import streamlit as st
|
2 |
+
from transformers import AutoTokenizer, AutoModelForSequenceClassification
|
3 |
+
import torch
|
4 |
|
5 |
+
# بارگذاری مدل
|
6 |
@st.cache_resource
|
7 |
def load_model():
|
8 |
tokenizer = AutoTokenizer.from_pretrained("HooshvareLab/bert-fa-base-uncased")
|
|
|
11 |
|
12 |
tokenizer, model = load_model()
|
13 |
|
14 |
+
# تولید پاسخ
|
15 |
def generate_response(text):
|
16 |
+
inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True)
|
17 |
+
with torch.no_grad():
|
18 |
+
outputs = model(**inputs)
|
19 |
+
logits = outputs.logits
|
20 |
+
predicted_class = torch.argmax(logits, dim=1).item()
|
21 |
+
response = f"پاسخ مدل: دستهبندی {predicted_class}"
|
22 |
return response
|
23 |
|
24 |
+
# رابط کاربری
|
25 |
def main():
|
26 |
st.set_page_config(page_title="دستیار هوش مصنوعی", layout="wide")
|
27 |
+
st.title("دستیار هوش مصنوعی (BERT فارسی)")
|
28 |
|
29 |
+
# مدیریت پیامها با Session State
|
30 |
if "messages" not in st.session_state:
|
31 |
st.session_state.messages = []
|
32 |
|
33 |
+
# نمایش پیامها
|
34 |
+
for message in st.session_state.messages:
|
35 |
+
if message["role"] == "user":
|
36 |
+
st.write(f"👤 کاربر: {message['content']}")
|
37 |
+
else:
|
38 |
+
st.write(f"🤖 دستیار: {message['content']}")
|
39 |
|
40 |
+
# ورودی کاربر
|
41 |
+
user_input = st.text_input("پیام خود را وارد کنید:")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
if user_input:
|
43 |
st.session_state.messages.append({"role": "user", "content": user_input})
|
44 |
response = generate_response(user_input)
|
45 |
st.session_state.messages.append({"role": "assistant", "content": response})
|
46 |
+
st.experimental_rerun()
|
|
|
|
|
|
|
47 |
|
48 |
if __name__ == "__main__":
|
49 |
+
main()
|