lianghsun's picture
Update app.py
e087625
raw
history blame
2.56 kB
import streamlit as st
from openai import OpenAI, AzureOpenAI
from typing import Iterator
import os
from phoenix.otel import register
from opencc import OpenCC
cc = OpenCC('s2twp')
PHOENIX_API_KEY=st.secrets['PHOENIX_API_KEY']
os.environ["PHOENIX_CLIENT_HEADERS"] = f"api_key={PHOENIX_API_KEY}"
tracer_provider = register(
project_name=st.secrets['PHOENIX_PROJECT_NAME'],
endpoint=os.getenv('PHOENIX_COLLECTOR_ENDPOINT'),
)
from openinference.instrumentation.openai import OpenAIInstrumentor
OpenAIInstrumentor().instrument(tracer_provider=tracer_provider)
st.set_page_config(
page_title="Free GPT-4o Chat",
page_icon="💬",
layout="centered"
)
st.title("💬 GPT-4o Chat")
with st.expander("Notice"):
st.write('''
Please note that this app collects your conversation records.
Do not input any personal or sensitive information, such as:
- National identification numbers
- Contact information (phone numbers, email addresses)
- Bank account or credit card details
- Health or medical information
- Any other data that can be used to identify you
Use this app cautiously and avoid sharing sensitive data.
Do not use this app in inappropriate contexts. By using this app, you agree to these terms and conditions.
''')
client = AzureOpenAI(
api_key=st.secrets['API_KEY'],
api_version=st.secrets['API_VERSION'],
azure_endpoint=st.secrets['ENDPOINT']
)
if "openai_model" not in st.session_state:
st.session_state["openai_model"] = st.secrets['MODEL']
if "messages" not in st.session_state:
st.session_state.messages = []
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.markdown(message["content"])
if prompt := st.chat_input("What is up?"):
st.session_state.messages.append({"role": "user", "content": prompt})
with st.chat_message("user"):
st.markdown(prompt)
messages = [{"role": "system", "content": "如果使用者使用繁體中文,請用繁體中文回答使用者,並以台灣社會的場景為主。"}]
for m in st.session_state.messages:
messages.append({"role": m["role"], "content": m["content"]})
with st.chat_message("assistant"):
stream = client.chat.completions.create(
model=st.session_state["openai_model"],
messages=messages,
stream=True,
)
response = st.write_stream(stream)
st.session_state.messages.append(
{"role": "assistant", "content": response})