|
import streamlit as st |
|
from openai import OpenAI |
|
|
|
|
|
client = OpenAI( |
|
api_key="sk-a02694cf3c8640c9ae60428ee2c5a62e", |
|
base_url="https://api.deepseek.com" |
|
) |
|
|
|
st.set_page_config(page_title="Чат с deepseek-reasoner", layout="centered") |
|
st.title("Чат с deepseek-reasoner") |
|
|
|
|
|
if "messages" not in st.session_state: |
|
st.session_state["messages"] = [] |
|
|
|
|
|
user_input = st.text_area("Ваш вопрос:", "", height=80) |
|
|
|
|
|
if st.button("Отправить"): |
|
|
|
content = user_input.strip() |
|
if content: |
|
|
|
st.session_state["messages"].append({"role": "user", "content": content}) |
|
|
|
try: |
|
|
|
response = client.chat.completions.create( |
|
model="deepseek-reasoner", |
|
messages=st.session_state["messages"] |
|
) |
|
|
|
assistant_message = response.choices[0].message.content |
|
|
|
|
|
st.session_state["messages"].append( |
|
{"role": "assistant", "content": assistant_message} |
|
) |
|
except Exception as e: |
|
st.error(f"Ошибка при обращении к API: {e}") |
|
|
|
|
|
st.write("---") |
|
|
|
|
|
for msg in st.session_state["messages"]: |
|
if msg["role"] == "user": |
|
|
|
st.markdown( |
|
f"<div style='text-align: right; background-color: #E8F2FF; " |
|
f"padding: 10px; margin: 5px; border-radius: 10px; " |
|
f"display: inline-block; max-width: 80%;'>" |
|
f"{msg['content']}</div>", |
|
unsafe_allow_html=True |
|
) |
|
else: |
|
|
|
st.markdown( |
|
f"<div style='text-align: left; background-color: #F0F0F0; " |
|
f"padding: 10px; margin: 5px; border-radius: 10px; " |
|
f"display: inline-block; max-width: 80%;'>" |
|
f"{msg['content']}</div>", |
|
unsafe_allow_html=True |
|
) |
|
|