Spaces:
Running
Running
Create app.py
Browse files
app.py
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from g4f.client import Client
|
3 |
+
|
4 |
+
# GPT-4o-mini ν΄λΌμ΄μΈνΈ μ΄κΈ°ν
|
5 |
+
client = Client()
|
6 |
+
|
7 |
+
# νμ΄μ§ μ€μ : μ λͺ©, μμ΄μ½, λ μ΄μμ μ€μ
|
8 |
+
st.set_page_config(
|
9 |
+
page_title="GPT-4o Chat",
|
10 |
+
page_icon="π",
|
11 |
+
layout="centered"
|
12 |
+
)
|
13 |
+
|
14 |
+
# μΈμ
μν μ΄κΈ°ν: μ±ν
κΈ°λ‘ μ μ₯
|
15 |
+
if "chat_history" not in st.session_state:
|
16 |
+
st.session_state.chat_history = []
|
17 |
+
|
18 |
+
# μ± μ λͺ© νμ
|
19 |
+
st.title("GPT-4o-mini Chat π€")
|
20 |
+
|
21 |
+
# μ±ν
λ©μμ§ UI μΆλ ₯
|
22 |
+
for message in st.session_state.chat_history:
|
23 |
+
with st.chat_message(message['role']):
|
24 |
+
# μ¬μ©μ λλ GPTμ λ©μμ§λ₯Ό ꡬλΆν΄ μΆλ ₯
|
25 |
+
st.markdown(message['content'])
|
26 |
+
|
27 |
+
# μ¬μ©μ μ
λ ₯ μ°½
|
28 |
+
user_prompt = st.chat_input("GPT-4o-miniμκ² μ§λ¬Έν΄λ³΄μΈμ!")
|
29 |
+
|
30 |
+
if user_prompt:
|
31 |
+
# μ¬μ©μμ μ
λ ₯ λ©μμ§λ₯Ό UIμ νμνκ³ μΈμ
μνμ μ μ₯
|
32 |
+
st.chat_message("user").markdown(user_prompt)
|
33 |
+
st.session_state.chat_history.append({"role": "user", "content": user_prompt})
|
34 |
+
|
35 |
+
# GPT-4o-mini λͺ¨λΈμκ² λ©μμ§ μ λ¬ λ° μλ΅ μμ±
|
36 |
+
response = client.chat.completions.create(
|
37 |
+
model="gpt-4o-mini",
|
38 |
+
messages=[
|
39 |
+
{"role": "system", "content": "You are a helpful assistant"}, # μμ€ν
ν둬ννΈ
|
40 |
+
*st.session_state.chat_history # μ΄μ λν λ΄μ© ν¬ν¨
|
41 |
+
]
|
42 |
+
)
|
43 |
+
|
44 |
+
# GPT μλ΅ κ°μ Έμ€κΈ°
|
45 |
+
final_response = response.choices[0].message.content
|
46 |
+
|
47 |
+
# GPT μλ΅μ UIμ νμνκ³ μΈμ
μνμ μ μ₯
|
48 |
+
st.session_state.chat_history.append({"role": "assistant", "content": final_response})
|
49 |
+
with st.chat_message("assistant"):
|
50 |
+
st.markdown(final_response)
|