Spaces:
Sleeping
Sleeping
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) | |