-
Notifications
You must be signed in to change notification settings - Fork 5
/
streamlit_app.py
70 lines (51 loc) · 2.25 KB
/
streamlit_app.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import google.generativeai as genai
import os
import configparser
import os
import streamlit as st
import json
import pandas as pd
config = configparser.ConfigParser()
config.read(os.path.expanduser('.config.ini'))
GOOGLE_API_KEY = config['DEFAULT']['GOOGLE_API_KEY']
genai.configure(api_key=GOOGLE_API_KEY)
generation_config = {
"candidate_count": 1,
"temperature": 0.5,
}
model = genai.GenerativeModel(model_name='gemini-1.0-pro',
generation_config=generation_config,
)
with open('files/output.json') as json_file:
data = json.load(json_file)
model = genai.GenerativeModel(model_name='gemini-1.0-pro', generation_config={"candidate_count": 1, "temperature": 1})
def generate_response(prompt):
prompt_inicial = f"Aja como uma especialista em fundos imobiliários, criativo e descritivo, respondendo com as informações fornecidas: {data} ------ Caso o usuário pergunte sobre outros assuntos, responda: Não posso lhe responder sobre este assunto, me pergunte sobre fundos imobiliários."
chat = model.start_chat(history=[])
response = chat.send_message(prompt_inicial + prompt)
return response.text
def main():
import streamlit as st
col1, col2 = st.columns([1, 2])
with col1:
st.image('assets/google.png', width=150)
with col2:
st.title('Chatbot para Fundos Imobiliários')
st.write('Pregões Disponíveis:')
num_companies = len(data['Nome Pregao'])
num_cols = 4
num_rows = -(-num_companies // num_cols)
company_names = data['Nome Pregao']
companies_reshape = [company_names[i*num_cols:(i+1)*num_cols] for i in range(num_rows)]
companies_with_numbers = []
for i, companies_row in enumerate(companies_reshape):
row_with_numbers = [f"{i*num_cols + j + 1}. {company}" for j, company in enumerate(companies_row)]
companies_with_numbers.append(row_with_numbers)
df = pd.DataFrame(companies_with_numbers).transpose()
st.table(df)
prompt = st.text_input('Digite sua pergunta e espere alguns instantes...(Exemplo: gostaria de saber sobre a empresa CIELO):').lower()
if prompt:
response = generate_response(prompt.lower())
st.write('Resposta:', response)
if __name__ == '__main__':
main()