py / app.py
madji05's picture
Upload app.py
b4b3726 verified
raw
history blame
4.1 kB
import streamlit as st
import os
import google.generativeai as genai
import time
# استرجاع القيمة من البيئة أو تعيينها مباشرة
api_key = os.getenv("AIzaSyBLb8HjkkkcTJXZWwfHQJTQJQHXsylHRVA", "your_api_key_here")
# تعيين متغير البيئة
os.environ["AIzaSyBLb8HjkkkcTJXZWwfHQJTQJQHXsylHRVA"] = api_key
icons = {"assistant": "robot.png", "user": "man-kddi.png"}
model = genai.GenerativeModel('gemini-1.5-flash-latest')
prompt = """أنت مساعد تدريس في البرمجة يدعى جين إكس إيه (GenXAI)، تم إنشاؤك بواسطة باتشايابان [لينكد إن](https://www.linkedin.com/in/pachaiappan) متخصص في الذكاء الاصطناعي. قم بالإجابة فقط على الأسئلة المتعلقة بالبرمجة وإصلاح الأخطاء والأسئلة المتعلقة بالشيفرة.
ملاحظة مهمة: إذا كانت السؤال غير متعلق بالبرمجة أو الشيفرة يجب عليك القول: "يرجى طرح أسئلة تتعلق فقط بالبرمجة." ما عدا التحية وهذا النوع من الأسئلة "من أنت", "من قام بإنشائك".
المحادثة السابقة:
{chat_history}
الإنسان: {human_input}
جين إكس إيه:"""
previous_response = ""
def get_response(query):
global previous_response
for i in st.session_state['history']:
if i is not None:
previous_response += f"الإنسان: {i[0]}\n جين إكس إيه: {i[1]}\n"
response = model.generate_content(prompt.format(human_input=query, chat_history=previous_response))
st.session_state['history'].append((query, response.text))
return response.text
def response_streaming(text):
for i in text:
yield i
time.sleep(0.001)
st.title("جين إكس إيه")
st.caption("أنا مساعد الذكاء الاصطناعي الخبير في المجال البرمجي!")
st.markdown("""
<style>
.justified-text {
text-align: justify;
}
</style>
""", unsafe_allow_html=True)
with st.sidebar:
st.header("حول:")
st.caption("""
<div class="justified-text">
هذا هو جين إكس إيه (الجيل الخبير للذكاء الاصطناعي)، مصمم لمساعدتك في الأسئلة المتعلقة بالبرمجة. يمكن لهذا الذكاء الاصطناعي مساعدتك في الإجابة على استفساراتك في البرمجة، وإصلاح الأخطاء، والمزيد. بالإضافة إلى ذلك، يمكنك التحدث مع جين إكس إيه لبناء وتحسين أسئلتك، مما يسهل عملية المحادثة بشكل أكثر إنتاجية.
</div>
""", unsafe_allow_html=True)
for _ in range(17):
st.write("")
st.subheader("صُنع بواسطة:")
st.write("[مجدي❤️](https://www.facebook.com/madjioff)")
st.write("الاتصال: [البريد الإلكتروني](mailto:[email protected])")
if 'messages' not in st.session_state:
st.session_state.messages = [{'role': 'assistant', 'content': "أنا هنا لمساعدتك في أسئلتك المتعلقة بالبرمجة😉"}]
if 'history' not in st.session_state:
st.session_state.history = []
for message in st.session_state.messages:
with st.chat_message(message['role'], avatar=icons[message['role']]):
st.write(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", avatar="man-kddi.png"):
st.write(user_input)
with st.spinner("جاري التفكير..."):
response = get_response(user_input)
with st.chat_message("user", avatar="robot.png"):
st.write_stream(response_streaming(response))
message = {"role": "assistant", "content": response}
st.session_state.messages.append(message)