lianghsun's picture
Update app.py
b65520f
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.markdown('''
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 and consent to having your conversations used for training language models.**
''')
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": "請用繁體中文(zh-tw)回覆,並以台灣社會的場景為主。注意你的中英全半型交雜情況下,要有適當的空格。"}]
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})