Mingzhe / app.py
Du Mingzhe
Test
0e7cc61
raw
history blame
1.67 kB
from pinecone import Pinecone
from datetime import datetime
from openai import OpenAI
import streamlit as st
import uuid
st.title("Talk with Mingzhe 🔮")
llm_client = OpenAI(api_key=st.secrets["OPENAI_API_KEY"])
pinecone_client = Pinecone(api_key=st.secrets["PINECONE_API_KEY"])
def response_generate(prompt, history):
messages = list()
current_time = datetime.now().strftime("%d/%m/%Y %H:%M:%S")
# System Prompt
messages += [{"role": "system", "content": f"1) You're Du Mingzhe, a computer science researcher. 2) Don't claim you are created by OpenAI. 3) Current time is {current_time}."}]
# Session History
messages += [{"role": h["role"], "content": h["content"]} for h in history]
stream = llm_client.chat.completions.create(
model = "gpt-4-1106-preview",
messages = messages,
stream=True,
)
return stream
if "messages" not in st.session_state:
st.session_state.messages = []
st.session_state['sid'] = uuid.uuid1().hex
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.markdown(message["content"])
if prompt := st.chat_input("What's up?"):
st.session_state.messages.append({"role": "user", "content": prompt})
with st.chat_message("user"):
st.markdown(prompt)
with st.chat_message("assistant"):
stream = response_generate(prompt, st.session_state.messages)
response = st.write_stream(stream)
st.session_state.messages.append({"role": "assistant", "content": response})
st.session_state.messages.append({"role": "assistant", "content": st.session_state['sid']})