|
import streamlit as st |
|
|
|
|
|
import openai |
|
import numpy as np |
|
from langchain.chat_models import ChatOpenAI |
|
from langchain.memory import ConversationBufferWindowMemory |
|
from langchain.chains import ConversationChain |
|
from audio_recorder_streamlit import audio_recorder |
|
|
|
llm = ChatOpenAI(openai_api_key="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",temperature=0.0) |
|
openai.api_key = "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" |
|
|
|
|
|
|
|
|
|
if "memory" not in st.session_state: |
|
st.session_state["memory"]=ConversationBufferWindowMemory(k=5) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
st.title("Chat with AI") |
|
if "input" not in st.session_state: |
|
st.session_state["input"]=np.empty((0, 2), str) |
|
|
|
with st.sidebar: |
|
cols=st.columns(7) |
|
with cols[0]: |
|
audio_bytes = audio_recorder(text="",icon_size="2x") |
|
if audio_bytes: |
|
st.audio(audio_bytes, format="audio/wav") |
|
with cols[1]: |
|
st.button("🚧",type="primary") |
|
|
|
with st.container(): |
|
user_input=st.chat_input("Say something") |
|
if user_input: |
|
for i,a in st.session_state["input"]: |
|
with st.chat_message("user"): |
|
st.write(i) |
|
with st.chat_message("assistant"): |
|
st.write(a) |
|
with st.chat_message("user"): |
|
st.write(user_input) |
|
conversation = ConversationChain( |
|
llm=llm, |
|
memory = st.session_state["memory"], |
|
verbose=False) |
|
anwser=conversation.predict(input=user_input) |
|
st.session_state["input"]=np.append(st.session_state["input"],np.array([[user_input, anwser]]),axis=0) |
|
with st.chat_message("assistant"): |
|
st.write(anwser) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|