-
Notifications
You must be signed in to change notification settings - Fork 0
/
web.py
52 lines (43 loc) · 1.68 KB
/
web.py
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
import json
import streamlit as st
import random
from sklearn.linear_model import LogisticRegression
from sklearn.feature_extraction.text import TfidfVectorizer
intent = json.load(open('intent.json'))
tags = []
padrao = []
for intent in intent['intent']:
for padrao in intent['padrao']:
padrao.append(padrao)
tags.append(intent['tag'])
vector = TfidfVectorizer()
padrao_scaled = vector.fit_transform(padrao)
Bot = LogisticRegression(max_iter=100000)
Bot.fit(padrao_scaled, tags)
def ChatBot(input_menssage):
input_message = vector.transform([input_message])
pred_tag = Bot.predict(input_message)[0]
for intent in intent['intent']:
if intent['tag'] == pred_tag:
resposta = random.choice(intent['resposta'])
return resposta
st.title("lojas AI ChatBot")
# Initialize chat history
if "messages" not in st.session_state:
st.session_state.messages = []
# Display chat messages from history on app rerun
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.markdown(message["content"])
# React to user input
if prompt := st.chat_input("What is up?"):
# Display user message in chat message container
st.chat_message("user").markdown(prompt)
# Add user message to chat history
st.session_state.messages.append({"role": "user", "content": prompt})
resposta = f"IA ChatBot: " + ChatBot(prompt)
# Display assistant response in chat message container
with st.chat_message("assistant"):
st.markdown(resposta)
# Add assistant response to chat history
st.session_state.messages.append({"role": "assistant", "content": resposta})