|
import streamlit as st |
|
from groq import Client |
|
|
|
|
|
GROQ_API_KEY = "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" |
|
|
|
def main(): |
|
st.set_page_config(page_title="🧠 AI ассистент врача-невролога", layout="wide") |
|
st.title("🧠 AI ассистент врача-невролога") |
|
|
|
|
|
@st.cache_resource |
|
def load_model(): |
|
return Client(api_key=GROQ_API_KEY) |
|
|
|
chatbot = load_model() |
|
|
|
|
|
system_prompt = { |
|
"role": "system", |
|
"content": ("You are a professional neurology assistant. Your role is to provide accurate and up-to-date medical insights related to neurological disorders, brain health, symptoms, treatments, and neuroscience research." |
|
" Always ensure that responses are factual, empathetic, and professional. If a query is **unrelated to neurology** or medical concerns, politely redirect the user by saying: 'I specialize in neurology-related assistance. Let me know how I can help with your neurological health concerns.'" |
|
" If a user wants to book an appointment with a neurologist, ask for their preferred date, time, and location. Provide a confirmation message once details are received. Ответы прошу давать на русском языке") |
|
} |
|
|
|
|
|
if "messages" not in st.session_state: |
|
st.session_state["messages"] = [system_prompt] |
|
|
|
|
|
for message in st.session_state["messages"]: |
|
if message["role"] != "system": |
|
with st.chat_message(message["role"]): |
|
st.markdown(message["content"]) |
|
|
|
|
|
user_input = st.chat_input("Прошу здесь задавать вопросы по неврологии..") |
|
|
|
if user_input: |
|
|
|
st.session_state["messages"].append({"role": "user", "content": user_input}) |
|
with st.chat_message("user"): |
|
st.markdown(user_input) |
|
|
|
|
|
response = chatbot.chat.completions.create( |
|
model="llama-3.3-70b-versatile", |
|
messages=[system_prompt] + st.session_state["messages"] |
|
) |
|
|
|
bot_response = response.choices[0].message.content |
|
|
|
|
|
st.session_state["messages"].append({"role": "assistant", "content": bot_response}) |
|
with st.chat_message("assistant"): |
|
st.markdown(bot_response) |
|
|
|
if __name__ == "__main__": |
|
main() |
|
|