Kota Takahashi
修正
8ac3f1e
import re
import unicodedata
import streamlit as st
from generator import generate_response
from scraper import get_stock_info
st.title("株価お知らせBot")
stock_code = st.text_input("株コード", placeholder="株コード", max_chars=4, help='4桁の数字')
if "content" not in st.session_state:
st.write("はじめに、株コードを指定してください。")
if st.button("株決定"):
content = get_stock_info(stock_code)
content = unicodedata.normalize('NFKD', content)
st.session_state.content = re.sub('[\r\t\n]+', ' ', content)
# メッセージがない時
if "messages" not in st.session_state.keys():
st.session_state.messages = [{"role": "assistant", "content": "何か御用ですか?"}]
# チャット内容の表示
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.write(message["content"])
# ユーザーの質問
if prompt := st.chat_input():
st.session_state.messages.append({"role": "user", "content": prompt})
with st.chat_message("user"):
st.write(prompt)
# AIによる回答
if st.session_state.messages[-1]["role"] != "assistant":
with st.chat_message("assistant"):
with st.spinner("考え中.."):
response = generate_response(st, prompt)
st.write(response)
message = {"role": "assistant", "content": response}
st.session_state.messages.append(message)